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 un’accezione 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 l’avvento dei computer, è risultato evidente l’utilizzo di questi
sistemi per la memorizzazione e il controllo dell’accesso 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 s’intende 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 l’edificio 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
dell’informazione
• Modello ISO/OSI (wiki)
Architetture
• Ogni singolo layer dell’architettura 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à dell’organizzazione
• 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. L’obiettivo è 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 dell’integrity)
• 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 dell’instradamento
• Uso di una Trusted Third Party
Meccanismi
• Funzionalità fidata (no byzantine)
• Etichetta di sicurezza (trust)
• Audit Trail
Esempio: interoperabilità
• L’interoperabilità è 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
• L’interoperabilità è 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
un’altra 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 dell’algoritmo)
• Forza Bruta, viene fatta un’analisi sull’intero spazio delle chiavi
• Storicamente si usano due tecniche
• Sostituzione
• Trasposizione
• Nella seconda guerra mondiale usate macchine a rotazione
• L’analisi 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 nell’alfabeto (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) l’algoritmo di encryption, k la chiave, 𝑝 ∈ 𝑀, M il testo in
chiaro.
• 𝐶 = 𝐸 3, 𝑝 = 𝑝 + 3 𝑚𝑜𝑑 26 per cifrare e
• 𝑝 = 𝐷 3, 𝐶 = 𝐶 − 𝑘 𝑚𝑜𝑑 26 per decifrare
Il modulo
• Dato l’insieme N dei numeri interi, si definisce l’operazione 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 sull’entropia
• 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
all’interno del testo cifrato -> trasposizione
Segretezza
• Un cifrario si dice perfetto se dopo aver intercettato un testo cifrato c
l’incertezza a posteriori sul testo in chiaro m è uguale all’intercezza
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 𝐸 𝑘 𝑚 = 𝑐
• L’informazione I(m) fornita all’arrivo 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?
• L’entropia di Shannon (la misura dell’incertezza), 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, l’attaccante può modificare l’ordine 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 dell’arte da utilizzare nei
contesti lavorativi).
AES
• Con DES reso non usabile dalla EFF, è stata pubblicata dal NIST
un’altra 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?

Corso IFTS CyberSecurity Expert

  • 1.
  • 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 parolaSicurezza viene sempre con un’accezione 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 strumentiper 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 l’avventodei computer, è risultato evidente l’utilizzo di questi sistemi per la memorizzazione e il controllo dell’accesso di documenti riservati • Successivamente i dati sensibili sono stati condivisi (avvento delle reti private e di internet).
  • 6.
    Introduzione • Sicurezza deidati memorizzati (in rest) • Sicurezza dei dati in transito (in transit)
  • 7.
    Che cosa s’intendeper 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 l’edificio 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 deidati 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 dellasicurezza • La sicurezza è un concetto CrossCutting: interessa tutti gli aspetti della gestione del dato e dell’informazione • Modello ISO/OSI (wiki)
  • 10.
    Architetture • Ogni singololayer dell’architettura 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 eservizi • Attacco alla sicurezza: qualsiasi azione che compromette la sicurezza delle informazioni di proprietà dell’organizzazione • 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 didue tipi: passivi e attivi • Attacchi passivi: si preoccupano di intercettare o monitorare le trasmissioni. L’obiettivo è 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 dell’integrity) • 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 dell’instradamento • Uso di una Trusted Third Party
  • 16.
    Meccanismi • Funzionalità fidata(no byzantine) • Etichetta di sicurezza (trust) • Audit Trail
  • 17.
    Esempio: interoperabilità • L’interoperabilitàè 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! Seun dato non è interoperabile, non è accessibile (available), quindi la probabilità di ottenere il servizio ad un tempo t>0 è 0. • Si viola la triade CIA • L’interoperabilità è importante in sicurezza
  • 19.
    Due care andDue 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 securityby 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)
  • 21.
  • 22.
  • 23.
    Tecniche di Crittografia •La crittografia è un meccanismo per implementare la … ? • È una funzione che trasforma una serie di dati (messaggio in chiaro) in un’altra 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 dell’algoritmo) • Forza Bruta, viene fatta un’analisi sull’intero spazio delle chiavi • Storicamente si usano due tecniche • Sostituzione • Trasposizione • Nella seconda guerra mondiale usate macchine a rotazione • L’analisi crittografica viene solitamente instrumentata con attacchi di tipo passivo
  • 25.
    Analisi • Schema incondizionatamentesicuro: 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) Numerodi 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
  • 27.
  • 28.
    Cifrario di GiulioCesare • Consiste in una sostituzione di ciascuna lettera con altre che occupano k posizioni in più o in meno nell’alfabeto (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 chiavedi sostituzione era fissata a 3. • Sia E(k, p) l’algoritmo di encryption, k la chiave, 𝑝 ∈ 𝑀, M il testo in chiaro. • 𝐶 = 𝐸 3, 𝑝 = 𝑝 + 3 𝑚𝑜𝑑 26 per cifrare e • 𝑝 = 𝐷 3, 𝐶 = 𝐶 − 𝑘 𝑚𝑜𝑑 26 per decifrare
  • 30.
    Il modulo • Datol’insieme N dei numeri interi, si definisce l’operazione 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 seinvece 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 dicifrari • 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.
  • 35.
    La seconda guerramondiale • 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 sull’entropia •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 all’interno del testo cifrato -> trasposizione
  • 37.
    Segretezza • Un cifrariosi dice perfetto se dopo aver intercettato un testo cifrato c l’incertezza a posteriori sul testo in chiaro m è uguale all’intercezza 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 𝐸 𝑘 𝑚 = 𝑐 • L’informazione I(m) fornita all’arrivo 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? • L’entropia di Shannon (la misura dell’incertezza), dimostra che OTP è un cifrario sicuro
  • 38.
    Block Ciphers • Finorasi 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 • Chiavea 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 • ConECB, l’attaccante può modificare l’ordine dei blocchi e non ce ne accorgeremmo (modificando la semantica del messaggio). • CBC: Cipher Block Chaining
  • 42.
    OpenSSL • Iniziamo acifrare 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 Simmetricain 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 daPassword • 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 dell’arte da utilizzare nei contesti lavorativi).
  • 47.
    AES • Con DESreso non usabile dalla EFF, è stata pubblicata dal NIST un’altra 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?