Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
asimmetrica
pro
contro
Presenza
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 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.
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
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
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
Example:
I want to
book and
buy a ticket
on line.
OK, Im ready to
purchase and
give my credit
card to United
right?
It really is United
right?
18
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!
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
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.