Crittografia e Certificati
Crittografia Classica
La crittografia ha una storia millenaria.
Sicurezza della Crittografazione
Incondizionatamente Sicura
- Il testo cifrato non contiene abbastanza informazioni per determinare univocamente il testo in chiaro corrispondente, per qualsiasi quantità di testo in chiaro
- Solo One-Time-Pads
- Normalmente i testi lunghi crittografati con la stessa chiave aumentano la probabilità di successo di crittanalisi
Computazionalmente Sicura
- Il costo della decrittografazione è superiore al valore dell’informazione crittografata
- Il tempo richiesto per la decrittografazione supera la vita utile dell’informazione
Principio di Kerckhoffs
Legge di base della crittografia
“il faut qu’il puisse sans inconvénient tomber entre les mains de l’ennemi” - Auguste Kerckhoffs (1835-1903), Fiammingo (La cryptographie militaire, 1883)
“the enemy knows the system being used” - Shannon, 1949
Assumere che il nemico conosca gli algoritmi usati,
Contrario di: Security through Obscurity
Attacchi di Crittanalisi
Cifrario Perfetto
Cifrario perfetto se M e C sono indipendenti:
Prob (M=M’) = Prob (M=M’ | C=C’)
Lunghezza chiave > Lunghezza testo in chiaro
Modern Cryptography
Digitale e basata su due aspetti:
Algoritmi:
- Procedure matemetiche per la crittazione e decrittazione di dati
- Implementati come programmi, routines, funzioni
Tutti i maggiori algoritmi sono ben noti.
E' considerato sicuro un algoritmo noto se ha una implementazione Open Source. E' considerato insicuro un algoritmo proprietario e privato.
Chiavi:
- Sequenze di bit usati nella crittazione e decrittazione
- Configurate manualmente, note solo ai partecipanti
La sicurezza sta nelle chiavi.
Diffusione e Confusione
Diffusione:
- Dissipa la struttura statistica del testo in chiaro
- Il testo cifrato non ha strutture statistiche a corto raggio
- Cifra a blocchi binaria: permutazione + funzione (reversibile)
- Al cambiare di un bit del messaggio in chiaro cambiano in media il 50% dei bit del messaggio crittato
Confusione:
- Complica al massimo la relazione tra la statistica del testo cifrato e il valore della chiave di cifratura
- Al cambiare di un bit della chiave cambiano in media il 50% dei bit del messaggio crittato
Cifra di Feistel
Esempio di Rete a Sostituzione-Permutazione - (Substitution-Permutation Network SPN - Shannon).
Fondamento dei principali algoritmi moderni di crittografazione.
- Un blocco di testo in chiaro è diviso in due metà: Destra e Sinistra
- Vi sono più Sottochiavi, una per ciclo, derivate dalla Chiave primaria e tutte differenti
- N cicli, in ciascuno dei quali si ha:
- una Sostituzione sulla metà Sinistra:
- una Funzione di Ciclo sulla metà Destra, parametrizzata dalla Sottochiave di ciclo
- un OR esclusivo del risultante con la metà Sinistra
- una Permutazione: interscambio delle metà Destra e Sinistra
Tutti i maggiori algoritmi di crittografazione moderni sono derivati dai concetti di Cifra di Feistel
Gestione Chiavi
Chiavi Singole
Definizione: Chiave = Stringa di caratteri = Sequenza di Bit
- La stessa chiave K crittografa e decrittografa il messaggio
- Il messaggio non cambia di lunghezza da Chiaro a Crittografato
- L'algoritmo di crittografazione è relativamente veloce
La chiave deve transitare da mittente a destinazione. Il canale per le chiavi è diverso dal canale per i messaggi:
- più sicuro
- più costoso (es. Umano)
Non ne vale la pena per singoli messaggi.
Proprietà delle Chiavi
La crittografazione è un’algebra lineare.
Sia M:messaggio in chiaro, C:messaggio crittografato, E(K)[]:funzione di crittografazione con chiave K, D(K)[]:funzione di decrittografazione con chiave K
Si ha:
C=E(K)[M] M=D(K)[C] M=D(K)[E(K)[M]]
In un’algebra lineare la rappresentazione può usare funzioni lineari, matrici od operatori lineari.
Usando operatori lineari e confondendo crittografazione e decrittografazione, rappresentate con la sola chiave K (le sottochiavi sono invertite):
C=KM M=KC M=KKM
cioè KK=Identità
Interscambio Messaggi
Chiavi Doppie
Da una stringa casuale S un algoritmo genera due chiavi particolari dette:
- Chiave pubblica U
- Chiave priv*ata P
Algoritmi: RSA
, Diffie-Hellmann
, ...
Il messaggio è crittografato con una delle chiavi e può venir decrittografato solo con l’altra.
La chiave Pubblica viene inviata ad un Deposito Chiavi da cui tutti possono prelevarla oppure configurata nel software di comunicazione.
La chiave Privata viene mantenuta segreta e non circola mai in rete.
Confidenzialità del Messaggio
Spesso è desiderata la segretezza (riservatezza, confidenzialità) del messaggio.
Il messaggio viene crittografato dal mittente con la chiave pubblica del destinatario.
Solo chi è in possesso della chiave privata corrispondente, cioè il destinatario, può decrittografare il messaggio.
Assicurazione di Provenienza
Non sempre si desidera che il messaggio sia confidenziale, può essere necessario invece assicurarsi dell’identità del mittente.
In tal caso il mittente crittografa il messaggio in partenza con la propria chiave privata.
Tutti lo possono decrittografare avendo così l’assicurazione formale che solo il mittente l’abbia potuto inviare.
Confidenzialità ed Assicurazione di Provenienza possono ottenersi entrambi indipendentemente e simultaneamente.
Necessità di un Programma di gestione, p.es. PGP (Pretty Good Privacy).
In pratica l’uso delle chiavi doppie è troppo lento (10000 volte più delle chiavi singole);
- OK per commutazione di messaggio
- NO per commutazione di pacchetto
Ma: la lunghezza delle chiavi singole è ca. 128 bit
Quindi:
- Usare le chiavi doppie per interscambiare una chiave singola in modo sicuro
- Poi usare la chiave singola per crittografare il messaggio
Concetto di Chiave di Sessione
Chiave di Sessione
The sender initially encrypts a single key (session key) and sends it to the receiver The rest of the communication session is encrypted with that single key
Message Authentication Code
Message Authentication Code (MAC): checksum crittografico allegato al messaggio.
Lo schema di checksum non deve necessariamente essere reversibile.
Funzione di Hash
- Input: stream di bit di qualsiasi lunghezza
- Output: stream di bit di lunghezza fissa
- anche detto: Segnatura
- Collisione: due stream di input diversi che danno la stessa segnatura - computazionalmente impossibile
Proprietà:
- Funzione non invertibile
- Tipicamente usa iterazione di passi con compressione dei risultati intermedi
- Attacchi di forza bruta: dipendono dalla lunghezza della segnatura
- Alternativamente metodi crittanalitici complessi
- Reperire collisioni nei passi intermedi
Firma Elettronica
Mittente:
- Calcolare una funzione di hash del messaggio
- Crittarla con chiave privata e appenderla al messaggio
Ricevente:
- Estrarre la funzione di hash e decrittarla con chiave pubblica del mittente
- Applicare la funzione di hash al messaggio
- Se coincidono la firma è verificata
Non repudiabilità dei messaggi firmati.
Definizioni Italiane
Definizioni giuridiche un po' imprecise dal punto di vista tecnico:
- Firma elettronica (FE)
- Metodo per identificare l'autore di un'operazione informatica o di un documento informatico
- Firma elettronica avanzata (FEA)
- FE che consente il controllo esclusivo del mezzo di firma da parte del firmatario, e permette di verificare l'integrità del documento firmato
- Firma elettronica qualificata (FEQ)
- FEA basata su un certificato qualificato e realizzata mediante un dispositivo sicuro per la creazione della firma
- Firma digitale (FD)
- FEA basata su un certificato qualificato e realizzata con la tecnica della crittografia asimmetrica
Non esistono al momento tecnologie di firme qualificate che non siano digitali.
Il dispositivo di firma della FEQ è opzionale, poichè FEQ ed FD producono i medesimi effetti giuridici.
Dispositivo di Firma
Apparato elettronico in grado di generare firme digitali e di fornire autenticazione on line tramite certificato.
Formato tipico: Card simile a carta di credito.
- Anche su chiavi USB
- Ospita un chip avanzato crittografico
- Necessario l'apposito lettore e software
- Conserva a bordo la chiave privata dell'utente
- Obbligatorio per Firma Qualificata ma non per Firma Digitale
- Non è clonabile
Un'altra soluzione moderna è di ospitare la chiave privata a bordo di uno Smartphone.
Il tentativo di accesso ai dati mediante apparati elettronici di violazione provoca di solito la perdita dei dati contenuti.
- Accesso tramite PIN
- Numero massimo di tentativi - blocco card o programma
- Sbloccare con PUK (personal unlock code)
NOTA
Il fallimento di accesso, avaria o perdita del dispositivo di firma rende inverificabili tutti i documenti firmati con tale dispositivo
Certificati
Identità e Fiducia
In un Deposito Chiavi una chiave necessita di un identificativo univoco del possessore:
- Indirizzo di posta elettronica
Problemi:
- Come si può essere certi che la chiave appartiene alla persona indicata?
- Come si può essere certi dell'identità di un corrispondente nel mondo informatico?
- Come ci si può fidare della verità delle asserzioni di un documento informatico?
Soluzione:
- Trasferimento della fiducia dal soggetto finale ad altri:
- Più enti arzialmente fidati: raccomandazioni
- Singolo ente completamente fidato: certificazioni
Verifica: Scenario Possibile
In Pratica
Il deposito chiavi non esiste:
- Qualche eccezione: MIT Key Server
- Sarebbero troppi, problemi di sicurezza e di privacy
- Soprattutto problemi politici (affrontabili tecnicamente)
- es: Planetary Citizen Registry (1971)
L'utente vuole potersi fidare in assenza dell'ente di verifica o di connessione.
- Necessaria la chiave pubblica del soggetto, non modificata
Struttura di un certificato soggetto:
E' necessaria anche la chiave privata del certificatore. per decrittare il certificato:
La chiave privata è di solito precaricata sul SW dell'utente.
Certificati Speciali
Certificate Chain:
Self-signed Certificate (Root CA):
Uso del Certificato
Esempio della situazione con SSL/TLS.
Standard X509
Standard della ITU-T sui Certificati.
- Basato su crittografia a chiave doppia e firma elettronica
- Definisce i tracciati record dei Certificati
- 3 versioni principali
- Prevede Liste di Revoca dei Certificati
Imposta unastruttura gerarchica degli enti di certificazione
- Certifying Authority (CA)
- Public Key Infrastructure (PKI)
Public Key Infrastructure
Per PKI s’intende l’infrastruttura necessaria per consentire un uso appropriato ed efficiente di una serie di funzionalità legate alla crittografia a chiave pubblica quali la firma digitale, l’autenticazione, la cifratura/decifratura e la marcatura temporale dei documenti.
PKI è una infrastruttura per la gestione di chiavi pubbliche e non una infrastruttura pubblica per la gestione chiavi.