Sei sulla pagina 1di 28

CRITTOGRAFIA

Cos?
La parola crittografia deriva dall'unione di due parole greche kryptsv che significa
nascosto e grapha che significa scrittura. La crittografia la scienza che si occupa di
proteggere delle informazioni rendendole incomprensibili a chi le dovesse intercettare,
in modo che possano essere lette e capite solo dal destinatario. Il messaggio da
proteggere viene detto testo in chiaro, mentre quello ``trasformato'' in modo da essere
incomprensibile viene detto testo cifrato; la trasformazione da testo in chiaro a testo
cifrato si dice cifratura, mentre la trasformazione inversa si dice decifratura. La
trasformazione crittografica detta algoritmo di cifratura, e specifica la procedura che
trasforma il testo in chiaro in quello cifrato. La crittografia attualmente molto
importante, in quanto ci consente di rendere sicure le nostre comunicazioni (mail
criptate), i nostri dati (database criptati) e i nostri riconoscimenti (firma digitale).

Crittografia antica
La necessit di trasmettere messaggi cifrati antica quanto luomo, alcuni esempi di cifratura sono il
metodo Atbash degli ebrei, la Scitala degli spartani e il cifrario di Cesare di Giulio Cesare.
Una scitala era una piccola bacchetta. Il messaggio veniva scritto su di una striscia di pelle arrotolata
attorno ad essa. Una volta srotolata e tolta dalla scitala la striscia di pelle, era impossibile capire il
messaggio. La decifrazione era invece possibile se si aveva una bacchetta identica alla scitala del
mittente

L'atbash un semplice cifrario in cui la prima lettera dell'alfabeto sostituita con l'ultima, la seconda
con la penultima, e cos via, "invertendo" l'ordine alfabetico delle lettere.
Il cifrario di Cesare 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 nellalfabeto. Ad
esempio, usando il 3 come chiave ottengo:

Crittografia moderna
La crittografia moderna nasce con la stesura da parte di Leon Battista Alberti del De Cifris, utilizzando
un Disco Cifrante composto da due dischi concentrici contenenti uno lalfabeto in chiaro, laltro
lalfabeto cifrato, rotanti uno rispetto allaltro consentendo cos la sostituzione polialfabetica con
periodo irregolare.

Il cifrario di Vigenre Si basa sull'uso di un versetto per controllare lalternanza degli alfabeti di
sostituzione si pu considerare una generalizzazione del cifrario di Cesare; invece di spostare
sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di
posti variabile ma ripetuto, determinato in base ad una parola chiave, da concordarsi tra mittente e
destinatario, e da scrivere ripetutamente sotto il messaggio

Crittografia moderna
Per semplificare la cifratura, il Vigenre propose l'uso della seguente "matrice" quadrata, composta
da alfabeti ordinati e spostati. Se si vuole cifrare, con la chiave dell'esempio precedente, la lettera
"R" della parola rapporto baster trovare la lettera "R" nella prima riga orizzontale, individuando la
colonna verticale in cui sta la lettera cifrata. Baster poi trovare la "V" di "verme" nella prima riga
verticale per trovare la colonna orizzontale, individuando, tramite l'incrocio, la lettera corretta da
usare.

Crittografia simmetrica
Le tecniche crittografiche descritte fin qui trattano tutte di crittografia simmetrica, ovvero quella
tecnica di codifica nella quale i due interlocutori devono accordarsi precedentemente sulla chiave di
lettura, in quanto una sola.

La robustezza degli algoritmi di cifratura dipende dalla lunghezza della chiave utilizzata, tanto pi
lungo il testo della chiave, tanto pi difficile sar decifrare il messaggio. Una chiave di 40 bit ad
esempio viene definita debole in quanto di facile decifratura, una di 128 invece definita forte. Il
problema nellutilizzo della crittografia simmetrica comunque non relativo allalgoritmo
utilizzato, bens alla difficolt nella distribuzione della chiave, dovendo questa essere trasmessa in
modo sicuro tra gli interlocutori. Oltre alla sicurezza si deve pensare che, se si gestisce un numero
alto di utenti (pensiamo a un servizio bancario via internet) allora dovranno esistere N chiavi
segrete, le quali comportano elevati costi e tempi di amministrazione. Alcuni esempi di algoritmi
di decodifica a chiave privata sono il DES, IDEA, 3DES, RC2

