/dev/randomにエントロピーを追加する

/dev/randomにエントロピーを追加する

私はセキュリティレベルの高いアプリケーション(および潜在的にデータセンター)のための量子乱数ジェネレータを設計および構築しています。その一環として、エンド/dev/random/ユーザーが新しいRNソースを使用するためにアプリケーションを変更する必要がないように、自分のデバイスで生成された乱数をデバイスに供給したいと思います。ただ接続して「/dev/random/」のエントロピーを増やすだけです。

明らかに、USBまたはPCI-Eを介して自分のデバイスから任意のデータを取得することを処理するデバイスドライバを作成する必要があります(まだ使用するインターフェイスを決定していません)。しかし、このランダムデータを/dev/random/エントロピープールに追加する方法はわかりません。どんなアイデアがありますか?

(私の考えでは)もう一つのオプションは、私のデバイスドライバと交換し、必要な/dev/random/すべての動作があることを確認することです。しかし、これは良い考えではないようです...

ベストアンサー1

/dev/randomマイデバイスドライバと交換

現在と将来のインターフェースの両方をコピーする必要があるため、実装するのは非常に困難です。そうしないと、多くの問題が発生します。たぶんそれを取るソースコードを見てくださいこれを印象づけるために(出力と入力インターフェースはソースコードコメントによく文書化されています)。

デバイスドライバを作成する必要があります

時々違うよねたとえば、USBキーボードであるふりをして、そのチャンネルを介して任意のデータ(またはパスワード、暗号化キー、一度に1つのキーメモ帳...)を送信する「ランダムジェネレータ」があるため、専用のデバイスはありません。ドライバーが必要です。代わりに、既存のドライバが付属しています。

通常、システムエントロピーはユーザースペースの影響を受けます。systemd-random-seed.serviceまたはRNDADDENTROPYioctlを参照してください。ハジドそして他のツールの使用。

ただし、これらすべての方法を使用すると、カーネルはまだデバイスから返されるデータを制御できます/dev/[u]random。あなたはそれを予測することはできません。実際に生成されたランダムデータを使用するには、カーネルランダムデバイスを介さずにデバイスから直接読み取る必要があります。

おすすめ記事