Po štirih mesecih razvoja sprostitev , odprta odjemalska in strežniška izvedba za delo prek protokolov SSH 2.0 in SFTP.
Ključna izboljšava v izdaji OpenSSH 8.2 je bila možnost uporabe dvofaktorske avtentikacije z napravami, ki podpirajo protokol. , ki ga je razvila zavezništvo U2F omogoča ustvarjanje cenovno ugodnih strojnih žetonov za preverjanje fizične prisotnosti uporabnika, interakcijo z njim prek USB-ja, Bluetootha ali NFC-ja. Te naprave se na spletnih mestih promovirajo kot sredstvo za dvofaktorsko avtentikacijo, jih že podpirajo večji brskalniki in jih izdelujejo različni proizvajalci, vključno z Yubico, Feitian, Thetis in Kensington.
Za interakcijo z napravami, ki potrjujejo prisotnost uporabnika, je OpenSSH dodal novi vrsti ključev, »ecdsa-sk« in »ed25519-sk«, ki uporabljata algoritma digitalnega podpisa ECDSA in Ed25519 v kombinaciji z zgoščeno vrednostjo SHA-256. Postopki za interakcijo z žetoni so bili premaknjeni v vmesno knjižnico, ki se nalaga podobno kot podporna knjižnica PKCS#11 in deluje kot ovoj okoli knjižnice. , ki omogoča komunikacijo z žetoni prek USB-ja (podprta sta protokola FIDO U2F/CTAP 1 in FIDO 2.0/CTAP 2). Vmesna knjižnica libsk-libfido2, ki so jo pripravili razvijalci OpenSSH, v osnovno sestavo libfido2, kot tudi za OpenBSD.
Za preverjanje pristnosti in ustvarjanje ključa morate v nastavitvah določiti parameter »SecurityKeyProvider« ali nastaviti okoljsko spremenljivko SSH_SK_PROVIDER, ki določa pot do zunanje knjižnice libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). OpenSSH je mogoče zgraditi z vgrajeno podporo za vmesno knjižnico (--with-security-key-builtin); v tem primeru morate nastaviti parameter »SecurityKeyProvider=internal«.
Nato zaženite »ssh-keygen -t ecdsa-sk« ali, če so ključi že ustvarjeni in konfigurirani, se povežite s strežnikom z uporabo »ssh«. Ko zaženete ssh-keygen, se bo ustvarjeni par ključev shranil v »~/.ssh/id_ecdsa_sk« in ga je mogoče uporabiti kot druge ključe.
Javni ključ (id_ecdsa_sk.pub) je treba kopirati v datoteko authorized_keys na strežniku. Strežnik preveri le digitalni podpis, medtem ko interakcija z žetonom poteka na odjemalcu (libsk-libfido2 ni treba namestiti na strežnik, vendar mora strežnik podpirati tip ključa »ecdsa-sk«). Ustvarjeni zasebni ključ (id_ecdsa_sk) je v bistvu deskriptor ključa, ki tvori pravi ključ le v kombinaciji s tajnim zaporedjem, shranjenim na žetonu U2F. Če napadalec pridobi ključ id_ecdsa_sk, bo za preverjanje pristnosti potreboval tudi dostop do strojne opreme žetona, brez katerega je zasebni ključ, shranjen v datoteki id_ecdsa_sk, neuporaben.
Poleg tega vse operacije s ključi (tako generiranje kot preverjanje pristnosti) privzeto zahtevajo lokalno potrditev uporabnikove fizične prisotnosti, kot je dotik senzorja na žetonu, kar otežuje izvajanje oddaljenih napadov na sisteme s povezanim žetonom. Kot dodatno plast varnosti je mogoče med zagonom ssh-keygen nastaviti tudi geslo za dostop do datoteke s ključi.
Nova različica OpenSSH je prav tako napovedala prihajajočo opustitev algoritmov, ki uporabljajo zgoščene vrednosti SHA-1 zaradi učinkovitost napadov trka z dano predpono (strošek izbire trka je ocenjen na približno 45 tisoč dolarjev). V eni od prihajajočih izdaj nameravajo privzeto onemogočiti možnost uporabe algoritma digitalnega podpisa javnega ključa »ssh-rsa«, ki je omenjen v izvirnem RFC za protokol SSH in ostaja razširjen v praksi (za testiranje uporabe ssh-rsa v vaših sistemih, se lahko poskusite povezati prek ssh z možnostjo »-oHostKeyAlgorithms=-ssh-rsa«).
Za gladek prehod na nove algoritme v OpenSSH bo v prihodnji izdaji privzeto omogočena nastavitev UpdateHostKeys, ki bo samodejno preselila odjemalce na bolj zanesljive algoritme. Priporočeni algoritmi za selitev vključujejo rsa-sha2-256/512, ki temelji na RFC8332 RSA SHA-2 (podprt od OpenSSH 7.2 in se uporablja privzeto), ssh-ed25519 (podprt od OpenSSH 6.5) in ecdsa-sha2-nistp256/384/521. na RFC5656 ECDSA (podprto od OpenSSH 5.7).
OpenSSH 8.2 še vedno podpira povezovanje z uporabo »ssh-rsa«, vendar je bil ta algoritem odstranjen s seznama CASignatureAlgorithms, ki določa algoritme, dovoljene za digitalno podpisovanje novih potrdil. Podobno je bil algoritem diffie-hellman-group14-sha1 odstranjen s seznama podprtih privzetih algoritmov za izmenjavo ključev. Upoštevati je treba, da uporaba SHA-1 v potrdilih prinaša dodatno tveganje, saj ima napadalec neomejen čas za iskanje kolizije za obstoječe potrdilo, medtem ko so napadi na ključe gostitelja omejeni s časovno omejitvijo povezave (LoginGraceTime).
Pri zagonu ssh-keygen se privzeto uporablja algoritem rsa-sha2-512, ki je podprt od različice OpenSSH 7.2, kar lahko povzroči težave z združljivostjo pri poskusu obdelave potrdil, podpisanih z OpenSSH 8.2, v sistemih s starejšimi izdajami OpenSSH (če želite to težavo obiti, lahko pri ustvarjanju podpisa izrecno določite »ssh-keygen -t ssh-rsa« ali pa uporabite algoritme ecdsa-sha2-nistp256/384/521, ki so podprti od različice OpenSSH 5.7).
Druge spremembe:
- V sshd_config je bila dodana direktiva Include, ki omogoča vključitev vsebine drugih datotek v trenutni položaj konfiguracijske datoteke (pri določanju imena datoteke se lahko uporabijo glob maske);
- V ssh-keygen je bila dodana možnost »no-touch-required«, ki onemogoči potrebo po fizični potrditvi dostopa do žetona pri ustvarjanju ključa;
- V sshd_config je bila dodana direktiva PubkeyAuthOptions, ki združuje različne možnosti, povezane z overjanjem z javnim ključem. Trenutno je podprta samo zastavica »no-touch-required«, ki omogoča preskok preverjanja fizične prisotnosti med overjanjem žetona. Podobno je bila v datoteko authorized_keys dodana možnost »no-touch-required«.
- V ssh-keygen je bila dodana možnost »-O write-attestation=/path«, ki omogoča zapisovanje dodatnih potrdil FIDO pri ustvarjanju ključev. OpenSSH trenutno teh potrdil ne uporablja, vendar jih je mogoče v prihodnosti uporabiti za preverjanje, ali je ključ shranjen v zaupanja vrednem strojnem pomnilniku.
- V nastavitvah ssh in sshd je zdaj mogoče nastaviti način določanja prioritet prometa prek direktive IPQoS. (Obnašanje z manjšim naporom na skok);
- V ssh, če ključ pri nastavitvi vrednosti "AddKeysToAgent=yes" ne vsebuje polja za komentar, bo dodan ssh-agentu s potjo do ključa, navedeno kot komentar.
ssh-keygen in ssh-agent zdaj namesto poti knjižnice uporabljata tudi oznake PKCS#11 in ime subjekta X.509 kot komentarje v ključu; - Dodana možnost izvoza PEM za ključe DSA in ECDSA v ssh-keygen;
- Dodana nova izvedljiva datoteka ssh-sk-helper, ki se uporablja za izolacijo dostopa knjižnice do žetonov FIDO/U2F;
- Dodana možnost gradnje "--with-zlib" za ssh in sshd za prevajanje s podporo za knjižnico zlib;
- V skladu z RFC 4253 se v pasici povezave zdaj prikaže opozorilo o blokiranem dostopu zaradi prekoračitve omejitve MaxStartups. Za poenostavitev diagnostike glava procesa sshd, ki je vidna s pripomočkom ps, zdaj prikazuje število trenutno overjenih povezav in stanje omejitve MaxStartups.
- V ssh in ssh-agent se pri klicu programa za prikaz povabila na zaslonu, določenega z $SSH_ASKPASS, zdaj dodatno posreduje zastavica s tipom povabila: »confirm« — potrditveno pogovorno okno (da/ne), »none« — informativno sporočilo, »blank« — zahteva za geslo;
- V ssh-keygen je bila dodana nova operacija digitalnega podpisa, »find-principals«, ki išče uporabnika, povezanega z določenim digitalnim podpisom, v datoteki allowed-signers;
- Улучшена поддержка изоляции процесса sshd в Linux при помощи механизма seccomp: запрещены системные вызовы IPC, разрешены clock_gettime64(), clock_nanosleep_time64 и clock_nanosleep().
Vir: opennet.ru
