OpenSSH 8.2 izlaiŔana ar FIDO/U2F divu faktoru autentifikācijas marķieru atbalstu

Pēc četru mēneÅ”u attÄ«stÄ«bas uzrādÄ«ts atbrÄ«vot OpenSSH 8.2, atvērta klienta un servera ievieÅ”ana darbam, izmantojot SSH 2.0 un SFTP protokolus.

Galvenais OpenSSH 8.2 izlaiduma uzlabojums bija iespēja izmantot divu faktoru autentifikāciju, 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 pievienoti jauni atslēgu veidi ā€œecdsa-skā€ un ā€œed25519-skā€, kas izmanto ECDSA un Ed25519 digitālā paraksta algoritmus, apvienojumā ar 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 autentificētu un Ä£enerētu atslēgu, iestatÄ«jumos ir jānorāda parametrs ā€œSecurityKeyProviderā€ vai jāiestata vides mainÄ«gais SSH_SK_PROVIDER, norādot ceļu uz ārējo bibliotēku libsk-libfido2.so (eksportēt SSH_SK_PROVIDER=/path/to/libsk-libfido2. tātad). Ir iespējams izveidot openssh ar iebÅ«vētu slāņu bibliotēkas atbalstu (--with-security-key-builtin), Å”ajā gadÄ«jumā ir jāiestata parametrs ā€œSecurityKeyProvider=internalā€.
Tālāk jums jāpalaiž ā€œ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.

Jaunā OpenSSH versija arÄ« paziņoja par gaidāmo algoritmu novecoÅ”anu, izmantojot SHA-1 jaucējus, jo veicināŔanu sadursmes uzbrukumu efektivitāte ar noteiktu prefiksu (sadursmes izvēles izmaksas tiek lēstas aptuveni 45 tÅ«kstoÅ”u dolāru apmērā). Vienā no gaidāmajiem laidieniem viņi plāno pēc noklusējuma atspējot iespēju izmantot ssh-rsa publiskās atslēgas digitālā paraksta algoritmu, kas ir minēts sākotnējā RFC SSH protokolam un joprojām ir plaÅ”i izplatÄ«ts praksē (lai pārbaudÄ«tu ssh izmantoÅ”anu -rsa savās sistēmās, varat mēģināt izveidot savienojumu, izmantojot ssh, izmantojot opciju "-oHostKeyAlgorithms=-ssh-rsa").

Lai vienmērÄ«gi pārietu uz jauniem OpenSSH algoritmiem, nākamajā laidienā pēc noklusējuma tiks iespējots iestatÄ«jums UpdateHostKeys, kas automātiski migrēs klientus uz uzticamākiem algoritmiem. Ieteicamie migrācijas algoritmi ietver rsa-sha2-256/512, pamatojoties uz RFC8332 RSA SHA-2 (tiek atbalstÄ«ts kopÅ” OpenSSH 7.2 un tiek izmantots pēc noklusējuma), ssh-ed25519 (atbalstÄ«ts kopÅ” OpenSSH 6.5) un ecdsa-sha2-nistp256/384. uz RFC521 ECDSA (atbalstÄ«ts kopÅ” OpenSSH 5656).

Operētājsistēmā OpenSSH 8.2 joprojām ir pieejama iespēja izveidot savienojumu, izmantojot ā€œssh-rsaā€, taču Å”is algoritms ir izņemts no CASignatureAlgorithms saraksta, kas nosaka algoritmus, kas ir atļauti jaunu sertifikātu digitālai parakstÄ«Å”anai. LÄ«dzÄ«gi algoritms diffie-hellman-group14-sha1 ir noņemts no noklusējuma atbalstÄ«tajiem atslēgu apmaiņas algoritmiem. Tiek atzÄ«mēts, ka SHA-1 izmantoÅ”ana sertifikātos ir saistÄ«ta ar papildu risku, jo uzbrucējam ir neierobežots laiks, lai meklētu esoÅ”a sertifikāta sadursmi, savukārt uzbrukuma laiku resursdatora atslēgām ierobežo savienojuma taimauts (LoginGraceTime ).

Palaižot ssh-keygen, tagad pēc noklusējuma tiek izmantots rsa-sha2-512 algoritms, kas tiek atbalstÄ«ts kopÅ” OpenSSH 7.2, kas var radÄ«t saderÄ«bas problēmas, mēģinot apstrādāt OpenSSH 8.2 parakstÄ«tos sertifikātus sistēmās, kurās darbojas vecāki OpenSSH laidieni (lai apietu problēmu, kad Ä£enerējot parakstu, varat skaidri norādÄ«t ā€œssh-keygen -t ssh-rsaā€ vai izmantot ecdsa-sha2-nistp256/384/521 algoritmus, kas tiek atbalstÄ«ti kopÅ” OpenSSH 5.7).

