web-dev-qa-db-ja.com

ATAセキュア消去なしでSSDを可能な限り消去する方法は?

質問はほぼ完全に答えられています。ただし、さらに詳細が必要です。こちらのUpdate 2を参照してください。

ATAセキュア消去がSSDに正しく実装されていないことを知りました(ソースはここにあります)が、できる限り消去する方法を見つけたいと思っています。

私がワイプしようとしているのは、以下を含むSDD全体です。

  • ユーザーがアクセスできるセル
  • 不良/マップされていない/破損したセクター
  • 過剰にプロビジョニングされたスペース
  • トリミングされたセル
  • デバイス構成オーバーレイ(DCO)
  • ホスト保護領域(HPA)
  • そして、私が忘れていたすべて

暗号化が限定された「Secure Erase」をシミュレートするための最良の方法であることは知っていますが、新しいデータに対してそれを行う前に、古いデータをできるだけ消去するために、少なくとも1つのパスを作成したいと思います。

私がこれまでに知っているように:

  • ATA Secure Erase:信頼性はありませんが、HPAまたはDCOを正しくワイプしますか?
  • dban:再マッピングされたセクター、HPAまたはDCOを消去しません
  • nwipe:フォークなのでdbanと同じ問題
  • dd:dbanやnwipeと同じですが、不良セクターに遭遇するたびにブロックします
  • 細断処理:ファイルに推奨、dbanのように動作し、SSDに問題がある可能性があります
  • badblocks -w:すべてのセクターを破壊的にチェックする必要があります。SSDに対して正しく実装されていますか?

今のところ、私ができる最善のことはbadblock -wです。

だから問題は、SSDのデータをできるだけ消去するためにどのツールを使用できるかということです。

アイデアは、私が知らないかもしれない情報に基づいて-あなたが知っている-ここにリストされている最も適切なツール、またはここにリストされていない他のツールを見つけることです。

また、SDDのDCOまたはHPAを正しくアクセスまたは削除してしまう可能性があるものも問題ありません。 ->これはほぼ完全に@guestによって回答されましたが、更新2を参照してください。

再マッピング/不良/マッピングされていないセクター、トリミングされたセル、および過剰にプロビジョニングされたスペースについても同様です。

ドライブを破棄することはできません。

出典:

更新:badblocks -wは信頼できない可能性があります( https://Lime-technology.com/forum/index.php?topic=23792. )が、誰かが提供しない限り、さらに調査する必要があります最初にここで答えを、私も興味を持っています。

更新2

さて、私が知る必要がある残りのことは、DCOとHPAのそれぞれの消去と無効化の実装が効果的であり、ATAセキュア消去のようにひどく行われていないことですか?さらに、ここでの単純な質問:HPAを無効にすると、後者も消去されますか?

PS:私がすぐに答えない場合は申し訳ありませんが、私は世界中で働いて旅行しているため、この投稿に関連しています-そして私はしばしば時間を節約するビジネスに直面しています。しかし、私は間違いなく確かに返答します。

10
X.LINK

SSDがATA Security Eraseを不適切に実装していると言う理由がわかりません。最新のものはSEDを使用してそれを実装します(ドライブが認識し、すべてのデータの不揮発性メモリに保存されている暗号化キーを使用し、キーを消去するだけで瞬時にデータを読み取れなくすることができます)。ガベージコレクターがデータを取得すると、データを効果的にワイプする必要があります。不適切に実装されているものもあると思いますが(特に珍しいことではありません)、同じことがハードドライブにも当てはまります。

外付けUSB SSDとHDDはしばしばATA Security Eraseに問題があることは事実ですが、これはUSBインターフェースがATA標準でうまく機能しない問題が原因です。さらに、USBフラッシュドライブ(「SSD」とは呼ばない)は、非常にシンプルなファームウェアと非常にローエンドのマイクロコントローラー(SSDやHDDに比べて非常に強力なプロセッサーを備えていることが多いため)が原因で、ATAセキュリティ消去を実装していません。デュアルコア、場合によってはクワッド)。 SSDは、FTLとフラッシュチップのアレイを接続したフルコンピュータです。フラッシュドライブは、フラッシュメモリを内蔵したマイクロコントローラーです。

