După patru luni de dezvoltare lansarea OpenSSH 8.4, o implementare deschisă a clientului și serverului pentru lucrul cu protocoalele SSH 2.0 și SFTP.
Modificări principale:
- Modificări legate de securitate:
- În ssh-agent, atunci când se folosesc chei FIDO, create nu pentru autentificarea prin SSH (identificatorul cheii nu începe cu 'ssh:'), acum se efectuează o verificare ca mesajul să fie semnat folosind metodele aplicate în protocolul SSH. Această modificare nu va permite redirecționarea ssh-agent către gazde remote care au chei FIDO, blocând astfel utilizarea acestor chei pentru a genera semnături pentru cererile de autentificare web (cazul invers, când browserul poate semna o cerere SSH, a fost exclus inițial prin utilizarea prefixului 'ssh:' în identificatorul cheii).
- În ssh-keygen, la generarea unei chei rezidente, a fost inclusă suportul pentru extensia credProtect, descrisă în specificația FIDO 2.1, care oferă o protecție suplimentară pentru chei printr-o solicitare obligatorie de introducere a unui cod PIN înainte de a efectua orice operațiune care ar putea duce la extragerea cheii rezidente din token.
- Modificări care ar putea afecta compatibilitatea:
- Pentru suport FIDO/U2F, se recomandă utilizarea bibliotecii libfido2 de cel puțin versiunea 1.5.0. Este implementată parțial posibilitatea de a utiliza și versiuni anterioare, dar în acest caz vor fi indisponibile funcții precum cheile rezidente, solicitarea PIN și conectarea mai multor tokenuri.
- În ssh-keygen, în formatul informației de confirmare, opțional păstrat la generarea cheii FIDO, au fost adăugate date pentru autentificator, necesare pentru verificarea semnăturilor digitale de confirmare.
- API-ul utilizat pentru interacțiunea OpenSSH cu stratul pentru accesarea tokenurilor FIDO a fost modificat.
- La compilarea versiunii portabile a OpenSSH, acum este necesar automake pentru a genera scriptul configure și fișierele de compilare asociate (dacă compilarea este efectuată dintr-un fișier tar publicat cu cod, regenerarea configure nu este necesară).
- În ssh și ssh-keygen a fost adăugată suport pentru cheile FIDO, care necesită confirmare prin PIN. Opțiunea „verify-required” a fost adăugată pentru generarea cheilor cu PIN în ssh-keygen. În cazul utilizării unor astfel de chei, înainte de executarea operațiunii de creare a semnăturii, utilizatorului i se va solicita să-și confirme acțiunile prin introducerea PIN-ului.
- În sshd, în setarea authorized_keys, a fost implementată opțiunea „verify-required”, care necesită utilizarea capacităților de verificare a prezenței utilizatorului în timpul operațiunilor cu tokenul. Standardul FIDO prevede mai multe opțiuni de verificare de acest tip, dar în prezent OpenSSH suportă doar verificarea bazată pe PIN.
- În sshd și ssh-keygen a fost adăugată suport pentru verificarea semnăturilor digitale care corespund standardului FIDO Webauthn, permițând utilizarea cheilor FIDO în browserele web.
- În ssh, în setările CertificateFile,
ControlPath, IdentityAgent, IdentityFile, LocalForward și
RemoteForward a fost permisă substituția valorilor din variabilele de mediu, specificate în formatul „${ENV}”. - În ssh și ssh-agent a fost adăugat suport pentru variabila de mediu $SSH_ASKPASS_REQUIRE, care poate fi utilizată pentru a activa sau dezactiva apelul ssh-askpass.
- În ssh, în ssh_config, în directiva AddKeysToAgent a fost adăugată posibilitatea de a limita durata de valabilitate a cheii. După expirarea limitei specificate, cheile sunt șterse automat din ssh-agent.
- În scp și sftp, prin utilizarea flag-ului „-A”, acum se poate permite explicit redirecționarea în scp și sftp folosind ssh-agent (redirecționarea fiind interzisă în mod implicit).
- În setările ssh a fost adăugat suport pentru substituția ‘%k’, care definește numele cheii gazdei. Această funcționalitate poate fi utilizată pentru a separa cheile în fișiere distincte (de exemplu, „UserKnownHostsFile ~/.ssh/known_hosts.d/%k”).
- Este permisă utilizarea operației „ssh-add -d -” pentru a citi din stdin cheile care urmează a fi șterse.
- În sshd, a fost asigurată reflectarea în jurnal a începutului și sfârșitului procesului de restrângere a conexiunilor, reglat prin parametrul MaxStartups.
Dezvoltatorii OpenSSH au reamintit, de asemenea, despre viitorul transfer al algoritmilor care folosesc hash-uri SHA-1 în categoria celor învechite, în legătură cu eficiența atacurilor de coliziune cu un prefix dat (costul generării unei coliziuni este estimat la aproximativ 45.000 de dolari). Într-unul dintre următoarele versiuni, se intenționează dezactivarea implicită a algoritmului de semnătură digitală cu cheie publică „ssh-rsa”, care este menționat în RFC-ul original pentru protocolul SSH și rămâne larg răspândit în practică (pentru a verifica utilizarea ssh-rsa în sistemele dvs., puteți încerca să vă conectați prin ssh cu opțiunea „-oHostKeyAlgorithms=-ssh-rsa”).
Pentru a facilita tranziția la noile algoritmi în OpenSSH, în următoarea versiune va fi activată implicit configurația UpdateHostKeys, care va permite clienților să treacă automat la algoritmi mai siguri. Printre algoritmii recomandați pentru migrare se numără rsa-sha2-256/512 bazat pe RFC8332 RSA SHA-2 (acceptat din OpenSSH 7.2 și utilizat implicit), ssh-ed25519 (acceptat din OpenSSH 6.5) și ecdsa-sha2-nistp256/384/521 bazat pe RFC5656 ECDSA (acceptat din OpenSSH 5.7).
Sursa: opennet.ro
