世界を動かす技術を、日本語で。

私のUSBドライブには隠された暗号化されたボールトがあります

2026年7月20日原文(rootkitlabs.com)

概要

  • Phantomdriveは オープンソース のUSBドライブ。
  • 表面上は 8GB のディスクとして認識され、残りは隠蔽。
  • プレーンテキストでパスワード入力時に 隠し領域 へ切り替え、AES-256で暗号化。
  • ハードウェア・ソフトウェアともに 完全公開 設計。
  • セキュリティ、使い勝手、設計思想を詳細に解説。

Phantomdriveの概要と用途

  • Phantomdrive は、プライバシーを尊重しない環境や強制的なメディア開示が求められる状況で活躍する USBストレージデバイス
  • 通常接続時は 8GBの一般的なUSBドライブ として認識される設計。
  • 特定のプレーンテキストファイル(内容:password:PUTYOURPASSWORDHERE)を書き込むことで 自動的に隠し領域へ切り替え
  • 隠し領域は AES-256 でオンザフライ暗号化・復号化。
  • オープンソース で公開されており、ファームウェア・ハードウェア・設計ツールも全て自由に利用可能。
    • 設計チップは CH569 を採用。
    • メモリには SDカード を使用(eMMCの価格が下がれば今後対応予定)。
    • ケースはエポキシ接着で分解困難、物理的な強度を確保。
  • 攻撃者に物理的に分解されても全データは暗号化 されているため安全性を確保。

設計詳細

  • CH569チップ を中心に、USBポート、電源回路、ファームウェア更新用ボタン、SDカードスロットで構成。
  • UARTテストポイント 搭載で開発・デバッグを容易化。
  • SM4暗号化ブロック も搭載(中国商用暗号標準)。
  • オープンソースの設計ツール を利用し、誰でも再現・改良が可能。
  • eMMC版は将来的に価格次第で対応予定。

暗号化方式とKDF(鍵導出関数)

  • AES-256の鍵導出には パスワード+デバイス固有のソルト を使用。
    • ソルトはUSBの ID_SERIAL_SHORT (例:Phantomdrive:34FC1FA7145467F7)から取得。
    • ソルトにより 事前計算攻撃(レインボーテーブル)の防止
    • デバイスごとに異なるソルトで SDカードの使い回し不可
  • KDFは SHA-256を10万回ラウンド で実行し、約3秒でアンロック。
    • Argon2等のメモリハードKDFはハードリソースの都合で未採用。
    • セキュリティ要件に応じてラウンド数調整や二重暗号化も推奨。

AESの各モード解説

  • AES-ECB :単純なブロック暗号、同一平文→同一暗号文となるためセキュリティ上不適。
  • AES-CTR :カウンターモード、各ブロックごとにカウンター値を暗号化しXOR。カウンター再利用リスクあり。
    • 書き込み速度:約9MB/s、読み込み:約20MB/s。
  • AES-XTS :ディスク暗号化標準。2つの鍵(データ鍵・ツイーク鍵)を使用し、セクターごとにツイークを生成。
    • カウンター再利用問題を解決、速度はやや低下(書き込み6MB/s、読み込み10MB/s)。
    • セキュリティ重視ならXTS推奨だが、速度重視ならCTRも選択肢。

ファームウェアの特徴

  • USB WRITE10/READ10コマンド をSDカードのCMDxに変換するシンプルな設計。
  • ファイルシステム非認識で、全書き込みデータに対して パスワード検出機能 を実装。
    • 書き込みバッファ内に"password:"が検出された場合、パスワードをRAMに抽出し、バッファをゼロクリアしてディスクに残さない仕様。
    • 偶発的な"password:"文字列一致リスクも存在するため、要件に応じてカスタマイズ可能。

セキュリティとコミュニティ対応

  • OpenSSLのAES実装と比較し、 暗号化の正当性を検証 済み。
  • GitHubでのAIによる誤報や誤解、Redditでの議論発生事例あり。
  • コミュニティからのフィードバックを受け、 AES-XTSの実装やKDF強化 など継続的に改善。
  • デバイスの USB PID/VIDや名称もカスタマイズ可能 でステルス性向上。

