Crittografia e Certificati

Crittografia Classica

Enigma

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

Cryptoattack

Cifrario Perfetto

Onetime

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.

Modern

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

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.

Singlekey

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

Key01

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, ...

Key02

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.

Doublekey

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.

Ke703

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).

Key04

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

Sessionkey

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.

Mac01

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.

Firma01

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

Firma02

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

Firma02

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

Cert01

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:

Cert02

E' necessaria anche la chiave privata del certificatore. per decrittare il certificato:

Cert03

La chiave privata è di solito precaricata sul SW dell'utente.

Certificati Speciali

Certificate Chain:

Cchain

Self-signed Certificate (Root CA):

Cself

Uso del Certificato

Esempio della situazione con SSL/TLS.

Cert04

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.

Pki01

PKI è una infrastruttura per la gestione di chiavi pubbliche e non una infrastruttura pubblica per la gestione chiavi.