web-dev-qa-db-ja.com

SSDからのデータ漏洩を防ぐための現在の最良の方法

OSのブートドライブとして使用されているSSDでデータの機密性を確保するための現在のベストプラクティスについて(Linuxで)疑問に思っています。重要な考慮事項は次のとおりです。

  1. 通常の状態でのデータ漏洩を防止します(ドライブの盗難、移動中のデータの保護はもちろん別の問題です)
  2. できれば純粋なソフトウェア制御下で、オンデマンドで包括的で安全なデータ消去を可能にします
  3. 通常の使用を過度に妨げない

明らかな最初のステップは、フルディスク暗号化を使用することです(ここではLUKS)。これは多かれ少なかれ条件1を満たします(またはすべきです)。また、条件2にも大きく役立ちます。理論的には、ヘッダーがワイプされると、残りのデータに永久にアクセスできなくなるためです。ただし、SSDでは、これに関していくつかの潜在的な問題があります。

質問1:SSDから特定の領域(LUKSヘッダー)を安全に消去する最良の方法は何ですか? TRIMコマンドは明らかにこれを目的としていますが、その信頼性はわかりません。 HDDでは、問題のブロックを繰り返し上書きするだけでかなり自信がありますが、明らかにウェアレベリングにより、SSDでこれが機能しなくなる可能性があります。

質問2:ヘッダーだけを破壊する機能がない場合、ディスク全体を消去するのはどうですか?直感的には、ディスク全体を繰り返し上書きすると、最終的にすべてのセクターが上書きされるため、ウェアレベリングが問題になるのを防ぐことができます。ただし、これは、たとえば、読み取り可能なセクターが不良としてマークされ、マッピングテーブルから除外されています。 Secure Eraseコマンドは信頼できるようになりましたか? 2010年頃の調査によると、当時は多くのディスクに存在していなかったとのことです。最近のデータはありますか? (少なくとも一部のディスクは独自の内部暗号化を使用し、そこで使用されているキーを上書きしてSecure Eraseを実装しているようです。実際に機能する場合、これは問題ありませんが、ドライブ自体に実装されているクローズドソースおよび非監査メカニズムは自信をもって私を満たしてはいけない。)

また、LUKSの分離ヘッダーモードなどを使用して、SSD自体にキーデータが保存されないようにすることもできます。これにはシステム上でいくつかの非標準の構成が必要になりますが、不当に難しいことは何もありません。ただし、ヘッダー付きのデバイス自体が安全で消去可能であることを保証するという、鶏と卵の問題が発生します。ヘッダーを別のSDカードまたはフラッシュドライブに保存すると、これを実際に消去する方が簡単ですか?他にどのような種類のデバイスを使用できますか?

4
Tom Hunt

最初の質問の簡単な答えは、安全な消去の実装を信頼せず、ドライブがウェアレベリングを使用している場合、物理的に破壊せずにSSDからすべてのデータを完全に削除することはできないということです。 [1]

安全な消去にさらに安心を追加する方法は、事前にできる限り消去することです。たとえば、デバイス全体を上書きしてから、次に示すように安全な消去を実行します。

# dd if=/dev/zero of=/dev/X bs=4096
# hdparm --user-master u --security-set-pass <PASS> /dev/X
# time hdparm --user-master u --security-erase <PASS> /dev/X

「X」はデバイスで、パスワードです。ここには、ddを使用したワイピングに関する詳細を提供できるガイドがあります。

https://wiki.archlinux.org/index.php/Securely_wipe_disk

安全な消去を使用する:

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

Ddコマンドは、予約または不良に保持されていないすべてのストレージをゼロにし、安全な消去ですべてを取得する必要があります。私が残された唯一の質問は、ウェアレベリングのしくみです-ddコマンドを複数回実行すると、最初に書き込まれなかったブロックが上書きされる可能性があります-しかし、これには私が持っていないウェアレベリングに関する知識が必要になります。

これはもちろん、セクションだけでなく、デバイス全体(2番目の質問のように)を消去します。セクションを消去するには、デバイス全体ではなく、データとすべての空き領域を上書きできます。これはddを使用して行うことができ、出力はデバイスではなくファイルに送られます。 rootユーザー用に予約されたスペースも上書きされるようにするには、rootとして実行する必要があります。これにより、ファイルシステムレイヤーがプロシージャに追加されるため、そこに制限があるため、すべてのストレージを取得できない場合があります。

ヘッダーを別のデバイスに配置する場合は、物理的に破棄しても構わないデバイスを使用して、ヘッダーを回復できないようにすることができます。別のオプションは、安全なデバイス(NitroKey/SmartCardなど)を使用してキー(またはおそらくは切り離されたヘッダー)を保存することです。これは、ブルートフォース攻撃がストレージデバイスで実行できないことを保証するのに十分な長さです。

[1]確実な消去を信頼できる方法がある場合。例えば。ドライブの安全な消去機能に関する情報をリバースエンジニアリングまたはその他の方法で取得し、安全な消去を実行すると、当然のことです。

1
DougC