Po štyroch mesiacoch vývoja uvoľnenie , 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ú. , vyvinuté alianciou . 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. , 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 do jadra libfido2, ako aj 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 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. (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
