Nakon četiri mjeseca razvoja puštanje , otvorena klijentska i poslužiteljska implementacija za rad preko SSH 2.0 i SFTP protokola.
Ključno poboljšanje u izdanju OpenSSH 8.2 bila je mogućnost korištenja dvofaktorske provjere autentičnosti pomoću uređaja koji podržavaju protokol , koji je razvio savez . U2F omogućuje stvaranje jeftinih hardverskih tokena za provjeru fizičke prisutnosti korisnika, interakciju s njima putem USB-a, Bluetooth-a ili NFC-a. Takvi se uređaji promiču kao sredstvo dvofaktorske autentifikacije na web stranicama, već ih podržavaju glavni preglednici i proizvode ih različiti proizvođači, uključujući Yubico, Feitian, Thetis i Kensington.
Za interakciju s uređajima koji potvrđuju prisutnost korisnika, OpenSSH-u su dodani novi tipovi ključeva "ecdsa-sk" i "ed25519-sk", koji koriste algoritme digitalnog potpisa ECDSA i Ed25519, u kombinaciji s hashom SHA-256. Procedure za interakciju s tokenima smještene su u međubiblioteku, koja se učitava na sličan način kao biblioteka za podršku PKCS#11 i predstavlja omotač na vrhu biblioteke , koji pruža alate za komunikaciju tokenima preko USB-a (podržani su protokoli FIDO U2F/CTAP 1 i FIDO 2.0/CTAP 2). Srednja biblioteka libsk-libfido2 koju su pripremili programeri OpenSSH-a u jezgru libfido2, kao i za OpenBSD.
Za autentifikaciju i generiranje ključa morate navesti parametar “SecurityKeyProvider” u postavkama ili postaviti varijablu okruženja SSH_SK_PROVIDER, koja označava put do vanjske biblioteke libsk-libfido2.so (izvoz SSH_SK_PROVIDER=/path/to/libsk-libfido2. tako). Moguće je izgraditi openssh s ugrađenom podrškom za biblioteku slojeva (--with-security-key-builtin), u ovom slučaju trebate postaviti parametar “SecurityKeyProvider=internal”.
Zatim trebate pokrenuti “ssh-keygen -t ecdsa-sk” ili, ako su ključevi već kreirani i konfigurirani, spojiti se na poslužitelj koristeći “ssh”. Kada pokrenete ssh-keygen, generirani par ključeva bit će spremljen u "~/.ssh/id_ecdsa_sk" i može se koristiti slično drugim ključevima.
Javni ključ (id_ecdsa_sk.pub) treba kopirati na poslužitelj u datoteci authorized_keys. Na strani poslužitelja provjerava se samo digitalni potpis, a interakcija s tokenima se vrši na strani klijenta (ne morate instalirati libsk-libfido2 na poslužitelju, ali poslužitelj mora podržavati tip ključa “ecdsa-sk”) . Generirani privatni ključ (id_ecdsa_sk) u biti je držač ključa, koji tvori pravi ključ samo u kombinaciji s tajnim nizom pohranjenim na strani U2F tokena. Ako ključ id_ecdsa_sk padne u ruke napadača, da bi prošao autentifikaciju morat će također dobiti pristup hardverskom tokenu, bez kojeg je privatni ključ pohranjen u datoteci id_ecdsa_sk beskoristan.
Osim toga, prema zadanim postavkama, prilikom izvođenja bilo kakvih operacija s ključevima (i tijekom generiranja i tijekom autentifikacije), potrebna je lokalna potvrda fizičke prisutnosti korisnika, na primjer, predlaže se dodirivanje senzora na tokenu, što otežava izvršavati udaljene napade na sustave s povezanim tokenom. Kao još jedna linija obrane, lozinka se također može odrediti tijekom faze pokretanja ssh-keygena za pristup ključnoj datoteci.
Nova verzija OpenSSH također je najavila nadolazeću zastaru algoritama koji koriste SHA-1 hashove zbog učinkovitost napada sudara s danim prefiksom (trošak odabira sudara procjenjuje se na približno 45 tisuća dolara). U jednom od nadolazećih izdanja planiraju prema zadanim postavkama onemogućiti mogućnost korištenja algoritma digitalnog potpisa javnog ključa "ssh-rsa", koji se spominje u izvornom RFC-u za SSH protokol i ostaje široko rasprostranjen u praksi (za testiranje upotrebe ssh-rsa u vašim sustavima, možete se pokušati povezati putem ssh s opcijom “-oHostKeyAlgorithms=-ssh-rsa”).
Kako bi se olakšao prijelaz na nove algoritme u OpenSSH, u budućem izdanju postavka UpdateHostKeys bit će omogućena prema zadanim postavkama, što će automatski migrirati klijente na pouzdanije algoritme. Preporučeni algoritmi za migraciju uključuju rsa-sha2-256/512 temeljen na RFC8332 RSA SHA-2 (podržan od OpenSSH 7.2 i koristi se prema zadanim postavkama), ssh-ed25519 (podržan od OpenSSH 6.5) i ecdsa-sha2-nistp256/384/521 temeljen na RFC5656 ECDSA (podržano od OpenSSH 5.7).
U OpenSSH 8.2 još uvijek je dostupna mogućnost povezivanja pomoću "ssh-rsa", ali je ovaj algoritam uklonjen s popisa CASignatureAlgorithms, koji definira algoritme dopuštene za digitalno potpisivanje novih certifikata. Slično tome, algoritam diffie-hellman-group14-sha1 uklonjen je iz podržanih zadanih algoritama za razmjenu ključeva. Napominje se da je korištenje SHA-1 u certifikatima povezano s dodatnim rizikom, budući da napadač ima neograničeno vrijeme za traženje kolizije za postojeći certifikat, dok je vrijeme napada na ključeve hosta ograničeno timeoutom veze (LoginGraceTime ).
Pokretanje ssh-keygena sada je prema zadanim postavkama algoritam rsa-sha2-512, koji je podržan od OpenSSH 7.2, što može stvoriti probleme s kompatibilnošću prilikom pokušaja obrade certifikata potpisanih u OpenSSH 8.2 na sustavima koji pokreću starija izdanja OpenSSH (da biste zaobišli problem kada generiranje potpisa, možete eksplicitno navesti "ssh-keygen -t ssh-rsa" ili koristiti algoritme ecdsa-sha2-nistp256/384/521, podržane od OpenSSH 5.7).
Ostale promjene:
- Direktiva Include dodana je u sshd_config, koja vam omogućuje uključivanje sadržaja drugih datoteka na trenutnoj poziciji konfiguracijske datoteke (glob maske se mogu koristiti kada se navodi naziv datoteke);
- Opcija “no-touch-required” dodana je u ssh-keygen, koja onemogućuje potrebu za fizičkim potvrđivanjem pristupa tokenu prilikom generiranja ključa;
- Direktiva PubkeyAuthOptions dodana je u sshd_config, koja kombinira različite opcije vezane uz autentifikaciju s javnim ključem. Trenutačno je podržana samo oznaka "bez dodira" za preskakanje provjera fizičke prisutnosti za autentifikaciju tokenom. Analogno tome, opcija “no-touch-required” dodana je datoteci authorized_keys;
- Dodana je opcija "-O write-attestation=/path" u ssh-keygen kako bi se omogućilo pisanje dodatnih FIDO atestacijskih certifikata prilikom generiranja ključeva. OpenSSH još ne koristi ove certifikate, ali kasnije se mogu koristiti za provjeru je li ključ smješten u pouzdanoj trgovini hardvera;
- U postavkama ssh i sshd sada je moguće postaviti način prioriteta prometa putem IPQoS direktive (Ponašanje manjeg napora po skoku);
- U ssh-u, prilikom postavljanja vrijednosti “AddKeysToAgent=yes”, ako ključ ne sadrži polje komentara, bit će dodan ssh-agentu navodeći put do ključa kao komentar. U
ssh-keygen i ssh-agent također sada koriste PKCS#11 oznake i X.509 naziv subjekta umjesto staze knjižnice kao komentare u ključu; - Dodana mogućnost izvoza PEM-a za DSA i ECDSA ključeve u ssh-keygen;
- Dodana je nova izvršna datoteka, ssh-sk-helper, koja se koristi za izolaciju biblioteke pristupa tokenima FIDO/U2F;
- Dodana opcija izgradnje “--with-zlib” za ssh i sshd za kompilaciju s podrškom za zlib knjižnicu;
- U skladu sa zahtjevom RFC4253, u banneru koji se prikazuje tijekom povezivanja prikazano je upozorenje o blokiranju pristupa zbog prekoračenja ograničenja MaxStartups. Kako bi se pojednostavila dijagnostika, zaglavlje sshd procesa, vidljivo prilikom korištenja uslužnog programa ps, sada prikazuje broj trenutno provjerenih veza i status ograničenja MaxStartups;
- U ssh i ssh-agentu, prilikom pozivanja programa za prikaz pozivnice na ekranu, specificirane preko $SSH_ASKPASS, sada se dodatno prenosi zastavica s tipom pozivnice: “potvrdi” - dijalog za potvrdu (da/ne), “ništa ” - informativna poruka, “prazno” — zahtjev za lozinku;
- Dodana je nova operacija digitalnih potpisa "find-principals" u ssh-keygen za pretraživanje datoteke dozvoljenih potpisnika za korisnika koji je povezan s određenim digitalnim potpisom;
- Улучшена поддержка изоляции процесса sshd в Linux при помощи механизма seccomp: запрещены системные вызовы IPC, разрешены clock_gettime64(), clock_nanosleep_time64 и clock_nanosleep().
Izvor: opennet.ru
