Possiamo acquisire l'output della funzione Windows CryptGenRandom. Supponiamo che un'applicazione stia utilizzando CryptGenRandom, in quanto utente possiamo sapere quale è il numero casuale generato e assegnato all'applicazione
Se hai il controllo sull'ambiente in cui viene eseguita l'applicazione, in pratica, se hai accesso all'account con cui viene eseguita l'applicazione, puoi osservare tutto ciò che fa. Basta eseguire l'applicazione con un debugger e inserire un breakpoint o una traccia sulle chiamate a CryptGenRandom
.
Se non hai il controllo sull'esecuzione del programma, non puoi acquisire l'output di questa o di altre funzioni. L'alternativa sarebbe quella di prevedere l'output. Non è possibile prevedere l'output di CryptGenRandom
, perché è un generatore di numeri casuali di crittografia e non è implementato così male da essere completamente infranto. L'intero punto della casualità della cripto-qualità è che è imprevedibile. L'unico modo per prevedere il valore è di avere accesso a tutte le fonti di entropia della macchina e di conoscere tutte le volte in cui viene chiamato CryptGenRandom
in modo da poter ricreare lo stato dell'RNG. In pratica, se puoi farlo, puoi eseguire un debugger.
Leggi altre domande sui tag windows key-generation entropy