Newsgroup: it.comp.sicurezza.crittografia
Titolo: file cifrato di contenuto noto -> chiave di cifratura?

Premetto che sono assolutamente ignorante in materia.
Supponiamo che un certo file sia stato cifrato secondo l'algoritmo X (a 
cifratura simmetrica, come l'AES) usando la password Y.
Conoscendo il contenuto del file, per quali algoritmi X è possibile 
risalire alla password Y?
Tutti? Qualcuno? Nessuno?
Grazie.

Savux ha scritto:

Il tuo è il classico caso che viene in mente quando si pensa alla
violazione di un messaggio cifrato, vale a dire la situazione del "solo
testo cifrato noto", il caso più comune che possa capitare.
L'attaccante è nelle peggiori condizioni, perché ha il minimo di
informazioni a disposizione. Ovviamente i risultati ottenibili
dall'attaccante dipendono da molti fattori: la robustezza della chiave,
la robustezza dell'algoritmo, possibilità di social engineering nei
confronti dell'attaccatto ecc...
-- 
Ciao.
Leo.
Web: 
www.leonardomiliani.com
E-mail: 
leon...@leonardomiliani.com
Scegli software opensource - Choose opensource software
Co-fondatore di Gambas-it.org
Il sito di riferimento della comunità italiana degli utenti di Gambas
www.gambas-it.org

 confronti dell'attaccato ecc...
pur considerando vero quanto dici, direi che la risposta è forviante.
lui chiedeva se da una coppia cifrato/chiaro fosse possibile risalire alla 
chiave, le soluzioni che hai portato sono modi *diversi* per raggiungere 
lo stesso risultato, ma che poco hanno a che vedere con l'algoritmo.
AES è sicuro, resiste a tutti gli attacchi noti ad oggi, ma il social 
engineering, il bruteforce e rubber-hose attack possono romperlo, ma non 
per questo smettiamo di usarlo... o no? ;-)



Quello che delinei è un attacco a known plaintext, e per algoritmi seri 
non è un problema, anzi dopo la Onewayness credo sia l'attacco più 
classico (noto anche come attacco in blackbox, cioè hai una scatoletta 
dove inserisci da un lato il tuo messaggio in chiaro e dall'altro esce 
quello cifrato o anche nel senso inverso -la differenza con quanto chiedi 
tu è che qui l'attaccante ha tutto tranne la chiave, ma soprattutto ha la 
*possibilità di scegliere quali messaggi* (de)cifrare).
ad esempio per AES non è un problema, puoi avere molte coppie chiaro/
cifrato e non avrai nessuna informazione sulla password usata.
Per XOR il problema invece è grosso, Chiaro XOR Cifrato = Chiave, quindi 
la conoscenza di una sola coppia espone la chiave.

Parla di file cifrato, e poi dice "conoscendo il contenuto del file".
Io l'ho inteso come "file cifrato", anche perché se ho il file in
chiaro, dov'è il problema nel recuperare lo stesso? :-))


 chiaro, dov'è il problema nel recuperare lo stesso? :-))
E dove lui direbbe che il problema riguarda il recuperare *lo stesso* ?
Magari - invece - il problema è proprio recuperare una *ALTRO* file, 
cifrato con la stessa chiave.
Del resto, se avesse solo il file cifrato, la domanda sul come 
recuperare la chiave non avrebbe alcun senso.
ciao, f.


Sì, hai interpretato esattamente la mia domanda. Mi spiace di avere 
involontariamente fuorviato qualcun altro.
Tanto per chiarire, mi interessava dare una risposta alla seguente 
domanda originaria: sarebbe possibile sviluppare una versione portabile 
di Firefox (per sistemi Windows) che impedisca di accedere i dati 
personali (password, cookie, cronologia, segnalibri) anche in caso di 
furto o smarrimento del supporto removibile su cui viene usata?
Non mi interessa considerare i programmi di cifratura on-the-fly come 
TrueCrypt o OTFE, perché non possono essere usati, anche in versione 
portabile se non si dispone dei diritti di amministratore.
Mi è venuta così in mente la possibilità (almeno teorica) di sviluppare 
una versione portabile che, in base a una password scelta dal 
proprietario, cifrasse i file usati dal programma prima di scriverli su 
disco, e li decifrasse prima di leggerli.
Ovviamente la cosa non avrebbe avuto alcun senso se la decifrazione di 
un file avesse compromesso la sicurezza di tutti gli altri, dato che 
Firefox fa uso di alcuni file il cui contenuto è nella maggior parte dei 
casi noto.
Le vostre risposte mi dicono che questa eventualità non sussiste. Ciò 
aumenta la mia curiosità sulle effettive possibilità di realizzazione 
della versione di Firefox che ho detto.
Può darsi che ci siano difficoltà di altro tipo. Per esempio, ricordo di 
avere letto che in Firefox 3 i segnalibri sono registrati in un database 
sql o similare. Tuttavia, se mi limito a considerare Firefox 2, mi 
sembra che tutti i file di configurazione e di memorizzazione dei dati 
di navigazione siano dei puri file di testo per i quali non dovrebbero 
sussistere problemi di cifratura e decifratura completa.

 sussistere problemi di cifratura e decifratura completa.
