Vaultaireの存在理由
プライバシーアプリには致命的な欠陥がある。プライバシーアプリに見えてしまうことだ。このマニフェストは、Vaultaireがなぜ「別のロック画面を追加する」のではなく「証拠を消す」ために作られたかを説明する。
プライバシーアプリには致命的な欠陥がある。プライバシーアプリに見えてしまうことだ。
ロックされたフォルダーは、ロックされていることを主張する。「Calculator+」という名前の隠しギャラリーも、調べようとしている人間には通じない。iPhoneにある「セキュアな」写真保管庫はどれも同じ問題を抱えている——隠し事があることを証明してしまう。
国境の担当者、暴力的なパートナー、権威主義的な政府——誰かがあなたに強制的に電話を開かせようとするとき、彼らはアプリを見て、ロックを見て、開くまであきらめない。
Vaultaireを開いても、名前付きの保管庫の一覧は出ない。1つのパターンが1つの暗号化保管庫を開き、画面はほかの保管庫の存在を示さない。
暗号化フォトストレージが本来あるべき姿
グリッドにパターンを描く。PBKDF2がローカルの保管庫キーを導出し、そのキーが暗号化されたインデックスを認証して、AES-256-GCMのファイル暗号化に使うランダムなマスターキーのラップを解く。設定済みの別のパターンを描けば、別の暗号化保管庫が開く。AESの処理はCryptoKitを通じてアプリのプロセス内で行われる。VaultaireはSecure Enclave内で任意の共通鍵暗号を実行するとは主張していない。
一致するインデックスのないパターンを入力したら?「パスワードが違います」というメッセージも、ほかの保管庫の一覧も出ない。表示されるのは新規作成の空の画面だけだ。この区別のなさはインターフェース上のものにすぎない。インデックスのファイル名とAES-GCMタグをコピーされれば、ファイルシステムを調べる攻撃者はオフラインで推測を検証できる。
インターフェースに保管庫をまたいだ一覧は出ないが、保存領域の境界ははっきりしている。ルートインデックスのファイルは、ランダムなカバーファイルで64個単位に埋められたプールに置かれる。すべての保管庫は、ランダムなファイル名を使う1つの保存フォルダを共有している。それでも、ファイルシステムを調べる者は、ファイルが入っている保管庫の数をおおよそ推定できる。保存容量は暗号化された中身に応じて変わる。調べる者は暗号文をコピーできるが、読めるファイルマップと中身は、パターンから導出したキーとランダムなマスターキーが守っている。
これはドアの錠前ではない。ドアがあった場所に立てられた壁だ。
ゼロ知識アーキテクチャが重要な理由
ロック画面があるだけでは、ファイルが暗号化されている証明にはならない。写真保管庫は、PINやパターンの画面があるかどうかではなく、保存形式、鍵の階層、復旧の経路、アプリのコンテナをコピーされたときの挙動で評価すべきだ。
Vaultaireはもっと限定した原則のもとに作られている。暗号化されたVaultaireのレコードを保存するサービスが、読める保管庫の中身や復号キーを受け取ってはならない。クライアント、iOS、Keychain、ロック解除されたデバイスは信頼モデルに含まれたままで、暗号化ファイルは暗号化されたアプリのデータとして検出できる。
VaultaireのIDアカウントはない。メールアドレスも電話番号も求めない。ただしAppleは購入、iCloud、デバイスアカウントの記録を保持しうる。アプリの分析とクラッシュ診断はデフォルトで有効で、設定の「エラーを匿名で共有」でオフにできる。有効な間は、プライバシーポリシーに沿って仮名の製品イベントが作られる。
ローカルの保管庫を使うのにクラウドは要らない。VaultaireがCloudKitのレコードを作るのは、暗号化バックアップ(デフォルトでオン、設定でオフにできる)と、使う場合のデバイス同期や共有のためだ。CloudKitが受け取るのは暗号文と運用上のメタデータで、読める保管庫ファイルや平文の復号キーではない。iCloudバックアップやパソコンへのデバイスバックアップは別のシステム経路で、アプリの暗号化されたローカルファイルが含まれることがある。
Vaultaireに生体認証によるロック解除はない。パターンはiPhoneのパスコードやFace IDとは別の認証情報になるが、それでも盗み見られたり、推測されたり、強要されて明かしたり、侵害されたデバイスで取得されたりしうる。このアクセス経路をはっきりさせるため、生体認証は入れなかった。
メールでのリセットはない。事業者が保持する復旧鍵もない。VaultaireはBIP-39のニーモニックではない、独自の9語のリカバリーフレーズを生成する。フレーズは暗号化されたKeychainデータベースに保存され、あとから確認できる。バックアップがオンの間(これがデフォルト)は、フレーズで暗号化した復旧マニフェストをCloudKitに保存できる。
パターンはデバイス共通のソルトとともにPBKDF2-HMAC-SHA512を600,000ラウンド通り、256ビットの保管庫キーになる。出力が256ビットだからといって、推測しやすいパターンが256ビットのエントロピーを持つわけではない。キーは使用中アプリのメモリ上にあり、ロック時にはアクティブな状態を破棄するが、一時的なコピーをすべて確実に消去できるとは主張しない。
誰のためのものか
電話の検査が日常的な環境で情報源を守るジャーナリスト。政府の監視下でドキュメントを持ち運ぶ活動家。監視されていると知りながらデバイス上で証拠を安全に保管するDV被害者。デバイス検査が義務である国境を越える旅行者。個人の電話に特権的な資料を持つ弁護士。
そして、プライバシーとは隠し事があることではなく、守る価値のあるものがあることだと理解しているすべての人のために。
脅迫用保管庫
Proでは、どの保管庫でも脅迫用のトリガーに指定できる。そのパターンを描くと指定した保管庫が開き、Vaultaireは現在のデバイスから、ほかの保管庫のローカルのインデックス、保存ファイル、復旧用の対応付けを削除する。既存の暗号化iCloudバックアップと他デバイスのコピーはそのまま残り、あとで復旧するにはリカバリーフレーズを明示的に入力する必要がある。脅迫用の設定はKeychainの項目なので、Keychainにアクセスできる調査者には、設定されていることがわかる。
この処理はアプリの画面上では何も表示されないが、フォレンジック分析で見破られないという保証はない。削除されたファイル、ファイルシステムの状態、クラウドのレコード、他のデバイス、あるいは以前から侵害されていたデバイスから、データが存在したことや変更されたことが明らかになる場合がある。
作らないもの
生体認証によるロック解除は法的に強制される可能性があるため、追加しません。クラウド依存のストレージは追加しません。召喚状や侵害の標的となるからです。保管庫の内容、パターン、リカバリーフレーズ、共有IDを分析に含めることはありません。ただし、クラッシュレポートにはファイル名が含まれることがあり、分析では各保管庫に固定のハッシュ化された参照が付きます。アカウント回復を装ったバックドアは追加しません。利便性のためにアーキテクチャを弱めることはありません。
Vaultaireのすべての決定は一点に帰結する——あなたのプライベートなファイルは、いかなる状況でもあなたのものであり続ける。
Vaultaireは、iPhoneとiPad向けのプライベートで暗号化された写真とファイルの保管庫です。IDアカウントは必要ありません。アプリの分析、クラッシュ診断、Apple Adsのアトリビューションはデフォルトで有効で、設定の「エラーを匿名で共有」でオフにできます。文書化されたイベントポリシーは、保管庫の中身、パターン、リカバリーフレーズ、ファイルの種類、共有IDを除外しています。クラッシュレポートにはファイル名が含まれることがあり、各保管庫には固定のハッシュ化された参照があります。AES-256-GCMはCryptoKitを通じてローカルで実行され、デバイスに結び付いた復旧状態はKeychainが保護します。