web-dev-qa-db-ja.com

FreeBSD乱数ジェネレーターを手動でシードできないのはなぜですか?

数年前、次のように設定することで、FreeBSDで乱数ジェネレーターを手動でシードできました。

sysctl -w kern.random.sys.seeded = 0

...その後、SSHキーを(意図的に)削除してsshdを再起動すると、RNGをシードするために、キーボードを1〜2ページマッシュする必要があります。次に、sshdはそのシードに基づいて新しいsshキーを作成します。

これはもはや不可能です-sysctlはもはや存在せず、sshdは既存のキーを消去するたびに新しいキーを喜んで作成します。

RNGを手動でシードする方が安全であるとは示唆していませんが、それはさらに悪い可能性がありますが、なぜこれが不可能になったのか、もしそうなら、2019年にこれをどのように行うことができるのかを尋ねています(FreeBSD12)。

2
user227963

私はこの分野の専門家ではありませんが、AFAIK FreeBSDはエントロピーの単一のプールを維持し、CPU、ネットワークインターフェイス、マウスとキーボードの入力など、さまざまなソースからのランダムデータをシードします。

したがって、「シード」するには、すぐに「キーボードをマッシュ」するだけで、ランダム性がプールに追加されます。

やや関連性のある質問: https://crypto.stackexchange.com/questions/56390/seeding-the-fortuna-prng-for-the-first-time

1
arrowd