După cinci luni de dezvoltare lansare , o implementare deschisă a clientului și serverului pentru funcționarea pe protocoalele SSH 2.0 și SFTP.
Modificări principale:
- În ssh și sshd a fost adăugată suport experimental pentru metoda de schimb de chei, rezistentă la atacurile cu computere cuantice. Computerele cuantice rezolvă radical mai repede problema descompunerii unui număr natural în factori primi, care stă la baza algoritmilor moderni de criptare asimetrică și care este, în mod eficient, imposibil de rezolvat pe procesoare clasice. Metoda propusă se bazează pe algoritmul (funcția ntrup4591761), dezvoltată pentru criptosisteme post-quantum și pe metoda de schimb de chei bazată pe curbe eliptice X25519;
- În sshd, directivele ListenAddress și PermitOpen au încetat să mai supporte sintaxa învechită „host/port”, implementată în 2001 ca alternativă la „host:port” pentru a simplifica utilizarea IPv6. În condițiile actuale, sintaxa pentru IPv6 a devenit „[::1]:22”, iar „host/port” este adesea confundat cu specificarea subrețelei (CIDR);
- În ssh, ssh-agent și ssh-add a fost implementată suportul pentru chei în token-urile PKCS#11;
- În ssh-keygen, dimensiunea cheii RSA a fost crescută implicit la 3072 biți, conform noilor recomandări NIST;
- În ssh este permisă utilizarea setării „PKCS11Provider=none” pentru a suprascrie directiva PKCS11Provider specificată în ssh_config;
- În sshd, s-a asigurat înregistrarea în log a situațiilor în care conexiunea a fost încheiată în timpul încercării de a executa comenzi blocate de restricția „ForceCommand=internal-sftp” în sshd_config;
- În ssh, la afișarea întrebării de confirmare pentru acceptarea unei chei gazdă noi, în loc de răspunsul „yes”, acum este recunoscută impresia de amprentă corectă a cheii (ca răspuns la invitația de a confirma conexiunea, utilizatorul poate copia manual hash-ul de referință obținut separat din clipboard, pentru a nu fi necesară compararea manuală);
- În ssh-keygen s-a asigurat creșterea automată a numărului de secvență în certificat la crearea semnăturilor digitale pentru mai multe certificate din linia de comandă;
- În scp și sftp a fost adăugată o nouă opțiune „-J”, echivalentă cu setarea ProxyJump;
- În ssh-agent, ssh-pkcs11-helper și ssh-add a fost adăugată procesarea opțiunii de linie de comandă „-v” pentru a crește informativitatea ieșirii (atunci când este specificată, această opțiune este transmisă și proceselor fiice, de exemplu, când ssh-agent apelează ssh-pkcs11-helper);
- În ssh-add a fost adăugată opțiunea „-T” pentru testarea adecvării cheilor în ssh-agent pentru realizarea operațiunilor de creare și verificare a semnăturilor digitale;
- Serverul sftp implementa suport pentru extensia protocolului „lsetstat at openssh.com”, care adaugă suportul pentru operațiunea SSH2_FXP_SETSTAT în SFTP, dar fără a urma linkurile simbolice;
- În sftp a fost adăugată opțiunea „-h” pentru executarea comenzilor chown/chgrp/chmod cu cereri care nu folosesc linkuri simbolice;
- În sshd s-a asigurat setarea variabilei de mediu $SSH_CONNECTION pentru PAM;
- Pentru sshd în ssh_config a fost adăugat modul de asociare „Match final”, similar cu „Match canonical”, dar care nu necesită activarea normalizării numelui gazduitor;
- În sftp a fost adăugat suport pentru prefixul ‘@’ pentru dezactivarea transcrierii ieșirii comenzilor executate în modul batch;
- La ieșirea conținutului certificatului cu comanda
„ssh-keygen -Lf /path/certificate” acum este afișat algoritmul folosit de autoritatea de certificare pentru validarea certificatului; - S-a îmbunătățit suportul pentru mediu Cygwin, de exemplu, s-a asigurat compararea numelui grupurilor și utilizatorilor fără a ține cont de case; Procesul sshd din portul pentru Cygwin a fost schimbat în cygsshd pentru a evita suprapunerile cu portul OpenSSH furnizat de Microsoft;
- A fost adăugată posibilitatea construirii cu ramura experimentală OpenSSL 3.x;
- Eliminată (CVE-2019-6111) în implementarea utilitarului scp, care permite suprascrierea de fișiere arbitrare în directorul țintă de pe partea clientului atunci când se conectează la un server controlat de un atacator. Problema constă în faptul că, atunci când se aplică scp, serverul decide ce fișiere și directoare să trimită clientului, iar clientul doar verifică corectitudinea numelui obiectelor returnate. Verificarea pe partea clientului este limitată doar la blocarea ieșirii din directorul curent („../”), dar nu ia în considerare transmiterea fișierelor cu nume diferite de cele inițial solicitate. În cazul copieri recursive (-r), pe lângă numele fișierelor, este posibil să se manipuleze și numele subdirectoarelor. De exemplu, în cazul în care un utilizator copiue în directorul său de acasă fișiere, serverul controlat de atacatori poate oferi, în locul fișierelor solicitate, fișiere cu numele .bash_aliases sau .ssh/authorized_keys, care vor fi salvate de utilitarul scp în directorul de acasă al utilizatorului.
În noua versiune, utilitarul scp a adăugat o verificare a conformității numelui fișierelor solicitate și returnate de server, efectuată pe partea clientului. Aceasta poate cauza probleme în procesarea măștilor, deoarece caracterele de mască pot fi tratate diferit pe server și pe client. În cazul în care clientul încetează să accepte fișiere din cauza acestor diferențe, a fost adăugată opțiunea „-T”, care permite dezactivarea verificării pe partea clientului. Pentru a remedia complet problema este necesară o revizuire conceptuală a protocolului scp, care este deja învechit, așa că este recomandat să se utilizeze protocoale mai moderne, cum ar fi sftp și rsync.
Sursa: opennet.ro
