USBメモリに隠し暗号化領域を作る方法:秘密の金庫を構築しよう
My USB Drive Has a Hidden Encrypted Vault
My USB Drive Has a Hidden Encrypted Vault
手持ちのUSBメモリ内に、誰にも見られない秘密の暗号化領域を作成する方法を紹介します。重要なデータを物理的に隔離して安全に保護したいエンジニアやガジェット好きには必見のテクニックです。
いいですね!たしか数年前のDefconで、この機能を内蔵したメモリーカードを売ってる企業がいたような記憶があるんだけど。
既製品の「隠し」暗号化ボリュームスキームを使っているだけでは、国家レベルの相手を出し抜くのは無理だよ。こうしたプロジェクトを見つけて簡単に利用できるなら、政府側の業者はそれを見つけるためのスキャナーを確実に開発してくる。彼らはそれが仕事だし、新たな検出機能を作ることでメンテナンス料や新バージョンの請求ができるわけだからね。
結局のところ、問題は2つに集約される:
(1) 暗号化ボリュームを隠す行為は逆に疑念を強く招く。デスクトップに暗号化されたDMGファイルを置いておくのと比べて、状況を3倍悪化させるだけだ。
(2) 最終的なセキュリティは暗号化ボリュームの強度に依存するが、これは20年前の技術だ。BOM(部品表)の制約でメモリハードなKDFが使えないっていうのは、まあ理解できるとしても、そのKDFが標準的なbcryptより50倍も高速で、現実的な人間が設定するパスワードなら専用マシンを使えば数分から数時間で解読可能だという事実は変わらない。
特にハードウェアの処理能力に合わせてKDFの強度を設定したという点には苦笑いしたよ。攻撃者はそのハードウェアで実行することなんて気にしないから。データをコピーして高性能なマシンで攻撃するだけだからね。
(1)については相手が国家機関でないなら意味があるかもしれない。金庫を隠すのと同じ理由で隠しボリュームを持つのは合理的だ。ただ(2)の問題は誰にとっても共通の課題だね。
「否認可能性(Plausible deniability)」を成立させるには、そもそも「隠しボリューム」なんてものの存在を知らないと相手に信じさせる必要がある。Hidden Drive CompanyからHidden Driveを買った時点で、そんなの台無しだよ。
rot13と変わらないよ。
MI300Xを8台か、NVIDIAの同等品をレンタルして計算すれば、途方もなく長いパスワードを使ったとしても関係ないと思う。
数ヶ月の利用契約で高いお金をドブに捨てたと後悔する前に、あっという間に解読が終わるはずだよ。
AES-CTRには他にも問題があるよ。攻撃者は鍵を知らなくても、平文の特定のオフセットのビットを反転させることができるんだ。例えば、sudoバイナリのパスワードチェックを行っている分岐命令がどのオフセットにあるか分かれば(あるいは推測できれば)、そこを書き換えられる。これは記事にあるような多段階の平文復旧攻撃とは違って、一発で実行可能だ。
XTSなら、攻撃者は一度にブロック全体をめちゃくちゃに書き換えることしかできないよう強制されるからね。
ちょっとお知らせ。ブログ記事内の以下のリンクが切れてるみたいだよ。
デバイスのセキュリティに関して、このような機能テストで検証済みです
それ以外は素晴らしいプロジェクトだね!
暗号化USBメモリには明確な法的用途もあるけど、他の人が言ってるように、疑いを招く原因にもなるね。
OpalやPyrite対応のドライブをUSBキャディに繋いで、sedutil-cliで管理する手もあるよ。
こういう機能がキーボードに内蔵されてたらいいな。OSからは全く見えない隠しドライブで、特定の文字列(パスワード)を入力するとアクティブになり、別の文字列を入力すると解除されるようなやつ。