Passa ai contenuti principali

Catene di certificati HTTPS

Nella lezione di Reti di Calcolatori di oggi abbiamo accennato ad un argomento che non è parte del corso, cioè le catene di certificati.

Nel corso abbiamo detto che la chiave pubblica di un Subject viene ottenuta sempre attraverso un certificato emesso da un Issuer che deve già essere presente nel KeySet e nel TrustSet di chi utilizza quel certificato.

Nella realtà accade quasi sempre una cosa più complicata: invece di un certificato arriva una sequenza di certificati in cui:

  • Lo Issuer dell'ultimo certificato della sequenza è il Subject del penultimo certificato;
  • ...
  • Lo Issuer del k-esimo è il Subject del (k-1)-esimo;
  • ...
  • Il primo certificato della sequenza è self-signed.

Solo il Subject=Issuer del primo certificato è nel KeySet e nel TrustSet (il primo certificato della sequenza deve cioè essere già presente nel software di chi usa la catena).

Intuitivamente, la CA che ho già nel KeySet e TrustSet delega un'altra CA-1 a rilasciare certificati; il fatto che io mi fidi di CA implica (trascurando qualche dettaglio) che mi fidi anche di CA-1. Poi CA-1 delega un'altra CA-2 e così via, fino ad arrivare al Subject finale che è certificato da una CA-X che non c'entra nulla con quella nel KeySet e TrustSet. La mia fiducia (implicita) in CA-X è una conseguenza logica della mia fiducia in CA.

Durante la lezione ho cercato di visualizzare una di queste catene ma come mi accade spesso non ci sono riuscito. In realtà è semplicissimo. Il certificato visualizzato dal browser è l'ultimo della catena, ad esempio, nel caso di Gmail:


Il tab "percorso certificazione" mostra una sintesi della catena: 

Andando a scavare nel TrustSet / KeySet di Windows 10 si trova, con un pò di pazienza, il certificato autofirmato che costituisce la "anchor" della catena, cioè l'atto di fede su cui si basa tutto il resto.


A questo punto iniziano infinite domande "ma i certificati intermedi possono essere inseriti nel KeySet? e nel TrustSet? e se dopo mi arriva dall'esterno uno diverso? e se viene revocato un certificato nella catena? e se un Issuer nella catena è già nel mio KeySet ma con una chiave diversa?". E così via. 

La quantità di problemi insiti in questa faccenda è una ulteriore dimostrazione della verità di quella frase che ho mostrato a lezione ed attribuito al quasi-Sheva&Kakà, "chiunque affermi che un problema è risolto facilmente dalla crittografia, dimostra di non avere capito il problema".




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 ...

La PhD school più importante della mia vita

Mi è tornata in mente proprio in questi giorni che ho iniziato il corso di Cybersecurity , nel quale parlo più volte dei design principles proposti da Saltzer e Schroeder nel loro capolavoro del 1974 . Se potessi incontrare Mike Schroeder oggi gli esprimerei con grande entusiasmo la mia ammirazione per quel suo capolavoro, nonostante la mia veneranda età e nonostante non abbia più la passione per la tecnologia e la ricerca che avevo da giovane. La cosa curiosa è che Mike Schroeder l'ho incontrato proprio quando ero giovane ed entusiasta: era un docente di quella PhD school...solo che non sapevo nulla di cybersecurity e quindi non ero a conoscenza di quel suo capolavoro, nonostante lo avesse scritto quasi venti anni prima! Mea culpa, mea grandissima culpa. Lisboa 92 - An advanced course on distributed systems Sono stato studente di solo due PhD schools...il titolo di questo blog post è quindi un pò clickbait . Comunque, Lisboa 92 è stata davvero molto importante per me. Non tanto ...

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...

Valutazioni della didattica

Da alcune settimane sono disponibili le valutazioni della didattica per lo scorso anno accademico, 2019-20. Il sito web è stato rinnovato radicalmente rispetto alla versione precedente. Secondo me, la società che lo gestisce è riuscita nell'impresa quasi impossibile di peggiorare il sito precedente. Chi ci capisce qualcosa nel nuovo sito è davvero bravo. Le valutazioni dei miei corsi sono sintetizzate nel mio sito personale . Qui ci sono i commenti degli studenti (per la prima volta ho deciso di non rendere pubblico un commento su Reti di Calcolatori che ritengo possa essere frainteso; ho comunque esposto e discusso questo commento con gli studenti di quest'anno). La "classifica" non è facile da comprendere perché le differenze di valutazione tra gli insegnamenti spesso sono minime ed il numero degli studenti varia molto tra insegnamenti diversi (io ne ho molti). Dedico molto tempo e molti sforzi alla didattica. Mi fa veramente piacere che i miei sforzi siano general...

Come si formula una domanda

Molto spesso gli studenti che devono fare una domanda generano una quantità elevatissima di parole che cercano di trasportare 4 concetti molto diversi tra loro: Domanda mirata a chiarire il dubbio Motivo per il quale è sorto il dubbio (ad esempio, slide ambigua o esperienza personale) Descrizione di uno scenario di esempio per chiarire la domanda Informazioni sullo scenario di esempio che sono del tutto inutili per la domanda L'effetto più frequente è che chi riceve la domanda non capisce o deve fare un grande sforzo per capire. Un effetto accessorio molto frequente è che chi formula la domanda non genera una "grande impressione" in chi la riceve. E' molto, molto, molto importante acquisire la capacità di distinguere questi concetti e di rifletterne la separazione in ciò che si dice o si scrive. Non è importante solo per il corso di reti, è importante sempre. In qualsiasi attività professionale. E' parte essenziale della capacità di esprimersi in modo c...