Vydanie OpenSSH 8.2 s podporou dvojfaktorových autentifikačných tokenov FIDO/U2F

Po štyroch mesiacoch vývoja predložené uvoľnenie OpenSSH 8.2, otvorená implementácia klienta a servera pre prácu cez protokoly SSH 2.0 a SFTP.

Kľúčovým vylepšením vo verzii OpenSSH 8.2 bola možnosť používať dvojfaktorové overovanie so zariadeniami, ktoré tento protokol podporujú. U2F, vyvinuté alianciou FIDO. U2F umožňuje vytváranie lacných hardvérových tokenov na overenie fyzickej prítomnosti používateľa, interakciu s ním cez USB, Bluetooth alebo NFC. Takéto zariadenia sú propagované ako prostriedok dvojfaktorovej autentifikácie na webových stránkach, sú už podporované veľkými prehliadačmi a vyrábajú ich rôzni výrobcovia vrátane Yubico, Feitian, Thetis a Kensington.

Pre interakciu so zariadeniami, ktoré potvrdzujú prítomnosť používateľa, OpenSSH pridal nové typy kľúčov „ecdsa-sk“ a „ed25519-sk“, ktoré používajú algoritmy digitálneho podpisu ECDSA a Ed25519 v kombinácii s hashom SHA-256. Procedúry pre interakciu s tokenmi boli presunuté do medziľahlej knižnice, ktorá sa načítava podobne ako podporná knižnica PKCS#11 a funguje ako obal okolo knižnice. libfido2, ktorý poskytuje nástroje na komunikáciu s tokenmi cez USB (podporované sú protokoly FIDO U2F/CTAP 1 a FIDO 2.0/CTAP 2). Stredná knižnica libsk-libfido2 pripravená vývojármi OpenSSH v cene do jadra libfido2, ako aj HID vodič pre OpenBSD.

Na autentifikáciu a vygenerovanie kľúča musíte v nastaveniach zadať parameter „SecurityKeyProvider“ alebo nastaviť premennú prostredia SSH_SK_PROVIDER, ktorá určí cestu k externej knižnici libsk-libfido2.so (export SSH_SK_PROVIDER=/cesta/k/libsk-libfido2.so). OpenSSH je možné zostaviť so vstavanou podporou pre sprostredkovateľskú knižnicu (--with-security-key-builtin); v tomto prípade musíte nastaviť parameter „SecurityKeyProvider=internal“.
Ďalej spustite príkaz „ssh-keygen -t ecdsa-sk“ alebo, ak už boli kľúče vytvorené a nakonfigurované, pripojte sa k serveru pomocou „ssh“. Po spustení príkazu ssh-keygen sa vygenerovaný pár kľúčov uloží do priečinka „~/.ssh/id_ecdsa_sk“ a bude možné ho použiť ako iné kľúče.

Verejný kľúč (id_ecdsa_sk.pub) by sa mal skopírovať do súboru authorized_keys na serveri. Server overuje iba digitálny podpis, zatiaľ čo interakcia s tokenom prebieha na strane klienta (libsk-libfido2 nemusí byť na serveri nainštalovaný, ale server musí podporovať typ kľúča „ecdsa-sk“). Vygenerovaný súkromný kľúč (id_ecdsa_sk) je v podstate deskriptor kľúča, ktorý tvorí skutočný kľúč iba v kombinácii s tajnou sekvenciou uloženou v tokene U2F. Ak útočník získa kľúč id_ecdsa_sk, bude tiež potrebovať prístup k hardvérovému tokenu na autentifikáciu, bez ktorého je súkromný kľúč uložený v súbore id_ecdsa_sk nepoužiteľný.

Okrem toho, štandardne všetky operácie s kľúčmi (generovanie aj autentifikácia) vyžadujú lokálne potvrdenie fyzickej prítomnosti používateľa, napríklad dotykom senzora na tokene, čo sťažuje vykonávanie vzdialených útokov na systémy s pripojeným tokenom. Ako ďalšiu vrstvu zabezpečenia je možné počas spustenia ssh-keygen nastaviť aj heslo pre prístup k súboru s kľúčmi.

Nová verzia OpenSSH tiež oznámila nadchádzajúce ukončenie podpory algoritmov používajúcich hash SHA-1 z dôvodu povýšenie efektívnosť kolíznych útokov s daným prefixom (náklady na výber kolízie sa odhadujú na približne 45 tisíc dolárov). V jednom z pripravovaných vydaní plánujú predvolene deaktivovať možnosť používať algoritmus digitálneho podpisu s verejným kľúčom „ssh-rsa“, ktorý je uvedený v pôvodnom RFC pre protokol SSH a zostáva v praxi rozšírený (na testovanie použitia ssh-rsa vo vašich systémoch, môžete sa pokúsiť pripojiť cez ssh s voľbou „-oHostKeyAlgorithms=-ssh-rsa“).

