Passa ai contenuti principali

HTTPS: dettagli sulla autenticazione del server

Ho ricevuto una domanda sui certificati, in vista della provetta di fine corso "Reti di Calcolatori". Domanda che coinvolge alcuni dei molti (molti, molti...) aspetti e problemi che purtroppo non è stato possibile approfondire nel corso e quindi non fanno parte del programma di esame. Aspetti e problemi che comunque sono, secondo me, interessanti...pertanto ho deciso di discuterli qui.

Sono proprietaria di un sito il cui nome è stato realizzato con il non custom domain, mi faccio certificare da una Certification Authority la quale mi da una chiave pubblica, una privata e il certificato in cui associa il mio DNS name a tale chiave pubblica.

Dopo qualche tempo decido di passare alla versione di webhosting che mi consente di scegliere il nome che desidero per il mio sito.

Se faccio ciò vuol dire che dovrò tornare dalla CA per farmi dare un nuovo certificato, cambierà anche la chiave pubblica associata a questo nuovo nome? Oppure posso comunque tenere quella precedente?

La risposta è intricata.

In generale, ogni volta che un SubjectFisico desidera un nuovo certificato occorre che acquisisca una nuova coppia di chiavi. Abbiamo visto a lezione: le chiavi sono costruite e rilasciate dalla CA, non dal SubjectFisico. Quindi se la domanda è "quando un sito cambia nome può usare le stesse chiavi di prima?" allora la risposta è "no".

Cosa accade con i non custom domain dipende dalla forma del nome.

In Google Sites con non custom domain il nome è lo stesso per tutti i siti del mondo:

sites.google.com/....
.

Nella vecchia versione di Google Sites era disponibile solo http, in quella nuova è disponibile solo https. Se andate su un sito Google Sites nuova versione, trovate quindi lo stesso certificato per tutti i siti (non ho nessuno sottomano da indicarvi: il mio sito personale è su Google Sites nuova versione ma ha un custom domain; il sito del Machine Learning Lab è su Google Sites vecchia versione).

La gestione più comune dei non custom domain, comunque, è quella della forma usata, ad esempio, da Blogger, cioè da questo sito che state leggendo:

https://bartoli-alberto.blogspot.com/

La parte in blu è diversa per ogni sito ospitato da Blogger. E' un non custom domain perché la struttura è la stessa per tutti i siti ospitati da Blogger.

A questo punto la cosa si complica. Il sito è https ma io non sono andato da nessuna CA e non ho nessuna coppia chiave pubblica-chiave privata.

Quindi Blogger crea automaticamente una coppia di chiavi diversa per ogni sito che ospita? No. Blogger usa la stessa coppia di chiavi per tutti i siti che ospita.

Allora su Blogger ci sono tanti certificati diversi (uno per ogni sito ospitato) che hanno Subject diverso e stessa chiave pubblica? No. C'è un solo certificato valido per tutti i siti: il Subject di quel certificato ha una forma particolare:

*.blogspot.com
.

dove '*' viene interpretato dal browser come "qualsiasi sequenza di caratteri" (ok, non chiediamoci "e se io volessi usare come nome proprio *?"). Pertanto, quando il browser riceve il certificato e verifica che il Subject contenga lo stesso DNS name che trova nell'URL, la verifica ha successo. Quindi quel certificato, e la corrispondente singola coppia di chiavi che è stata messa una volta per tutte sul web server di Blogger, vale per tutti i siti ospitati su Blogger.

Bello e semplice....solo che la cosa si complica ulteriormente.

Andando a vedere il certificato inviato dal web server , si scopre che il Subject non ha nulla a che vedere con blogspot.com:

E allora? I certificati ed il procedimento di verifica prevedono la presenza di un ulteriore campo che si chiama SubjectAltName ed il cui valore contiene altri nomi che possono essere associati a quel certificato (cioè nomi DNS che possono essere usati dai server che presentano quel certificato). In quel certificato si trovano molti nomi tra i quali, appunto, "*.blogspot.com".


Piccole riflessioni finali.
  • Spero siate ancora più convinti del fatto che tra lo strumento "crittografia" e le sue applicazioni reali c'è una distanza enorme: "Whenever anyone says that a problem is easily solved by cryptography, it shows that he doesn’t understand it".
  • Alla fine del corso, il significato del post "Come organizzo lo studio di Internet" acquista forse un nuovo significato.

Commenti

Popular Posts

"Ingegneria deve essere difficile"