ユーザースペースツールを使用したワイプに関しては、DCOに影響を与えるものはなく、オーバープロビジョニングスペースに直接影響を与えるものもありません。 ATA Security Eraseを使用する場合のみ、すべてを消去できます。 HPAだけでなく、再割り当てされたセクター(tooがひどく破損していない限り)をワイプするように設計されています。 DCOは単なる構成データであるため、ストアから入手したときに含まれていなかったものは含まれません。本当に消去したい場合は、DCOを復元するコマンドがあるLinux hdparmツールを使用して、工場出荷時のデフォルトにリセットできます。

Badblocks -wは予測可能なパターンを書き込み、一部のSSDはこれを検出して圧縮するため、実際にはすべてをドライブに書き込まないことに注意してください。データ破壊の目的では、これはほとんど役に立ちません。これを防ぐには、ランダムなパターンを書く必要があります。

ATA Security Eraseを使用してください。特定のSSDファームウェアにバグのある実装があり、ファームウェアをアップグレードしてそれを修正できないことがわかっている場合は、hdparmを使用してTRIMコマンドをすべてのセクターに送信し、dd(またはddrescueのような同様のコマンド)を使用しますまたはdcfldd)を使用して、ランダムデータをドライブに書き込み、これを数回行います。削除されたデータを回復する方法があるためではなく、オーバープロビジョニングスペースに1つのパスで書き込むことができないため、数回行う必要があります。

完全に破損したセクターをワイプすることはできません。セクターがデータを返すのに通常よりも時間がかかっていることをドライブが検出した場合、返されるデータは内部チェックサムと一致しないか、再試行の頻度が高すぎるため、正常なセクターに移動してマークしますそれは悪い。セクターが一定回数以上書き込まれただけの場合も同様です(かなり予測可能な数の消去サイクル(多くの場合2000年程度)の後で失敗するため)。ドライブは、セクターをワイプまたはデータを書き込むために、セクターを手動で良好としてマークするように調整できます(これは、ATA Security Eraseが実行し、hdparmが実行できることです)。健康。セクターがひどく損傷していてanyデータを返せず、ストールが無期限に/完全に失敗した場合、ユーザーまたはドライブが実行できることは何もありません。このセクターは、あなた(または高度な法医学調査官)が物理的に調査しなければ到達できません。 smartmontoolsパッケージを使用して、破損したセクターがあるかどうかを判断できます。

# find out how many sectors are reallocated, and how many reallocations occurred
smartctl -a /dev/sda | grep -i reallocated

例、ATA Security Eraseを使用できない場合のワイプ/dev/sda可能な限り安全に:

# find our max sectors (geometry = 91201/255/63, sectors = 1465149168, start = 0)
hdparm -g /dev/sda

# disable the HPA
hdparm -N p1465149168 /dev/sda

# trim every sector in the drive, from 0 to the max
hdparm --trim-sector-ranges 0:1465149168 /dev/sda

# create a crypt device with a random key, and overwrite it a few times
cryptsetup open -M plain -c aes -d /dev/urandom /dev/sda wipe
for i in {0..6}; do dcfldd bs=256k pattern=0$i of=/dev/mapper/wipe; sync; done
cryptsetup close wipe

# restore DCO to factory defaults (this can mess up the SSD, so do it last)
hdparm --dco-restore /dev/sda

ただし、次のことができる場合は、代わりにATA Security Eraseを使用することをお勧めします。

# initiate an ATA Security Erase which can't be disabled until it completes
hdparm --security-set-pass NULL /dev/sda
hdparm --security-erase-enhanced NULL /dev/sda

そして次回は、データを暗号化してください!

9
guest

短い答え:HPAを無効にしてDCOをリセットしても、ドライブ上の以前に予約されたセクターのみが表示され、安全な消去自体は含まれません。これらのセクターをシステムで利用できるようにするだけで、後でシステムツールで削除できます。

