OpenSSH foeget stipe ta foar universele twa-faktora-autentikaasje

Nei de OpenSSH-koadebase tafoege eksperimintele stipe foar twa-faktor autentikaasje mei help fan apparaten dy't stypje it protokol U2F, ûntwikkele troch it alliânsje FIDO. U2F lit it oanmeitsjen fan goedkeape hardware-tokens om de fysike oanwêzigens fan 'e brûker te ferifiearjen, ynteraksje mei har fia USB, Bluetooth of NFC. Sokke apparaten wurde befoardere as in middel fan twa-faktor autentikaasje op websiden, wurde al stipe troch grutte browsers en wurde produsearre troch ferskate fabrikanten, ynklusyf Yubico, Feitian, Thetis en Kensington.

Om ynteraksje mei apparaten dy't de oanwêzigens fan 'e brûker befêstigje, is in nij type kaaien tafoege oan OpenSSH "[e-post beskerme]" ("ecdsa-sk"), dy't it ECDSA (Elliptic Curve Digital Signature Algorithm) digitale hantekeningalgoritme brûkt mei NIST P-256 elliptyske kromme en SHA-256 hash. Prosedueres foar ynteraksje mei tokens wurde pleatst yn in tuskenlizzende bibleteek, dat wurdt laden op in fergelykbere wize oan de bibleteek foar PKCS # 11 stipe en is in wrapper boppe op 'e bibleteek libfido2, dy't ark biedt foar kommunikaasje mei tokens oer USB (FIDO U2F / CTAP 1 en FIDO 2.0 / CTAP 2-protokollen wurde stipe). Intermediate bibleteek libsk-libfido2 taret troch OpenSSH-ûntwikkelders ynbegrepen yn 'e kearn libfido2, lykas HID bestjoerder foar OpenBSD.

Om U2F yn te skeakeljen, kinne jo in nij stik fan 'e koadebase brûke fan repository OpenSSH en de HEAD-tûke fan 'e bibleteek libfido2, dy't al de laach omfettet dy't nedich is foar OpenSSH.
Libfido2 stipet OpenBSD, Linux, macOS en Windows.

Om in kaai te ferifiearjen en te generearjen, moatte jo de omjouwingsfariabele SSH_SK_PROVIDER ynstelle, wêryn it paad oanjout nei libsk-libfido2.so (eksportearje SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), of de biblioteek definiearje fia de SecurityKeyProvider ynstelling, en dan "ssh-keygen -t ecdsa-sk" útfiere of, as de kaaien al binne oanmakke en konfigureare, ferbine mei de tsjinner mei "ssh". As jo ​​ssh-keygen útfiere, sil it generearre kaaipaar bewarre wurde yn "~/.ssh/id_ecdsa_sk" en kin op deselde manier brûkt wurde as oare kaaien.

De iepenbiere kaai (id_ecdsa_sk.pub) moat kopiearre wurde nei de tsjinner yn it autorisearre_keys-bestân. Oan 'e serverkant wurdt allinich de digitale hantekening ferifiearre, en ynteraksje mei tokens wurdt útfierd op' e kliïntside (jo moatte libsk-libfido2 net op 'e server ynstallearje, mar de server moat it toetstype "ecdsa-sk" stypje) . De oanmakke privee kaai (id_ecdsa_sk) is yn wêzen in kaai handgreep, foarmje in echte kaai allinnich yn kombinaasje mei de geheime folchoarder opslein op de U2F token kant.

As de id_ecdsa_sk-kaai yn 'e hannen fan in oanfaller falt, om autentikaasje troch te jaan, sil hy ek tagong moatte krije ta it hardware-token, sûnder dat de priveekaai opslein yn 'e id_ecdsa_sk-bestân nutteloos is. Derneist is standert by it útfieren fan alle operaasjes mei toetsen (sawol tidens generaasje as tidens ferifikaasje) lokale befêstiging fan 'e fysike oanwêzigens fan' e brûker fereaske, bygelyks wurdt it foarsteld om de sensor op 'e token te berikken, wat it dreech makket útfiere oanfallen op ôfstân op systemen mei in ferbûn token. As in oare line fan definsje kin in wachtwurd ek opjûn wurde yn 'e opstartfaze fan ssh-keygen om tagong te krijen ta it kaaibestân.

De U2F-kaai kin tafoege wurde oan ssh-agent fia "ssh-add ~/.ssh/id_ecdsa_sk", mar ssh-agent moat boud wurde mei stipe foar "ecdsa-sk"-kaaien, de libsk-libfido2-laach moat oanwêzich wêze en de agent moat rinne op it systeem, wêrmei it token is ferbûn.
In nij kaaitype "ecdsa-sk" is tafoege sûnt it formaat fan OpenSSH ecdsa-kaaien ferskilt fan it U2F-formaat foar ECDSA digitale hantekeningen yn 'e oanwêzigens fan ekstra fjilden.

Boarne: opennet.ru

Add a comment