Corso di Laurea Specialistica in Ingegneria Informatica
Corso di Reti di Calcolatori II
Docente: Simon Pietro [email protected]
Sicurezza di rete
Parte I
Nota per l’utilizzo:Abbiamo preparato queste slide con l’intenzione di renderle disponibili a tutti (professori, studenti, lettori). Sono in formato PowerPoint in modo
che voi possiate aggiungere e cancellare slide (compresa questa) o modificarne il contenuto in base alle vostre esigenze.
Come potete facilmente immaginare, da parte nostra abbiamo fatto un sacco di lavoro. In cambio, vi chiediamo solo di rispettare le seguenti
condizioni:
Nota Nota didi copyright per le slide copyright per le slide didi Kurose/RossKurose/Ross
6-2
condizioni:� se utilizzate queste slide (ad esempio, in aula) in una forma
sostanzialmente inalterata, fate riferimento alla fonte (dopo tutto, ci piacerebbe che la gente usasse il nostro libro!)
� se rendete disponibili queste slide in una forma sostanzialmente inalterata su un sito web, indicate che si tratta di un adattamento (o che sono identiche) delle nostre slide, e inserite la nota relativa al copyright.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2007J.F Kurose and K.W. Ross, All Rights Reserved
Reti di calcolatori e Internet: Un approccio top-down
4a edizione Jim Kurose, Keith Ross
Pearson Paravia Bruno Mondadori Spa©2008
Sicurezza nella comunicazioneSicurezza nella comunicazione
Riservatezza: solo mittente e destinatario devono comprendere il contenuto del messaggio�Inviare messaggi cifrati�Ricevere il codice di decifratura
Autenticazione: mittente e destinatario devono essere sicuri della loro identità loro identità
Integrità del messaggio: mittente e destinatario devono essere sicuri che il contenuto non subisca alterazioni durante la trasmissione (per cause fortuite o per manipolazioni)
Disponibilità e controllo dell’accesso: un servizio deve essere accessibile a chi è legittimamente autorizzato
Mittente, ricevente e Mittente, ricevente e intrusointruso
� Scenario ben noto nel mondo della sicurezza di rete� Martina e Alice vogliono comunicare in modo sicuro� Tommaso (l’intruso) può intercettare, rimuovere, aggiungere
messaggi o modificare il loro contenuto
messaggi di Alice Martina
Mittentesicuro
Riceventesicuro
canale messaggi di controllo e dati
dati dati
Alice Martina
Tommaso
PersonaggiPersonaggi eded interpretiinterpreti……
Nel mondo delle reti, Alice e Martina possono essere:
�browser/server Web durante una transazione elettronica (es. un acquisto on-line)
�client/server di banche on-line�client/server di banche on-line�server DNS�sistemi che si scambiano tabelle
d’instradamento�altro…
D: Cosa può fare un nemico?R: Molto!
�spiare: intercettare i messaggi
�aggiungere messaggi e sovraccaricare il sistema
I nemici della reteI nemici della rete
�impersonare un altro soggetto
�dirottare una sessione in corso e sostituirsi al mittente o al destinatario
�negare il servizio
Principi di crittografiaPrincipi di crittografia
Testo in chiaro
Testoin chiaro
Testo cifrato
KA
Algoritmodi cifratura
Algoritmodi decifratura
KM
Sistemi a chiave simmetrica: le chiavi del mittente e del destinatario sono identiche
Sistemi a chiave pubblica: la chiave di cifratura è pubblica; la chiave di decifratura è privata
Crittografia a chiave simmetrica Crittografia a chiave simmetrica
Algoritmo di cifratura: sostituzione di un messaggio in chiaro con uno codificato�Cifrario monoalfabetico: sostituzione di una lettera con un’altra
Lettere in chiaro: abcdefghijklmnopqrstuvwxyz
Lettere cifrate: mnbvcxzasdfghjklpoiuytrewqLettere cifrate: mnbvcxzasdfghjklpoiuytrewq
Testo in chiaro: marty. i love you. alice
Testo cifrato: hmouw. s gktc wky. mgsbc
esempio
D: Come violare questo sistema di cifratura?:� con un attacco a “forza bruta” (ma quanto bruta?)� altri sistemi?
CrittografiaCrittografia a a chiavechiave simmetricasimmetrica: : attacchiattacchi
• Attacco al testo cifrato:• l’intruso ha accesso al testo intercettato, senza alcuna
indicazione sul contenuto del messaggio• unico supporto: analisi statistica
• Attacco con informazioni sul testo in chiaro:• l’intruso conosce alcuni possibili accoppiamenti “testo in • l’intruso conosce alcuni possibili accoppiamenti “testo in
chiaro/testo cifrato”:• nomi dei corrispondenti, registrazione comunicazioni
precedenti, minuta di un messaggio scritto “in chiaro” da una delle parti
• Attacco con testo in chiaro scelto:• l’intruso è in grado di ottenere la forma cifrata di un
messaggio a lui noto
Cifratura Cifratura polialfabeticapolialfabetica
• Un’evoluzione della cifratura con cifrario monoalfabetico:• le varie occorrenze di una stessa lettera vengono
codificate in modo diverso a seconda della posizione in cui appaiono nel messaggio in chiaroposizione in cui appaiono nel messaggio in chiaro
Lettere in chiaro: abcdefghijklmnopqrstuvwxyzC1(k=5): fghijklmnopqrstuvwxyzabcde
C2(k=19): tuvwxyzabcdefghijklmnopqrs
Sequenza: C 1C2C2C1C2:
Testo in chiaro: “ciao martina”
Testo cifrato: “hbtt ffkmngf”
Testo in chiaroTesto cifrato
KA-M
Algoritmodi cifratura
Algoritmodi decifratura
KA-M
Testo in chiaromessaggio, m
K (m)A-MK (m)A-Mm = K ( )A-M
Crittografia a chiave simmetricaCrittografia a chiave simmetrica
Crittografia a chiave simmetrica: Alice e Martina utilizzano la stessa chiave: K
� es: la chiave è un pattern di sostituzione monoalfabetico� D: come fanno Martina e Alice a concordare la chiave?
A-M
K (m)A-M A-Mm = K ( )A-M
Cifrario a blocchiCifrario a blocchi
� Un bit in
Ingresso a 64 bit
T1
8bit
8 bit
8bit
8 bit
8bit
8 bit
8bit
8 bit
8bit
8 bit
8bit
8 bit
8bit
8 bit
8bit
8 bit
Mescolamento a 64bit
ciclo pern iterazioni
T2 T3 T4 T6T5 T7 T8
NB: Ti = tabella di 8x8 bit
� Un bit in ingresso condiziona otto bit in uscita
Mescolamento a 64bit
Risultato a 64 bit
� Passaggi multipli: ciascun bit in ingresso condiziona tutti i bit in uscita
� comuni cifrari a blocchi: DES, 3DES, AES
CipherCipher Block Block ChainingChaining
� Cifrario a blocchi: se un blocco in ingresso vieneripetuto, produrrà lo stesso testo cifrato
t=1 m(1) = “HTTP/1.1” blockcipher
c(1) = “k329aM02”
…
� Cipher block chaining:Effettua un’operazione di
t=17 m(17) = “HTTP/1.1” blockcipher
c(17) = “k329aM02”
Effettua un’operazione di XOR sull’i-esimo blocco in ingresso, m(i), con il precedente blocco di testo cifrato, c(i-1)� c(0) trasmesso in chiaro
al ricevente� Cosa accade nello
scenario “HTTP/1.1” qui a lato?
+
m(i)
c(i)
blockcipher
c(i-1)
CifrariCifrari del del tipotipo ‘‘SostituzioneSostituzione--PermutazionePermutazione’’
• Nel 1949 Claude Shannon introdusse l’idea delle retiSostituzione-Permutazione (S-P)
• Tali reti rappresentano la base dei moderni cifrari a blocchi
• Le reti S-P si fondano su due operazioni crittograficheprimitive: primitive: • sostituzione (S-box)• permutazione (P-box)
• Esse garantiscono “confusione” e “diffusione” del messaggio
ConfusioneConfusione e e DiffusioneDiffusione
• Il cifrario deve oscurare completamente le proprietàstatistiche del messaggio originario
• La proposta di Shannon (reti S-P) suggeriva dicombinare gli elementi del messaggio per ottenere:• Diffusione
• “spalma” la struttura statistica del testo in chiaro su blocchi di testo• “spalma” la struttura statistica del testo in chiaro su blocchi di testocifrato
• Confusione• rende quanto più complessa possibile la relazione tra testo cifrato e
chiave utilizzata per la cifratura
Il Il cifrariocifrario didi FeistelFeistel
• Horst Feistel inventò il cosiddetto cifrario di Feistel:• Basato sul concetto di cifrario a prodotto invertibile• Partiziona un blocco in ingresso in due metà
• L’elaborazione procede in molteplici round che:– Effettuano una sostituzione sulla parte sinistra dei dati– Applicano una specifica funzione (detta ‘round function’) alla parte destra del
blocco e ad un sottoinsieme della chiaveblocco e ad un sottoinsieme della chiave– Effettuano una permutazione mediante scambio delle due metà
• Realizza in maniera estremamente efficiente il concetto direte S-P introdotto da Shannon:
• Il medesimo hardware (o software) è utilizzato sia per la codifica cheper la decodifica
– L’inversione della procedura di codifca (e viceversa) richiede semplici modifichelegate alla modalità di utilizzo delle chiavi
DES: Data DES: Data EncryptionEncryption StandardStandard
� Standard codificato e aggiornato dall’U.S. National Bureau ofStandards [NIST 1993]
� Codifica il testo in chiaro in blocchi di 64 bit; la lunghezza effettiva della chiave è di 56 bit
� Ma quanto è sicuro DES?�DES Challenge: nel 1997, durante un concorso, la frase
“Strong cryptography makes the world a safer place” fu “Strong cryptography makes the world a safer place” fu individuata in meno di 4 mesi
� Come rendere DES più sicuro:�usare sequenzialmente tre chiavi (3DES, triplo DES)�utilizzare il concatenamento dei blocchi cifrati
Permutazione iniziale
16 iterazioni intermedie identiche, ciascuna con
Operazioni basedi DES
DES: schema logicoDES: schema logico
identiche, ciascuna con 48 bit differenti come chiave
Permutazione finale
�Il sostituto di DES, annunciato nel novembre 2001 dal NIST
�AES processa i dati in blocchi da 128 bit�Opera con chiavi a 128, 192 e 256 bit
Advanced Encryption StandardAdvanced Encryption Standard
�Si stima che un calcolatore possa individuare una chiave DES a 56 bit in 1 sec
�Per violare una chiave AES a 128 bit lo stesso computer impiegherebbe 149 miliardi di anni!
Crittografia a chiave pubblicaCrittografia a chiave pubblica
Crittografia a chiave simmetrica
� Richiede che mittente e destinatario condividano una
Crittografia a chiave pubblica
� approccio radicalmente diverso
� mittente e destinatario non condividono una chiave condividano una
chiave segreta� D: come si concorda la
chiave (specialmente se i due interlocutori non si sono mai “incontrati”)?
non condividono una chiave segreta
� la chiave di cifratura pubblica è nota a tutti
� la chiave di cifratura privata è nota solo al destinatario
Crittografia a chiave pubblicaCrittografia a chiave pubblica
Chiave pubblica
K M+
Chiave Privata
K M-
Messaggioin chiaro, m
Testo cifratoAlgoritmodi cifratura
Algoritmodi decifratura
Messaggioin chiaro, mK (m)M
+
m = K (K (m))M+
M-
K ( ) e K () tale che:M M
Requisiti:
1+ -
K (K (m)) = mMM- +
Algoritmi di cifratura a chiave pubblicaAlgoritmi di cifratura a chiave pubblica
data la chiave pubblica K , deve essere impossibile calcolare la chiave privata K
M
M2
Algoritmo RSA: acronimo derivato dal nome dei suoi autori:Rivest, Shamir e Adelson
K (K (m)) = mMM
+
-
RSA: scelta delle chiaviRSA: scelta delle chiavi
1. Scegliere due numeri primi di valore elevato: p, q.(es.: 1024 bit ciascuno)
2. Calcolare n = pq, z = (p-1)(q-1)
3. Scegliere e (con e < n) tale che non abbia fattori in 3. Scegliere e (con e < n) tale che non abbia fattori in comune con z (e, z sono “relativamente primi”)
4. Scegliere d tale che ed-1 sia esattamente divisibile per z.(in altre parole: ed mod z = 1 ).
5. La chiave pubblica è (n,e), quella privata è (n,d).
KM+ KM
-
RSA: cifratura, decifraturaRSA: cifratura, decifratura
0. Dati (n,e) e (n,d) calcolati come abbiamo appena visto,
1. Per la codifica, m, si calcolac = m mod ne
2. Per decifrare il messaggio ricevuto, c, si calcolam = c mod nd
m = (m mod n)e mod ndIncredibile!c
Un esempio di RSA:Un esempio di RSA:
Martina sceglie p=5, q=7. Poi n=35, z=24.e=5 (così e, z sono relativamente primi).d=29 (così ed-1 è esattam. divisibile per z).
lettera m me c = m mod nelettera m me c = m mod ne
l 12 1524832 17
c m = c mod nd17 481968572106750915091411825223071697 12
cd letteral
cifratura:
decifratura:
m = (m mod n)e mod nd
(m mod n)e mod n = m mod nd ed
Utilizziamo la teoria dei numeri: se p e q sono primie n = pq, allora:
x mod n = x mod ny y mod (p-1)(q-1)
RSA: pRSA: perchéerché
(m mod n) mod n = m mod n
= m mod ned mod (p-1)(q-1)
= m mod n1
= m
(usando la teoria dei numeri vista sopra)
(perché abbiamo scelto che e e d siano divisibili per(p-1)(q-1) con resto 1 )
RSA: un’altra importante proprietàRSA: un’altra importante proprietà
La seguente proprietà sarà molto utile più avanti:
K (K (m)) = mMM- +
K (K (m))MM+ -
=
Si usa prima la chiave pubblica, e poi quella privata
Si usa prima la chiave privata, e
poi quella pubblica
Il risultato non cambia!
Integrità del messaggioIntegrità del messaggio
Martina riceve un messaggio da Alice, e vuole esseresicura che:
� il messaggio provenga effettivamente da Alice � il messaggio non sia stato alterato lungo il camminoFunzioni hash crittografiche❒ prende in input m, produce un valore a lunghezza fissa, ❒ prende in input m, produce un valore a lunghezza fissa,
H(m)❍ Come nella checksum Internet
❒ Deve essere computazionalmente impossibile trovare due messaggi x e y tali che H(x) = H(y)
❍ o anche: dato m = H(x), (con x sconosciuta), è impossibiledeterminare x.
❍ nota: ciò non accade con la checksum Internet!
La checksum di Internet ha alcune delle proprietà di una funzione hash:➼ Crea sintesi di messaggi di lunghezza fissa (16 bit)➼ È molti-a-uno
Ma è relativamente semplice trovare altri dati che utilizzano la stessa checksum del messaggio originale:
La checksum La checksum didi InternetInternet
utilizzano la stessa checksum del messaggio originale:
I O U 10 0 . 99 B O B
49 4F 55 3130 30 2E 3939 42 D2 42
Messaggio Rappresentaz. ASCII
B2 C1 D2 AC
I O U 90 0 . 19 B O B
49 4F 55 3930 30 2E 3139 42 D2 42
B2 C1 D2 ACMessaggi diversima checksum identica!
Messaggio Rappresentaz. ASCII
Codice di autenticazione dei messaggiCodice di autenticazione dei messaggi
m
(messaggio)Internet
aggiungem H(m+s)
s
confronta
mH(.)
H(m+s)
(segreto condiviso)
m
s(segreto condiviso)
H(.) H(m+s)
aggiunge
H(m+s)
Codice di autenticazione dei Codice di autenticazione dei messaggimessaggi
�MD5 è molto usato per per l’hash deimessaggi (RFC 1321)� Calcola una hash di 128 bit con un processo a 4 fasi� Con una stringa x di 128 bit arbitrari, appare difficilecostruire un messaggio m il cui hash MD5 sia uguale a x• recentemente (2005) sono stati condotti attacchi contro MD5• recentemente (2005) sono stati condotti attacchi contro MD5
�È molto usato anche hash sicuro (SHA-1)� Standard statunitense� Produce una sintesi del messaggio di 160 bit
Firma digitaleFirma digitale
Tecnica crittografica analoga all’invio di una tradizionale “firma scritta”
�Il mittente (Martina) firma digitalmente un documento, stabilendo che lei è l’unica proprietaria/creatrice del messaggio.proprietaria/creatrice del messaggio.
�Verificabile e non falsificabile: il destinatario (Alice) può dimostrare che Martina e nessun altro (Alice inclusa) può aver firmato il documento.
Firma digitaleFirma digitale
Creazione della firma digitale di un messaggio, m:• Martina firma un messaggio, m, e lo codifica utilizzando la
sua chiave privata KM, creando così un messaggio “firmato”, KM(m)
Messaggio di Martina, m Chiave privataDi MartinaK M
- K M-(m)
--
Cara Alice,
scusami se non ho potuto scriverti prima ma...
Martina
Algoritmodi cifratura
Chiave privataDi MartinaK M
Messaggio di Martina, firmato (e criptato) con la sua chiave
privata
K M(m)
� Supponiamo che Alice riceva un messaggio m, con la firma digitale KM(m)
� Alice verifica che m è firmato da Martina applicando la chiave pubblica di Martina KM a KM(m) e controlla che KM(KM(m) ) = m.
� Se KM(KM(m) ) = m, chiunque abbia firmato m deve usare la chiave privata di Martina
- +-
-
+
+
-
Firma Firma digitaledigitale
Alice può verificare che:� Martina ha firmato m. � Nessun altro ha firmato m.� Martina ha firmato m e non m’.
Non-ripudio:� Alice può prendere m, e la firma KM(m) per dimostrare che
Martina ha firmato m.
-
Messaggiolungom
H: funzionehash H(m)
FirmaChiave
Martina invia un messaggio con la firma digitale:
Alice verifica la firma e l’integrità del messaggio con la firma digitale:
KM(H(m))-
msg digestcifrato
Messaggio
Firma Firma digitaledigitale = = messaggimessaggi digest digest firmatifirmati
Firmadigitale(cifrata)
Chiaveprivata
diMartina K M
-
+ KM(H(m))-
msg digestcifrato
Messaggiolungom
H: funzionehash
H(m)
Firma digitale
(decifrata)
H(m)
Chiavepubblica
diMartina K M
+
identico?
Certificazione della chiave pubblicaCertificazione della chiave pubblica
Problema per la crittografia a chiave pubblica:�Quando Alice riceve la chiave pubblica di
Martina (attraverso un dischetto, il sito web o via e-mail), come fa a sapere che è veramente la chiave pubblica di Martina e non, magari, la chiave pubblica di Martina e non, magari, quella di Tommaso?
Soluzione:�Autorità di certificazione (CA, certification
authority)
� Autorità di certificazione (CA): collega una chiave pubblica a una particolare entità, E.
� E (persona fisica, router) registra la sua chiave pubblica con CA.� E fornisce una “prova d’identità” a CA. � CA crea un certificato che collega E alla sua chiave pubblica.� Il certificato contiene la chiave pubblica di E con firma digitale di CA (CA dice
“questa è la chiave pubblica di E”)
CertificationCertification AuthorityAuthority
“questa è la chiave pubblica di E”)
Chiave pubblica di
Martina K M+
Martina identifica
l’informazione
Firmadigitale (cifrata)
Chiave privatadi CA K CA
-
K M+
Certificato per la chiave pubblica di Martina,
firmato da CA
� Quando Alice vuole la chiave pubblica di Martina:� prende il certificato di Martina� applica la chiave pubblica di CA al certificato pubblico di
Martina e ottiene la chiave pubblica di Martina
CertificationCertification Authority (Authority (contcont.).)
Chiave pubblica di
MartinaK M+
Firmadigitale(cifrata)
Chiave pubblica di
CA K CA+
K M+
Certificati digitali: strutturaCertificati digitali: struttura
Certificati digitali: struttura (Certificati digitali: struttura (contcont.).)
Obiettivo: Martina vuole che Alice le “dimostri” la sua identità
Protocollo ap1.0: Alice dice “Sono Alice”
Autenticazione Autenticazione endend--toto--endend
Scenario con fallimento??“Sono Alice”
Obiettivo: Martina vuole che Alice le “dimostri” la sua identità
Protocollo ap1.0: Alice dice “Sono Alice”
AutenticazioneAutenticazione
in una rete,Martina non può “vedere” Alice, e Tommaso può semplicemente
autenticarsi come Alice
“Sono Alice”
Autenticazione: un altro tentativoAutenticazione: un altro tentativo
Protocollo ap2.0:Se Alice avesse un indirizzo di rete conosciuto, potrebbe
spedire il messaggio “Sono Alice” in un pacchetto IP avente tale indirizzo come indirizzo IP sorgente
Scenario con fallimento??
“Sono Alice”Indirizzo IPdi Alice
Autenticazione: un altro tentativoAutenticazione: un altro tentativo
Protocollo ap2.0: Alice dice “Sono Alice” in un pacchetto IPche contiene il suo indirizzo IP sorgente
Tommaso può creare un
pacchetto che imital’indirizzo di Alice
(spoofing)“Sono Alice”
Indirizzo IPdi Alice
Autenticazione: un altro tentativoAutenticazione: un altro tentativo
Protocollo ap3.0: Alice dice “Sono Alice” e inviala sua password segreta per “dimostrarlo”
Indir. IP Password
Scenario con fallimento??
“Sono Alice”Indir. IPdi Alice
Passworddi Alice
OKIndir. IPdi Alice
Autenticazione: un altro tentativoAutenticazione: un altro tentativo
Indir. IP Password
Protocollo ap3.0: Alice dice “Sono Alice” e inviala sua password segreta per “dimostrarlo”
attacco di replica:Tommaso registrail pacchetto di Alice
e lo riproduce successivamente trasmettendolo
a Martina
“Sono Alice”Indir. IPdi Alice
Passworddi Alice
OKIndir. IPdi Alice
“Sono Alice”Indir. IPdi Alice
Passworddi Alice
Protocollo ap3.1: Alice dice “Sono Alice” e inviala sua password segreta criptata per “dimostrarlo”.
Indir. IP Password
Autenticazione: ancora un altro tentativoAutenticazione: ancora un altro tentativo
Scenario con fallimento??
“Sono Alice”Indir. IPdi Alice
Passwordcriptata
OKIndir. IPdi Alice
Protocollo ap3.1: Alice dice “Sono Alice” e inviala sua password segreta criptata per “dimostrarlo”.
Indir. IP Password
Autenticazione: ancora un altro tentativoAutenticazione: ancora un altro tentativo
Registrazione eriproduzionefunzionanoancora!
“Sono Alice”Indir. IPdi Alice
Passwordcriptata
OKIndir. IPdi Alice
“Sono Alice”Indir. IPdi Alice
Passwordcriptata
Obiettivo: evitare un attacco di replica (playback attack)
Nonce: è un numero (R) che verrà usato soltanto una volta (NB: ‘number + once’ = ‘nonce’) .
Protocollo ap4.0: Alice manda il messaggio “Sono Alice”, Martina sceglie e manda ad Alice un nonce, R. Alice reinvia il nonce R, criptato utilizzando la chiave simmetrica segreta.
Autenticazione: ancora un altro tentativoAutenticazione: ancora un altro tentativo
Attacco fallito?
segreta. “Sono Alice”
R
K (R)A-MSolo Alice
conosce la chiave simmetrica per decifrare il
nonce.
Autenticazione: protocollo Autenticazione: protocollo apap.5.0.5.0
Nel protocollo ap4.0 è stato usato un nonce e la crittografia a chiave simmetrica
� Si può utilizzare la crittografia a chiave pubblica?Protocollo ap5.0: usa un nonce e la crittografia a chiave pubblica
“Sono Alice”“Sono Alice”
RMartina calcolaK (R)A
-
“Mandami la tua chiave pubblica”
K A+
(K (R)) = RA-K A
+
e autentica Alice
Attacco man-in-the-middle: Tommaso si finge Alice (nei confronti di Martina) e si finge Martina (nei confronti di Alice)
Sono Alice Sono AliceR
TK (R)-
R
Protocollo Protocollo apap.5.0 : un buco nella sicurezza.5.0 : un buco nella sicurezza
TK +A
K (R)-
AK +
TK (m)+
Tm = K (K (m))+
T-
Tommaso decifra
e invia m ad Alice criptato con la chiave pubblica di Alice
AK (m)+
Am = K (K (m))+
A-
R
Attacco man-in-the-middle: Tommaso si finge Alice (nei confronti di Martina) e si finge Martina (nei confronti di Alice)
Protocollo Protocollo apap.5.0 : un buco nella sicurezza.5.0 : un buco nella sicurezza
Difficile da individuare:� Martina riceve sempre tutti messaggi di Alice, e viceversa (e quindi nulla fa loro sospettare di un’intromissione)� Il problema è che anche Tommaso riceve benissimo tutti i messaggi!