OpenSSL 4.0 non è il solito aggiornamento che si applica e via. Questa volta il salto è significativo, e chi lavora con server, applicazioni o infrastrutture di rete farebbe bene a prestare attenzione. La nuova major release segna una discontinuità netta rispetto alla linea 3.x, con una revisione ampia che tocca API, modularità e manutenzione del codice. Per capire la portata del cambiamento, vale la pena fare un passo indietro.
OpenSSL è una libreria software open source utilizzata per implementare protocolli di sicurezza come SSL e TLS, quelli che proteggono le comunicazioni su Internet tramite crittografia. È integrata praticamente ovunque: server web come Apache HTTP Server, Nginx e IIS, sistemi di posta, VPN, database, strumenti di rete. Si stima che sia presente, direttamente o indirettamente, in milioni di sistemi e dispositivi. La si trova nativamente nella maggior parte delle distribuzioni Linux e in macOS (anche se Apple utilizza proprie librerie come Secure Transport), mentre su Windows non fa parte del sistema ma viene spesso installata o incorporata da applicazioni di terze parti.
Chi volesse verificare se un software utilizza OpenSSL può analizzare le dipendenze del programma, ad esempio con strumenti come ldd su Linux, oppure interrogare direttamente il binario con il comando openssl version, se disponibile. Detto questo, il passaggio a OpenSSL 4.0 non è automaticamente indispensabile. Per chi sviluppa, l’aggiornamento diventa necessario soprattutto quando introduce miglioramenti di sicurezza rilevanti o quando le versioni precedenti escono dal supporto. In contesti stabili, invece, va valutato con attenzione per evitare problemi di compatibilità.
Vale la pena ricordare che nel corso degli anni OpenSSL è stato anche al centro di vulnerabilità su larga scala, tra cui la nota Heartbleed, che ha esposto dati sensibili da milioni di server dimostrando quanto una singola libreria possa avere un impatto globale sulla sicurezza.
Architettura rivista, modello a provider e nuova configurazione
Il cuore di OpenSSL 4.0 resta il modello a provider, introdotto già con la release 3.0 e ora ulteriormente consolidato. Gli algoritmi crittografici non risiedono più direttamente nel core della libreria: vengono esposti tramite moduli caricabili dinamicamente. E la selezione degli algoritmi avviene tramite proprietà e query string, non più tramite chiamate dirette a funzioni specifiche. Questo porta maggiore flessibilità, certo, ma negli ambienti più complessi una policy mal definita può portare all’uso involontario di algoritmi ormai superati o non conformi.
Una delle decisioni più impattanti riguarda la rimozione progressiva delle API storiche. Molte funzioni considerate legacy sono definitivamente eliminate o marcate come non supportate. Chi mantiene ancora codice sviluppato su OpenSSL 1.1.x o precedenti dovrà intervenire in modo significativo, perché con la nuova major release cambia proprio il modello con cui si accede alla crittografia.
C’è poi un aspetto meno visibile ma fondamentale: l’isolamento dei componenti crittografici. La nuova struttura consente di caricare provider separati, anche firmati e verificati, riducendo la superficie di attacco. Il concetto si avvicina a quello di un plugin sicuro: il core definisce le interfacce, mentre l’implementazione può essere validata indipendentemente.
Sul fronte della configurazione, OpenSSL 4.0 introduce un sistema più flessibile basato su file e proprietà a runtime. Il file openssl.cnf assume un ruolo centrale: definisce quali provider caricare, con quali priorità e sotto quali condizioni. Un amministratore può abilitare solo determinati algoritmi, disabilitarne altri o imporre vincoli specifici. Il risultato è un controllo molto più granulare, che però richiede attenzione. Non basta aggiornare la libreria: serve una gestione rigorosa delle policy crittografiche, documentando e versionando le configurazioni.
Operazioni pratiche da terminale e limiti da considerare
OpenSSL non è solo una libreria “invisibile”. Dalla finestra del terminale può essere utilizzato direttamente per generare chiavi crittografiche, creare certificati digitali, fare debug delle connessioni TLS. Ad esempio, per generare una chiave privata RSA a 2048 bit e una richiesta di certificato (CSR) si usano i comandi genpkey e req. Per ispezionare un certificato esistente basta il comando x509, mentre per testare una connessione TLS verso un server remoto si ricorre a s_client. OpenSSL permette anche la cifratura diretta di file con AES a 256 bit e il calcolo di hash crittografici come SHA 256, utili per verificare l’integrità dei dati.
Quanto ai limiti, OpenSSL 4.0 non è un aggiornamento da applicare alla leggera. Richiede pianificazione, test approfonditi e una revisione del modo in cui si gestisce la crittografia nelle applicazioni. L’introduzione di astrazioni più articolate migliora la modularità, ma rende la libreria meno immediata. Chi lavora con OpenSSL da anni potrebbe percepire una perdita di controllo diretto.