В кодовую базу 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 (ייצוא SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), או להגדיר את הספרייה דרך ה-SecurityKeyProvider הגדרה, ולאחר מכן הפעל את "ssh-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