1 / 66

Elementi di crittografia

Elementi di crittografia. Sommario. Introduzione Minacce e forme di attacco Sistemi sicuri Crittografia Aspetti generali Crittografia a chiave privata Crittografia a chiave pubblica Firma digitale Funzioni di secure hash Caso di studio (invio di e-mail sicure). Introduzione.

melvyn
Download Presentation

Elementi di crittografia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elementi di crittografia Corso di Informatica

  2. Sommario • Introduzione • Minacce e forme di attacco • Sistemi sicuri • Crittografia • Aspetti generali • Crittografia a chiave privata • Crittografia a chiave pubblica • Firma digitale • Funzioni di secure hash • Caso di studio (invio di e-mail sicure) Corso di Informatica Avanzata

  3. Introduzione Sicurezza in rete Il problema della SICUREZZA negli ultimi decenni e soprattutto anni ha assunto sempre maggiore importanza. Con l’avvento di Internet e delle nuove tecnologie infatti, è aumentata in maniera esponenziale la quantità di informazioni e di dati che gli utenti della rete si scambiano. Aumenta l’esigenza di proteggere le informazioni da tutti coloro che cercano di impossessarsene abusivamente tramite attacchi al sistema di comunicazione: sicurezza di una rete, che implica l’introduzione di un insieme di misure necessarie a scoraggiare, prevenire, rilevare e correggere le violazioni della sicurezza di una trasmissione di dati. Corso di Informatica Avanzata

  4. Introduzione Scenario • Bob, Alice (amanti!) vogliono comunicare in modo “sicuro” • Trudy, “l’intrusa” può intercettare, distruggere, aggiungere i messaggi Segretezza: soltanto il sender ed il corretto receiver debbono “comprendere” il contenuto del messaggio • il sender cifra (encrypts) il messaggio • il receiver decifra (decrypts) il messaggio Autenticazione: il sender ed il receiver vogliono avere conferma dell’identità l’uno dell’altro Integrità: il sender ed il receiver vogliono assicurarsi che il messaggio non sia alterato (in transito, o dopo) senza che ciò venga scoperto Non ripudio: il sender in futuro non può negare di aver inviato i dati, e di aver inviato proprio quei dati • firma digitale Cosa possono rappresentare Alice e Bob? • Web browser/server per transazioni elettroniche (es. acquisti on-line) • ecc. Corso di Informatica Avanzata

  5. Introduzione Minacce e forme di attacco • Una minaccia è una potenziale violazione di sicurezza • Difetti in progettazione, implementazione • Un attacco è una qualunque azione che violi la sicurezza • attacchi attivi: prevedono la modifica del flusso di dati o la creazione di un falso flusso • Tampering, masquerading • attacchi passivi: intercettano o monitorano le trasmissioni, con l’obiettivo di carpire le informazioni trasmesse. • Eavesdropping • Eavesdropping (origliare): l’informazione rimane intatta, ma la sua privacy è compromessa • Attacco alla segretezza • Esempio: qualcuno intercetta una mia operazione bancaria effettuata via web per prelevare informazioni riservate Corso di Informatica Avanzata

  6. Introduzione Minacce e forme di attacco • Tampering (manomissione): l’informazione in transito è modificata o sostituita e poi inviata al receiver • Attacco all’integrità del messaggio • Esempio: mentre effettuo un bonifico qualcuno cambia il conto corrente su cui effettuare il versamento • Masquerading (impersonificazione): assunzione non autorizzata dell’identità di un altro • Attacco all’autenticità • Esempio: penso di dare il mio numero di carta di credito ad un albergo ed invece lo do a dei truffatori Corso di Informatica Avanzata

  7. Introduzione Minacce e forme di attacco • Denial of Service (DoS = negazione del servizio): deliberato uso eccessivo della risorsa per fare in modo che non sia disponibile ai legittimi utenti • Attacco alla disponibilità • Esempio: inondare di messaggi un server (consumare la risorsa) mettendolo quindi fuori uso Corso di Informatica Avanzata

  8. Introduzione Sistemi Sicuri • Il termine Sistema Sicuro non implica che il sistema sia inviolabile • Ogni sistema può essere violato, avendo sufficiente tempo e denaro • La sicurezza di un sistema deve essere proporzionale alle risorse che esso protegge • Proprietà di un sistema sicuro: • Ogni entità è sicura dell’identità dell’altra • L’informazione è privata e protetta contro il tampering • Protezione contro la ripetizione ed il riordino dei dati • Impiego della crittografia • La segretezza è basata sul concetto di crittografia • L’autenticazione è basata sulla dimostrazione di un segreto Corso di Informatica Avanzata

  9. Crittografia Definizioni • La crittografia è la tecnica che consente di rendere visibili le informazioni soltanto alle persone a cui esse sono destinate. • Si basa generalmente su algoritmi matematici • Testo in chiaro: è il messaggio che può essere letto da tutti • Testo cifrato: è il testo in chiaro trasformato in messaggio illeggibile • Codifica (cifratura): tecnica che trasforma testo in chiaro testo cifrato • Decodifica (decifrazione): tecnica che trasforma testo cifrato testo in chiaro Corso di Informatica Avanzata

  10. Crittografia • Un algoritmo crittografico, chiamato anche cifrario, è una funzione matematica usata per la codifica e la decodifica • Sostituzione: ogni elemento del testo in chiaro viene mappato su un altro elemento • Permutazione: gli elementi del testo in chiaro vengono cambiati di posizione • Con la crittografia moderna, l’abilità di tenere segreta l’informazione criptata è basata non sull’algoritmo crittografico, che è ben conosciuto, ma su un numero chiamato chiave che deve essere usato con l’algoritmo per produrre un risultato criptato o per decriptare le informazioni precedentemente codificate Corso di Informatica Avanzata

  11. Crittografia • Principio di Kerckhoffs: “La sicurezza di un sistema crittografico è basata esclusivamente sulla conoscenza della chiave, in pratica si presuppone noto a priori l’algoritmo di cifratura e decifrazione.” Corso di Informatica Avanzata

  12. Crittografia Attacchi alla sicurezza • Impiego di tecniche per decifrare un messaggio senza conoscere i dettagli della cifratura. • Scopo: violare il codice, decifrare il messaggio riservato (e/o i messaggi successivi). • Tipi di attacco: • Analisi Crittografica: Tramite l’utilizzo di tecniche statistiche sulla frequenze dei caratteri o sottostringhe del testo cifrato si ottengono informazioni utili sul testo in chiaro. • Attacco a forza bruta: tenta ogni possibile chiave su un frammento di testo cifrato fino a che non si riesce ad ottenere una traduzione corretta. In media, per avere successo, bisogna provare meta tra tutte le possibili chiavi. • Problema a complessità computazionale esponenziale Corso di Informatica Avanzata

  13. Crittografia Attacchi alla sicurezza • 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 processori Corso di Informatica Avanzata

  14. Crittografia Attacchi alla sicurezza • Sistema di crittografia COMPUTAZIONALMENTE SICURO se soddisfa almeno uno dei seguenti criteri: • Costo della violazione del testo cifrato supera il valore delle informazioni crittografate • Tempo richiesto per l’analisi crittografica è superiore alla vita utile delle informazioni Corso di Informatica Avanzata

  15. Crittografia • Crittografia a chiave privata • Il sender ed il receiver usano la stessa chiave (è anche detto crittografia a chiave singola, segreta o simmetrica) • Crittografia a chiave pubblica • Il sender ed il receiver usano differenti chiavi (è anche detto crittografia a due chiavi o a chiave asimmetrica) Corso di Informatica Avanzata

  16. Crittografia simmetrica Scenario Sender Receiver Hi,Jack Hi,Jack $e3lW% Ksecret Ksecret Decrypt Crypt Corso di Informatica Avanzata

  17. Crittografia simmetrica • Il sender: E = encrypt (K, M) • Dove M è il testo in chiaro, E è il messaggio cifrato e K la chiave segreta • Il receiver: M = decrypt (K, encrypt (K, M)) • Devono verificarsi due condizioni per il funzionamento: • Algoritmo di crittografia forte (non necessariamente segreto) • La distribuzione della chiave segreta al mittente e al destinatario e la conservazione di essa da parte di queste entità deve avvenire in maniera sicura Corso di Informatica Avanzata

  18. Crittografia simmetrica • Vantaggi • Alto grado di autenticazione • Svantaggi • Problema di distribuzione della chiave che deve rimanere segreta • L’intruso che conosce la chiave può non solo decifrare il messaggio (attacco alla segretezza), ma può anche criptare un nuovo messaggio ed inviarlo ad una delle due parti che usano la chiave • Gli algoritmi simmetrici possono essere divisi in: • Cifrari a stream: cifra un singolo bit di testo in chiaro per volta • Cifrari a blocchi: prende un numero di bit (tipicamente 64 bit) e li cifra come una singola unità Corso di Informatica Avanzata

  19. Crittografia simmetrica Cifrario di Cesare • Ogni lettera è sostituita da quella che la segue di k posizioni nell’alfabeto • k è la chiave • Se k=3, a è sostituito con d, b con e ecc. • Chiaro: auguridibuoncompleanno • Cifrato: dxjxulglexrqfrpsohdqqr Corso di Informatica Avanzata

  20. Crittografia simmetrica Cifrario di Cesare • Cifrario di sostituzione • Chiave di cifratura = chiave di decifratura • Svantaggi • Scambio della chiave • Si possono utilizzare solo 25 chiavi (tutte le lettere dell’alfabeto - 1) Corso di Informatica Avanzata

  21. Crittografia simmetrica Cifrario di sostituzione mono-alfabetico • Generalizzazione del cifrario di Cesare • Ogni lettera è sostituita da un’altra, secondo uno schema “libero” • La chiave è la stringa di 26 lettere corrispondente all'intero alfabeto • Chiavi possibili 26!, circa 4×1026; • Attacco a forza bruta improbabile • Facilmente attaccabile con metodi statistici (partendo dalla conoscenza della frequenza delle lettere e delle parole in una lingua) Corso di Informatica Avanzata

  22. Crittografia simmetrica Cifrario di sostituzione mono-alfabetico • Se per esempio decidiamo di utilizzare la seguente chiave: Significa che per costruire il nostro cifrato dobbiamo affidarci alle corrispondenze tra il nostro alfabeto e quello generato dalla chiave: Il testo in chiaro (prova di cifratura) verrà cifrato così: QAZWSXEDCRFVTGBYHNUJMIKOLP ABCDEFGHIJKLMNOPQRSTUVWXYZQAZWSXEDCRFVTGBYHNUJMIKOL PROVA DI CIFRATURAYNBIQ WC ZCXNQJMNQ Corso di Informatica Avanzata

  23. Crittografia simmetrica Cifrario di Leon Battista Alberti • Disco composto di due cerchi concentrici di rame. • Uno esterno fisso di diametro maggiore sul quale sono riportate le lettere dell’alfabeto in chiaro: composto di 24 caselle contenenti 20 lettere maiuscole in ordine lessicografico, escluse H, J, K, W, Y, al posto delle quali ci sono i numeri 1, 2, 3, 4. • Uno interno mobile per le lettere dell’alfabeto cifrante. Il disco interno riporta le 24 lettere minuscole in maniera disordinata ed un simbolo speciale et. Corso di Informatica Avanzata

  24. Crittografia simmetrica Cifrario di Leon Battista Alberti • Mittente e destinatario avevano entrambi la stessa macchinetta. Entrambi concordavano una lettera che sarebbe stata la chiave di partenza. • Per cifrare il messaggio, il mittente iniziava ruotando il disco interno in maniera casuale. Iniziava quindi a scrivere il testo cifrato, riportando per prima cosa la lettera sul disco piccolo in corrispondenza della chiave concordata sul disco grande. • Passava quindi ad eseguire la sostituzione del testo prelevando i caratteri sul disco più piccolo in corrispondenza dei caratteri da cifrare sul disco più grande. Corso di Informatica Avanzata

  25. Crittografia simmetrica Cifrario di Leon Battista Alberti • Terminata la prima parola, ruotava di nuovo in maniera casuale il disco interno e iterava la procedura di sostituzione. • In questo modo, ogni parola utilizzava un proprio alfabeto di sostituzione e con tale dispositivo ne erano a disposizione 24 • Cifrario polialfabetico. • Le lettere che di volta in volta corrispondono ai numeri 1,2,3,4 non vengono usate. Corso di Informatica Avanzata

  26. Crittografia simmetrica Cifrario di Leon Battista Alberti • Testo da cifrare: “Messaggio da Leon” • Lettera chiave: C • Ruotiamo a caso il disco interno e passiamo alla posizione in figura. • Iniziamo a scrivere il messaggio indicando al destinatario come deve ruotare il suo disco interno. Per farlo iniziamo la parola cifrata con D, e ne deriva: • Messaggio = DTZQQSIIEN Corso di Informatica Avanzata

  27. Crittografia simmetrica Cifrario di Leon Battista Alberti • Nuova rotazione casuale e cifratura della seconda parola: • Da = CETQ • Nuova rotazione casuale e cifratura della terza parola: • Leon = ? Corso di Informatica Avanzata

  28. Crittografia simmetrica Cifrario di Leon Battista Alberti • Svantaggi • Chiave di cifratura di un solo carattere: sarebbe semplicissimo decifrare il messaggio anche senza sapere che la prima lettera di ogni parola è la chiave di cifratura, basterebbe provare per ogni parola le 24 posizioni del disco. • Vantaggi • L’analisi statistica basata sulla frequenza delle lettere era impossibile Corso di Informatica Avanzata

  29. Crittografia simmetrica Codice di Vigènere • Si basa sulla sostituzione poli-alfabetica • Punto forza: utilizzare non uno ma 26 alfabeti cifranti per cifrare un solo messaggio. • Si utilizza una tabella di dimensione 26x26 in cui la riga i-esima contiene l’alfabeto ruotato verso sinistra di i-1 posizioni Corso di Informatica Avanzata

  30. Crittografia simmetrica Codice di Vigènere • Il metodo si può considerare una generalizzazione del codice di Cesare. • Invece di spostare sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di posti variabile, determinato dalle lettere della parola chiave, da concordarsi tra mittente e destinatario. Corso di Informatica Avanzata

  31. Crittografia simmetrica Codice di Vigènere • Per utilizzare la tavola e cifrare un primo messaggio è necessario dunque scegliere una chiave, ad esempio HTML. • A questo punto la tavola appena vista si riduce di qualche riga, cinque per essere esatti, costituite dalla prima e dalle quattro righe che iniziano con le lettere della chiave. La tavola che segue sarà quindi sufficiente per eseguire la cifratura Corso di Informatica Avanzata

  32. P W R K Crittografia simmetrica Codice di Vigènere • Dato il messaggio in chiaro, lo si allinea con la chiave. • Ogni lettera del messaggio viene sostituita con la lettera della tabella che è all’incrocio tra la riga che inizia con la lettera della chiave (allineata con quella del messaggio) e la colonna che inizia con la lettera del messaggio (lettera individuata sulla prima riga) La chiave essendo in genere molto più corta del messaggio, deve essere ripetuta molte volte. PROVADICIFRATURAHTMLHTMLHTMLHTML Corso di Informatica Avanzata

  33. Crittografia simmetrica Codice di Vigènere • Il risultato finale della cifratura è: • Punto di forza: numero di chiavi è enorme • Attacco a forza bruta non praticabile • L'attacco di Kasiski • si basa sull'osservazione che nel crittogramma si trovano spesso sequenze identiche di caratteri a una certa distanza l'una dell'altra. Questo avviene per il fatto di utilizzare ciclicamente la stessa chiave. WKAGHWUNPYDLANDL PROVADICIFRATURA - testo in chiaroHTMLHTMLHTMLHTML - chiaveWKAGHWUNPYDLANDL - testo cifrato Corso di Informatica Avanzata

  34. Crittografia simmetrica Codice di Vigènere • Il codice di esempio si riduce quindi a cinque codici di Cesare intercalati. • Il cifrario di Vigenère è affidabile solo quando la chiave è di lunghezza comparabile a quella del testo e viene cambiata molto spesso • problemi pratici non indifferenti (trasmissione e cambiamento della chiave richiedono un canale di comunicazione assolutamente sicuro). Corso di Informatica Avanzata

  35. Crittografia simmetrica Cifrario a trasposizione • Il testo cifrato è ottenuto leggendo il testo in chiaro per colonne seguendo la numerazione Testo cifrato:PAITASINRLVCAAASO.MTOIRRROI.RDFUTPZE Corso di Informatica Avanzata

  36. Crittografia simmetrica Algoritmi moderni • DES (Data Encryption Standard) • Sviluppato dall’IBM (International Business Machines Corporation) nel 1970 diventato standard nel 1976. • Utilizza chiavi di 56 bit, divide il testo in chiaro in blocchi di 64 bit • Il 17 Luglio 1998, l’EFF (Electronic Frontier Foundation) costruisce un sistema dedicato in grado di violare il DES in meno di 3 giorni, tramite un attacco di tipo “brute-force”. • Morale della favola: non utilizzate sistemi di cifratura basati sul DES! Corso di Informatica Avanzata

  37. Crittografia simmetrica Algoritmi moderni • 3DES (Triple Data Encryption Standard) • Evoluzione del DES, è basato su un utilizzo del cifrario DES ripetuto, chiavi di 112 bit. • Si utilizza la tecnica della codifica-decodifica-codifica (EDE, Encrypt-Decrypt-Encrypt) utilizzando il cifrario DES. Corso di Informatica Avanzata

  38. Crittografia simmetrica Algoritmi moderni • AES (Advanced Encryption Standard) • Nuovo (novembre 2001) standard a chiave simmetrica rimpiazzante DES • Elabora dati in blocchi di 128 bit • Chiavi di 128, 192 o 256 bit • La decifrazione con approccio “a forza bruta” che richiede 1 secondo su DES, prende 149 trilioni di anni con AES • IDEA (International Data Encryption Algorithm) • Codice cifrato a blocchi di 64 bit • A differenza del DES la chiave è di 128 bit • Attacco a forza bruta impossibile (le chiavi sono 2^128) Corso di Informatica Avanzata

  39. Crittografia Asimmetrica • Nasce nel 1975 • Proposta da Whitfield Diffie e Martin Hellman • È chiamata anche “Crittografia a chiave pubblica” • Risolvere il problema della distribuzione sicura delle chiavi • Cifrari intrinsecamente sicuri perché utilizzano tecniche di tipo matematico invece che permutazioni e sostituzioni • Utilizza una coppia di chiavi distinte (tra loro correlate matematicamente) • La chiave PUBBLICA, usata per la cifratura, viene distribuita liberamente a tutte le persone con cui si vuole comunicare • La chiave PRIVATA, usata per la decifratura, deve essere tenuta segreta Corso di Informatica Avanzata

  40. Crittografia Asimmetrica • Proprietà: • Non è possibile risalire dalla chiave pubblica a quella privata • La chiave che effettua la cifratura dei dati non può decifrarli. • i messaggi codificati con la chiave pubblica possono essere decodificati solo con la chiave privata • Il mittente cifra il messaggio con la chiave pubblica del destinatario (pubblicamente nota) • Il destinatario usa la sua chiave privata (segreta) per decifrare il messaggio. Corso di Informatica Avanzata

  41. Funzionamento Crittografia Asimmetrica L'idea base della crittografia con coppia di chiavi diviene più chiara se si usa un'analogia postale, in cui il mittente è Alice ed il destinatario Bob e i lucchetti fanno le veci delle chiavi pubbliche e le chiavi recitano la parte delle chiavi private: 1. Alice chiede a Bob di spedirle il suo lucchetto, già aperto. La chiave dello stesso verrà però gelosamente conservata da Bob. 2. Alice riceve il lucchetto e, con esso, chiude il pacco e lo spedisce a Bob. 3. Bob riceve il pacco e può aprirlo con la chiave di cui è l'unico proprietario. Se adesso Bob volesse mandare un altro pacco ad Alice, dovrebbe farlo chiudendolo con il lucchetto di Alice, che lei dovrebbe mandare a Bob e che solo lei potrebbe aprire. Si può notare come per secretare i pacchi ci sia bisogno del lucchetto del destinatario mentre per ricevere viene usata esclusivamente la propria chiave segreta, rendendo l'intero processo di cifratura/decifratura asimmetrico. Chiunque intercettasse il lucchetto o il messaggio chiuso non potrebbe leggerne il contenuto. Al contrario nella crittografia simmetrica, dove occorre il pericoloso passaggio dello scambio delle chiavi, che può essere intercettato. Corso di Informatica Avanzata

  42. Funzionamento Crittografia Asimmetrica Corso di Informatica Avanzata

  43. Crittografia Asimmetrica Scenario Sender Receiver $e3lW% Hi,Jack Hi,Jack KPublic Receiver KPrivateReceiver Decrypt Crypt Corso di Informatica Avanzata

  44. Crittografia Asimmetrica Corso di Informatica Avanzata

  45. Crittografia Asimmetrica • Considerazioni finali: • Alice e Bob non devono condividere una chiave segreta • Il mittente deve solo conoscere la chiave pubblica del destinatario • La chiave privata deve essere solo conservata dal destinatario • Unica forma di attacco possibile è quello a forza bruta • la difesa più efficace e quella di usare chiavi di grandi dimensioni (> 512 bit) ma bisogna ricercare un compromesso. Le dimensioni della chiave devono essere tali da rendere impraticabile un attacco a forza bruta ma allo stesso tempo sufficientemente piccole da consentire una esecuzione veloce degli algoritmi di crittografia e decrittografia Corso di Informatica Avanzata

  46. Crittografia Asimmetrica Algoritmo RSA • Sviluppato nel 1977 e pubblicato nel 1978 da Rivest, Shamir, Adlemann • Primo sistema crittografico a chiave pubblica ed è ancora oggi l’algoritmo piu implementato in assoluto • La chiave con cui viene cifrato il messaggio e differente da quella con cui viene decifrato • Il punto di forza di RSA e che l’operazione di derivazione della chiave privata da quella pubblica e troppo complessa per essere realizzata in pratica; Corso di Informatica Avanzata

  47. Crittografia Ibrida • Cifrari SIMMETRICI: • Molto veloci • Numero di chiavi molto elevato • Problema dello scambio delle chiavi • Cifrari ASIMMETRICI • Efficienti • Lenti • Da 100 a 1000 volte più lenti di un algoritmo a chiave segreta • Si utilizza un cifrario IBRIDO: • Cifrario SIMMETRICO per la comunicazione • Cifrario ASIMMETRICO per lo scambio delle chiavi condivise Corso di Informatica Avanzata

  48. Crittografia Ibrida • Il messaggio viene crittografato con un algoritmo a chiave simmetrica, in cui la chiave è generata casualmente. • La chiave casuale generata per cifrare il messaggio, viene crittografata mediante la chiave pubblica del destinatario. Corso di Informatica Avanzata

  49. Crittografia Ibrida • Il destinatario, mediante la sua chiave privata, decifra la chiave usata per codificare il messaggio e quindi il messaggio stesso Corso di Informatica Avanzata

  50. Firma digitale • È un metodo elettronico che permette ad una persona di apporre un suo segno distintivo ai documenti digitali. • Nasce come applicazione dei sistemi a chiave pubblica. • Viene utilizzata per autenticare la paternità di un documento informatico e la sua integrità. • il mittente non può negare di aver inviato il messaggio • il destinatario può accertare l’identità del mittente e l’integrità del messaggio (autenticazione)‏ • il desinatario non può sostenere di aver ricevuto un messaggio diverso da quello che realmente ha ricevuto • Ha valore legale come la firma autografa. Corso di Informatica Avanzata

More Related