A fost publicat release-ul OpenSSH 10.0, o implementare deschisă a clientului și serverului pentru funcționarea prin protocoalele SSH 2.0 și SFTP. Principalele modificări:
- A fost eliminat suportul pentru semnăturile digitale bazate pe algoritmul DSA, al cărui nivel de securitate nu corespunde cerințelor actuale. Costurile pentru continuarea suportului unui algoritm DSA nesigur nu se justifică, iar eliminarea sa va stimula stoparea suportului DSA în alte implementări SSH și biblioteci criptografice. În mod implicit, utilizarea cheilor DSA a fost suspendată încă din 2015.
- A fost continuată separarea sshd în mai multe fișiere executabile distincte. În OpenSSH 9.8, procesul sshd a fost divizat în procesul sshd-session, care se ocupă cu gestionarea sesiunilor. În OpenSSH 10.0, codul responsabil pentru autentificare a fost mutat din sshd-session într-un proces separat numit sshd-auth. Procesul sshd-auth permite izolarea suplimentară a datelor legate de autentificare în spațiul de adresare al unui proces separat, ceea ce împiedică accesul la aceste date în memorie în cazul unor atacuri asupra codului utilizat pentru gestionarea etapelor de conectare până la finalizarea autentificării. În plus, această modificare reduce ușor consumul de memorie, deoarece codul asociat autentificării este prezent în memorie doar în momentul autentificării, fiind ulterior descărcat la finalizarea procesului sshd-auth.
- În ssh este activat implicit un algoritm hibrid de schimb de chei numit „mlkem768x25519-sha256”, rezistent la atacurile cu computere cuantice și care reprezintă o combinație între X25519 ECDH și algoritmul ML-KEM (CRYSTALS-Kyber), standardizat de Institutul Național de Standarde și Tehnologii din SUA (NIST). ML-KEM utilizează metode criptografice bazate pe soluționarea problemelor din teoria rețelelor, timpul de soluționare nefiind diferit între computerele obișnuite și cele cuantice.
- În ssh_config, directivele SetEnv și User au fost adăugate cu suport pentru substituirea „%-token” și expansiunea variabilelor de mediu.
- În ssh_config și sshd_config a fost adăugat suportul pentru expresia „Match version”, care permite aplicarea configurărilor în funcție de versiunea OpenSSH disponibilă, de exemplu, pentru a se lega de OpenSSH 10, se poate specifica „Match version OpenSSH_10.*”.
- În ssh_config a fost adăugat suport pentru expresii:
- „Match sessiontype“, care permite aplicarea setărilor în funcție de tipul de sesiune solicitat: „shell“ pentru sesiuni interactive, „exec“ pentru rularea comenzilor, „subsystem“ pentru sftp și „none“ pentru tuneluri și redirecționarea traficului.
- „Match command“ pentru a lega acțiuni de comenzile specificate în linia de comandă pentru a fi rulată prin ssh.
- „Match tagged „“ și „Match command „“ pentru a lega la etichete goale și a rula ssh fără a specifica comanda executată.
- În sshd_config este permisă utilizarea mascurilor în căile de fișiere specificate în directivele AuthorizedKeysFile și AuthorizedPrincipalsFile.
- În clientul ssh a fost adăugată suportul opțiunii „VersionAddendum” pentru a adăuga text arbitrar la linia cu numărul versiunii (anterior această opțiune a fost disponibilă doar pentru server sshd).
- În utilitarele scp și sftp a fost asigurată transmiterea setării „ControlMaster no” pentru a interzice utilizarea conexiunilor existente la reconectarea la gazdă.
- În sshd, suportul pentru implementarea algoritmului Diffie-Hellman în câmp finit este dezactivat în mod implicit, ceea ce a dus la eliminarea din lista KEXAlgorithms a metodelor „diffie-hellman-group*” și „diffie-hellman-group-exchange-*”. Comparativ cu algoritmul Diffie-Hellman bazat pe curbe eliptice, implementarea la distanță este mai lentă și necesită resurse computaționale suplimentare la un nivel de securitate identic.
- În ssh, la alegerea unui algoritm de criptare pentru conexiune, modul AES-GCM este acum preferat față de AES-CTR. În mod implicit, este setată o listă de priorități pentru alegerea algoritmilor de criptare: Chacha20/Poly1305, AES-GCM (128/256) și AES-CTR (128/192/256).
- În ssh-agent a fost implementată ștergerea tuturor cheilor încărcate la primirea semnalului SIGUSR1.
- În ssh-keygen a fost adăugată suportul pentru tokenuri FIDO care nu returnează date de atestare, cum ar fi WinHello.
- În ssh-agent a fost adăugată opțiunea „-Owebsafe-allow=…” pentru a redefini lista albă a aplicațiilor FIDO.
- A fost adăugată o utilitar experimental numit regress/misc/ssh-verify-attestation pentru a verifica datele de atestare FIDO, opțional generate de ssh-keygen în timpul înregistrării cheilor FIDO.
- În ssh-keygen este permis să se folosească „-” în loc de numele fișierului.
- În ssh-agent și versiunea portabilă OpenSSH a fost adăugat suport pentru activare prin socket în stil systemd, implementat folosind mecanismul LISTEN_PID/LISTEN_FDS.
- În versiunea portabilă:
- A fost implementat suportul pentru biblioteca criptografică AWS-LC (AWS libcrypto).
- În sshd a fost adăugată suportul pentru wtmpdb, un alternativă la wtmp, care nu este afectată de problema din 2038.
- În sshd a fost adăugată opțiunea „—with-linux-memlock-onfault” pentru a fixa sshd în memorie (interzicerea abuzului de swap).
- A fost adăugată opțiunea „—with-security-key-standalone” pentru compilarea unei biblioteci separate sk-libfido2.
- Setările de compilare pentru RHEL 6 au fost eliminate din specificația pachetului RPM.
- O modificare în sshd legată de securitate: directiva DisableForwarding nu interzicea în mod corespunzător redirecționarea protocolului X11 și apelurile către ssh-agent. Redirecționarea X11 este dezactivată implicit pe partea serverului, iar redirecționarea ssh-agent pe partea clientului.
Sursa: opennet.ro
