FreeBSD刑務所にエントロピープールがないのはなぜですか?

FreeBSD刑務所にエントロピープールがないのはなぜですか?

FreeBSDスクリプトがエントロピーを生成することがわかりました。

刑務所から脱出すると飛び出します。

# uname -srm  ## notice: install of mfsBSD (https://mfsbsd.vx.sk)
FreeBSD 11.2-RELEASE-p7 amd64

# grep jail /usr/libexec/save-entropy 
[ $(/sbin/sysctl -n security.jail.jailed) = 0 ] || exit 0

その理由は何ですか?

  • 刑務所でホストがどの程度ランダム性を持つのは安全ではありませんか?

  • 各刑務所がランダムな価値プールを共有するのは安全ではありませんか?

  • 刑務所内で実行されているプログラムのランダム性は、これによって影響を受けませんか?

ありがとう、

男の名前

答え1

長すぎます。エントロピープールは起動中にのみ使用されます。乱数を提供するカーネルがあります。刑務所使用パターンのため、エントロピープールを保持するだけで、より高いレベルの非晶質動作が保証されます。

エントロピープールが複数ある場合でも、それに使用されるアルゴリズムを信頼する場合は、/dev/random何の利点も得られません。共通プールをすばやく空にしてから、新しいプールを作成(再シード)することをお勧めします。

ユーザーモードプログラムはエントロピープールを直接使用しないでください。彼らはいつも使用ランダム(4)そして友達。

引用符を含むより長いバージョン:

これ/dev/ランダムデバイスは以下を使用して実装されます。トッププール5.0と10.0の間の実装。それになったポルトナFreeBSD 10で。 2014年に大規模なアップグレードが行われました。改訂 273872。小さな議論がありますハッカーニュースおおよその時間。

rc.d/initrandomコメントで削除されました:

/dev/random デバイスをリファクタリングします。主な示唆点は次のとおりです。

  • ユーザー空間シードは廃止されました。これは、PC/デスクトップ設定の開始時に自動的にシードされます。組み込みボックスを設定する部分では、わずかな調整と創造性が必要な場合がありますが、最小限の労力と見なされます。

  • エントロピーキャッシュは/ entropyに書き込まれ(インストール中でも)、カーネルは次回の起動に使用します。

  • /boot/entropy に記録されたエントロピーファイルは loader(8) でロードできます。

刑務所のホストは、システム内の1つのカーネルのみを実行し、刑務所で選択したユーザー領域バイナリを実行することに注意してください。同じコアが同じ刑務所にサービスを提供している場合は、各刑務所のエントロピーを変更することで利点があるかどうかを尋ねる必要があります。

この内容は次のとおりです。リシン内部に議論する変更が発生した場合:

PRNGが動作する方法は、1つ以上のエントロピーソースを使用して内部状態を「供給」し、PRFを介して内部状態から一連の擬似乱数を生成することです。

FreeBSDは、イーサネット、割り込み、ソフトウェア割り込みなど、さまざまなソースやシステムで利用可能なハードウェアRNGからエントロピーを収集し、これらすべてのエントロピーを使用してPRNGの内部状態を導き出します。

/dev/randomから読み込むと、入力ランダムデバイスのエントロピーが本質的に消費され、最終的に再シードが発生します。理想的な世界では、潜在的な攻撃者が予測しにくく、制御しにくいことを願っています。

実行中のプロセスが多いと仮定すると、通常のアプリケーションは/dev/randomを小さな単位で読み取る傾向があり、これは個別でほぼランダムな方法で実行されます。一方、エントロピーの保存は、決定論的な時間に大きな塊として発生します。複数の刑務所が実行されている場合は、/ dev / randomデバイスから大量のデータを読み取ってその動作をより決定的にし、望ましくない結果をもたらす可能性があります。

答え2

ランダム(4)デバイスは刑務所固有ではなくコア固有のデバイスであるため、刑務所で実行されるこれらのプロセスにはまったく役に立ちません。

https://mailing.freebsd.hackers.narkive.com/iq0HeCDX/save-entropy-in-jail-environment

関連情報