アプリにおけるプラウジブルデナイアビリティ:概要と重要性

アプリにおけるプラウジブルデナイアビリティ:概要と重要性

プラウジブルデナイアビリティとは、隠されたデータの存在を証明できないことを意味します。


暗号化におけるプラウジブルデナイアビリティとは、別のデータセットが存在することを証明する構造上の痕跡を残さずに、1つのデータセットだけを開示できるストレージの特性です。この主張には脅威モデルの明示が必要です。適切にパディングされた暗号化ストアの静的イメージと、稼働中の侵害されたデバイス、クラウドサービスのメタデータ、別の場所に保管されたコピーとは、それぞれ別の問題です。これは単なる非表示機能ではありません。暗号化、レイアウト、パディング、運用設計がそろって初めて成り立ちます。

このガイドでは、アプリにおけるプラウジブルデナイアビリティの仕組み、本物の暗号化デナイアビリティと表面的なデコイモードの違い、それが重要な現実世界のシナリオ、デナイアビリティの主張を評価する方法を説明します。

暗号化におけるプラウジブルデナイアビリティとは

日常語でのプラウジブルデナイアビリティは、何かをもっともらしく否定できることを指します。ストレージ暗号化で役に立つ目標はもっと狭く、明示した脅威モデルの中で、暗号化ストアを調べる検査官が隠されたコンテンツと未使用のパディング領域を区別できないことです。すでに開いている保管庫、記録された入力、外部のコピー、あらゆる形のデバイス侵害にまでこの約束を広げられるアプリはありません。

この概念はディスク暗号化に起源があります。TrueCrypt(およびその後継VeraCrypt)は隠しボリュームを開拓しました:別の暗号化ボリューム内の暗号化ボリュームです。1つのパスワードは無害なファイルを含む外部ボリュームを明らかにします。別のパスワードは機密ファイルを含む内部隠しボリュームを明らかにします。外部ボリュームの未使用スペースは、暗号化データと区別できないランダムデータで埋められているため、フォレンジック検査官は隠しボリュームが存在するかどうかを特定できません。

アプリにとって、プラウジブルデナイアビリティとは、異なる認証情報(パスワード、PIN、パターン)が異なるデータセットを開き、追加のデータセットの存在を明らかにするメタデータ、レジストリ、設定フラグ、または構造的アーティファクトが存在しないことを意味します。

本物のデナイアビリティ vs 表面的なデコイモード

これがほとんどのアプリが間違える重要な区別です。

表面的なデコイモード(本物のデナイアビリティではない)

多くの保管庫アプリは「デコイ」または「フェイクPIN」機能を提供しています。異なる写真を含む別のスペースを開くセカンダリPINを設定します。問題は、これらのアプリが通常、デコイモードが存在して設定されていることを示すブール値フラグ、データベースエントリ、または設定ファイルを保存することです。

アプリを理解するフォレンジック検査官はこのフラグを見つけられます。設定されたデコイモードを見つけることで、隠されたデータが存在することが証明されます。デナイアビリティは表面的であり、カジュアルなのぞき見には機能しますが、フォレンジック調査では失敗します。

表面的なデナイアビリティのサイン:

  • アプリの設定に「デコイモード」トグルがある
  • 設定ファイルがデコイモードが有効かどうかを保存する
  • データベーステーブルがタイプインジケータ(プライマリ/デコイ)とともに保管庫IDをリストする
  • デコイモードがオンになるとアプリのストレージ構造が変わる
  • デコイモードが設定されていたときにアプリをアンインストールして再インストールすると異なる動作が明らかになる

本物の暗号化デナイアビリティ

本物のデナイアビリティはアーキテクチャ的特性であり、機能トグルではありません。暗号化ストレージは次のように設計されなければなりません:

  1. 別の認証情報は、それ自身のデータセットだけを開示します。システムは、ある認証情報をカモフラージュ用と識別するデコイフラグを別に持ちません。無効な認証情報で失敗するのは構いませんが、その失敗から未開示のデータセットの有無がわかってはなりません。

  2. 保管庫レジストリが存在しない。アプリはいくつの保管庫が存在するかを列挙できません。カウント、インデックス、保管庫IDのリストはありません。アプリのストレージにアクセスできるフォレンジック検査官は、保管庫境界を示す構造的マーカーのない暗号化データの未分化プールを見つけます。

  3. 設定フラグが隠し保管庫を明らかにしない。追加の保管庫が存在するかどうか、または特定のパターンが使用されたかどうかを示すブール値、データベースエントリ、設定ファイルはありません。

  4. ストレージがパディングされている。消費される総ストレージは保管庫数やファイル数に関係なく変化しません。パディングなしでは、検査官は可視コンテンツと比較した総暗号化データサイズから保管庫数を推定できます。

  5. 暗号化データはランダムなノイズと区別できない。ファイル境界、ヘッダー、または1つの保管庫のデータが終わりどこで別の保管庫が始まるかを明らかにする構造的マーカーはありません。

