電子アーカイブ内のドキュメントを永久に破棄するためのツールの選択

アーカイブの保存期間が満了し、それ以上の保存が不要なドキュメントの破壊-あらゆる組織のアーカイブの要素の1つ。紙の文書の破壊には、物理​​的破壊の方法が使用されます-焼却、化学処理、細断、情報回復の不可能性を保証します。電子形式で保存されたドキュメントの場合、他の方法が使用されます。キャリア上のデータの破棄またはデータキャリア自体の破棄です。データ破棄ツールはたくさんありますが、アーカイブ内のドキュメントの破棄を自動化するためにすべてが適用できるとは限りません。



仕事



組織に電子アーカイブを導入するとき、電子アーカイブドキュメントの破棄を自動化する必要がありました。アーカイブ自体はDirectumシステムであり、組み込みのIS-Builder開発ツールを使用して、ソースシステムからアーカイブにドキュメントを受信し、電子署名形式を変換し、ケース全体または個々のドキュメントへのアクセス権を付与および取り消すための大量のロジックが記述されています。アーカイブ文書のテキストは磁気キャリアに保存され、キャリアから通常の削除手順を実行する場合、保存期間が終了したドキュメントのみのファイルを取り返しのつかないほど削除する必要があります。つまり、メディア全体を破壊することは問題外であり、タスクはメディア上のドキュメントデータを破壊するための適切なツールを見つけることでした。



ドキュメントの削除プロセスもIS-Builderに実装されているため、Directumシステムの組み込みプログラミング言語のコードから制御できるファイルを削除するためのツールを探していました。パフォーマンスの観点から、ツールには要件が課せられました。ツールは、1メガバイトのファイルを破棄するのに1秒以内で済みます。ツールがデータ破壊に使用するアルゴリズムについては、GOST R 50739-95に準拠することが必須であり、いくつかのアルゴリズムのサポートを選択することをお勧めします。また、ツールは無料で、商用利用は無料である必要があります。



ほとんどのツールは、インターネットで検索して見つけることができた情報であり、プログラムによる相互作用の可能性がなく、グラフィカルインターフェイスのみを備えたユーティリティであったため、要件を満たしていませんでした。より詳細な調査については、以下のみ。



  • SysinternalsSDeleteユーティリティ;
  • イレイザーは、破壊への興味深いアプローチを備えたユーティリティです。
  • また、IS-Builderに直接ツールを実装することにも期待しています。


テスト方法



テストのために、私たちはハードディスク上に小さなパーティションを用意して、私たちのオペレーションの劇場を見やすくしました。このディスク上で、ファイルを作成し、さまざまな方法でそれらを破棄してから、それらの残りを調べました。破壊が必要な速度以上で実行され、元のファイルのフラグメントが見つからない場合、破壊は成功したと見なされます。また、ツール間の比較を正直にするために、すべてのツールで同じアルゴリズムを使用してファイルを破棄しました。これは、すべてのツールでサポートされています。DOD5220.22-Mは、GOSTの要件を正式に満たしています。



次のツールを使用して、破壊の結果を監視しました。



  • WinHexは、低レベルでメディアコンテンツにアクセスできる共有ウェアユーティリティであり、コンテンツごとにデータを検索して復元できます。
  • DiskView – Sysinternals. , – «» .


IS-Builder



DOD 5220.22-Mアルゴリズムの本質は非常に単純であり、Directumシステムの組み込みプログラミング言語で実装しました。アルゴリズムは入力としてファイル名を受け取り、ファイルシステムにバイト単位のサイズを要求します。次に、計算されたサイズのバッファーが3回生成され、指定されたファイルに書き込まれます。このアプローチの優れている点は、破壊アルゴリズムを、パスの数と考えられないほどの書き換えパターンで、絶対に任意に実装できることです。さらに、ツールは外部ソフトウェアに依存せずにIS-Builderに実装されているため、Directumシステムのアプリケーション開発への統合にまったく問題はありません。そしてそれはすぐに動作します。データを破壊することはありません! WinHexは、ディスク上の元のファイルのフラグメントだけでなく、ファイル全体を検出し、正常に復元しました。それは明らかにした、最初のバッファをディスクに書き込んだ時点で、ディスク上のファイルの場所が変更されます。元のファイルはセクションの最初にありましたが、途中または最後にありました。 DiskViewを使用してこれを見つけました。元のクラスターは無料としてマークされていますが、データが含まれています。もちろん、これは良くありません。ファイルへの書き込みにはさまざまな方法を使用しました。結果はどこでも同じで、データを見つけて復元できます。書き換え用のバッファを生成することはできますが、ディスクに正しく書き込むことができません。そして、実用的なスキームを見つけることができなかったので、Directumに組み込まれているツールを使ってやっていくというアイデアに別れを告げなければなりませんでした。元のクラスターは、空きとマークされていますが、データが含まれています。もちろん、これは良くありません。ファイルへの書き込みにはさまざまな方法を使用しました。結果はどこでも同じで、データを見つけて復元できます。書き換え用のバッファを生成することはできますが、ディスクに正しく書き込むことができません。そして、実用的なスキームを見つけることができなかったので、Directumに組み込まれているツールを使用するというアイデアに別れを告げなければなりませんでした。元のクラスターは無料としてマークされていますが、データが含まれています。もちろん、これは良くありません。ファイルへの書き込みにはさまざまな方法を使用しました。結果はどこでも同じで、データを見つけて復元できます。書き換え用のバッファを生成することはできますが、ディスクに正しく書き込むことができません。そして、実用的なスキームを見つけることができなかったので、Directumに組み込まれているツールを使ってやっていくというアイデアに別れを告げなければなりませんでした。



SDelete



docs.microsoft.com/en-us/sysinternals/downloads/sdelete



Sysinternals SDeleteは1つの削除アルゴリズム(DOD 5220.22-M)のみを実装しますが、書き換えパスの数を指定したり、ディレクトリツリーとそのすべての内容を破棄したり、「クリーンアップ」を実行したりすることもできます。 「未割り当てのディスク領域。SDeleteは、スイッチが数個しかないコマンドラインユーティリティであるため、IS-Builderの計算から簡単に呼び出すことができます。



SDelete = "C:\Sysinternals\SDelete\sdelete.exe"
Command = Format('"%s" -p 1 "%s"'; ArrayOf(SDelete; Filename))
ExecuteProcess(Command; smNormal; wmYes)


ユーティリティを使用した結果、ファイルはほとんどトレースなしでディスクから消えました。WinHexを使用すると、ファイル名の書き換えのトレースのみを検出できましたが、内容を見つけて復元することはできませんでした。同時に、ユーティリティは非常に高速に動作し(1メガバイトのファイルの削除= 0.2秒)、当然のことながら主導権を握りました。



消しゴム



eraser.heidi.ie



無料のGUIユーティリティ。Eraserを他と一線を画すのは、キルキューを使用した作業です。何かを削除したい場合は、対応するタスクを作成してキューに追加する必要があります。Eraserキューの各タスクは、次の情報のコレクションです。



  • 破壊の対象について-特定のファイルまたはディレクトリ、ユーザーの「リサイクルビン」の内容、未割り当てのディスク領域の場合があります。また、ファイルやフォルダを安全に移動したり、ハードドライブ上のパーティションを完全にクリーンアップしたりすることもできます。
  • 破壊アルゴリズムについて-Eraserは、いくつかの既製の書き換えアルゴリズムを知っており、必要なパス数を設定し、それぞれに書き換え用の独自のデータテンプレートを指定することで、独自の書き換えアルゴリズムを作成する機能も提供します。
  • 開始時間について-タスクは、キューに入れられた直後、スケジュールに従って、オペレーティングシステムの起動時に、または手動で実行できます。


バックグラウンドで実行されているEraserプロセスは、キューを処理してタスクを実行します。したがって、Eraserでのデータ破棄は、Directumでのサーバーイベントと同様に、常に非同期プロセスです。



コマンドラインスイッチを使用したユーティリティの制御も機能しますが、コマンドラインでの作業はまだ正式に発表されておらず、開発された機能のステータスにあります。



Eraser = "C:\Program Files\Eraser\Eraser.exe"
Command = Format('"%s" erase /method="ecbf4998-0b4f-445c-9a06-23627659e419" /quiet file="%s"'; ArrayOf(Eraser; Filename))
ExecuteProcess(Command; smNormal; wmYes)


Eraserによるファイルの破棄が正常に完了しました。非同期破壊のため、作業速度を見積もることができませんでした。応用開発での使用の観点からは、コマンドラインでの作業の中断状態は混乱を招きますが、任意の破棄メソッドを作成する機能は興味深いように見えます。



結果



バッファをディスクに書き込むという煩わしいファイルがなければ、IS-Builderでの実装は百万のように見えますが、残念ながら、それはフィニッシュラインに到達しませんでした。他の2つのツールのパフォーマンスははるかに優れており、SDeleteユーティリティが最も有利に見えます。最小限ですが、十分な機能と優れたパフォーマンスを備えていますが、インストールは必要ありません。



All Articles