Crittografia asimmetrica
Il problema dellunica chiave stato risolto in tempi relativamente recenti (anni Settanta) con
l'invenzione della crittografia a chiave pubblica (crittografia asimmetrica). Con algoritmi di
questo tipo ognuno ha due chiavi: una pubblica da distribuire a tutti quelli con cui vuole
comunicare, e una privata da tenere segreta. Ci che viene cifrato con la chiave pubblica
(operazione che pu essere fatta da chiunque) pu essere decifrato solo con la chiave privata
corrispondente (operazione che pu essere fatta solo dal proprietario della chiave): in questo
modo non c' pi il problema di comunicare segretamente la chiave, perch questa nota a
tutti; per comunicare in modo sicuro con una persona basta cifrare il messaggio con la sua
chiave pubblica. Questa la tecnica che si utilizza per le firme digitali.

Con questa crittografia si ovvia il problema logistico di distribuzione di pi chiavi, sorge per
il problema dovuto alla robustezza degli algoritmi utilizzati, in quanto la doppia codifica
comporta procedimenti onerosi e lenti. Alcuni esempi di algoritmi a chiave pubblica sono il
RSA, DSS, Diffie-Hellman, HFE

Che crittografia adottare?


Riassumendo :
simmetrica

asimmetrica

pro

Veloce, di facile utilizzo

Distribuzione delle chiavi non


impegnativa

contro

Presenza

della sola chiave


Impegnativa dal punto di vista
privata, a rischio vulnerabilit;
computazionale e onerosa in termini
Difficolt nella distribuzione delle di tempo
chiavi in un sistema multiutente

La soluzione maggiormente adottata un sistema ibrido che si traduce nellutilizzo della


crittografia asimmetrica per la trasmissione della chiave segreta, utilizzando poi la crittografia
simmetrica per la trasmissione dei dati.

DES (Data Encryption Standard)


Lalgoritmo DES stato messo a punto nel 1974
dallIBM. Il DES un cifrario a blocchi, divide il
testo in chiaro in blocchi separati e opera su
ognuno di essi, indipendentemente, per produrre
una sequenza di testo cifrato. I blocchi del DES
sono di 64 bit, ad ogni blocco corrisponde una
chiave di 56 bit ed invertibile. La struttura del
DES la seguente: dopo una fissata permutazione
iniziale (IP) il blocco di 64 bit di testo in chiaro
viene rotto in due met da 32 bit ciascuno. Queste
due met passano quindi attraverso 16 iterazioni
di una trasformazione dipendente dalla chiave per
produrre un blocco di pre-output a 64 bit. Questo
blocco viene sottoposto ad una permutazione
finale per produrre un blocco di testo cifrato.

RSA

Lalgoritmo RSA (prende il nome dalle iniziali dei tre sviluppatori Rivest, Shamir,
Aldeman) il pi comune ed utilizzato in ambito di crittografia asimmetrica
Per semplificare il funzionamento immaginiamo che A debba spedire un messaggio
segreto a B. Occorrono i seguenti passaggi:
B sceglie due numeri primi molto grandi (per esempio da 300 cifre) e li moltiplica
con il suo computer (impiegando meno di un secondo).

B invia il numero che ha ottenuto ad A. Chiunque pu vedere questo numero.

A usa questo numero per cifrare il messaggio

A manda il messaggio cifrato a B, chiunque pu vederlo ma non decifrarlo

B riceve il messaggio e utilizzando i due fattori primi che solo lui conosceva lo
decifra.
A e B hanno impiegato pochi secondi a cifrare e decifrare, ma chiunque avesse
intercettato le loro comunicazioni impiegherebbe troppo tempo per scoprire i due
fattori primi, con cui si pu decifrare il messaggio.

