
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: Maggio 2002 ml@sikurezza.org Soggetto: Re: programmazione web "sicura" Mittente: antirez Data: 5 May 2002 00:57:13 -0000
On Fri, May 03, 2002 at 10:27:26PM +0200, Marco Ivaldi wrote: > > >Un sistema non crackabile per me non esiste per definizione > > > > Ovvio! > > L'One Time Pad puo' essere considerato unbreakable per definizione. Dal Gia' > testo cifrato si puo' risalire a potenzialmente infiniti messaggi "in > chiaro" differenti. Certo e' che se vengono meno le premesse fondamentali > (ad esempio la randomicita' del pad - cosa molto difficile da realizzare Ma.. alla fine dipende da quanta importanza hanno i dati da cifrare. E' abbastanza facile farsi dei buoni generatori filtrando con una funzione ad una via rumori che becchi in diverse frequenze radio e magari combinarli (facendo xor prima di far passare i dati dalla funzione di hashing) con un generatore hardware basato su qualche fenomeno fisico non predicibile. Insomma... a riempire un CD con una buona pad ci si sta poco e si spende poco, a patto di avere cognizioni minime di crittografia. > in un impiego pratico) puo' diventare vulnerabile. Inoltre e' scomodo da > usare e improponibile nella maggior parte dei casi reali, e presenta > l'incoveniente che la chiave puo' essere desunta XORando il testo in > chiaro con il cifrato. In alcuni casi e' assolutamente pratico. Faccio un CD con una pad e ne faccio una copia per il mio amico topolino che abita dall'altra parte del mondo. Noi scambiamo solo messaggi di testo di pochi bytes che contengono informazioni _vitali_. con 650MB di pad possiamo sambiare davvero tanti tanti messaggi senza l'incubo della NSA e robe varie. Mi sembra molto pratico... La seconda affermazione del periodo invece merita qualche approfondimento. Tu dici: "e presenta l'inconveniente che la chiave puo' essere desunta xorando....". Poiche' ogni bit della pad si utilizza per cifrare un solo bit, e non viene mai piu' usata, l'unico suo scopo e' proteggere quel bit di plaintext. Una volta che conosci il plaintext ti frega davvero poco del pezzo di pad usato per cifrarlo visto che si assume che quel pezzo: 1) non verra' mai piu' usato per cifrare nulla 2) non da alcun vantaggio nel cercare di indivinare un pezzo di pad alla sua destra o alla sua sinistra. Nessun problema dunque Ma forse ti riferivi al fatto che chi riesce ad immaginare il plaintext puo' alterare il ciphertext in modo che questo si decifrera' in qualcosa di particolare scelto dall'attacker. Questo problema e' piu' che reale purtroppo ma anche per questo ci sono soluzioni molto buone. Tanto per spararne una magari non ottimale nella pratica ma matematicamente semplice da provare: io e topolino ci scambiamo oltre alla pad una sbox di 8*8 che usiamo come trasformata non lineare per cifrare prima di fare l'xor del plaintext con la pad. Se la sbox e' stata calcolata utilizzando una permutazione davvero casuale e il sistema viene usato per scambiare dei messaggi con parole lunghe e molte ridondanze (ovvero sappiamo che non dobbiamo usare cose come "si" o "ok" ma "affermativo, ripeto, sono esattamente d'accordo con te"), la possibilita' che l'attacker faccia spoofing e' assolutamente trascurabile, ovvero praticamente nulla. Altrimenti possiamo usare un piu' classico HMAC-SHA1 o robe del genere, ma la soluzione che usa la sbox era tanto per restare negli ambiti del "provabile matematicamente". ciao, Salvatore -- Salvatore Sanfilippo <antirez at invece dot org> http://www.kyuzz.org/antirez finger antirez@tella.alicom.com for PGP key 28 52 F5 4A 49 65 34 29 - 1D 1B F6 DA 24 C7 12 BF ________________________________________________________ http://www.sikurezza.org - Italian Security Mailing List
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005