Sei sulla pagina 1di 9

1. Descrivere il funzionamento di Enigma.

2. Descrivere sinteticamente i 4 layer di AES Rijndael.

3. Descrivere i 4 requisiti richiesti dal NIST per AES:

4. Spiegare i passaggi cardine di uno scambio di messaggi (Bob invia un messaggio ad Alice) basato su
crittografia asimmetrica.

5. Nel modello dell'oracolo casuale che descrive le funzioni hash ideali, l'oracolo risponde a tre
regole. Quali sono?

6. Spiegare il funzionamento di un attacco basato su analisi del traffico

7. Spiegare il meccanismo di cifratura e decifratura del OTP

8. Descrivere i due metodi per ottenere confidenzialità usando Message Authentication Code.

Ci sono essenzialmente due metodi, che prevedono l’utilizzo di 2 chiavi, una per il MAC ed una per cifrare il
messaggio.

1. Il primo consiste nel costruire il messaggio M = m + MAC (m è il testo in chiaro) e successivamente


cifrare M prima di inviarlo al destinatario. Il destinatario decifra M e verifica il MAC. Questo metodo
dipende dal testo in chiaro.
2. Il secondo consiste nel cifrare solo m e calcolarne il MAC. Il destinatario a questo punto può
verificare il MAC del testo cifrato separatamente da m. Successivamente passa a decifrare m.
Questo metodo dipende dal testo cifrato.

9. Descrivere il PAP.

Il PAP (Password Authentication Protocol) è un semplice meccanismo di autenticazione basato su scambi di


messaggi in chiaro

1. l’authenticator invia una richiesta di autenticazione al peer


2. il peer invia il proprio UID
3. l’auth richiede una password
4. il peer invia la password

10. Descrivere il CHAP.

Il protocollo CHAP (Challenge Handshake Authentication Protocol) è una versione più evoluta del PAP
(Password Athentication Protocol).

Passi:

1. Auth invia una challenge casuale al peer in chiaro tanto dopo verrà scartata
2. Il peer costruisce una risposta R basata su una funzione hash fatta così: hash
(password+challenge) da applicare al messaggio e lo invia in chiaro ad Auth
3. Aut riceve il messaggio, ripete il calcolo e verifica se la risposta R ed il suo calcolo coincidono. Se
sì, il peer è autenticato.

1
Questo è uno schema a singola autenticazione perché il peer si accerta dell’autenticità del server, ma il
server non si accerta dell’autenticità del peer.

11. Descrivere i diversi tipi di credenziali.

Ce ne sono 4:

1. Username o ID
2. Password
3. OTP ovvero one time password cioè doppio fattore di autenticazione
4. Smart card, token fisici, usb key

12. Si assuma che Alice e Bob abbiano due lucchetti, uno diverso dall'altro, e che Alice abbia anche
una valigetta e un messaggio da inviare a Bob. Si spieghi come Alice possa far pervenire e leggere il
messaggio a Bob, in maniera tale che una terza parte non possa mai accedere al messaggio nella valigetta
quando essa viaggia nella tratta tra Alice e Bob.

Alice appone un suo lucchetto sulla valigetta che contiene un messaggio per Bob. Bob riceve la valigetta ma
non può aprire il lucchetto di Alice. Allora Bob appone il suo lucchetto sulla valigetta e lo re-invia ad Alice.
Alice riceve la valigetta e rimuove il proprio lucchetto lasciando solo quello di Bob e glielo rispedisce. Bob
riceve la valigetta con solo il proprio lucchetto che questa volta riesce ad aprire.

Questo è un esempio di scambio di messaggi con protocollo a 3 vie.

13. Spiegare caratteristiche di, e differenze tra, chiavi di sessione e chiavi master

14. Quali sono i quattro metodi più noti per la distribuzione delle chiavi pubbliche di cifrari
asimmetrici? Descriverne uno a piacere.

1. Annunci pubblici
2. Directory pubbliche
3. Autorità di chiavi pubbliche
4. Certificati di chiavi pubbliche

Il protocollo di scambio delle chiavi utilizzando i Certificati semplifica la procedura rispetto ai metodi
precedenti. Infatti l’utente si registra presso una CA ed invia in modo sicuro la propria chiave pubblica che la
CA provvederà a firmare con la propria chiave privata, generando un certificato. Il certificato conterrà
l’identità dell’utente, la chiave pubblica dell’utente e la durata del certificato.

La chiave privata della CA non serve per garantire confidenzialità bensì autenticità della chiave, in modo da
evitare attacchi di tipo mitm per lo scambio di chiavi.

