La firma troppo può compromettere una chiave privata?

13

Si può abusare di una collezione di molti messaggi firmati con la stessa chiave privata per falsificare firme in modo da alcuni (ma non tutti i possibili), o ancora peggio per ricostruire quella chiave privata con meno sforzo di dalla chiave pubblica?

    
posta Tobias Kienzler 07.08.2012 - 12:15
fonte

3 risposte

13

Se l'algoritmo della firma è valido (e usato correttamente con chiavi sufficientemente grandi che sono state generate in modo corretto e opportunamente casuale), quindi, nella pratica , la risposta è no: avere accesso a molte firme esistenti non consentono all'aggressore di forgiare nuove, per non parlare di ricalcolare la chiave privata.

Da un punto di vista teorico: la maggior parte dello schema di firma (in realtà tutto) inizia con l'hashing del messaggio da firmare e la firma viene effettivamente calcolata sul valore hash. Pertanto, se l'autore dell'attacco ha una firma esistente S per il messaggio M , che esegue l'hash su h (M) e trova un messaggio M ' tale che h (M) = h (M') , quindi S è anche una firma valida per M ' ("firma valida" significa "una firma che verrà accettata dai verificatori"). Quindi un possibile modo di attaccare è provare molte varianti di un messaggio fasullo M ' finché non si trova uno hash allo stesso h (M) di una firma esistente, in cui indica che l'autore dell'attacco ha creato una nuova firma (più precisamente, ha riciclato con successo una firma esistente per un nuovo messaggio).

Questo è un secondo attacco preimage sulla funzione di hash. Avere molte firme esistenti offre più bersagli per l'attaccante, il che rende più facile l'attacco. Ma più semplice non è facile . Un algoritmo di firma "normale" utilizzerà le funzioni di hash che sono abbastanza forti e con un output sufficientemente ampio che gli attacchi di second preimage non sono fattibili, per qualsiasi numero pratico di obiettivi. Per inserire alcune figure al suo interno: con una funzione hash a 160 bit (ad es. SHA-1), il costo di un attacco con preimage secondario con un obiettivo è circa 2 160 ; se l'attaccante può raccogliere un milione di firme esistenti, il costo scende a circa 2 140 : questo è un milione di volte più semplice, ma comunque troppo difficile (es. vedi there ).

Nota la stampa fine, però: insisto perché l'algoritmo sia usato correttamente. Ad esempio, considera DSA (o la sua variante di curva ellittica ECDSA). Quando si calcola una firma, è necessario generare un valore casuale k scelto in modo uniforme nell'intervallo [1..q-1] per un dato numero intero intero q (è necessario un nuovo k casuale per ciascuna firma). Se la scelta è parziale in qualche modo, questo potrebbe essere sfruttato per un attacco di recupero chiave. Un caso estremo è la debacle di Sony-PS3, in cui hanno usato un valore fisso di k , sempre lo stesso indipendentemente dal messaggio da firmare. Questo è molto sbagliato: due firme conosciute sono sufficienti per ricostruire la chiave privata. Più in generale, Bleichenbacher ha dimostrato (una dozzina di anni fa) che se k viene scelto prendendo una stringa casuale di bit della stessa dimensione di q , quindi riducendo modulo q , quindi il leggero bias è sufficiente per ricostruire la chiave privata da circa 2 63 firme conosciute (per un q 160 ).

Ovviamente, in quella situazione, il problema non è consentire all'utente malintenzionato di vedere molte firme, ma di usare l'algoritmo in modo improprio. L'implementazione degli algoritmi crittografici è difficile (bambini, non farlo a casa!).

    
risposta data 07.08.2012 - 19:41
fonte
7

No, almeno non per i moderni schemi di firma. L'attacco / preoccupazione che descrivi è simile agli attacchi comuni considerati quando si esegue una prova di sicurezza. In particolare, l'attacco adattativo del messaggio scelto è più legato a ciò che descrivi.

In questo attacco l'utente malintenzionato invia un messaggio al firmatario, che restituisce la firma del messaggio. L'attacco sceglie quindi un altro messaggio (basato sulle informazioni acquisite dalla prima firma) e il firmatario firma quel messaggio. Continuano questo a lungo come desidera l'attaccante.

Una volta che l'attaccante ha terminato, è necessario forgiare una firma per un messaggio che non è stato interrogato durante il primo processo. I moderni schemi di firma si sono dimostrati sicuri contro questo tipo di attacco (ad esempio RSA-PSS ).

I codici moderni sono stati anche provati sicuri contro gli attacchi in cui un l'utente malintenzionato potrebbe utilizzare le informazioni acquisite dalle firme per ottenere la chiave privata.

    
risposta data 07.08.2012 - 16:41
fonte
0

Può, potenzialmente, ad es. se i dati sono fotogrammi video e la modalità di funzionamento è ECB o non esiste un IV casuale, prevedendo cosa sta cambiando sui dati di origine, è possibile recuperare la chiave. Ad esempio, è il caso di alcuni tipi di crittografia satellitare.

    
risposta data 08.08.2012 - 04:39
fonte

Leggi altre domande sui tag