際際滷

際際滷Share a Scribd company logo
CyberSecurity
Massimiliano Masi, <max@mascanc.net>
Obiettivi del corso
 Teoria e pratica di Information Security Management Systems (ISMS)
 Attacchi, Vettori, Vulnerabilit, Architettura, Rischi
 Intrusion Detection
 Blockchain
 Best Practices, ISO 27000, e framework legali (GDPR, eIDAS)
 Impareremo: OpenSSL, Packet Filtering, Ethereum, HyperLedger,
Apache
Introduzione
 束La parola Sicurezza viene sempre con unaccezione negativa: viene
applicata quando le cose non vanno come dovrebbero損 [A, pg1]
 La sicurezza di un sistema IT (detta anche cybersecurity) deve essere
un impegno di tutte le persone che si occupano dello scambio e la
memorizzazione di dati e informazioni.
Introduzione
 Gli strumenti per la sicurezza dei dati si sono evoluti nel tempo
 Documenti riservati venivano rinchiusi in armadi
 Personale selezionato con dei criteri ben definiti
Introduzione
 Con lavvento dei computer, 竪 risultato evidente lutilizzo di questi
sistemi per la memorizzazione e il controllo dellaccesso di documenti
riservati
 Successivamente i dati sensibili sono stati condivisi (avvento delle reti
private e di internet).
Introduzione
 Sicurezza dei dati memorizzati (in rest)
 Sicurezza dei dati in transito (in transit)
Che cosa sintende per sicurezza?
 La vulnerabilit (vulnerability) 竪 il buco nel tetto
 La minaccia (threat) 竪 la nuvola carica di pioggia
 La pioggia pu嘆 sfruttare (exploit) la vulnerabilit
 Il rischio (risk) 竪 che ledificio e le sue dotazioni internet possano
essere danneggiate finch辿 la vulnerabilit esiste e non viene
riparata, ed esiste una probabilit che piova.
Recap
 Sicurezza dei dati in transit e in rest
 Concetto di Vulnerabilit, Rischio, Exploit, Threat
 Concetto di Vettore di Attacco: la modalit di ingresso nel sistema (il
束buco損)
Prima architettura della sicurezza
 La sicurezza 竪 un concetto
CrossCutting: interessa tutti gli
aspetti della gestione del dato e
dellinformazione
 Modello ISO/OSI (wiki)
Architetture
 Ogni singolo layer dellarchitettura del sistema richiede delle misure di
sicurezza a se
 Nelle reti moderne si usa il protocollo
TCP/IP
 Architetture superiori hanno gli stessi
concetti (SGAM, IIoT)
Meccanismi, attacchi e servizi
 Attacco alla sicurezza: qualsiasi azione che compromette la sicurezza
delle informazioni di propriet dellorganizzazione
 Meccanismo di sicurezza: processo progettato perrilevare, prevenire
o riparare i danni prodotti da un attacco
 Servizio Di Sicurezza: servizio che migliora la sicurezza dei sistemi di
elaborazione e trasmissione delle informazioni [B, pg11]
Attacchi
 Sono di due tipi: passivi e attivi
 Attacchi passivi: si preoccupano di intercettare o monitorare le
trasmissioni. Lobiettivo 竪 di carpire le informazioni che vengono
trasmesse.
 Sono molto difficili da rilevare
 Esempio: packet sniffing, traffic analysis
 Attacchi attivi: modificano il flusso dei dati
 Esempio: ripetizione, mascheramento, modifica, DoS
Servizi di Sicurezza
 Definizione di X.800:
 Autenticazione (utente e dati)
 Controllo degli accessi
 Segretezza dei dati
 Integrit dei dati
 Non ripudiabilit
 Definizione di ISO 27000: la CIA (Confidentiality, Integrity, Availability)
 Ci sono moltissime 束*bility損
CIA
 Confidentiality: (exclusivity) si definisce come il servizio che limita chi
pu嘆 accedere a cosa.
 Si implementa con il meccanismo di Access Control, e Cifratura
 Integrity: si definisce come la correttezza o consistente con lo stato
