Il contesto in cui si inserisce la discussione sulle PKI, coinvolge lo scambio di chiavi pubbliche tra due utenti, in cui giocano un ruolo fondamentale le terze parti fidate. Introduciamo, quindi, i concetti principali del trattamento delle chiavi, i modelli più semplici della distribuzione delle stesse, ed il ruolo delle terze parti.
Una
delle funzioni principali di una PKI è il
trattamento delle chiavi.
Il
trattamento delle chiavi
è l’insieme delle tecniche e delle procedure che supportano lo stabilimento
ed il mantenimento delle keying relationships tra due entità autorizzate [3].
L’obiettivo
del trattamento delle chiavi è di gestire keying relationships ed informazioni
sulle chiavi, in modo che siano evitate minacce come la
compromissione
della confidenzialità di chiavi segrete e dell’autenticità di chiavi pubbliche o
private. I requisiti di autenticità
includono conoscenza o verificabilità dell’identità della parte con cui la
chiave è condivisa oppure a cui la chiave è associata. Inoltre
si cerca di evitare anche un
In
un sistema con n utenti che prevede l’uso di tecniche di chiave simmetrica, se
ogni coppia di utenti deve potere essere in grado di comunicare in modo sicuro,
allora ogni coppia deve condividere una chiave segreta distinta. In questo caso
ogni utente deve conoscere n-1 chiavi segrete; l’intero numero di chiavi nel
sistema, che è necessario memorizzare in un server è allora n(n-1)/2, che è approssimativamente n2.
(a) distribuzione di chiave point-to-point
(b) centri di distribuzione di chiavi
(c)
centri di traduzione di chiave
Figura 1. Modelli di distribuzione di chiave
Tre
sono i modelli di distribuzione di chiavi
più usati : il primo include i meccanismi point-to-point,
che coinvolgono direttamente le due parti comunicanti senza intermediari. Il
secondo modello usa i centri di distribuzione di chiave (KDC) per
distribuire chiavi tra utenti che condividono chiavi distinte con il KDC ma non
con ogni altro. Un tipico protocollo KDC procede nel seguente modo: appena
l'utente A inoltra una richiesta di condivisione di una chiave con l'utente B,
il KDC genera una chiave k, poi la cifra e la invia ad A, che a sua volta la
cifra e la invia a B; alternativamente il KDC invia direttamente la chiave k
(cifrata) a B. Il terzo
modello è realizzato attraverso i centri di traduzione di chiave (KTC).
Le assunzioni e gli obiettivi dei KTC sono gli stessi dei KDC, ma in questo caso
è una delle due parti (ad esempio A) che genera la chiave di sessione piuttosto
che il centro fidato KTC. Un tipico protocollo KTC procede nel seguente modo: A
invia una chiave k al KTC cifrata. Il KTC decifra k e la cifra nuovamente per B,
e a questo punto la invia direttamente a B, oppure la restituisce ad A, che la
invia a B. Quindi la differenza tra i KDC e i KTC è che i primi si occupano
della generazione delle chiavi mentre i secondi si occupano solo della
distribuzione delle chiavi. Entrambe sono tecniche che coinvolgono un server
fidato on-line [3].
Negli schemi di distribuzione e di gestione delle chiavi analizzati in precedenza, giocano un ruolo fondamentale le cosiddette terze parti, ovvero server fidati on-line, o autorità di certificazione (CA). Dal punto di vista delle comunicazioni, tre categorie di terze parti T possono essere distinte in base al tipo di comunicazione stabilita con le due parti comunicanti A e B.
Nella
comunicazione in-line, la terza parte T è intermediaria e serve come
mezzo di comunicazione in real-time tra le due parti A e B; in quella on-line
T è coinvolta in real-time durante ogni passo del protocollo
(comunicando con A o B o con entrambi), ma A e B comunicano direttamente
tra di loro, piuttosto che attraverso T. Infine nella comunicazione off-line
T non è coinvolta nel protocollo in real-time, ma prepara informazioni
a priori, che poi sono disponibili ad A e B, durante
l’esecuzione del protocollo.
autorità di certificazione (CA) : stabilisce e garantisce l’autenticità delle chiavi pubbliche.
Nei sistemi basati sui certificati quest’autorità deve
anche legare chiavi pubbliche a nomi distinti tramite certificati
firmati, e gestire i numeri di serie dei certificati e la loro revoca.
name server : responsabile del trattamento dello spazio dei nomi.
autorità di registrazione
: responsabile dell’autorizzazione delle entità, distinte
ognuna da un unico nome.
generazione della chiave : crea coppie di chiavi pubbliche e/o
private (chiavi simmetriche o passwords).
directory di certificati : consiste di un database di certificati o un server accessibile, in lettura dagli utenti. La gestione del database può essere a carico degli utenti stessi oppure della CA.
Inoltre le terze parti fidate possono fornire servizi avanzati quali :
agente
di timestamp,
usato per affermare l’esistenza di un documento specifico ad un certo
istante di tempo, o affiggere una data fidata ad una transazione o ad un
messaggio digitale;