web-dev-qa-db-ja.com

SSDを安全に消去する代わりのトリミング

SSDを安全に消去するための推奨される方法は、 ATAセキュア消去 です。ほとんどのBIOSは、ドライブをフリーズすることによってこの機能を無効にします。 BIOSフリーズに関するいくつかのトリックが存在し、セットアップに応じて機能する場合と機能しない場合があります。これにより、ATAの安全な消去が使いにくくなります。

SSDを安全に消去する代わりに、トリミングを誤用することはできますか?

既存のパーティションテーブルを削除して、1つのext4パーティションでSSD全体を埋める新しいGPTを作成できます。 ext4パーティションをトリミングすると、SSDはSSD上のすべての論理ブロックを消去しますが、GPTとext4スーパーブロックを保持しているブロックは消去されます。論理ブロックに割り当てられていない予約ブロックは、定義により消去されます。このようにして、すべての物理ブロックが消去されるか、役に立たないGPT/ext4メタ情報が含まれます。

この計画に欠陥はありますか?

SSDを安全に消去するにはATAセキュア消去を使用する必要があると答えないでください。これは問題ではありません。

6

このようにしましょう:

真実は、すべてではないにしても、ほとんどのSSDで、ATA Secure EraseはフルデバイスTRIMと同等です。 ATA Enhanced Secure Eraseが基本的に暗号化キーの再生成である「ハードウェア暗号化」を使用するものを除きます。したがって、SSDのATA Secure Eraseは、「ハードウェア暗号化」をサポートしていない限り、それほど安全ではありません。

一方、デバイスをTRIMする方法はfstrimだけではありません。 blkdiscardを使用して、GPTやスーパーブロックなどを含むブロックデバイス全体(ディスク/パーティション)をワイプできます。

ただし、一部のディスクでのTRIM実装では、発行されるTRIMコマンドに「要件」があるため、それが満たされた場合にのみ、ドライブ上のすべてのブロックがTRIMの後に「ゼロを読み取る」ことに注意してください。

たとえば、Intel 530 SSDでは、TRIMブロック範囲を8ブロックに「調整」する必要があります。したがって、blkdiscardまたはhdparmできれいに拭き取りたい場合は、2つのTRIM範囲で「最小単位」が「カバー」されていないことを確認する必要があります。

blkdiscardを使用して、-p 33550336(65528ブロック* 512バイト、ここで65528 = 65535(単一範囲内のブロックの最大数)-65535%8)を指定する必要があります。オフセットは0(または[8 * 512]の倍数)です。それ以外の場合、ワイプされないブロックが残ります。これは、TRIMの後にhexdumpのようなもので確認できます。

Intel 530(sda)とSilicon Power S70(sdb)の違いをご覧ください。

enter image description here

範囲が整列および整列されていない場合の違い:

enter image description here

(65535 * 2 = 131070は8の倍数ではないため、最後にまだ残っていますが、131064ブロック[0x3FFF000/512]が継続的にワイプされていることがわかります。)

不正行為なし:

enter image description here

P.S.また、SanDiskのドライブで、「ヘッド」と「テール」をTRIMコマンドでワイプできないことも確認しました。その「最小単位」は256ブロックです。

6
Tom Yan

データセキュリティが懸念される場合は、SECURE_ERASEもTRIMも実際にはフラッシュセルを消去しないことに注意してください。 SSDファームウェアは、割り当てられているセルと割り当てられていないセルのリストを保持します。 TRIMは、ファイルを削除するとファイルシステムがクラスターを未割り当てとしてマークするのと同じ方法で、セルを未割り当てとしてマークするだけです。実際にデータを消去する試みは行われません。割り当てられていないセルからの読み取り要求により、デバイスはセルの内容を実際にチェックせずに0x00(またはその他のビットパターン)を返すだけです。

SSDを安全に拭く効果的な方法はありません。ファームウェアと直接インターフェースできるフォレンジックツールは、セルの内容を確認できます。また、デバイスには、ユーザースペースからアクセスできるストレージよりも多くのストレージがあります。これらの余分なセルは、ガベージコレクションで使用されます。ガベージコレクションは、セルをオンザフライで再割り当てでき、100%満杯のドライブでも機能します。 SECURE_ERASEは、これらのセルをTRIMする場合がありますが(おそらくそうします)、blkdiscardまたはfstrimは、TRIMされる領域を識別するためにセクター番号を使用するため、確かにそうしません。

SSDを安全に消去する唯一の方法は、SSDを破壊することです。これは、機器を余剰にする場合のヘルスケア、銀行、および政府のほとんどの企業のポリシーです。

5
Wes Sayeed