Upload
letram
View
238
Download
3
Embed Size (px)
Citation preview
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 1
Crittografia
© 2009 Università degli Studi di Pavia, C.Parisi 2
CrittografiaDefinizione
La crittografia è la scienza che utilizza algoritmi matematici per cifrare e decifrare i dati.
La criptoanalisi è la scienza che analizza e decifra i dati crittografati senza conoscerne a priori gli algoritmi utilizzati.
Per cifrare un messaggio è necessario :• Un algoritmo crittografico noto• Una chiave (sequenza di bit) in genere segreta
Fonte Internet
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 2
© 2009 Università degli Studi di Pavia, C.Parisi 3
Crittografia Forte e debole
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
© 2009 Università degli Studi di Pavia, C.Parisi 4
CrittografiaChiavi crittografiche
La “forza” di un sistema crittografico dipende da due parametri:• l’algoritmo crittografico• lunghezza della chiave (espressa in numero di bit)
La forza di un sistema è inoltre una caratteristica che varia nel tempo e dipende fortemente dalla potenza di calcolo dei microprocessori
Legge di Moore (1965) : ogni 18 mesi la potenza di calcolo dei processori raddoppia a parità di costo.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 3
© 2009 Università degli Studi di Pavia, C.Parisi 5
CrittografiaClassi di sistemi crittografici
Due sono le classi di sistemi di crittografia:
1. Sistemi a chiave simmetrica (unica chiave per cifrare e decifrare i dati)
Secret key
© 2009 Università degli Studi di Pavia, C.Parisi 6
CrittografiaClassi di sistemi crittografici
2. Sistemi a chiave asimmetrica (chiave diverse per cifrare e decifrare i dati)
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 4
© 2009 Università degli Studi di Pavia, C.Parisi 7
CrittografiaCome crittografare dei dati
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).
La chiave di cifratura è introdotta dall’utente.
© 2009 Università degli Studi di Pavia, C.Parisi 8
CrittografiaCome crittografare dei dati
Per criptare il dati :1. Si selezionano i file e/o directory da una normale finestra “explorer”
delle risorse.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 5
© 2009 Università degli Studi di Pavia, C.Parisi 9
CrittografiaCome crittografare dei dati
Per criptare il dati :2. Si inserisce l’unica chiave (indicata con “password”) per la cifratura dei
dati.
© 2009 Università degli Studi di Pavia, C.Parisi 10
CrittografiaCome crittografare dei 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.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 6
© 2009 Università degli Studi di Pavia, C.Parisi 11
CrittografiaChiavi
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
© 2009 Università degli Studi di Pavia, C.Parisi 12
CrittografiaChiavi
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.
Fonte Intennet
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 7
© 2009 Università degli Studi di Pavia, C.Parisi 13
CrittografiaChiavi
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 )
Fonte Intennet
© 2009 Università degli Studi di Pavia, C.Parisi 14
CrittografiaClassi di sistemi crittografici
Due sono le classi di sistemi di crittografia:
• 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.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 8
© 2009 Università degli Studi di Pavia, C.Parisi 15
CrittografiaAsimmetrico vs. simmetrico
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
© 2009 Università degli Studi di Pavia, C.Parisi 16
CrittografiaSistema a chiavi simmetriche
Caratteristiche:
• Velocità di esecuzione• Più semplice implementazione in hardware• Lunghezza dei dati cifrati è accettabile
Utilizzo:
• Cifratura di dati in all’interno della stessa macchina• Trasmissione dati in rete wireless• Posta Elettronica Certificata• Firma Digitale
Secret key
Fonte Internet
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 9
© 2009 Università degli Studi di Pavia, C.Parisi 17
CrittografiaSistema a chiavi simmetriche
Alcuni algoritmi di tipo simmetrico:
• 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.
© 2009 Università degli Studi di Pavia, C.Parisi 18
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).
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 10
© 2009 Università degli Studi di Pavia, C.Parisi 19
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.
© 2009 Università degli Studi di Pavia, C.Parisi 20
Sistemi a chiave simmetriche Applicazioni - KeyPass
Fonte Internet
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 11
© 2009 Università degli Studi di Pavia, C.Parisi 21
Sistemi a chiave simmetriche Applicazioni - KeyPass
L’accounting viene definito in un apposito modulo dai seguenti dati:
• Nome utente• Password (all’occorrenza
potrebbe essere generata dallo stesso programma)
• Link del sito per il login in automatico
Fonte Internet
© 2009 Università degli Studi di Pavia, C.Parisi 22
Crittografia Sistema a chiavi asimmetriche
Noto anche come “Public key encription”, “Double-key encryption”.Usa una copia di chiavi diverse per cifrare e decifrare i dati, in particolare:
• Chiave pubblica deve essere nota• Chiave privata deve essere tenuta segreta
Proprietà:
• Non è possibile risalire dalla chiave pubblica a quella privata
• La chiave che effettua la cifratura dei dati non puòdecifrarli.
Fonte Internet
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 12
© 2009 Università degli Studi di Pavia, C.Parisi 23
CrittografiaSistema a chiavi asimmetriche
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)
© 2009 Università degli Studi di Pavia, C.Parisi 24
CrittografiaSistema a chiavi asimmetriche
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.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 13
© 2009 Università degli Studi di Pavia, C.Parisi 25
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.
Bob: public key, please
Bob Alice
Alice: My public key
© 2009 Università degli Studi di Pavia, C.Parisi 26
CrittografiaSistema a chiavi asimmetriche - esempio
Ottenuta la chiave pubblica di Alice, Bob compila il messaggio, lo cripta utilizzando la chiave pubblica di Alice e lo spedisce ad Alice.
Alice possiede la sola chiave (quella privata) in grado di decifrare il messaggio di Bob.
Quindi Bob è riuscito ad inviare attraverso un canale insicuro un messaggio che solo Alice può leggere perchè in possesso della chiave privata.
Bob: Message encrypted
Bob Alice
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 14
© 2009 Università degli Studi di Pavia, C.Parisi 27
CrittografiaSistema a chiavi asimmetriche – proprietà
Segretezza del contenuto di un messaggio
Un messaggio criptato con la chiave pubblica del destinatario èleggibile (decifrabile) solo dal destinatario.
TCP/IP Tutorial and Technical Overview (IBM)
© 2009 Università degli Studi di Pavia, C.Parisi 28
CrittografiaSistema a chiavi asimmetriche – proprietà
Autenticazione e non ripudio.
Un messaggio criptato con la chiave privata del soggetto di fatto autentica il mittente.
TCP/IP Tutorial and Technical Overview (IBM)
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 15
Crittografia
Pretty Good Privacy
© 2009 Università degli Studi di Pavia, C.Parisi 30
Pretty Good PrivacyIntroduzione
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.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 16
© 2009 Università degli Studi di Pavia, C.Parisi 31
CrittografiaPretty Good Privacy
PGP è un’altra applicazione della crittografia.É definito come sistema di crittografia ibrido perchè utilizza sia algoritmi asimmetrici
che simmetrici per cifrare il messaggio.É utilizzato nello scambio di messaggi di posta elettronica.
Generazione del messaggio cifrato
Sesssion key è usata solo una volta (one-time-only key)
Fonte Internet
© 2009 Università degli Studi di Pavia, C.Parisi 32
CrittografiaPretty Good Privacy
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.
Fonte Internet
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 17
© 2009 Università degli Studi di Pavia, C.Parisi 33
CrittografiaPretty Good Privacy
Vantaggi :
• 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)
Crittografia
Funzioni Hash
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 18
© 2009 Università degli Studi di Pavia, C.Parisi 35
CrittografiaFunzioni Hash
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)
Fonte Internet
© 2009 Università degli Studi di Pavia, C.Parisi 36
Funzioni Hash
Fonte Internet
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 19
© 2009 Università degli Studi di Pavia, C.Parisi 37
Funzioni HashProprietà
Proprietà:
• 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
© 2009 Università degli Studi di Pavia, C.Parisi 38
Funzioni HashApplicazioni
Alcune applicazioni delle funzioni hash:
• 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.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 20
© 2009 Università degli Studi di Pavia, C.Parisi 39
Funzioni HashApplicazione – integrità
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)
© 2009 Università degli Studi di Pavia, C.Parisi 40
Funzioni HashApplicazione – integrità
Verifica dell’integrità di un messaggio trasmesso attraverso un canale insicuro come la rete.
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 21
© 2009 Università degli Studi di Pavia, C.Parisi 41
Funzioni HashApplicazione - integrità
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
Fonte Internet
© 2009 Università degli Studi di Pavia, C.Parisi 42
Funzioni di hashApplicazione – verifica password
Memorizzazione e verifica di password
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).
Sicurezza e qualità dei servizi su internet
© 2009 Università degli Studi di Pavia, C.Parisi 22
© 2009 Università degli Studi di Pavia, C.Parisi 43
Funzioni di hashApplicazione – verifica password
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.
HASH(Password_1)
Hard disk
Password_1
Hash
Function HASH(Password_2)
HASH(Password_3)