2

これは、 「urandom に似ていますが、エントロピー プールの枯渇を最小限に抑えることを目的としています」random.cというカーネル ソースで言及されています。get_random_intしかし、どこで (そしてどのように)get_random_intエントロピー プールと相互作用するのでしょうか?

さて、urandom実際に を呼び出しますextract_entropy_userが、 に似たものは見当たりませんget_random_intget_random_int独自のエントロピー ソースを使用しているようです(キーボード、マウス、およびディスクのアクティビティとは関係ありません)。

hash[0] += current->pid + jiffies + get_cycles();

システムで一般的に利用可能なエントロピーの状態を気にしない(または更新しない)のですか?

エントロピー プールはどのようにget_random_int枯渇しますか? これはどこで更新されますか? プログラムを実行すると、entropy_avail で cat を実行するだけで、エントロピー プールがどのように枯渇するかを確認できるため、何かが足りないか、ソースを間違って読んでいることがわかります。

http://xorl.wordpress.com/2011/01/16/linux-kernel-aslr-implementation/を調べましたが、これがどのように機能するかについては言及されていないようです。

4

2 に答える 2

1

私の知る限り、エントロピープールを直接枯渇させることはありません。低品質の乱数を返すだけです。これは、ISN seq生成(定期的に更新される)で使用されるシークレットハッシュ、それ自体のCPUごとの状態、およびpid / time/cyclesに依存します。

これは、エントロピーが低いときにブロックされないという点で、主にurandomに似ています。

于 2013-03-07T14:37:05.577 に答える