Na hladký prechod na nové algoritmy v OpenSSH bude v budúcom vydaní štandardne povolené nastavenie UpdateHostKeys, ktoré automaticky migruje klientov na spoľahlivejšie algoritmy. Odporúčané algoritmy pre migráciu zahŕňajú rsa-sha2-256/512 založené na RFC8332 RSA SHA-2 (podporované od OpenSSH 7.2 a používané štandardne), ssh-ed25519 (podporované od OpenSSH 6.5) a ecdsa-sha2-nistp256/384/521 na RFC5656 ECDSA (podporované od OpenSSH 5.7).

OpenSSH 8.2 stále podporuje pripojenie pomocou „ssh-rsa“, ale tento algoritmus bol odstránený zo zoznamu CASignatureAlgorithms, ktorý definuje algoritmy povolené na digitálne podpisovanie nových certifikátov. Podobne bol algoritmus diffie-hellman-group14-sha1 odstránený z podporovaných predvolených algoritmov výmeny kľúčov. Je potrebné poznamenať, že používanie SHA-1 v certifikátoch nesie dodatočné riziko, pretože útočník má neobmedzený čas na nájdenie kolízie pre existujúci certifikát, zatiaľ čo útoky na kľúče hostiteľa sú obmedzené časovým limitom pripojenia (LoginGraceTime).

Pri spustení ssh-keygen sa štandardne používa algoritmus rsa-sha2-512, podporovaný od verzie OpenSSH 7.2, čo môže spôsobiť problémy s kompatibilitou pri pokuse o spracovanie certifikátov podpísaných OpenSSH 8.2 na systémoch so staršími verziami OpenSSH (na vyriešenie tohto problému môžete pri generovaní podpisu explicitne zadať „ssh-keygen -t ssh-rsa“ alebo použiť algoritmy ecdsa-sha2-nistp256/384/521 podporované od verzie OpenSSH 5.7).

Ďalšie zmeny:

  • Do sshd_config bola pridaná direktíva Include, ktorá umožňuje zahrnúť obsah iných súborov do aktuálnej pozície konfiguračného súboru (pri zadávaní názvu súboru je možné použiť masky glob);
  • Do ssh-keygen bola pridaná možnosť „no-touch-required“, ktorá deaktivuje potrebu fyzického potvrdenia prístupu k tokenu pri generovaní kľúča;
  • Do súboru sshd_config bola pridaná direktíva PubkeyAuthOptions, ktorá zlúčila rôzne možnosti súvisiace s autentifikáciou verejným kľúčom. V súčasnosti je podporovaný iba príznak „no-touch-required“, ktorý umožňuje preskočiť kontrolu fyzickej prítomnosti počas autentifikácie tokenom. Podobne bola do súboru authorized_keys pridaná možnosť „no-touch-required“.
  • Do ssh-keygen bola pridaná možnosť „-O write-attestation=/path“, ktorá umožňuje zápis ďalších atestačných certifikátov FIDO pri generovaní kľúčov. OpenSSH tieto certifikáty momentálne nepoužíva, ale v budúcnosti ich možno použiť na overenie, či je kľúč uložený v dôveryhodnom hardvérovom úložisku.
  • V nastaveniach ssh a sshd je teraz možné nastaviť režim prioritizácie prevádzky pomocou direktívy IPQoS. LE DSCP (Správanie s nižším úsilím na skok);
  • V ssh, ak kľúč neobsahuje pole komentára a nastaví hodnotu „AddKeysToAgent=yes“, bude pridaný do ssh-agentu s cestou ku kľúču zadanou ako komentár.
    ssh-keygen a ssh-agent teraz používajú ako komentáre v kľúči namiesto cesty ku knižnici aj označenia PKCS#11 a názov subjektu X.509;
  • Pridaná možnosť exportu PEM pre kľúče DSA a ECDSA do ssh-keygen;
  • Pridaný nový spustiteľný súbor ssh-sk-helper, ktorý sa používa na izoláciu prístupu knižnice k tokenom FIDO/U2F;
  • Pridaná možnosť zostavenia „--with-zlib“ pre ssh a sshd pre kompiláciu s podporou knižnice zlib;
  • V súlade s RFC 4253 sa teraz v banneri pripojenia zobrazuje upozornenie na zablokovanie prístupu z dôvodu prekročenia limitu MaxStartups. Pre zjednodušenie diagnostiky teraz hlavička procesu sshd, viditeľná pomocou utility ps, zobrazuje počet aktuálne overených pripojení a stav limitu MaxStartups.
  • V ssh a ssh-agent sa pri volaní programu na zobrazenie pozvánky na obrazovke, určenej pomocou $SSH_ASKPASS, teraz dodatočne odovzdáva príznak s typom pozvánky: „confirm“ — potvrdzovacie dialógové okno (áno/nie), „none“ — informačná správa, „blank“ — požiadavka na heslo;
  • Do ssh-keygen bola pridaná nová operácia digitálneho podpisu „find-principals“, ktorá vyhľadáva v súbore povolených podpisujúcich používateľov priradených k zadanému digitálnemu podpisu.
  • Улучшена поддержка изоляции процесса sshd в Linux при помощи механизма seccomp: запрещены системные вызовы IPC, разрешены clock_gettime64(), clock_nanosleep_time64 и clock_nanosleep().

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster