Dopo cinque mesi di sviluppo, è stato presentato il rilascio di OpenSSH 8.5, un'implementazione open source per client e server che utilizza i protocolli SSH 2.0 e SFTP.
Gli sviluppatori di OpenSSH hanno ricordato il prossimo passaggio degli algoritmi che utilizzano gli hash SHA-1 nella categoria degli algoritmi obsoleti, a causa dell'aumento dell'efficacia degli attacchi di collisione con prefisso (il costo per generare una collisione è stimato intorno ai 50.000 dollari). In una delle prossime versioni, si prevede di disabilitare per impostazione predefinita l'uso dell'algoritmo di firma digitale con chiave pubblica 'ssh-rsa', menzionato nell'RFC originale per il protocollo SSH e che continua a essere ampiamente utilizzato nella pratica.
Per verificare l'applicazione di ssh-rsa nei propri sistemi, è possibile provare a connettersi tramite SSH utilizzando l'opzione '-oHostKeyAlgorithms=-ssh-rsa'. Tuttavia, la disabilitazione per impostazione predefinita delle firme digitali 'ssh-rsa' non implica un completo rifiuto dell'uso delle chiavi RSA, poiché oltre a SHA-1, il protocollo SSH consente l'uso di altri algoritmi di hash. In particolare, oltre a 'ssh-rsa', sarà possibile utilizzare le coppie 'rsa-sha2-256' (RSA/SHA256) e 'rsa-sha2-512' (RSA/SHA512).
Per facilitare la transizione verso i nuovi algoritmi, OpenSSH 8.5 ha abilitato per impostazione predefinita la configurazione UpdateHostKeys, che consente di trasferire automaticamente i client verso algoritmi più sicuri. Con questa configurazione viene attivata una particolare estensione del protocollo 'hostkeys@openssh.com', che consente al server, dopo l'autenticazione, di informare il client di tutte le chiavi host disponibili. Il client può riflettere queste chiavi nel proprio file ~/ .ssh/known_hosts, facilitando così l'aggiornamento delle chiavi host e semplificando il cambiamento delle chiavi. server.
L'uso di UpdateHostKeys è soggetto a diverse condizioni che potrebbero essere revocate in futuro: la chiave deve essere citata nel UserKnownHostsFile e non deve essere utilizzata nel GlobalKnownHostsFile; la chiave deve essere presente solo con un nome; non deve essere utilizzato un certificato per la chiave host; nel known_hosts non devono essere applicate maschere per nomi host; la configurazione VerifyHostKeyDNS deve essere disabilitata; il parametro UserKnownHostsFile deve essere attivo.
Tra gli algoritmi raccomandati per la migrazione vengono citati rsa-sha2-256/512 basati su RFC8332 RSA SHA-2 (supportato da OpenSSH 7.2 e utilizzato per impostazione predefinita), ssh-ed25519 (supportato da OpenSSH 6.5) e ecdsa-sha2-nistp256/384/521 basati su RFC5656 ECDSA (supportato da OpenSSH 5.7).
Altre modifiche:
- Modifiche relative alla sicurezza:
- In ssh-agent è stata eliminata una vulnerabilità causata da un rilascio ripetuto di un'area di memoria già rilasciata (double-free). Il problema si manifesta dalla versione OpenSSH 8.2 e può essere potenzialmente sfruttato qualora un attaccante abbia accesso al socket ssh-agent sul sistema locale. La sfruttabilità è complicata dal fatto che solo root e l'utente originale hanno accesso al socket. Lo scenario di attacco più probabile è la redirezione dell'agente su un account controllato dall'attaccante, oppure su un host dove l'attaccante ha accesso root.
- In sshd è stata aggiunta una protezione contro la trasmissione di parametri molto grandi con il nome utente nella sottosistema PAM, consentendo di bloccare vulnerabilità nei moduli di sistema PAM (Pluggable Authentication Module). Ad esempio, la modifica permette di prevenire l'uso di sshd come vettore per lo sfruttamento di una vulnerabilità di root recentemente identificata in Solaris (CVE-2020-14871).
- Modifiche potenzialmente incompatibili:
- In ssh e sshd è stato riprogettato un metodo sperimentale di scambio di chiavi resistente contro le tentativi di attacco condotti con computer quantistici. I computer quantistici risolvono in modo radicalmente più veloce il problema della scomposizione di un numero naturale in fattori primi, che è alla base dei moderni algoritmi asimmetrici di crittografia e non è efficacemente risolvibile su processori classici. Il metodo utilizzato è basato sull'algoritmo NTRU Prime, sviluppato per sistemi crittografici post-quantum, e sul metodo di scambio di chiavi basato su curve ellittiche X25519. Invece di sntrup4591761x25519-sha512@tinyssh.org, il metodo ora è identificato come sntrup761x25519-sha512@openssh.com (l'algoritmo sntrup4591761 è stato sostituito da sntrup761).
- In ssh e sshd è stato modificato l'ordine di annuncio degli algoritmi di firma digitale supportati. Ora viene proposta per prima ED25519 al posto di ECDSA.
- In ssh e sshd, l'impostazione dei parametri di qualità del servizio TOS/DSCP per le sessioni interattive ora avviene prima della creazione della connessione TCP.
- In ssh e sshd è stata interrotta la supporto per il cifrario rijndael-cbc@lysator.liu.se, che è identico a aes256-cbc e utilizzato fino all'approvazione di RFC-4253.
- Per impostazione predefinita, il parametro CheckHostIP è disattivato, il cui utilizzo apporta un beneficio minimo, ma la sua attivazione rende notevolmente più complessa la rotazione delle chiavi per gli host dietro i bilanciatori di carico.
- In sshd sono state aggiunte le impostazioni PerSourceMaxStartups e PerSourceNetBlockSize per limitare l'intensità di avvio dei gestori in base all'indirizzo del cliente. Questi parametri consentono una gestione più fine del limite di avvio dei processi rispetto all'impostazione generale MaxStartups.
- In ssh e sshd è stata aggiunta una nuova impostazione LogVerbose, che consente di aumentare forzatamente il livello di debug registrato nei log, con la possibilità di filtrare in base a modelli, funzioni e file.
- In ssh, durante l'accettazione di una nuova chiave host, viene mostrato l'elenco di tutti i nomi host e indirizzi IP, associati alla chiave.
- In ssh è consentita l'opzione UserKnownHostsFile=none per disabilitare l'uso del file known_hosts durante l'identificazione delle chiavi host.
- In ssh_config per ssh è stata aggiunta l'impostazione KnownHostsCommand, che consente di ottenere i dati known_hosts dall'output di un comando specificato.
- In ssh_config per ssh è stata aggiunta l'opzione PermitRemoteOpen, che consente di limitare la destinazione quando si utilizza l'opzione RemoteForward con SOCKS.
- In ssh, per le chiavi FIDO, è richiesto un nuovo inserimento del PIN in caso di errore nell'operazione di firma digitale a causa di un PIN non valido e della mancanza di richiesta del PIN da parte dell'utente (ad esempio, quando non è possibile ottenere dati biometrici corretti e il dispositivo è tornato all'inserimento manuale del PIN).
- In sshd, nel meccanismo di isolamento dei processi basato su seccomp-bpf sulla piattaforma Linux, è stato aggiunto il supporto per chiamate di sistema aggiuntive.
- Aggiornata l'utilità contrib/ssh-copy-id.
Fonte: opennet.ru