アップデート2:

さて、私が知る必要がある残りのことは、DCOとHPAのそれぞれの消去と無効化の実装が効果的であり、ATAセキュア消去のようにひどく行われていないことですか?

HPAを無効にして(つまり、サイズを0に設定して)、DCOを工場出荷時のデフォルトにリセットできます。これらはどちらも消去を含みません。 HPAとは異なり、DCOには個人情報を含めることができません(HPAには削除されたが上書きされなかったデータが含まれる場合があります)。 DCOはほんの少量の構成データです。完全に拭くことができたとしても、ドライブを壊してしまいます。できることは、それを工場出荷時のデフォルトにリセットすることです。ストアから購入した日以降は何も書き込まれていないため、安全に削除する必要はありません。

DCOに保存されている情報の例。実際に保存されているデータの量を示します。

# hdparm --dco-identify /dev/sda
/dev/sda:
DCO Revision: 0x0001
The following features can be selectively disabled via DCO:
    Transfer modes:
         mdma0 mdma1 mdma2
         udma0 udma1 udma2 udma3 udma4 udma5 udma6(?)
    Real max sectors: 1465149168
    ATA command/feature sets:
         SMART self_test error_log security HPA 48_bit
         (?): selective_test conveyance_test write_read_verify
         (?): WRITE_UNC_EXT
    SATA command/feature sets:
         (?): NCQ SSP

さらに、ここでの単純な質問:HPAを無効にすると、後者も消去されますか?

いいえ。HPAは隠しパーティションと考えてください。 HPAの構成は、この予約パーティションのサイズ変更に似ています。 HPAを無効にすると、サイズが0に設定され、オペレーティングシステムは、一度予約されたスペースを確認して使用できるようになります。無効にすると(0に設定)、以前は変更できなかったスペースは、システムツールを使用して消去できるようになります。しかし、重要なHPAとやり取りできる唯一の方法は、そのサイズを設定することです。

DCOは、ドライブ自体を実際よりも小さくすることでデータを隠すこともできますが、HPAとは異なります。一部のベンダーは、1つのドライブサイズを作成し、DCOでサイズを制限することによってそれを無効にし、フルサイズバージョン(つまり、DCO制限のないバージョン)を販売するために、DCOを介してサイズを意図的に減らします。定価で。ワイプを実行する前にDCOを工場出荷時のデフォルトにリセットすることで、潜在的な制限をすべて取り除くことができますが、ドライブに対する低レベルの構成変更はリスクを伴うことに注意してください

私の最初の回答に対するコメント(これはゲストアカウントなのでコメントで返信することはできません)に関して、あなたがリンクした論文は、ATA Security Erase標準を不適切に実装している古いSSDについて話しているようです。先ほど述べたように、ファームウェアの実装が不十分で、実装に失敗することは珍しくありません。ただし、最近のドライブはすべてSEDを使用しているため、フラッシュセルメモリの残留磁気の問題が解消されます。全体として、現代のドライブは、桁違いに不良ブロックよりもはるかに信頼性が高いと思われます。

簡単なテストは、ドライブを0xdeadbeefのようなパターンで上書きし、ATAセキュリティ消去(SED対応ドライブで)を開始し、パターンが見つからないことを確認することです。これにより、適切に実装されているかどうかを確認できます。コマンドがほぼ瞬時に戻り、パターンがなくなった場合は、SEDが正しく実装されている可能性が非常に高いです。

2
aguest

初めて使用する前に暗号化を設定できる(そしてワイプを実行するためのキーを失う)と想定すると、すべてを削除してもかまいません。それは完全に無関係です。

デバイスにすでにデータがあるが、それが暗号化されていない場合は、それでは遅すぎます。あなたが指摘したように、利用可能なツールにはすべて欠陥があります(摩耗バランス、ブロッキングなどを通じて)。したがって、データを安全に消去する必要がある場合、SSDを物理的に破壊することが唯一の信頼できるオプションです。

だから私は工業用シュレッダーをお勧めします( 他の破壊方法が利用可能です

1
Rory Alsop