Vydanie OpenSSH 8.2 s podporou tokenov dvojfaktorovej autentifikácie FIDO/U2F

Po štyroch mesiacoch vývoja predstavené uvoľnenie OpenSSH 8.2, otvorená implementácia klienta a servera na prácu s protokolmi SSH 2.0 a SFTP.

Kľúčovým zlepšením v vydaní OpenSSH 8.2 bola možnosť používania dvojfaktorovej autentifikácie prostredníctvom zariadení podporujúcich protokol U2F, vyvíjaného alianciou FIDO. U2F umožňuje vytvárať cenovo dostupné hardvérové tokeny na potvrdenie fyzickej prítomnosti používateľa, s ktorými sa interaguje cez USB, Bluetooth alebo NFC. Takéto zariadenia sú propagované ako prostriedok pre dvojfaktorovú autentifikáciu na stránkach, už ich podporujú hlavné prehliadače a vyrábajú rôzni výrobcovia, vrátane Yubico, Feitian, Thetis a Kensington.

Na interakciu so zariadeniami, ktoré potvrdzujú prítomnosť používateľa, pridali v OpenSSH nové typy kľúčov „ecdsa-sk“ a „ed25519-sk“, v ktorých sa používajú algoritmy digitálneho podpisu ECDSA a Ed25519 v kombinácii s hashom SHA-256. Postupy interakcie s tokenmi boli presunuté do prostrednej knižnice, ktorá sa načítava podobne ako knižnica na podporu PKCS#11 a je obalovou vrstvou nad knižnicou libfido2, poskytujúcou prostriedky na komunikáciu s tokenmi cez USB (podporované protokoly FIDO U2F/CTAP 1 a FIDO 2.0/CTAP 2). Pripravená vývojármi OpenSSH prostredná knižnica libsk-libfido2 je zahrnutá je súčasťou libfido2, rovnako ako HID ovládač pre OpenBSD.

Na autentifikáciu a generovanie kľúča je potrebné nastaviť parameter „SecurityKeyProvider“ alebo nastaviť premennú prostredia SSH_SK_PROVIDER, pričom sa uvedie cesta k vonkajšej knižnici libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). Je možná kompilácia openssh s integrovanou podporou knižnice-rozhrania (—with-security-key-builtin), v takom prípade je potrebné nastaviť parameter „SecurityKeyProvider=internal“.
Následne je potrebné spustiť „ssh-keygen -t ecdsa-sk“ alebo, ak sú kľúče už vytvorené a nastavené, pripojiť sa k serveru pomocou „ssh“. Pri spustení ssh-keygen bude vytvorený pár kľúčov uložený v „~/.ssh/id_ecdsa_sk“ a môže sa používať podobne ako iné kľúče.

Verejný kľúč (id_ecdsa_sk.pub) je potrebné skopírovať na server do súboru authorized_keys. Na strane servera sa iba kontroluje digitálny podpis, zatiaľ čo interakcia s tokenmi sa vykonáva na strane klienta (na serveri nie je potrebné inštalovať libsk-libfido2, ale server musí podporovať typ kľúčov „ecdsa-sk“). Vygenerovaný súkromný kľúč (id_ecdsa_sk) je v podstate deskriptorom kľúča, ktorý vytvára skutočný kľúč iba v spojení so zabezpečenou sekvenciou uchovávanou na strane tokenu U2F. Ak by sa kľúč id_ecdsa_sk dostal do rúk útočníka, na autentifikáciu by mu taktiež bol potrebný prístup k hardvérovému tokenu, bez ktorého je uložený súkromný kľúč v súbore id_ecdsa_sk nepoužiteľný.

Okrem toho, predvolená konfigurácia pri vykonávaní akýchkoľvek operácií s kľúčmi (ako pri generovaní, tak aj pri autentifikácii) vyžaduje miestne potvrdenie fyzickej prítomnosti používateľa, napríklad sa ponúka dotknúť sa senzora na tokene, čo sťažuje vedenie vzdialených útokov na systémy s pripojeným tokenom. Ako ďalšia ochranná bariéra môže byť počas spustenia ssh-keygen zadané heslo pre prístup k súboru s kľúčom.

V novej verzii OpenSSH bola oznámená blížiaca sa depreciácia algoritmov používajúcich hash SHA-1, v súvislosti s zvyšovaním efektívnosti kolíznych útokov s daným prefixom (náklady na nájdenie kolízie sú odhadované na približne 45 tisíc dolárov). V jednom z najbližších vydaní plánujú predvolene deaktivovať možnosť používania algoritmu digitálnych podpisov na otvorenom kľúči „ssh-rsa“, ktorý je spomenutý v pôvodnom RFC pre protokol SSH a ostáva bežne rozšírený v praxi (pre overenie použitia ssh-rsa vo svojich systémoch môžete skúsiť pripojiť sa cez ssh s voľbou „-oHostKeyAlgorithms=-ssh-rsa“).

