cat /dev/urandomの出力はどのくらい一時的ですか?

cat /dev/urandomの出力はどのくらい一時的ですか?

私のサーバーで、次のコマンドを使用して急流を作成します。

cat /dev/urandom |tr -dc A-Z9|head -c${1:-81} 

出力をコピーして端末を閉じると、生成された急流を完全に回復できませんか?私は、ある時点でサーバーにアクセスできる誰かがどのような記録で出力を調べることができるのか心配です。

ベストアンサー1

ランダムジェネレータのデータは複数の場所を通過します。

  1. カーネルから始まります。他のランダムジェネレータと同様に、カーネルのランダムジェネレータは、エントロピーソースによってシードされる決定論的ランダムビットジェネレータ(DRBG)で構成されています。 Linux で使用する DRBG には、逆トラッキング防止機能があります。つまり、攻撃者が特定の瞬間(カーネルレベルのアクセスが必要)にRNGの状態を把握しても、以前の状態を計算できないため、RNGが見つかりません。前の出力。

  2. カーネルは、catプロセスに渡されるか、後でパイプされたデータのコピーを保持しません。

  3. プロセスが終了すると、catそのメモリはカーネルに戻されます。解放されたメモリはすぐに削除されません。 Linux は、メモリをプロセスにデプロイする前にのみ削除します。 (割り振り時の消去が解除時の消去よりも性能が良いためです。)したがって、終了後もデータがRAMにしばらく残ることがありますcat。このデータを取得するには、潜在的に数十万人の候補者の中から、メモリ内の正しいページを見つけるためのカーネルレベルのアクセスといくつかのフォレンジック技術が必要です。他のプロセス(tr、)も同様ですhead

  4. パイプはどこにもメモリを保存しません。データはあるプロセスから別のプロセスに直接コピーされます。

  5. データが端末に表示されます。おそらく、ターミナルエミュレータのメモリのどこかに保存されているでしょう。再スクロールできる限りは確実に保存され、端末エミュレータがメモリを管理する方法によっては、後でプロセスのメモリにコピーが残る可能性があります。端末エミュレータのメモリからデータを見つけるには、アカウントへのアクセスが必要です。

  6. セッションを特に記録しない限り、端末に表示されるデータはファイルに保存されません。

  7. データはビデオメモリに保存することもできます(テキスト形式ではなく特定の瞬間に表示されるピクセルセット形式)。ビデオメモリを消去するメカニズムはなく、時々画像の断片が長時間残っていることがあります。ビデオメモリを確認するにはカーネルレベルのアクセスが必要です。

  8. クリップボードを使用して端末からデータをコピーする場合は、クリップボードデータが保存される場所を心配する必要があります。コピーがターミナルエミュレータのメモリに残っているように、コピーは一定期間Xサーバーのメモリに残ることがあります。このコピーを見つけるには、ルートレベルのアクセスと深刻なフォレンジック技術が必要です。

  9. クリップボードマネージャ(おそらくデスクトップ環境の一部)がある場合は、クリップボードのコンテンツ履歴をどこに保存するのか心配する必要があります。

全体的に唯一の実際のリスクは、クリップボードマネージャを使用するときです。

おすすめ記事