Questa sezione considera modelli di gestione di chiavi per sistemi che coinvolgono multipli domini o autorità, opposto ai modelli più semplici a singolo dominio. Un dominio di sicurezza (dominio) è definito un (sotto)sistema sotto il controllo di una singola autorità, in cui gli utenti hanno fiducia. La politica di sicurezza implementata in un dominio è definita implicitamente o esplicitamente dalla sua autorità. La fiducia che ogni utente, in un dominio, ha nella sua autorità proviene da, ed è mantenuta attraverso, un'entità specifica con cui condivide la chiave segreta o la password (nel caso simmetrico), o il possesso della chiave pubblica dell'autorità (nel caso asimmetrico). Questo permette di stabilire canali di comunicazione sicuri (che garantisce autenticità e/o confidenzialità) tra l'utente e l'autorità, o tra due utenti nello stesso dominio. I domini di sicurezza potrebbero essere organizzati (gerarchicamente) per formare domini più grandi [3].
Due parti A e B, appartenenti a distinti domini di sicurezza DA e DB con le rispettive autorità TA e TB, potrebbero desiderare di comunicare in modo sicuro (oppure A potrebbe desiderare di accedere alle risorse da un distinto dominio DB).
Questo problema può essere ridotto alla richiesta che sia A che B (condivisione di una chiave simmetrica) stabiliscano una chiave segreta, condivisa kAB, in cui hanno fiducia, visto che è conosciuta solo dall’altro utente (e possibilmente dalle autorità fidate); oppure (condivisione di chiavi pubbliche fidate) acquisiscano fiducia in una o più chiavi pubbliche comuni, che potrebbe essere usate per instaurare fiducia tra i domini, per esempio permettendo la verifica dell’autenticità dei messaggi proposti dall’altro, o assicurare la confidenzialità dei messaggi spediti all’altro. Se TA e TB hanno una relazione di fiducia esistente, una richiesta potrebbe essere fatta usando questa ed altre relazioni di fiducia direzionate dalla coppia inizialmente, che permettono canali di comunicazione sicuri tra le coppie (A, TA ), (TA , TB ) e (TB ,B), per essere successivamente usate per stabilire la relazione di fiducia oggetto (A, B) (Figura 3). Questo può essere fatto da A e B essenzialmente delegando alle rispettive autorità il compito di acquisire fiducia in un'entità che è sotto il controllo di un'altra autorità. Se TA e TB non condividono direttamente una relazione di fiducia esistente, una terza autorità TC , nella quale entrambi hanno fiducia, potrebbe essere usata come un intermediario per raggiungere gli stessi risultati finali. Questo è analogo alla catena di fiducia nel caso delle chiavi pubbliche.
Figura 3. Comunicazione tra due domini
Le due possibili soluzioni al problema della comunicazione tra due domini sono di seguito discusse con maggiori dettagli. Nel caso della chiave simmetrica fidata, la fiducia in una chiave segreta condivisa potrebbe essere acquisita tramite una varietà di tecniche di accordo su chiavi autenticate. Descriviamo i passi attraverso i quali le parti A e B possono fare ciò che è stato descritto sopra :
A fa una richiesta a TA per ottenere una chiave da condividere con B;
TA e TB stabiliscono una chiave segreta a breve termine kAB;
TA e TB rispettivamente, distribuiscono kAB ad A e B garantendo segretezza e autenticità ;
A usa kAB per comunicazione diretta sicura con B. I messaggi possono essere eliminati se il loro contenuto è ritrasmesso da TB ad A tramite TA come parte di messaggi esistenti;
In questo caso, dal punto di vista di A la
composizione di TA e TB,
e le relazioni di fiducia (TA,
TB) possono essere viste come una singola autorità, con cui
A comunica tramite TA.
A richiede a TA la chiave pubblica fidata di B;
TA acquisisce la chiave da TB, con autenticità garantita;
TA trasferisce questa chiave pubblica ad A con autenticità garantita;
A usa
questa chiave pubblica per comunicazioni dirette e sicure con
B.
E’
possibile trasferire fiducia tra domini diversi nel seguente modo: assumiamo che
TB ha creato un certificato CB, contenente l’identità
e la chiave pubblica di B, allora TA crea un certificato ibrido
contenente l’identità e la chiave pubblica di TB.
Esistono
diverse alternative per organizzare relazioni fidate tra CA, in sistemi a chiave
pubblica che coinvolgono multiple CA [3].
I certificati di chiavi pubbliche forniscono un mezzo per ottenere chiavi pubbliche autenticate, fornendo al verificatore una prova di verifica fidata attraverso la chiave pubblica della CA che ha firmato il certificato. Nel caso di multiple CA, il verificatore vorrebbe ottenere la chiave pubblica autentica, verificando un certificato firmato da CA oltre che quello per il quale possiede una chiave pubblica fidata. In questo caso il verificatore può ancora fare ciò data una catena di certificati che può essere costruita e che corrisponde ad una catena di fiducia dalla chiave pubblica della CA nella quale il verificatore ha fiducia, alla chiave pubblica in cui esso desidera aver fiducia. Le catene di certificati corrispondono a path dirette nella rappresentazione grafica di un modello fidato CA (Figura 4). Lo scopo è di trovare una sequenza di certificati corrispondente ad una path diretta (path di certificazione) che parte dal nodo corrispondente alla CA nella cui chiave pubblica il verificatore ha fiducia a priori, e termina nella CA che ha firmato il certificato della chiave pubblica da verificare.
(a) Alberi con radici multiple
(b) Grafo diretto per il modello di fiducia
Figura 4. Modelli di fiducia per la certificazione
Un’illustrazione
di una catena di certificati è la
seguente (Figura 4(b)):
Un
altro esempio di costruzione di catene di certificati usando coppie di
certificati ibrido è il seguente :
In
assenza di più avanzate tecniche o tabelle di routing, ogni path di
certificazione esistente potrebbe essere trovata attraverso una ricerca in
profondità o in ampiezza dei certificati reverse nella coppia di certificato
ibrido che inizia dal CA relativa alla chiave pubblica che il verificatore
possiede inizialmente [3].
Si potrebbe pensare che le CA siano difese da tutti i possibili attacchi, per esempio un attaccante potrebbe tentare di scoprire la chiave privata di una CA "rompendo" l’ingegneria del dispositivo in cui è memorizzata. Per questa ragione una CA deve adottare precauzioni estreme per prevenire accessi illegittimi alla sua chiave privata.
Se
un attaccante rompe la chiave del CA ed essa
non è più valida, l’attaccante, detto Alice, può falsificare un certificato
datato quindici anni prima che attesta una chiave pubblica falsa per qualche
altra persona, detta Bob. Alice può allora falsificare un documento con una
firma di Bob datata quindici anni fa, per esempio Bob lascia tutto ad Alice.
Ciò che si evince da questo attacco è come firmare un documento datato diversi
anni fa. Il timestamp è una soluzione a questo caso.
Per esempio, supponiamo che Bob desidera impersonare Alice. Se Bob può
firmare convincentemente messaggi come Alice esso può spedire un messaggio alla
banca di Alice per ottenere dei soldi. Per eseguire questo attacco Bob
genera una coppia di chiavi e spedisce la chiave pubblica ad una CA dicendo di
essere Alice e di certificarlo con quella chiave pubblica .
Se la chiave di una CA è persa o distrutta ma non compromessa, i certificati firmati con la vecchia chiave sono ancora validi fino a quando il verificatore conosce l’uso della vecchia chiave pubblica per verificare il certificato. Si potrebbe mantenere una copia di backup cifrata della chiave privata della CA in un dispositivo in modo da poterla ripristinare quando essa è persa. Se il dispositivo è distrutto la fabbrica può fornirne un altro con le stesse informazioni interne permettendo il recupero della chiave. La compromissione della chiave della CA è la situazione più disastrosa. Un attaccante che scopre la chiave privata di una CA può emettere certificati falsi a nome della CA, che potrebbe causare falsificazioni non individuabili.
Se
una compromissione della chiave occorre, la CA deve immediatamente cessare di emettere
certificati con la vecchia chiave e deve adottarne una nuova. Se la CA sospetta
che qualche certificato falso è stato emesso, tutti i certificati dovrebbero
essere ritirati e riemessi con la nuova chiave della CA. Queste misure
potrebbero essere rilassate se i certificati furono registrati con un servizio
digitale di timestamping. La
compromissione di una chiave CA non invalida le chiavi degli utenti, ma solo i
certificati che le autenticano. La compromissione della chiave privata della CA
di top-level potrebbe essere catastrofica, visto che la chiave pubblica potrebbe
essere coinvolta in applicazioni che verificano i certificati [1].