15. Spiegare il protocollo base su cui si basa la generazione di un certificato.

Si parte da un payload, un dato grezzo del certificato, che contiene tre informazioni: identità utente, chiave
pubblica e identificazione CA. Queste 3 informazioni rappresentano il certificato non firmato da sottoporre
alla CA.

La CA utilizza un protocollo di tipo hash and sign, ovvero usa un hash che produce un digest che viene
firmato dalla CA stessa.

2
16. Descrivere brevemente il protocollo che permette di ottenere firme long term.

Per ottenere firme a lungo termine si usano protocolli chiamati AdES (Advanced Electronic Signature). La
soluzione proposta è quella di includere nel documento da firmare informazioni sulla validità dei certificati
e sulla marcatura temporale nel momento in cui la firma viene generata. In questo modo si può verificare
una firma anche dopo la scadenza del certificato.

17. Descrivere le proprietà di una catena di certificati.

Una catena di certificati si realizza quando ci sono CA intermedie oltre alla root CA (anchor trust) che
emettono certificati, generando quindi una gerarchia di CA.

Deve soddisfare queste 3 proprietà:

1. l’emittente di ogni certificato coincide col soggetto del certificato successivo


2. ogni certificato è firmato con la chiave segreta corrispondente al certificato successivo nella
catena
3. l’ultimo certificato è rilasciato dalla root CA, cioè l’anchor trust, ovvero un certificato di cui ci si
fida.

18. Quali sono i tre componenti che formano il certificato X.509 (ad esempio di Bob) prima della
firma?

1. identità utente
2. chiave pubblica
3. identificazione CA

19. Descrivere il modello ISO/OSI.

20. Descrivere brevemente il protocollo IP

21. Descrivere il protocollo SSL handshake.

Il protocollo SSL (Secure Sockets Layers) handshake permette al server e al client di autenticarsi.

Nella prima fase client e server “si salutano” inviando informazioni circa le loro security capabilities
(algoritmi di sicurezza) supportati. Il server, in maniera non obbligatoria, può inviare dati aggiuntivi quali: il
proprio certificato, messaggi per lo scambio di chiavi, richiesta di certificato del client. Infine il server invia
un “Hello done” per segnalare che la sua parte è finita.

Il client risponde alla richieste del server e quindi le due parti si sono autenticate e accordate, hanno
scambiato una chiave segreta con cui cifrare e quindi l’impianto crittografico è pronto.

La fase successiva sarà che il client inviterà il sevrer ad usare le specifiche di cifratura (ssl change cipher
spec) e che ha concluso.

Il server risponderà dicendo “change cipher spec” e che ha concluso.

22. Descrivere i protocolli SSL Change Cipher Spec e SSL Alert.

Il protocollo SSL Change Cipher Spec serve solo per cambiare la modalità di cifratura ed occupa un
messaggio di 8 byte. In pratica detta il momento in cui cambia la connessione.

Il protocollo Alert serve a trasmettere allarmi relativi alla connessione SSL (certificato non valido) ed ha due
tipi di errore: warning e fatal. Se l’allarme è fatale, blocca subito la connessione.
3
23. Descrivere il protocollo TLS Handshake nella versione 1.2.

Nella versione 1.2 del TLS (Transport Layer Security) il client invia un Hello al server con l’elenco delle
Cipher Suite supportate.

Il server risponde con un Hello, la cipher suite da usare, il keyshare e il certificato per l’autenticazione. Una
volta che il client riceve tutto, invia un messaggio con il keyshare e segnala al server di aver terminato. Il
server riceve i dati e lo notifica al client.

A questo punto possono partire le richieste da parte del client.

24. Descrivere il protocollo TLS Handshake nella versione 1.3.

La versione 1.3 introdduce efficienza. Lo scambio di messaggi avviene in 3 passaggi. Il client invia in un
unico messaggio con L’Hello, la cipher suite preferita e informazioni sul keyshare.

Il server risponde con un unico messaggio che contiene l’Hello, la cipher suite selezionata, la risposta al key
exchange, il certificato per l’autenticazione e il messaggio di chiusura dell’handshake.

Il cliente riceve tutto ed inizia a trasmettere dati/richieste con un pacchetto che chiude l’handshake.

25. Elencare 4 caratteristiche vantaggiose di IPsec.

IPSec implementa servizi sicuri a livello IP. Tra i più importanti ci sono:

1. autenticazione
2. confidenzialità
3. gestione delle chiavi

