GNU/Linux >> Tutoriels Linux >  >> Linux

RdRand de /dev/aléatoire

Il s'agit d'une implémentation matérielle qui n'a pas été testée formellement et qui est propriétaire. L'inquiétude potentielle est qu'Intel aurait pu détourner l'implémentation à la demande de la NSA.

La façon actuelle de mélanger la sortie rdrand dans le noyau Linux PRNG est qu'elle est xor'ed dans le pool, ce qui signifie mathématiquement qu'il n'y a aucun moyen possible pour une sortie faible de l'implémentation rdrand d'affaiblir le pool global - cela le renforcera ou ne rien faire à la sécurité.

Cependant, le risque réel est que l'instruction xor soit dérobée d'une manière qui détecte l'utilisation de rdrand dans un scénario spécial, puis produit une sortie différente lorsque xor est appelé, provoquant uniquement la sortie rdrand délibérément affaiblie à placer dans le pool.

Réalisable? Oui. Plausible? Compte tenu des révélations récentes, peut-être. S'il s'agit d'une porte dérobée, Linus en est-il complice ? Votre supposition est aussi bonne que la mienne.

Il existe également un excellent article sur le masquage des portes dérobées matérielles au niveau des transistors dans les processeurs.

Modifier, février 2019. L'utilisateur Luc a commenté ci-dessous que les choses ont changé depuis la rédaction de cette réponse :

Depuis Linux 4.19, le noyau fait confiance à RDRAND pour amorcer entièrement son CSPRNG, à moins que l'on ne passe l'indicateur random.trust_cpu=0 au démarrage (ou qu'on ne le définisse au moment de la compilation). Cela ne devrait pas être un problème s'il ne s'agit pas de votre premier démarrage, mais les systèmes nouvellement installés ou les machines virtuelles nouvellement créées peuvent avoir un fichier de démarrage prévisible (ou aucun fichier de démarrage du tout), donc pour ces systèmes, cela est pertinent pour collecter une bonne entropie.


L'instruction RdRand est cassée sur Ivy Bridge en raison d'un bogue matériel qui est apparu sur ces processeurs. Il n'est pas invraisemblable qu'il y ait une raison autre qu'une erreur à cela. Les algorithmes cryptographiques qui ont été semés à l'aide d'algorithmes pseudo-aléatoires déterministes sont probablement des centaines de millions de fois plus faciles à casser que ceux semés avec de véritables nombres aléatoires. J'ai en fait une application d'ingénierie qui bénéficierait de cette instruction, mais cela provoque une exception d'instruction illégale de mon nouvel ordinateur portable Ivy Bridge. Puis-je récupérer mon argent ? Vous pouvez voir l'entrée Wikipedia sur RdRand pour des informations initiales sur le bogue matériel.


Linux
  1. Comment générer un mot de passe aléatoire sous Linux en utilisant /dev/random

  2. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  3. Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

  4. Linux – Que signifie la lettre « u » dans /dev/urandom ?

  5. Comment encoder en base64 /dev/random ou /dev/urandom ?

tty (/dev/tty ) vs pts (/dev/pts) sous Linux

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

DD de /dev/zero à /dev/null...ce qui se passe réellement

Pourquoi dd de /dev/random donne-t-il des tailles de fichiers différentes ?

Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

noyau :désactiver /dev/kmem et /dev/mem