Rilascio di OpenSSH 8.4

Dopo quattro mesi di sviluppo presentata rilascio di OpenSSH 8.4, un'implementazione client e server aperta per lavorare utilizzando i protocolli SSH 2.0 e SFTP.

Principali modifiche:

  • Modifiche alla sicurezza:
    • In ssh-agent, quando si utilizzano chiavi FIDO che non sono state create per l'autenticazione SSH (l'ID della chiave non inizia con la stringa "ssh:"), ora controlla che il messaggio verrà firmato utilizzando i metodi utilizzati nel protocollo SSH. La modifica non consentirà a ssh-agent di essere reindirizzato a host remoti che dispongono di chiavi FIDO per bloccare la possibilità di utilizzare queste chiavi per generare firme per richieste di autenticazione web (il caso inverso, quando un browser può firmare una richiesta SSH, è inizialmente escluso a causa dell'uso del prefisso “ssh:” nell'identificatore della chiave).
    • La generazione di chiavi residenti di ssh-keygen include il supporto per il componente aggiuntivo credProtect descritto nella specifica FIDO 2.1, che fornisce una protezione aggiuntiva per le chiavi richiedendo un PIN prima di eseguire qualsiasi operazione che potrebbe comportare l'estrazione della chiave residente dal token.
  • Modifiche alla compatibilità potenzialmente dannose:
    • Per supportare FIDO/U2F, si consiglia di utilizzare la libreria libfido2 almeno alla versione 1.5.0. La possibilità di utilizzare le edizioni precedenti è stata parzialmente implementata, ma in questo caso non saranno disponibili funzioni come chiavi residenti, richiesta PIN e connessione di token multipli.
    • In ssh-keygen, i dati dell'autenticatore necessari per verificare la conferma delle firme digitali sono stati aggiunti al formato delle informazioni di conferma, facoltativamente salvate durante la generazione di una chiave FIDO.
    • L'API utilizzata quando OpenSSH interagisce con il livello per l'accesso ai token FIDO è stata modificata.
    • Quando si crea una versione portatile di OpenSSH, è ora richiesto automake per generare lo script di configurazione e i file di build associati (se si compila da un file tar di codice pubblicato, non è richiesta la rigenerazione di configure).
  • Aggiunto supporto per chiavi FIDO che richiedono la verifica del PIN in ssh e ssh-keygen. Per generare chiavi con PIN, è stata aggiunta l'opzione "verify-required" a ssh-keygen. Se vengono utilizzate tali chiavi, prima di eseguire l'operazione di creazione della firma, all'utente viene richiesto di confermare le proprie azioni inserendo un codice PIN.
  • In sshd, l'opzione “verify-required” è implementata nell'impostazione Authorized_keys, che richiede l'uso di funzionalità per verificare la presenza dell'utente durante le operazioni con il token. Lo standard FIDO fornisce diverse opzioni per tale verifica, ma attualmente OpenSSH supporta solo la verifica basata su PIN.
  • sshd e ssh-keygen hanno aggiunto il supporto per la verifica delle firme digitali conformi allo standard FIDO Webauthn, che consente l'utilizzo delle chiavi FIDO nei browser web.
  • In ssh nelle impostazioni CertificateFile,
    ControlPath, IdentityAgent, IdentityFile, LocalForward e
    RemoteForward consente la sostituzione di valori dalle variabili di ambiente specificate nel formato "${ENV}".

  • ssh e ssh-agent hanno aggiunto il supporto per la variabile di ambiente $SSH_ASKPASS_REQUIRE, che può essere utilizzata per abilitare o disabilitare la chiamata ssh-askpass.
  • In ssh in ssh_config nella direttiva AddKeysToAgent è stata aggiunta la possibilità di limitare il periodo di validità di una chiave. Una volta scaduto il limite specificato, le chiavi vengono automaticamente eliminate da ssh-agent.
  • In scp e sftp, utilizzando il flag "-A", ora puoi consentire esplicitamente il reindirizzamento a scp e sftp utilizzando ssh-agent (il reindirizzamento è disabilitato per impostazione predefinita).
  • Aggiunto il supporto per la sostituzione '%k' nelle impostazioni ssh, che specifica il nome della chiave host. Questa funzionalità può essere utilizzata per distribuire le chiavi in ​​file separati (ad esempio, "UserKnownHostsFile ~/.ssh/known_hosts.d/%k").
  • Consentire l'uso dell'operazione "ssh-add -d -" per leggere le chiavi da stdin che devono essere eliminate.
  • In sshd, l'inizio e la fine del processo di potatura della connessione si riflettono nel registro, regolato utilizzando il parametro MaxStartups.

Gli sviluppatori di OpenSSH hanno anche ricordato l'imminente smantellamento degli algoritmi che utilizzano hash SHA-1 a causa di promozione l'efficacia degli attacchi di collisione con un determinato prefisso (il costo per la selezione di una collisione è stimato in circa 45mila dollari). In una delle prossime versioni, si prevede di disabilitare per impostazione predefinita la possibilità di utilizzare l'algoritmo di firma digitale a chiave pubblica “ssh-rsa”, che è menzionato nell'RFC originale per il protocollo SSH e rimane diffuso nella pratica (per testare l'uso di ssh-rsa nei vostri sistemi, potete provare a connettervi via ssh con l'opzione “-oHostKeyAlgorithms=-ssh-rsa”).

Per facilitare la transizione ai nuovi algoritmi in OpenSSH, la prossima versione abiliterà l'impostazione UpdateHostKeys per impostazione predefinita, che migrerà automaticamente i client verso algoritmi più affidabili. Gli algoritmi consigliati per la migrazione includono rsa-sha2-256/512 basato su RFC8332 RSA SHA-2 (supportato da OpenSSH 7.2 e utilizzato per impostazione predefinita), ssh-ed25519 (supportato da OpenSSH 6.5) e basato su ecdsa-sha2-nistp256/384/521 su RFC5656 ECDSA (supportato da OpenSSH 5.7).

Fonte: opennet.ru

Aggiungi un commento