firefox ha già qualcosa di simile per le coppie login/password salvate.
cmq potresti farlo senza nessun problema.
potresti usare una cosa tipo un portable gnupg (esiste?) e cifrare 
l'intera cartella dell'installazione di firefox (anche di questo direi una 
versione portable) eventualmente tarrata.
poi la decomprimi, esegui firefox e via.
attenzione però: i file decompressi se scritti su disco esterno sono 
accessibili in un secondo momento se cancellati semplicemente via 
windows... o usi qualcosa per il wipe (ma attenzione alla memoria flash, 
sono sensibili alle troppe scritture) o lo decomprimi in RAM o sul 
computer host (e qui devi vedere se è un problema o meno per te fidarti 
dei computer host su cui lo esegui)
(riguardo sql, firefox dovrebbe usar sqlite, e i database sono dei file di 
testo)

 dei computer host su cui lo esegui)
Non mi sono ancora spiegato: io NON voglio decomprimere la cartella di 
Firefox prima di eseguirlo, io voglio eseguirlo aspettandomi che 
effettui AL VOLO (ON-THE-FLY) le operazioni di lettura/scrittura su 
disco passando per il tramite di un algoritmo di cifratura.

 disco passando per il tramite di un algoritmo di cifratura.
credo tu debba mettere le mani pesantemente a fondo nel codice...
a meno di trovare il modo di installare firefox nella tua chiavetta 
cifrata con dmcrypt o simili... (ma mi pare dicessi di essere 
impossibilitato in questa strada dal fatto che i programmi che gestiscono 
le partizioni cifrate debbano essere eseguiti con i privilegi di admin)

 disco passando per il tramite di un algoritmo di cifratura.
Problema interessante.
Se ho capito bene, tu vorresti che Firefox crittografasse i
dati prima di scriverli e viceversa.
Il che sarebbe un po' come se le librerie standard C dessero
la possibilita` di sostituire open/read/write/close con cose
tipo crypto-open/crypto-read/etc.
Mi domando se qualche libc offre questa possibilita`.
Un primo dubbio mi verrebbe sul key-management, pero`'
bye,
-- 
piergiorgio

> credo tu debba mettere le mani pesantemente a fondo nel codice...
Lo penso anch'io. Del resto, non ne sarei assolutamente capace.
Mi interessava sapere almeno se esisteva la possibilità teorica di 
farlo. Una volta accertato questo, forse non è vano sperare che prima o 
poi qualcuno implementi questa idea.

 Un primo dubbio mi verrebbe sul key-management, pero`'
Non sono per nulla esperto in materia, quindi non sono in grado di 
commentare ciò che hai scritto.

 tipo crypto-open/crypto-read/etc.
Scusa, prima avevo letto male queste righe del tuo messaggio, e ti avevo 
risposto: più o meno. Ora mi sembra invece che hai colto perfettamente 
il punto della questione.

 Un primo dubbio mi verrebbe sul key-management, pero`'
quello è un problema che c'è in ogni implementazione :-)

 quello è un problema che c'è in ogni implementazione :-)
A naso direi che e` la limitazione principale.
bye,
-- 
piergiorgio

 portable firefox credo risolvano il problema iniziale.
Ti stai contraddicendo da solo. Prima affermi che non è possibile 
sostituire le chiamate di read/write senza i diritti di Amministratore, 
quindi affermi che TrueCrypt portable lo fa.
Comunque, ti smentisco. TrueCrypt portable, come QUALUNQUE altro 
programma di cifratura on-the-fly, NON può essere eseguito senza i 
diritti di Amministratore. La documentazione di TrueCrypt lo dice 
esplicitamente.

 quindi affermi che TrueCrypt portable lo fa. 
vero.
scusa, ma tra l'ora e il raffreddore/influenza ho sbroccato un po'.
ciao ciao