{"id":453,"date":"2003-06-20T00:00:00","date_gmt":"2003-06-19T22:00:00","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"453","status":"publish","type":"post","link":"https:\/\/www.vialattea.net\/content\/453\/","title":{"rendered":"Vorrei sapere cosa &egrave; e come funziona il protocollo SSL? Che cosa si intende con OpenSSL?"},"content":{"rendered":"<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><\/p>\n<p>Il termine SSL sta per &#8220;Secure Socket Layer&#8221; ed indica un sistema per<br \/>\nla protezione crittografica delle comunicazioni attraverso una rete.<\/p>\n<p>Il protocollo \u00e8 stato originariamente sviluppato da Netscape e<br \/>\nsuccessivamente \u00e8 stato adottato come uno standard per Internet<br \/>\ned ha assunto il nome di TLS (Transport Layer Security).<\/p>\n<p><\/font><\/p>\n<\/p>\n<p><center><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><img decoding=\"async\" src=\"..\/..\/esperti\/inform\/ssl\/arch.png\" alt=\"\"\/><\/font><\/center><\/p>\n<p>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Nella figura viene mostrata l&#8217;architettura del protocollo SSL.<br \/>\nEsso \u00e8 composto di due livelli: il livello &#8220;record&#8221; sottostante<br \/>\ned il livello di controllo. Vedremo adesso un po&#8217; pi\u00f9 in dettaglio<br \/>\nle funzioni di ciascun livello.<\/p>\n<p><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Notiamo intanto che il livello &#8220;record&#8221;, oltre che essere utilizzato<br \/>\ndalle componenti di SSL al livello di controllo, si frappone fra le<br \/>\napplicazioni (nella figura rappresentate dal blocchetto marcato<br \/>\nHTTP) ed il protocollo TCP\/IP. Questo significa che un&#8217;applicazione che<br \/>\nvoglia utilizzare un collegamento sicuro, dovr\u00e0 essere modificata<br \/>\nin modo da accedere ai servizi di SSL anzich\u00e9 a quelli standard<br \/>\ndel protocollo TCP.<\/p>\n<p><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Quando un&#8217;applicazione (cliente) chiede di aprire una connessione SSL verso un<br \/>\nserver<br \/>\nsi attiva il servizio che utilizza i protocolli di handshake e di scambio<br \/>\ndelle chiavi di cifratura.<br \/>\nLo scopo di questa fase \u00e8 quello di utilizzare un<br \/>\nsistema crittografico asimmetrico<a href=\"http:\/\/www.vialattea.net\/esperti\/php\/risposta.php?num=2493#nota1\">(1)<\/a> per svolgere due funzioni:<\/p>\n<p><\/font><\/p>\n<ol><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><\/p>\n<li>Effettuare l&#8217;autenticazione reciproca del cliente e del server.\n<\/li>\n<li> Scambiare fra cliente e server<br \/>\nle chiavi di cifratura da utilizzare nel corso della connessione. Le<br \/>\nchiavi<br \/>\nsono due per il cliente e due per il server. Una di esse serve per la<br \/>\ncifratura dei dati e l&#8217;altra per il codice di autenticazione (MAC)\n<\/li>\n<p><\/font><\/ol>\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Al termine di questa fase inizia la vera e propria connessione durante la<br \/>\nquale il messaggio (ovvero i dati inviati da cliente a server e viceversa)<br \/>\nviene trattato come segue:<\/p>\n<p><\/font><\/p>\n<ol><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><\/p>\n<li>Il messaggio viene suddiviso in blocchi di lunghezza prefissata.\n<\/li>\n<li>Ciascun blocco viene compresso con un algoritmo di compressione.\n<\/li>\n<li>A ciascun blocco viene aggiunto il codice MAC che serve a garantire<br \/>\n    l&#8217;autenticit\u00e0 dei dati.\n<\/li>\n<li>Il blocco complessivo (dati compressi+MAC) viene cifrato utilizzando un<br \/>\n    algoritmo simmetrico<a href=\"http:\/\/www.vialattea.net\/esperti\/php\/risposta.php?num=2493#nota2\">(2)<\/a> e l&#8217;opportuna chiave.\n<\/li>\n<li> In testa al blocco cifrato viene posto lo &#8220;header&#8221; SSL.\n<\/li>\n<li> Il blocco viene inviato al corrispondente Utilizzando il protocollo TCP\/IP.\n<\/li>\n<p><\/font><\/ol>\n<p>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Il corrispondente alla ricezione del blocco dovr\u00e0 efettuare le operazioni contrarie, ovvero:<br \/>\n<\/font><\/p>\n<\/p>\n<ol><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><\/p>\n<li> Eliminare lo header SSL.\n<\/li>\n<li> Decifrare il messaggio utilizzando la chiave opportuna.\n<\/li>\n<li> Verificare che il codice MAC sia quello del corrispondente.\n<\/li>\n<li> Eliminare il codice MAC\n<\/li>\n<li> Decomprimere il blocco risultante.\n<\/li>\n<li> Riunire i frammenti del messaggio.\n<\/li>\n<p><\/font><\/ol>\n<\/p>\n<h3><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">OpenSSL<\/font><\/h3>\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">OpenSSL \u00e8 il nome dato ad una implementazione del protocollo SSL<br \/>\n&#8220;open source&#8221; ovvero disponibile a tutti in forma sorgente. Essa costituisce la<br \/>\nbase di tutte le implementazioni di SSL per i sistemi operativi<br \/>\nnon proprietari (Linux, FreeBSD, ecc.)<br \/>\n<\/font><\/p>\n<hr\/>\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Per ulteriori approfondimenti possono essere interessanti i seguenti siti:<\/p>\n<p><\/font><\/p>\n<dl>\n<dt>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"http:\/\/www.faqs.org\/faqs\/computer-security\/ssl-talk-faq\/\"><br \/>\nhttp:\/\/www.faqs.org\/faqs\/computer-security\/ssl-talk-faq\/<\/a>.<br \/>\n<\/font><\/dt>\n<dd><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> La FAQ del gruppo di discussione su SSL<\/p>\n<p><\/font><\/dd>\n<dt>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"http:\/\/home.netscape.com\/eng\/ssl3\/index.html\"><br \/>\nhttp:\/\/home.netscape.com\/eng\/ssl3\/index.html<\/a>.<br \/>\n<\/font><\/dt>\n<dd><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> La definizione del protocollo SSL 3.0<\/p>\n<p><\/font><\/dd>\n<dt>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"http:\/\/www.ietf.org\/internet-drafts\/\"><br \/>\nhttp:\/\/www.ietf.org\/internet-drafts\/<\/a>.<br \/>\n<\/font><\/dt>\n<dd>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">La  raccolta dei  documenti del IETF (Internet Engineering Task Force)<br \/>\ncontenente una ventina di documenti relativi a TSL.<\/p>\n<p><\/font><\/dd>\n<dt>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"http:\/\/www.openssl.org\/\"><br \/>\nhttp:\/\/www.openssl.org\/<\/a>.<br \/>\n<\/font><\/dt>\n<dd>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">La &#8220;sede&#8221; del progetto OpenSSL.<br \/>\n<\/font><\/dd>\n<\/dl>\n<p>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Argomenti correlati a questo sono stati trattati in passato sul nostro sito.<br \/>\nIn particolare:<br \/>\n<\/font><\/p>\n<dl>\n<dt>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"http:\/\/www.vialattea.net\/esperti\/php\/risposta.php?num=590\"><br \/>\nhttp:\/\/www.vialattea.net\/esperti\/php\/risposta.php?numero=590<\/a>.<br \/>\n<\/font><\/dt>\n<dd>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Una introduzione ai protocolli TCP\/IP.<\/p>\n<p><\/font><\/dd>\n<dt>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"http:\/\/www.vialattea.net\/esperti\/php\/risposta.php?num=2276\"><br \/>\nhttp:\/\/www.vialattea.net\/esperti\/php\/risposta.php?num=2276<\/a>.<br \/>\n<\/font><\/dt>\n<dd>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Una breve nota sui pi\u00f9 comuni metodi di programmazione di applicazioni di rete.<br \/>\n<\/font><\/dd>\n<\/dl>\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Per una inquadratura generale e non tecnica dei metodi crittografici<br \/>\nconsiglio il bel libro di Simon Singh: &#8220;<b>Codici e Segreti<\/b>&#8220;; Rizzoli.<\/p>\n<p><\/font><\/p>\n<hr\/>\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a name=\"nota1\"><\/p>\n<h3>Nota 1<\/h3>\n<p><\/a><br \/>\nGli algoritmi di cifratura asimmetrica, detti anche &#8220;a chiave pubblica&#8221;,<br \/>\nsono algoritmi per i quali occorrono due chiavi diverse,<br \/>\n una per la cifratura e l&#8217;altra per la decifratura del messaggio.<br \/>\nLe due chiavi sono fra loro strettamente connesse in quanto i messaggi<br \/>\ncifrati tramite la prima possono essere decifrati solo conoscendo<br \/>\nla seconda, e viceversa.<br \/>\n<\/font><\/p>\n<p>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Nell&#8217;uso normale una delle due chiavi deve essere tenuta segreta (la<br \/>\nchiameremo SEGR) ed una viene pubblicata in elenchi disponibili a tutti<br \/>\n(la chiameremo PUBB).  Quando il soggetto A vuole mandare un messaggio<br \/>\nriservato al soggetto B, utilizza la chiave pubblica di B per cifrare il<br \/>\nmessaggio. L&#8217;algoritmo garantisce che solo la chiave SEGR di B pu\u00f2<br \/>\nessere usata per decifrare il messaggio. Il grande vantaggio di tali<br \/>\nmetodi consiste nel fatto che, poich\u00e8 la chiave SEGR non \u00e8<br \/>\nnecessaria per cifrare il messaggio, non \u00e8 mai necessario<br \/>\ntrasmetterla al corrispondente, evitando quindi il rischio che venga<br \/>\nintercettata.<br \/>\n<\/font><\/p>\n<p>\n<font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Questo metodo pu\u00f2 anche essere usato per autenticare il mittente<br \/>\ndi un messaggio. Infatti se il soggetto B cifra un messaggio usando la<\/p>\n<p>propria chiave SEGR, chiunque pu\u00f2 verificare l&#8217;autenticit\u00e0<br \/>\ndel messaggio cifrato in quanto solo la chiave pubblica corrispondente<br \/>\n\u00e8 in grado di decifrare il messaggio, ovvero \u00e8 garantito<br \/>\nche solo il possessore della chiave SEGR corrispondente pu\u00f2 aver<br \/>\ngenerato quel particolare messaggio cifrato. Anche in questo caso non<br \/>\nc&#8217;\u00e8 alcuna necessit\u00e0 di trasmettere la chiave SEGR.<\/p>\n<p><a name=\"nota2\"><\/p>\n<h3>Nota 2<\/h3>\n<p><\/a><br \/>\nGli algoritmi di cifratura simmetrici sono quelli in cui cifratura e<br \/>\ndecifratura vengono effettuate con la stessa chiave. Questi algoritmi<br \/>\nrichiedono che due corrispondenti che vogliono scambiarsi messaggi in modo<br \/>\nsicuro abbiano avuto modo di comunicarsi la chiave di cifratura senza che<br \/>\nquesta sia stata intercettata. Il vantaggio di tali algoritmi rispetto a quelli<br \/>\nasimmetrici consiste nell&#8217;essere assai pi\u00f9 &#8220;leggeri&#8221; dal punto<br \/>\ndi vista delle operazioni necessarie per cifratura e decifratura.<br \/>\nPer questo motivo la maggior parte dei sistemi di trasmissione sicura<br \/>\nprevede l&#8217;uso di algoritmi simmetrici, utilizzando per\u00f2 chiavi<br \/>\ncasuali generate sul momento e scambiate fra i due corrispondenti<br \/>\nutilizzando un  metodo asimmetrico.<\/p>\n<p><\/font><\/p>\n<p>\u00a0 <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[&#8230;]<\/p>\n","protected":false},"author":198,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[],"class_list":["post-453","post","type-post","status-publish","format-standard","hentry","category-domande-varie-informatica-e-telecomunicazioni"],"_links":{"self":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/users\/198"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/comments?post=453"}],"version-history":[{"count":0,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/453\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/media?parent=453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/categories?post=453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/tags?post=453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}