Newsgroup: it.comp.sicurezza.pgp
Titolo: sicurezza e algoritmi

Forse vi avranno posto la domanda già mille volte, ma mi chiedevo quali sono
e quale diversa sicurezza offrono gli algoritmi di crittazione oggi
disponibili.
- In PGP quale è il piu' sicuro?
- E soprattutto: crittare un file con chiavi 2 chivi pubbliche-private
impone che la
decrittazione possa essere fatta solo e soltanto "con la forza"? (o con la
chiave se la si possiede). Non vi sono altri stratagemmi?
- E'  possibile utilizzare un SW che via Internet sfrutti una piccola
percentuale della potenza di moltissimi PC connessi in rete, al fine di
"craccare" una chiave anche a 4096 bit?
- Quanto impiegherebbe un singolo bel PC a trovare una chiave a 4096 bit?
Grazie.
Anche in mail: 
andr...@usa.net



crittazione oggi disponibili.
Il problema e' complesso, e non puo' essere valutato in termini
puramente crittografici. Riporto qui un articolo che avevo scritto
per uno speciale sulla crittografia pubblicato da una rivista di
politica internazionale. 
================================
MA QUANTO SONO SICURI I SOFTWARE DI CRITTOGRAFIA?
Scopo di questa breve trattazione e' illustrare in maniera semplice
e immediatamente comprensibile a chi non sia particolarmente
esperto in materia quali sono i principali limiti e problemi nella
sicurezza offertaci dall'uso di questo tipo di software, con
particolare riferimento a PGP (Pretty Good Privacy) e GPG (GNU
Privacy Guard) 
A livello giornalistico questo problema e' stato perlopiu' trattato
in relazione alle rivelazioni sull'ormai famoso "Sistema Echelon"
che hanno messa in piena luce l'esistenza di agenzie di controllo e
di sorveglianza come l'NSA (National Security Agency) che hanno per
specifico obiettivo il monitoraggio delle comunicazioni di
interesse politico-economico e lo sfondamento delle tecniche usate
per crittografare tali comunicazioni. 
Da qui il vivo interesse dei governi per questi problemi, la messa
in crisi o in ridiscussione degli accordi di Wassenaar sui limiti
all'esportazione di software crittografico forte, il sostegno
economico del governo tedesco agli sviluppatori di GPG (un software
crittografico di estrema validita' sviluppato in ambito GNU, quindi
interamente e realmente free ed open source a differenza del piu'
famoso PGP, al quale e' concettualmente sovrapponibile) e grandi
discussioni in ambiti specializzati (ed ahime' anche in ambiti
assai meno competenti) sull'effettiva capacita' di queste agenzie
di sfondare effettivamente queste tecniche crittografiche.
Va detto subito, a scanso di equivoci, che preoccuparsi 
eccessivamente di questo problema -- per quanto tecnicamente e 
politicamente importante -- ai fini della propria sicurezza 
personale, ha poco o nessun senso da parte dell'utente medio di
questi software.
In primo luogo perche' non e' certo lui l'obiettivo degli attacchi
di queste agenzie, che richiedono notevole dispendio di risorse. 
In secondo luogo perche' le valutazioni piu' che allarmistiche sulle
capacita' di sfondamento crittografico di queste agenzie, le favole
metropolitane e giornalistiche sui supercomputer segretissimi e le
tecnologie sconosciute di cui disporrebbero, sembrano giungere da 
menti piu' allenate al consumo di telefilm tipo X-files che non al
lucido ragionamento tecnico e politico indispensabile per chiarirsi
la questione.
In altri termini, chi scrive quest'articolo ritiene che l'utilizzo
corretto di PGP e GPG sia tuttora sufficiente a garantirgli una
riservatezza che nemmeno le agenzie investigative di stato o le
grandi multinazionali possono intaccare senza il suo consenso. E
senza nemmeno andare a crearsi quelle chiavi esageratamente
sovradimensionate e del tutto inutili che le voci allarmistiche
messe in giro da questo o quell'articolo o servizio televisivo
suggerirebbero come indispensabili 
Cercheremo quindi di ragionare in termini lucidi e non meramente
favolistici su questo problema. Ma prima ancora di cominciare a
parlare delle possibilita' di attacco dell'NSA e di altre agenzie
basate sulle debolezze crittografiche di questi software e' assai
piu' necessario e utile chiarire che esistono molte altre
possibilita' -- molto piu' facili, economiche e alla portata di
chiunque non disponga delle risorse e delle competenze necessarie
ad un attacco crittografico -- per vanificare la sicurezza offerta
da questi programmi. E che e' da queste possibilita' che
l'utilizzatore medio deve guardarsi con particolare attenzione.
1) PROBLEMI DI SICUREZZA NON CRITTOGRAFICI
Si sa, dando per scontata una certa consocenza del funzionamento di
GPG e PGP senza la quale l'articolo risultera' di comprensione un
po' piu' difficile [nota 1] che il destinatario di un messaggio
codificato, per sbloccare la sua chiave privata che avviera' il
processo di decodifica -- alla quale solo lui dovrebbe poter avere
accesso -- dovra' utilizzare una passphrase che egli solo conosce o
dovrebbe conoscere. E' del tutto intuitivo quindi che il punto piu'
debole del sistema sta innanzitutto proprio nel rispetto di queste
condizioni. 
In primo luogo, nel caso in cui l'attaccante abbia accesso alla 
nostra macchina, il che ad esempio e' la regola in caso di
sequestro o di macchine condivise, solo la passphrase (e' intuitivo
che questa non dovrebbe essere mai scritta o rivelata ad altri) fa
da barriera all'accesso ai files codificati. E' vero che si puo'
disporre le cose in modo da non conservare sulla macchina il
"keyring" contenente la chiave privata (che puo' stare solo su
dischetto, disco estraibile etc) ma questa misura e' scomoda, e in
caso di sequestro o furto non garantisce piu' di tanto.
Da qui l'estrema importanza di una passphrase che non possa essere
facilmente indovinata e che non possa essere facilmente
identificata con i sistemi cosiddetti di "bruta forza". Esistono
programmi che sono in grado di testare rapidamente tantissime
combinazioni di lettere e frasi per cercare di forzare l'accesso
alla nostra chiave privata, avvalendosi anche dell'ausilio di
appositi "dizionari", compilati sulla base di ricerche che tendono
a stabilire quali modelli di passphrase sono piu' frequentemente.
quindi nomi di persone care, date di nascita, numeri di carta
d'identita', frasi famose o di senso compiuto, combinazioni
alfanumeriche troppo brevi e simili sono da bandire assolutamente.
esistono programmi che al contrario aiutano nello stabilire
passphrase randomizzate e difficilmente prevedibili, ma ricordiamo
che se si scorda la passphrase addio dati, e che una passphrase
perfettamente randomizzata ma scritta da qualche parte e' sicura
solo quanto e' sicuro il nascondiglio dove e' tenuta... 
Altri problemi per la sicurezza dei dati crittografati nascono dai
problemi piu' generali di sicurezza della nostra macchina: una
semplice backdoor che sia in grado di registrare a nostra insaputa
cio' che passa attraverso il nostro computer e magari trasmetterlo
via posta elettronica all'attaccante invalida il sistema
crittografico piu' perfezionato. La diffusione -- pressoche'
endemica nei sistemi Windows -- di alcune backdoor del genere,
tipo "trojan", come il celeberrimo Back Orifice e il quasi
altrettanto celebre Netbus, che possono esserci rifilati in mille
modi, nascosti in file eseguibili dall'apparenza innocente, e sono
utilizzabili da praticamente chiunque hanno messo drammaticamente
in luce questa realta'. 
Ma questo problema non si arresta certo al Back Orifice, e se e'
per questo non sono certo gli ideatori e diffusori di questi
programma "famigerato" i responsabili delle debolezze dei sistemi
operativi Microsoft, che hanno se non altro il merito di averle
messo davanti agli occhi di milioni di utenti inconsapevoli, come
dichiarono alla conferenza stampa in cui lo presentarono. E nemmeno
i tanto criminalizzati "hacker" che in vari modi violano, per
"ideologia", per "sport", o per motivi assai meno nobili la
sicurezza delle macchine malprotette sono il principale pericolo
per l'utente medio. 
Si pensi invece, ad esempio alle recenti notizie sulle cause 
intentate negli USA da alcuni consumatori alla ditta produttrice
del diffuso software Real JukeBox, il quale una volta installato
sul proprio PC, oltre che suonare musica, raccoglieva dati sulle
predilezioni musicali dell'ignaro proprietario e li inviava a sua
insaputa via Internet alla casa madre. Si consideri da questo
esempio quante trappole sarebbe possibile tendere da parte di
aziende poco scrupolose agli utilizzatori dei propri prodotti. Si
consideri inoltre che per le leggi vigenti buona parte del software
che utilizziamo non puo' essere esaminata nella sua forma sorgente.
Non a caso il governo cinese ha deciso di non utilizzare piu'
Windows e relative applicazioni (i cui sorgenti non sono
disponibili) per sistemi rilevanti ai fini degli interessi
nazionali, e si sta orientando verso sistemi Linux, la cui natura
"open source" garantisce fra le altre cose la disponibilita' dei
sorgenti e dunque la possibilita' di verificare che nel sistema
operativo e nelle applicazioni non siano nascoste trappole... 
A questo proposito, va notato che i sorgenti di GPG e PGP sono
sempre stati disponibili e che sono stati passati al setaccio da
migliaia di esperti ed appassionati senza che siano mai stati
scoperti in essi delle "trappole", malgrado alcune voci del tutto
infondate propagate dai soliti narratori di favole metropolitane.
Per chi ne ha la possibilita' la cosa migliore e' installarsi
questi programmi compilandosi da se' i sorgenti. Chi non ne ha la
possibilita' utilizzi i file in forma binaria prelevati dai siti di
distribuzione ufficiale e autenticati.
Sembre nell'ambito dei rischi non specificamente inerenti a
debolezze crittografiche, va poi detto che esistono forme di
intercettazione che consentono di bypassare la sicurezza offertaci
da questi programmi. Il cosiddetto "tempest" e' un sistema di
intercettazione a distanza delle emissioni elettromagnetiche del
monitor di un computer che consente di ricostruire tutto quanto
passa sullo schermo. Le versioni piu' recenti di PGP offrono la
possibilita' di decodificare il messaggio all'interno di una
finestrella che utilizza dei font che dovrebbero confonfere
un'intercettazione tempest, tuttavia non e' chiara l'effettiva
efficacia di questo sistema. Non si pensi a roba particolarmente
fantascientifica: secondo alcuni esperti i sistemi tempest
potrebbero essere alla portata di comuni agenzie investigative,
anche private, nello spazio di cinque anni. 
Un problema ancora diverso e' costituito dal fatto che cio' che 
scriviamo viene scritto sull'hard disk di un computer in realta'
poi non viene cancellato fisicamente e puo' essere recuperato con
vari sistemi, come ben sa chiunque abbia familarita' con un banale
programma di utilita' per il recupero dei files cancellati.
Esistono vari programmi, abbastanza efficaci, che provvedono a
sovrascrivere e "rimescolare" i files cancellati in modo da
renderne impossibile il recupero via software. Ma a livelli di
sicurezza veramente alti ci si scontra con il problema fisico
rappresentato dal fatto che i dati registrati su supporto magnetico
e successivamente cancellati con questi programmi possono comunque
essere recuperati con tecnologie (MFM, Magnetic Force Microscopy, e
MFSTM, Magnetic Force Scanning Tunneling Microscopy) che se non
sono proprio alla portata di chiunque sono gia' disponibili in
attrezzati laboratori universitari USA. Non a caso i protocolli
militari americani di sicurezza prevedono l'incenerimento per gli
hard disk dismessi. 
Quest'ultimo problema assume un aspetto particolare se si considera
che, in maniera difficilmente prevedibile, chiave privata,
passphrase, messaggi, eccetera potrebbero finire in quei file
cosiddetti di "swap" dove alcuni sistemi operativi memorizzano su
disco le operazioni che stanno compiendo (memoria virtuale) e
attraverso questo essere recuperati. Va detto anche pero' che
secondo i produttori le versioni piu recenti di PGP per Windows non
corrono il rischio passare dati a questo file, mentre sotto linux
questo con GPG non accade, se installato con i settaggi
consigliati. 
2) PROBLEMI DI SICUREZZA LEGATI A DEBOLEZZE CRITTOGRAFICHE.
Rispetto a questo va detto che l'anello piu' debole nella catena di
algoritmi, cioe' delle modalita' di crittografazione usate da PGP e
GPG [vedi nota 1] e' costituito dall'algoritmo "asimmetrico",
quello che utilizza la coppia di chiavi pubblica e privata. Per un
motivo molto semplice ed intuibile anche senza addentrarci in
particolari dettgliati: quando si genera la coppia di chiavi
pubblica e privata la relazione che lega queste due chiavi e'
collegata alla risoluzione di quello che viene definito un "hard
problem", un problema estremamente difficile da risolvere (ai
limiti dell'impossibilita' ma *non* impossibile) alla luce delle
attuali conoscenze matematiche. In base alle quali non e' che non
si conosca il *modo* per risolvere questo problema, ma
semplicemente non si ha a disposizione la colossale "potenza di
calcolo" -- nei termini di potenza degli elaboratori e tempo
disponibile -- necessaria per risolverlo. 
In altri termini un attaccante dotato della potenza di calcolo 
necessaria, disponendo di una chiave pubblica, potrebbe riuscire a
ricostruire la chiave privata corrispondente, una volta conosciuta la
quale, decifrera' il messaggio crittografato con quella chiave.
La potenza richiesta e' tanto piu' grande quanto piu' aumenta la
dimensione delle chiavi generate. Ora, l'evoluzione nella
tecnologia dei calcolatori sta aumentando enormemente la potenza di
calcolo disponibile. D'altra parte e' pur vero che questa
evoluzione favorisce l'utilizzo e la generazione di chiavi piu'
grandi che in passato. 
Qualunque considerazione sull'effettiva sicurezza crittografica di
questi software e sulle possibilita' di attacco delle agenzie di
controllo e spionaggio tipo NSA non puo' prescindere da queste
considerazioni. Il problema da porsi per una valutazione realistica
quindi e':
a) Quanta potenza di calcolo e' necessaria per sfondare una chiave
di una data dimensione?
b) Di quanta potenza di calcolo dispongono effettivamente queste
agenzie?
Al primo problema e' possibile dare una risposta concreta: il 22
Agosto di quest'anno un folto team internazionale di ricercatori
mettendo in comune le risorse umane e gli elaboratori di diverse
universita' e centri di calcolo e' riuscito a fattorializzare un
numero primo di 155 cifre, impresa equivalente allo sfondamento di
una chiave RSA da 512 bits [nota 2]
Per portare a termine questa impresa, oltre a molto lavoro umano,
si sono resi necessari i seguenti computer:
160   175-400 MHz SGI and Sun workstations
8     250 MHz SGI Origin 2000 processors
120   300-450 MHz Pentium II PCs
4     500 MHz Digital/Compaq boxes
distribuiti in 11 centri diversi, piu' l'impiego di 224 ore di CPU
e di circa 3.2 GIGAbytes di memoria centrale sul supercomputer Cray
C916 del SARA Amsterdam Academic Computer Center, assieme allo
sviluppo di un nuovo metodo di ricerca polinomiale da parte di due
matematici australiani.
Il tempo di calcolo speso da tutte le macchine per effettuare la
fattorizzazione e' assommato a circa sette mesi e mezzo.
Si consideri che la potenza di calcolo necessaria a sfondare una
chiave da 1024 bits non sarebbe semplicemente il doppio di quella
impiegata da questo gruppo di ricerca, ma cresce in misura
esponenziale, per cui lo sforzo necessario sarebbe quantificabile
come la moltiplicazione per *dieci milioni* di quello operato a
questo team di ricerca.
Come si vede, si tratta di dati che ci assicurano come sfondare una
chiave da 1024 bits, che costituiva uno standard di sicurezza
abbastanza elevato ma gia' routinario qualche anno fa sia tuttora
un compito decisamente impegnativo e fuori dalla portata di
chiunque non disponga di risorse incomparabilmente superiori a
quelle qui sopra descritte. 
Tuttavia, va riconosciuto che l'evolvere rapido della tecnologia
rende plausibile l'ipotesi che un messaggio scritto oggi con una
chiave da 1024 bits e intercettato e conservato potrebbe essere
decodificato con relativa facilita' tra qualche anno.
In ogni caso, sebbene questo compito sia al di la' delle forze
della maggior parte delle organizzazioni statali o di altra natura,
va inoltre riconosciuto che senza cadere in facili allarmismi o
favoleggiamenti fantascientifici, l'effettiva potenza di calcolo di
NSA e di altre ancora piu' segrete agenzie del genere (vedi ad
esempio i centri di decodificazione della Marina Militare
Americana, sulle cui capacita' non si sa praticamente nulla di
pubblico) non e' quantificabile.
3)UN'IPOTESI SULLA CAPACITA' DELLE AGENZIE DI SPIONAGGIo E
CONTROLLO USA
A questo proposito, chi scrive segnala un tentativo di analisi
sulla capacita' di queste agezie di decifrare la posta crittata
comparso recentemente in rete all'URL 
http://cryptome.org/tac-rp.htm
 e che si differenzia dalla consueta
