Certificati a chiave pubblica • strutture dati che legano una chiave pubblica ad alcuni attributi di una persona • sono firmati elettronicamente dall’ente emettitore: la Certification Authority (CA) • possono essere verificati mediante la chiave pubblica della CA • hanno scadenza temporale e sono revocabili sia dall’utente che dall’emettitore 1 Uso dei certificati 2 Il servizio di autenticazione X.509 • appartiene alla serie di documenti X.500 dell'ITUT che definiscono un servizio di directory • X.509 specifica come fornire un servizio di autenticazione agli utenti • definisce – la struttura dei certificati – protocolli di autenticazione • è usato in molti contesti: S/MIME, SSL/TLS, SET • è stato emesso nel 1988, X.509v2 nel 1993, X.509v3 nel 1995 3 Certificato X.509 4 X.509: un modello gerarchico per le CA 5 X.509: revoca dei certificati 6 X.509: procedure di autenticazione 7 Limiti di X.509v2 • il campo Subject è inadeguato per gli utenti • il campo Subject è inadeguato per molte applicazioni • mancano informazioni su politiche di sicurezza • mancano limiti di applicabilità dei certificati • non supporta la gestione del ciclo di vita delle chiavi 8 Estensioni di X.509v3 • X.509v3 prevede alcune estensioni opzionali • ogni estensione comprende – un identificatore – un indicatore di criticità – un valore • le estensioni si dividono in tre categorie: – key and policy information – subject and issuer attributes – certification path constraints 9 Estensioni di X.509v3 • Key and policy information – Authority key identifier: una CA può avere più coppie di chiavi – Subject key identifier: un soggetto può avere più coppie di chiavi – Key usage: scopi per cui un certificato può essere usato – Private-key usage period: periodo d'uso della corrispondente chiave privata – Certificate policies: politiche che il certificato supporta – Policy mappings: una o più politiche dell'emettitore sono equivalenti a una politica del soggetto Estensioni di X.509v3 • Subject and Issuer attributes – Subject alternative name: nomi alternativi del soggetto in varie forme – Issuer alternative name: nomi alternativi dell'emettitore in varie forme – Subject directory attributes: qualsiasi attributo della directory X.500 per il soggetto 11 Estensioni di X.509v3 • Certificate path constraints – Basic constraints: se il soggetto può agire da CA e, in tal caso, lunghezza della catena di certificazione – Name constraints: spazio di nomi per i soggetti di tutti i certificati seguenti nella catena – Policy constraints: limiti sulle politiche nel resto della catena (richiesta di specifiche politiche o inibizione del policy mapping) 12 Sicurezza della posta elettronica MUA POP / IMAP MS MS MUA SMTP MTA SMTP MTA MTA SMTP • funzioni da realizzare: – autenticazione del mittente – integrità del messaggio – non ripudio da parte del mittente – riservatezza del messaggio 13 Sistemi per la sicurezza della posta elettronica • sicurezza dei messaggi testuali (RFC-822) – PEM – PGP • sicurezza dei messaggi multimediali (RFC-1521) * MOSS * S/MIME 14 PGP (Pretty Good Privacy) • Programma per lo scambio sicuro di messaggi testuali (confidenzialità, autenticazione) • sviluppato da P. Zimmerman, simbolo del diritto alla privacy elettronica • integra algoritmi di crittografia consolidati • è indipendente dall'architettura e dal sistema operativo • sorgenti, librerie e documentazione disponibili gratuitamente su Internet • esiste una versione commerciale di basso costo PGP: servizi offerti • Autenticazione – SHA-1, RSA – supporta firme staccate • Confidenzialità – CAST-128 o IDEA o Triplo DES – si utilizza una chiave di sessione one-time • Compressione • Codifica per compatibilità – radix-64 • Segmentazione 16 PGP: descrizione operativa 17 PGP: gestione delle chiavi • Generazione delle chiavi di sessione – le chiavi segrete sono numeri casuali di 128 bit generati usando lo stesso algoritmo CAST-128 • Identificatori delle chiavi – PGP consente ad ogni utente di avere più coppie di chiavi pubblica/privata • Key rings – ogni utente deve mantenere un file delle sue coppie di chiavi pubbliche/private e un file delle chiavi pubbliche dei corrispondenti 18 PGP: formato del messaggio 19 PGP: key rings 20 PGP: trasmissione dei messaggi • Firma del messaggio (opzionale) – PGP recupera la chiave privata del mittente dal private key ring usando il suo userID come indice – PGP chiede all'utente la passphrase e la usa per decriptare la chiave privata – viene composta la componente signature • Compressione del messaggio • Crittografia del messaggio (opzionale) – PGP genera una chiave di sessione e cripta il messaggio – PGP recupera la chiave pubblica del destinatario dal public key ring usando il suo userID come indice – viene composta la componente chiave di sessione • Codifica del messaggio 21 PGP: ricezione dei messaggi • Decodifica del messaggio • Decrittografia del messaggio (opzionale) – PGP recupera la chiave privata del ricevente dal private key ring usando come indice il campo keyID della componente chiave di sessione – PGP chiede all'utente la passphrase e la usa per decriptare la chiave privata – PGP recupera la chiave di sessione e decripta il messaggio • Decompressione del messaggio • Autenticazione del messaggio (opzionale) – PGP recupera la chiave pubblica del mittente dal public key ring usando come indice il campo keyID della componente signature – PGP decripta il digest e lo confronta con quello che ottiene 22 PGP: uso della fiducia • È compito dell'utente assegnare un livello di fiducia ad ogni conoscente ed intermediario – il campo owner trust esprime il grado di fiducia nel proprietario come certificatore; è assegnato dall'utente (unknown, untrusted, marginally trusted, completely trusted) – il campo signature trust esprime il grado di fiducia nel firmatario come certificatore; è uguale a owner trust se il firmatario è tra i conoscenti, altrimenti vale unknown • il PGP assegna il livello di fiducia nell'abbinamento chiave pubblica - utente – il campo key legitimacy viene calcolato dal PGP in23 PGP: il modello di fiducia 24