U OpenSSH kodnu bazu
Za interakciju s uređajima koji potvrđuju prisutnost korisnika, OpenSSH je dodana nova vrsta ključeva "[e-pošta zaštićena]” (“ecdsa-sk”), koji koristi algoritam digitalnog potpisa ECDSA (Elliptic Curve Digital Signature Algorithm) s NIST P-256 eliptičnom krivuljom i SHA-256 hashom. Procedure za interakciju s tokenima smještene su u međubiblioteku, koja se učitava na sličan način kao biblioteka za podršku PKCS#11 i predstavlja omotač na vrhu biblioteke
Da biste omogućili U2F, možete upotrijebiti novi isječak baze koda iz
Libfido2 podržava OpenBSD, Linux, macOS i Windows.
Za autentifikaciju i generiranje ključa morate postaviti varijablu okruženja SSH_SK_PROVIDER, naznačujući u njoj stazu do libsk-libfido2.so (izvoz SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), ili definirati biblioteku putem SecurityKeyProvider postavku, a zatim pokrenite “ssh-keygen -t ecdsa-sk" ili, ako su ključevi već kreirani i konfigurirani, spojite se na poslužitelj koristeći "ssh". Kada pokrenete ssh-keygen, generirani par ključeva bit će spremljen u “~/.ssh/id_ecdsa_sk” i može se koristiti slično drugim ključevima.
Javni ključ (id_ecdsa_sk.pub) treba kopirati na poslužitelj u datoteci authorized_keys. Na strani poslužitelja provjerava se samo digitalni potpis, a interakcija s tokenima se vrši na strani klijenta (ne morate instalirati libsk-libfido2 na poslužitelju, ali poslužitelj mora podržavati tip ključa “ecdsa-sk”) . Generirani privatni ključ (id_ecdsa_sk) u biti je držač ključa, koji tvori pravi ključ samo u kombinaciji s tajnim nizom pohranjenim na strani U2F tokena.
Ako ključ id_ecdsa_sk padne u ruke napadača, da bi prošao autentifikaciju morat će također dobiti pristup hardverskom tokenu, bez kojeg je privatni ključ pohranjen u datoteci id_ecdsa_sk beskoristan. Osim toga, prema zadanim postavkama, prilikom izvođenja bilo kakvih operacija s ključevima (i tijekom generiranja i tijekom autentifikacije), potrebna je lokalna potvrda fizičke prisutnosti korisnika, na primjer, predlaže se dodirivanje senzora na tokenu, što otežava izvršavati udaljene napade na sustave s povezanim tokenom. Kao još jedna linija obrane, lozinka se također može odrediti tijekom faze pokretanja ssh-keygena za pristup ključnoj datoteci.
U2F ključ se može dodati ssh-agentu putem "ssh-add ~/.ssh/id_ecdsa_sk", ali ssh-agent mora biti izgrađen s podrškom za "ecdsa-sk" ključeve, sloj libsk-libfido2 mora biti prisutan i agent mora biti pokrenut na sustavu na koji je token povezan.
Dodana je nova vrsta ključa "ecdsa-sk" jer se format OpenSSH ecdsa ključeva razlikuje od U2F formata za ECDSA digitalne potpise u prisutnosti dodatnih polja.
Izvor: opennet.ru