Dopo un anno e mezzo di sviluppo, è stata rilasciata la libreria OpenSSL 3.1.0 con implementazione dei protocolli SSL/TLS e vari algoritmi di crittografia. Il supporto per OpenSSL 3.1 sarà disponibile fino a marzo 2025. Il supporto per le versioni precedenti OpenSSL 3.0 e 1.1.1 continuerà fino a settembre 2026 e settembre 2023, rispettivamente. Il codice del progetto è distribuito con licenza Apache 2.0.
Novità principali di OpenSSL 3.1.0:
- Nel modulo FIPS è stato implementato il supporto per gli algoritmi crittografici conformi allo standard di sicurezza FIPS 140-3. È iniziato il processo di certificazione del modulo per ottenere il certificato di conformità ai requisiti FIPS 140-3. Fino al completamento della certificazione dopo l'aggiornamento di OpenSSL alla versione 3.1, gli utenti possono continuare a utilizzare il modulo FIPS certificato per FIPS 140-2. Tra le modifiche nella nuova versione del modulo si segnalano l'inclusione degli algoritmi Triple DES ECB, Triple DES CBC e EdDSA, che non sono ancora stati verificati per la conformità ai requisiti FIPS. Inoltre, nella nuova versione sono state effettuate ottimizzazioni per migliorare le prestazioni e è stato implementato il passaggio all'esecuzione dei test interni ad ogni caricamento del modulo, e non solo dopo l'installazione.
- È stato rielaborato il codice OSSL_LIB_CTX. La nuova versione è priva di blocchi eccessivi e consente di ottenere prestazioni più elevate.
- È stata aumentata la performance dei framework di codifica e decodifica.
- È stata ottimizzata la prestazione, relativa all'uso delle strutture interne (tabelle hash) e al caching.
- È stata aumentata la velocità di generazione delle chiavi RSA in modalità FIPS.
- Per diverse architetture di processori, sono state aggiunte ottimizzazioni specifiche in assembler per l'implementazione degli algoritmi AES-GCM, ChaCha20, SM3, SM4 e SM4-GCM. Ad esempio, il codice AES-GCM è stato accelerato utilizzando le istruzioni AVX512 vAES e vPCLMULQDQ.
- Nel KBKDF (Key Based Key Derivation Function) è stata aggiunta la supporto per l'algoritmo KMAC (KECCAK Message Authentication Code).
- Diverse funzioni 'OBJ_*' sono state adattate per l'uso in codice multithreading.
- È stata aggiunta la possibilità di utilizzare per la generazione di numeri pseudorandomici le istruzioni RNDR e i registri RNDRRS, disponibili nei processori basati sull'architettura AArch64.
- Le funzioni OPENSSL_LH_stats, OPENSSL_LH_node_stats, OPENSSL_LH_node_usage_stats, OPENSSL_LH_stats_bio, OPENSSL_LH_node_stats_bio e OPENSSL_LH_node_usage_stats_bio sono state deprecate. È stato dichiarato obsoleto il macro DEFINE_LHASH_OF.
Fonte: opennet.ru