Il ritaglio di giornale qui sotto ricorda uno degli eventi più non-trovo-un-aggettivo-appropriato del mio periodo di studente di Ingegneria a Pisa. Ricordo che una mattina iniziò a spargersi la voce "hanno murato la porta del dipartimento!".  Andammo subito a vedere ed arrivammo un pò prima dei giornalisti che scattarono questa foto. La porta era murata, intonacata, pitturata di bianco e sovrastata da una scritta "INGEGNERIA DEVE ESSERE DIFFICILE". Le "E" di "INGEGNERIA" erano scritte al contrario perché era una sorta di "marchio di fabbrica" della facoltà di Ingegneria di Pisa. L'aula più grande, quella in cui pressoché tutti gli studenti seguivano i corsi dei primi anni, aveva infatti alcuni bellissimi "affreschi scherzosi" che furono fatti nel corso delle proteste studentesche di qualche anno prima ed in cui la parola "Ingegneria" era appuntoi scritta in quel modo. Si era anche già sparsa la voce di cosa era

Il patch che non era un patch

Quanto segue è un patetico quanto inutile tentativo di distrarmi e non pensare alla pessima prestazione calcistica di ieri sera, decisamente non all'altezza dell'evento e dei nostri gloriosi colori. Nella lezione di "Computer Networks and Principles of Cybersecurity" di ieri, mi è stata posta la domanda " E' possibile che un patch introduca nuove vulnerabilità? ". La mia risposta è stata affermativa, ho evidenziato che un patch è un software, quindi può introdurre errori, vulnerabilità, può fare riemergere errori o vulnerabilità presenti e risolti in versioni precedenti, può correggere la specifica vulnerabilità presumibilmente risolta da quel patch solo in parte. Non è frequente, ma può accadere ed è quindi una possibilità da tenere presente. Uno dei numerosi motivi che rendono così complessa la gestione delle vulnerabilità è anche questo. Stamattina ho letto un esempio molto interessante di quanto abbiamo detto. Pochissime settimane fa Microsoft ha ril

Perché studiare Analisi Matematica???

Un mio caro amico mi ha scritto: ...sono con mia figlia che studia Analisi 1...A cosa serve, al giorno d'oggi, studiare Analisi (a parte sfoltire i ranghi degli aspiranti ingegneri)? Riporto la mia risposta di seguito, forse può "motivare" qualche altro studente. ... Per un ingegnere la matematica è fondamentale perché è un linguaggio ; ed è il linguaggio essenziale per trattare gli argomenti che dovrà affrontare come ingegnere; non sono importanti i contenuti specifici; è importante, anzi fondamentale, che riesca a capirli, ricostruirli etc. ad esempio, chi deve usare l'inglese, lo usa perché in un modo o nell'altro lo conosce; nessuno di noi ha usato esattamente le frasi o i dialoghi o le regole che ha incontrato negli esercizi di inglese o di tedesco; nella matematica è lo stesso; non sono importanti i limiti, le serie, i teoremi di cauchy o che so io; ma se uno non è in grado di capire quel linguaggio allora non sarà in grado di capire davvero quas

40 anni di Internet: Cosa non ha funzionato e perché

Leggo molti documenti tecnico-scientifici per lavoro e, in parte, per "piacere". Molti sono interessanti, alcuni molto interessanti. E' raro che trovi un documento che mi appare illuminante. Questo indicato sotto è uno dei pochi documenti in questa categoria. Sembra banale, in quanto è molto discorsivo e parla di molte cose note: IP, DNS, NAT.... In realtà è profondissimo. Una miniera di riflessioni profonde, sintetiche, focalizzate ed, appunto, illuminanti. A mio parere imperdibile per chiunque abbia un qualche interesse negli aspetti tecnici di Internet. Chi non ha la pazienza di leggerlo per intero, legga almeno gli ultimi due paragrafi. Failed Expectations (l'autore, Geoff Houston , fa parte della Internet Hall of Fame )

ChatGPT: supererebbe il mio esame di Reti di Calcolatori?

Molto probabilmente chi ha a che fare con i corsi di laurea scientifici e tecnologici, come me, ha preso atto della notizia che ChatGPT ha superato esami universitari in giurisprudenza ed economia con un pò, diciamo così, di sufficienza. Pensando "da noi non potrebbe mai succedere; figuriamoci". E' quello che ho pensato io. Poi però ho fatto a ChatGPT qualche domanda di Reti di Calcolatori. Ho quasi cambiato idea. "Quasi" perché nello scritto di Reti di Calcolatori faccio sempre esercizi. Pur non avendoli sottoposti a ChatGPT sono certo che questi esercizi non li sa risolvere. Ma alle "domande tipiche da orale" ha fornito risposte che mi hanno davvero stupefatto. Riporto qui sotto solo un esempio di "dialogo", relativo a validazione di firma digitale e certificati auto-firmati. Risposte sostanzialmente corrette e pertinenti, molto più sintetiche e focalizzate di quelle che ricevo normalmente. E più rapide. Alla fine ha riconosciuto di esser