delle informazioni presunto (ogni modifica dei dati non autorizzata 竪
una rottura dellintegrity)
 Si implementa con il meccanismo di firme digitali, One-Way Hash Function
 Availability: la probabilit di ottenere il servizio richiesto ad un tempo
t, per ogni possibile valore di t.
Meccanismi
 Crittografia
 Firma
 Controllo accessi
 Integrit dei dati
 Scambio di autneticazione
 Riempimento del traffico (creazione di caos)
 Controllo dellinstradamento
 Uso di una Trusted Third Party
Meccanismi
 Funzionalit fidata (no byzantine)
 Etichetta di sicurezza (trust)
 Audit Trail
Esempio: interoperabilit
 Linteroperabilit 竪 definita in tre livelli
 Fondazionale (messaggi scambiati, protocollo)
 Strutturale (a livello di scambio di dati)
 Semantica (a livello di informazione scambiata).
  da considerarsi un esempio di sicurezza?
Risposta
 SI! Se un dato non 竪 interoperabile, non 竪 accessibile (available),
quindi la probabilit di ottenere il servizio ad un tempo t>0 竪 0.
 Si viola la triade CIA
 Linteroperabilit 竪 importante in sicurezza
Due care and Due diligence
 Due diligence is the act of investigating and understanding the risks
the company faces
 A company practices due care by developing and implementing
security policies, procedure and standards [A, pg 15]
 La sicurezza 竪 di solito regolata dalla legge in maniera abbastanza