Na zmiernenie prechodu na nové algoritmy v OpenSSH bude v jednom z nasledujúcich vydaní predvolene zapnutá možnosť UpdateHostKeys, ktorá umožní automaticky previesť klientov na spoľahlivejšie algoritmy. Medzi odporúčanými algoritmami na migráciu sú spomenuté rsa-sha2-256/512 na báze RFC8332 RSA SHA-2 (podporované od OpenSSH 7.2 a používané predvolene), ssh-ed25519 (podporované od OpenSSH 6.5) a ecdsa-sha2-nistp256/384/521 na báze RFC5656 ECDSA (podporované od OpenSSH 5.7).

V verzii OpenSSH 8.2 bola možnosť pripojenia pomocou „ssh-rsa“ zatiaľ ponechaná, ale tento algoritmus bol odstránený zo zoznamu CASignatureAlgorithms, ktorý určuje algoritmy vhodné pre digitálne podpisy nových certifikátov. Rovnako bol z predvolene podporovaných algoritmov pre výmenu kľúčov odstránený algoritmus diffie-hellman-group14-sha1. Upozorňuje sa na to, že používanie SHA-1 v certifikátoch je spojené s ďalším rizikom, pretože útočník má neobmedzený čas na hľadanie kolízií so existujúcim certifikátom, zatiaľ čo čas útoku na hosťovské kľúče je obmedzený časovým limitom pripojenia (LoginGraceTime).

Pri generovaní ssh-keygen sa teraz ako predvolený algoritmus používa rsa-sha2-512, ktorý sa podporuje od OpenSSH 7.2. To môže spôsobiť problémy s kompatibilitou pri pokuse o spracovanie certifikátov overených OpenSSH 8.2 na systémoch so staršími verziami OpenSSH (na obídenie problému pri vytváraní podpisu je možné jasne uviesť „ssh-keygen -t ssh-rsa“ alebo použiť algoritmy ecdsa-sha2-nistp256/384/521 podporované od OpenSSH 5.7).

Ďalšie zmeny:

  • Do sshd_config bola pridaná direktíva Include, ktorá umožňuje zahrnúť obsah iných súborov na aktuálne miesto v konfiguračnom súbore (pri zadaní názvu súboru je možné použiť glob-masky);
  • Do ssh-keygen bola pridaná voľba „no-touch-required“, ktorá vypína potrebu fyzického potvrdenia prístupu k tokenu pri generovaní kľúča;
  • Do sshd_config bola pridaná direktíva PubkeyAuthOptions, ktorá spája rôzne možnosti súvisiace s autentifikáciou pomocou verejných kľúčov. V súčasnosti je podporovaný iba flag „no-touch-required“, ktorý preskočí kontrolu fyzickej prítomnosti pri autorizácii pomocou tokenu. Podobne bola do súboru authorized_keys pridaná voľba „no-touch-required“;
  • Do ssh-keygen bola pridaná voľba „-O write-attestation=/path“, ktorá umožňuje zapisovať dodatočné attestačné certifikáty FIDO pri generovaní kľúčov. OpenSSH zatiaľ tieto certifikáty nevyužíva, ale v budúcnosti môžu byť použité na overenie umiestnenia kľúča v dôveryhodnom hardvérovom úložisku;
  • V nastaveniach ssh a sshd je teraz možné prostredníctvom direktívy IPQoS nastaviť režim priorizácie prevádzky. LE DSCP (Lower-Effort Per-Hop Behavior);
  • V ssh pri nastavení hodnoty „AddKeysToAgent=yes“, ak kľúč neobsahuje pole s komentárom, bude pridaný do ssh-agent s uvedením ako komentár cesty k kľúču. V
    ssh-keygen a ssh-agent sa ako komentáre kľúča teraz tiež používajú značky PKCS#11 a názov subjektu X.509 namiesto cesty k knižnici;
  • Do ssh-keygen bola pridaná možnosť exportovať PEM pre kľúče DSA a ECDSA;
  • Bol pridaný nový vykonateľný súbor ssh-sk-helper, ktorý sa používa na izoláciu knižnice prístupu k tokenom FIDO/U2F;
  • Do ssh a sshd bola pridaná konfiguračná možnosť „—with-zlib“ na kompiláciu s podporou knižnice zlib;
  • V súlade s požiadavkou RFC4253 sa pri pripojení zobrazuje varovanie o zablokovaní prístupu z dôvodu prekročenia limitov MaxStartups. Pre zjednodušenie diagnostiky zobrazuje hlavička procesu sshd, viditeľná pri použití nástroja ps, počet aktuálne autentifikovaných pripojení a stav limitu MaxStartups;
  • V ssh a ssh-agent pri volaní programu na zobrazenie výzvy zadanej cez $SSH_ASKPASS sa teraz dodatočne predáva flag s typom výzvy: „confirm“ – výzva na potvrdenie (áno/nie), „none“ – informačná správa, „blank“ – požiadavka na heslo;
  • V ssh-keygen bola pridaná nová operácia s digitálnymi podpismi „find-principals“ na vyhľadávanie v súbore allowed-signers používateľa, súvisiaceho s uvedeným digitálnym podpisom;
  • Zlepšená podpora izolácie procesu sshd v Linuxe pomocou mechanizmu seccomp: zakázané systémové volania IPC, povolené clock_gettime64(), clock_nanosleep_time64 a clock_nanosleep().

Zdroj: opennet.ru

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