特性 表面的なデコイ 本物のデナイアビリティ
認証情報ごとの別データ はい はい
保管庫レジストリなし いいえ(データベースが保管庫を追跡) はい
設定フラグなし いいえ(デコイトグルが保存される) はい
ストレージパディング まれ はい
静的イメージの中で別のストレージを隠す いいえ はい(明示したストレージ脅威モデルの範囲内で)
アーキテクチャ的 vs 機能的 機能トグル アーキテクチャ的特性

これが重要な現実世界のシナリオ

プラウジブルデナイアビリティは理論的な懸念ではありません。記録に残る繰り返す現実世界の状況に対処します。

国境越え

国境検問所では、検査官がデバイスを調べ、認証情報を求めることがあります。設計が本当にストレージレベルのデナイアビリティを備えていれば、1つの認証情報で無害なデータセットを開示しつつ、静的イメージには隠されたコンテンツとパディングを区別する構造上の目印が残りません。Vaultaireの現在のレイアウトは保管庫ごとに1つのインデックスファイルを持つため、アプリコンテナにアクセスできる検査官に対してはこの保証を提供しません。

家庭内虐待と強制関係

虐待的な関係にある人は、虐待者が監視するデバイスに証拠(怪我の写真、脅迫メッセージ、法的書類)を保存する必要があるかもしれません。虐待者が保管庫を見るよう要求した場合、ユーザーは非機密コンテンツを含む保管庫を開けます。本物のデナイアビリティなしでは、アプリの設定にある「デコイモード」フラグが隠されたコンテンツの存在を明らかにするでしょう。

デバイス盗難

技術を持つ泥棒は、盗んだ電話からデータを抜き出そうとするかもしれません。適切にパディングされた否認可能なストアは、プールをいくつのデータセットが占めているかを隠すことを目指します。ただし、全体の割り当て量、デバイスの状態、バックアップ、操作の痕跡は依然として脅威モデルに含めるべきです。Vaultaireは現在、内容を暗号化していますが、設定した保管庫ごとに数えられるローカルインデックスを1つずつ残します。

法的・ジャーナリスティックな保護

情報源を保護するジャーナリスト、クライアントファイルを保護する弁護士、権威主義的な体制の活動家は、デバイスの内容を強制されるシナリオに直面します。本物のデナイアビリティはデータ押収に対する信頼できる防御を提供します。

Vaultaireが現在実装しているもの

Vaultaireは、パターンごとに分かれたアクセスと、保管庫の一覧を表示しない通常の画面を実装しています。これらは普段のアプリ利用では役立ちますが、上の本物のデナイアビリティのチェックリストをすべて満たすわけではありません。

設定したパターンは、それぞれ別の暗号化された保管庫を開きます。PBKDF2がパターンとデバイス共通のソルトから保管庫キーを導出します。設定済みのキーは暗号化されたインデックスを認証し、ランダムなマスターキーのラップを解除します。未設定のパターンでは「パターンが正しくありません」というメッセージではなく、空の状態が表示されます。

ローカル形式は列挙できます。Vaultaireは保管庫ごとにvault_index_<fingerprint>.binファイルを1つ保存します。フィンガープリントからパターンや保管庫名はわかりませんが、アプリコンテナにアクセスできる人はインデックスファイルを数えられます。AES-GCMの認証と決定的なファイル名は、候補の保管庫キーをオフラインで試す手段にもなります。

ローカルストレージのサイズは一定ではありません。ファイルの内容とメタデータは暗号化され、クラウドバックアップのチャンクにはサイズのパディングとデコイレコードが使われます。ローカルのアプリコンテナは本物とダミーの保管庫スロットを固定数で確保しないため、全体のストレージ量とインデックス数から構造がわかる可能性があります。

リカバリーと脅迫用の状態が存在します。Vaultaireはリカバリー情報を、AES-GCMで暗号化したキーチェーンのデータベースに保管します。脅迫モードは、脅迫用以外の保管庫のローカルインデックスとリカバリーの対応付けを削除し、そのデバイスを同期から切り離します。クラウドバックアップ、ほかのデバイス上のコピー、共有されたすべての暗号化データまでは消去せず、完了までの時間はローカルで行う処理の量によって変わります。

つまりVaultaireが提供するのは画面上の区分けと暗号化されたストレージであり、追加の保管庫が存在しないことの情報理論的な証明ではありません。オフラインのアプリコンテナのスナップショットからローカルの保管庫数を隠すには、本物とダミーのスロットを区別できない固定容量のカタログが将来必要になります。

