OpenSSH koodibaasi eksperimentaalne tugitöötlus kahefaktorilise autentimise jaoks seadmete kasutamise kaudu, mis toetavad protokolli , mida arendab liit . U2F võimaldab luua odavaid riistvaratokenite kasutamist, et kinnitada kasutaja füüsilist kohalolekut, mille vaheline suhtlemine toimub USB, Bluetooth või NFC kaudu. Sellised seadmed edendavad kahefaktorilist autentimist veebisaitidel, neid toetavad peamised brauserid ja neid valmistavad erinevad tootjad, sealhulgas Yubico, Feitian, Thetis ja Kensington.
Kasutajat kinnitavate seadmete interaktsiooni jaoks on OpenSSH-sse lisatud uus võtmetüüp „sk-ecdsa-sha2-nistp256@openssh.com“ („ecdsa-sk“), mis kasutab ECDSA (eliiptse kõveraga digitaalallkirja algoritm) allkirjastamise algoritmi NIST P-256 ja SHA-256 hash'i. Tokenitega suhtlemise protseduurid on välja viidud vahepealsesse teeki, mis laaditakse sarnaselt PKCS#11 toetava teegiga ning on teekide wrapper. , mis pakub vahendeid tokenite suhtlemiseks USB kaudu (toetavad protokollid FIDO U2F/CTAP 1 ja FIDO 2.0/CTAP 2). OpenSSH arendajate loodud vaheklass libsk-libfido2 on põhiosas libfido2, nagu ka OpenBSD jaoks.
U2F aktiveerimiseks saab kasutada värsket lõiget koodibaasist OpenSSH-st ja HEAD harust teegist , mis sisaldab juba vajalikku OpenSSH jaoks vajalikku kihti.
Libfido2 toetab tööd OpenBSD, Linuxi, macOS-i ja Windowsiga.
Autentimiseks ja võti genereerimiseks tuleb määrata keskkonnamuutuja SSH_SK_PROVIDER, näidates seal teed libsk-libfido2.so juurde (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), või määrata teek SecurityKeyProvider seadistuse kaudu, seejärel käivitada „ssh-keygen -t ecdsa-sk“ või, kui võtmed on juba loodud ja seadistatud, ühenduda serveriga „ssh“ abil. Käivitamisel ssh-keygen salvestatakse loodud võtme paar „~/.ssh/id_ecdsa_sk” ja seda saab kasutada nagu teisi võtmeid.
Avalik võti (id_ecdsa_sk.pub) tuleb serverisse kopeerida faili authorized_keys. Serveri pool kontrollitakse ainult digitaalallkiri, samas kui tokenitega suhtlemine toimub kliendi poolel (serveris ei pea libsk-libfido2 olema paigaldatud, kuid server peab toetama võtme tüüpi „ecdsa-sk“). Generatsiooni sulgemisvõti (id_ecdsa_sk) on põhimõtteliselt võtme descriptor, mis moodustab reaalse võtme ainult koos U2F tokeni poolel salvestatud saladuse järjestusega.
Kui id_ecdsa_sk võti satub ründaja kätte, vajab ta autentimiseks juurdepääsu ka riistvaratokenile, ilma milleta on failis id_ecdsa_sk salvestatud privaatvõti kasutu. Lisaks on vaikimisi iga võtmega seotud toimingute (nii genereerimise kui autentimise puhul) jaoks vajalik kohaliku kasutaja füüsilise kohaloleku kinnitamine, näiteks palutakse puudutada tokeni sensorit, mis raskendab kaugrünnakute teostamist süsteemides, kus token on ühendatud. Veel ühe kaitsekiirusena võib ssh-keygen käivitamisel määrata parooli juurdepääsuks võtmefailile.
U2F võti saab lisada ssh-agentisse käsuga „ssh-add ~/.ssh/id_ecdsa_sk”, kuid ssh-agent peab olema loodud „ecdsa-sk” võtmete toetamiseks, peab olema olemas libsk-libfido2 kiht ja agent peab töötama süsteemis, kuhu token on ühendatud.
Uus võtme tüüp „ecdsa-sk” on lisatud, kuna OpenSSH ecdsa-võtmete formaat erineb U2F ECDSA digitaalsete allkirjade formaadist, millel on lisaväljad.
Allikas: opennet.ru
