È stata rilasciata la versione OpenSSH 10.0, un'implementazione open-source di client e server per il protocollo SSH 2.0 e SFTP. Le principali novità sono:
- È stata rimossa la supporto per firme digitali basate sull'algoritmo DSA, il cui livello di sicurezza non è conforme agli standard moderni. I costi per mantenere un algoritmo DSA insicuro non sono giustificati e la sua rimozione stimolerà l'abbandono del supporto per DSA in altre implementazioni SSH e librerie crittografiche. Per impostazione predefinita, l'uso delle chiavi DSA è stato interrotto già nel 2015.
- Continua la separazione di sshd in più file eseguibili. In OpenSSH 9.8, è stato isolato il processo sshd-session, che gestisce le attività legate alla gestione delle sessioni. In OpenSSH 10.0, il codice per l'autenticazione è stato spostato dal processo sshd-session a un processo separato chiamato sshd-auth. Il processo sshd-auth consente di isolare ulteriormente i dati legati all'autenticazione nello spazio di indirizzamento di un processo separato, impedendo così l'accesso a questi dati in memoria durante eventuali attacchi al codice utilizzato per gestire le fasi di connessione fino al completamento dell'autenticazione. Inoltre, questa modifica ridurrà leggermente il consumo di memoria, poiché il codice relativo all'autenticazione sarà presente in memoria solo durante il processo di autenticazione e verrà quindi scaricato al termine del processo sshd-auth.
- In ssh è attivato per default un algoritmo ibrido di scambio di chiavi "mlkem768x25519-sha256", resistente agli attacchi quantistici, che è una combinazione di X25519 ECDH e dell'algoritmo ML-KEM (CRYSTALS-Kyber), standardizzato dal National Institute of Standards and Technology degli Stati Uniti (NIST). ML-KEM utilizza metodi di crittografia basati sulla risoluzione di problemi della teoria delle griglie, il cui tempo di risoluzione non differisce tra computer tradizionali e quantistici.
- Nel file ssh_config, è stata aggiunta la supporto per l'espansione "%-token" nella direttiva SetEnv e User, permettendo la sostituzione di variabili d'ambiente.
- Nel file ssh_config e sshd_config, è stata aggiunta la supporto per l'espressione "Match version", che consente di applicare impostazioni in base alla versione di OpenSSH, ad esempio, per legarsi a OpenSSH 10, è possibile specificare "Match version OpenSSH_10.*".
- Nel file ssh_config è stata aggiunta la supporto per espressioni:
- "Match sessiontype", che consente di applicare impostazioni in base al tipo di sessione richiesta: "shell" per sessioni interattive, "exec" per l'esecuzione di comandi, "subsystem" per sftp e "none" per tunnel e inoltro del traffico.
- "Match command" per legare azioni a comandi specificati nella riga di comando per l'esecuzione tramite ssh.
- 'Match tagged ""' e 'Match command ""' per il legame a tag vuoti e l'esecuzione di ssh senza specificare un comando da eseguire.
- In sshd_config è consentito l'uso di maschere nei percorsi dei file specificati nelle direttive AuthorizedKeysFile e AuthorizedPrincipalsFile.
- Nel client ssh è stata aggiunta la supporto per l'opzione "VersionAddendum" per aggiungere testo arbitrario alla stringa con il numero di versione (precedentemente, questa opzione era disponibile solo per server sshd).
- Nelle utility scp e sftp è stata garantita l'invio dell'impostazione "ControlMaster no" per vietare l'uso di connessioni esistenti durante il riconnessione a un host.
- In sshd, il supporto per l'implementazione dell'algoritmo Diffie-Hellman nel campo finale è disabilitato per impostazione predefinita, portando alla rimozione dalla lista KEXAlgorithms dei metodi "diffie-hellman-group*" e "diffie-hellman-group-exchange-*". Rispetto all'algoritmo Diffie-Hellman basato su curve ellittiche, l'implementazione remota è più lenta e richiede risorse computazionali aggiuntive a parità di livello di sicurezza.
- In ssh, nella scelta del cifrario per la connessione, la modalità AES-GCM è ora più preferibile rispetto a AES-CTR. Per impostazione predefinita, l'elenco delle priorità nella scelta dei cifrari è: Chacha20/Poly1305, AES-GCM (128/256) e AES-CTR (128/192/256).
- In ssh-agent è stata implementata la rimozione di tutte le chiavi caricate alla ricezione del segnale SIGUSR1.
- In ssh-keygen è stata aggiunta la supporto per i token FIDO che non restituiscono dati di attestazione, come WinHello.
- In ssh-agent è stata aggiunta l'opzione "-Owebsafe-allow=..." per sovrascrivere la lista bianca delle applicazioni FIDO.
- È stata aggiunta un'utility sperimentale regress/misc/ssh-verify-attestation per la verifica dei dati di attestazione FIDO, generati opzionalmente da ssh-keygen durante la registrazione delle chiavi FIDO.
- In ssh-keygen è consentito l'uso di "-" al posto del nome del file.
- In ssh-agent e nella versione portatile di OpenSSH è stata aggiunta la supporto per l'attivazione tramite socket in stile systemd, implementata utilizzando il meccanismo LISTEN_PID/LISTEN_FDS.
- Nella versione portatile:
- È stata implementata la supporto per la libreria crittografica AWS-LC (AWS libcrypto).
- In sshd è stata aggiunta la supporto per wtmpdb, equivalente a wtmp, non soggetto ai problemi del 2038.
- In sshd è stata aggiunta l'opzione "—with-linux-memlock-onfault" per bloccare sshd in memoria (vietando lo scambio nella partizione di swap).
- È stata aggiunta l'opzione «—with-security-key-standalone» per la compilazione della libreria obiettivo sk-libfido2.
- Le configurazioni di compilazione per RHEL 6 sono state rimosse dalla specifica del pacchetto RPM.
- Modifica in sshd relativa alla sicurezza: la direttiva DisableForwarding non impediva correttamente il forwarding del protocollo X11 e delle richieste a ssh-agent. Il forwarding X11 è disabilitato per impostazione predefinita sul lato server, mentre il forwarding di ssh-agent è disabilitato lato client.
Fonte: opennet.ru
