.:: Matematica ::.
CRITTOGRAFIA
La crittografia è l'arte che tratta delle “scritture segrete”, cioè i metodi per rendere “offuscato” un
messaggio in modo da non essere comprensibile a persone non autorizzate.
La parola crittografia deriva dalla parola greca kryptós che significa nascosto e dalla parola greca
gráphein che significa scrivere.
I sistemi di crittografia sono chiamati anche sistemi di cifratura. La controparte della crittografia è
la crittoanalisi, cioè l' arte di scardinare i sistemi di cifratura. La scienza che studia la crittografia e
la crittoanalisi e' chiamata crittologia. Il messaggio originale e' chiamato testo in chiaro, ed il
messaggio codificato e' chiamato testo cifrato. Quando si codifica un messaggio, si utilizza una
procedura che lo converte in testo cifrato (cifratura). Viceversa, quando si rende leggibile un
messaggio, si usa il procedimento opposto, chiamato decifratura.
La crittografia è di fondamentale importanza nell'informatica (in maniera particolare con
l'avvento del web) poiché, citando un semplice esempio, si vuole evitare che dati riservati inviati
attraverso Internet vengano letti da estranei (cosa piuttosto semplice, siccome ogni file
[ipotizziamo una e-mail] attraversa svariati host).
Storia della crittografia
La necessità di nascondere messaggi strategici da occhi nemici è antica quanto l'uomo: ci sono
tracce di cifrari antichi quanto gli ebrei... con il loro codice di atbash. Inoltre si hanno tracce anche
di un cifrario prodotto da Gaio Giulio Cesare: a lui si attribuisce l'uso (se non addirittura
l'invenzione) del cifrario di Cesare [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], un sistema crittografico oggi ridicolo, ma emblema della nascita di un
concetto totalmente nuovo e ottimo per comprendere le idee basilari della crittografia e i primi
attacchi della sua "avversaria": la crittoanalisi.
A partire dal cifrario di Cesare, i sistemi via via escogitati sono stati vari e man mano più evoluti:
da questo elementare cifrario si è passati al più generalizzato cifrario a scorrimento, poi ancora al
cifrario monoalfabetico, che a sua volta ha gettato le basi per i cifrari polialfabetici, tra cui
l'imbattibile cifrario di Vigenère, come almeno era considerato quando Vigenère lo ideò (unendo
1
.:: Matematica ::.
molte idee che erano già nell'aria da tempo), visto che nel 1863 il colonnello prussiano Friedrich
Kasiski pubblicò un metodo per "forzarlo" (chiamato metodo Kasiski).
Qualsiasi sia il sistema crittografico utilizzato, la legge fondamentale sul corretto uso di tali
tecniche fu scritta da Kerckhoffs (Legge di Kerckhoffs) nel suo libro del 1883 "La Cryptographie
Militaire" e di seguito rtiportata
"La sicurezza di un crittosistema non deve dipendere dal tener celato il crittoalgoritmo. La sicurezza
dipenderà solo dal tener celata la chiave."
Nel 1918 Gilbert Vernam perfezionò il metodo di Vigenère proponendo l'idea di usare chiavi
lunghe almeno quanto il messaggio. Successivamente Claude Shannon, padre della Teoria
dell'informazione, dimostrò che questo è l'unico metodo crittografico totalmente sicuro.
Con il possesso di un sistema crittografico perfetto, la battaglia teorica tra crittografia e
crittanalisi si è risolta con una vittoria della prima sulla seconda. Ipotizzando di voler far uso di
questa insuperabile protezione, restano però aperti molti problemi di ordine pratico: bisogna
infatti soddisfare gli stringenti requisiti del cifrario di Vernam: chiave lunga quanto il messaggio
e mai più riutilizzabile. Purtuttavia, si hanno notizie di utilizzi di questo cifrario in ambiente
militare (comunicazione con le spie: si veda a proposito One Time Pad) o per la protezione delle
comunicazioni del telefono rosso tra Washington e Mosca durante la Guerra fredda. Anche il
cifrario trovato nel 1967 sul corpo di Che Guevara è una incarnazione del cifrario di Vernam.
L'attuale ricerca crittografica, avendo risolto il problema teorico della garanzia della sicurezza, si
dedica al superamento dei forti limiti d'uso anzidetti. Si cercano metodi più "comodi" ma
ciononostante "estremamente sicuri" (non lo saranno mai perfettamente, ma si può renderli
sempre più sicuri) che, possibilmente, utilizzino chiavi corte e riutilizzabili senza inficiare con
questo la loro utilità.
Fino a pochi anni fa l'unico metodo crittografico esistente era quello della "crittografia
simmetrica", in cui si faceva uso di un'unica chiave sia per proteggere il messaggio che per
renderlo nuovamente leggibile. La ricerca sulla crittografia simmetrica ha negli anni prodotto dei
sistemi crittografici di tutto rispetto (ultimo tra tutti il cifrario Rijndael, scelto per il nuovo
standard AES per essere utilizzato nel prossimo ventennio, pensionando l'ormai datato DES).
La vera novità del secolo scorso è l'invenzione della crittografia asimmetrica che utilizza chiavi
diverse per cifrare e per decifrare un messaggio, facilitando incredibilmente il compito di
distribuzione delle chiavi.
2
.:: Matematica ::.
L'evoluzione dei sistemi crittografici, uniti all'evoluzione della fisica teorica hanno permesso di
realizzare un cifrario di Vernam che si basa sull'utilizzo della meccanica quantistica nella fase
dello scambio della chiave. Il vantaggio di questa tecnica consiste nel fatto di rendere
inutilizzabili gli attacchi del tipo man in the middle cioè, se durante lo scambio della chiave
qualcuno riuscisse ad intercettarla, la cosa diverrebbe immediatamente evidente a chi emette e
chi riceve il messaggio.
Cifrario di Cesare
Il cifrario di Cesare è il più antico algoritmo crittografico 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.
Cifrario di Vernam
Il cifrario di Vernam è un sistema crittografico basato sul cifrario di Vigénère, al quale aggiunge il
requisito che la chiave sia lunga quanto il testo e non riutilizzabile (per questo viene spesso
chiamato OTP, acronimo per l'inglese "One Time Pad", letteralmente "blocco monouso", cfr.
immagine). Il cifrario di Vernam è l'unico sistema crittografico la cui sicurezza è comprovata da
una dimostrazione matematica.
Si può facilmente capire quanto sia scomodo distribuire in modo sicuro chiavi di tale dimensione,
ciò nonostante è stato utilizzato per le comunicazioni con le spie, che venivano equipaggiati di
taccuini ("pad" in inglese) contenenti una lunga chiave per ogni pagina, da poter strappare una
volta utilizzata ("one time", ovvero "un solo uso").
La sua forma più classica è quella dove la chiave ha la stessa forma del testo (a ogni lettera viene
associato il numero corrispondente A=0 B=1 C=2) e che sfrutta l'operazione di somma circolare
(quella per cui dopo la lettera Z c'è di nuovo la lettera A, quindi A+C=0+2=2=C, B+C=1+2=3=D,
Z+C=25+2=27=1=B, Z+Z=25+25=50=24=Y).
È importante ribadire che questo tipo di chiave deve essere lunga quanto il messaggio che cifra e
può essere utilizzata una sola volta, pena la perdita della validità delle ipotesi iniziali e la
riduzione da sistema "inattaccabile" a sistema "facilmente attaccabile" dal metodo Kasiski, una
specializzazione del metodo crittanalitico di analisi delle frequenze.
3
.:: Matematica ::.
TECNICHE DI CIFRATURA
Funzione Senso-Unico(One-Way)
Una funzione Senso-Unico e' una funzione matematica che più semplice da eseguire in un senso
piuttosto che nell'altro. In altre parole, ci sono dei problemi matematici che sono realmente
difficili da risolvere - quasi impossibili - e la loro soluzione richiede moltissimo tempo. Alcuni
esempi sono il 'problema della fattorizzazione' ed il 'problema dei logaritmi discreti'.
Il problema della fattorizzazione
Vari sistemi crittografici a chiave pubblica sono basati sul problema della fattorizzazione. Infatti
fattorizzare numeri molto grandi richiede moltissimo tempo. Se un avversario riesce a
fattorizzare un numero realmente grande, puo' scoprire la chiave segreta. Il problema e' che, con
le conoscenze attuali, e' quasi impossibile fattorizzare numeri molto grandi in un lasso di tempo
accettabile (vedi ad esempio RSA-129, cioè una chiave pubblica formata da 129 cifre e la cui
fattorizzazione è stata stimata intorno ai 5000 MIPS/anno, cioè un computer con la capacità di
calcolare un milione di istruzioni al secondo ci impiegherà circa 5000 anni per fattorizzare quel
numero). Comunque nessuna dimostrazione teorica e' mai stata data su ciò e per questo motivo
non è possibile escludere la possibilità che in futuro venga inventato un algoritmo che faciliti e
velocizzi tale processo, eludendo in tal modo la cifratura.
Problema dei logaritmi discreti
Come il problema della fattorizzazione, il problema dei logaritmi discreti sembra un problema
difficile da risolvere, e quindi, alcuni sistemi a chiave pubblica sono basati su questo problema. Il
problema dei logaritmi discreti si applica ai gruppi.
Cifratori a blocchi
Un cifratore a blocchi trasforma un blocco di testo in chiaro di lunghezza fissa in un blocco di
testo cifrato della stessa lunghezza. Questa lunghezza fissa e' chiamata 'dimensione del blocco'
(generalmente di 64 bit). Per trasformare il testo in chiaro in testo cifrato viene usata una chiave
segreta. La stessa chiave segreta e' usata per decifrare il blocco. Quando un cifratore a blocco cifra
lo stesso blocco di testo in chiaro piu' volte, e' chiamato cifratore a blocco iterativo. I cifratori a
4
.:: Matematica ::.
blocco usano alcune tecniche per cifrare un blocco di testo in chiaro. Ci sono 4 modi standard:
ECB - Electronic Code Book, CBC - Cipher Block Chaining, CFB - Cipher Feedback Block and OFB Output Feedback Block. ECB: ogni singolo blocco di testo in chiaro da' un identico blocco di testo
cifrato. CBC: ogni blocco di testo in chiaro e' 'XORed' (che significa OR esclusivo bit a bit) con il
precedente blocco di testo cifrato, poi cifrato. CFB: il precedente testo cifrato e' cifrato e l' output
e' 'XORed' con il testo in chiaro per produrre il blocco di testo cifrato corrente. OFB: e' simile a
CFB.
Cifratori a flusso
Mentre i cifratori a blocco agiscono su blocchi di dati, i cifratori a flusso agiscono su unita' di testo
in chiaro piu' piccole, di solito bit. L' output di un cifratore a flusso e' chiamato flussochiave che e'
di solito cifrato attraverso lo XOR con il testo in chiaro.
Funzioni Hash
Una funzione hash e' la trasformazione di un input di dimensione variabile (il testo in chiaro) in
un output di dimensione fissa (questo output e' una stringa, chiamata valore hash). L'importanza
delle funzioni hash sta nel fatto che il valore hash rappresenta concisamente il messaggio dal
quale e' stato calcolato. In altre parole, il valore hash e' una sorta di 'impronta digitale' del
messaggio più grande dal quale e' stato calcolato. Le funzioni hash sono utili per fornire firme
digitali. Inoltre un riassunto può essere reso pubblico perché non rivela il contenuto del
documento originale. Questa questione e' importante nel timestamping digitale.
MAC
MAC sta per Message Authentication Code (codice di autenticazione del messaggio). Questo codice
(chiamato anche checksum) e' l' output fornito da uno schema di autenticazione (insieme con una
chiave segreta) applicato ad un messaggio. I MAC sono calcolati e verificati con la stessa chiave,
cosi' solo il destinatario predestinato può verificare un MAC (a differenza delle firme digitali).
5
.:: Matematica ::.
CRITTOGRAFIA A CHIAVE PRIVATA E A CHIAVE PUBBLICA
La crittografia tradizionale e' basata su una chiave segreta. Un mittente che vuole inviare un
messaggio cifrato a qualcuno, lo cifra usando una chiave segreta ed il destinatario lo decifra
usando la stessa chiave segreta. Ovviamente, sia il mittente che il ricevente di quel messaggio
devono conoscere la stessa chiave segreta. Questo metodo e' conosciuto come crittografia a
chiave segreta o crittografia simmetrica. Il problema principale e': il mittente ed il ricevente
devono accordarsi su una chiave segreta comune, e devono usare un canale sicuro per scambiarsi
questa informazione. Ma se esistesse un canale sicuro su cui scambiarsi la chiave segreta
(potenzialmente nessun canale è realmente sicuro), perché non utilizzarlo direttamente per
scambiarsi il messaggio? Proprio per il fatto che la crittografia
ritiene qualsiasi canale
“attaccabile”, venne inventato un altro sistema di crittografia: il sistema a chiave pubblica
(chiamato anche sistema crittografico asimmetrico). Il concetto di crittografia a chiave pubblica fu
introdotto nel 1976 da Whitfield Diffie e Martin Hellman. Questo sistema funziona nel seguente
modo: ogni persona possiede una coppia di chiavi, una pubblica ed una privata (chiave privata e
chiave segreta sono sinonimi). La chiave pubblica di ciascuna persona e' pubblicata ed accessibile
a tutti - in modo che chiunque la voglia usare lo possa fare - mentre la chiave privata e' tenuta
segreta. In questo modo nessuna informazione segreta deve viaggiare dal mittente al ricevente.
Cosi', se si vuole comunicare con qualcuno crittografando il messaggio, tutto quello che bisogna
fare e' usare la sua chiave pubblica. Il ricevente di tale messaggio, potrà poi decifrarlo usando la
sua chiave privata. In altre parole: non c'e' un legame tra la chiave pubblica e la sua
corrispondente chiave privata. Nessuno puo' recuperare la chiave privata dalla sua
corrispondente chiave pubblica! Cosi', solo il destinatario prestabilito puo' decifrare un
messaggio a lui indirizzato tramite la sua chiave privata! Purtroppo c'e' un problema cioe': la
chiave pubblica e' associata al reale destinatario a cui voglio inviare un messaggio crittografato?
Chi assicura che il detentore della chiave-pubblica non sia un truffatore che si spaccia per il vero
destinatario della missiva, con l'unico scopo di intercettare il messaggio e poterlo leggere? Egli
potrebbe intercettare il messaggio, decifrarlo con la sua chiave privata [essendo stato cifrato con
la SUA chiave pubblica], leggerne il contenuto, cifrarlo nuovamente con la chiave pubblica del
VERO destinatario del messaggio e spedirglielo da parte del mittente originario. Con questi
pochi passaggi, la crittografia del messaggio è stata elusa ed ancora peggio nessuno si è accorto
6
.:: Matematica ::.
di niente!
Per questi motivi, bisogna rendere sicura la propria chiave pubblica prima di
utilizzarla. Tutto questo è possibile attraverso un certificato di autenticazione della chiave
(chiave pubblicata autenticata). Infatti i certificati sono documenti digitali che attestano il
collegamento di una chiave pubblica con il proprietario reale. Questi sono emessi da autorità
certificatrici e contengono una data di scadenza, il nome dell'autorità certificatrice che lo ha
emesso ed altre informazioni. Spesso l'autenticazione coinvolge più autorità certificatrici, cosi'
esiste una gerarchia di certificazione[ogni livello certifica il livello inferiore]. Quando si richiede
un certificato ad una autorità certificatrice, questa potrebbe voler vedere la patente di guida del
richiedente o potrebbe volere un documento certificato da un notaio. In questo modo, se tutte
queste informazioni corrispondono, l' autorità certificatrice emette il certificato. Nel caso una
chiave certificata venga compromessa il certificato può essere revocato prima del tempo previsto
e quindi viene messo su un CRL (Certificate Revocation List). Per la protezione di documenti
importanti spesso viene usato uno schema di divisione della chiave segreta [altrimenti se venisse
persa l'unica chiave, tutte le informazioni cifrate andrebbero irrimediabilmente perse!]. In uno
schema di questo tipo, la chiave segreta in questione, viene divisa in pezzi che sono poi
distribuiti a persone diverse, in modo che un dato numero di persone possa riunirsi per
recuperare la chiave.
Un'ultima questione che è giusto porre in evidenza è la seguente: OGNI CHIAVE UTILIZZATA
PER CIFRARE DEI DOCUMENTI HA UN PERIODO DI VITA LIMITATO. Infatti ogni volta che
viene usata una chiave, viene generato un testo cifrato. Usando la stessa chiave più volte, si
permette ad un avversario di reperire molti testi cifrati con la stessa chiave. Alcuni metodi di
crittoanalisi usano i testi cifrati per decifrare i messaggi. La conseguenza e': più tempo si usa la
stessa chiave, più testi cifrati (con una stessa chiave) esistono e più e' facile decifrarli tramite la
crittoanalisi.
ALGORITMI A CHIAVE PRIVATA
Come già detto, in un sistema crittografico a chiave segreta (a differenza dei sistemi a chiave
pubblica), sia il mittente che il ricevente di quel messaggio devono conoscere la stessa chiave
segreta. Ci sono vari sistemi a chiave segreta (o privata):

DES (e sue variazioni)
7
.:: Matematica ::.

IDEA

SAFER

RC2

RC4

RC5

FEAL

SKIPJACK

BLOWFISH

SEAL
DES (e sue variazioni)
DES sta per Data Encryption Standard ed e' un cifratore a blocco iterativo sviluppato alla IBM e
definito dal governo degli Stati Uniti come standard ufficiale nel 1977. La dimensione dei blocchi
DES e' di 64 bit, ed usa una chiave a 56 bit (16 cicli) durante la cifratura. Più una chiave è lunga e
maggiore sarà il tempo per fare una ricerca esaustiva (attacco di forza bruta). Con la tecnologia
odierna, le chiave minori di 128 bit sono considerate ormai insicure. Con il rapido progredire
della tecnologia tuttavia, anche 128 bit potrebbero diventare presto insicuri...
Il Triplo-DES e' una variazione del DES: cifra il testo in chiaro 3 volte. L' algoritmo triplo-DES
può essere: DES-EEE3 (cifra-cifra-cifra), DES-EDE3 (cifra-decifra-cifra), DES-EEE2 (cifra-cifracifra). Il DES-EEE3 usa 3 differenti chiavi segrete durante la cifratura. Il DES-EDE3 usa 3
differente chiavi ugualmente, ma nella sequenza cifra-decifra-cifra. Il DES-EDE2 e' come il
formato precedente ma usa 2 chiavi diverse. G-DES e DESX sono altre variazioni del DES.
IDEA
IDEA sta per International Data Encryption Algorithm. E' un cifratore a blocco iterativo con
chiave lunga 128 bit (8 cicli). E' considerato essere immune dalla crittoanalisi differenziale e da
quella lineare. IDEA e' generalmente considerato sicuro.
SAFER
SAFER sta per Secure And Fast Encryption Routine. E' un cifratore a blocco sviluppato da
Massey nel 1993 per la Cylink Corporation. Usa una dimensione di blocco di 64 bit.
8
.:: Matematica ::.
RC2
RC2 sta per Ron Code o Rivest's Cipher. E' un cifratore a blocco (64 bit) sviluppato da Rivest per
la RSA Data Security. Usa una lunghezza di chiave variabile. Infatti può essere reso più o meno
sicuro del DES variando la misura della chiave. E' circa 2 o 3 volte più veloce del DES.
RC4
L' RC4 e' un cifratore a flusso sviluppato da Rivest per la RSA Data Security. E' un algoritmo a
lunghezza di chiave variabile.
RC5
L' RC5 e' un cifratore a blocco sviluppato da Rivest per la RSA Data Security. E' un algoritmo
parametrico, infatti ha una dimensione di blocco variabile, una lunghezza di chiave variabile, ed
un numero di cicli variabile. La dimensione del blocco può essere 32, 64 o 128 bit. La dimensione
della chiave può essere da 0 fino a 2048 bit. il numero di cicli può essere da 0 a 255.
FEAL
FEAL sta per Fast Encipherment Algorithm. E' un cifratore a blocco sviluppato da Shimizu e
Miyaguchi. Visto che furono annunciati vari deboli attacchi, dovrebbe essere considerato
insicuro.
SKIPJACK
SKIPJACK e' l' algoritmo contenuto nel chip CLIPPER. Fu disegnato dalla NSA (National Secure
Agency). Usa una dimensione di blocco di 64 bit ed una chiave di 80 bit. Può essere
implementato nel software, ma solo se contenuto all'interno di hardware costruito da produttori
autorizzati dal governo.
BLOWFISH
BLOWFISH e' un cifratore a blocco iterativo sviluppato da Schneier.
SEAL
SEAL sta per Software-optimized Encryption Algorithm. E' un cifratore a flusso sviluppato da
Rogaway e Coppersmith nel 1993.
9
.:: Matematica ::.
ALGORITMI A CHIAVE PUBBLICA
In un sistema crittografico a chiave pubblica (a differenza di quelli a chiave privata), il mittente
ed il ricevente del messaggio non devono conoscere la stessa chiave. Infatti usano 2 coppie di
chiavi ciascuno: una chiave pubblica ed una privata. Ci sono vari sistemi a chiave pubblica:

RSA

ELGAMAL

Elliptic curves

KNAPSACK

LUC

McEliece

Probabilistic encryption
RSA
L' RSA e' un sistema crittografico sia per la cifratura che per l' autenticazione sviluppato nel 1977
da Ron Rivest, Adi Shamir e Leonard Adleman. Questo algoritmo e' basato sul problema della
fattorizzazione. L' RSA e' solitamente combinata insieme ad un algoritmo a chiave privata come
il DES per esempio. Infatti il DES e' molto più veloce dell'RSA. L' RSA fornisce dimensioni di
chiavi sino a 2048 bit (vedi RSA-129).
ELGAMAL
ELGAMAL e' un algoritmo di cifratura basato sul problema dei logaritmi discreti. Analisi
mostrano come ELGAMAL e RSA abbiano una sicurezza simile per lunghezze di chiavi
equivalenti. Comunque l' algoritmo ELGAMAL è più lento di quello dell'RSA.
Curve Ellittiche
Il sistema delle curve ellittiche e' un algoritmo simile all'RSA e all'ELGAMAL, ma e' basato
sull'operazione di addizione di curve ellittiche.
KNAPSACK
Il sistema crittografico Merkle-Hellman KNAPSACK fu sviluppato nel 1978. E' basato sul
10
.:: Matematica ::.
problema delle sottosomme della matematica combinatoria.
LUC
LUC e' un sistema crittografico sviluppato da un gruppo di ricercatori in Australia e Nuova
Zelanda. E' basato sulle sequenze Lucas.
McEliece
McEliece e' un sistema crittografico basato sulla teoria della codifica algebrica.
Cifratura Probabilistica
La cifratura probabilistica e' un differente approccio alla cifratura scoperto da Goldwasser e
Micali. A differenza dei sistemi convenzionali, qui un messaggio e' codificato in uno dei molti
testi cifrati possibili.
QUANDO LA CRITTOGRAFIA NON PUO' FARE NIENTE
A volte anche il sistema di crittografia più forte può essere inutile. Questo avviene perché
qualcuno che vuole raggiungere delle informazioni segrete, non ha bisogno necessariamente di
complicati lavori di crittoanalisi. Ecco alcuni possibili attacchi:

Keyboard sniffers

TEMPEST

Lettura della memoria

Lettura della cache del disco

Packet sniffers

Cavalli di Troia

Cattive password
11
.:: Matematica ::.
Keyboard sniffers
Ci sono dei programmi che leggono i tasti quando vengono battuti. Un avversario potrebbe
installare questo tipo di software sul sistema da spiare, quindi potrebbe leggere le password
utilizzate durante la cifratura dei documenti. Ci sono vari metodi per fare ciò. Ma come può un
avversario installare questo tipo di software sul sistema da spiare? Una soluzione potrebbe
essere tramite un virus.
TEMPEST
Nel 1985, lo scienziato olandese Wim van Eck pubblicò un documento riguardante i rischi di
intercettazione provocati dalle emissioni elettromagnetiche delle unità video. Il suo lavoro provò
che le unità video (CRT), le CPU e/o le periferiche, emettevano una radiazione elettromagnetica
simile alle onde radio che poteva essere intercettata da una postazione remota ad una certa
distanza e con poco sforzo. La risposta del governo americano a questo tipo di monitoraggio fu
TEMPEST. TEMPEST sta per Transient ElectroMagnetic PulsE STandard ed e' uno standard per
la protezione da emissione di onde elettromagnetiche dei sistemi di computer. Cosi' il governo
degli Stati Uniti creò questo standard per misurare le emissioni elettromagnetiche dei computer
e definire i limiti per la sicurezza sul monitoraggio. Gli standard sono definiti nel documento
NACSIM 5100A (classificato dalla NSA - National Security Agency). Installando uno di questi
congegni (non molto costosi) e puntando l'antenna verso il computer da spiare, è possibile
leggere tutto ciò che appare su monitor. Per evitare questo problema è necessaria una
“schermatura” delle pareti del computer.
Lettura della memoria
In un sistema multi-utente quale quello Unix, e' possibile leggere la memoria fisica della
macchina da qualsiasi persona con i necessari privilegi (di solito i privilegi di root). Avendo
privilegi di root ad esempio, si può accedere alla memoria virtuale del sistema (/dev/kmem) e
leggere la pagina di un utente.
Lettura della cache del disco
In un ambiente multi-tasking come Windows, i dati sono riversati dalla memoria su disco e
viceversa. Questo accade su sistemi che usano la memoria virtuale. Infatti il sistema operativo
12
.:: Matematica ::.
simula una RAM (Random Access Memory) di dimensioni molto superiori a quella reale
dividendo i dati in pagine che sono riversate sul/da disco. Le pagine usate più frequentemente
sono all'interno della RAM, ma le altre sono registrate all'interno dell'hard disk. Quando un
programma richiede una particolare pagina che non è sulla RAM, il sistema operativo la carica.
In altre parole, i dischi sono una sorta di 'finta' estensione della RAM. Di solito i dati riversati su
disco sono memorizzati all'interno di un file di swap. In un ambiente di rete, chiunque ha
accesso alla macchina, può leggere un file di swap, o persino rubarlo.
Packet sniffers
Se non si utilizza un qualsiasi tipo di utility di cifratura o un protocollo di rete sicuro, la propria
passphrase viene inviata sulla rete come testo in chiaro. Percio' un 'packet sniffer' installato tra il
proprio terminale e l'host al quale è stato inviata la passphrase (tra terminale e host esistono
effettivamente svariati nodi su cui poter installare tali software), può facilmente catturare questa
informazione. Per esempio, i packet sniffer possono essere sensibili a certe parole come Visa,
MasterCard e cosi' via. Per questa ragione si dovrebbe evitare di inviare numeri di carte di
credito senza usare un protocollo sicuro. Stesso discorso per l'invio di password.
Cavalli di Troia
Un “Trojan Horse” è un programma apparentemente innocuo. Questo tipo di software svolge
tutte le funzioni che dovrebbe realmente fare; ma e' in realtà un programma subdolo che, come il
cavallo di Troia di Ulisse, contiene delle istruzioni pericolose all'interno (possono per esempio
registrare una passphrase ed inviarla ad un host predefinito). Sembrando in tutto e per tutto
degli innocui e normali programmi, i trojan horse sono difficili da rilevare da parte degli
antivirus, prima che essi manifestino l'azione “indesiderata”.
Cattive password
Le cattive password sono un grande problema diffuso per la rete. Spesso infatti la gente sceglie
delle cattive password (come i nomi di persone, le date, parole comuni, etc.) per il solo fatto che
sono facili da ricordare. Il problema è che alcuni programmi - chiamati password cracker possono trovare facilmente questo tipo di password. Questi software usano dizionari per tentare
tutte le parole continuamente fino a quando non trovano la giusta password. Per questa ragione
13
.:: Matematica ::.
si dovrebbe evitare di scegliere parole semplici o di uso comune come password! Un buon
metodo per creare password “sicure” è prendere le iniziali di ogni parola di una frase e riunirle
insieme. In questo modo, non risulterà difficile tenere a mente la password essendo legata
logicamente alla frase da noi decisa. Un ulteriore modo per aumentare la sicurezza delle
password è utilizzare segni di punteggiatura, numeri e caratteri speciali. Per esempio 4 anziché
A, 3 anziché E, 1 anziché I e così via.
14
Scarica

CRITTOGRAFIA