廃棄や中古売却前のディスク内容の破棄について

ベストプラクティスはOSセットアップ時の推奨にしっかり乗ることです。
- スマホは今時のものはデフォルトでディスク暗号化が有効
- Windowsならディスクドライブ暗号化(BitLocker)を有効にする
- MacOSならFileVaultを有効にする
- UbuntuならLUKSを有効にする
つまり、最初っからディスクに第三者が読めるような平文を書き込まない事です。
すると、暗号化カギを消去するだけでディスクのどこをとっても読み取れるものがありません。
一度でも平文で書き込んでしまったらそれを漏れなく読めなくする方法というものはかなり難しいです。
shredなどのツールでランダム値をディスク全体に書き込むなどするしかない。
(しかも磁気式は2~3回別の値が書き込むなどしないとアナログ的な磁気の痕跡から元の値を類推される可能性もある)

物理破壊について
- 読み書きの制御に重要な部分を壊すことで安価に中身を参照される可能性は激減します
- 中途半端な破壊の場合、コストを掛ければ読み取られる可能性は残ります
- HDDであればプラッタを正常品に移植して読み取られる可能性が残り
- SSDであれば半導体のボンディング配線にアクセスして中身を読み出す可能性が残ります
- これらの可能性を低く抑えるために徹底的な破壊を行うのは意外と大変
- SSDをレンチン?電波電力の集中が偏ることで生き残る半導体が残るかもしれない
- そして破壊の程度が適切なのかどうかを確認するすべもコストがかかるので実質確認できない
つまり、破壊を徹底する可能性よりも作業者がケガやダメージを負う可能性のほうが高いので、
「読み書きの制御に重要な部分を壊す」で妥協するしかない。それ以上徹底するのは自己満足でしかない。(であればshredツールで時間をかけるほうがより安全)

BitLocker、FileVaultは解除・再設定が自由
- システムイベントログに解除期間のわかるログは残る
- 解除期間がある場合はやはりshredなどを行うしかないかな
- 組織であれば解除しないことを徹底する必要はあります

TPMやセキュアチップについて
- 昨今標準搭載されるこれらのチップ
- 耐タンパー性能を確保するべく半導体設計されている
- 秘密鍵を取り出せないことで第三者に解読させるチャンスを無くす戦略
- 内部で生成保存され直接参照できず、署名に利用するか消去(破棄)しかできない
- この署名とPINを利用して暗号化カギをメモリ上に復元してディスクを読めるようにする
- この秘密鍵の破棄を行うと暗号化カギを復元することは不可能になる(あてずっぽうで導出するのには膨大な時間とコストを必要とする)
- PINにはキー入力のほか指紋認証や顔認証などが利用できる
- 「暗号化カギをメモリ上に復元」これを読み取るハックの可能性はあるが、ハードに改造が必要だったりするのと、昨今セキュアチップをCPUなどのSoCに内蔵する方向に進んでいるので簡単に改造できなくなってきている

暗号化で性能低下?
- 昔の機材であれば20~45%くらいスループットが低下する事例はあった
- 今時はSSDのコントローラーで暗号化と復号を行うので全く影響はなくなってきている
- 汎用ストレージであってもCPUのハードウェア支援もあるので体感はほぼわからない

shredにかかる時間
- 昨今のSSDであれば1GB/secくらい出るけど
- それでも1TBに千秒かかる
- HDDだと10倍から100倍時間がかかる
- 一つのHDDに日にち単位の時間動かし続けるの非現実的
だから、作業可能な範囲としては「あらかじめ暗号化運用して暗号鍵破棄」か、「1箇所だけ急所破壊で妥協」のどっちかないし両方が限界だと思う。「徹底した破壊」や「徹底したshred」というのはコストがかかりすぎて現実的ではないうえ、効果を計測できないという問題が残る。

暗号鍵を失うかもって不安?
- 回復キーという別の手段も用意されている
- マイクロソフトアカウントにバックアップされているのでオンライン経由で復旧が可能
- MacやiOSもApple IDへのアクセス手段さえあれば復旧が可能
- LUKSでは複数のキースロット(最大8つまで)を持ち、それぞれにパスフレーズや鍵ファイルを設定できるので必ず復旧用の設定を増やしておくことが肝心です

まとめ
- shredなどで全データを上書きは時間がかかりすぎて現実的ではない
- 物理破壊は徹底するには作業者へのリスクが高いので現実的ではない
- ストレージに平文で書き込むことをそもそもやめるのがベスト
- 「システムディスク暗号化」を正しく運用するのがベストプラクティス
- 暗号化デメリットはほとんど解決済み(性能面、利便性ともに)
- Linuxだけセットアップがちょっと複雑になる
- というか何が何でも漏洩を怖れるならなおさらベストプラクティスに乗っかるべき
- 鍵ロストへの不安対策は事前の推奨タスクをきっちりこなすことで多くの問題は解決する
- そして実際のストレージの破棄や中古屋売却の前にはシステムディスクワイプ処理=暗号化カギの破棄で瞬間的にデータの漏洩を完全に不可能にする

個人なら運用可能でも組織だとツラい
Windowsの場合、グループポリシーで「Active DirectoryドメインサービスにBitLocker回復情報を保存する」を有効にし、BitLockerの回復キーをドメインコントローラーのADに自動的にバックアップできます。AD上に保存された回復キーは、管理者が「Active Directoryユーザーとコンピューター」管理ツールの拡張機能(回復キービューア)を使って容易に検索・取得でき、利用者がロックアウトされた際などに復旧対応がスムーズになります。また、マイクロソフトアカウントには回復キーをアカウントに保存することが推奨されているのでそれに従っておけば回復は可能です。
macOSは個人の管理に頼る部分はどうしても発生しますが、管理者が回復キーの収集と保管をすることも推奨です。また、AppleIDアカウントによるアクセスでも復旧は可能なので、AppleIDを会社のメアドに紐づけることで多くのトラブルは回避可能なはずです。
残念ながらLinuxではかなり専門的なツールを複数組み合わせていくことになり、そのベストプラクティスはいまだ確立されてはいないのが現状です。

ChromeOS
- PC-OSとスマホOSのいいとこどりをしているChromeOS
- アンセキュアな設定を許さないという特徴があります
- もちろんデフォルトでシステムドライブの暗号化が有効です
- アンロックもパススルーを許してくれません最低でもPINは必須
- Linuxの亜種でもあるのでLinuxをセキュアに運用したいならお勧め

リムーバブルメディアやNAS
- これらによる漏洩問題を考える時は別途考慮が必要なのは言うまでもない
- 実はこっちから漏洩する事例のほうが多い?
- VeraCryptなどをちゃんと運用する?
- 組織ならE2E暗号化に対応したクラウドストレージを経由して交換するのが推奨