È stata rilasciata la libreria OpenSSL 3.5.0 con implementazione dei protocolli SSL/TLS e vari algoritmi di crittografia. OpenSSL 3.5 appartiene alle versioni a lungo termine (LTS), per le quali gli aggiornamenti sono rilasciati per un periodo di 5 anni (fino ad aprile 2030). Il supporto per le versioni precedenti OpenSSL 3.3, 3.2 e 3.0 LTS continuerà fino ad aprile 2026, novembre 2025 e settembre 2026 rispettivamente. Il codice del progetto è distribuito sotto la licenza Apache 2.0.
Novità principali:
- Aggiunto supporto per algoritmi crittografici resistenti agli attacchi da computer quantistici:
- ML-KEM (CRYSTALS-Kyber) — algoritmo di scambio delle chiavi che utilizza metodi di crittografia basati sulla risoluzione di problemi della teoria delle reticoli, il cui tempo di risoluzione non differisce tra computer classici e quantistici.
- ML-DSA (CRYSTALS-Dilithium) — algoritmo per la generazione di firme digitali che si basa sulla teoria delle reticoli.
- SLH-DSA (Sphincs+) — algoritmo per la generazione di firme digitali che impiega metodi di crittografia basati su funzioni hash. SLH-DSA è inferiore a ML-DSA per dimensione delle firme e velocità di esecuzione, ma si basa su principi matematici completamente diversi, quindi rimarrà efficace in caso di compromissione degli algoritmi basati sulla teoria delle reticoli.
- È stata implementata la piena supporto del protocollo QUIC (RFC 9000), ora disponibile non solo per le applicazioni client, ma anche per quelle server. QUIC è un layer sopra il protocollo UDP, che supporta il multiplexing di più connessioni e fornisce metodi di crittografia equivalenti a TLS. Il protocollo QUIC è utilizzato in HTTP/3 ed è stato creato come alternativa alla combinazione TCP+TLS, affrontando problemi legati ai lunghi tempi di setup e di negoziazione delle connessioni in TCP, nonché eliminando i ritardi causati dalla perdita di pacchetti durante la trasmissione dei dati.
- È stata aggiunta la possibilità di utilizzare stack di terze parti con implementazioni del protocollo QUIC, inclusi gli stack che supportano la modalità 0-RTT (0 Round Trip Time), che consente di iniziare subito la trasmissione dei dati dopo l'invio del pacchetto di instaurazione della connessione.
- È stata aggiunta la supporto per oggetti simmetrici chiave opachi (EVP_SKEY), che nascondono i dettagli sull'implementazione della chiave.
- È stato aggiunto il parametro «no-tls-deprecated-ec» per disabilitare il supporto per i gruppi TLS dichiarati obsoleti in RFC-8422.
- È stato aggiunto il parametro «enable-fips-jitter», che abilita nell'provider FIPS l'uso di una sorgente di entropia basata sul jitter, implementata tramite la libreria jitterentropy. La generazione di entropia basata sul jitter avviene misurando le differenze nel tempo di riesecuzione di un determinato insieme di istruzioni sulla CPU, che dipende da molteplici fattori interni e è imprevedibile senza un controllo fisico sulla CPU.
- Nel CMP (Certificate Management Protocol) è stata aggiunta la supporto per la generazione centralizzata delle chiavi (sia chiave pubblica che privata per il cliente vengono generate lato server). server).
- È stata aggiunta la supporto per la fornitura di più set di chiavi (keyshares) per una singola connessione TLS.
- È stata aggiunta un'API per l'elaborazione in pipeline (pipelining), che consente di gestire simultaneamente più blocchi di dati utilizzando alcuni cifrari, come AES-GCM, che supportano calcoli paralleli.
- Negli applicativi req, cms e smime, l'algoritmo di crittografia predefinito è stato modificato da des-ede3-cbc a aes-256-cbc.
- Nella lista dei cifrari predefiniti per TLS sono incluse e scelte come prioritarie le gruppi ibridi KEM (Key Encapsulation Mechanism), resistenti agli attacchi da computer quantistici.
- Sono stati aggiunti agli insiemi di chiavi (keyshares) utilizzati per impostazione predefinita in TLS gli algoritmi X25519MLKEM768 e X25519.
- Le funzioni BIO_meth_get_*() sono state dichiarate obsolete.
Fonte: opennet.ru
