web-dev-qa-db-ja.com

/ dev / zeroまたは/ dev / random-より安全なものとその理由

ハードドライブからデータをワイプする際に、セキュリティのために/ dev/randomが望ましい理由を誰かが教えてもらえますか?

23
skater_nex

単純な答え、/dev/randomは推奨されません。どちらも同等に安全です。確認を簡単にするには、/dev/zeroを使用します。また、CPU使用量が少なく、おそらく高速です。

より完全な答え。最近のハードドライブの場合、プラッターの密度は、ドライブの不完全に上書きされたセクターから信号を取得することが不可能であり、Gutmannなどの人々が何年も前に書いたものです。最近のハードドライブに関する限り(ギガバイト以上で容量を測定できるハードドライブとしてこれを配置します)、上書きされると消えます。話の終わり。したがって、データの変更先は関係ありません。データを変更するだけです。

これに加えて、ハードドライブを完全にワイプしても、ハードドライブのファームウェアによって再マッピングされたセクターのデータがドライブに残っている可能性がありますが、これらは比較的まれであり、非常に少量のデータのみが含まれますそのデータを取得するには非常に特殊な機器が必要であることは言うまでもありません(そのためには、ドライブのG-List内のSystem Areaを編集する必要があります)。そもそもそれらのセクターが再配置されたのは、失敗したからです。

つまり、DoDワイプは愚かで、Gutmannワイプは愚かです。/dev/zeroを使用すると、すべてのケースでほぼ100%良好です。そして、それがEdgeケースの場合、データを取得し、データを削除する方法を非常に専門的に知っている必要があります。

「ありがとう!それで、USBスティックはどうですか?」

USBスティックはまったく別の動物であり、それをクリーンアップするにはフラッシュコントローラーをバイパスする必要があります。Gutmannワイプでさえ、ウェアレベリングアルゴリズムのためにデータを完全に削除することはできません。しかし、ハードドライブのように、一度データを上書きすると消えてしまうので、デバイスにデータを実際に上書きさせるのがコツです。

そうは言っても、レベリングを損なうコントローラーのない安​​価なUSBスティックを使用している場合は、1回のパスで0フィルで十分です。それ以外の場合は、カスタムハードウェアとはんだ付け作業を検討しています。

SSDは、ウェアレベリングを実行するコントローラーを備えたUSBスティックと見なす必要があります。 SSDは常にウェアレベリングを実行します。このルールの例外は知りません。多くのUSBスティックにはありません。

USBスティックがレベリングを摩耗しているかどうかはどのようにわかりますか?それを分解してコントローラーチップを検査し、データシートを調べる必要があります。

「「ドライブの不完全に上書きされたセクターから信号を取得することは不可能である」という声明の出典を教えていただけませんか?データリカバリストアに関するコンピューターマガジンのテストについて話しているのではなく、最悪のシナリオについて話しています。設備の整った政府の研究所です。ですから、その声明をどのようにして保証できるかを知りたいのですが、できれば科学論文です。」

磁気メディアへのデジタルデータのアナログストレージに関する正当化と情報を提供します。以下は主にデータ復旧会社での仕事中に教えられたもので、場所によっては部分的に不正確な場合があります。もしそうなら、私に知らせてください、私はそれを修正します。しかし、これが私の資料を最もよく理解しています。

ハードドライブが製造された後、最初に起こることはそれがサーボラベル書き込み機からサーボラベルを受け取ることです。これは、完全に空のハードドライブを取り、bootstrapそれを取り出すことを唯一の仕事とする別のマシンです。(これが、ハードドライブにアルミテープで覆われた穴があり、サーボラベルマシンが書き込みヘッドを配置します。)ドライブに電源を入れたときに「クリッククリッククリック」が発生したドライブがある場合、それはサーボラベルを読み取れなかったためです。ハードドライブの電源を最初にオンにすると、しようとすることは、読み取りヘッドをプラッターのどこかにフリングしてトラックを取得することです。サーボラベルはトラックを定義します。サーボラベルが表示されない場合は、中央に到達し、クラックを作り、アームを後ろに引っ張って再試行します。