IPSec può utilizzare due modalità differenti: trasporto e tunnel. Nella modalità trasporto viene cifrato solo il
payload mentre nella modalità tunnel viene cifrato l’intero pacchetto IP.

26. Descrivere brevemente i protocolli che compongono l'architettura di IPsec.

HA, ESP e SA.

HA = Header Authentication, serve a garantire integrità e autenticazione

ESP = Encapsulating Security Payload, serve a garantire confidenzialità, integrità e autenticazione

SA = Security Association, set di algoritmi per supportare HA e ESP

27. Descrivere le due modalità operative di IPsec.

28. Descrivere brevemente i 3 requisiti che si vogliono ottenere nelle reti 802.1x.

I requisiti sono: autenticazione, confidenzialità e controllo.

29. Descrivere brevemente il funzionamento di WEP.

Il WEP (Wired Equivalent Privacy) prevede che il frame da trasmettere subisca un controllo di integrità
tramite CRC producendo una parola di 32 byte il cui valore si chiama ICV (Integrity Check Value); questo
4
controllo non ha nessuna valenza crittografica e viene aggiunto in cascata al frame da inviare e vengono
entrambi cifrati.

Per cifrare viene usata una chiave simmetrica e condivisa, lunga 40 bit + 24 bit che rappresentano il vettore
di inizializzazione (IV) che viene trasmesso in chiaro. Viene usato un cifrario a flusso, RC4 e il keystream
generato va in XOR col frame da inviare. In questo algoritmo la chiave non viene generata casualmente e
soprattutto, non viene usata una sola volta.

30. Indicare i punti di debolezza del WEP, tralasciando i limiti di RC4.

Il primo limite è che il keystream viene riutilizzato. In questo modo 2 messaggi cifrati con lo stesso
keystream producono lo stesso XOR dei 2 rispettivi messaggi in chiaro. (in pratica, lo XOR di due messaggi
cifrati con lo stesso keystream elimina la cifratura) e perciò, ad esempio, è immediatamente possibile
identificare porzioni di testo uguale (in quanto il risultato dello XOR è una sequenza di zero); insomma può
soccombere ad attacchi di tipo know-plaintext.

L’unico modo per ovviare a questo limite è variare l’IV, che però viene trasmesso in chiaro, e ha sempre una
lunghezza fissa di 24 bit, che genera circa 16 milioni di possibili IV, che sembrano tantissimi, ma in 3-4 ore di
trasmissione c’è il rischio che si ripresenti lo stesso IV e quindi lo stesso keystream.

Il secondo limite è legato al RC4 che risulta insicuro dal punto di vista crittografico (sarebbe meglio usare
funzioni hash) e presenta il problema del key scheduling.

Il terzo limite è che non esiste una tecnica di distribuzione della chiave in modo sicuro.

Comunque la debolezza più grande è legata ad RC4.

31. Descrivere brevemente il funzionamento di TKIP.

E’ stato introdotto per superare le debolezze del WEP. Il TKIP (Temporary Key Integrity Protocol) fornisce
confidenzialità ed integrità dei dati grazie al protocollo Michael.

TKIP introdice il rekeying mechanism per la derivazione e la distribuzione delle chiavi in modo da poter
avere delle chiavi che cambiano pacchetto per pacchetto, cosìcchè è molto difficile avere 2 pacchetti cifrati
con la stessa chiave; viene perciò allungato l’IV a 48 bit (a differenza del WEP che ha un IV a 24 bit) in modo
da ridurre la probabilità di riuso della chiave..

Il TKIP combina la chiave segreta con l’IV e con il MAC address del sorgente e introduce un contatore per
evitare attacchi di tipo replay.

32. Spiegare il concetto di ongoing chain of hash-based proof of work.

La rete fa in modo che ogni transazione venga tempostampata e ne venga calcolato l’hash ed inserito in
una crescente catena di prove di lavoro, ovvero dimostrazioni che un utente ha lavorato per costruire la
catena. Trattandosi di lavoro computazionale mettere una transazione in questo registro costa lavoro,
ovvero energia elettrica. Questo crea un tracciato immutabile che non può essere cambiato se non
rifacendo la stessa prova di lavoro.

La catena più lunga non solo testimonia gli eventi ma fa da prova che proviene dal più grande insieme di
processori, perché solo gli utenti che sono d’accordo nel validare una transazione concorreranno a fare
questi calcoli e quindi ad incrementare la catena.

Se la maggiornaza è d’accordo sul merito, farà crescere quella catena velocemente, mentre un gruppo di
malintenzionati non riuscirà a far crecere la catena così velocemente, perché il loro lavoro sarà
dimensionalmente inferiore.

