Warum verwendet der Linux-Kernel get_random_int(), um stack_canary oder stack_top zu generieren?

Warum verwendet der Linux-Kernel get_random_int(), um stack_canary oder stack_top zu generieren?

Es gibt einen Zufallszahlengenerator im Linux-Kernel. Dieser wird normalerweise LRNG (Linux Random Number Generator) genannt. Wir können ihn verwenden, indem wir aufrufen get_random_bytes(). Aber stack_canaryund stack_topwerden von generiert get_random_int(). Obwohl der Linux-Kernel einen eigenen guten Zufallszahlengenerator (LRNG) hat, warum generiert der Linux-Kernel ihn von get_random_int()? Ich denke, es liegt vielleicht an der Effizienz. Ist das richtig?

Antwort1

NurLesen Sie die Quelle:

Holen Sie sich ein zufälliges Wort, das nur für den internen Kernelgebrauch bestimmt ist. Ähnlich wie urandom, aber mit dem Ziel einer minimalen Entropie-Pool-Verringerung. Infolgedessen ist der Zufallswert nicht kryptografisch sicher, aber für einige Verwendungszwecke sind die Kosten der Entropie-Verringerung zu hoch.

Deshalb get_random_intwird nicht einfach die Ausgabe von übernommen get_random_bytes. Tatsächlich sind die Argumente hier aus zwei Gründen falsch:

  • Die Entropie nimmt nicht wirklich ab. Das ist nur eine Scheinberechnung innerhalb des Kernels.
  • Selbst wenn die Entropie abnimmt, wäre das kein Grund, keinen kryptografisch sicheren Pseudozufallszahlengenerator anstelle einer Ad-hoc-Konstruktion zu verwenden. Verwenden Sie einfach eine andere Instanz als die, die die Entropie abnimmt /dev/random. Die Leistung könnte ein Grund sein, aber der Unterschied zwischen einem richtigen CSPRNG wie Hash_DRBG/SHA-2 und der Ad-hoc-Konstruktion hier mit MD5 ist winzig.

Antwort2

Linux /dev/random, /dev/urandomund get_random_bytes()sind an denselben internen Entropiepool gebunden. Es ist durchaus möglich, ihn zu leeren, wenn er nur für RNG verwendet wird, und so /dev/randomeine Blockierung und /dev/urandomAusgabe mit niedriger Entropie zu verursachen. Dieser Zustand niedriger Entropie schafft Probleme für Krypto.

verwandte Informationen