私がこれについて言及する理由は、外部デバイスがハードドライブに対して読み取りと書き込みを行う唯一のインスタンスであり、そのドライブの外部のハードウェアがプラッター上のデータを処理できる制限のおおよその説明です。サーボラベルをより小さく、よりスペース効率の良いハードドライブの製造業者が作ることができれば。サーボラベルは、2つの理由で比較的スペース効率がよくありません。

  1. それらが失敗しないことが絶対に重要です。サーボラベルが故障すると、ヘッドがその特定のサーボラベルを超えるたびにトラックが失われます。これは実用的に、トラック全体が使用できないことを意味します。
  2. それは、外部の機械よりもはるかに優れたハードドライブハードウェアが大皿の情報を処理するのにどれほど優れているかについてのいくつかの考えを置きます。

サーボラベルのリングがトラックを定義します。トラックについて知っておくべきことがいくつかあります。

  1. それらは必ずしも円形ではありません。それらは不完全であり、反りを含む可能性があります。これは、サーボラベルマシンが正確でないためです。
  2. それらは必ずしも同心ではありません。彼らはクロスすることができます。これは、サーボラベルマシンが不正確なために、特定のセクターまたはトラック全体が使用できなくなる可能性があることを意味します。

サーボラベルが書き込まれた後、低レベルフォーマットが始まります。より複雑なものを除いて、ドライブの実際の低レベル1980年代フォーマット。プラッターは円形ですが、ハードドライブの速度は一定であるため、読み取りヘッドの下を通過する領域の量は、プラッターの中央までの距離の可変関数です。したがって、プラッターからストレージのすべての最後の一滴を絞る努力において、プラッターの密度は可変であり、ゾーンで定義されます。通常の3.5インチハードドライブには、プラッター密度の異なる数十のゾーンがあります。

そのうちの1つはSystem Areaと呼ばれる特別で特別な低密度です。システム領域には、すべてのファームウェアと構成設定がドライブに保存されます。その情報の方が重要であるため、密度が非常に低くなっています。密度が低いほど、何かがランダムに台無しになる可能性が低くなります。もちろん、それは常に発生しますが、ユーザー領域で発生することよりも頻度は低くなります。

ドライブが低レベルでフォーマットされた後、ファームウェアがシステム領域に書き込まれます。ファームウェアはドライブごとに異なります。プラッターの途方もなく細かい要件に合わせてドライブを最適化するには、各ドライブを調整する必要があります。 (もちろん、これは実際には低レベルフォーマットの前に行われます。これは、プラッターを作成する密度を決定するために機器がどれだけ優れているかを知る必要があるためです。)このデータはadaptivesと呼ばれ、保存されます。システム領域。アダプティブ領域の情報は、「サーボラベルからトラックから外れていると言われたときに自分で修正するためにどれだけの電圧を使用する必要があるか」などの情報や、ハードドライブを実際に機能させるために必要なその他の情報です。アダプティブがわずかにオフになっていると、ユーザー領域にアクセスできない場合があります。システム領域へのアクセスが容易であるため、PCB CMOSに保存する必要があるアダプティブはごくわずかです。

この段落から離れてください:

  1. 密度が低いほど、読みやすくなります。
  2. 密度が高いほど、ランダムにねじ込まれる可能性が高くなります。
  3. ユーザー領域の密度は、ハードドライブの製造元が可能な限り高密度です。
  4. これがバカバカしく思えるなら、それは本当にそうであるからです。ハードドライブメーカーは、GBあたりの価格で競争し、勝っています。ハードドライブの設計とは、非常に注意深く製造された機器を作り、それらを非常に注意深く組み立てることではありません。単にそれだけではもはや十分ではないからです。もちろん、そうすることはできますが、ハードウェアの許容範囲が広すぎて競争力がなくなったため、ソフトウェアでこれらを互いに連携させる必要があります。

そう。ユーザーの密度が非常に高いため、通常の場合、ビットがめちゃくちゃになる可能性が非常に高くなります。これは、非常にわずかなタイミングの問題やプラッターの劣化など、多くの要因によって発生する可能性があります。あなたのハードドライブのセクターのかなりのパーセンテージは実際にねじ込まれたビットを含んでいます。 (これを自分で確認するには、ドライブにATA28 READLONGコマンドを発行します(最初の127 GBのみに有効です。削除されたATA48に相当するものはありません!)複数のセクターで数回比較する出力。特定のビットが正常に動作せず、吸い込み、吸い込み、またはランダムに反転することも珍しくありません。)これは現実の事実です。これがECC.がある理由です

