Uz OpenSSH kodu bāzi
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.
Lai iespējotu U2F, varat izmantot jaunu koda bāzes daļu no
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