SSD時代のデータ完全消去

古き良き時代(?)のHDDのデータ完全消去といえば、0とか1とかランダムデータとかで全論理セクタを数回上書きするのが一般的で、Wikipediaにshredを使った手順が書いてあるくらいには認知度が高いと思う。

でもそのshred(1)のmanを見ると、ファイル単位でも消去できるようなことが書いてあってビックリ。古き良き時代(?)のFilesystemならばファイルを上書きすれば同じ論理セクタに上書きしてくれるかもしれないけど、最近のFilesystemだと、上書きのつもりでもFilesystemがreallocationしているかもしれないし、nilfs2みたいに追記型かもしれないし、ファイル単位の消去なんて今時はムリでは・・・と思ってたら確かにmanのCAUTIONにいろいろいいわけが書いてあって、要するにムリって書いてあるに等しい。

SSD時代になってくるとさらに話がややこしい。SSDだと中の人(中のマイコン)がセクタの論物変換をやってて、NANDフラッシュメモリのBadblock管理やらECCやらやって、要するにSSDの外から同じ論理セクタに上書きしても内部的には前のデータが物理セクタに残ってるかもしれないわけで。いっぱい書けばそのうち全部の物理セクタを上書きするだろう、というやり方もなんだか心許ない。で、こういう用途のために、ATA Secure Erase(eMMCにもSecure Eraseがある)というのがあり、仕様上はこれを使えば完全消去できることになっている。ただしょせんは仕様なので、もしSSD(やeMMC)の中の人がさぼっていると・・・幸いにも(?)、NANDフラッシュメモリは一度eraseすると前のデータを読むのはかなり困難なので、HDDの磁気ディスクみたいに何度も上書きする必要性はかなり低いと思う。

なんだよSSDめんどくせーなならHDDでいいや、と思っているとこれも危なくて、いわゆる4KセクタのHDDのadvanced formatだと4Kセクタへの部分上書きのためにエミュレーションしてるけどこのときパフォーマンス稼ぐために別の物理セクタに書いている可能性を否定できないし、SMRだとこれが256MBセクタとも言えるわけだし・・・それ以前にRAIDコントローラ使ってたら・・・

というわけで、本当にヤバイデータの場合は物理的に破壊がいいと思います、はい。
SSHD?さぁ?知らない子ですね。

あ、TRIM(DISCARD)の話を入れ忘れた、まぁいっか。

このブログ記事について

このページは、らるるが2016年6月20日 04:11に書いたブログ記事です。

ひとつ前のブログ記事は「Linux 4.5 から MADV_FREE が登場してた」です。

次のブログ記事は「Linuxでlazy umountしたときに厳密にumountされたタイミングを知る方法」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0