Public key infrastructure
Da Wikipedia, l'enciclopedia libera.
In crittografia una public key infrastructure (PKI) è una serie di accordi che consentono a terze parti fidate di verificare e/o farsi garanti dell'identità di un utente, oltre che di associare una chiave pubblica a un utente, normalmente per mezzo di software distribuito in modo coordinato su diversi sistemi. Le chiavi pubbliche tipicamente assumono la forma di certificati digitali.
Il termine PKI viene usato per indicare sia l'autorità di certificazione e i relativi accordi, sia, in senso più esteso, l'uso di algoritmi crittografici a chiave pubblica nelle comunicazioni elettroniche. L'uso del termine nell'ultimo senso è errato in quanto una PKI non necessariamente richiede l'uso di algoritmi a chiave pubblica.
Indice |
[modifica] Scopo e funzione
Gli accordi alla base di una PKI consentono agli utenti di essere mutualmente autenticati, e di utilizzare le informazioni contenute nei rispettivi certificati per cifrare e decifrare i messaggi in transito. In generale una PKI consiste di software client, software server (p.e. un'autorità di certificazione), hardware (p.e. smart card) e procedure operative. Un utente potrebbe firmare i propri messaggi con la sua chiave privata, e un altro utente controllare questa firma usando la chiave pubblica contenuta nel certificato del mittente, fornito dall'autorità di certificazione facente parte della PKI. Questo consente a due (o più) parti desiderose di comunicare di verificare la confidenzialità, l'integrità dei messaggi e l'autenticazione degli utenti senza il bisogno di un precedente scambio di informazioni segrete.
[modifica] Scenario di uso tipico
La maggior parte delle PKI al livello delle imprese fanno affidamento su catene di certificati per stabilire l'identità delle parti: un certificato viene emesso da un'autorità di certificazione, a sua volta autenticata da un certificato emesso da un'autorità di livello più alto, e così via. In questo modo si stabilisce una gerarchia di certificati, composta da computer, organizzazioni e pacchetti software diversi. Gli standard sono fondamentali per il funzionamento di una PKI, e gli standard pubblici sono fondamentali per le PKI di uso esteso. Molti degli standard nel campo delle PKI sono opera del gruppo di lavoro PKIX della IETF.
Le PKI a livello di impresa sono spesso strettamente legate ai servizi di directory dell'azienda, in cui la chiave pubblica di ogni dipendente può essere memorizzata (incorporata in un certificato) assieme ad altri dettagli personali (numero di telefono, indirizzo e-mail, dipartimento...). Oggi la principale tecnologia per i sistemi di directory è LDAP e infatti il più comune formato usato per i certificati (X.509) nasce con il predecessore di LDAP, lo standard X.500.
[modifica] Alternative
[modifica] Rete di fiducia (Web of trust)
Un approccio alternativo al problema dell'autenticazione di una chiave pubblica è lo schema della rete di fiducia, basato sull'uso di certificati emessi dalle parti stesse e sull'attestazione della bontà di questi certificati da parte di terzi. Esempi di implementazione di questo schema sono GPG (GNU Privacy Guard) e PGP (Pretty Good Privacy). Grazie alla diffusione di PGP (e delle sue varianti) in congiunzione con l'e-mail, la rete di fiducia creata originariamente da PGP è la più estesa PKI bi-direzionale esistente (dati del 2004). CAcert.org gestisce una rete di fiducia simile a quelle usate da PGP, con la differenza che le informazioni relative alle relazioni di fiducia tra le parti vengono mantenute su database centralizzati.
[modifica] Simple Public Key Infrastructure
Un'alternativa ancora più nuova che va rapidamente diffondendosi è la simple public key infrastructure (SPKI), nata da tre sforzi indipendenti di superare le complessità dello standard X.509 e l'anarchia della rete di fiducia PGP. La SPKI collega persone e/o sistemi direttamente alle chiavi usando un modello locale di fiducia, simile alla rete di fiducia di PGP, ma con l'aggiunta di autorizzazione integrata.
[modifica] Robot Certification Authorities
I Robot CA sono programmi non custoditi che automaticamente convalidano certi aspetti della validità di una chiave pubblica e la firmano attestando che questi aspetti sono validi. Possono eliminare o fortemente ridurre alcuni tipi di attacchi in sistemi a chiave pubblica, in particolare quelli che coinvolgono un attaccante che temporaneamente dirotta tutto il traffico di rete proveniente da un sito legittimo. Aspetti tipicamente convalidati includono (a) che la chiave è pubblicata con la conoscenza dell'utilizzatore dell'indirizzo email cui si suppone appartenere, (b)che l'utilizzatore dell'indirizzo email è in possesso della chiave segreta che corrisponde alla chiave pubblica e (c)quale sia la frequenza di uso della chiave.
[modifica] Storia
La pubblica diffusione nel 1976 dell'algoritmo di scambio della chiave da parte di Diffie e Hellman e della asymmetric key algorithm da parte di Rivest, Shamir e Adleman ha prodotto un profondo mutamento nelle comunicazioni sicure. Con l'ulteriore sviluppo di comunicazioni elettroniche digitali ad alta velocità (Internet e i suoi predecessori), è risultata evidente la necessità di una modalità nella quale gli utilizzatori potessero comunicare reciprocamente in maniera sicura e, come ulteriore conseguenza di ciò, la necessità per l'utilizzatore di poter essere sicuro della identità dell'interlocutore con il quale sta interagendo al momento. L'idea di utilizzare certificati protetti crittograficamente che possano collegare l'identità dell'utente con chiavi pubbliche si è sviluppata rapidamente.
Diversi protocolli crittografici vennero inventati ed analizzati per utilizzare effettivamente le nuove primitive crittografiche. Con l'invenzione del World Wide Web e la sua rapida diffusione, il bisogno di autenticazioni e di comunicazioni sicure è diventato ancora più pressante. Le sole ragioni commerciali, come e-commerce o l'accesso on-line a database privati direttamente da web, sono stati sufficienti a giustificarne lo sviluppo. Taher ElGamal e altri del Netscape hanno sviluppato il protocollo SSL ('https' sugli URLs Web), che includeva sistemi di definizione ed utilizzo di chiavi, autenticazione su server, (prima del v3, solo unidirezionale), e così via. Era così stata implementata una prima struttura PKI per quegli utenti del Web (singoli utilizzatori o siti) che desiderassero utilizzare una comunicazione affidabile o, perlomeno, più sicura.
Venditori e imprenditori, intuendo l'enorme potenzialità di un mercato molto vasto, hanno avviato nuove compagnie, o nuove ramificazioni all'interno di compagnie già esistenti, cominciando a mobilitarsi per ottenere riconoscimenti legali e protezioni da responsabilità.
L' American Bar Association technology project ha pubblicato una dettagliata analisi di alcuni dei più comuni aspetti legali riguardanti le operazioni di PKI (vedi ABA digital signature guidelines) e, poco dopo, alcuni degli stati USA (lo Utah è stato il primo nel 1995) ed altri enti sparsi per il mondo hanno cominciato ad legiferare a riguardo. Associazioni di consumatori e corporazioni simili hanno sollevato delle discussioni su alcune problematiche, come la privacy, la politica degli accessi e responsabilità legali, che sono state ascoltate di più da alcune giurisdizioni piuttosto che altre.
Le leggi emanate ed i regolamenti non sono uniformi ed in più ci sono stati alcuni problemi tecnici sorti nel tentativo di convertire gli schemi PKI in offerte commerciali competitive: i progresso della tecnica è stato quindi più lento di quello che all'inizio era stato previsto.
Durante i primi anni del 21° secolo, è diventato evidente il fatto che la cryptographic engineering, anche a livello basilare, non era facile da sviluppare senza errori, che non era semplice ottenere procedure operative (manuali o automatiche) che funzionassero correttamente (e, anche nel caso di una corretta implementazione, che fossero facili da eseguire esattamente come il programmatore aveva inizialmente previsto). Inoltre ci si è resi conto che gli stessi standards esistenti erano, per alcune applicazioni, inadeguati agli scopi per i quali erano stati sviluppati.
Gli sviluppatori di PKI hanno trovato comunque un mercato, che però non era esattamente quello previsto a metà degli anni '90: il mercato è infatti cresciuto in modo più lento e in qualche maniera diverso da quello previsto. Le PKI non hanno risolto alcuni dei problemi per risolvere i quali erano state ideate, ed alcuni dei principali venditori si sono ritirati dal mercato o sono stati inglobati da altre società.
PKI ha avuto maggiore successo in implementazioni governative: attualmente la maggiore implementazione è l'infrastruttura PKI della Defense Information Systems Agency (DISA).
[modifica] Esempi di utilizzo
Le PKI hanno molti utilizzi, che includono la fornitura di chiavi pubbliche e la loro connessione alle identità degli utenti:
- Cifratura e/o autenticazione del mittente nei messaggi e-mail (ad es. usando OpenPGP p S/MIME).
- Cifratura e/o autenticazione dei documenti (ad es. gli standard per i documenti XML come XML Signature * o XML Encryption *).
- Autenticazione degli utenti per le applicazioni (ad es. quando si effettua l'accesso ad un sistema tramite smart card o l'autenticazione di un client attraverso il SSL).
- Procedure di Bootstrap nei protocolli di comunicazione sicura, come Internet key exchange (IKE) e SSL. In entrambi, l'impostazione iniziale di un canale sicuro viene effettuata attraverso chiavi pubbliche, mentre le comunicazioni vere e proprie utilizzano sistemi a chiave segreta (ovvero Crittografia a chiave simmetrica) più veloci.
[modifica] Alcune implementazioni
Alcune autorità di certificazione, come VeriSign non sono elencate perché il loro software non è disponibile agli altri.
- Computer Associates eTrust PKI
- Entrust
- Microsoft
- Netscape CMS
- OpenCA (uno schema PKI Open Source che include il software per il server)
- RSA Security
- phpki
- GenCerti
- ejbca
- newpki
- Papyrus CA Software
- pyCA
- IDX-PKI
- EuropePKI (non disponibile)
- TinyCA
- ElyCA
- SimpleCA
- SeguriData
[modifica] Voci correlate
- Crittografia a chiave pubblica
- Key authentication
- Certificate revocation list
[modifica] Collegamenti esterni
- PKI tutorial di Peter Gutmann
- PKIX workgroup
- http://www.pk3i.com/
- http://www.newpki.org/
- Understanding the Role of the PKI - In questo articolo viene fornito una breve panoramica su cosa è e cosa fa una PKI e come può inserirsi nell'organizzazione della sicurezza di una organizzazione.
Una spiegazione dettagliata della Privacy, Autenticazione, Integrità e Non-Ripudio (PAIN) è disponibile in: PAIN
- Conclusive Logic (Una "infrastruttura di sicurezza per i siti web" basata su standard)
- Betrusted (ha acquisito il prodotto UniCERT all'inizio del 2004)
- NIST PKI Program, una proposta del National Institute of Standards and Technology (NIST) per sviluppare una public key infrastructure
- http://www.mozilla.org/projects/security/pki - Progetti di PKI Open Source
- News e informazioni sulle Public Key Infrastructure
Robot Certification Authorities: