みなさんのパソコンには、ソリッドステートドライブ(SSD)が搭載されていますか? 最新のApple製ノートパソコンは全機種にSSDが搭載されていますが、SSDのデータを消去したい時には、やり方に注意が必要です。

SSDのデータは「消去済み」のものでも、実際に消去されているわけではありません。そのため、消去したはずの機密情報も、それを狙う人たちからすれば簡単に盗める状態かもしれないのです。Q&Aサイトの「Stack Exchange」では、Apple製品の専門家たちがデータの消去を安全に行う方法についてヒントを教えてくれています。

SSDのデータはどう消去すればいいですか?

質問者:私はSSDについてあまり良く知らないので、ドライブのデータを安全に消去する方法について、ハードディスク(HDD)と何が同じで何が違うのかがわかりません。『ディスクユーティリティ』を起動して、「全データをゼロにする」オプションを選択して実行するだけでも大丈夫でしょうか? あるいは、この方法はHDDの場合だけに有効なのでしょうか? そして、この他にもしておくべき操作があるのでしょうか?

米国家安全保障局(NSA)が採用しているようなレベルのセキュリティは求めていませんが、自分のMacを売る時に、プライバシーの安全性を確保できるようにしたいのです。

SSDのセキュリティを完全に確保するのは簡単ではない

以下は、Gordon Davisson氏の回答です。

残念ですが、ご質問に対するシンプルな答えはありません。その答えは、あなたが求めるセキュリティのレベルによって変わってきます。SSDのデータ記憶方式はHDDとは異なるため、ドライブ全体をゼロで1回上書きしても、データ消去の方法としてはHDDで行う時ほどの効果はないのです。

HDDとSSDは「消去」の仕方が異なる

HDDの場合、特定のデータページを記録する時は、新しいデータは単純に古いデータの上に上書きされ、置き換えられます。もし、ディスク全体にゼロを上書きすれば古いデータはすべてなくなってしまうわけです。ところが、SSDの場合は、HDDのように単純に個々のページに上書きすることができません。あるページのデータを別のデータに置き換えるには、まず古いデータが消去されていなければなりませんが、SSDは個々のページを消去することができませんから、多数のページからなるブロック全体を消去しなければならないのです。

では、仮に、「アドレス番号5番のページにデータを上書きせよ」とSSDに要求したとしましょう。その場合、SSDは5番のページにあるデータをそのままにした上で、そのページを無効として登録し、現在は何も記録されていない別のページ(ここでは2305番とします)を5番として割り当て、そこに新しいデータを書き込みます。そして、次にOSが5番のページを要求した時は、代わりに2305番にアクセスすることを記録します。5番のページにもともとあったデータは、ドライブの容量が不足する時が訪れるまで、しばらくの間そこに留まります。そしてその時は、同じブロック内にある有効なデータはすべて別の場所に移され、ブロック内のデータは消去されます。詳細については、AnandTechのレビューをご覧ください。

要するに、ドライブ「全体」をゼロで上書きしても、実際はすべての古いデータを上書きしたことにはならないのです。代わりに、コントローラーの変換テーブルが更新され、すべてのページが無効と登録されるため、古いデータは二度とOSに返されなくなります。けれども、コントローラーの制御を回避してまであなたのデータを取得しようとする人が現れた場合、あなたの古いデータは復元されてしまうかもしれません。

いかにして消去すべきなのか

上書きを2回行えばうまく行くかもしれませんが、これはコントローラーが採用しているアドレスの割り当て方式によります。さらに、ランダムなデータで2回上書きすれば、うまく行く可能性は多少高くなりますが、それでも安全性の保証はできません(OS Xのターミナルで、「diskutil randomDisk 2 /dev/diskN」コマンドを入力して実行できます)。

いずれにせよ、どちらの方法にもいくつかの副作用があります。まず、ドライブの寿命をわずかながら縮めてしまう可能性があります。また、SSDの論理スキャンの断片化が増加するため、ドライブの書き込み能力が低下するでしょう。

OS Xの最新のGUI版『ディスクユーティリティ』では、上述の理由により、SSDの安全なデータ消去のオプションがなくなりました。ですが、コマンドライン版の『ディスクユーティリティ』では、現在も実行可能です。さらに、データを暗号化してSSDのデータを安全に消去する方法がいくつか提案されているのを見たことがありますが、この方法は、ランダムなデータで上書きする方法と比べると少し(ごくわずかですが)安全性が低くなるでしょう。

SSDのデータを安全に消去する方法

コントローラーに内蔵された「Secure Erase」(安全消去)機能を呼び出す方法が一番でしょう。この方法は、コントローラーの設計者たちがしっかりとした仕事をしていれば、ドライブ上の全ブロックのデータを本当の意味で消去してくれるはずです。同時に、論理ページのマップのリセットも行われるため、断片化が根本的に解消され、もともとの性能が復活するという副次的な効果もあります。

けれども残念なことに、これまで私が見てきたこの機能を実行するためのユーティリティ(例えば、CMRR製の『HDDErase』)はほとんどがDOSマシン用のもので、Macでは起動できません。「MacRumors」では、『GParted』起動CDからSDDデータの安全消去を行うためのやや複雑な手順がいくつか、ユーザーたちによって紹介されています。また、ブート可能なフラッシュドライブから、『Parted Magic』を利用することも可能かもしれません。

カリフォルニア大学サンディエゴ校の研究によると

カリフォルニア大学サンディエゴ校(USCD)の研究所「Non-Volatile Systems Lab」(不揮発性システム研究所)の研究者たちは、SSDのデータをきれいに消去するためのさまざまな方法について、次の手順で検証を行いました。まず、ドライブのデータを「消去」し、その後、コントローラーの制御を回避するために本体を分解してから、残っているデータをチェックしました(この研究論文は、要約および全文を閲覧できます)。 この研究の結果は、私が上で述べたことと大体一致しています。さらに、コントローラーに内蔵された「Secure Erase」命令は常に適切に実行されるわけではないことも示されました。

本研究の結果、3つの結論が導き出されました。第一に、コントローラーに内蔵された命令の効果は高いものの、それらをメーカーが正しく実装していない場合があるということです。第二に、ドライブ内のアドレス空間の可視領域全体を2回上書きすれば、絶対ではないものの、大抵の場合はSSDのデータ消去としては十分だということです。そして第三に、今の段階で存在する、個別のファイル消去のためのHDD向け技術はどれも、SSDに対しては効果がないということです。

以上からわかるように、ドライブ全体を2回上書きすれば、大半の人たちはおそらく十分な安全性が得られるでしょう。けれども、絶対確実なセキュリティを実現するには、さらに手間をかける必要がありそうですね。

Andy Orin(原文/訳:丸山佳伸/ガリレオ)

Photo by Yutaka Tsutano.