Il blog di Blia.it

OpenSSL 3 - prima parte

In questo breve corso su OpenSSL affronteremo i protocolli crittografici dagli inizi ai giorni nostri, dedicando questo primo articolo a cenni di SSL e TLS e gli articoli successivi a OpenSSL, fino alla versione 3, prossimamente in uscita.

Il protocollo Secure Sockets Layer (SSL), introdotto originariamente dalla Netscape a metà degli anni ’90, grazie al lavoro di Taher Elgamal e Kipp Hickman, e il Transport Layer Security (TLS) che dal 1999 in poi ha via via soppiantato SSL, consentono di implementare le funzioni crittografiche richieste dagli utenti, in modo a loro del tutto trasparente. Lo scopo è di rendere sicuri i protocolli e i dati a livello applicativo per loro natura insicuri, in quanto basati su protocolli che scambiano le informazioni in chiaro, incapsulandoli in uno strato, appunto SSL o TLS, posto al di sopra del protocollo di trasporto (es. Tcp). I protocolli SSL e TLS possono essere quindi applicati ad HTTP, SMTP, POP3, NNTP, ecc.

Per consentire alle componenti software di rete di comprendere quando è necessario utilizzare il livello SSL o TLS sono state previste ulteriori porte TCP: 443 per HTTP, 465 per SMTP, 995 per POP3, 563 per NNTP ed altre ancora. C’è da dire che, con STARTTLS, un evoluzione di TLS, è possibile cifrare la connessione anche sulle porte originali (25 per SMTP, 110 per POP3, 143 per IMAP, ecc.). Focalizzandoci solo sul protocollo HTTP, il ruolo di SSL è sostanzialmente quello di garantire la riservatezza dei dati trasmessi tra il browser e il server ed autenticare quest’ultimo. A volte, come vedremo in seguito, potrebbe essere necessario autenticare pure il client.

Senza entrare nel dettaglio degli algoritmi simmetrici e asimmetrici utilizzati dal protocollo (su Internet c’è ampia documentazione in merito) diciamo solo che lo scambio delle chiavi pubbliche avviene attraverso certificati emessi da autorità di certificazione. La raccomandazione X.509, emessa dall’Internation Telecommunication Union (ITU-T) specifica il formato standard di tali certificati e le norme che regolano l’infrastruttura composta dalle autorità di certificazione (CA). I protocolli TLS e SSL sono molto più complessi rispetto agli altri (HTTP, SMTP, ecc.) è anche una piccolissima crepa nel software che li implementa può fare danni enormi (più avanti parleremo del bug di sicurezza Heartbleed).

D’altronde il volto della rete Internet è profondamente cambiato dagli anni in cui la rete era usata solo per ricerca, studio, comunicazione non riservata, ai giorni nostri. Ora Internet è una realta economica di cruciale importanza, il commercio elettronico, l’home banking, la comunicazione riservata e qualsiasi altra attività in cui viaggiano moneta elettronica, documenti privati e informazioni sensibili non esisterebbero senza il protocollo SSL prima e TLS ora.

Fino a non molto tempo fa i siti “vetrina” o istituzionali, che non veicolavano quindi dati sensibili potevano optare per essere “solo” HTTP. Adesso, con i browser che segnalano con messaggi e banner sempre più appariscenti, volti a spaventare l’utente qualora decidesse di accedere a quel sito, sempre più aziende ed istituzioni stanno portanto i propri siti su HTTPS.

Tornando a quegli anni (1995) c’è da dire che SSL non fu l’unico protocollo inventato per rendere sicure le connessioni internet. Tre ricercatori del National Center for Supercomputing Applications (NCSA) dell’Illinois, Judson D. Weeks, Adam Cain e Briand Sanderson avevano proposto un sistema basato su Pretty Good Privacy (PGP), celeberrimo software inventato pochi anni prima (1991) da Phil Zimmermann che per primo rese la crittografia asimmetrica (o “a chiave pubblica”) facilmente accessibile a tutti. Questo protocollo si chiamava PGP-CCI ma non ebbe successo (è ancora oggi presente sul sito World Wide Web Consortim (W3C) un documento che ne parla (v. www.w3.org/Conferences/WWW4/Papers2/245.html). SSL ebbe quindi la meglio e, dalla versione 2 (la 1 non è mai stata pubblicata) del 1995 si è passati alla 3 del 1996 poi il protocollo è stato sostituito da TLS, che in ventanni è passato dalla 1.0 del 1999 alla 1.3 del 2018.

Per mantenere un livello alto di sicurezza quasi tutti i siti stanno disabilitando SSL e TLS fino alla versione 1.1. E’ molto probabile, quindi, che nel corso di quest’anno rimarrano attivi solo i protocolli TLS 1.2 e 1.3 (attualmente con maggiore diffusione del primo). Il 1995, come abbiamo visto, è stato un anno cruciale nella storia di Internet. Molti di voi si staranno chiedendo dove fossero in quell’anno, cosa stessero facendo o … magari, se fossero stati soltanto nei pensieri dei loro genitori. Chi vi scrive in quegli anni era incuriosito da un fenomeno nuovo, la cui notizia era da poco arrivata in Italia, Linux. Ma questa è un’altra storia.

Nel 1995 e negli anni a seguire i primi amministratori di sistema per collegarsi con un sistema remoto usavano telnet, e ftp per trasferire i file. Se notate il servizio Ftp funziona sulla porta 21 e Telnet sulla 23, a quell’epoca la 22 era vuota. Poi arrivò Tatu Ylonen, un ricercatore della Helsinki University of Technology, già, ancora loro, la hut.fi dove sono stati depositati per primi i sorgenti di Linux. Ylonen inviò un’email alla Internet Assigned Numbers Authority:

I have written a program to securely log from one machine into another over an insecure network … I would like to get a registered privileged port number for the software. … If the port number assignment can be arranged in time, I’d like to publish the software already this week. I am currently using port number 22 in the beta test

E da quel momento milioni di sistemisti usano giornalmente la porta 22, altri tempi, quelli erano i pionieri di Internet. Curiosi di vedere la versione 1.0 di ssh? Eccola: ftp.funet.fi/pub/mirrors/ftp.cs.hut.fi/pub/ssh/old/ Perchè ho citato ssh? Beh, anche ssh sfruttava la crittografia asimmetrica, inventata da R. Rivest, A. Shamir, e L.. Adelman, una decina di anni prima, nel 1983, ma che solo in quegli anni se ne intuivano le possibilità di un utilizzo pratico.

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)