まとめ・今後の展望

  • Phantomdriveは オープンソース精神 に基づき、設計から実装まで全て公開。
  • プライバシー保護、検閲回避、権利侵害対策のための 実用的なUSBストレージ
  • 今後eMMC版の開発やセキュリティ機能の強化 も予定。
  • プロジェクト支援・プレオーダー受付中。
  • 作者: Ryan Walker (オープンソース愛好家)

参考リンク

  • CH569ライブラリ:https://github.com/hydrausb3/wch-ch56x-lib
  • ISPプログラミングライブラリ:https://github.com/hydrausb3/wch-ch56x-isp

Hackerたちの意見

市販の「隠し」暗号化ボリュームスキームを使ってるなら、国家レベルの敵から逃げるのは無理だよ。もしこれらのプロジェクトを見つけて簡単に使えるなら、国家の業者もそれを見つけるためのスキャナーを作るよ。彼らはそれでお金をもらってるからね。新しい検出があると、メンテナンスや新バージョンの料金を請求できるわけだ。で、問題は二つある。 (1) 暗号化されたボリュームを隠すことは、疑いを大きく高める。デスクトップに暗号化されたDMGを置いておくのと同じ状況に、今はさらに深いピンチにいるってこと。 (2) 実際のセキュリティは暗号化ボリュームの強度に依存するけど、これって20年前の暗号なんだよね。彼はBOMのせいでメモリハードなKDFを使えないけど、それは分かるとしても、このKDFは標準のbcryptの硬さの約50倍速いから、現実的な人間のパスワードなら専用の rig で数分から数時間で破られる可能性がある。特に、暗号化ボリュームを開くのにかかる時間のせいで硬さが設定されているっていう観察には思わず身をすくめたよ。今使われているKDFのスキームに関係なく、攻撃者は面倒くさがってやらないだろうし、ビットをコピーして本格的なハードウェアで攻撃するだけだろう。ポイント(1)は、敵が国家でなければ意味がない。隠し暗号化ボリュームを持つのは、暗号化された金庫を持ちたい理由と同じかもしれない。でもポイント(2)は誰にでも当てはまるよ。

市販の「隠し」暗号化ボリュームスキームを使ってるなら、国家レベルの敵から逃げるのは無理だよ。これなら99%の敵からは逃げられると思う。ほとんどの「国家レベル」の敵は、ただの高校中退者で、国境の仕事をしていて「怪しいものを調べろ」と言われてるだけだから。例えば、大学で大規模なパーティーをしていた時に、警官が本当に私の部屋を薬物のために家宅捜索したことがある。彼らはすべてを持って行った。すべて見つけた。アパートの真ん中に置いてあった1,000ドルの薬物関連のものを除いて...ボルケーノのヴェポライザー。彼らが見たことのないものだったから、何も思わなかったんだろうね。国境でのプライバシー侵害の99%でも、このUSBドライブと同じことが言えるよ... USBを差し込んでパスワードを聞いて、読み取ったりコピーしたりするだけ... 国境で5ドルのUSBドライブを分解してオープンハート手術をすることはないだろう。捨てられるかもしれないし、保管されるかもしれないけど、一般的には...これは普通のUSBドライブよりずっといいと思う。

市販の「隠し」暗号化ボリュームスキームを使ってるなら、国家レベルの敵から逃げるのは無理だよ。これが今や解決された問題だと思ってたんだけど、情報理論的な限界まで。例えば、FAT32のファイルシステムを作って、つまらないデコイファイルを置いてからアンマウントする。FATをトラバースして、使用中のブロックと未使用のブロックをマッピングして、未使用のブロックに暗号化データをランダム形式で保存する。結果は、誰かが安全に消去されたドライブの上にFATファイルシステムを設定したように見えるはず。もし誰かがそのFATボリュームをマウントして書き込んだら、データが壊れるけど、まあ仕方ないね。残る問題は、隠しボリュームをマウントするためにホストに特別なソフトウェアが必要で、それ自体が疑いを招くことだ。これをOSにデフォルトでバンドルすることで解決できるかもしれない。