Citas izmaiņas:

  • sshd_config ir pievienota Include direktÄ«va, kas ļauj iekļaut citu failu saturu paÅ”reizējā konfigurācijas faila pozÄ«cijā (norādot faila nosaukumu, var izmantot glob maskas);
  • Ssh-keygen ir pievienota opcija ā€œno-touch-requiredā€, kas atspējo nepiecieÅ”amÄ«bu fiziski apstiprināt piekļuvi marÄ·ierim, Ä£enerējot atslēgu;
  • Vietnei sshd_config ir pievienota PubkeyAuthOptions direktÄ«va, kas apvieno dažādas ar publiskās atslēgas autentifikāciju saistÄ«tas opcijas. PaÅ”laik tiek atbalstÄ«ts tikai karodziņŔ ā€œbez pieskārienaā€, lai izlaistu fiziskās klātbÅ«tnes pārbaudes pilnvaras autentifikācijai. Pēc analoÄ£ijas failam authorised_keys ir pievienota opcija ā€œno-touch-requiredā€;
  • Pievienota opcija "-O write-attestation=/path" ssh-keygen, lai ļautu rakstÄ«t papildu FIDO atestācijas sertifikātus, Ä£enerējot atslēgas. OpenSSH Å”os sertifikātus vēl neizmanto, taču vēlāk tos var izmantot, lai pārbaudÄ«tu, vai atslēga ir ievietota uzticamā datortehnikas veikalā;
  • Ssh un sshd iestatÄ«jumos tagad ir iespējams iestatÄ«t trafika prioritāŔu režīmu, izmantojot IPQoS direktÄ«vu LE DSCP (mazākas piepÅ«les uz apiņu uzvedÄ«ba);
  • Ssh, iestatot vērtÄ«bu ā€œAddKeysToAgent=yesā€, ja atslēga nesatur komentāra lauku, tā tiks pievienota ssh-agent, norādot ceļu uz atslēgu kā komentāru. IN
    ssh-keygen un ssh-agent arī tagad izmanto PKCS#11 etiķetes un X.509 tēmas nosaukumu, nevis bibliotēkas ceļu kā komentārus atslēgā;

  • Pievienota iespēja eksportēt PEM DSA un ECDSA atslēgām uz ssh-keygen;
  • Pievienots jauns izpildāmais fails ssh-sk-helper, ko izmanto, lai izolētu FIDO/U2F marÄ·iera piekļuves bibliotēku;
  • Pievienota ā€œ--with-zlibā€ veidoÅ”anas opcija ssh un sshd kompilÄ“Å”anai ar zlib bibliotēkas atbalstu;
  • Saskaņā ar RFC4253 prasÄ«bu, savienojuma laikā redzamajā reklāmkarogā tiek sniegts brÄ«dinājums par piekļuves bloÄ·Ä“Å”anu MaxStartups ierobežojumu pārsniegÅ”anas dēļ. Lai vienkārÅ”otu diagnostiku, sshd procesa galvene, kas ir redzama, izmantojot utilÄ«tu ps, tagad parāda paÅ”laik autentificēto savienojumu skaitu un MaxStartups limita statusu;
  • Programmā ssh un ssh-agent, izsaucot programmu, lai ekrānā parādÄ«tu uzaicinājumu, kas norādÄ«ts, izmantojot $SSH_ASKPASS, tagad tiek papildus pārsÅ«tÄ«ts karodziņŔ ar ielÅ«guma veidu: ā€œapstiprinātā€ - apstiprinājuma dialoglodziņŔ (jā/nē), ā€œnav. ā€ - informatÄ«vs ziņojums, "tukÅ”s" - paroles pieprasÄ«jums;
  • Pievienota jauna ciparparakstu darbÄ«ba "find-principals" ssh-keygen, lai meklētu atļauto parakstÄ«tāju failā lietotāju, kas saistÄ«ts ar norādÄ«to ciparparakstu;
  • Uzlabots atbalsts sshd procesa izolācijai operētājsistēmā Linux, izmantojot seccomp mehānismu: IPC sistēmas izsaukumu atspējoÅ”ana, clock_gettime64(), clock_nanosleep_time64 un clock_nanosleep().

Avots: opennet.ru

Pievieno komentāru