Ci sono attacchi pratici su generatori di numeri casuali?

6

Sto creando un corso di sicurezza interno per gli sviluppatori. Per renderlo più interessante, sto cercando di rinforzare ogni capitolo con alcuni attacchi del mondo reale ma sono incappato in una sezione di utilizzo casuale non sicura.

Quindi, supponiamo che l'RNG pronto all'uso (qualsiasi linguaggio di back-end popolare sia a posto) viene utilizzato in modo non sicuro (ad esempio, per la generazione della funzionalità delle password). Esiste un algoritmo passo-passo o uno strumento automatico in grado di calcolare lo stato RNG e i valori precedenti / futuri?

    
posta getupandgo 29.11.2018 - 16:15
fonte

4 risposte

3

PRNG uso non sicuro: Una dimostrazione estremamente ingenua di questo (se si vuole fare un laboratorio) è usare un seme derivato dal tempo corrente per generare una password Pseudo Casuale per un gestore di password open source (si potrebbe aggiungere qualche altro dato di conoscenza se si voglio farlo sembrare più casuale). Se gli studenti notano questo fatto nella fonte, potrebbero prevedere le password. Ovviamente la fonte non è effettivamente necessaria per determinare queste informazioni (accelererebbe semplicemente il laboratorio)

per gli esempi ben noti del mondo reale controlla link

    
risposta data 29.11.2018 - 16:28
fonte
3

Sì, c'è. Vedi Factorable per un famoso esempio in cui le chiavi RSA e DSA sono state generate immediatamente dai dispositivi incorporati quando sono stati avviati quando è stata rilevata una casualità insufficiente:

We performed a large-scale study of RSA and DSA cryptographic keys in use on the Internet and discovered that significant numbers of keys are insecure due to insufficient randomness. These keys are being used to secure TLS (HTTPS) and SSH connections for hundreds of thousands of hosts.

Nearly all the vulnerable hosts are headless and embedded network devices, such as routers, firewalls, and server management cards. These types of devices often generate keys automatically on first boot, and lack many of the physical sources of randomness used by traditional PCs to generate random numbers. We identified apparently vulnerable devices and software from 54 manufacturers and notified these companies about the problems.

Leggi il loro documento di ricerca per vedere esattamente come hanno fatto questo.

    
risposta data 30.11.2018 - 01:55
fonte
2

Alcuni degli algoritmi PRNG standard nei linguaggi di programmazione possono essere interrotti dopo aver visto un numero sufficiente di campioni. Fai riferimento a link per una descrizione e link a uno script di esempio.

    
risposta data 29.11.2018 - 22:25
fonte
2

L'attacco che descriverò è un po 'diverso da quelli menzionati in altre risposte, nella misura in cui si tratterebbe di un attacco basato sull'hardware, e nella misura in cui richiederebbero anni di pianificazione e una significativa influenza finanziaria. Rappresenta anche un tipo non algoritmico di errore PRNG, che è probabilmente il più applicabile alla tua classe: basare tutta l'entropia su una sola fonte può ritorcersi contro se l'entropia può essere avvelenata.

In teoria, è possibile creare un componente hardware che genera numeri per un algoritmo che si conosce e quindi vendere l'hardware pur affermando che si tratta di un vero RNG. Qualsiasi codice che usi quell'hardware per generare tutta la sua entropia sarebbe facilmente attaccabile dal produttore di quell'hardware.

(Anche se questo può sembrare fantastico, esiste una legittima preoccupazione che una tale situazione possa verificarsi nella vita reale, come con Intel Istruzione RdRand .)

    
risposta data 01.12.2018 - 05:57
fonte

Leggi altre domande sui tag