5
Fintanto che la maggioranza delle risorse computazionali è controllata da nodi che non stanno cooperando
per attaccare la rete, essi generano la catena più grande e quindi la catena ‘onesta’ sarà quella più grande,
più lunga e surclasserà gli attaccanti.

33. Descrivere brevemente il problema della conservazione delle chiavi in Bitcoin, confrontandolo
con la conservazione delle credenziali nel caso si apra un conto in banca.

Il problema principale della conservazione delle chiavi è legata al fatto che l’infrastruttura è decentralizzata.
Infatti l’utente deve conservare la propria coppia chiave pubbilca/privata perché sarà il solo possessore di
queste informazioni. Nesuno sarà in grado di recuperarli perché non esistono enti terzi deputati alla
conservazione. A differenza del sistema bancario, che è appunto un sistema centralizzato, dove c’è la banca
che si occupa della conservazione delle password, codici, conti correnti, e può restituirli inc aso di
smarrimento/furto, in Bitcoin questo non è possibile poiché non esiste il concetto e l’implementazione di
un organo di governo centrale (banca).

34. Descrivere il processo di generazione di un indirizzo pubblico Bitcoin.

Si parte dalla chiave pubblica.

Prima viene effettuata una funzione di hash SHA256.

Poi viene effettuata una altra funzione di hash RIPEMD160 per trovare il doppio digest della chiave
pubblica.

Ad arricchire questo risultato viene aggiunto un checksum a 32 bit generato da un doppio hash SHA256
della stringa ottenuta in precedenza. Al risultato iniziale ottenuto viene aggiunta una stringa iniziale 0x00.
La codifica utilizzata è base 58 per evitare caratteri che possono essere indistinguibili tra loro come
omaiuscola e zero oppure i maiuscola ed l minuscola.

Quindi, un primo doppio hashing, SHA256 – RIPEMD160 produce il contenuto dell’indirizzo pubblico,
mentre un secondo doppio hashing su questa stringa, ottenuta applicando due volte SHA256, produce un
checksum, cioè una stringa di controllo di integrità e, questa sarà rappresenta in bit o byte e vi sarà
preposta la stringa 0x00.

35. Spiegare cosa è un miner in una rete blockchain e quali funzioni svolge.

Per registrare una transazione in un blocco della catena è necessario un lavoro computazionale e questo
lavoro spetta al miner.

Un miner è semplicemente un nodo della rete che accetta la sfida crittografica e che si chiama proof of
work e richiede una enorme spesa computazionale. Nel caso riesca a trovare una soluzione riceve una
ricompensa, ma nel caso in cui non riesca avrà sprecato tempo di calcolo, risorse ed elettricità.

Ciò che spinge i minatori ad accettare la sfda è la ricompensa che inizialmente era molto alta (50 bitcoin)
ma fra un centinato di anni sarà pari ad un satoshi, che è l’equivalemte di un centesimo di euro.

36. Descrivere il concetto di proof of stake.

Il proof of stake è una alternativa al proof of work. In questo caso il minatore che valida il blocco non è colui
che vince una sfida crittografica ma è scelto a caso secondo un algoritmo casuale. Ovviamente la scelta
viene fatta tra i miners che hanno un minimo di criptovaluta a disposizione. A questo punto se gli utemti
abilitati al mining superano una certa soglia di criptovaluta non c’è bisogno di dimostrare nulla con la proof
of work e possono essere scelti a caso con una rotazione di tipo round-robin.

6
37. Descrivere l'attacco 50%+1 a una blockchain

E’ un attacco che mira ad ottenere più del 50% della potenza di calcolo della rete. In questo modo
l’attaccante è capace di vincere tutte le sfide crittografiche e falsificare le transazioni.

38. Spiegare la differenza tra ETH e ETC, rimarcando i motivi della scissione.

Nel 2016, un attacco alla rete Ethereum ha provocato il dirottamento di una grande quantità di Ether e
questo ha portato la comunità a dividersi in due grandi gruppi: ETH (il nuovo Ethereum) e ETC (Ethereum
classico).

ETH ha avuto maggior successo, ha deciso di cancellare l’attacco, ripristinando una versione precedente
all’attacco e ricominciare a minare la blockchain dalla transazione precedente l’attacco.

Il gruppo che si è unito a ETC ha preferito continuare a minare la blockchain che ha subito l’attacco.

39. Definire uno smart contract.

