web-dev-qa-db-ja.com

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

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

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

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

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

特定のファイルのみ、または未使用のスペースのみを安全に消去する方法もありますか?
。他の選択肢はありますか?そうでない場合、すでに削除されたファイルもバックアップせずにパーティションをバックアップするためにどのツールを使用できますか?

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

14
Byte Commander

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

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

  • さらに悪いことに、ファイルシステムのジャーナリングとコピーオンライトのメカニズムにより、どの論理ブロックが特定のファイルの以前のコピーを保持できるかを知ることが不可能な場合があります。

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

補遺:

私はいくつかの調査を行い、ファイルシステムのすべての空いているセクタを学習することができれば、以前に削除されたファイルを並べ替えallできることを発見しました、一般的に可能であり、いくつかのファイルシステムツール(たとえばext *ファミリ用)で提供され、次にdiscardそれら(たとえば blkdiscard(8)で) 概説したとおり リンクされた質問に対するこの回答 )。これは、ガベージコレクションのブロックを、再び使用されてプロセスで上書きされるまで返します。

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

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

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

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

ソース:

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

https://superuser.com/questions/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. この場合、パスワードとしてfoobarを使用しているセキュア消去を使用するには、パスワードを設定する必要があります。一時的なものとして任意の非空白パスワードを使用できます。

    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

3
Elder Geek