SSDドライブからファイルを安全に消去する方法は?


14

SSDを安全に消去しようとすると、いくつかの問題があります。

  • 限られた量の消去サイクルの後にSSDが摩耗する
  • SSDには、LBA(システムがディスクにアクセスするために使用する論理ブロックアドレス)をNVRAMセル(実際のフラッシュメモリセル)に動的にマッピングして摩耗のバランスをとるコントローラーがあります。つまり、以前に特定のファイルは、他のスペアブロックを上書きする可能性があります。
  • SSDには、死にかけているストレージセルを補い摩耗を減らすために使用される予備容量の顕著な割合があります。それらはシステムからは見えず、古いデータフラグメントを保持する場合があります。

では、SSDを安全に消去するために、Ubuntu内部からどのようなオプションがありますか?

いくつかの新しいSSDは自分自身を安全に消去できるはずだと聞いたことがありますが、SSDがこれに対応しているかどうか、またどのようにトリガーするかを知るにはどうすればよいですか?
ATAの安全な消去コマンドもあるはずです。それがサポートされているかどうかを調べる方法と、それをトリガーする方法を教えてください。

特定のファイルのみ、または未使用のスペースのみを安全に消去する方法もありますか?
すべてのパーティションのバックアップを作成し、ディスク全体を安全に消去してからバックアップを復元することは可能ですが、あまりにも複雑で、実際には時間がかかりすぎます。他の選択肢はありますか?そうでない場合、既に削除されたファイルもバックアップせずにパーティションをバックアップするためにどのツールを使用できますか?

もちろん、上記のポイントに対しては、標準ツールのような、shredまたはwipeここでは使用できません。単純にファイルを上書きします(ウェアレベリングコントローラーのために同じフラッシュセルを常にポイントしていないLBAにバインドされているファイルシステムクラスターを上書きします)。



カーネルに組み込まれた学術研究を知っています。lwn.net
Articles /

回答:


9

現在、ドライブ全体のコンテンツを消去したり、 SSD のファームウェアにアクセスしたりせずに、SSD上のファイルを安全に消去する方法はありません。

  • SSDが論理ブロックの以前のコピーを保存する場所を知ることは不可能です。

  • さらに悪いことに、ファイルシステムのジャーナリングおよびコピーオンライトメカニズムにより、どの論理ブロックが特定のファイルの以前のコピーを保持しているのかを知ることは不可能かもしれません。

削除されたファイルがドライブに直接アクセスできる人に漏洩するのを防ぐ唯一の方法は、そもそもそれらを暗号化し、暗号キーを覗き見から安全に守ることです。

補遺:

いくつかの調査を行った結果、ファイルシステムのすべての未使用セクターを学習できれば、以前に削除したすべてのファイルを並べ替えることができることがわかりました。)、それらを破棄し(たとえば、リンクされた質問に対するこの回答でblkdiscard(8)説明されているように)、再び使用されてプロセスで上書きされるまで、ガベージコレクションのブロックを返します。

これは、フラッシュセルに直接アクセスできないすべての人に対して安全であるため、

  • 適切なフラッシュセル読み取りデバイスがなく、
  • ドライブファームウェアと通信して未割り当てブロックの内容を明らかにすることはできません(標準化された方法がないため、ほとんどの場合、ファームウェアの意味のある変更とカスタムATAコマンドが必要になります)。

キーポイントとそのリンクからの指示の要約を回答に含めてください。
バイトコマンダー

同等のAUの質問にリンクしました。それが良いことを願っています。
デビッドフォースター

起動時に空き領域を安全に消去することは実行可能なオプションでしょうか?
user4493605

1
@ user4493605:「実行可能」とはどういう意味ですか?確かに可能です。新しい質問やフォローアップの質問がある場合は、新しい質問を開いてください。コメントセクションは、新しい質問や詳細なディスカッションには適していません。私の注意を引くために、コメント付きの通知を送ってください。ありがとう。
デビッドフォースター

3

警告:まだ明確でない場合は、ドライブを安全に消去するとドライブ上のすべてのデータが消去され、回復できなくなります。すべての重要な情報をバックアップする必要があります。

ドライブがセキュア消去をサポートしているかどうかを判断する最も簡単な方法は、それを確認することです。以下の例で/ dev / sdXを使用しました。使用しているデバイスに合わせて慎重に変更する必要があります。

ソース:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

/superuser/1161531/how-to-un-freeze-drive-in-linux

$ sudo hdparm -I /dev/sdX | grep -i erase

私のSSDでは、これは次の結果になります。

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

デバイスでセキュア消去がサポートされている場合、それをトリガーするのは2または3ステップのプロセスです。

  1. 次のsudo hdparm -I /dev/sdXような出力が示すように、デバイスがフリーズしたと報告した場合:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

システムをサスペンドして再開することにより、フリーズを解除します。これは、コマンドsudo systemctl suspend がシステムが再開するまでポインターを移動することで行いました。

  1. この場合、foob​​arをパスワードとして使用しているため、安全な消去を使用するにはパスワードを設定する必要があります。一時的なものとして任意の空白でないパスワードを使用できます。

    sudo hdparm --user-master u --security-set-pass foobar /dev/sdX

  2. パスワードを設定したら、それを使用してドライブを安全に消去できます。

sudo hdparm --user-master u --security-erase foobar /dev/sdX

ドライブがそれをサポートしているので、希望する場合は、代わりに拡張セキュリティ消去を使用することを選択できます。

sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.