E’ un algoritmo depositato su una blockchain. Il fatto che sia un contratto o meno non è rilevante, ma è
importante che sia immutabile ed abbracci il concetto di non ripudio. Proprio pe rottenere queste
caratteristiche uno smart contract viene registrato, validato e salvato in una blockchain in modo che la sua
validità possa essere incontestabile ed opponibile a terzi.

40. Definisci il Gas

Il Gas quantifica il lavoro computazionale richiesto da una transazione o da uno smart contract.

Il Gas non si può scambiare ma ouò essere offerto/venduto. Un miner può vendere la propria unità di Gas
(fissando un Gas Price) richiedendo una quantità di Ether (criptovaluta) per eseguire algoritmi.

41. Descrivere l'algoritmo di Shor e spiegare quale implicazioni avrà sui crittosistemi moderni.

L’algoritmo di Shor è in grado di fattorizzare un numero intero in un tempo con ha complessità polinomiale
e non esponenziale (come avviene per i computer classici). La difficoltà di fattorizzare grandi numeri interi è
alla base della sicurezza di molti sistemi crittografici tra cui RSA e quindi il fatto che la complessità passi da
esponenziale a polinomiale comporta un crollo nella sicurezza degli stessi.

42. Descrivere l'algoritmo di Grover e le sue implicazioni nel panorama crittografico moderno.

L’algoritmo di Grover fa riferimento alla ricerca di un elemento all’interno di una lista di lunghezza n. Data
una lista di n elementi, il tempo impiegato per trovare un elemento sfruttando questo algoritmo è pari alla
radice di n, a differenza di un computer classico per il quali è proporzionale ad n.

A differenza dell’algoritmo di Shor, un sistema che soffre di questa debolezza può essere riparato elevando
al quadrato il numero di casi possibili (numero di chiavi, possibilità di attacchi, etc)

43. Definire un'isogenia.

E’ una trasformazione di gruppo ssuriettiva ma non necessariamente invertibile tra due curve ellittiche.
Questo tipo di crittografia resiste agli attacchi dei quantum computer.

44. Menzionare almeno quattro sistemi di crittografia post quantum.

 Crittografia basata sui reticoli


 Crittografia basata sui codici
 Sistemi multivariati
 Isogenie
7
45. Nel paradigma di sicurezza computazionale, si assume di conoscere tre quantità legate a un
attaccante. Quali sono?

1. il miglior algoritmo che un attaccante può usare per effettuare un attacco


2. la capacità di calcolo di cui un attaccante può disporre
3. la complessità di attacco per un attaccante

46. Definire il tasso di equivocazione di Eve, con riferimento alla sicurezza a livello fisico.

Il tasso di equivocazione di Eve è l’entropia sulla sorgente S.

In pratica è l’incertezza che Eve ha in merito alla sorgente S dopo aver osservato Z (cioè la verisone alterata
dal rumore del messaggio) e aver normalizzato rispetto alla lunghezza del vettore stesso Z.

Proprio il rumore fa sorgere dubbi in merito alla sorgente.

Ci sono due condizioni di sicurezza: weak secrecy e strong secrecy.

La prima ci dice che per messaggi infinitamente lunghi un attaccante ha informazioni sulla sorgente.

La seconda è una condizione più forte e indica che le informazioni sulla sorgente tendono a zero anche in
termini assoluti.

47. Definire la Secrecy capacity, con riferimento alla sicurezza a livello fisico.

La secrecy capacity è la capacità di veicolare informazioni segreta. In un canale AWGN (che è il più semplice
canale Wiretap) la secrecy capacity è uguale alla differenza tra le capacità dei canali di Bob e Eve può essere
espressa come:

Sc = Cb -Ce = log2 (1+SNRb/1+SNRe) dove SNRb indica il rapporto segnale/rumore di Bob e SNRe indica il
rapporto segnale/rumore di Eve.

Questo indica che si può avere sicurezza se SNRb è maggiore di SNRe.

48. Definire il security gap, con riferimento alla sicurezza a livello fisico.

Definito come differenza di qualità tra i canali di Bob e Eve necessaria a raggiungere un livello di sicurezza
fisica accettabili in termini di tasso di errore. Deve essere il più piccolo possibile.

Può essere calcolato facilmente dalla curva di probabilità di errore in funzione del SNR.

Nel grafico la differenza tra SNRb e SNRe è proprio il security gap.

Il security gap è migliore quanto più è piccolo. Infatti quando è basso il canale di Bob è di poco migliore a
quello di Eve e questo implica una curva molto ripida ed il raggiungimento della condizione di sicurezza.

8
9

Potrebbero piacerti anche