デナイアビリティの主張を評価する方法

アプリがプラウジブルデナイアビリティを主張している場合、次を確認します:

  1. 「デコイモード」トグルはありますか?あれば表面的です。フォレンジック検査官がトグルを見つけられます。
  2. アプリに保管庫リストやデータベースはありますか?あれば保管庫の存在は証明可能です。
  3. 推測はオフラインで検証できますか?認証付きの暗号文は、別のパスワードハッシュがなくても候補キーを検証できます。推測のコストを何が制限しているのか、ストレージのレイアウトがもっと安く試せるキーのフィンガープリントを提供していないかを確認します。
  4. ストレージ消費は保管庫数によって変化しますか?変化すれば、ディスク分析で保管庫数を推定できます。
  5. アプリは保管庫を列挙できますか?アプリが保管庫のリストを表示できれば、そのリストはデバイス上に存在し、発見可能です。

よくある質問

プラウジブルデナイアビリティは合法ですか?

プラウジブルデナイアビリティを持つ暗号化の使用は、ほとんどの民主主義国で合法です。その存在を証明できない暗号化データをデバイスに持つことを禁じる法律はありません。一部の管轄区域(RIPAに基づく英国、支援・アクセス法に基づくオーストラリア)では、当局は暗号化鍵の開示を強制できます。法的な問題は、その存在が証明できない鍵へのデータの開示を強制することが執行可能かどうかです。これは発展途上の法的領域です。

フォレンジックツールはプラウジブルデナイアビリティを検出できますか?

Vaultaireのアプリコンテナを入手した検査官は、暗号化されたストレージを検出し、保管庫ごとのストレージディレクトリを数えられます。ルートのvault_index_*.binファイルはカバーファイルを含む64個のプールになっていますが、ディレクトリを見ればどれが本物かがわかります。ファイルから保管庫名や平文の内容はわかりませんが、その数からローカルの暗号化インデックスの数がわかります。したがって現在の設計が保管庫を隠すのは通常の操作からであり、あらゆるフォレンジックのストレージ検査からではありません。

プラウジブルデナイアビリティは決意した国家レベルのアクターに対して機能しますか?

鍵、ナンス、実装が健全であれば、AES-256-GCMはコンテンツ暗号化の強固な境界になります。ただし、それでVaultaireの現在のストレージレイアウトが国家レベルの検査官に対して否認可能になるわけではありません。ローカルのインデックス数は見えたままで、保管庫が開いている間に稼働中の侵害がパターン、鍵、プレビュー、エクスポートを狙う可能性があります。現在の機能は、画面上でパターンごとに開く内容を分けるものです。決意の固い検査官が追加のローカルインデックスの存在を証明できないとは約束しません。

プラウジブルデナイアビリティと隠し保管庫の違いは何ですか?

隠し保管庫とは、アプリの通常の画面に表示されない保管庫です。強い暗号学的デナイアビリティはそれとは別の特性で、隠されたデータを未使用のパディング領域と区別できないことを指します。Vaultaireが現在提供しているのは前者です。保管庫ごとに1つのインデックスファイルを持つ形式では、アプリコンテナにアクセスできる検査官に対して後者を提供できません。

クラウドバックアップでプラウジブルデナイアビリティを使用できますか?

Vaultaireは、暗号化したバックアップのマニフェストと、パディングした暗号化ファイルチャンクを、ユーザーのプライベートなCloudKitデータベースに書き込みます。ランダムなレコード名、統一したレコードタイプ、10 MBのチャンクパディング、デコイレコードによって、内容が直接わかることを減らしています。ただし、レコード数、総量、タイミング、更新のパターンはサービスのメタデータとして見えたままなので、クラウドバックアップが一定サイズで情報理論的に否認可能なストアになるわけではありません。

まとめ

強いストレージのデナイアビリティが目指すのは、静的な暗号化ストアの中で、検査官が隠されたデータとパディングされた空き領域を区別できないようにすることです。この機能をうたうアプリの多くは、見つけられる設定フラグを持つ表面的なデコイモードを提供しています。より強い定義を満たすには、明確な脅威モデル、数えられる保管庫レジストリがないこと、手がかりになる設定フラグがないこと、安定したパディング、どのスロットが本物かを明かさない暗号化レコードが必要です。

Vaultaireは、設定したパターンで暗号化された保管庫を分け、ロック中の画面に保管庫の名前や内容を出しません。現在のストレージレイアウトでは、暗号化インデックスの数はアプリコンテナの検査で依然として見えます。これは追加の保管庫が存在しないことの証明ではなく、認証付き暗号化に支えられた画面レベルの隠蔽として扱ってください。