デザインツール
ストレージ

Micron SATA SSDを安全に消去する方法 - データのサニタイズが重要な理由

ジョン・タンギー | 2017年3月

現代では機密性の高い情報が極めて重要です。ストレージデバイスのライフサイクル全体(寿命末期や転用時を含む)にわたり、そのデバイスに保存されているデータを常に保護することが必要です。そのため、データストレージデバイスからユーザーデータを安全に消去できることが重要です。マイクロンのSSDはそのための効果的かつ効率的な手段を用意しています。ドライブ全体の消去機能の速度と安全性に関してSSDとHDDを比較すると、SSDにはHDDよりも多くのメリットがあります。

このブログ記事では、シリアルATA(SATA)とTrusted Computing Group(TCG)プロトコル内でSSDを完全消去(サニタイズ)するためにマイクロンが採用している方法についてご説明します。

SSDとHDDの消去に関する比較

歴史的に、HDD内の磁気メディアからデータを永久に削除する方法としては、前もって設定したデータパターン(「オールゼロ」、ランダムデータパターンなど)を用いて既存のデータを上書きする方法が一般に使われてきました。データの復元を完全に不可能にするには、手順を何度か繰り返したり、多大な作業時間がかかったりする場合があります。この方法は非常に非効率なうえ、コストがかかります。

その一方で、ほとんどのSSDに内蔵されているNANDフラッシュメモリの場合は上書きコマンドを使用できません。NANDフラッシュでの上書き方法はHDDとは異なります。SSD内の特定のストレージ要素にデータを保存しようとする場合、その物理的な保存先に対して新たにWRITEコマンドを実行するには、まず、既存のデータに対してERASEコマンドを実行しなければなりません。

このようなNANDフラッシュメディアの仕様のため、ホストコンピューターがSSDに対してデータの上書きを指示した場合、まず、そのSSDが保存先となる各ストレージ要素に対してERASEコマンドを発行する必要があります。消去したい要素に対してSSDが任意のデータパターンを書き込むには、このような消去手順を前もって実行する必要があります。この方法が非効率であることは明白です。この方法でNANDフラッシュの要素を消去した場合、その要素はデータで埋められることになります。

さらに非効率なことに、ホストコンピューターが新たにユーザーデータを書き込む必要があるときは、まず、書き込まれたデータパターンを再度消去しなければなりません。現在、SSDをHDDのように扱おうする試みにより、非効率性が増大しています。

幸いにも、マイクロンのSSDにはドライブからすべてのデータを消去する高速で効率的な手段が搭載されており、ドライブの消去、書き込み、再消去という冗長な手順は不要です。

サニタイズとは

「サニタイズ」という言葉は明確に定義されており、不要・不用なデータを一掃することを意味します。ただし、データセキュリティに関連して使われる場合、「サニタイズ」は、既知のフォレンジックな手段ではデータを復元できない水準までストレージデバイスからデータを削除するプロセスを意味する専門用語です。SANITIZEのようにすべてが大文字で表記される場合は、ATAコマンドセット(ACS)により指定されている、SSD上のデータのサニタイズを開始するコマンドを指します。

政府の仕様書では、サニタイズが極めて広義に説明されています。特に、米国の国立標準技術研究所(NIST)は、Special Publication 800-88「媒体のデータ抹消処理(サニタイズ)に関するガイドライン」という文書の中で、サニタイズについて説明しています。同ガイドラインの最新版は2024年に発行されたリビジョン1で、SP800-88r1から確認できます。この文書は「組織やシステムオーナーが情報の機密性の分類に基づいてサニタイズに関する実務上の決定を下すための支援を行う」ことを目的としています。

SP800-88r1には、今もハードディスクや磁気メディアで用いられている従来の方法に加えて、SSDのデータストレージが持つ新しい性質を考慮して採用されている新しいデータサニタイズプロセスの説明が記載されています。ハードディスク向けのサニタイズ方法はSSDに適しておらず、期待に反した効果を生むことが多いと知られています。

最新のATA仕様では、サニタイズコマンドを呼び出す方法には「SANITIZE BLOCK ERASE」と「SANITIZE CRYPTO SCRAMBLE」の2つがあります。後述するように、これらは異なる方法です。ATA仕様では「SANITIZE OVERWRITE ERASE」についても記載されていますが、HDD専用のため、この記事では取り上げません。

レガシーコマンド:Security Erase

SSD全体を消去する他の方法として、Security Eraseと呼ばれる方法もあり、これは昔からATA仕様に記載されています。SATA 3.0仕様のみをサポートしているマイクロンの旧型SSDにはSANITIZEをサポートしていないものがあり、その場合はSecurity Eraseの使用が推奨されます。SATA 3.1以降をサポートしている比較的新しいマイクロン製SSDでは、Security Eraseとサニタイズコマンドの両方に対応しています。サニタイズもSecurity Eraseも、メディアレベルでは同じ操作を実行します。異なるのはインターフェースコマンドのみです。

この技術ブログでは、サニタイズブロック消去とSecurity Eraseが同じ操作を実行することを把握したうえで、引き続き「サニタイズ」という用語を使用します。

Security Eraseを実行する場合、マイクロンでは、ATAコマンドセット公開インターフェース規格(t13.org)に記載されるように、SECURITY ERASE PREPAREコマンドの後でSECURITY ERASE UNITコマンドを実装することを推奨しています。ENHANCED SECURITY ERASE UNITコマンド(マイクロン製SSDに実装されています)を実行すると、暗号消去が有効になります(暗号消去については、この記事の後半で説明します)。

コマンド実行

サニタイズ操作にSANITIZE BLOCK ERASEコマンドを使用するか、従来のSECURITY ERASE UNITコマンドを使用するかにかかわらず、ドライブレベルでの動作に変わりありません。マイクロン独自のファームウェアがSSDコントローラに対し、ドライブ上のすべてのNANDデバイス(ホストコンピューターやユーザーがアクセスできない、オーバープロビジョニング用に確保されたNANDスペースや廃止ブロックを含む)に対してBLOCK ERASEコマンドを送信するように指示します。

ホストコンピューターがサニタイズ操作を開始すると同時に、SSDコントローラはSSDの最大定格消費電力仕様で許可される最大数のNAND FLASH要素を消去します。このように並列処理されるため、マイクロンのほとんどのSSDでSANITIZE BLOCK ERASEコマンドもSECURITY ERASE UNITコマンドも1分以内に完了します。HDDで同様の操作を行う場合よりも時間が大幅に短縮されます。HDDの場合、ユーザーデータの安全・完全な消去に数時間かかる可能性があります。

消去されないデータ

ユーザースペースとオーバープロビジョニングスペースは完全に消去され、復元できなくなります。ユーザースペースのすべてのブロックはホストによる新たな書き込みの受け入れが可能になります。ドライブはFOB(開封直後)状態になり、最高のパフォーマンスを発揮できます。

ただし、ドライブを正常に動作させるため、一部のデータをスペースに残しておく必要があります。たとえば、NAND内にあるSSDファームウェアのコピー、すべてのSelf-Monitoring and Reporting Technology(SMART)データ、廃止NANDブロックのマッピングテーブルなどのデータが挙げられます。

サニタイズの安全性

一部のエンジニアや科学者により、消去実行後のNANDセル内に迷走電子が検出されており、マイクロンもその可能性を認めています。ただし、ブロック消去操作を実行すると、NANDセルのそれまでの状態にかかわらず、すべてのNANDセルに同一の消去電圧がかかるため、残留した迷走信号を基にNANDセルの以前の状態を判断することは不可能であるとマイクロンは主張しています。

さらに、ディスク全体の上書きとは異なり、SANITIZE操作を中断することはできません。電源を遮断するとSANITIZEコマンドは中断されますが、電源が回復するとすぐに消去が再開されます。SANITIZEコマンドが正常に完了しない限り、SSDがホストコンピューターと通信することはできません。

SANITIZE操作では、廃止NANDブロック内のデータもできる限り消去しようとします。実は、NANDブロックの廃止が生じる最もよくある理由はブロックを正常に消去できなかったことです。しかし、ブロックの消去に失敗した場合でも、そのブロックにある90%以上のビットを正常に消去できることをマイクロンのエンジニアが発見しました。消去できないビットが連続することはほとんどないため、デバイスレベルの検出で理解可能なデータが得られることはありません。SATAインターフェースを介して不良ブロックにアクセスすることはできないため、分離したNANDフラッシュコンポーネントからビットを検出できる必要があります。そのため、デバイスレベルで検出が試みられたとしても、完全に消去されていないNANDブロックから有効なデータを復元されるリスクは極めて低いです。

SANITIZEの検証

非常に機密性の高いデータを管理している顧客の中には、データが永久かつ安全にサニタイズされるというマイクロンの主張を素直に受け入れられない顧客もいると思います。マイクロンの一部の製品では外部のセキュリティ企業と連携しており、仕様に準拠してSANITIZEが実行された後、すべてのデータの復元が不可能であることについて確認を受け、証明を得ています。マイクロンでは一部の製品の証明書を保管しているほか、証明書がない場合は追加のテストと証明を求めることができます。詳しくはマイクロンの営業担当者までお問い合わせください。

SASとPCIe/NVMe SSD

このブログ記事では詳しく触れませんが、SASプロトコルにもPCIe/NVMeプロトコルにも、SATAのSANITIZEコマンドと同じ操作を開始するコマンドが設けられています。SASでのコマンドはFORMAT UNITで、PCIe/NVMeでのコマンドはFORMAT NVMです。

暗号化によるセキュリティ強化

マイクロンは、256ビットの高度暗号化規格(AES)エンジンを用いて最先端のデータ保護を実現する自己暗号化ドライブ(SED)ファミリーを販売しています。

SEDには、パスコード管理によってユーザーデータを保護する強力で安全性の高い仕組みに加えて、ドライブ上のすべてのデータを読み取りできなくする非常に効率的な仕組みも備わっています。

データを永久に消去するため、マイクロンのSATA SEDは、暗号化キーを削除して置き換えるSATA標準のSANITIZE CRYPTO SCRAMBLEコマンドをサポートしています。暗号化キーが置き換えられると、データビットはそのまま残りますが、完全に解読できなくなります。この暗号消去操作の最大のメリットの1つが、ほとんどのドライブで2秒未満で処理が完了することです。

現在、256ビット暗号化キーの解読はほぼ完全に不可能であると広く考えられています。ただし、実用的な時間で暗号化を解読できる超高性能なコンピューティングが可能になる日が来るかもしれません。そのため、時間に余裕がある場合は、すべてのユーザーデータを完全に消去して永久に復元できないようにするため、SANITIZE CRYPTO SCRAMBLEコマンドの後にSANITIZE BLOCK ERASEコマンドを実行することをおすすめします。このコマンドを組み合わせることで、ドライブをFOB(開封直後)のパフォーマンス状態に戻すことができます。CRYPTO SCRAMBLEコマンドだけでは、ドライブを「新品同様」の状態に再初期化することはできません。

マイクロンのSEDは、クライアントコンピューティングストレージデバイスのTCG Opal仕様に準拠しています。SEDの詳細については、こちらのページtrustedcomputinggroup.orgをご確認ください。

PSID復帰機能

SEDはデータの不正な閲覧を防止するのに大いに役立ちますが、認証キーやパスワードなどが失われるリスクも伴います。IT管理アプリケーションには、パスワード、認証キー、その他のアクセスコードの冗長バックアップを行う方法が複数備わっています。そのような機能の活用を強くおすすめします。ただし、それでもパスワードを失う可能性は残ります。不幸にもそのような状況に陥った場合、マイクロンのようなストレージデバイス製造業者であっても、ユーザーデータを復号して取り戻すことは不可能です。そのため、重要なデータが永久に失われる可能性があります。

32文字のPSIDとそれに対応する2Dバーコードの付いたマイクロンのSED

ドライブが暗号でロックされた場合、データが失われるうえ、通常の再フォーマット操作もできなくなります。そのため、ユーザーデータが失われるだけでなく、ドライブそのものが使用できなくなります。

この問題を部分的に解決できるよう、マイクロンのSEDファミリーは物理セキュリティID(PSID)復帰機能に対応しています。PSIDとは、各SSDのシリアルナンバーラベルに印刷されている32文字のASCII文字列のことです。ドライブごとに一意のPSIDが割り振られています。

パスコードがない場合、PSID復帰機能によってユーザーデータを復元することはできませんが、PSID復帰機能を使用することでSEDのロックを解除できます。それにより、SANITIZE CRYPTO SCRAMBLEコマンドを開始し、ドライブの通常機能を回復して再利用できるようになります。

なお、Opal 1.0仕様に準拠した旧式のマイクロン製SSDにはPSID復帰機能が搭載されていないことに注意してください。

Micron Storage Executiveソフトウェア

マイクロンは現在、Micron Storage Executiveという、マイクロン製SSDの多くの機能を管理できる無料のユーティリティソフトウェアをリリースしています。使いやすいWindows®用とLinux®用のGUIとコマンドラインインターフェース(CLI)を選択でき、SANITIZE BLOCK ERASEコマンドとPSID REVERTコマンドの両方を実行する機能を備えています。ソフトウェアのダウンロードやドキュメントの入手方法については、マイクロンのStorage Executiveソフトウェアをご確認ください。

マイクロンのSEDには暗号消去機能も備わっており、現在知られているほぼすべての暗号化テクノロジーを用いて、SSD上のデータを読み取れなくすることができます。そのうえで、SANITIZE BLOCK ERASE操作を実行してデータを削除し、SSDをFOBパフォーマンス状態に戻すことができます。

まとめ

HDDのデータを完全に消去する場合、ディスク全体への書き込み・上書きという方法が一般に用いられます。しかし、NANDフラッシュベースのSSDの場合、データの削除を目的として上書きを行うことは冗長で不要であるうえ、安全ではない可能性があります。NANDフラッシュを適切に消去するには、BLOCK ERASE機能を使用します。

マイクロンでは、データの上書きアルゴリズムを使用する代わりに、SANITIZE BLOCK ERASEを使用することを強くおすすめします。旧式のマイクロン製SSDの場合は、SECURITY ERASEコマンドが推奨されます。これらのコマンドを使用すると、SSDからユーザースペース全体、オーバープロビジョニングのスペース、スペアブロック、不良ブロックの場所にBLOCK ERASEコマンドを適切に実行できます。

マイクロンのSEDには暗号消去機能も備わっており、現在知られているほぼすべての暗号化テクノロジーを用いて、SSD上のデータを読み取れなくすることができます。そのうえで、SANITIZE BLOCK ERASE操作を実行してデータを物理的に削除し、SSDをFOBパフォーマンス状態に戻すことができます。自己暗号化SSDについては、https://www.micron.com/solutions/storage-data-securityをご確認ください。

マイクロンは、製品がマイクロンの生産データシートの仕様を満たしていることのみを保証します。製品、プログラム、仕様は予告なく変更される場合があります。

あらゆる状況で絶対的なセキュリティを提供できるハードウェア、ソフトウェア、システムは存在しません。マイクロンは、セキュリティ機能を搭載した製品の場合を含め、マイクロン製品の使用によって生じたデータの喪失、盗難、破損について責任を負いません。

Principal SSD Product Engineer, CPG

Jon Tanguy

Jon is a Senior Technical Marketing Engineer for Micron's Storage Business Unit, with a focus on client solid state drives.