Il blog di Blia.it

OpenSSL 3 - seconda parte

Proseguiamo il nostro racconto sulla nascita di OpenSSL e delle tecnologie crittografiche applicate al Web. Ci siamo lasciati al 1995, e riprendiamo da quell’anno in cui tutto è nato. Inizialmente basato su NCSA HTTPd server, un gruppo di sviluppatori crea Apache, altro pilastro, assieme a Linux, Php e MySql del famoso LAMP che per anni ha costituito la rete di piccoli e grandi server Web.

In quegli anni erano necessari strumenti per crittografare il codice in una rete in rapida crescita e così, sempre nel 1995 Eric Andrew Young e Tim Hudson iniziano a lavorare su SSL, creando il progetto SSLeay (dove e-a-y sono le iniziali di Young).

Apriamo una parentesi, l’esportazione della crittografia da parte degli Stati Uniti e degli altri paesi della Nato, è stata per molti anni (si veda it.wikipedia.org/wiki/Esportazione_della_crittografia per un approfondimento), equiparata all’esportazione di armi e sottoposta quindi a misure estremamente restrittive. Alla fine degli anni novanta, per poter esportare liberamente il software crittografico, la RSA Data Security, la società fondata da Rivest, Shamir e Adlemam, apre una consociata in Australia per sviluppare e vendere in tutto il mondo determinati software di crittografia che non può vendere dalla sua sede americana. La RSA australiana assume Young e Hudson, i quali, sulla base di SSLEay sviluppano un BSAFE SSL-C, un kit di strumenti progettato per produttori e sviluppatori di software. SSLeay, rimasta senza i due sviluppatori principali, rischia di essere abbandonata, ed è un peccato, perché le 165000 linee di cui è composta sono un patrimonio prezioso.

Ma alcuni programmatori di Apache non ci stanno e così, da un fork di SSLeay, il 23 dicembre 1998 viene pubblicata la versione 0.9.1c di OpenSSL (il nome doveva essere OpenTLS, ma all’epoca il TLS era ancora poco conosciuto perchè appena abbozzato, la prima versione sarebbe stata infatta pubblicata solo l’anno successivo). Il gruppo di sviluppatori, come abbiamo visto, proveniva in gran parte da Apache (Ben Laurie, Paul Sutton, Ralf Engelschall, Mark Cox) con un solo esterno, l’esperto di SSLeay Stephen Henson. Per una decina d’anni lo sviluppo è andato avanti con pochissime persone che saltuariamente scrivevano codice per il progetto, l’unico a dedicarsi a tempo pieno per tutto questo periodo è stato Stephen Henson.

Ciò nonostante la libreria OpenSSL è stata (e lo è ancora) inclusa in quasi tutte le distribuzioni Linux ed è usata in due terzi dei server web. Il numero di linee di codice della libreria è cresciuto fino a toccare quasi mezzo milione di righe. Il 30 dicembre 2011 accade qualcosa, che in seguito passerà alla storia come una delle vulnerabilità del software più pericolose mai scoperte. Uno sviluppatore tedesco di nome Robin Seggelmann, ricercatore presso l’università di Muenster, specializzato in comunicazioni e crittografia, già da qualche anno contribuiva al progetto OpenSSL con scritture di nuove funzionalità o correzioni di bug. Quel giorno propone al team di OpenSSL una patch per aggiungere il supporto a TLS/DTLS heartbeats. (v. github.com/openssl/openssl/commit/4817504d069b4c5082161b02a22116ad75f822b1). Seggelmann conosce bene il protocollo dato che è stato tra quelli che l’hanno scritto (v. tools.ietf.org/html/draft-ietf-tls-dtls-heartbeat-04).

Poche ore dopo la mezzanotte del 1/1/2012 Stephen Henson convalida il codice che entra quindi a far parte di OpenSSL. Per oltre due anni nessuno si accorge di nulla, o quanto meno, nessuno fa notare che in quella patch c’è qualcosa che non va. La funzione alla riga 2437:
memcpy(bp, pl, payload)
non è preceduta da un controllo sulla lunghezza del payload, questo significa che un malintenzionato può forzare la risposta del server a restituire parti di memoria (64Kb) non gestiti dal software, in quella memoria ci può essere di tutto, password, numeri di carta di credito, ecc.

Il 1° aprile del 2014, Google informa OpenSSL della vulnerabilità, che uno dei loro ricercatori, Neel Mehta, ha scoperto. Il bug viene subito corretto ma costringe migliaia di aziende ed enti pubblici ad aggiornare in tempi strettissimi il software dei propri server.

Seggelmann avrebbe poi ammesso che il bug nel codice, ora noto come Heartbleed, era “abbastanza banale”, anche se per qualcuno con esperienza come Henson avrebbe dovuto essere facile da individuare e correggere, ma tutti commettono errori.

OpenSSL è solo una delle migliaia di programmi software open source su cui milioni di persone fanno affidamento ogni giorno per attività che vanno dalla navigazione sul Web per fini ludici allo smart working, alle transazioni finanziarie, alla comunicazione.

Fin dalla sua istituzione, uno dei maggiori punti di forza dello sviluppo dell’open source è stato quello che lo sviluppatore software Eric Raymond ha definito “la legge di Linus”, il concetto cioè che con un numero sufficiente di persone che guardano un codice “tutti i bug vengono a galla”. Quindi, dopo che il bug Heartbleed è stato corretto, la domanda che si sono posti in tanti è stata come una vulnerabilità così critica potesse passare inosservata per così tanto tempo.

Come ha osservato Steve Marquess, ex CEO della OpenSSL Foundation in un post sul blog, la causa di Heartbleed è attribuibile allo stress da super lavoro degli sviluppatori e alla mancanza di finanziamenti. In effetti, scriveva Marquess, Henson era l’unico sviluppatore OpenSSL a lavorare a tempo pieno sul progetto, e per una frazione di quello che avrebbe potuto guadagnare portando le sue notevoli capacità tecniche altrove. “Questi ragazzi non lavorano su OpenSSL per soldi”, ha scritto Marquess. “Non lo fanno per fama. Lo fanno perchè è qualcosa in cui credono … sapendo che saranno ignorati fino a quando qualcosa sarò andato storto. “ Marquess ha puntato il dito contro quelli che includono OpenSSL nei propri prodotti che poi vendono a fior di quattrini. Quelli che ci tormentano per servizi di consulenza gratuiti quando non riescono a capire come usarli. Quelli che non hanno mai alzato un dito per contribuire alla comunità open source che ti ha donato questo software.

Marquess e Henson hanno entrambi lasciato OpenSSL nel 2017, ma non prima di assicurarsi un futuro del progetto. Dopo la loro partenza il team di sviluppo principale di OpenSSL è cresciuto fino a sette persone e il progetto è stato finanziato per almeno il 2021, grazie soprattutto ad una consistente sovvenzione da parte della Linux Foundation con la Core Infrastructure Initiative, un progetto dedicato alla erogazione di risorse all’open source. La stessa Core Infrastructure Initiative è finanziata attraverso donazioni da importanti aziende tecnologiche come Amazon, Google, IBM, Microsoft, Facebook e Intel. Questo significa che OpenSSL è al sicuro, a condizione che le aziende continuino a donare.

Ciao, alla prossima


Blia.it NON utilizza cookie (v. informativa)

Per contattare la redazione di Blia.it potete scrivere a: info@blia.it
(attenzione, blia.it non ha nessun rapporto con banche, scuole o altri enti/aziende, i cui indirizzi sono visualizzati al solo scopo di rendere un servizio agli utenti del sito)