Pubblicato da: Pedro | novembre 19, 2007

Windows e i numeri molto pseudo e poco casuali

Tutti gli algoritmi di crittografia, SSL in primis, per funzionare han bisogno di un generatore di numeri pseudo-casuali. Se questi numeri non sono abbastanza casuali ma possono essere in qualche modo previsti o interpretati, il funzionamento della crittografia è minato dall’interno.


Quello che è stato scoperto da dei crittoanalisti israeliani è proprio questo. All’attaccante è sufficiente conoscere il valore di alcune aree di memoria (in user space, tral’altro) per forzare la vostra comunicazione crittata. Questo vale ovviamente anche per le transazioni fatte con https con le carte di credito, ma penso agli istituti bancari e altri enti che trattano dati sensibili

Il “bug” è stato trovato in windows 2000 ma c’è buona probabilità che sia replicato in ogni versione di windows. Maliziosamente penso che la cosa non sia per niente nuova ad agenzie tipo l’NSA o simili e probabilmente non è nemmeno l’unica backdoor in questo sistema. Mi rifiuto di credere che a nessuno sviluppatore microsoft sia mai saltato in mente il problema.

Non so se vi rendete conto della portata di questa scoperta! Non è un semplice bug, è un calcio nei denti di chi ha affidato i propri dati e soldi ad un sistema fatto per essere bucato.

Il paper completo a questo indirizzo. Eccovi l’abstract:

The pseudo-random number generator (PRNG) used by the Windows operating system is the most commonly used PRNG. The pseudo-randomness of the output of this generator is crucial for the security of almost any application running in Windows. Nevertheless, its exact algorithm was never published.

We examined the binary code of a distribution of Windows 2000, which is still the second most popular operating system after Windows XP. We reconstructed, for the first time, the algorithm used by the pseudo-random number generator (namely, the function CryptGenRandom). We analyzed the security of the algorithm and found a non-trivial attack: given the internal state of the generator, the previous state can be computed in $O(2^{23})$ work (this is an attack on the forward-security of the generator, an $O(1)$ attack on backward security is trivial). The attack on forward-security demonstrates that the design of the generator is flawed, since it is well known how to prevent such attacks.

We also analyzed the way in which the generator is run by the operating system, and found that it amplifies the effect of the attacks: The generator is run in user mode rather than in kernel mode, and therefore it is easy to access its state even without administrator privileges. The initial values of part of the state of the generator are not set explicitly, but rather are defined by whatever values are present on the stack when the generator is called.Furthermore, each process runs a different copy of the generator, and the state of the generator is refreshed with system generated entropy only after generating 128 KBytes of output for the process running it. The result of combining this observation with our attack is that learning a single state may reveal 128 Kbytes of the past and future output of the generator.

The implication of these findings is that a buffer overflow attack or a similar attack can be used to learn a single state of the generator, which can then be used to predict all random values, such as SSL keys, used by a process in all its past and future operation. This attack is more severe and more efficient than known attacks, in which an attacker can only learn SSL keys if it is controlling the attacked machine at the time the keys are used.

Commentate, vi prego. Io son senza parole.

Annunci

Responses

  1. La notizia si commenta da sola a mio avviso … o sbaglio?

  2. Direi che qualcuno alla Microsoft ha confuso “casualità” con “causalità” e come sempre in questi casi il sospetto di dolo rimane.

  3. occhio che SSL non è un algoritmo di crittografia!

  4. […] pseudocasuali, hanno sempre avuto una imprevedibilità sufficiente per l’attività normale. Se così non fosse stato, ciò avrebbe minato tutti gli algoritmi di crittografia, SSL (Secure Socket Layer) […]


Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Categorie

%d blogger hanno fatto clic su Mi Piace per questo: