Sicurezza e Crittografia
|
|
|
- Berta Moro
- 9 anni fa
- Visualizzazioni
Transcript
1 Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
2 Copyright 2011, 2016, Moreno Marzolla This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. 2
3 Ringraziamenti Prof. Gabriele D'Angelo, Università di Bologna 3
4 4
5 La Sicurezza Informatica La sicurezza informatica è la protezione delle risorse dall'accesso, utilizzo, alterazione o distruzione non autorizzati Due tipi di sicurezza Fisica: protezione dei dispositivi fisici tramite allarmi, antifurto, porte ignifughe, casseforti... Logica: protezione delle informazioni tramite risorse non fisiche (crittografia, firma elettronica...) 5
6 Sicurezza informatica: terminologia Segretezza Impedire la divulgazione non autorizzata di dati, garantire l'autenticità della fonte Integrità Impedire le modifiche non autorizzate ai dati Autenticazione Verificare l'identità della controparte (con chi sto comunicando?) Disponibilità Impedire ritardi nella diffusione dei dati, o la loro rimozione Es: Attacchi Denial of Service (DoS), Ransomware Non ripudiabilità Impedire che la controparte possa negare una sua azione 6
7 Crittografia Disciplina che studia le tecniche per cifrare un messaggio in modo tale che solo il legittimo destinatario sia in grado di leggerlo Requisiti: Ragionevole efficienza nella creazione del messaggio Difficoltà nell'interpretazione del messaggio cifrato da parte di chi non è autorizzato 8
8 Principio di base Una procedura di cifratura trasforma un messaggio in chiaro M in un messaggio cifrato M' usando una chiave di cifratura Kenc E' possibile ricavare M da M' mediante una procedura di decifratura, usando una chiave di decifratura Kdec Encryption key Kenc M E(Kenc, M) Encrypt Decryption key Kdec M' = E(Kenc, M) Canale di comunicazione non sicuro D(Kdec, M') M Decrypt 9
9 Notazione E(K, M) Funzione di cifratura Data una chiave K e un messaggio M, restituisce il messaggio M' ottenuto cifrando M usando la chiave K D(K, M') Funzione di decifratura Dato un messaggio (cifrato) M' e una chiave K, restituisce il messaggio in chiaro M ottenuto decifrando M' con la chiave K 10
10 Notazione Si deve avere che: D(Kdec, E(Kenc, M)) = M Se cifro un messaggio M usando la chiave Kenc e decifro cio' che ottengo usando Kdec devo ottenere nuovamente M 11
11 La sicurezza sta nelle chiavi La sicurezza di un algoritmo crittografico deve risiedere SOLO sulle chiavi crittografiche Chi non conosce la chiave NON deve poter leggere il messaggio cifrato anche se conosce il modo con cui il messaggio è stato cifrato Security by obscurity = mantenere segreto l'algoritmo crittografico nella vana speranza di rendere la crittografia più sicura Non fidatevi mai MAI di soluzioni crittografiche fatte in casa, soprattutto se basate su algoritmi segreti MAI 12
12 Sistemi crittografici A chiave segreta (crittografia simmetrica) Si usa la stessa chiave per cifrare e decifrare In altre parole, Kenc = Kdec A chiave pubblica (crittografia asimmetrica) Le chiavi di cifratura e decifratura sono diverse In altre parole, Kenc Kdec 13
13 Sistemi crittografici a chiave simmetrica Uno dei primi esempi è il cifrario di Cesare La chiave K è un numero intero Ogni lettera dell'alfabeto viene sostituita da quella che la segue di K posizioni Esempio: se K = 3 allora CIAOATUTTI A -> D B -> E C -> F... Z -> C K=3 Il cifrario di Cesare non è sicuro! FLDRDWXWWL 14
14 Cifrari a sostituzione 15
15 DES (Data Encryption Standard) Progettato da IBM e adottato come standard dal governo USA nel 1977 Esistono 256 7, chiavi Chiave lunga 56 bit Messaggio diviso in blocchi da 64 bit che vengono cifrati individualmente Sembra un numero grande, ma un moderno calcolatore le puo' esaminare tutte in poche ore! Una variante (Triplo DES) usa chiavi più lunghe e fornisce un livello accettabile di sicurezza 16
16 AES (Advanced Encryption Standard) Adottato come standard nel 2001, sostituisce DES Caratteristiche di AES Il messaggio viene scomposto in blocchi da 128 bit che vengono cifrati individualmente Si possono usare chiavi lunghe 128, 192 o 256 bit Esistono , chiavi a 128 bit, per cui esaminarle tutte è al momento impraticabile 17
17 Riassunto Fonte: W. Stallings and L. Brown, Computer Security: Principles and Practice, Pearson; 2 edition, 2011, ISBN
18 Pro e contro della crittografia simmetrica PRO Gli algoritmi (Triplo DES, AES e altri) possono essere implementati in modo efficiente CONTRO Le parti che comunicano devono prima scambiarsi la chiave in modo sicuro Questo è un punto critico per il quale non esistono al momento soluzioni generali affidabili 20
19 Crittografia a chiave pubblica (asimmetrica) Introdotta nella seconda metà degli anni '70 da W. Diffie e M. Hellman Idea Ciascun utente ha due chiavi Se si usa una delle due chiavi per cifrare un messaggio, l'altra (e solo quella) può essere usata per decifrarlo E' impossibile derivare una delle due chiavi anche se si conosce l'altra (le due chiavi sono totalmente indipendenti) Bailey Whitfield 'Whit' Diffie (image from Wikipedia) 21 Martin Edward Hellman (image from Wikipedia)
20 Esempio K+ KM' = E(K+, M) L'Italia è una Repubblica fondata sul lavoro K- Cifratura usando K+ L'Italia è una Repubblica fondata sul lavoro Decifratura usando K- 22
21 ...ma anche K- K+ A M' = E(K-, M) L'Italia è una Repubblica fondata sul lavoro K+ Cifratura usando K- L'Italia è una Repubblica fondata sul lavoro Decifratura usando K+ 23
22 Formalmente Se cifro con K+, posso decifrare solo con KD(K-, E(K+, M)) = M Se cifro con K- posso decifrare solo con K+ D(K+, E(K-, M)) = M 24
23 Idea di base Ogni utente possiede due chiavi Una è pubblica, e viene resa disponibile a chiunque L'altra è privata, e l'utente deve custodirla gelosamente e non comunicarla a nessuno Chiavi pubbliche A+ Alice B+ Chiavi private A- Bob B- 25
24 Alice e Bob A+ B+ M' = E(B+, M) Alice Bob B- A- B1 Alice cifra il messaggio M con la chiave pubblica di Bob B+ 2 Bob decifra il messaggio M' con la propria chiave privata B26
25 Però......come fa Bob ad essere sicuro che un messaggio proviene proprio da Alice e non da qualcun altro? Infatti chiunque può codificare il messaggio con la chiave pubblica di Bob, dato che tale chiave è disponibile a chiunque La crittografia asimmetrica può essere usata per risolvere anche questo problema 27
26 Alice e Bob A+ B+ M' = E(B+, E(A-, M)) B+ A- Alice Bob M A- B1 Alice cifra il messaggio M prima con la sua chiave privata A-, e poi con quella pubblica di Bob B+ 2 Bob decifra il messaggio con la propria chiave privata B-, e poi con quella pubblica di Alice A+ 28
27 Pro e contro della crittografia asimmetrica PRO Non occorre scambiarsi chiavi segrete: le uniche chiavi che è necessario comunicare sono quelle pubbliche (che per definizione sono pubbliche!) CONTRO Gli algoritmi di crittografia asimmetrica sono più lenti di quelli per crittografia simmetrica Come facciamo ad essere certi che la chiave pubblica, ad es., di Alice è veramente di Alice? 29
28 Integrità e firma digitale La crittografia a chiave pubblica può essere combinata con le funzioni hash crittografiche per autenticare l'origine di un messaggio e garantirne l'integrità Si fa uso delle funzioni hash crittografiche (dette anche one-way hash o funzioni digest, cioè funzioni riassunto) che vengono applicate al messaggio e ne producono un riassunto (MD = message digest). 30
29 Esempio (SHA-256) msg1.txt All work and no play makes Jack a dull boy All work and no play makes Jack a dull boy All work and no play makes Jack a dull boy sha256 5f10e43e591ed245374fae017f8c11e429f6bc6ebf42f2d1d75fb4d6e39b8f3b msg2.txt All work and no play makes Jack a dull boy All work and no play makes jack a dull boy All work and no play makes Jack a dull boy sha c932a24add019689c b4c625dc7864d4959aaccaffa2b75254e955b 31
30 Caratteristiche di funzione hash crittografica Dato un messaggio M, una funzione hash produce un riassunto (digest) di M, che indichiamo con MD(M), con la seguente proprietà Il digest MD(M) ha una certa lunghezza fissa (es., 256 bit) che dipende dalla funzione hash usata Dato un digest, deve essere difficile costruire un messaggio M che abbia esattamente quel digest Se due messaggi M1 ed M2 differiscono di poco, i due digest MD(M1) e MD(M2) dovrebbero essere diversi Nota: è comunque impossibile garantire che messaggi diversi abbiano sempre digest diversi! 32
31 Funzioni hash usate in pratica MD5 Sviluppato da Ronald Rivest nel 1991 Genera un digest lungo 128 bit Attualmente non ritenuto sicuro SHA (Secure Hash Algorithm) Ronald R. Rivest (Fonte: Wikipedia) SHA-224, SHA-256, SHA-384, SHA-512 Famiglia di funzioni hash crittografiche sviluppate dalla NSA a partire dal 1993 SHA-x genera un digest lungo x bit (quindi SHA-512 genera un digest lungo 512 bit) Si preferisce usare SHA-256 o SHA
32 Uso del digest Alice vuole mandare un messaggio M (es., un contratto) da lei firmato in forma digitale Come puo' Bob essere sicuro dell'autenticità della firma di Alice? Come puo' Alice essere sicura che nessuno possa alterare il contenuto del messaggio da lei firmato, o falsificare la sua firma? 34
33 Firma digitale A+ B+ M A- Alice Bob MD(M) A- B1 Alice calcola il digest MD(M) del messaggio M; quindi, cifra il digest con la propria chiave privata. Invia M e il digest cifrato a Bob 2 Bob decifra il digest che accompagna il messaggio. Puo' quindi ricalcolare il digest e confrontarlo con quello inviato da Alice 35
34 La crittografia nella vita quotidiana: TLS TLS viene utilizzato per autenticare l'identità del server cui si è connessi Sono veramente connesso al server della mia banca? 36
35 Come funziona TLS (molto approssimativo) Il browser dice: Dimostrami che sei veramente en.wikipedia.org Wikipedia risponde con un certificato digitale Contiene, tra l'altro, nome del server e chiave pubblica Firmato da una Certification Authority (CA) Il browser decifra il certificato con la chiave pubblica della CA e lo verifica Il browser genera un numero casuale, lo cifra con la chiave pubblica di Wikipedia e lo invia a en.wikipedia.org Il browser e Wikipedia usano quel numero come chiave di un algoritmo a chiave privata (es, AES) 37
36 Punti chiave Crittografia simmetrica: DES, AES Efficienti, ma bisogna condividere le chiavi in modo sicuro Crittografia a chiave pubblica Non ci sono chiavi da condividere in modo sicuro Consentono la firma digitale Poco efficienti, quindi prevalentemente usati per scambiarsi chiavi condivise La forza di un algoritmo crittografico sta solo nelle chiavi usate security by obscurity non funziona, né funzionerà mai Se il numero di possibili chiavi è troppo basso, è facile provarle tutte. LA lunghezza della chiave deve essere adeguata La crittografia è difficile Non inventatevi il vostro algoritmo crittografico fatto in casa Non fidatevi di algoritmi crittografici segreti L'anello debole sono quasi sempre persone Sicurezza le e Crittografia 38
37 Due letture interessanti (e non tecniche) 39
Privacy e firma digitale
WORKSHOP Connessione in rete: sicurezza informatica e riservatezza Privacy e firma digitale C. Giustozzi Privacy e firma digitale Corrado Giustozzi ([email protected]) 1 Le comunicazioni elettroniche
Domande di verifica su crittografia e Firma Digitale Esercitazione 15 Novembre per esame 2014 IC DAC 1 / 15
Domande di verifica su crittografia e Firma Digitale Esercitazione per esame IC DAC 15 Novembre 2014 Domande di verifica su crittografia e Firma Digitale Esercitazione 15 Novembre per esame 2014 IC DAC
Crittografia per la sicurezza dei dati
Crittografia per la sicurezza dei dati Esigenza di sicurezza in rete significa: -garanzia di riservatezza dei dati in rete (e-mail) -garanzia di transazioni sicure (e-commerce, home banking) La crittografia
FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:
Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare: Riservatezza (protezione delle informazioni da accessi non autorizzati) Integrità (garanzia che l'informazione
Sicurezza nelle reti: protezione della comunicazione
Sicurezza nelle reti: protezione della comunicazione Gaia Maselli [email protected] Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. All material
logaritmo discreto come funzione unidirezionale
logaritmo discreto come funzione unidirezionale in generale, lavoreremo con il gruppo U(Z p ) = Z p dati g generatore di Z p e x tale che 1 x p 1, calcolare y = g x è computazionalmente facile (y g x (mod
A cosa serve la crittografia? La crittografia serve ad aiutare due utenti, Alice e Bob, a comunicare in modo sicuro...
Crittografia A cosa serve la crittografia? La crittografia serve ad aiutare due utenti, Alice e Bob, a comunicare in modo sicuro... Mister X...anche in presenza di Mister X, un avversario che ascolta la
Il problema dello zaino
Il problema dello zaino (knapsack problem) Damiano Macedonio [email protected] Copyright 2010 2012 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/asd2011b/) This work is licensed
Crittografia a chiave pubblica
Crittografia a chiave pubblica Barbara Masucci Dipartimento di Informatica Università di Salerno [email protected] http://www.di.unisa.it/professori/masucci Cifrari simmetrici canale insicuro Bob 1 Distribuzione
Identificazione, Autenticazione e Firma Digitale. Firma digitale...
Identificazione, Autenticazione e Firma Digitale In origine crittografia = confidenzialità Diffusione delle reti: nuove funzionalità. Identificazione Autenticazione Firma digitale Identificazione: un sistema
Crittografia e firma digitale. Prof. Giuseppe Chiumeo
Crittografia e firma digitale Prof. Giuseppe Chiumeo [email protected] INTRODUZIONE Lo sviluppo dell e-business oggi ha bisogno di garanzie per quanto riguarda l inviolabilità dei dati trasmessi.
Funzioni di hash sicure: MD5 e SHA-1
POLITECNICO DI MILANO Funzioni di hash sicure: MD5 e SHA-1 CEFRIEL - Politecnico di Milano [email protected] http://www.cefriel.it/~cerri/ Funzioni di hash Una funzione di hash (o message digest) è una
Crittografia da Whatsapp a Wikileakes, tra spie e segreti di stato
Crittografia da Whatsapp a Wikileakes, tra spie e segreti di stato Donatella Iacono Sabina Milella Bari 27.06.2015 Crittografia ne abbiamo piene le tasche Crittografia ne abbiamo piene le tasche Skype
cifrario di Feistel cifrario di Feistel
cifrario di Feistel Horst Feistel (IBM) ha introdotto uno schema di cifrario nei primi anni 70. Il DES è un cifrario di Feistel. La cifratura e la decifratura funzionano essenzialmente allo stesso modo.
Informatica di base 6/ed
Informatica di base 6/ed Autori: Dennis P. Curtin, Kim Foley, Kunal Sen e Cathleen Morin A cura di: Agostino Marengo e Alessandro Pagano Capitolo 15 La sicurezza informatica: tecniche e legislazione Capitolo
La firma digitale, o firma elettronica qualificata, basata sulla tecnologia della crittografia a chiavi asimmetriche, è un sistema di autenticazione d
Definizione Sistemi per la creazione e la verifica di firme digitali Differenze tra firma digitale e firma convenzionale Valore giuridico della firma digitale in Italia Crittografia asimmetrica 11-01-2010
CODICI. Crittografia e cifrari
CODICI Crittografia e cifrari CRITTOGRAFIA - La crittografia è una scrittura convenzionale segreta, decifrabile solo da chi conosce il codice. - La parola crittografia deriva da 2 parole greche, ovvero
idea della crittografia a chiave pubblica
idea della crittografia a chiave pubblica sviluppare un crittosistema in cui data la funzione di cifratura e k sia computazionalmente difficile determinare d k Bob rende pubblica la sua funzione di cifratura
NUMERI PRIMI E CRITTOGRAFIA
NUMERI PRIMI E CRITTOGRAFIA Parte I. Crittografia a chiave simmetrica dall antichità all era del computer Parte II. Note della Teoria dei Numeri concetti ed algoritmi a supporto della Crittografia Parte
Crittografia e OpenSource
Crittografia e OpenSource Matteo Carli [email protected] http://www.matteocarli.com http://www.lug-acros.org Chi sono Studente di Sicurezza dei sistemi e delle reti informatiche presso il polo di
crittografia a chiave pubblica
crittografia a chiave pubblica Whitfield Diffie Martin Hellman New Directions in Cryptography We stand today on the brink of a revolution in cryptography. The development of cheap digital hardware... has
Secure Socket Layer (SSL) Transport Layer Security (TLS)
Secure Socket Layer (SSL) Transport Layer Security (TLS) 1 SSL è un protocollo progettato per fornire la cifratura e l autenticazione tra un client web ed un server web SSL è concepito per essere collocato
Crittografia a chiave pubblica
Crittografia a chiave pubblica Barbara Masucci Dipartimento di Informatica Università di Salerno [email protected] http://www.di.unisa.it/professori/masucci Sicurezza CCA In un attacco CCA, è capace di
Corso di Crittografia Prof. Dario Catalano. Cifrari Asimmetrici (Terza Parte): RSA-OAEP e Cifrari basati sull identita
Corso di Crittografia Prof. Dario Catalano Cifrari Asimmetrici (Terza Parte): RSA-OAEP e Cifrari basati sull identita Cifrari sicuri contro attacchi attivi Fino ad oggi abbiamo visto cifrari sicuri contro
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
La sicurezza nelle reti di calcolatori
La sicurezza nelle reti di calcolatori Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico
Crypto Android. Trusted Execution Environment. TrustZone
SMix richiede un vettore di lunghezza N. Visto che la memoria è costosa, implementare Scrypt in hardware è costoso [?] Trusted Execution Environment TrustZone I Trusted Execution Environment (TEE) sono
Elementi di Crittografia
Elementi di Crittografia Algoritmi Messaggio in chiaro messaggio crittografato M X =C k (M C ) Messaggio crittografato messaggio in chiaro M C =D k (M X ) Per la codifica/decodifica è necessario un parametro