paccottiglia sull'argomento per la plausibilita' delle
argomentazioni, tanto che ha sollevato parecchie discussioni in
rete all'interno della cosiddetta comunita' "crittoanarchica"
Non ne faccio una traduzione ma solo un breve riassunto, rimandando
per l'originale all'URL sopra indicata, ribadendo che le uniche
fonti sulla effettiva capacita' crittografica e di tracciamento
dell'NSA -- che continua a rifiutare informazioni allo stesso
congresso USA -- sono "indiscrezioni" sporadiche e incontrollabili,
per cui il condizionale e' *D'OBBLIGO*, come ribadito dagli stessi
autori del documento. Tali indiscrezioni potrebbero del resto
benissimo essere gonfiate, allo scopo di ingenerare sfiducia e
senso di inutilita' verso la "crittografia di massa" o costringere
le agenzie rivali a sprecare piu' risorse economiche ed umane
nell'adeguamento dei propri sistemi di sicurezza, secondo una
prassi consolidata nella guerra di spie. 
Va inoltre ricordato che gli obiettivi di NSA sono molto
diversi da quelli delle normali forze di polizia e dei servizi
segreti, e solo in casi particolari essa condivide le proprie
informazioni con la stessa FBI o con la CIA, per non parlare delle
forze di polizia statale o locale USA. 
Comunque, secondo gli autori di questo documento l'NSA dovrebbe 
essere ormai ormai capace di sfondare routinariamente (il che non
significa senza sforzo o costo) una chiave da 1024 bits, disponendo
della relativa chiave pubblica. Una chiave da 2048 bits potrebbe
talvolta essere sfondata. una chiave da 3072 bits sarebbe ancora
fuori portata della stessa NSA.  
Per quanto riguarda gli algoritmi di crittazione simmetrica, IDEA
sarebbe sfondabile con notevole spesa, 3DES ancora sicuro, mentre
su CAST non si disporrebbe di informazioni.
Per quanto riguarda i servizi di intelligence militare USA, questi
condividono routinariamente le informazioni ottenute per via
crittanalitica dall'NSA, ma non le tecniche e le tecnologie da essa
utilizzata per ottenere tali informazioni.
CIA, FBI e ad altre agenzie federali USA non condividono 
routinariamente le informazioni NSA. una chiave da 2048 bits
sarebbe ancora sicura contro le tecniche di crittanalisi impiegate
direttamente da queste agenzie -- e da analoghe agenzie di
intelligence non USA.
Analogo discorso per le polizie di stato e locali USA, per i cruppi
privati e per la grande stampa. per tutti questi una chiave da 1024
bits e persino da 512 bits (ormai dimostrata compromessa, come si
e' visto) potrebbe ancora rappresentare un ostacolo insormontabile
in molti casi.
================
NOTA 1 Una conoscenza di base nell'utilizzo di questi programmi e'
presupposta, tuttavia sara' opportuno ricordare brevente che --
sebbene siano famosi principalmente per il fatto di avvalersi di un
sistema di codifica a "chiave pubblica", tale che solo chi e' in
possesso della corrispondente "chiave privata" puo' decodificare il
messaggio -- in realta' quando si critta un messaggio con uno di
essi, si avvia un processo abbastanza complicato, che utilizza un
insieme di "algoritmi" (cioe' di procedimenti di codificazione)
diversi tra loro. 
Semplificando abbastanza le cose, a partire da un dato testo viene
creato in modo trasparente un file codificato attraverso un
algoritmo a chiave *simmetrica*, cioe' che puo' essere decifrato
disponendo di *un'unica* chiave. Questa chiave -- detta "chiave di
sessione" perche' viene ogni volta creata a random per ogni singola
sessione di crittazione -- viene per cosi' dire allegata al
messaggio dopo essere stata a sua volta crittata con la chiave
pubblica del destinatario, usando a questo scopo l'algoritmo a
chiave *asimmetrica*. Ed e' questa chiave di sessione che in
realta' per essere decodificata necessita della chiave privata del
destinatario. Quando il messaggio viene decodificato avviene il
processo inverso. 
Questo procedimento si e' reso necessario perche', a causa delle
sue caratteristiche specifiche la codificazione dell'intero
messaggio con il solo algoritmo a chiave pubblica risulterebbe
troppo lenta e il file codificato occuperebbe troppo spazio perche'
questo metodo risulti pratico. 
Va inoltre subito detto che, anche se la tecnica dell'algoritmo a
chiave pubblica (od "asimmetrici") ha consentito di risolvere in
modo brillante il problema di come consegnare la chiave di
decodifica al destinatario senza disporre di canali *sicuri* a
questo scopo, gli algoritmi di questo tipo presentano lo svantaggio
di essere piu' deboli rispetto ad attacchi di sfondamento
crittografico che non quelli a chiave unica. Vedremo
successivamente in dettaglio in cosa consiste questa debolezza e
quali ne siano le effettive conseguenze agli effetti pratici.
Tuttavia e' bene avvertire sin da ora che, essendo gli algoritmi a
chiave pubblica l'anello piu' debole nella catena di algoritmi
usati da questi programmi, per cui le risorse di eventuale
attaccante si concentrerebbero contro di essi, ci occuperemo solo
di queste possibilita' di attacco, tralasciando quelle di tipo 
"crittanalitico" contro i piu' resistenti algoritmi a chiave unica
(o "simmetrici") che al momento rappresentano piu' un'interessante
branca di ricerca crittografica che non una concreta minaccia di
cui preoccuparsi a livello di utente finale.
NOTA 2 Sebbene non ci siano ricerche di quest'ampiezza, la
sicurezza delle chiavi DH/DSS e ElG/DSA puo' essere in pratica
considerata sovrapponibile a quella delle chiavi RSA
-- 
bYeZ
T.H.E. Walrus
Key fingerprint = 82 90 B8 CB CD 47 10 56  36 58 0B 69 61 23 FD F2
PGP key available on keyservers

 politica internazionale
Ti ringrazio molto della cortesia.
Il tuo articolo sembra molto interessante (ora è in stampa).
A buon rendere.

- Quanto impiegherebbe un singolo bel PC a trovare una chiave a 4096 bit?
Alcuni parlano di milioni di anni anche a prescindere dalla lunghezza della
chiave, ma forse non hanno fatto i conti con
sistemi hardware come il Cray, in uso presso la NSA. La vera potenza del
calcolo parallelo e' infatti ancora ignota ai piu' e costituisce tecnologia
avanzata
di sicurezza internazionale.
Spero di essere stato d'aiuto per un orientamento di massima
Saluti
KF