OpenSSH дастгирии аутентификатсияи универсалии ду-омилро илова мекунад

Ба пойгоҳи коди OpenSSH илова кард дастгирии таҷрибавӣ барои аутентификатсияи ду омил бо истифода аз дастгоҳҳое, ки протоколро дастгирӣ мекунанд U2F, ки аз тарафи иттифок тартиб дода шудааст Фидо. U2F имкон медиҳад, ки токенҳои сахтафзори арзон эҷод кунанд, то ҳузури ҷисмонии корбарро тафтиш кунанд ва бо онҳо тавассути USB, Bluetooth ё NFC муошират кунанд. Чунин дастгоҳҳо ҳамчун воситаи аутентификатсияи ду-омилӣ дар вебсайтҳо пешбарӣ карда мешаванд, аллакай аз ҷониби браузерҳои асосӣ дастгирӣ мешаванд ва аз ҷониби истеҳсолкунандагони гуногун, аз ҷумла Yubico, Feitian, Thetis ва Kensington истеҳсол карда мешаванд.

Барои муошират бо дастгоҳҳое, ки ҳузури корбарро тасдиқ мекунанд, ба OpenSSH навъи нави калидҳо илова карда шудааст.[почтаи электронӣ ҳифз карда шудааст]” (“ecdsa-sk”), ки алгоритми имзои рақамии ECDSA (Elliptic Curve Digital Signature Algorithm) бо каҷи эллиптикии NIST P-256 ва hash SHA-256-ро истифода мебарад. Тартиби ҳамкорӣ бо нишонаҳо дар китобхонаи фосилавӣ ҷойгир карда мешавад, ки он ба таври шабеҳ ба китобхона барои дастгирии PKCS # 11 бор карда мешавад ва дар болои китобхона бастабандӣ аст. libfido2, ки асбобҳоро барои иртибот бо нишонаҳо тавассути USB таъмин мекунад (протоколҳои FIDO U2F/CTAP 1 ва FIDO 2.0/CTAP 2 дастгирӣ мешаванд). Китобхонаи фосилавии libsk-libfido2, ки аз ҷониби таҳиягарони OpenSSH омода шудааст дохил карда шудааст ба либфидо2 асосй, инчунин Ронандаи HID барои OpenBSD.

Барои фаъол кардани U2F, шумо метавонед як буридаи нави пойгоҳи кодро аз анбор OpenSSH ва филиали HEAD китобхона libfido2, ки аллакай қабати барои OpenSSH заруриро дар бар мегирад.
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

Илова Эзоҳ