OpenSSH lisab universaalse kahefaktorilise autentimise tuge

OpenSSH koodibaasi lisatud eksperimentaalne tugi kahefaktorilisele autentimisele, kasutades protokolli toetavaid seadmeid U2F, mille on välja töötanud liit FIDO. U2F võimaldab luua odavaid riistvaramärke, et kontrollida kasutaja füüsilist kohalolekut, suheldes nendega USB, Bluetoothi ​​või NFC kaudu. Selliseid seadmeid reklaamitakse veebisaitidel kahefaktorilise autentimise vahendina, suuremad brauserid juba toetavad neid ja neid toodavad erinevad tootjad, sealhulgas Yubico, Feitian, Thetis ja Kensington.

Kasutaja olemasolu kinnitavate seadmetega suhtlemiseks on OpenSSH-sse lisatud uut tüüpi võtmed "[meiliga kaitstud]” (“ecdsa-sk”), mis kasutab ECDSA (Elliptic Curve Digital Signature Algorithm) digitaalallkirja algoritmi NIST P-256 elliptilise kõvera ja SHA-256 räsiga. Tokenidega suhtlemise protseduurid paigutatakse vahepealsesse teeki, mis laaditakse sarnaselt PKCS#11 toe teegiga ja on teegi peal olev ümbris libfido2, mis pakub tööriistu USB kaudu žetoonidega suhtlemiseks (toetatud on FIDO U2F/CTAP 1 ja FIDO 2.0/CTAP 2 protokollid). Vaheteek libsk-libfido2, mille on koostanud OpenSSH arendajad kaasa arvatud libfido2-sse, samuti HID juht OpenBSD jaoks.

U2F lubamiseks saate kasutada värsket koodibaasi lõiku hoidla OpenSSH ja raamatukogu HEAD haru libfido2, mis sisaldab juba OpenSSH jaoks vajalikku kihti.
Libfido2 toetab OpenBSD-d, Linuxi, macOS-i ja Windowsi.

Võtme autentimiseks ja genereerimiseks peate määrama keskkonnamuutuja SSH_SK_PROVIDER, näidates selles tee failile libsk-libfido2.so (eksportige SSH_SK_PROVIDER=/path/to/libsk-libfido2.so) või määrake teek SecurityKeyProvideri kaudu. seadistus ja seejärel käivitage "ssh-keygen -t ecdsa-sk" või, kui võtmed on juba loodud ja konfigureeritud, looge ühendus serveriga "ssh" abil. Kui käivitate käsu ssh-keygen, salvestatakse loodud võtmepaar kausta "~/.ssh/id_ecdsa_sk" ja seda saab kasutada sarnaselt teiste võtmetega.

Avalik võti (id_ecdsa_sk.pub) tuleks kopeerida faili authorised_keys serverisse. Serveri poolel kontrollitakse ainult digitaalset allkirja ja kliendi poolel toimub interaktsioon žetoonidega (te ei pea serverisse installima libsk-libfido2, kuid server peab toetama võtmetüüpi "ecdsa-sk") . Loodud privaatvõti (id_ecdsa_sk) on sisuliselt võtmekäepide, mis moodustab reaalse võtme ainult koos U2F-märgi poolele salvestatud salajadaga.

Kui võti id_ecdsa_sk satub ründaja kätte, peab ta autentimise läbimiseks saama juurdepääsu ka riistvaramärgile, ilma milleta pole failis id_ecdsa_sk salvestatud privaatvõti kasutu. Lisaks on vaikimisi võtmetega mis tahes toimingute tegemisel (nii genereerimisel kui ka autentimise ajal) vaja kohalikku kinnitust kasutaja füüsilise kohaloleku kohta, näiteks tehakse ettepanek puudutada tokenil olevat andurit, mis raskendab sooritada kaugrünnakuid ühendatud loaga süsteemidele. Teise kaitseliinina saab võtmefailile juurde pääsemiseks määrata ka parooli ssh-keygeni käivitusfaasis.

U2F-võtit saab lisada ssh-agendisse "ssh-add ~/.ssh/id_ecdsa_sk" kaudu, kuid ssh-agent peab olema ehitatud "ecdsa-sk" võtmete toega, kiht libsk-libfido2 peab olema olemas ja agent peab töötama süsteemis , millega luba on ühendatud.
Lisatud on uus võtmetüüp “ecdsa-sk”, kuna OpenSSH ecdsa võtmete formaat erineb ECDSA digitaalallkirjade U2F-vormingust lisaväljade olemasolul.

Allikas: opennet.ru

Lisa kommentaar