2 Concetti di base   

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.

 

  2.1  Trattamento delle chiavi  

Una delle funzioni principali di una PKI è  il trattamento delle chiavi. Prima di tutto definiamo una keying relationship, come lo stato in cui entità comunicanti condividono dati comuni per facilitare tecniche di crittografia. Questi dati potrebbero includere chiavi pubbliche o segrete, valori di inizializzazione e parametri addizionali non segreti.

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]. Il trattamento delle chiavi include tecniche e procedure che supportano: inizializzazione di utenti di sistema in un dominio; generazione, distribuzione ed installazione delle chiavi e tutte le informazioni ad esse collegate; controllo dell’uso delle chiavi ; aggiornamento, revoca e distruzione delle chiavi; memorizzazione, recupero ed archivio delle chiavi. Il trattamento delle chiavi gioca un ruolo fondamentale come base per la sicurezza delle tecniche crittografiche, fornendo confidenzialità, autenticazione di utenti, originalità ed integrità dei dati e firme digitali. Le keying relationships in un ambiente di comunicazione coinvolgono in real-time almeno due parti (un mittente ed un ricevente). In un ambiente di memorizzazione, ci potrebbe essere  un unico utente, che memorizza e ritira i dati a diversi istanti di tempo.

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   uso non autorizzato di chiavi pubbliche o private, come ad esempio l'uso di una chiave che non è più valida. Gli aspetti specifici del trattamento delle chiavi dipendono, di solito, dal contesto e dall’ambiente ma soprattutto dalla politica di sicurezza che viene adottata, infatti quest’ultima influenza le tecniche e le procedure utilizzate.

   

  2.2 Modelli semplici di scambio di chiave

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. Ovviamente con l’aumentare della dimensione del sistema, questo numero diventa troppo grande. Nei sistemi basati su tecniche a chiave simmetrica, la soluzione è l’uso di un server centrale per la memorizzazione delle chiavi; ovviamente questo tipo di soluzione sposta il problema sul requisito di avere un server on-line fidato. Esempi di semplici modelli di distribuzione di chiave nei sistemi a chiave simmetrica sono  il modello di comunicazione  point-to-point (Figura 1(a)) ed il modello di gestione centralizzata della chiave che si serve di centri di distribuzione delle chiavi (Figura 1(b)). Con il termine semplici si intende che in questi due modelli presi in considerazione al più  presente una sola terza parte tra due parti comunicanti [3].     

                       

                                 

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

 

  2.3  I ruoli delle terze parti

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. Le terze parti in-line sono di particolare interesse quando A e B appartengono a differenti domini di sicurezza oppure non possono interagire direttamente a causa di meccanismi di sicurezza non compatibili.

Le funzioni della terza parte, in un sistema di gestione delle chiavi relative ai certificati di chiave pubblica, sono le seguenti :

  •      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;  agente notarile, usato per verificare firme digitali ad un dato istante di tempo, onde evitare il rinnego, o più generalmente stabilire la veridicità di ogni affermazione ed anche   agente di key escrow, usato per permettere l’accesso della terza parte alle chiavi segrete degli utenti in condizioni di emergenza (qui la distinzione è fatta tra vari tipi di chiave) [3].