[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


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