OpenSSL 3.4 introduce nuove API e aggiornamenti FIPS
OpenSSL 3.4 offre nuove funzionalità crittografiche, tra cui suite di crittografia di sola integrità per TLS 1.3, ottimizzazioni ECC e aggiornamenti del provider FIPS.
OpenSSL ha rilasciato la versione 3.4, che introduce alcune importanti modifiche ed è potenzialmente incompatibile con OpenSSL 3.3 in alcuni casi.
Tra le modifiche principali, le funzioni “TS_VERIFY_CTX_set_*” sono state deprecate a favore delle nuove sostituzioni “TS_VERIFY_CTX_set0_*”, che promettono una semantica migliorata.
Gli utenti Windows vedranno anche una riprogettazione nel modo in cui vengono utilizzate le directory OPENSSLDIR, ENGINESDIR e MODULESDIR: queste posizioni possono ora essere definite in fase di runtime utilizzando le chiavi di registro, a differenza della precedente configurazione in fase di compilazione.
Altre modifiche includono aggiornamenti agli algoritmi SHAKE-128 e SHAKE-256. Questi ora richiedono un'impostazione esplicita della lunghezza dell'output, rendendoli inutilizzabili con "EVP_DigestFinal/_ex()" senza impostare il parametro "xoflen". Nel frattempo, le implementazioni di scambio di chiavi X25519 e X448 nel provider FIPS non sono attualmente approvate e contrassegnate con una proprietà "fips=no".
Il treno di deprecazione continua, con funzioni come "SSL_SESSION_get_time()", "SSL_SESSION_set_time()" e "SSL_CTX_flush_sessions()" sostituite da le rispettive varianti "_ex", progettate per essere sicure per Y2038 per le piattaforme che supportano tipi di tempo sicuri per Y2038.
C'è anche una modifica al modo in cui viene gestita la rinegoziazione nei saluti del client TLS: per le connessioni con versioni TLS minime superiori a 1.0, verrà utilizzata un'estensione di rinegoziazione vuota invece del SCSV di rinegoziazione vuoto.
OpenSSL 3.4 introduce anche diverse nuove funzionalità. In particolare, aggiunge il supporto per algoritmi di firma composita recuperati direttamente, come RSA-SHA2-256, con nuove funzioni API corrispondenti. Questa versione espande inoltre gli indicatori FIPS nel provider FIPS, preparandosi ai futuri requisiti di convalida FIPS 140-3.
È stato aggiunto il supporto RFC 9579 (PBMAC1) per PKCS#12 e la versione include un'ulteriore sorgente di seed casuale opzionale sotto forma di RNG JITTER, abilitata tramite una libreria jitterentropy collegata staticamente. Inoltre, le nuove opzioni “-not_before” e “-not_after” forniscono modi espliciti per impostare le date di inizio e fine per i certificati creati utilizzando i comandi req e x509.
Per quanto riguarda TLS 1.3, OpenSSL ora supporta le suite di crittografia di sola integrità TLS_SHA256_SHA256 e TLS_SHA384_SHA384. Sono inoltre disponibili il supporto per le richieste CRL in CMP, estensioni X.509v3 aggiuntive collegate ai certificati di attributo e il supporto iniziale per i certificati di attributo secondo RFC 5755.
Infine, un'aggiunta degna di nota per l'ottimizzazione delle prestazioni è la possibilità di personalizzare l'inizializzazione del gruppo ECC utilizzando valori precalcolati, che l'implementazione P-256 ora sfrutta per ridurre l'utilizzo della CPU.
Il registro delle modifiche della versione contiene un elenco dettagliato di tutte le modifiche in OpenSSL 3.4.