[タイトル] dkclear ディスクの未使用領域を{単純ゼロ/米国陸軍推奨方式/米国家安全保障局推奨方式/米国空軍推奨方式/米国防総省準拠方式/Gutmann方式}でクリア [使用許諾契約書] 本使用許諾契約書(以下、本契約書)は利用者と作者との間に締結される契約書です。 作者から使用許諾されたソフトウェア(プログラム、データ、電子的なドキュメント などを含みます)(以下、本ソフトウェア)は法律等により保護されています。 本ソフトウェアはライセンスされるものであり販売されるものではありません。 利用者が本契約書に同意されない場合本ソフトウェアの使用や複製を行うことは できません。本ソフトウェアを速やかに削除してください。 本ソフトウェアを使用された場合利用者は本契約書に同意したものとみなします。 本ソフトウェアは現状のまま提供され不具合を含んでいる可能性があります。 本ソフトウェアの品質、動作、正確性その他一切のリスクは利用者が負うものと します。 作者は本ソフトウェアの品質などの一切の保証をしません。 本ソフトウェアをリバースエンジニアリング、逆コンパイル、逆アセンブルすることは できません。ただしこの制限にかかわらずそのような行為が法律で認められている場合 は除きます。 法律で禁止される場合を除き作者は本ソフトウェアの使用によるいかなる損害に ついても責任を負いません。 いかなる場合も作者が責任を負う損害賠償額は利用者が作者に支払った該当ライセンス の本体価格を超えないものとします。利用者手数料、送料等は賠償額に含みません。 [機能] dkclear.exe ドライブの未使用領域をクリアします。NTFSのMFT内未使用領域のクリアも行います。 指定したフォルダの下に$DKCLR$$というフォルダを作成し処理を行います。 フォルダ$DKCLR$$がすでにある場合、処理を続けるとそのフォルダのファイルは 削除されます。 クリアの方法として、新しいディレクトリを作成してそこにファイルをドライブの 空きがある限り作成し、ドライブの空きが無くなるとファイルを削除します。その ため、ドライブやディレクトリの圧縮を有効にしていると意味がありません。 かならず圧縮を無効にしてから実行してください。 ドライブの空き領域のうちファイルのデータ領域として割り当てられた領域に書き 込む処理をしています。このソフトウェアが作成するファイルのデータ用に割り 当てられなかった(OSによる管理用に割り当てられた)領域には意図したデータは 書き込まれません。つまりドライブの空き領域すべてがクリアされるわけでは ありません。 NTFSではトランザクションログに削除したファイルのデータが残っている場合が あります。MFT内に収まるサイズのファイルの場合などです。 使用領域の一部に以前に書き込んだデータの残骸が残っている場合もあります。 ファイルの最終クラスタの未使用部分は以前のファイルの残骸の可能性があります。 ディレクトリの未使用エントリに削除したファイル名が残っている可能性があります。 これらは同種のソフトウェアの多くに共通する制限です。 「マウントされたボリューム」(「ディスクの管理」でボリュームをNTFSのフォルダ へマウントすることで作成)のクリアはそのボリュームの下のディレクトリに対して 実行してください。 ディスククォータによってディスクの使用可能サイズが制限されている場合は未使用 領域を消去できないことがあります。 ファイルシステムに対するアクセス権が不足している場合は未使用領域を消去でき ないことがあります。 ディレクトリエントリサイズの制限等により未使用領域を消去できないことがあり ます。FATファイルシステムに対し、ルートディレクトリのエントリに空きが無い (ルートディレクトリにファイルを追加できない)状態でルートディレクトリを 指定した場合などです。 現実的に入手可能な復元用のソフトウェアや商用のサービスに対抗するために クリアするには消去方式は"0 ゼロ(0x00)" (ゼロクリア1回)で十分と思います。 dkclear.ini dkclearX.run (Xは0〜9)を編集して任意の消去方法を追加すること が可能です。最大10通りの方法を選択できます。 dkclear.iniの [mode] maxnumber=5 はdkclearX.runの最後の番号です。5はdkclear0.run〜dkclear5.runがあることを 示しています。 dkclearX.runの先頭行はstep数です。2行目からが各stepの処理を示しています。 そのほかに、dkclear.zipにコマンドライン版とMS-DOS用があります。 [インストール・アンインストール] dkclear.exe インストールは適当なフォルダにファイルを置いてください。 アンインストールはファイルを削除してください。 レジストリは使用していません。 実行に必要なファイルは以下のとおりです。 dkclear.exe dkclear.exe.manifest dkclear.ini dkclear0.run dkclear1.run dkclear2.run dkclear3.run dkclear4.run dkclear5.run [動作環境] Windows 95, Windows 98, Windows Me, Windows NT 4.0, Windows 2000, Windows XP [参考] http://it.jeita.or.jp/infosys/committee/network/guideline0407/index.html ストレージ上のデータ消去に関するガイドライン http://www.cybernetic-survival.net/index.htm Cybernetic Survival Network http://www.fas.org/irp/doddir/army/r380_19.pdf Army Regulation 380-19 Overwrite all locations three times (first time with a random character, second time with a specified character, third time with the complement of the specified character). http://it.jeita.or.jp/infosys/committee/network/guideline0407/standard.html NSA/CSS Manual 130-2 Media Declassification and Destruction Manual 一次資料は見つからず、二次資料のみ。 http://cryptome.org/afssi5020.htm Air Force System Security Instruction 5020 - Remanence Security 3.3.1. Clearing. Functioning sealed drives and Bernoulli cartridges may be cleared by overwriting all addressable locations with binary zeros (i.e., 0000 0000) then binary ones (i.e., 1111 1111). Then, overwrite all addressable locations with any character (i.e., "a"). Verify the overwrite procedure by randomly re-reading (recommend 10%) the overwritten information to confirm that only the overwrite character can be recovered. This media may also be cleared using a Type I1 degausser. http://www.dtic.mil/whs/directives/corres/pdf/p522022ms1_122994/p522022ms1p.pdf DoD 5220.22-M Sup 1, "National Industrial Security Program Operating Manual Supplement", 12/29/1994 c. Overwrite all locations with a character, its complement, then with a random character. Verify that all sectors have been overwritten and that no new bad sectors have occurred. If new bad sectors have occurred during classified processing, this disk must be sanitized by method a or b described above. Use of the overwrite for sanitization must be approved by the Customer. http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html Secure Deletion of Data from Magnetic and Solid-State Memory 3. Erasure of Data stored on Magnetic Media Gutmannの方式 http://www.cybernetic-survival.net/shredder.htm とはいうものの、「グートマン方式」を実際に使う意味はまったくないとグートマン博士自身が明言しているので、「グートマン方式」にこだわる必要はないだろう。 http://slashdot.jp/~tmiura/journal/342562 ただ、あの35ステップには「ディスクの種類が分からないときにはこれがベスト」という注意書きがある。 提案されている35ステップのうち最初と最後のランダム各4回を除く27ステップの決まったパターンはすべて、encoding scheme targetとして(1,7)RLL、(2,7)RLLおよびMFM、つまりは古いディスクで使われていたが今は使われていない符号が挙げられているだけなのだ。そして、本文には「PRMLはわからん」という意味の記述がある。PRML向けに注意深く設計されたパターンはないのだ。 http://www.cla-ri.net/pgp/bbs/2006/07/5.html 平文の痕跡 http://support.microsoft.com/kb/101670 トランザクション ログは、 NTFS 回復性をサポートします。 http://h2np.net/tips/tips3.htm ハードディスクのデータ消去 http://www.usaid.gov/policy/ads/500/d522022m.pdf DoD 5220.22-M National Industrial Security Program Operating Manual (NISPOM) http://www.hitachi.co.jp/New/cnews/030827.html HDDのデータを完全に消去でき、目視による消去結果の確認が可能な『ディスクイレーザ』を発売 http://www.orient-computer.co.jp/products/hdd_crusher.htm http://www.nittoh.co.jp/ntz3/topics/tp_hdb15/ http://www.atmarkit.co.jp/fwin2k/experiments/defragment/defragment_column.html http://www.cybernetic-survival.net/wpntfs.htm http://www.cybernetic-survival.net/wint02.htm http://support.microsoft.com/kb/315672 NTFSのMFT内の未使用領域のクリアも必要な場合はMicrosoftのcipher.exeを使用すべき です。ただしcipher.exeはWindows 2000 Security Rollup Package 1 (SRP1)以降の NTFS用です。なおWindows XP Home Editionには付属しません。Windows 95,98,Me,NTや FAT12,16,32では動作保証されていません。 [作者連絡先] http://hp.vector.co.jp/authors/VA007219/#contact [その他] Copyright (C) 2004-2006 VA007219. 本ソフトウェアは使用許諾契約書に同意する場合に使用することができます。 本ソフトウェアの一部または全部の再頒布は作者の許諾が必要です。 dkclsrc.zipに含まれる*.c *.hファイルの引用・改変・他のソフトウェアでの 利用に作者の許諾は必要ありません。 ドネーション(寄付)を歓迎します。AUS/NSA/AF/DoD/Gutmann方式対応版より寄付を 募集することにしました。 寄付せずに使用してもまったく問題ありません。 任意金額の寄付は作者連絡先Webページに記載のアドレスにメールをください。方法は 銀行振込、定額小為替、普通為替、図書券等でお願いします。 シェアレジの場合は735円、1,340円、12,458円のいずれかになります。 dkclearドネーション 税・利用者手数料込み総額735円(税込み本体630円+税込み利用者手数料105円) https://sw.vector.co.jp/swreg/step1.reserve?srno=SR047023 dkcloneエンドユーザーライセンス(によるドネーション) 税・利用者手数料込み総額1,340円(税込み本体1,235円+税込み利用者手数料105円) https://sw.vector.co.jp/swreg/step1.reserve?srno=SR044568 dkclone開発者ライセンス(によるドネーション) 税・利用者手数料込み総額12,458円(税込み本体12,353円+税込み利用者手数料105円) https://sw.vector.co.jp/swreg/step1.reserve?srno=SR044569 寄付は使用許諾契約書に記載の場合を除いて返金できません。 最新版は作者連絡先Webページよりダウンロードしてください。 不具合の報告、要望等ありましたら作者連絡先Webページに記載のアドレスにメールを ください。ただし対応できるとは限りません。 [プログラミング仕様] dkclsrc.zipに含まれる*.c *.h *.objファイルを元に未使用領域をクリアする プログラムを作成することが出来ます。 1 下記の関数を含む../disk/dkclr2.cファイルが必要です。 int dkclr2main(argc,args); 未使用領域をクリアする関数です。 dkclr2.objで代用可能です。 2 下記の関数を含む../disk/dkvclr.cファイルが必要です。 int dkvclrmain(argc,args); 作成されたファイルをベリファイする関数です。 dkvclr.objで代用可能です。 3 下記の関数を含む../disk/mft.cファイルが必要です。 int mft(int num,char *dirname); NTFSの場合にMFTの未使用領域をクリアする関数です。 何もせずにreturn 0;だけの関数で代用可能です。その場合、MFTの未使用領域を クリアしない以外に支障はありません。 dkclr2main(argc,args)から、ファイルが作成され空き領域が無くなった時点で 呼び出されます。 num 作成されたファイルの最大番号です。ファイル名はsprintf(path,"%s\\%8.8u",dirname,num); で生成できます。 dirname dkclr2main(argc,args)のargs[1]が渡されます。 返値 0:nomal 1:stopflag 2:not execute 3:error stop ただしdkclr2.objの場合、返値を無視しています。 *.objはVisual C++ 2005 Express Editionで作成しています。 参考 http://support.microsoft.com/kb/174619 http://support.microsoft.com/kb/314878 [ソースコード使用条件] dkclsrc.zipに含まれるソースコードは修正BSDライセンスです。 [履歴] 7版 2006.8.27 GUI版を追加しました。 8版 2006.12.29 MFT内領域が指定した値で消去されない問題を修正しました。 指定以外の値で消去されることがある問題を修正しました。 プログラムへのドロップを受け付けるようにしました。 ショートカットへのドロップを受け付けるようにしました。 "参照(&B)"では"フォルダ名(&F)"の内容を初期値とするようにしました。