37
Sicurezza e Crittografia Sicurezza e Crittografia Moreno Marzolla Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/

Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Embed Size (px)

Citation preview

Page 1: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e CrittografiaSicurezza e Crittografia

Moreno MarzollaDipartimento di Informatica—Scienza e Ingegneria (DISI)

Università di Bolognahttp://www.moreno.marzolla.name/

Page 2: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 2

Copyright © 2011, 2016, Moreno Marzollahttp://www.moreno.marzolla.name/teaching/FINFA/

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 http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

Page 3: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 3

Ringraziamenti

● Prof. Gabriele D'Angelo, Università di Bologna– https://www.unibo.it/sitoweb/g.dangelo/

Page 5: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 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...)

Page 6: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 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

Page 7: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 8

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

Page 8: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 9

Principio di base● Una procedura di cifratura trasforma un messaggio “in

chiaro” M in un messaggio cifrato M' usando una chiave di cifratura K

enc

● E' possibile ricavare M da M' mediante una procedura di decifratura, usando una chiave di decifratura K

dec

E(Kenc

, M) D(Kdec

, M')MM' = E(K

enc, M)

Encryption key Kenc

Decryption key Kdec

M

Canale di comunicazione non sicuroEncrypt Decrypt

Page 9: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 10

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

Page 10: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 11

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

Page 11: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 12

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 MAI di soluzioni crittografiche “fatte in casa”, soprattutto se basate su algoritmi “segreti”

Page 12: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 13

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

Page 13: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 14

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

● A -> D● B -> E● C -> F● ...● Z -> C

● Il cifrario di Cesare nonè sicuro!

CIAOATUTTI

FLDRDWXWWL

K = 3

Page 14: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 15

Cifrari a sostituzione

https://commons.wikimedia.org/w/index.php?curid=6635141

Page 15: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 16

DES(Data Encryption Standard)

● Progettato da IBM e adottato come standard dal governo USA nel 1977– Chiave lunga 56 bit– Messaggio diviso in blocchi da 64 bit che vengono cifrati

individualmente● Esistono 256 ≈ 7,2 1016 chiavi

– 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

Page 16: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 17

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 2128 3,4 1038 chiavi a 128 bit, per cui esaminarle

tutte è al momento impraticabile

Page 17: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 18

Riassunto

Fonte: W. Stallings and L. Brown, Computer Security: Principles and Practice, Pearson; 2 edition, 2011, ISBN 978-0132775069

Page 18: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 20

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

Page 19: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 21

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)

Martin Edward Hellman(image from Wikipedia)

Bailey Whitfield 'Whit' Diffie(image from Wikipedia)

Page 20: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 22

Esempio

K+ K-

L'Italia è una

Repubblica fondata

sul lavoro

K-L'Italia è

una Repubblica

fondata sul lavoro

Cifraturausando K+

Decifraturausando K-

M' = E(K+, M)

Page 21: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 23

...ma anche

AK-

L'Italia è una

Repubblica fondata

sul lavoro

K+L'Italia è

una Repubblica

fondata sul lavoro

K+

Cifraturausando K-

Decifraturausando K+

M' = E(K-, M)

Page 22: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 24

Formalmente

● Se cifro con K+, posso decifrare solo con K-

D(K-, E(K+, M)) = M

● Se cifro con K- posso decifrare solo con K+

D(K+, E(K-, M)) = M

Page 23: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 25

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

Alice Bob

A+ B+

A- B-

Chiavi pubbliche

Chiavi private

Page 24: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 26

Alice e Bob

Alice Bob

A+ B+

A- B-

B-

Alice cifra il mes-saggio M con la chiave pubblica di Bob B+

Bob decifra il mes-saggio M' con la propria chiave pri-vata B-

1 2

M' = E(B+, M)

Page 25: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 27

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

Page 26: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 28

Alice e Bob

Alice Bob

A+ B+

A- B-

Alice cifra il mes-saggio M prima con la sua chiave priva-ta A-, e poi con quella pubblica di Bob B+

Bob decifra il mes-saggio con la pro-pria chiave privata B-, e poi con quella pubblica di Alice A+

1 2

B+

A-

M

M' = E(B+, E(A-, M))

Page 27: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 29

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?

Page 28: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 30

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

Page 29: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 31

Esempio (SHA-256)

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

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

msg1.txt

msg2.txt

msg1.txtmsg1.txt

369c932a24add019689c3896657b4c625dc7864d4959aaccaffa2b75254e955b

5f10e43e591ed245374fae017f8c11e429f6bc6ebf42f2d1d75fb4d6e39b8f3b

sha256

sha256

Page 30: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 32

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 M

2 differiscono “di poco”, i due

digest MD(M1) e MD(M

2) dovrebbero essere diversi

– Nota: è comunque impossibile garantire che messaggi diversi abbiano sempre digest diversi!

Page 31: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 33

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)– 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-512

Ronald R. Rivest (Fonte: Wikipedia)

Page 32: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 34

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?

Page 33: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 35

Firma digitale

Alice Bob

A+ B+

A- B-

Alice calcola il digest MD(M) del messaggio M; quindi, cifra il dige-st con la propria chia-ve privata. Invia M e il digest cifrato a Bob

Bob decifra il digest che accompagna il messaggio. Puo' quindi ricalcolare il digest e confrontarlo con quello inviato da Alice

1 2

A-

MD(M)

M

Page 34: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 36

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?”

Page 35: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 37

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)

Page 36: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 38

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 le persone

Page 37: Sicurezza e Crittografia - Benvenuto su AMS Campus - AlmaDL - …campus.unibo.it/227041/31/L06-sicurezza.pdf · Sicurezza e Crittografia 5 La Sicurezza Informatica La sicurezza informatica

Sicurezza e Crittografia 39

Due letture interessanti(e non tecniche)