04 Slides - Crittografia e Hash - unipv.it Slides - Crittografia e Hash.pdf · Gli algoritmi di crittografia utilizzati oggi rientrano nei sistemi di crittografia “forti”nel senso
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
La crittografia si dice “forte” o “debole” a seconda del tempo e delle risorse necessarie per ricavare il messaggio originale da quello cifrato.
La sicurezza dei dati crittografati dipende soprattutto dalla segretezza e lunghezza della chiave e non dall’algoritmo che in genere è pubblicato e soggetto a studio da parte dei matematici per evidenziarne eventuali problemi di sicurezza.
Nella teoria dell’informazione di Shannon è stato dimostrato che la “perfectsecrecy” è ottenuta dall’utilizzo di una chiave di lunghezza pari al messaggio da crittografare ed usata una sola volta (one time pad).
I sistemi crittografici utilizzati in pratica sono “computazionalmente sicuri”cioè tali per cui solo un attacco di tipo “brute-force” permetterebbe in un dato tempo di decifrare il messaggio
Un programma che permette di cifrare e decifrare documenti e/o intere directory è “EncryptOnCLick”. Freeware distribuito dalla 2BrightSparks Pte Ltd (http://www.2brightsparks.com/freeware/freeware-hub.html )
Utilizza un sistema di crittografia di tipo simmetrico (unica chiave per cifrare e decifrare i dati).
Il prodotto è il file criptato con estensione EOC.Processo inverso è analogo. 1. Si seleziona il file .EOC2. Si immette la chiave (password) 3. Il file viene decriptato.
La chiave in è una sequenza di bit (0 – 1). In crittografia viene usata per crittografare un dato / documento.
Conoscere la chiave (cioè la sequenza esatta di bit 0 ed 1) mi permette di decifrare il messaggio crittografato.
Il numero di possibili combinazioni dei bit della chiave varia a seconda della sua lunghezza. Ad esempio:
Chiavi di 10 bit hanno 1.024 possibili combinazioni Chiavi di 20 bit hanno 1.048.576 possibili combinazioni Chiavi di 40 bit hanno 1.099.511.627.776 possibili combinazioni Chiavi di 56 bit hanno 72.057.594.037.927.936 possibili combinazioni
La tabella mostra il tempo richiesto da un attacco “brute-force” per decifrare la chiave di un algoritmo crittografico di tipo simmetrico a seconda della potenza di calcolo disponibile e della lunghezza della chiave.
Diverso è il caso di algoritmo crittografico di tipo asimmetrico.
La tabella mostra come il tempo richiesto per decifrare la chiave diminuisca considerevolmente con il passare degli anni (cioè con l’aumento della potenza di calcolo) .
Nel caso particolare si tratta dell’algoritmo simmetrico DES ora non piùutilizzato (rif . http://www.rsa.com/rsalabs/node.asp?id=2108 )
• Sistemi a chiave simmetrica (stessa chiave per crittografare e decifrare i dati)
• Sistemi a chiave asimmetrica (chiave diverse per cifrare e decifrare i dati)
Tutti sebbene con modalità diverse vengono utilizzati per potere garantire l’autenticazione, l’integrità, e la riservatezza dei dati trasmessi in Internet.
Gli algoritmi di crittografia utilizzati oggi rientrano nei sistemi di crittografia “forti” nel senso che l’unico modo per decifrare i dati è dato da “brute-force-attack” e lo sforzo computazionale necessario non è conveniente sia dal punto di vista delle risorse di calcolo richieste (milioni di computer) sia dal tempo necessario (migliaia di anni).
Vantaggio di algoritmi simmetrici (unica chiave) rispetto a quelli asimmetrici (copia di chiavi)
• Più semplice implementazione in hardware• Velocità di calcolo a parità di sicurezza del messaggio cifrato (fattore
circa di 100)• Lunghezza del messaggio cifrato accettabile
• DES (Data Encryption Standard) – chiave di 56 bit (oramai obsoleto) • 3DES (evoluzione di DES piu’ robusta)• IDEA – chiave di 128 bit (usato specialmente da PGP)• AES (Advanced Encryption Standard) – chiavi di 128 o 256 bit
(sostituisce il DES)• A5 - utilizzato dallo standard GSM per cifrare messaggi nella fonia
mobile.
Criticità:
• Distribuzione dell’unica chiave in rete (solo su canale sicuro), meglio non usare quando si devono trasmettere i dati in rete.
Sistemi a chiave simmetriche Applicazioni - KeyPass
Il sistema di crittografia a chiave simmetrica per esempio è utilizzato nel programma “KeyPass password safe” (cfr. http://keepass.info/ ).
KeyPass è programma open-source che gestisce password e accounting personali in modalità cifrata. Si tratta di un database che memorizza di account di vario tipo (posta, home-banking, on-line password, etc...) in modalità cifrata a cui è possibile accedere con un unica password (detta Master Key).
I dati memorizzati sono criptati utilizzando algoritmo di tipo simmetrico (in particolare AES).
Sistemi a chiave simmetriche Applicazioni - KeyPass
L’accesso all’intero database degli account/password èprotetto da un unica password (Master Key) anch’essa memorizzata in modo cifrato all’interno del sistema.
Alcuni algoritmi di tipo asimmetrico:• RSA (Rivest, Shamir, Adleman)• Diffie-Hellman• DSA (Digital Signature Algorithm)
Utilizzi:Trasmissione di dati all’interno di un canale insicuro come la rete. • TLS (Transport Layer Security)• SSH (Secure Shell) protocollo di accesso remoto ad un computer. • Firma digitale• Posta Elettronica Certificata • Protocolli PGP e GPG (la versione Open Source OpenPGP)
La caratteristica dell’algoritmo è tale per cui la chiave “pubblica” – con cui viene cifrato il messaggio - può essere tranquillamente trasmessa in rete, mentre la chiave “privata” – la sola in grado di decifrarlo – deve essere custodita segretamente.
Ciò permette l’invio di un messaggio cifrato e quindi segreto attraverso un canale di comunicazione insicuro (Internet).
Qualora fosse intercettato non potrebbe comunque essere decifrato e neanche alterato. Solo il sistema che lo riceve, il solo in possesso della chiave privata, viene a conoscenza del suo contenuto.
CrittografiaSistema a chiavi asimmetriche - esempio
Bob vuole inviare ad Alice un messaggio segreto.
Con un primo scambio di mail Bob richiede ad Alice la sua chiave pubblica che può essere trasferita tranquillamente attraverso un canale insicuro dal momento che è quella pubblica.
Il PGP (Pretty Good Privacy) è uno dei sistemi di crittografia più noti al mondo.
Originariamente sviluppato da Phil Zimmermann nel 1991, oggi èdistribuito a pagamento (con versione free trial) dalla PGP Corporation.
Utilizzato non solo per la protezione di dati inviati in Internet (posta elettronica) ma anche per quelli memorizzati nell’HD o in dispositivi di backup.
La stessa PGP inc. ha proposto alla IETF la creazione di uno standard detto OpenPGP che supportasse il PGP.
OpenPGP è diventato uno standard Internet (definito dai RFC 2440 e 3156).
La Free Software Foundation ha sviluppato un proprio programma GPG (Gnu Privacy Guard) compatibile con lo standard OpenPGP.
Recupero del messaggio originale da quello cifrato.
Dalla prima decodifica del messaggio mediante la chiave privata del destinatario, si ricava la chiave utilizzata per cifrarlo, con questa chiave si risale al messaggio originale.
• Combinazione della velocità dei sistemi simmetrici (messaggio è cifrato con sistema simmetrico).
• Trasmissione su canali insicuro utilizzando sistema a cifratura asimmetrica sia della chiave simmetrica che del messaggio cifrato
• Maggiore sicurezza in quanto la secret key usata per cifrare il messaggio originale e spedita insieme al medesimo è utilizzata solo quella volta (one time only key)
Un hash è una funzione che a partire da un documento, messaggio e/o sequenza di caratteri di lunghezza variabile produce una stringa cioè sequenza di caratteri di lunghezza fissa detta “message digest” o “digital fingerprint”.
Hash Function
Plain Text (var. size) Message digest (fixed size)
• Dal message digest non è possibile risalire al documento originale (non si tratta di algoritmo di crittografia, non è cioè reversibile)
• A parità di funzione hash, al variare anche di un solo bit del documento originale il digest prodotto dall’hash cambia cioè documenti diversi non possono produrre hash uguali. (proprietà ‘collision-resistant’)
• La funzione che calcola l’hash di un documento è di veloce esecuzione
Alcune funzioni hash e lunghezza del message digest prodottoMD5 � md 128 bitSHA-0, SHA-1 � md 160 bit
• Integrità del messaggio • Integrità di un sistema• Verifica della password
Utilizzate come metodo per autenticare i dati (diverso dall’autenticazione di un utente)
La proprietà di ‘resistenza alle collisioni’ delle funzioni hash è fondamentale dal punto di vista della firma digitale perchè nessuno potrebbe prendere il digest firmato dal proprietario e associargli un altro testo differente ma che produce la stesso hash.
Per verificare l’integrità di un messaggio, file, documento in generale si calcola la funzione hash del medesimo in due istanti temporali diversi, se i message digest combaciano il messaggio non è stato alterato.
Utilizzato per verificare l’integrità dei dati scaricati dalla rete o a distanza di tempo (ad es. programma WinMd5Sum per calcolare hash di tipo MD5 su singolo file o HashOnClick che invece utilizza un hash di tipo SHA-1)
La distribuzione di programmi in rete comprende – in alcuni casi - oltre che l’eseguibile per l’installazione vero e proprio anche il messagedigest dell’eseguibile per verificare l’integrità di quanto scaricato.
Per esempio il programma EncryptOnClick citato in precedenza fornisce l’hashe programma di verifica
Le password in genere non vengono memorizzate così come sono sui supporti fisici (sarebbero facilmente reperibili) ma si memorizza il loro hash (eventuali accessi non autorizzati non potrebbero risalire allapassword)
Quando l’utente digita la password il sistema calcola l’hash della password digitata e lo confronta con quello della password memorizzata, se sono identici la password è corretta.
Ad esempio il programma citato prima KeyPass utilizza un funzione hashdel tipo SHA-256 per calcolare il digest della Master Key (quella per accedere al database).
L’hash della password digitata viene confrontato con quelli presenti nel database delle password interno al sistema. Trovato il corrispondente hash e se anche l’utente è identificato l’accesso è effettivo.