È stato pubblicato OpenSSL 4.0.0, che offre implementazioni dei protocolli TLS e vari algoritmi di crittografia. OpenSSL 4.0 è classificato come un rilascio con ciclo di supporto normale, con aggiornamenti rilasciati per 13 mesi. Il supporto per le versioni precedenti OpenSSL 3.6, 3.5 LTS, 3.4 e 3.0 LTS durerà fino a novembre 2026, aprile 2030, ottobre 2026 e settembre 2026 rispettivamente. Il codice del progetto è distribuito con licenza Apache 2.0.
Novità principali:
- È stata aggiunta la supporto per l'estensione TLS ECH (Encrypted ClientHello, RFC 9849), destinata a crittografare le informazioni sui parametri delle sessioni TLS, come il nome di dominio richiesto. A differenza dell'estensione ESNI (Encrypted Server Name Indication), in ECH viene crittografato l'intero messaggio ClientHello, bloccando così le perdite attraverso i campi non coperti da ESNI, come il campo PSK (Pre-Shared Key).
- È stato aggiunto il supporto per determinati algoritmi descritti nella RFC 8998, che utilizzano un set di crittografia standardizzato in Cina, SM2: l'algoritmo di generazione di firme digitali sm2sig_sm3, il gruppo di scambio delle chiavi curveSM2 e il gruppo post-quantistico curveSM2MLKEM768.
- È stata aggiunta la funzione crittografica di hashing cSHAKE, basata sull'algoritmo SHA-3, che consente di generare hash diversi basati sugli stessi dati di input per proteggersi contro attacchi di riutilizzo dei dati.
- È stato aggiunto l'algoritmo ibrido "ML-DSA-MU", che combina l'algoritmo post-quantistico di generazione di firme digitali ML-DSA (CRYSTALS-Dilithium) con la funzione di hash classica SHAKE256.
- È stato aggiunto il supporto per le funzioni di derivazione delle chiavi SNMP KDF basate su HMAC-SHA e SRTP KDF basate su AES-CM, utilizzate nei protocolli di rete SNMPv3 e SRTP per la creazione di chiavi crittografiche.
- Nel comando "openssl fipsinstall" è stata aggiunta l'opzione "-defer_tests", che consente di posticipare l'esecuzione dei test durante l'installazione dei moduli FIPS.
- Per la piattaforma Windows è stato implementato il supporto per l'utilizzo del legame statico o dinamico con Visual C++ Runtime.
- In TLS 1.2 è stato aggiunto il supporto per la negoziazione dello scambio delle chiavi basato sull'algoritmo FFDHE, secondo la RFC 7919.
- È stato interrotto il supporto per SSLv3 e SSLv2 Client Hello.
- È stata rimossa la supporto per i motori caricati dinamicamente, per cui per ampliare le funzionalità di OpenSSL si dovrebbe utilizzare il concetto di provider modulare.
- In TLS, durante la fase di compilazione, è stato disabilitato il supporto per curve ellittiche obsolete. È possibile ripristinarlo utilizzando l'opzione «enable-tls-deprecated-ec».
- È stato rimosso lo strumento c_rehash, che ora deve essere sostituito con il comando «openssl rehash».
- Dalla command «openssl ca» è stata rimossa l'opzione obsoleta «msie-hack».
- È stato rimosso il supporto per metodi proprietari EVP_CIPHER, EVP_MD, EVP_PKEY e EVP_PKEY_ASN1.
- Sono state rimosse le funzioni obsolete SSL/TLS legate a versioni fisse dei protocolli, ad esempio «TLSv1_client_method()».
- Sono state rimosse le funzioni obsolete ERR_get_state(), ERR_remove_state() e ERR_remove_thread_state().
- È stata interrotta la supporto per le piattaforme target darwin-i386{,-cc} e darwin-ppc{,64}{,-cc}.
Fonte: opennet.ru