Sono realmente sicuri?


Il DES si dimostrato un sistema molto utilizzato, ma allo stesso tempo insicuro. Insicuro in
quanto la lunghezza della chiave (solamente 56 bit) consente, tramite attacchi a forza bruta
(ovvero tramite tentativi), di scovarla in maniera abbastanza rapida. Vi sono diversi sistemi
creati per aggirare il DES (DES cracker, COPACOBANA)i quali sono comunque molto costosi
partendo dagli 8.000 arrivando ai 250.000. Vi sono comunque algoritmi che utilizzano
chiavi associate ad un numero maggiore di bit, tali da rendere pi difficili lattacco (3DES,
IDEA ecc.).
Per quanto riguarda lalgoritmo RSA lattacco a forza bruta (ovvero ottenere i due numeri
primi usati per creare la chiave pubblica), una procedura lentissima. Lattacco pi veloce
durato 5 mesi utilizzando 80 processori da 2,2GHz, questi dati consentono di dire che
lalgoritmo sufficientemente sicuro.

Architetture per la sicurezza


Livello di layer (vedi stack OSI)
Over TCP: SSL
Over IP: IPSec

Livello applicativo
HTTPS

12

Protocollo SSL
Presentato nel 1994 da Netscape Communication Corporation che
successivamente rilasci nel 1996 la v3.
SSL introduce un ulteriore livello nell'architettura ISO/OSI che si
colloca tra il livello Applicazione e quello Trasporto
Una variante, seppur minima, del protocollo divenuta standard con il
nome TLS (RFC 2246)

13

Protocollo SSL
Garantisce:
Privatezza della comunicazione
Cifratura a chiave simmetrica

Autenticazione Server
Utilizzo di certificati digitali per scambio di chiavi

(opzionale) Autenticazione Client


Integrit dei dati ( Mac dei record SSL )

14

TLS/SSL in dettaglio
E un protocollo di livello 5 (sessione) che opera quindi al di sopra del
livello di trasporto
E composto da due livelli:
TLS Record Protocol: opera a livello pi basso, direttamente al di sopra di un
protocollo di trasporto affidabile come il TCP
E utilizzato per incapsulare (offrendo servizi di sicurezza) protocolli del livello superiore,
tra cui lHandshake Protocol

TLS Handshake Protocol: si occupa della fase di negoziazione in cui si


autentica linterlocutore e si stabiliscono le chiavi segrete condivise

15

TLS: Architecture
TLS definisce il Record Protocol per trasferire I dati dellapplicazione e
del TLS
La sessione viene stabilita utilizzando lHandshake Protocol

Handshake
Protocol

Change
Cipher Spec

Alert
Protocol

TLS Record Protocol


16

Example:
I want to
book and
buy a ticket
on line.

Standard way to access a Web


site via non-secure connection.

If anyone ever checked,


the site business identity
cannot be verified.

No lock symbol means no


security and no encryption.
No one knows to click here.
17

OK, Im ready to
purchase and
give my credit
card to United
right?
It really is United
right?

Click-1 shows that this certificate was


issued to www.itn.net. Who is this?
And what do they have to do with
United Airlines?
Click on the Details tab to dig
deeper.

Lock symbol appears because I


am about to enter credit card info
but unbeknownst to most
everyone, it is clickable

18

You have to dig


really deeply into
crypto-arcanery
to get to the
identity
information such
as it is.

Click-2 gives access to the


contents of the servers
digital certificate.
The site business identity is
still not available.
Click on the Subject field
to dig deeper.

19

We learn the
hard way that
this is actually
not United at all.
The Web pages
still say United
and yet its not
United. How
often is that
going on? A lot!

Finally, after 3 clicks, the


authenticated identity of the site
business owner is available.
It is right after the O = and in this
case it is GetThere.com, Inc.
Intuitive and accessible NOT.
Really usable identity information
NOT.
AND IT IS NOT EVEN UNITED
AIRLINES THAT I AM ABOUT TO
GIVE MY CREDIT CARD TO.

20

I MALWARE
Virus: sono parti di codice che si diffondono copiandosi all'interno di altri programmi, o in una particolare sezione del disco
fisso, in modo da essere eseguiti ogni volta che il file infetto viene aperto. Si trasmettono da un computer a un altro tramite
lo spostamento di file infetti ad opera degli utenti.
Worm: questi malware non hanno bisogno di infettare altri file per diffondersi, perch modificano il sistema operativo della
macchina ospite in modo da essere eseguiti automaticamente e tentare di replicarsi sfruttando per lo pi Internet. Per
indurre gli utenti ad eseguirli utilizzano tecniche di ingegneria sociale, oppure sfruttano dei difetti (Bug) di
alcuni programmi per diffondersi automaticamente. Il loro scopo rallentare il sistema con operazioni inutili o dannose.
Trojan horse: software che oltre ad avere delle funzionalit "lecite", utili per indurre l'utente ad utilizzarli, contengono
istruzioni dannose che vengono eseguite all'insaputa dell'utilizzatore. Non possiedono funzioni di auto-replicazione, quindi
per diffondersi devono essere consapevolmente inviati alla vittima. Il nome deriva dal famoso cavallo di Troia.
Backdoor: letteralmente "porta sul retro". Sono dei programmi che consentono un accesso non autorizzato al sistema su cui
sono in esecuzione. Tipicamente si diffondono in abbinamento ad un trojan o ad un worm, oppure costituiscono una forma
di accesso lecita di emergenza ad un sistema, inserita per permettere ad esempio il recupero di una password dimenticata.
Spyware: software che vengono usati per raccogliere informazioni dal sistema su cui sono installati e per trasmetterle ad un
destinatario interessato. Le informazioni carpite possono andare dalle abitudini di navigazione fino alle password e
alle chiavi crittografiche di un utente.
Dialer: questi programmi si occupano di gestire la connessione ad Internet tramite la normale linea telefonica. Sono
malware quando vengono utilizzati in modo illecito, modificando il numero telefonico chiamato dalla connessione
predefinita con uno a tariffazione speciale, allo scopo di trarne illecito profitto all'insaputa dell'utente.

21

I MALWARE
Hijacker: questi programmi si appropriano di applicazioni di navigazione in rete
(soprattutto browser) e causano l'apertura automatica di pagine web indesiderate.
Rootkit: i rootkit solitamente sono composti da un driver e, a volte, da copie modificate di
programmi normalmente presenti nel sistema. I rootkit non sono dannosi in s, ma hanno la
funzione di nascondere, sia all'utente che a programmi tipo antivirus, la presenza di particolari file
o impostazioni del sistema. Vengono quindi utilizzati per mascherare spyware e trojan.
Scareware: sono cos chiamati quei programmi che ingannano l'utente facendogli credere di avere
il proprio PC infetto, allo scopo di fargli installare dei particolari malware, chiamati in gergo rogue
antivirus, caratterizzati dal fatto di spacciarsi per degli antivirus veri e propri, talvolta spacciati
anche a pagamento.
Rabbit: i rabbit sono programmi che esauriscono le risorse del computer creando copie di s stessi
(in memoria o su disco) a grande velocit.
Adware: programmi software che presentano all'utente messaggi pubblicitari durante l'uso, a
fronte di un prezzo ridotto o nullo. Possono causare danni quali rallentamenti del pc e rischi per
la privacy in quanto comunicano le abitudini di navigazione ad un server remoto.
22

I MALWARE
Batch: i Batch sono i cosiddetti "virus amatoriali". Non sono sempre dei file pericolosi in quanto esistono molti file batch tutt'altro
che dannosi, il problema arriva quando un utente decide di crearne uno che esegua il comando di formattare il pc (o altre cose
dannose) dell'utente a cui viene mandato il file. Non si apre automaticamente, deve essere l'utente ad aprirlo, perci dato che
l'antivirus non rileva i file Batch come pericolosi sempre utile assicurarsi che la fonte che vi ha mandato il file sia attendibile
oppure aprirlo con blocco note per verificare o meno la sua pericolosit. Bisogna per anche dire che esistono modi per camuffare
i Batch e farli sembrare dei file exe, aumentandone anche il peso per sedare ogni sospetto. L'utilizzo di questo particolare
"malware" spesso ricorrente nel Cyberbullismo.
Keylogger: I Keylogger sono dei programmi in grado di registrare tutto ci che un utente digita su una tastiera o che copia e incolla
rendendo cos possibile il furto di password o di dati che potrebbero interessare qualcun altro. La differenza con gli Adware sta nel
fatto che il computer non si accorge della presenza del keylogger e il programma non causa rallentamento del pc, passando cos
totalmente inosservato. Generalmente i keylogger vengono installati sul computer dai trojan o dai worm, in altri casi invece il
keylogger viene installato sul computer da un'altra persona che pu accedere al pc o attraverso l'accesso remoto (che permette a
una persona di controllare un altro pc dal suo stesso pc attraverso un programma) oppure in prima persona, rubando cos dati e
password dell'utente.
Rogue antispyware: malware che si finge un programma per la sicurezza del PC, spingendo gli utenti ad acquistare una licenza del
programma.
Bomba logica: un tipo di malware che "esplode" ovvero fa sentire i suoi effetti maligni al verificarsi di determinate condizioni o
stati del PC fissati dal cracker stesso.
Zip Bomb un file che si presenta come un file compresso. Deve essere l'utente ad eseguirlo. All'apparenza sembra un innocuo
file da pochi Kilobyte ma, appena aperto, si espande fino a diventare un file di circa quattro Petabyte, occupando quindi tutto lo
spazio su disco rigido.

23

Ingegneria sociale
La parte pi debole di un sistema informatico l'essere umano
Uno degli attacchi pi utilizzati l'ingegneria sociale
Con l'evoluzione del software, l'uomo ha migliorato i programmi a tal punto che essi presentano
pochi bug (errori che i programmatori generalmente commettono quando creano un software).
Per un cracker sarebbe impossibile attaccare un sistema informatico in cui non riesce a trovare
bug. Quando ci accade l'unico modo che il cracker ha per procurarsi le informazioni di cui
necessita quello di attuare un attacco di ingegneria sociale.
Un ingegnere sociale (social engineer) per definirsi tale deve saper fingere, sapere ingannare gli
altri, in una parola saper mentire.
Un social engineer molto bravo a nascondere la propria identit, fingendosi un'altra persona: in
tal modo egli riesce a ricavare informazioni che non potrebbe mai ottenere con la sua identit
reale. Nel caso sia un cracker, pu ricavare informazioni attinenti ad un sistema informatico. Il
social engineering quindi una tecnica per ricavare informazioni molto usata dagli hacker esperti e
dalle spie, e dato che comporta (nell'ultima fase dell'attacco) il rapporto pi diretto con la vittima,
questa tecnica una delle pi importanti per carpire informazioni. In molti casi il cosiddetto
ingegnere potr riuscire a ricavare tutto ci che gli serve dalla vittima ignara.
24

FUNZIONI CRITTOGRAFICHE
Funzioni che utilizzano un algortimo di hash in grado di generare un
messaggio cifrato (digest) di lunghezza fissa a partire da un messaggio
in chiaro di lunghezza variabile
La sicurezza di un algoritmo di hash risiede nel fatto che la funzione
non sia reversibile (non sia cio possibile risalire al messaggio originale
conoscendo solo questo dato) e che non deve essere mai possibile che
si riescano a creare intenzionalmente due messaggi diversi con lo
stesso digest
La pi utilizzata e famosa lo SHA-1: dato un messaggio di lunghezza
arbitraria produce un digest di 160 bit (40 caratteri)

FUNZIONI CRITTOGRAFICHE: MD5


