1. ALMA MATER STUDIORUM · UNIVERSITÀ DI BOLOGNA
Applicazione di messaggistica
crittografata per smartphone
Candidato:.
Giovanni Ferri
Relatore:
Chiar.mo Prof.
Alessandro Vanelli Coralli
2. Obiettivo
«…grave problema di sicurezza che avrebbe messo a rischio i
dati e le comunicazioni di centinaia di migliaia di utenti che
utilizzano Whatsapp»
La Repubblica 2/4/2012
In questo progetto di tesi si vuole sviluppare una
applicazione android per la messaggistica che assicuri la
segretezza della comunicazione, nascondendo dati privati
alla vista di osservatori terzi.
3. Il Problema
Sniffing della rete: cioè l’intercettazione passiva dei dati che
transitano attraverso il canale di comunicazione.
Rete
Mittente
messaggio
messaggio
Ricevitore
Osservatore
Messaggio in chiaro
ATTACCARE GLI IRRIDUCIBLI GALLI ALLA ORA SESTA
Messaggio criptato
??????????
??? ??????????
????? ???? ??? ?????
Rete
Messaggio
Messaggio in
chiaro
Codifica
Messaggio
Codificato
Codificato
Messaggio in
Decodifica
chiaro
4. La Crittografia
«l’insieme delle teorie e delle tecniche (manuali, meccaniche o elettroniche) che permettono di
cifrare un testo in chiaro, cioè di ottenerne un crittogramma, impiegando una chiave di cifratura»
• Cifrario di Cesare
ATTACCARE GLI IRRIDUCIBLI GALLI ALLA ORA SESTA
ATTACCARE GLI IRRIDUCIBLI GALLI ALLA ORA SESTA
Problema probabilistico
Shift di 3 lettere
DZZDFFDUH LON NUUNGAFNENON LDOON DOOD RUD VHVZD
DZZDFFDUH LON NUUNGAFNENON LDOON DOOD RUD VHVZD
• Cifrario di Vigenère Messaggio: ARRIVANO I RINFORZI
Chiave di codifica: «Verme»
A R R
I
V A N O
I
R
I
N F O R
Z
I
V E R M E V E R M E V E R M E V E
V V I U Z V R F U V D R W A V U M
5. La Crittografia
• Cifrario di Vernam
« uno dei più importanti della storia della crittografia. » Cit. NSA
A
B
A xor B
0
0
0
0
1
1
1
0
1
1
1
0
6. Algoritmi a chiave Pubblica
Utente
Chiave Privata
Chiave Pubblica
Chiave
Chiave pubblica di B
CASO 1
Chiave privata di B
CANALE DI COMUNICAZIONE
SICURO
A
Messaggio cifrato
Messaggio in
Codifica
chiaro
Messaggio in
Decodifica
Canale non sicuro
chiaro
B
messaggio
Codifica
CASO 2
A
B
Decodifica
Invio msg. cifrato
messaggio
7. RSA
• Generazione delle chiavi:
p e q numeri primi molto grandi ;
scegliere e coprimo, con e < (p-1)(q-1)
sia d tale che d · e = 1 (in modulo (p-1)(q-1) )
La chiave pubblica (n,e)
la chiave privata dalla coppia (n,d)
• Dinamica del messaggio
sia m il messaggio da inviare
Messaggio cifrato c
c = m^e (in modulo n)
Decriptare
Canale di
comunicazione
m = c^d = m^ed=m^1
(in modulo n)
m
8. L’applicazione : Server side
Utilizzo del database MySQL interfacciandosi tramite codice PHP
2 Tabelle principali
Agenda
• Numero;
• Chiave pubblica;
• Data.
Messaggi
• Destinatario;
• Messaggio;
• Data.
9. L’applicazione : Client side
StartActivity.java
ThreadsActivity.java
LaunchListActivity.java ConversationActivity.java
• Inscrizione al servizio
• Ricerca dei contatti
SERVER
Notifica
10. Conclusioni e sviluppo
Creato un canale sicuro di trasmissione di dati attraverso la rete
internet.
Sviluppo futuro:
• Miglioramento computazionale della comunicazione (Chiave
simmetrica attraverso uno scambio asimmetrico)
• Sviluppo mirato all’ambiente business