暗号化における「もっともらしい否認」とは
暗号化は、「鍵なしでこれを読めるか?」という問いには見事に答えます。もっともらしい否認は、より難しく、より人間的な問いに答えます。「誰かに鍵を要求されたらどうなるか?」です。このガイドでは、その考え方と由来、Velcryptでの使い方、そしてそれが通用しなくなる地点を説明します。
もっともらしい否認の意味
もっともらしい否認とは、圧力を受けて何かを開いた後でも、あなたがまだ何かを隠していることを誰も証明できない性質のことです。「これで全部です」と言えば、システムは相手にそれを覆す証拠を何も与えません。
これが重要なのは、強力な暗号化によって弱点が数学から人間へ移るからです。ファイルがAES-256で守られていれば、誰も暗号を破ろうとはしません。代わりにあなたに頼み、迫り、脅します。否認可能な設計は、部分的に応じることを安全な選択肢にしようとするものです。
小史:隠しボリューム
この考え方は、ディスク暗号化ソフトウェアを通じて広まりました。TrueCryptやVeraCryptの系統のツールが隠しボリュームを導入しました。通常の暗号化コンテナの未使用領域に、2つ目の暗号化コンテナをしまい込むものです。
この仕組みが成り立つのは、優れた暗号化の出力がランダムなノイズのように見え、ランダムなデータで埋められた暗号化ボリュームの空き領域も同じように見えるからです。あるパスワードでは、それらしいダミーのファイルが入った外側のボリュームが開きます。別のパスワードでは隠しボリュームが開きます。2つ目のパスワードがなければ、隠された部分は空き領域と見分けがつきません。
研究者たちは「否認可能な暗号化」をより形式的にも研究しました。同じ暗号文を、鍵によって異なる平文に復号できるというものです。隠しボリュームは、その実用的で広く使われた形でした。
同時に、同じ研究者や実践者たちは長年にわたって限界も記録してきました。OSは痕跡(最近使ったファイルの一覧、サムネイル、ログ)を残しますし、人の振る舞いには一貫性がありません。また、そのソフトウェアが隠しボリュームに対応していると知っている相手は、単に隠しボリュームがあると決めつけるかもしれません。
Velcryptでの応用
Velcryptは、この原則をiPhoneの写真と書類の保管庫に合わせて取り入れています。外側と内側のボリュームはなく、代わりに次のようになっています。
- パターンごとに別の保管庫があります。 各保管庫は独自のランダムな256ビットのマスター鍵を持ち、そのパターンから導出された鍵で開かれます。
- 保管庫の一覧はありません。 アプリは、保管庫がいくつあるかを列挙できるものを何も保持しません。
- 未知のパターンは空の保管庫を開きます。 Velcryptが見たことのないパターンを描くと、新しい空の保管庫に入ります。「パターンが違います」というメッセージはありません。
その結果、間違ったパターンと、有効だが空の保管庫は、まったく同じに見えます。誰かのために保管庫を開いても、ほかの保管庫の存在を示すものは画面上に何もありません。そのため、ダミーの保管庫は特別なモードではなく、ごく自然な使い方になります。実際の動作は隠し保管庫の機能ページでご覧いただけます。
予定しているPremium機能の脅迫パターン(近日対応)は、これをさらに発展させます。特別なパターンで指定した保管庫を開き、ほかの保管庫へのアクセスを密かに削除するものです。
正直な限界
否認可能性は誇張されがちです。Velcryptが主張していないことを挙げます。
アプリの存在は隠せない
Velcryptは、ほかのアプリと同じようにホーム画面に表示されます。iOS 18以降ではFace IDでロックされた非表示フォルダにアプリを隠せますが、それはiOSの機能で、デバイスのパスコードを知っている人なら見られます。保管庫アプリがあることからわかるのはあなたがプライバシーを大切にしていることであって、何を保管しているかではありません。
暗号化データの存在は隠せない
Velcryptは、暗号化データがデバイスに保存されていることを隠すとは主張していません。暗号化されたファイルは容量を使い、iPhoneの「設定」には各アプリのストレージ使用量が表示されます。デバイスのフォレンジック検査によって、開いた保管庫より多くの暗号化データをアプリが持っていることがわかる可能性があります。パターンがなければそのデータを復号することはできませんが、「ほかにもまだある」ことは専門家には見えるかもしれません。
ほかの場所のコピーは消せない
写真が「写真」ライブラリ、「最近削除した項目」、iCloud、チャットのスレッドにまだ残っていれば、保管庫の否認可能性は意味を持ちません。読み込んだ後は元の写真を削除してください。
見られることは防げない
本物のパターンを描くところを誰かに見られたり、画面を撮影されたりすれば、否認可能性は失われます。一人のときに、画面を隠して描きましょう。
法的な戦略ではない
国によっては、鍵の開示を拒んだり当局を欺いたりすることに罰則がある場合があります。否認可能性が主に役立つのは、嫉妬深いパートナー、泥棒、詮索好きな親族といった非公式な圧力に対してです。当局が関わる場合は、国境を越えるときのガイドを読み、きちんとした法的助言を受けてください。
否認可能性と秘匿性:2つの異なる約束
この2つはマーケティングでよく混同されるので、分けて考えると役立ちます。
| 秘匿性(暗号化) | 否認可能性 | |
|---|---|---|
| 答える問い | 鍵なしでこれを読めるか? | 見せたもの以上があると証明できるか? |
| 依存するもの | 数学と鍵の扱い | 見分けのつかない設計と、もっともらしい振る舞い |
| 強さ | AES-256と適切な鍵導出があれば非常に強い | 状況次第。相手と文脈による |
| 崩れる原因 | 弱い秘密、漏えいした鍵、ほかの場所のコピー | ストレージの使用量、フォレンジックの痕跡、ためらい、見られること |
暗号化は、ほぼあらゆる状況で中身を読めない状態に保ちます。否認可能性はその上に重なる、より柔らかい社会的な層です。その場では価値がありますが、すべてを賭けるべきものではありません。
否認を信じてもらえるものにする
技術が可能性を与え、あなたの振る舞いがもっともらしさを与えます。
- 開いて見せる保管庫を、使われているように保つ。 実際のアルバム、最近の項目、納得できる用途を持たせましょう。
- 説明とストレージを一致させる。 数件の書類しかないダミーと、何ギガバイトものアプリのストレージ使用量は不自然に見えます。
- ためらわない。 開いて見せるパターンは、無意識に描けるまで練習しましょう。
- 痕跡を残さない。 隠しているものにちなんだ名前をほかの場所のアルバムに付けず、元のファイルをほかのアプリに残さないようにしましょう。
Velcryptの位置づけ
Velcryptは、否認可能な構造と強力な暗号化を組み合わせています。Apple CryptoKitによるAES-256-GCM、PBKDF2-HMAC-SHA512(60万回以上の反復)でパターンから導出される鍵、HKDFで導出されるファイルごとの鍵です。すべてがデバイス上にとどまり、保管庫がいくつあるかを明かしうるアカウントやサーバーもありません。詳細は暗号化のページに、防ぐことを想定していない脅威はセキュリティの概要にまとめています。
よくある質問
もっともらしい否認とは、簡単に言うと何ですか?
「これで全部です」と信じてもらえる形で言え、誰もそれを否定する証拠を示せないことです。暗号化では、隠されたデータが空き領域や存在しないデータと区別できない設計によって実現されます。
Velcryptは保管庫アプリを使っていること自体を隠しますか?
隠しません。iOS独自のアプリを非表示にする機能を使わない限り、アプリはホーム画面に表示され、ストレージの使用量もiPhoneの「設定」に表示されます。Velcryptの否認可能性が関わるのは、保管庫がいくつあり何が入っているかであって、デバイスに暗号化データがあるかどうかではありません。
フォレンジックツールで隠し保管庫を検出できますか?
開いた保管庫の分より多くの暗号化データをアプリが保存していることは、示せる可能性があります。正しいパターンがなければデータ自体はAES-256-GCMで暗号化されたままですが、その存在は専門家に対しては否認できないかもしれません。
もっともらしい否認は合法ですか?
暗号化の利用はほとんどの国で合法ですが、鍵の開示や当局を欺くことに関する法律は国によって大きく異なります。このガイドは法的助言ではありません。法的な問題に直面した場合は弁護士に相談してください。
隠しボリュームとは何ですか?
隠しボリュームとは、通常の暗号化ボリュームの空き領域の中に保存された、2つ目の暗号化ボリュームです。あるパスワードで外側のボリュームが、別のパスワードで隠しボリュームが開き、隠されたデータはランダムな空き領域のように見えます。