precisa (ad esempio, General Data Protection Regulation (ex Data
Protection Regulation, dagli anni 90) e electronic ID and Advanced
Signature, dagli anni 90.
Mantra: NO security by obscurity
 Mettere in sicurezza un dato con un metodo inventato da noi, e
mantenuto segreto, 竪 estremamente debole:
 Bisogna essere parecchio bravi affinch辿 il metodo sia robusto
 Richiede conoscenza: prima o poi verr scritto da qualche parte e tecniche di
attacco sociali lo rendono disponibile
 Il codice si pu嘆 disassemblare (vedi le vecchie crack delle licenze)
 Sempre utilizzare algoritmi pubblici e ben conosciuti da tutti
 Security e Privacy by design (cfr. GDPR)
Social Attacks
Security becomes pervasive: IIoT
Tecniche di Crittografia
 La crittografia 竪 un meccanismo per implementare la  ?
  una funzione che trasforma una serie di dati (messaggio in chiaro) in
unaltra serie di dati (messaggio cifrato) e li rende accessibili solo a chi
conosce un segreto (chiave).
 Se la chiave usata per cifrare viene usata per decifrare, si parla di
cifrari simmetrici
 Se viene usata una chiave differente, asimmetrici.
Robustezza e attacchi
 Come si attacca un sistema crittografico simmetrico?
 Analisi Crittografica (basata sulle caratteristiche dellalgoritmo)
 Forza Bruta, viene fatta unanalisi sullintero spazio delle chiavi
 Storicamente si usano due tecniche
 Sostituzione
 Trasposizione
 Nella seconda guerra mondiale usate macchine a rotazione
 Lanalisi crittografica viene solitamente instrumentata con attacchi di
tipo passivo
Analisi
 Schema incondizionatamente sicuro: il testo cifrato generato non
contiene informazioni sufficienti per determinare in modo univico il
relativo test in chiaro
 Schema computazionalmente sicuro: iil costo della violazione del
testo cifrato supera il valore delle informazioni crittografate, e il
tempo richiesto per violare il testo cifrato 竪 superiore alla vita utile
delle informazioni
 Cercheremo cifrari computazionalmente sicuri.
Esempio
Dimensioni della chiave
(bit)
Numero di chiavi possibili 1 crittografia / sec 1.000.000 crittografie /
sec
32 232 = 4,3  109 231  = 35 minuti 2,15 millisec
56 256
= 7,2  1016
256
 = 1142 anni 10,01 ore
128 2128
= 3,4  1038
2127
 = 5,4  1024
anni
5,4  1018
anni
168 2128 = 3,7  1050 2167  = 5,9  1036
anni
5,9  1030 anni
 DES: 56 bit
 AES: 128 / 256
Cifratura Simmetrica
Cifrario di Giulio Cesare
 Consiste in una sostituzione di ciascuna lettera con altre che
occupano k posizioni in pi湛 o in meno nellalfabeto (considerato
circolare)
 BAH, CAPIRAI. L'ABITO NON FA IL DRUIDO!
 EDKFDSLUDLODELWRQRQIDLOGUXLGR
 http://www.crittologia.eu/critto/caesar.htm
 Come scambiarsi la chiave?
Decisione
 La chiave di sostituzione era fissata a 3.
 Sia E(k, p) lalgoritmo di encryption, k la chiave,   , M il testo in
chiaro.
  =  3,  =  + 3  26 per cifrare e
  =  3,  =     26 per decifrare
Il modulo
 Dato linsieme N dei numeri interi, si definisce loperazione di modulo,
che da come risultato il resto della divisione euclidea. Da wiki:
 13  3 = 1,
13
3
= 4, 13  4  3 = 1
 Nota: 3  4 = 3, 他 = 0, 3  4  0 = 3,      < 
 Congruenza:
    ( ) se    竪 multiplo di n, o    = (  )
 38  14  12 perch辿 38-14 = 24, multiplo di 12.
Esempi
 (3 + )  26, (9 + )  26, (1 + )  26, (15 + )  26
 K = 2
 E se p = 26? 26 + 2  26 = 2
 Analisi crittografica: una volta conosciuto E, si attacca di forza bruta.
 Che capacit computazionale? Al pi湛 25. Se il testo in chiaro 竪
conosciuto
 E se fosse compresso?
echo 'ciao' | tr 'A-Za-z' 'C-ZA-Bc-za-b'
Domande
 E se invece di k si usasse una permutazione? Invece che 25 chiavi, ce
ne sarebbero 26!, tantissime
 Complesso da attaccare in forza bruta
 Crittoanalisi in frequenza (delle lettere. In inglese ERTA)
 Conseguente diminuzione dello spazio delle chiavi
Altri tipi di cifrari
 Vigenere, Playfair (usato nella seconda guerra mondiale)
 Uso del concetto di chiave ripetuta
 One time pad: chiave lunga quanto il messaggio, usata una sola volta.
 Se la chiave 竪 casuale, allora il risultato 竪 casuale
 Cifrario pi湛 sicuro, ma ha due problemi, quali?
Problemi
 Generazione numeri
casuali
 Distribuzione delle
chiavi
La seconda guerra mondiale
 Macchine a rotazione (Enigma)
 Gli inglesi (bletchley park) usavano la RAF per
cercare il testo in chiaro
 La necessit computazionale necessaria per
indovinare le chiavi Enigma, ha spinto la
creazione degli elaboratori di Von Neumann, e
dei modelli concettuali di macchine di Turing
 Nascono i primi studi moderni di crittografia,
applicati ai dati gestiti dagli elaboratori
Due righe sullentropia
 Se sto leggendo un libro di informatica, qual 竪 la probabilit che ci sia
scritto la parola 束software損?
 Se questo fosse cifrato come abbiamo visto prima, la sua
contestualizzazione (la RAF e le sue bombe  ) fornisce accorgimenti
per la crittoanalisi
 Confusione: nasconde la relazione esistente tra testo in chiaro e tsto
cifrato (la RAF non servirebbe pi湛) -> sostituzione
 Diffusione: nasconde la ridondanza del testo in chiaro spargendola
allinterno del testo cifrato -> trasposizione
Segretezza
 Un cifrario si dice perfetto se dopo aver intercettato un testo cifrato c
lincertezza a posteriori sul testo in chiaro m 竪 uguale allintercezza
che si aveva a priori.
 Un cifrario 竪 sicuro se dato un qualsiasi testo c, per chi non conosce
 
1
e quindi k, p竪 impossibile trovare m tale che    = 
 Linformazione I(m) fornita allarrivo di un messaggio m 竪 tanto pi湛
grande quanto pi湛 piccola 竪 la probabilit del messaggio stesso.
 Che informazione mi da la parola 束Drago損 in un libro di computer?
 Lentropia di Shannon (la misura dellincertezza), dimostra che OTP 竪
un cifrario sicuro
Block Ciphers
 Finora si cifrava un bit o un byte alla volta
 Cifrari a blocchi: si usa un blocco di testo in chiaro per essere trattato
come entit, usato per produrre un blocco di testo cifrato di uguale
lunghezza, di 64 o 128 bit (Schema di Feistel)
Data Encryption Standard
 Primo algoritmo usato su scala mondiale (DES)
 Adottato nel 1977 dal National Bureau of Standards (oggi NIST)
 Block Ciphers
 Chiave a 56 bit
 Algoritmo Polemico: il suo funzionamento si basava su delle funzioni
(chiamate S-Box) che non erano resi pubblici:
 Gli utenti non potevano sapere se la struttura interna di DES fosse esente da
punti deboli nascosti che potessero consentire alla NSA di decifrare i messaggi
senza utilizzare la chiave.
Punti deboli
 Chiave a 56 bit imposta. Rotta nel 1998 con un hardware di 250.000$
 Necessit di conoscere il testo in chiaro
 Attacchi Temporizzati: si ottiene informazioni sulla chiave sulla base
del tempo impiegato da una data implementazione asvolgere la
decrittografia (bit a 0: non c竪 corrente).
Block Ciphers
 Con ECB, lattaccante pu嘆 modificare lordine dei blocchi e non ce ne
accorgeremmo (modificando la semantica del messaggio).
 CBC: Cipher Block Chaining
OpenSSL
 Iniziamo a cifrare e decifrare dei testi e vediamo quanto fatto fino qui.
 Esercizio 1: ROT13
 Esercizio 2: DES-CBC
 Useremo OpenSSL, un tool e una libreria open source utilizzata da
qualsiasi sistemista al mondo per operazioni di crittografia
OpenSSL
max@spirit6 ~/Desktop/Corso PIN $ openssl version
LibreSSL 2.6.5
Configuration file: openssl.cnf (di solito in /etc)
Sintassi dei comandi:
 La prima parte 竪 data dal nome del comando stesso, seguito da tutte le
opzioni che si intendono specificare, ciascuna separata da spazio
 Le opzioni iniziano con un trattino
Prendere: wget https://norvig.com/big.txt
OpenSSL
 Cifratura Simmetrica in OpenSSL
openssl enc args
Cifrare con DES
openssl enc -des-cbc -in FILECORTO.txt -out corto_des_cbc.enc
La password viene usata per generare il vettore di inizializzazione e il
salt
Doppio Encoding
 max@spirit6 ~/Desktop/Corso PIN $ openssl enc -base64 -in
FILECORTO.txt | openssl enc -des-cbc -out FILECORTO.b64des
 max@spirit6 ~/Desktop/Corso PIN $ openssl enc -d -des-cbc -in
FILECORTO.b64des | openssl enc -d -base64
 enter des-cbc decryption password:
 (Di solito si fa il contrario)
Generare Chiavi da Password
 Si usa PBKDF2 (Password Based Key Derivation Function 2)
 Rfc 2898
 NIST Special Publication 800-132
 (Note: sia il NIST.gov, che ENISA (European Union Agency for Network
and Information Security forniscono lo stato dellarte da utilizzare nei
contesti lavorativi).
AES
 Con DES reso non usabile dalla EFF, 竪 stata pubblicata dal NIST
unaltra richiesta di interesse per la creazione di un nuovo algoritmo
di cifratura simmetrica standard
 Nel 2001 竪 stato introdotto Advanced Encryption Standard (AES,
Rjiandel)
 Dopo DES 竪 stato usato 3DES, fino al 2001 (comunque molto lento)
 Chiave da 128 a 256 bit
Esempio (molto empirico)
 max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -des-cbc -
out big.des
real 0m2.922s
 max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -des3 -out
big.des
 enter des-ede3-cbc encryption password:
real 0m3.164s
 max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -aes-128-
cbc -out big.des
real 0m2.834s
Esercizi con OpenSSL (da A. De Santis)
 Codificare un file di testo arbitrario on Base64 e vedere il risultato
 Codificare un file binario arbitrario con Base64 e vedere il risultato
 Scrivere una password in un file, codificarla Base64, inviare il file ad
un compagno, e lasciarla decifrare
 Cifrare un file arbitrario con DES, identificare un compagno di corso
come fidato, e lasciarlo decifrare. Gli altri studenti cercano un modo
per attaccarlo
Esercizi
 Usare 束ls al > dir.txt損 per generare il file dir1.
 Cifrare con DES-ECB, per ottenere dir1.ecb: come si usa?
 Cifrare con DES-CBC, che comando si usa?
 Cifrare con AES-256-CBC, che comando si usa?

More Related Content

Corso IFTS CyberSecurity Expert

  • 2. Obiettivi del corso Teoria e pratica di Information Security Management Systems (ISMS) Attacchi, Vettori, Vulnerabilit, Architettura, Rischi Intrusion Detection Blockchain Best Practices, ISO 27000, e framework legali (GDPR, eIDAS) Impareremo: OpenSSL, Packet Filtering, Ethereum, HyperLedger, Apache
  • 3. Introduzione 束La parola Sicurezza viene sempre con unaccezione negativa: viene applicata quando le cose non vanno come dovrebbero損 [A, pg1] La sicurezza di un sistema IT (detta anche cybersecurity) deve essere un impegno di tutte le persone che si occupano dello scambio e la memorizzazione di dati e informazioni.
  • 4. Introduzione Gli strumenti per la sicurezza dei dati si sono evoluti nel tempo Documenti riservati venivano rinchiusi in armadi Personale selezionato con dei criteri ben definiti
  • 5. Introduzione Con lavvento dei computer, 竪 risultato evidente lutilizzo di questi sistemi per la memorizzazione e il controllo dellaccesso di documenti riservati Successivamente i dati sensibili sono stati condivisi (avvento delle reti private e di internet).
  • 6. Introduzione Sicurezza dei dati memorizzati (in rest) Sicurezza dei dati in transito (in transit)
  • 7. Che cosa sintende per sicurezza? La vulnerabilit (vulnerability) 竪 il buco nel tetto La minaccia (threat) 竪 la nuvola carica di pioggia La pioggia pu嘆 sfruttare (exploit) la vulnerabilit Il rischio (risk) 竪 che ledificio e le sue dotazioni internet possano essere danneggiate finch辿 la vulnerabilit esiste e non viene riparata, ed esiste una probabilit che piova.
  • 8. Recap Sicurezza dei dati in transit e in rest Concetto di Vulnerabilit, Rischio, Exploit, Threat Concetto di Vettore di Attacco: la modalit di ingresso nel sistema (il 束buco損)
  • 9. Prima architettura della sicurezza La sicurezza 竪 un concetto CrossCutting: interessa tutti gli aspetti della gestione del dato e dellinformazione Modello ISO/OSI (wiki)
  • 10. Architetture Ogni singolo layer dellarchitettura del sistema richiede delle misure di sicurezza a se Nelle reti moderne si usa il protocollo TCP/IP Architetture superiori hanno gli stessi concetti (SGAM, IIoT)
  • 11. Meccanismi, attacchi e servizi Attacco alla sicurezza: qualsiasi azione che compromette la sicurezza delle informazioni di propriet dellorganizzazione Meccanismo di sicurezza: processo progettato perrilevare, prevenire o riparare i danni prodotti da un attacco Servizio Di Sicurezza: servizio che migliora la sicurezza dei sistemi di elaborazione e trasmissione delle informazioni [B, pg11]
  • 12. Attacchi Sono di due tipi: passivi e attivi Attacchi passivi: si preoccupano di intercettare o monitorare le trasmissioni. Lobiettivo 竪 di carpire le informazioni che vengono trasmesse. Sono molto difficili da rilevare Esempio: packet sniffing, traffic analysis Attacchi attivi: modificano il flusso dei dati Esempio: ripetizione, mascheramento, modifica, DoS
  • 13. Servizi di Sicurezza Definizione di X.800: Autenticazione (utente e dati) Controllo degli accessi Segretezza dei dati Integrit dei dati Non ripudiabilit Definizione di ISO 27000: la CIA (Confidentiality, Integrity, Availability) Ci sono moltissime 束*bility損
  • 14. CIA Confidentiality: (exclusivity) si definisce come il servizio che limita chi pu嘆 accedere a cosa. Si implementa con il meccanismo di Access Control, e Cifratura Integrity: si definisce come la correttezza o consistente con lo stato delle informazioni presunto (ogni modifica dei dati non autorizzata 竪 una rottura dellintegrity) Si implementa con il meccanismo di firme digitali, One-Way Hash Function Availability: la probabilit di ottenere il servizio richiesto ad un tempo t, per ogni possibile valore di t.
  • 15. Meccanismi Crittografia Firma Controllo accessi Integrit dei dati Scambio di autneticazione Riempimento del traffico (creazione di caos) Controllo dellinstradamento Uso di una Trusted Third Party
  • 16. Meccanismi Funzionalit fidata (no byzantine) Etichetta di sicurezza (trust) Audit Trail
  • 17. Esempio: interoperabilit Linteroperabilit 竪 definita in tre livelli Fondazionale (messaggi scambiati, protocollo) Strutturale (a livello di scambio di dati) Semantica (a livello di informazione scambiata). da considerarsi un esempio di sicurezza?
  • 18. Risposta SI! Se un dato non 竪 interoperabile, non 竪 accessibile (available), quindi la probabilit di ottenere il servizio ad un tempo t>0 竪 0. Si viola la triade CIA Linteroperabilit 竪 importante in sicurezza
  • 19. Due care and Due diligence Due diligence is the act of investigating and understanding the risks the company faces A company practices due care by developing and implementing security policies, procedure and standards [A, pg 15] La sicurezza 竪 di solito regolata dalla legge in maniera abbastanza precisa (ad esempio, General Data Protection Regulation (ex Data Protection Regulation, dagli anni 90) e electronic ID and Advanced Signature, dagli anni 90.
  • 20. Mantra: NO security by obscurity Mettere in sicurezza un dato con un metodo inventato da noi, e mantenuto segreto, 竪 estremamente debole: Bisogna essere parecchio bravi affinch辿 il metodo sia robusto Richiede conoscenza: prima o poi verr scritto da qualche parte e tecniche di attacco sociali lo rendono disponibile Il codice si pu嘆 disassemblare (vedi le vecchie crack delle licenze) Sempre utilizzare algoritmi pubblici e ben conosciuti da tutti Security e Privacy by design (cfr. GDPR)
  • 23. Tecniche di Crittografia La crittografia 竪 un meccanismo per implementare la ? una funzione che trasforma una serie di dati (messaggio in chiaro) in unaltra serie di dati (messaggio cifrato) e li rende accessibili solo a chi conosce un segreto (chiave). Se la chiave usata per cifrare viene usata per decifrare, si parla di cifrari simmetrici Se viene usata una chiave differente, asimmetrici.
  • 24. Robustezza e attacchi Come si attacca un sistema crittografico simmetrico? Analisi Crittografica (basata sulle caratteristiche dellalgoritmo) Forza Bruta, viene fatta unanalisi sullintero spazio delle chiavi Storicamente si usano due tecniche Sostituzione Trasposizione Nella seconda guerra mondiale usate macchine a rotazione Lanalisi crittografica viene solitamente instrumentata con attacchi di tipo passivo
  • 25. Analisi Schema incondizionatamente sicuro: il testo cifrato generato non contiene informazioni sufficienti per determinare in modo univico il relativo test in chiaro Schema computazionalmente sicuro: iil costo della violazione del testo cifrato supera il valore delle informazioni crittografate, e il tempo richiesto per violare il testo cifrato 竪 superiore alla vita utile delle informazioni Cercheremo cifrari computazionalmente sicuri.
  • 26. Esempio Dimensioni della chiave (bit) Numero di chiavi possibili 1 crittografia / sec 1.000.000 crittografie / sec 32 232 = 4,3 109 231 = 35 minuti 2,15 millisec 56 256 = 7,2 1016 256 = 1142 anni 10,01 ore 128 2128 = 3,4 1038 2127 = 5,4 1024 anni 5,4 1018 anni 168 2128 = 3,7 1050 2167 = 5,9 1036 anni 5,9 1030 anni DES: 56 bit AES: 128 / 256
  • 28. Cifrario di Giulio Cesare Consiste in una sostituzione di ciascuna lettera con altre che occupano k posizioni in pi湛 o in meno nellalfabeto (considerato circolare) BAH, CAPIRAI. L'ABITO NON FA IL DRUIDO! EDKFDSLUDLODELWRQRQIDLOGUXLGR http://www.crittologia.eu/critto/caesar.htm Come scambiarsi la chiave?
  • 29. Decisione La chiave di sostituzione era fissata a 3. Sia E(k, p) lalgoritmo di encryption, k la chiave, , M il testo in chiaro. = 3, = + 3 26 per cifrare e = 3, = 26 per decifrare
  • 30. Il modulo Dato linsieme N dei numeri interi, si definisce loperazione di modulo, che da come risultato il resto della divisione euclidea. Da wiki: 13 3 = 1, 13 3 = 4, 13 4 3 = 1 Nota: 3 4 = 3, 他 = 0, 3 4 0 = 3, < Congruenza: ( ) se 竪 multiplo di n, o = ( ) 38 14 12 perch辿 38-14 = 24, multiplo di 12.
  • 31. Esempi (3 + ) 26, (9 + ) 26, (1 + ) 26, (15 + ) 26 K = 2 E se p = 26? 26 + 2 26 = 2 Analisi crittografica: una volta conosciuto E, si attacca di forza bruta. Che capacit computazionale? Al pi湛 25. Se il testo in chiaro 竪 conosciuto E se fosse compresso? echo 'ciao' | tr 'A-Za-z' 'C-ZA-Bc-za-b'
  • 32. Domande E se invece di k si usasse una permutazione? Invece che 25 chiavi, ce ne sarebbero 26!, tantissime Complesso da attaccare in forza bruta Crittoanalisi in frequenza (delle lettere. In inglese ERTA) Conseguente diminuzione dello spazio delle chiavi
  • 33. Altri tipi di cifrari Vigenere, Playfair (usato nella seconda guerra mondiale) Uso del concetto di chiave ripetuta One time pad: chiave lunga quanto il messaggio, usata una sola volta. Se la chiave 竪 casuale, allora il risultato 竪 casuale Cifrario pi湛 sicuro, ma ha due problemi, quali?
  • 34. Problemi Generazione numeri casuali Distribuzione delle chiavi
  • 35. La seconda guerra mondiale Macchine a rotazione (Enigma) Gli inglesi (bletchley park) usavano la RAF per cercare il testo in chiaro La necessit computazionale necessaria per indovinare le chiavi Enigma, ha spinto la creazione degli elaboratori di Von Neumann, e dei modelli concettuali di macchine di Turing Nascono i primi studi moderni di crittografia, applicati ai dati gestiti dagli elaboratori
  • 36. Due righe sullentropia Se sto leggendo un libro di informatica, qual 竪 la probabilit che ci sia scritto la parola 束software損? Se questo fosse cifrato come abbiamo visto prima, la sua contestualizzazione (la RAF e le sue bombe ) fornisce accorgimenti per la crittoanalisi Confusione: nasconde la relazione esistente tra testo in chiaro e tsto cifrato (la RAF non servirebbe pi湛) -> sostituzione Diffusione: nasconde la ridondanza del testo in chiaro spargendola allinterno del testo cifrato -> trasposizione
  • 37. Segretezza Un cifrario si dice perfetto se dopo aver intercettato un testo cifrato c lincertezza a posteriori sul testo in chiaro m 竪 uguale allintercezza che si aveva a priori. Un cifrario 竪 sicuro se dato un qualsiasi testo c, per chi non conosce 1 e quindi k, p竪 impossibile trovare m tale che = Linformazione I(m) fornita allarrivo di un messaggio m 竪 tanto pi湛 grande quanto pi湛 piccola 竪 la probabilit del messaggio stesso. Che informazione mi da la parola 束Drago損 in un libro di computer? Lentropia di Shannon (la misura dellincertezza), dimostra che OTP 竪 un cifrario sicuro
  • 38. Block Ciphers Finora si cifrava un bit o un byte alla volta Cifrari a blocchi: si usa un blocco di testo in chiaro per essere trattato come entit, usato per produrre un blocco di testo cifrato di uguale lunghezza, di 64 o 128 bit (Schema di Feistel)
  • 39. Data Encryption Standard Primo algoritmo usato su scala mondiale (DES) Adottato nel 1977 dal National Bureau of Standards (oggi NIST) Block Ciphers Chiave a 56 bit Algoritmo Polemico: il suo funzionamento si basava su delle funzioni (chiamate S-Box) che non erano resi pubblici: Gli utenti non potevano sapere se la struttura interna di DES fosse esente da punti deboli nascosti che potessero consentire alla NSA di decifrare i messaggi senza utilizzare la chiave.
  • 40. Punti deboli Chiave a 56 bit imposta. Rotta nel 1998 con un hardware di 250.000$ Necessit di conoscere il testo in chiaro Attacchi Temporizzati: si ottiene informazioni sulla chiave sulla base del tempo impiegato da una data implementazione asvolgere la decrittografia (bit a 0: non c竪 corrente).
  • 41. Block Ciphers Con ECB, lattaccante pu嘆 modificare lordine dei blocchi e non ce ne accorgeremmo (modificando la semantica del messaggio). CBC: Cipher Block Chaining
  • 42. OpenSSL Iniziamo a cifrare e decifrare dei testi e vediamo quanto fatto fino qui. Esercizio 1: ROT13 Esercizio 2: DES-CBC Useremo OpenSSL, un tool e una libreria open source utilizzata da qualsiasi sistemista al mondo per operazioni di crittografia
  • 43. OpenSSL max@spirit6 ~/Desktop/Corso PIN $ openssl version LibreSSL 2.6.5 Configuration file: openssl.cnf (di solito in /etc) Sintassi dei comandi: La prima parte 竪 data dal nome del comando stesso, seguito da tutte le opzioni che si intendono specificare, ciascuna separata da spazio Le opzioni iniziano con un trattino Prendere: wget https://norvig.com/big.txt
  • 44. OpenSSL Cifratura Simmetrica in OpenSSL openssl enc args Cifrare con DES openssl enc -des-cbc -in FILECORTO.txt -out corto_des_cbc.enc La password viene usata per generare il vettore di inizializzazione e il salt
  • 45. Doppio Encoding max@spirit6 ~/Desktop/Corso PIN $ openssl enc -base64 -in FILECORTO.txt | openssl enc -des-cbc -out FILECORTO.b64des max@spirit6 ~/Desktop/Corso PIN $ openssl enc -d -des-cbc -in FILECORTO.b64des | openssl enc -d -base64 enter des-cbc decryption password: (Di solito si fa il contrario)
  • 46. Generare Chiavi da Password Si usa PBKDF2 (Password Based Key Derivation Function 2) Rfc 2898 NIST Special Publication 800-132 (Note: sia il NIST.gov, che ENISA (European Union Agency for Network and Information Security forniscono lo stato dellarte da utilizzare nei contesti lavorativi).
  • 47. AES Con DES reso non usabile dalla EFF, 竪 stata pubblicata dal NIST unaltra richiesta di interesse per la creazione di un nuovo algoritmo di cifratura simmetrica standard Nel 2001 竪 stato introdotto Advanced Encryption Standard (AES, Rjiandel) Dopo DES 竪 stato usato 3DES, fino al 2001 (comunque molto lento) Chiave da 128 a 256 bit
  • 48. Esempio (molto empirico) max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -des-cbc - out big.des real 0m2.922s max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -des3 -out big.des enter des-ede3-cbc encryption password: real 0m3.164s max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -aes-128- cbc -out big.des real 0m2.834s
  • 49. Esercizi con OpenSSL (da A. De Santis) Codificare un file di testo arbitrario on Base64 e vedere il risultato Codificare un file binario arbitrario con Base64 e vedere il risultato Scrivere una password in un file, codificarla Base64, inviare il file ad un compagno, e lasciarla decifrare Cifrare un file arbitrario con DES, identificare un compagno di corso come fidato, e lasciarlo decifrare. Gli altri studenti cercano un modo per attaccarlo
  • 50. Esercizi Usare 束ls al > dir.txt損 per generare il file dir1. Cifrare con DES-ECB, per ottenere dir1.ecb: come si usa? Cifrare con DES-CBC, che comando si usa? Cifrare con AES-256-CBC, che comando si usa?