У кодавую базу OpenSSH
Для ўзаемадзеяння з прыладамі, якія пацвярджаюць прысутнасць карыстальніка, у OpenSSH дададзены новы тып ключоў.[электронная пошта абаронена]»(«ecdsa-sk»), у якім выкарыстоўваецца алгарытм лічбавага подпісу ECDSA (Elliptic Curve Digital Signature Algorithm) з эліптычнай крывой NIST P-256 і хэшам SHA-256. Працэдуры ўзаемадзеяння з токенамі вынесены ў прамежкавую бібліятэку, якая загружаецца па аналогіі з бібліятэкай для падтрымкі PKCS#11 і з'яўляецца абвязкай над бібліятэкай.
Для ўключэння U2F можна выкарыстоўваць свежы зрэз кодавай базы з
Libfido2 падтрымлівае працу ў OpenBSD, Linux, macOS і Windows.
Для аўтэнтыфікацыі і генерацыі ключа неабходна выставіць зменную асяроддзі SSH_SK_PROVIDER, паказаўшы ў ёй шлях да libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), ці вызначыць бібліятэку праз настойку SecurityKeyProvider, пасля чаго запусціць keygen -t ecdsa-sk» ці, калі ключы ўжо створаны і настроены, падлучыцца да сервера пры дапамозе «ssh». Пры запуску ssh-keygen створаная пара ключоў будзе захавана ў "~/.ssh/id_ecdsa_sk" і можа выкарыстоўвацца аналагічна іншым ключам.
Адкрыты ключ (id_ecdsa_sk.pub) варта скапіяваць на сервер у файл authorized_keys. На баку сервера толькі правяраецца лічбавы подпіс, а ўзаемадзеянне з токена вырабляецца на баку кліента (на серверы не трэба ўсталёўваць libsk-libfido2, але сервер павінен падтрымліваць тып ключоў "ecdsa-sk"). Згенераваны закрыты ключ (id_ecdsa_sk) па сутнасці з'яўляецца дэскрыптарам ключа, якія ўтвараюць рэальны ключ толькі ў спалучэнні з сакрэтнай паслядоўнасцю, якая захоўваецца на баку токена U2F.
У выпадку траплення ключа id_ecdsa_sk у рукі атакавалага, для праходжання аўтэнтыфікацыі яму таксама запатрабуецца атрымаць доступ да апаратнага токена, без якога захаваны ў файле id_ecdsa_sk зачынены ключ бескарысны. Акрамя таго, па змаўчанні пры выкананні любых аперацый з ключамі (як пры генерацыі, так і пры аўтэнтыфікацыі) патрабуецца лакальнае пацверджанне фізічнай прысутнасці карыстача, напрыклад, прапануецца крануць сэнсара на токене, што абцяжарвае правядзенне выдаленых нападаў на сістэмы з падлучаным токенам. У якасці яшчэ адной мяжы абароны на этапе запуску ssh-keygen таксама можа быць зададзены пароль для доступу да файла з ключом.
Ключ U2F можа быць дададзены ў ssh-agent праз "ssh-add ~/.ssh/id_ecdsa_sk", але ssh-agent павінен быць сабраны з падтрымкай ключоў "ecdsa-sk", павінна прысутнічаць праслойка libsk-libfido2 і агент павінен выконвацца на сістэме , Да якой падключаецца токен.
Новы тып ключоў "ecdsa-sk" дададзены, бо фармат ecdsa-ключоў OpenSSH адрозніваецца ад фармату U2F для лічбавых подпісаў ECDSA наяўнасцю дадатковых палёў.
Крыніца: opennet.ru