OpenSSH pievieno atbalstu universālai divu faktoru autentifikācijai

Uz OpenSSH kodu bāzi pievienots eksperimentāls atbalsts divu faktoru autentifikācijai, izmantojot ierīces, kas atbalsta protokolu U2F, ko izstrādājusi alianse FIDO. U2F ļauj izveidot zemu izmaksu aparatūras marķierus, lai pārbaudītu lietotāja fizisko klātbūtni, mijiedarbojoties ar tiem, izmantojot USB, Bluetooth vai NFC. Šādas ierīces vietnēs tiek reklamētas kā divu faktoru autentifikācijas līdzeklis, tās jau atbalsta lielākās pārlūkprogrammas, un tās ražo dažādi ražotāji, tostarp Yubico, Feitian, Thetis un Kensington.

Lai mijiedarbotos ar ierīcēm, kas apstiprina lietotāja klātbūtni, OpenSSH ir pievienots jauna veida atslēgas.[e-pasts aizsargāts]” (“ecdsa-sk”), kas izmanto ECDSA (Elliptic Curve Digital Signature Algorithm) digitālā paraksta algoritmu ar NIST P-256 eliptisku līkni un SHA-256 jaucējfunkciju. Procedūras mijiedarbībai ar marķieriem tiek ievietotas starpbibliotēkā, kas tiek ielādēta līdzīgi kā bibliotēka PKCS#11 atbalstam un ir bibliotēkas augšpusē esošais iesaiņojums. libfido2, kas nodrošina rīkus saziņai ar marķieriem, izmantojot USB (tiek atbalstīti FIDO U2F/CTAP 1 un FIDO 2.0/CTAP 2 protokoli). Starpposma bibliotēka libsk-libfido2, ko sagatavojuši OpenSSH izstrādātāji iekļauts libfido2 kodolā, kā arī HID draiveris priekš OpenBSD.

Lai iespējotu U2F, varat izmantot jaunu koda bāzes daļu no krātuve OpenSSH un bibliotēkas HEAD filiāle libfido2, kurā jau ir iekļauts OpenSSH nepieciešamais slānis.
Libfido2 atbalsta OpenBSD, Linux, macOS un Windows.

Lai autentificētu un ģenerētu atslēgu, ir jāiestata vides mainīgais SSH_SK_PROVIDER, norādot tajā ceļu uz libsk-libfido2.so (eksportējiet SSH_SK_PROVIDER=/path/to/libsk-libfido2.so) vai definējiet bibliotēku, izmantojot SecurityKeyProvider. iestatījumu un pēc tam palaidiet "ssh-keygen -t ecdsa-sk" vai, ja atslēgas jau ir izveidotas un konfigurētas, izveidojiet savienojumu ar serveri, izmantojot "ssh". Palaižot ssh-keygen, ģenerētais atslēgu pāris tiks saglabāts mapē ~/.ssh/id_ecdsa_sk un to var izmantot līdzīgi kā citas atslēgas.

Publiskā atslēga (id_ecdsa_sk.pub) ir jāpārkopē uz serveri Author_keys failā. Servera pusē tiek pārbaudīts tikai ciparparaksts, un klienta pusē tiek veikta mijiedarbība ar marķieriem (serverī nav jāinstalē libsk-libfido2, bet serverim jāatbalsta atslēgas veids “ecdsa-sk”). . Ģenerētā privātā atslēga (id_ecdsa_sk) būtībā ir atslēgas rokturis, kas veido īstu atslēgu tikai kombinācijā ar U2F marķiera pusē saglabāto slepeno secību.

Ja atslēga id_ecdsa_sk nokļūst uzbrucēja rokās, lai nokārtotu autentifikāciju, viņam būs jāpiekļūst arī aparatūras marķierim, bez kura id_ecdsa_sk failā saglabātā privātā atslēga ir bezjēdzīga. Turklāt pēc noklusējuma, veicot jebkādas darbības ar atslēgām (gan ģenerēšanas, gan autentifikācijas laikā), ir nepieciešams lokāls lietotāja fiziskās klātbūtnes apstiprinājums, piemēram, tiek piedāvāts pieskarties sensoram uz marķiera, kas apgrūtina veikt attālinātus uzbrukumus sistēmām ar pievienotu pilnvaru. Kā vēl vienu aizsardzības līniju ssh-keygen startēšanas fāzē var norādīt arī paroli, lai piekļūtu atslēgas failam.

U2F atslēgu var pievienot ssh-agent, izmantojot "ssh-add ~/.ssh/id_ecdsa_sk", bet ssh-agent ir jāveido ar atbalstu "ecdsa-sk" taustiņiem, ir jābūt klāt libsk-libfido2 slānim un aģentam ir jādarbojas sistēmā , kurai ir pievienots marķieris.
Ir pievienots jauns atslēgas veids “ecdsa-sk”, jo OpenSSH ecdsa atslēgu formāts atšķiras no U2F formāta ECDSA ciparparakstiem papildu lauku klātbūtnē.

Avots: opennet.ru

Pievieno komentāru