誰かが、ドライブ上のビットをランダム化するディスクフォーマッティングユーティリティを作るべきだ。そうすれば、正しくやれば純粋なノイズに見える暗号化されたドライブは、ただフォーマットされたドライブだと主張できる。

市販の「隠し」暗号化ボリュームスキームを使ってるなら、国家レベルの敵から逃げるのは無理だよ。もしこれらのプロジェクトを見つけて簡単に使えるなら、国家の業者もそれを見つけるためのスキャナーを作るよ。彼らはそれでお金をもらってるからね。新しい検出があると、メンテナンスや新バージョンの料金を請求できるわけだ。これらのスキャナーはどうやって機能するの?デバイスが普通のUSBドライブとして自己主張して、すべての同じ識別文字列などを持っていて、隠しボリュームがトリガーされるまで完全にアクセスできない場合(例えば、SDカードを別のものに入れ替えるように)、そのスキャナーはドライブが提示するものに対して正確なタイミングやパフォーマンス特性に依存する必要があるように思えるし、特性を持つ正当なUSBドライブがたくさんある。編集: もしそうなら、模倣するためにパフォーマンスの低いドライブを選んで(そのケースを使う)、そのタイミングとパフォーマンス特性に合わせてカスタム遅延を追加するような特性化ステップを持つべきだ。 > (2) 実際のセキュリティは暗号化ボリュームの強度に依存するけど、これって20年前の暗号なんだよね。彼はBOMのせいでメモリハードなKDFを使えないけど、それは分かるとしても、このKDFは標準のbcryptの硬さの約50倍速いから、現実的な人間のパスワードなら専用の rig で数分から数時間で破られる可能性がある。私も同意する。デバイス上での暗号化をする意味って何?このデバイスはボリュームスワッピングの部分だけをやるべきだと思う。隠しセクションをアンマウントして、次に隠しセクションを再マウントする時には、VeraCryptのようなものでその隠しセクションを復号化しなきゃいけない。

暗号化関連のプロジェクトに関するコメントをよく見るけど、読者によっては重要なポイントになることもあるよね。でも、ここでそれを言うのがどれだけ役に立つのかは正直わからない。著者は、どの敵に対して十分であるべきかについて何も主張していないし、自分の制約や決定についてもオープンだよね(だからこそ批判できるわけだし)。基本的に、国家レベルのアクターを回避するのは難しいと思う。運が良ければうまくいくこともあるけど、彼らを直接的にかわすにはかなり賢くないといけない(それが可能かどうかも怪しいし)。そう考えると、AESベースの暗号化スキームに「NSAを騙せない」って警告を大々的に書くのがどれだけ役に立つのか、ちょっと疑問だな。読んでる人がその主張を評価する技術的な知識がなければ、ある敵に対しては守ってくれる解決策を探して、実現不可能なゼロ設定の状態証明の解決策を求めてしまうかもしれないし。もしくは、すでに「AES」って見た瞬間に、これが自分に必要なプロジェクトじゃないってわかってるかもしれない。こういう弱点を指摘すること自体を貶めるつもりはないけど、こういうコミュニケーションは本当に難しいよね。

パスワードに2文字追加することで、50倍どころか500倍の補償ができるよ。それがスピードアップの要因なら、あまり心配する必要はないかな。

これは地元の警察を回避するには多分大丈夫だね。ただ、これをフォレンジックマシンに接続する人はちょっとジレンマに陥るかも:書き込みテストをするか、しないか?パスワードを使ってタイミングリークをチェックしようとすると、潜在的に有害な証拠になっちゃうからね。

信用できる否認をするには、誰もが「隠し」ボリュームについて知らないと思わせる必要がある。それは、Hidden Drive CompanyからHidden Driveを買った瞬間に崩れ去るけどね。

おそらく、VeraCryptの隠しボリュームを使った方がいいし、できればSSDは避けた方がいいね。

rot13でも同じことだよ。8台のMI300XやNVIDIAの同等品をレンタルしたら、長すぎるパスワードでも関係ないと思う。すぐに終わるはずだから、1ヶ月の利用を約束することで無駄にしたお金に腹が立つだろうね。

ROT13をするのに8台のMI300Xが必要なら、やり方を間違えてるよ。

Hacker Newsで議論の続きを見る