L'acronimo MD5 (Message Digest algorithm 5) indica un algoritmo crittografico di hashing
realizzato da Ronald Rivest nel 1991 e standardizzato con la RFC 1321.
Questo tipo di codifica prende in input una stringa di lunghezza arbitraria e ne produce in output
un'altra a 128 bit. La codifica avviene molto velocemente e l'output (noto anche come "MD5
Checksum" o "MD5 Hash") restituito tale per cui altamente improbabile ottenere con due
diverse stringhe in input uno stesso valore hash in output. Ad oggi sono disponibili molte risorse
online che hanno buone probabilit di riuscire a decriptare parole comuni codificate.
A oggi, la disponibilit di algoritmi efficienti capaci di generare stringhe che collidono (ossia che
producono in output lo stesso valore di hash) in un tempo ragionevole ha reso MD5 sfavorito
rispetto ad altri algoritmi di hashing (vedi WHIRLPOOL, SHA-1 o RIPEMD-160), sebbene la sua
diffusione sia a tutt'oggi molto estesa (basti pensare che il controllo di integrit pi frequente su
file si basa proprio su MD5).

FUNZIONI CRITTOGRAFICHE: SHA-1


Con il termine SHA si indica una famiglia di cinque diverse funzioni crittografiche di hash sviluppate a partire dal 1993 dalla
National Security Agency (NSA) e pubblicate dal NIST come standard federale dal governo degli USA ( FIPS PUB 180-4 ). La sigla
SHA sta per Secure Hash Algorithm.
Come ogni algoritmo di hash, l'SHA produce un message digest, o "impronta del messaggio", di lunghezza fissa partendo da un
messaggio di lunghezza variabile. Gli algoritmi della famiglia sono denominati SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512: le
ultime 4 varianti sono spesso indicate genericamente come SHA-2, per distinguerle dal primo. Il primo produce un digest del
messaggio di soli 160 bit, mentre gli altri producono digest di lunghezza in bit pari al numero indicato nella loro sigla (SHA-256
produce un digest di 256 bit). L'SHA-1 il pi diffuso algoritmo della famiglia SHA ed utilizzato in numerose applicazioni e
protocolli.
La sicurezza di SHA-1 stata in parte compromessa dai crittoanalisti. Sebbene non siano ancora noti attacchi alle varianti SHA-2,
esse hanno un algoritmo simile a quello di SHA-1 per cui sono in atto sforzi per sviluppare algoritmi di hashing alternativi e
migliorati. Un concorso aperto per la realizzazione di una nuova funzione SHA-3 venne annunciato nel Federal Register il 2
novembre 2007[4] dal NIST e attraverso una competizione pubblica, simile a quella adottata per il processo di sviluppo dell'AES,
ha portato in data 2 ottobre 2012 ad annunciare come vincitore l'algoritmo Keccak. Opera di un team di analisti italiani e belgi, il
Keccak sembra dunque destinato a venire gradualmente incluso e adottato nelle soluzioni di sicurezza informatica pi variegate.

FUNZIONI CRITTOGRAFICHE
Esempi di utilizzo di MD5 e SHA-1
MD5 molto utilizzato per verificare l'uguaglianza tra due file
SHA-1 molto usato per questioni di sicurezza
MD5:

Un file rappresentabile come una stringa, cio una sequenza di bit. Questo il "messaggio" che l'MD5 elabora.
Se l'output MD5 di due file uguale allora c' un'altissima probabilit che i messaggi iniziali, cio i file, siano
uguali

SHA-1:
Sui database non dovrebbe mai esserci la password in chiaro dell'utente (se un database dovesse essere rubato
le password devono essere ancora al sicuro)
La soluzione utilizzare una funzione di hash (SHA-1 perch pi sicura di MD5)
Quando l'utente invia al server nome utente(oppure email) e password questi sono i passi:

Si verifica che il nome utente (o l'email) dell'utente che vuole accedere e quello presente sul database coincidano

Si verifica che l'output generato dalla funzione SHA-1 della password inviata dall'utente, concatenata con una stringa generata quando l'utente si era registrato e memorizzata nella sua riga sul
database, sia uguale all'hash della password salvato sul database.

Potrebbero piacerti anche