ECCは、512(または新しいドライブでは4096)バイトのデータの後に含まれるチェックサムであり、不正なビットが十分にない場合にそのデータを訂正します。正確な数はファームウェアと製造元によって異なりますが、すべてのドライブにそれがあり、すべてのドライブに必要です(そして、予想よりも驚くほど高く、48〜60バイトのように、最大​​6〜8エラーバイトを検出して修正できます。クレイジー数学は続いています。)これは、高度に専門化され調整された内蔵ハードドライブ機器に対しても、プラッターの密度が高すぎるためです。

最後に、プリアンプチップについてお話します。それはハードドライブの腕にあり、メガホンとして機能します。信号は非常に小さな磁場から生成されているため、非常に小さなヘッドで動作するため、信号のポテンシャルは非常に小さくなります。したがって、ハードドライブヘッドをグットマン法に使用することはできません。これは、ハードドライブヘッドから十分な正確な読み取りを取得できず、グットマンの手法を価値あるものにすることができないためです。

しかし、NSAには魔法の装置があり、それらは1の特定のビットの非常に正確な読み取り(電位を計算して以前に書き込まれたデータを導出するのに十分正確))できると仮定しましょうms。最初に何が必要ですか?

まず、システム領域が必要です。これはトランスレータが格納される場所だからです(トランスレータとは、LBAアドレスをPCHSアドレスに変換するものです(論理的なCHSアドレスとは異なり、レガシーの理由でのみ存在する論理的なCHSアドレスではありません)。システムのサイズ領域はさまざまで、魔法のツールに頼らなくてもそれを得ることができます。通常、それは約50〜100MBだけです。トランスレータのレイアウトはファームウェア固有なので、逆にする必要があります(ただし、以前に行われたので、大したことはありません)。

最初の問題は、信号対雑音です。前述のように、プラッター密度は非常に高く調整されており、厳密に安全です。 Gutmannの方法では、ビットの以前の状態を正確に計算するために、通常の読み取り/書き込みアクティビティで非常に低い分散が必要です。信号の変動が大きい場合、これらの試みを失敗させる可能性があります。そして、その差異は、あなたを完全にねじ込むのに十分なほど重要です(それが、ECCが現代のドライブで非常に狂っている理由です。)アナロジーは、誰かが騒がしい部屋の真ん中で話しかけているときに誰かがあなたにささやく声を完全に聞き取ろうとするようなものです。

第二の問題、時間。電子顕微鏡が非常に高速で正確な場合でも(ビットあたり1ミリ秒です。これは電子顕微鏡にとっては非常に高速です。これは1200ボーモデムよりも低速です)、ハードドライブに大量のデータが存在し、完全な画像には非常に時間がかかります。長い時間。 (WAは、500 GBのハードドライブ全体で126年を言いますが、これにはECCデータ(必要なもの)は含まれていません。IDフィールドやアドレスマーカーなど、ハードドライブセクターに関連する他の多くのメタデータもあります。しかし、これらは上書きされません。おそらく、それらを通常より高速にイメージする方法を考え出すことができますか?このプロセスを高速化する方法(ドライブの一部を選択的にイメージするなど)はありますが、それでも24か月かかる場合があります。/7は、標準のハードドライブに$MFTファイルを取得するために24時間体制で機能します(通常、Windowsがインストールされているドライブでは約50〜300 MB)。

第三の問題、許容性。政府があなたの後を追っている場合、いくつかの理由で彼らはあなたの後を追っています。彼らはあなたが知っていることを知りたい、またはあなたを逮捕して刑務所に入れたいと思っています。前者(ゴムホース暗号)を取得する簡単な方法があり、後者は定期的な証拠手続きが必要になります。類推に戻ると、誰かが誰かがささやきながら何かを言ったことを証言し、他の誰かが混雑した騒々しい部屋の真ん中で話しかけている場合、疑いの余地はたくさんあります。それは、多くの時間とお金を費やしたいと思うような強力な証拠になることは決してありません。

60

あなたは間違った質問をしています。ユーザーから見えるブロックに書き込んでドライブを安全に消去しようとすると、不良としてマークされたセクターにユーザーデータが存在する可能性があるという事実(ただし、読み取り可能な機密データが含まれている)は完全に無視されます。

もちろん、ATAコマンドを発行することでこれを回避することは可能ですが、その場合、単一のATAセキュア消去コマンドで最初から必要なすべてを実行できます。 hdparmを使用して--security-eraseでSecure Eraseコマンドを発行する方法の詳細については、 https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase を参照してくださいオプション。

2
Gabe