システムプログラミングの学習の一環として、ファイルシュレッダーの実装を検討しています。最も簡単な方法(そしておそらくナイーブと見なされる)は、データバイトをゼロに置き換えることです(OSがファイルを分割することはわかっているので、それらすべてのチャンクのバイトを置き換えます)。しかし、このトピックについてググると、複数のパスアルゴリズムを見つけて驚いています。35ものアルゴリズムもあります。
誰かがマルチパスの利点を説明できますか?説明が見つかりませんでした。
ありがとう
バイナリ値0101を格納している物理ディスクを想像してみてください。物理的に、ディスク上では、料金は実際の値として存在し、ディスクコントローラによって切り上げまたは切り捨てられます
バイナリ->物理的な請求
0 1 0 1-> 0.1 0.9 0.1 0.9
データをゼロで上書きすると、以前の値からいくらかの残留電荷が残るため、この簡単な例では、新しい値は次のようになります。
バイナリ->物理
0 0 0 0-> 0.01 0.09 0.01 0.09
これらの電荷を高解像度で読み取るのに十分な感度を持つ機器を使用して、上書きされたデータのこの「影」を抽出できます。そのため、複数回書き換える(そしてランダムな値を使用する)と、データがわかりにくくなります。
マルチパス消去は、磁気ストレージデバイス上のデータを破壊するために必要です。データは、下または中間のレイヤーから1と0の別のシーケンスで上書きされた場合でも、適切な機器を使用して復元できます。
しかし、最近のハードドライブ上のデータの面密度が10 000倍に増加したため、マルチパス消去は不要であると主張するインターネットには voices があります。
特別な装置を備えた専門家がフォーマットされたドライブを再構築できると言われています。したがって、ドライブ上のデータを異なる(ランダムな)パターンで複数回上書きすることをお勧めします。
@pufferfishが言ったことにより、複数のパスで0を使用してデータを上書きすることは、磁気ストレージデバイスでのみ意味があります。 SSDおよびその他のフラッシュストレージメカニズムの場合、これは失敗します http://www.usenix.org/events/fast11/tech/full_papers/Wei.pdf を参照してください
話の教訓:APIは変更されませんが、ハードウェアテクノロジーが変更されると、ソフトウェアでのハードウェアの問題への対処が変更される可能性があります。