U OpenSSH dodana podrška za univerzalnu dvostruku autentifikaciju

U OpenSSH kodnoj bazi dodana eksperimentalna podrška za dvofaktorsku autentifikaciju koristeći uređaje koji podržavaju protokol U2F, razvijen od strane saveza FIDO. U2F omogućava izradu jeftinih hardverskih tokena za potvrdu fizičke prisutnosti korisnika, a interakcija s njima se odvija putem USB, Bluetooth ili NFC. Ovi uređaji se promiču kao sredstvo za dvofaktorsku autentifikaciju na web stranicama, već ih podržavaju glavni preglednici i proizvode razni proizvođači, uključujući Yubico, Feitian, Thetis i Kensington.

Za interakciju s uređajima koji potvrđuju prisutnost korisnika, OpenSSH je dodao novu vrstu ključeva "sk-ecdsa-sha2-nistp256@openssh.com" ("ecdsa-sk"), koja koristi algoritam digitalnog potpisa ECDSA (Elliptic Curve Digital Signature Algorithm) s eliptičnom krivuljom NIST P-256 i heširanjem SHA-256. Postupci interakcije s tokenima su izdvojeni u međusobnu biblioteku koja se učitava slično kao biblioteka za podršku PKCS#11 i predstavlja omotač nad bibliotekom libfido2, koja pruža sredstva za komunikaciju s tokenima putem USB-a (podržava protokole FIDO U2F/CTAP 1 i FIDO 2.0/CTAP 2). Pripremljena razvojna biblioteka libsk-libfido2 je uključena je integrirana u osnovnu sastav libfido2, kao i HID driver za OpenBSD.

Za uključivanje U2F možete koristiti svježi isječak kodne baze iz repozitorija OpenSSH i HEAD granu biblioteke libfido2, koja već uključuje potrebnu posredničku sloj za OpenSSH.
Libfido2 podržava rad na OpenBSD-u, Linuxu, macOS-u i Windows-u.

Za autentifikaciju i generiranje ključa potrebno je postaviti varijablu okruženja SSH_SK_PROVIDER, navodeći put do libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), ili definirati biblioteku putem postavke SecurityKeyProvider, nakon čega se pokreće "ssh-keygen -t ecdsa-sk" ili, ako su ključevi već stvoreni i podešeni, povezati se na server putem "ssh". Kada se pokrene ssh-keygen, stvoreni par ključeva bit će pohranjen u "~/.ssh/id_ecdsa_sk" i može se koristiti na sličan način kao i drugi ključevi.

Otvoreni ključ (id_ecdsa_sk.pub) treba kopirati na poslužitelj u datoteku authorized_keys. Na strani poslužitelja samo se provjerava digitalni potpis, dok se interakcija s tokenima odvija s klijentske strane (na poslužitelju nije potrebno instalirati libsk-libfido2, ali poslužitelj mora podržavati tip ključeva „ecdsa-sk“). Generirani tajni ključ (id_ecdsa_sk) u suštini je identifikator ključa koji oblikuje stvarni ključ tek u kombinaciji s tajnom sekvencom pohranjenom na strani U2F tokena.

U slučaju da ključ id_ecdsa_sk dospije u ruke napadača, za prolazak autentifikacije također će mu biti potrebno dobiti pristup hardverskom tokenu, bez kojeg je pohranjeni tajni ključ u datoteci id_ecdsa_sk beskoristan. Osim toga, prema zadanim postavkama, prilikom izvođenja bilo kakvih operacija s ključevima (bilo pri generiranju, bilo pri autentifikaciji) potrebna je lokalna potvrda fizičke prisutnosti korisnika, na primjer, nudi se dodirivanje senzora na tokenu, što otežava provođenje udaljenih napada na sustave s priključenim tokenom. Kao još jedna zaštitna mjera, tijekom pokretanja ssh-keygen može se odrediti lozinka za pristup datoteci s ključem.

U2F ključ može se dodati u ssh-agent putem „ssh-add ~/.ssh/id_ecdsa_sk“, ali ssh-agent mora biti sastavljen s podrškom za ključeve „ecdsa-sk“, mora biti prisutna slojevita libsk-libfido2 i agent mora raditi na sustavu kojem se token povezuje.
Novi tip ključeva „ecdsa-sk“ je dodan jer se format ecdsa ključeva OpenSSH razlikuje od formata U2F za digitalne potpise ECDSA prisutnošću dodatnih polja.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster