Chapter2-Criptography Flashcards

1
Q

Cos’è il cifrario di Cesare?

A

In crittografia, il cifrario di Cesare è uno dei più antichi algoritmi crittografici di cui si abbia traccia storica. È un cifrario a sostituzione monoalfabetica, in cui ogni lettera del
testo in chiaro è sostituita, nel testo cifrato, dalla lettera che si trova un certo numero di posizioni dopo nell’ alfabeto. Questi tipi di cifrari sono detti anche cifrari a sostituzione o cifrari a scorrimento a causa del loro modo di operare: la sostituzione avviene lettera per lettera, scorrendo il testo dall’inizio alla fine. Il cifrario di Cesare è vulnerabile ad attacchi:
- critto-analitici: guardo le frequenze con cui capitano le parole nel testo;
- brute force: provo tutte le possibili chiavi e decifro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cosa sono DES, 3DES ed AES?

A

Sono 3 algoritmi di cifratura/decifratura a chiave asimmetrica:

  • DES(Data Encryption Standard): algoritmo che prende un testo in chiaro a 64 bit, una chiave di 56 bit, per produrre poi un testo cifrato di 64 bit. I due aspetti più critici di questo standard riguardano l’algoritmo in sé e la dimensione della chiave (troppo piccola). Al giorno d’oggi un supercomputer può violarlo in qualche ora.
  • 3DES: standard che applica l’algoritmo DES 3 volte consecutive. Utilizza 2 o 3 chiavi, per una dimensione totale di 112 o 168 bit. Si tratta di un approccio molto più sicuro del singolo DES, però è 3 volte più lento e rimane il problema della lunghezza dei blocchi (64 bit).
  • AES(Advanced encryption standard): utilizza blocchi a 128 bit e chiavi a 128, 192, 256 bit, rappresenta l’approccio più valido, sicuro ed efficiente, per ora…
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quali sono i principali vantaggi/svantaggi di DES?

A

L’algoritmo DES ha il grande vantaggio di essere stato tra i primi cifrari a essere stato adottato in grande scala, quindi ha subito molta più attenzione dai ricercatori rispetto a tutti gli altri cifrari, attenzioni che non hanno mai trovato riscontro in gravi mancanze in termini di architettura. I problemi di DES sono legati all’algoritmo utilizzato e alla lunghezza delle chiavi a 56 bit.
Infatti si è dimostrato negli anni che con l’attuale potenza computazionale DES è rompibile utilizzando brute force in un supercomputer anche in un’ora (per un pc normale occorrerebbe circa un anno).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Come funziona la crittografia simmetrica?

A

La crittografia simmetrica è una tecnica crittografica in cui viene utilizzata la stessa chiave per cifrare che per decifrare i dati, condivisa fra mittente e destinatario. L’aspetto chiave di questa tecnica è l’efficienza, visto che i tempi sono decisamente inferiori rispetto alla crittografia a chiave pubblica. L’aspetto negativo invece comporta la necessità di avere un canale sicuro per la condivisione della chiave segreta, perché nelle mani sbagliate compromette il sistema.
Andando nello specifico, è composta da più ingredienti:
- plaintext: Il messaggio in chiaro che il mittente A desidera spedire al destinatario B;
- Ciphertext: Messaggio ottenuto applicando una funzione che ha in input la chiave segreta ed il plaintext. Per un determinato messaggio si devono ottenere due ciphertext diversi utilizzando chiavi diverse;
- Encryption algorithm: è l’algoritmo utilizzato per la codifica del plaintext in ciphertext;
- Decryption algorithm: è l’algoritmo utilizzato per la codifica del ciphertext in plaintext.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cos’è una public key certificate?

A

E’ una chiave pubblica certificata da un determinato ente detto certification authority.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cos’è il Message Authentication Code (MAC)? A cosa serve?

A

Il Message Authentication Code (MAC) è una tecnica crittografica utilizzata per verificare l’integrità e l’autenticità di un messaggio o di un insieme di dati.
E’ un codice generato da una chiave segreta e poi aggiunto a un messaggio, in questo caso si presuppone che entrambe le figure nella comunicazione di questo messaggio siano a conoscenza della chiave segreta. A destinazione, al corpo del messaggio vengono effettuate le stesse operazioni che sono state effettuate in origine, e viene calcolato un nuovo MAC, che poi
viene confrontato con quello allegato al messaggio, allo scopo di verificarne l’autenticità. Il MAC consente di autenticare chi manda il messaggio, perché è l’unico a conoscere la chiave segreta e consente di stabilire se il messaggio è stato alterato. Se il messaggio
include anche un sequence number, il ricevente è sicuro del corretto ordine dei messaggi. Il MAC NON fornisce la confidenzialità del messaggio, perché utilizzando solamente il MAC il messaggio non viene cifrato. Un modo di generare il MAC è attraverso DES, oppure utilizzando una funzione di hash.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Che proprietà deve avere una secure hash function?

A

È una funzione che dato un input di una qualsiasi dimensione ritorna un output di dimensione fissa. Si dice one way perché deve essere impossibile dato un output risalire all’input. Per essere sicura una funzione di hash H deve essere:
Per essere sicura una funzione di Hash H deve rispettare queste caratteristiche:
- H può essere applicata ad un input di qualsiasi dimensione;
- H produce un output di dimensione finita e fissa;
- Per un output prodotto da H è computazionalmente impossibile ricavare l’input.
- Dati due blocchi x e y tali che x != y, è impossibile ottenere H(x) === H(y). La proprietà prende il nome di Weak Collision Resistant.
- Data H è computazionalmente impossibile trovare una coppia x e y tali che H(x) === H(y). Questa proprietà prende il nome di Strong Collision Resistant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quali sono gli svantaggi di 3DES?

A

Lentezza (3 volte più lento di DES) e la lunghezza dei blocchi (rimangono a 64 bit).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quali sono gli strumenti utili per attaccare la crittografia simmetrica?

A

Sono principalmente 2, che sfruttano approcci opposti:
- Brute-force: tento di decifrare il messaggio utilizzando tutte le possibili chiavi, in media occorre provarne almeno la metà, quindi diventa inutile per chiavi di dimensione troppo elevata. Generalmente però, prima di tentare con tutte le possibili combinazioni di caratteri, provo con tutte le parole di un dizionario;
- Critto-analitico: lo scopo è di individuare le vulnerabilità dell’algoritmo di cifratura/decifratura, così da poter decriptare i testi cifrati. Se l’attacco ha successo, sono vulnerabili tutti i messaggi mandati in passato e in futuro con quell’algoritmo.

In molti casi viene sfruttato prima l’approccio brute-force, per diminuire il numero di combinazioni possibili (escludendo quelle che non hanno dato successo), solo dopo si applica l’approccio critto-analitico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quante chiavi utilizza 3DES?

A

Utilizza 2 o 3 chiavi, per una lunghezza totale di 112 o 168 bit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cos’è l’approccio Keyed Hash MAC? Come funziona?

A

Si tratta di un’approccio in cui viene inserito un secret value in testa ed in coda al messaggio. Il messaggio modificato viene dato in pasto ad una funzione hash che ritornerà un digest, che verrà poi integrato al messaggio originale (senza secret value) prima di inviarlo. Il destinatario, similmente al mittente, essendo a conoscenza del secret value ricalcola il digest, verificando che sia il messaggio sia effettivamente autentico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Cos’è OpenSSL?

A

OpenSSL è un’implementazione open source dei protocollo SSL e TSL, disponibile per la maggior parte di sistemi unix-like. Gli algoritmi implementati in questo protocollo sono cifrari, funzioni crittografiche come MD5, MD2 ecc, crittografia a chiave pubblica,
autenticazione di messaggi e certificati

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cosa significa processo Stream Cipher? Cosa cambia dal Block Cipher? Quando si usa uno a discapito dell’altro?

A

Uno stream cipher viene utilizzato nel caso in cui occorra processare l’input in maniera continuativa, un byte alla volta (comunicazione in streaming o trasmissione di dati in tempo reale). Differisce dal block cipher in quanto esso analizza in input un blocco alla volta e restituisce in output un blocco per ogni blocco di input (più lento ma più sicuro, quindi più indicato per applicazioni che richiedono una maggiore protezione di dati, come la critttografia di dati o protezione di dati sensibili).
Il block cipher può inoltre riutilizzare le chiavi (generalmente lo fa), può richiedere del padding (pessimo per l’efficienza) ed è più comune rispetto allo stream. Come controparte, lo stream cipher è più efficiente ed utilizza meno codice (meno complesso).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cos’è una one-way hash function?

A

È una funzione che dato un input di una qualsiasi dimensione ritorna un output di dimensione fissa. Si dice one way perché deve essere impossibile dato un output risalire all’input. Per essere sicura una funzione di hash H deve essere:
Per essere sicura una funzione di Hash H deve rispettare queste caratteristiche:

  • H può essere applicata ad un input di qualsiasi dimensione;
  • H produce un output di dimensione finita e fissa;
  • Per un output prodotto da H è computazionalmente impossibile ricavare l’input.
  • Dati due blocchi x e y tali che x != y, è impossibile ottenere H(x) === H(y). La proprietà prende il nome di Weak Collision Resistant.
  • Data H è computazionalmente impossibile trovare una coppia x e y tali che H(x) === H(y). Questa proprietà prende il nome di Strong Collision Resistant.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quali sono gli algoritmi di crittografia asimmetrica più utilizzati?

A
  • RSA(Rivest, Shamir, Adleman): RSA si basa sulla difficoltà di fattorizzare grandi numeri interi, il che rende computazionalmente difficile per un attaccante ricostruire la chiave privata a partire dalla chiave pubblica. Questa caratteristica rende RSA un algoritmo sicuro per la comunicazione crittografata.
  • Diffie-Hellman key agreement: l’algoritmo si basa sul dare la possibilità a due utenti di raggiungere un accordo su un segreto condiviso che poi funge da chiave per la crittografia asimmetrica, l’algoritmo quindi si limita allo scambio di chiavi;
  • Digital Signature Standard: fa uso di SHA-1 e presenta il DSA (digital signature algorithm);
  • Elliptic curve cryptografy: questo sistema è diventato il maggior concorrente di RSA, pare che esso fornisca una sicurezza pari ad RSA ma con dimensioni in bit minori. Tuttavia ancora la ricerca da fare su questo metodo è tanta per cui il trust rivolto verso questo algoritmo è ancora minore rispetto a quello per RSA.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cosa significa criptare con la modalità ECB? Ha svantaggi?

A

ECB mode è una modalità in cui il messaggio viene cifrato in molteplici blocchi. Per ogni blocco si utilizza una stessa chiave. Un plaintext è gestito 64 o 128 bit alla volta e se necessario, viene aggiunto il padding.
I 3 aspetti fondamentali sono:
- performance: questa tecnica consente la parallelizzazione, di conseguenza è molto efficiente;
- l’utilizzo della stessa chiave su molteplici blocchi è molto pericoloso, quindi assolutamente da evitare per messaggi di lunghezza troppo grande;
- diffusion problem: blocchi identici di testo in chiaro vengono cifrati nello stesso blocco di testo cifrato.

17
Q

Descrivi com’è possibile spedire una email signed ed encrypted ed il contesto teorico che permette di farlo

A

Bisogna applicare in sequenza sia il processo per applicare firma digitale sia quello per garantire confidenzialità attraverso crittografia a chiave privata o pubblica.

18
Q

Che problemi ha la crittografia asimmetrica?

A

I problemi riguardano la mancata non ripudiabilità (il mittente si finge un altro). Si può porre rimedio attraverso l’uso della firma digitale

19
Q

Cos’è un digital envelop? Quando viene utilizzato?

A

Si tratta di una tecnica che può essere utilizzata per proteggere un messaggio senza la necessità di fare prima in modo che mittente e destinatario abbiano la stessa chiave segreta. La tecnologia dunque è indicata come una busta digitale, che è l’equivalente di una busta sigillata. Questa tecnologia protegge il messaggio senza il bisogno che il sender ed il receiver abbiamo la stessa secret key. Equivale ad una busta sigillata contenente un messaggio non firmato. Bob:
1) prepara il messaggio;
2) genera una random key che verrà usata 1 sola volta (one-time-key);
3) cripta il messaggio con la random key;
4) fa l’encrypt della random key usando la public key di Alice;
5) attacca la one-time key criptata al messaggio anch’esso criptato e spedisce ad Alice.

20
Q

Cos’è un message digest? Se usiamo un sistema a chiave pubblica garantiamo un’altra cosa oltre all’autenticità, che cosa?

A

Un message digest è l’output (a dimensione fissa) di una one way hash function, che in input ha ricevuto del plaintext (il messaggio da inviare). Il message digest viene poi aggiunto al messaggio originale, in seguito viene inviato, questo serve per garantire l’autenticità (applicando la firma digitale ancora meglio). Oltre ad essa è possibile garantire l’integrità del messaggio, anche la più piccola modifica produce un risultato di digest completamente diverso.

21
Q

Disegno di invio di un messaggio con crittografia a chiave asimmetrica, il messaggio viene crittografato con la chiave pubblica e decrittografato con quella privata. Descrivere dettagliatamente cosa rappresenta lo schema sopra disegnato e quali sono le applicazioni possibili.

A

Lo schema rappresenta il meccanismo di cifratura a doppia chiave, o crittografia asimmetrica o crittografia a chiave pubblica, in cui bob vuole inviare un messaggio ad alice e lo fa passando ad un algoritmo di crittazione il testo in chiaro e la chiave pubblica
di alice e trasmettendo il tutto ad alice, che darà tutto quanto in pasto ad un algoritmo di decifratura assieme alla sua chiave privata, in modo tale da ottenere il testo in chiaro originale. Le applicazioni possibili sono molteplici, alcuni esempi possono essere nel traffico di posta elettronica, nelle firme digitali, nei protocolli crittografici come SSL/TSL, SSH ed HTTPS. In questo schema viene garantita la confidenzialità del messaggio, ma non l’integrità.

22
Q

Come AES è migliore di 3DES?

A

AES supera 3DES in quanto ha una dimensione dei blocchi a 128 bit (contro 64), dimensione della chiave a 128, 192 o 256 bit (contro 112 o 168 di 3DES) e la cifratura avviene recentemente in hardware.

23
Q

Come può essere usata una Hash Function oltre per garantire autenticità e firma digitale?

A

Gli algoritmi Hash sono largamente utilizzati per mantenere una copia non leggibile delle chiavi utilizzate per autenticare gli utenti ad un sistema (sul db salvo solo il digest). Nel caso della intrusion detection, creando un hash per ogni file presente in un file system, un potenziale attaccante non potrebbe modificare i file presenti perché dovrebbe calcolare lo hash e lo hash calcolato dovrebbe essere uguale a quello precedentemente creato, che con la resistenza alla pre-immagine delle funzioni di hash è (probabilisticamente) impossibile.

24
Q

Cos’è la crittografia asimmetrica? Come funziona?

A

La crittografia asimmetrica (o a chiave pubblica) utilizza due chiavi, ogni utente avrà una chiave privata ed una pubblica.
Se A vuole inviare un messaggio a B, di base si può operare in due modi:
- A cifra il proprio messaggio con la propria chiave privata e B lo potrà decifrare con la chiave pubblica di A. In questo caso però non viene garantita la confidenzialità, dal momento che la chiave è pubblica (viene garantita autenticità ed integrità);
- A cifra il proprio messaggio con la chiave pubblica di B, in modo che, quando B riceverà il messaggio potrà decifrare con la propria chiave privata. In questo modo verrà garantita la confidenzialità.

La problematica di base della crittografia a chiave pubblica è legata al fatto che non è possibile garantire l’autenticità della chiave pubblica (mi posso fingere un altro). A questo proposito è possibile utilizzare la firma digitale, certificata da terzi (certification authority).

25
Q

Che proprietà ha generalmente un algoritmo di crittografia asimmetrica?

A

Un algoritmo di crittografia asimmetrica garantisce:
- confidenzialità, se cifro con la chiave pubblica;
- integrità dei dati (data integrity);
- autenticità (cifro con chiave privata, altrimenti si sfrutta la firma digitale)

26
Q

Perché non è generalmente una buona idea usare la crittografia simmetrica per garantire l’autenticità? Quali sono i problemi?

A
  • Condivisione della chiave: Dal momento che la comunicazione richiede un’unica chiave condivisa, è difficile garantirne l’autenticità in quanto se un attaccante riesce ad ottenerla, può crittografare i dati e falsificare la loro origine;
  • Non ripudiabilità: Dal momento che la stessa chiave è condivisa fra più utenti, una delle due entità può negare di essere l’autore del messaggio.

Per questi due motivi, si preferisce la crittografia asimmetrica per preservare l’autenticità dei dati, che permette inoltre di fornire servizi tra cui la firma digitale.

27
Q

Come si attacca una Hash Function? Utilizzando un attacco brute in base a cosa varia il tempo per avere successo?*

A

Una hash function la si può attaccare attraverso l’approccio:
- critto-analitico: il quale espone le debolezze logiche dell’algoritmo;
- brute-force: la qualità della funzione H dipende dalla lunghezza dell’output.

Il tempo varia in funzione del numero di possibili input.

28
Q

Descrivere passo a passo il procedimento per creare una email solo signed.

A

Supponiamo che (A) voglia mandare un messaggio a (B) e che non gli interessi la confidenzialità, vuole solamente che (B) sappia che il messaggio è sicuramente da parte sua e che non è stato modificato per strada. (A) genera un digest utilizzando una funzione hash a sua scelta a partire dal messaggio. Una volta ottenuto lo fornisce come input insieme alla sua chiave privata ad un algoritmo di creazione per la firma digitale. L’output è un digest S che deve essere attaccato in fondo
al messaggio quando viene inviato. Quando (B) riceve il messaggio può capire se è stato inviato da (A) creando l’hash a partire dal messaggio e fornendo hash, signature e chiave pubblica di (A) all’algoritmo di verifica.

29
Q

Cosa sono i numeri casuali? E i numeri pseudocasuali? Esistono modi per ottenere numeri davvero casuali?

A

I numeri casuali sono numeri che soddisfano i criteri di randomness, cioè:

  • Distribuzione uniforme (uniform distribution): la distribuzione dei numeri nella sequenza dovrebbe essere uniforme; cioè, la frequenza di occorrenza di ciascuno dei numeri dovrebbe essere approssimativamente la stessa;
  • Indipendenza (independence): nessun valore nella sequenza può essere dedotto dagli altri
  • I numeri detti pseudo randomici sono numeri generati da algoritmi deterministici che quindi non sono statisticamente randomici, tuttavia soddisfano la maggior parte di test di randomicità e per tanto sono applicati in ambito crittografico. Per ottenere numeri davvero casuali è necessario analizzare fonti non deterministiche come fenomeni naturali non misurabili da nessun’altro.
30
Q

Come avviene la signature d’un public key certificate?

A

In ordine

1) Il client prepara un certificato non firmato, che include lo user id e la chiave pubblica, forniti dallo user;
2) l’utente fornisce il certificato appena creato all’ente di certificazione attraverso un canale sicuro;
3) l’ente crea la firma tramite una funzione hash a partire dal certificato unsigned, cifrando il digest con la propria chiave privata;
4) l’ente allega la firma al certificato per renderlo signed (appone la firma);
5) l’ente ritorna il certificato firmato all’utente

Ora l’utente può inviare ad altri la sua chiave pubblica, avendo così l’authenticity garantita.

31
Q

A cosa serve l’atomicità nella crittografia asimmetrica? Quale operazione deve per forza essere atomica?

A

L’atomicità serve solo nella generazione delle due chiavi (privata e pubblica). Dato che le due chiavi dipendono così tanto una dall’altra è necessario che vengano create insieme.
chatgpt:
Quando si crea una firma digitale, l’operazione crittografica deve essere eseguita sull’intero messaggio che si desidera firmare. Non è possibile firmare solo una parte del messaggio o applicare la firma in modo incrementale. L’operazione di firma digitale utilizza l’algoritmo di hash del messaggio per creare un riepilogo crittografico del messaggio stesso, e quindi applica l’algoritmo di firma per generare la firma. L’intero processo deve essere eseguito come un’operazione indivisibile per garantire l’integrità e l’autenticità della firma.

32
Q

Che algoritmi vengono usati per generare Hash?

A

Vengono utilizzati gli Secure Hash Algorithms (SHA). Il più recente è SHA-3, che è uscito nel 2015 e cambia la struttura sotto dato che cominciava ad essere un po’ vecchia.

Risposta completa:

Vengono usati algoritmi chiamati Secure Hash Algorithm (SHA). Gli algoritmi SHA sono stati inventati dal NIST. Il primo algoritmo si chiamava solo SHA, poi han trovato vulnerabilità e si è digievoluto in SHA-1. SHA-1 produce hash value di 160 bits. Il NIST
poi ha deciso di creare anche le versioni a 256, 384, e 512 bits, conosciuti oggi come SHA-256, SHA-384, SHA-512. Questo nuovo gruppetto allegro prende il nome di SHA-2, hanno sotto la stessa struttura algoritmica e matematica di SHA-1. SHA-3 è uscito nel
2015 e cambia la struttura sotto dato che cominciava a essere un po’ vecchia.

33
Q

Cosa cambia tra MAC e One Way Hash function per quanto riguarda l’autenticità?

A

MAC utilizza una One Way Hash function per generare il digest. Una one way hash function non richiede una chiave come input ma solo del plaintext. MAC si occupa di applicare un qualche tipo di crittografia sul digest per garantire l’autenticità.

34
Q

Cos’è la firma digitale (Digital Signature)? Come funziona? Cosa garantisce(3 cose)? Cosa NON garantisce?

A

La firma digitale, durante la comunicazione fra mittente e destinatario è utilizzata sia per autenticare la fonte che l’integrità dei dati. Si ottiene criptando un codice hash con una chiave privata. Garantisce:
- che la fonte sia sicura;
- che i dati non siano stati alterati;
- la non-ripudiabilità dei dati da parte del mittente (non può giustificarsi con “eh ma non l’ho mandato io”)
Non garantisce confidendentiality.

35
Q

Cos’è e come funziona un cifrario? Alcuni esempi?

A

Un cifrario, nella crittografia, è un algoritmo utilizzato per eseguire operazioni o una serie di passaggi ben definiti che possono essere seguiti come una procedura, volte a rendere
oscuro, ossia semanticamente non leggibile, un testo di un messaggio in chiaro (plain text) o, al contrario, al ripristino in chiaro di un messaggio precedentemente cifrato.
Con la locuzione “codice segreto” si intende lo stesso che “cifrario”, mentre le operazioni che richiedono l’utilizzo di tale codice sono dette cifratura.

36
Q

Cos’è una CA (Certification Authority)?

A

La CA è un ente che si occupa di certificazione, un’entità trusted dalla comunità che certifica l’appartenenza di una chiave pubblica ad un determinato utente, che successivamente potrà condividerla essendo certo che non ci saranno furti d’identità.

37
Q

Cos’è PGP? Per cosa viene utilizzato?

A

Consente ad un utente di generare una chiave da una password per poi utilizzarla per cifrare i file selezionati sull’hard disk. Per accedere ad un file da quel momento l’utente dovrà immettere la password, che non sarà mai salvata da pgp.