14/11/2007 @ 14:18:14: Sécurité - La fonction aléatoire de Windows n'est pas si aléatoire
Une équipe de cryptographes israéliens de l'université d'Haifa ont réussi à mettre à jour l'algorithme de Microsoft pour la fonction de cryptage
CryptGenRandom proposée dans Windows 2000 et ses successeurs.
En réalité d'après les chercheurs, la fonction n'est pas aussi aléatoire qu'on le dit sur papier. Moyennant quelques calculs, il serait même possible à l'avance de déterminer le nombre qui sera réellement généré par la fonction ce qui met un peu à mal le système. Pour rappel, le SSL ainsi que d'autres protocoles se basent sur le fait que ce nombre est totalement aléatoire.
L'équipe d'Haifa demande à Microsoft de publier son code au plus vite afin qu'ils puissent y apporter des améliorations.
Windows random number generator is so not random: http://www.theregister.co.uk/2007/11/13/windows_random_number_gen_flawed/
Cryptanalysis of the Random Number Generator of the Windows Operating System: http://eprint.iacr.org/2007/419
comment on fait pour générer un nombre *totalement* aléatoire ?
adhes> Seuls les israéliens peuvent le dire
Tu prends un nombre aléatoirement puis tu prends le suivant.
Il n'y a jamais de totalement aléatoire. Le but est plutôt d'avoir des nombres peu prévisible. Tu peux, par exemple, te baser sur le temps pris par une action d'un utilisateur.
les mouvements de souris ... c'est pas mal non plus
Pour autant qu'il y en ait (sur un serveur c'est pas garanti
)
Mais si on prend des infos des process en cours (uptime, occupation mémoire, etc.) on doit pouvoir générer des nombre assez aléatoires, non ?
Dernière édition: 15/11/2007 @ 09:49:30
GnuPG se base soit sur des entrées clavier/souris soit les accès au disque dur, je pense.
Et CryptGenRandom se baserait sur les accès de WindowsUpdate alors ?
Entropie des interruptions des drivers aussi...
Enfin ce serait aussi prévisible, dixit MISC.
Mais eux c'est vraiment des arach'
ou des paranos.
Sous pingouin, la variable d'envirronement $RANDOM est epoustouflante.
Il y a des puces dédiées pour générer des nombre aléatoire.
Je sais qu'Intel bossait dessus il y a quelque temps.
Sinon je sais aussi qu'il y a un truc avec la radioactivité.
C'est pitetre pour ça que RAND() de MySQL puducul.. il doit se baser sur la souris ou les mouvements webcam je sais pas.. mais sur les serveurs ca te renvoie assez souvent le même