2008年1月31日木曜日

ローレベルフォーマット

ローレベルフォーマットには hp-ux では mediainit(1)
   
   残留磁気のことまで考えると、これ1回では心配かもしれませんが、これを行ったディスクからデータを復旧させるのは相当な技術力と設備が必要です。cube さんがどの程度までを求められるかにもよりますけれど、一番簡単でそこそこ安心な方法かと思います。
   
   例)
   # mediainit /dev/rdsk/cXtYdZ
   
   あとは、dd(1) コマンドで適当なパターンで上書きすることですね。
   
   例)bs は default の 1024 だと時間がかかります。
   # dd if=/dev/zero of=/dev/rdsk/cXtYdZ bs=1024k
 
Windowsでは。

C:\>cipher /w:d:
できるだけ多くのデータを削除するために、CIPHER /W の実行中
はほかのアプリケーションをすべて終了してください。
0x00 に書き込み中 ……※1
........................... (中略) .............……※2
0xFF に書き込み中
........................... (中略) .............
乱数 に書き込み中
........................... (中略) .............
C:\>

※1 英語モードではこれらのメッセージは「Writing 0x00」となっているので、正しくは「0x00 を書き込み中」と訳されるべきだろう。単純なミスであるので、特に気にしなくてもよい。
※2 作業の進行中は、このように「.(ピリオド)」が少しずつ表示されるので、動作していることが確認できる。


Linuxだと。。
  • shredで消去する

shredはファイルを上書きするためのプログラムです。GNU fileutilsに含まれ
ているため、多くのLinuxにも含まれています。デフォルトでは乱数で25回
の上書きを行います。shredの詳細についてはオンラインマニュアルを参照し
てください。なおshredやLinuxが古いと消去サイズを指定する必要があったり
2GBの制限に引っかかったりする場合がありますので、shredが入っていれば何
でもいいというわけではありません。

KNOPPIX 日本語版のCD-ROMでbootして /dev/hda を消去する例を以下に示しま
す。機能限定のレスキュー用Linuxではないのでシェルなども使いやすいです。
DMAにも対応していますし日本語106キーボードにも対応しています。
もちろんHDDの消去程度でしたら英語版KNOPPIXでも不自由しないと思います。

(1) KNOPPIXのCD-ROMからbootします。(Runlevel 2, Textmode only)
HDD消去にGUIは不要なのでbootプロンプトでは knoppix dma 2 とします。
# dmaというブートオプションがないKNOPPIXでは knoppix 2 で構いません。
なおPCの構成によっては素直にTextmodeで起動できない場合もあります。
重要なのは消したいHDDをswapとして使わない事とrootである事の二点です。

(2) shred -n 2 -v -z /dev/hda
この例では 乱数 → 乱数 → 0x00 という3回の上書きが行われます。-v を
指定すると処理の進み具合がわかり便利です。なお私は乱数の品質については
調査していません。
  • badblocksで消去する

badblocksはデバイス上に不良ブロックがあるかを検査するプログラムです。
多くのlinuxのレスキューディスク(またはインストールディスクのレスキュー
モード)で使用できます。デフォルトではread-onlyで検査しますが、-w を指
定すると 0xaa → 0x55 → 0xff → 0x00 と4回の書き込みを行います。
badblocksの詳細についてはオンラインマニュアルを参照してください。なお
元々検査用のコマンドであるため4回の書き込みに対して毎回読み出しを行っ
てしまいます。このためshredにくらべ無駄に時間がかかります。また物によっ
てはコマンドラインオプションで block count を指定しなければならないタ
イプのbadblocksもあります。

Red Hat Linux 7.2のDisc1でbootして /dev/hda を消去する例を以下に示しま
す。恐らく7.3以降でも簡単だと思います。

(1) Disc1というCD-ROMからbootします。
ブートの種類を選ぶ所では linux rescue を選択します。
言語は英語を選択します。
キーボードの種類を選択します。
ContinueとSkipでContinueを選択します。
以上でレスキューモードのシェルが起動します。


(2) badblocks -vw -c 1024 /dev/hda

  • ddで消去する

広く知られている通り、ddでもHDDを消去できます。

dd if=/dev/zero of=/dev/hda

を実行すると /dev/hda 全域を 0x00 で1回上書きします。大きなブロックサ
イズを指定する事により時間短縮できる場合があります。厳密には 0x00 の全
面書き込み1回だけでは不十分と言われる事もあるので、必要に応じて色々と
工夫してみた方がよいかも知れません。

Solarisです。

Solaris 上でディスクのデータを完全に消去する方法

最近「セキュリティー」というキーワードが、以前よりかなり熱くなっている気がしますが、 セキュリティーを確保するために「ディスクのデータを完全に消去する」というのは 重要かと思います。

私も 5 年前は「/dev/zero で上書きしておけば問題ない」と思いこんでいたのですが、 調べてみれば、ディスク内の磁気情報を利用した解析修復ツールであれば、書き込む直前の 状態、例えば 0 の上に書かれた 0 なのか、1 の上に書かれた 0 なのかを区別できて しまいます。なので /dev/zero での上書きだと完全では無いですね。。。 そこで RANDOM にいろいろ書き込んで以前のデータが修復出来ない状態にしないと いけないのですが、どうすれば良いでしょう?

一度に大量のデータ消去作業を伴う場合は、何らかの有償サービスを受けるのが手間が掛からなくて良いと思いますが、 自分の Workstation のみディスクを捨てたいような場合は、自分で行った方が簡単ですね。 そこで Solaris の format コマンドを使用することにより、ディスクのデータを 完全に消去することも可能です。

以下の手順です。

 1. format -> defect -> primary -> quit
 2. analyze -> purge -> quit
 3. defect -> both -> quit -> analyze -> purge -> quit -> quit

結構?かなり?時間がかかりますが、これで完全に消去できます。

以下の URL に技術的な詳細が書かれていますので勉強になります。 "The format command overwrites the available disk sectors with patterns that comply with the Department of Defense declassification regulations for data remanence. " とのこと。ざっくり訳すと「format コマンドは米国国防総省機密解除規則に従うパターンで 利用可能なディスクセクターを上書きします。」となります。 Trusted Solaris の資料ですが、一番下の部分に Solaris でも同じとの記述があるので Solaris でも同様の手順です。


Trusted Solaris Operating System - Technical FAQs
>> How do I remove sensitive information from a disk?
>> http://www.sun.com/software/solaris/trustedsolaris/ts_tech_faq/faqs/purge.xml



0 件のコメント: