• [^] # Re: Script kiddie

    Posté par . En réponse au journal Des nombres aléatoires dans le noyau Linux. Évalué à 4.

    RDRAND → pool d'entrée entrée (le brassage) → pool d'entrée en sorti → pool de sortie en entrée (le brassage) → pool d'entrée en sortie (chacha20)

    Euh, non.

    1) RDRAND n’est pas vraiment considérée comme une source d’entropie, et à ce titre les octets produits par RDRAND ne suivent pas le chemin « normal » comme ceux produits par les autres sources d’entropie. RDRAND est plutôt traitée comme une sorte « d’agent confondant », intervenant à différents points le long du trajet pour semer un peu plus de désordre.

    Même lorsque RDRAND est utilisée pour initialiser le CSPRNG (avec l’option RANDOM_TRUST_CPU), cela passe par un chemin à part (directement RDRAND -> CSPRNG), sans passer par le pool d’entrée et donc sans contribuer au compteur de « l’entropie disponible ».

    2) Le « chaînage d’algo » entre les sources d’entropie et les périphériques de sortie est le suivant (dans le cas des version ≥ 5.6) :

    source d’entropie -> fonction de mixage du pool d’entrée -> fonction d’extraction du pool d’entrée (en gros SHA-1) -> initialisation du CSPRNG ChaCha20 -> extraction depuis le CSPRNG

    D'ailleurs j'ai une question, maintenant que le pool de sorti bloquant n'existe plus quel est l'intérêt de distinguer le pool d'entrée du pool de sorti ?

    Pas sûr de comprendre là... Il n’y a plus de pool de sortie. Les pools de sortie, c’était le pool non-bloquant et le pool bloquant. Les deux n’existent plus, tous deux remplacés par le CSPRNG ChaCha20.

    Le seul pool qui reste désormais est le « pool d’entrée ».