セキュリティアーキテクチャ:技術スタック全体像
Vaultaireは単一のアルゴリズムや単一の巧みなトリックに依存しない。すべてのコンポーネントが特定の役割を持ち、一つのレイヤーが失敗しても他のレイヤーを侵害しない、階層的な暗号化アーキテクチャを使用する。プライベートデータと外部世界の間に立つすべての暗号方式、プロトコル、設計上の決断がここにある。
Vaultaireのセキュリティスタックは、ファイル暗号化にAES-256-GCM、鍵導出にPBKDF2(60万回のイテレーション)、メタデータ保護にChaCha20、ハードウェアバックの鍵管理にAppleのSecure Enclaveを使用する。すべてのファイルに独自の初期化ベクトルが付与され、すべてのボールトに独自のソルトが付与され、アプリがロックされると鍵はメモリから消去される。
暗号化スタック
ほとんどのセキュリティアプリは一つの暗号化アルゴリズムを選んでそれで終わりにする。Vaultaireは6つの異なる暗号化メカニズムを連携させ、それぞれが特定の脅威モデルに対して選択されている。ファイルの内容は一つの暗号方式で暗号化される。メタデータは別の暗号方式で暗号化される。鍵は計算コストの高い関数で導出される。ハードウェアセキュリティがその結果を保存する。そしてゼロ知識アーキテクチャが、Vaultaireを構築した人々でさえあなたのデータにアクセスできないことを保証する。
これは複雑さのための複雑さではない。各レイヤーは異なる攻撃面に対応する。AES-256-GCMは大量のファイル暗号化を担当する——Appleシリコン上で高速かつハードウェアアクセラレーションされるからだ。ChaCha20はメタデータを保護する——定常時間でキャッシュタイミング攻撃に強いからだ。PBKDF2は数十万回のイテレーションを経て鍵を導出し、ブルートフォース攻撃を計算上禁止的に困難にする。Secure Enclaveは鍵素材を保存する——誰かがデバイスに物理的にアクセスした場合、ソフトウェアのみの保護では不十分だからだ。
これらのレイヤーが合わさって多層防御アーキテクチャを形成する。攻撃者は複数の独立した暗号プリミティブを同時に破る必要がある——数学的に不可能な領域に確固として位置するシナリオだ。
Vaultaireのセキュリティを、それぞれ異なる種類の鍵を必要とする一連の銀行の金庫扉として考えよ。一つの扉を突破しても次の扉の役には立たない。ファイル暗号方式、メタデータ暗号方式、鍵導出関数、ハードウェアエンクレーブはそれぞれ独立した障壁だ。攻撃者はそのうちの一つだけでなく、すべてを攻略しなければならない。
AES-256-GCM:ファイル暗号化
Vaultaireに保存されるすべての写真、動画、文書はAES-256-GCMで暗号化される——ガロア/カウンタモードで256ビット鍵を使用した高度暗号化標準だ。これは米国政府が最高機密情報に使用するのと同じ暗号方式だ。マーケティング上の比較ではない。文字通り同じアルゴリズム、同じ鍵サイズ、同じ動作モードだ。
AES-256の「256」は鍵の長さをビットで表す。256ビット鍵は2256 の可能な値を持つ。この数字を理解するために:観測可能な宇宙にはおよそ1080 個の原子がある。すべての原子がビッグバン以来毎秒10億個の鍵をテストするスーパーコンピューターだったとしても、鍵空間の1兆分の1の1兆分の1のパーセントも探索できない。AES-256はブルートフォースで破られることはない。今日も、今世紀も、星が燃え尽きる前にも。
GCMモードが重要な理由
AESはブロック暗号だ——128ビットのチャンクでデータを暗号化する。「モード」がそれらのチャンクをどう組み合わせるかを決定する。GCM(ガロア/カウンタモード)はCBCのようなよりシンプルなモードが提供しない二つのものを提供する:並列化された暗号化と組み込みの認証だ。
認証の部分が重要だ。GCMは暗号化されたすべてのファイルに対して暗号化タグを生成する。このタグは改ざん封印として機能する。悪意のある攻撃者によるものでも、破損したディスクセクタによるものでも、暗号文の1ビットでも変更されると、認証タグが一致せず、復号が失敗する。破損したデータを受け取るのではない。何かが間違っているという明確なシグナルを受け取る。この特性は認証付き暗号化と呼ばれ、攻撃者が暗号化データを変更して復号出力を操作する攻撃のクラス全体を防ぐ。
PBKDF2:鍵導出
暗号化鍵はどこからともなく生じるものではない。パターン(またはシークレットフレーズ)から鍵導出関数——人間が提供した入力を暗号化鍵に変換するために特別に設計されたアルゴリズム——を通じて導出される。VaultaireはHMAC-SHA512を使用したPBKDF2(パスワードベース鍵導出関数2)を使用する。これは世界中の政府や金融システムで使用されるNIST推奨の標準だ。
PBKDF2があなたのパターンを守る方法
PBKDF2の根本的な考え方は意図的な遅さだ。パターンを取り、数十万ラウンドの暗号化ハッシュを実行する。各ラウンドはごくわずかな時間を要する。あなたにとって、パターンを描いて復号を待つことはほぼ瞬時だ。ブルートフォースでパターンを推測しようとする攻撃者にとって、その一瞬が推測ごとに掛け算される。
Vaultaireは現代のハードウェアに合わせて特別に調整された高いイテレーション数でPBKDF2を設定する。これらのパラメーターでは、各鍵導出の試みに意味のある計算作業が必要になる。10億のパターン推測を試みる攻撃者は、単一のボールトに対して何年もの継続的な計算が必要になる。そしてそれはソルトを知っているという前提での話だ。ソルトは各ボールトに固有でデバイスに保存される。
すべてのボールトが独自の暗号化されたランダムソルトを受け取る。これは偶然同じパターンを描いた二人のユーザーが完全に異なる暗号化鍵を生成することを意味する。事前計算されたルックアップテーブル(レインボーテーブル)は無用だ。ソルトが各ボールトの鍵導出を一意にするからだ。攻撃者はターゲットにするすべてのボールトについてゼロから始めなければならない。
ChaCha20:メタデータ保護
ファイルの内容を暗号化するだけでは不十分だ。ファイル名、作成日、サムネイルの寸法、ボールト構造はすべてメタデータだ——そしてメタデータはデータ自体と同様に多くを明かすことがある。「tax-return-2025.pdf」という名前のファイルは、内容が暗号化されていても攻撃者に中身を正確に伝える。タイムスタンプはボールトを使用した時期を示す。サムネイルサイズは何かが写真か動画かを明かす。
VaultaireはすべてのメタデータをChaCha20で暗号化する。Daniel J. BernsteinによってCC設計されたストリーム暗号だ。ChaCha20は特定の理由からAESの代わりではなくAESと並行して使用される:暗号学的多様性だ。
メタデータに別の暗号方式を使う理由
ファイルの内容とメタデータの両方に同じアルゴリズムを使うことは、そのアルゴリズムに対する理論的な突破口がすべてを一度に露出することを意味する。ファイルの内容にAES-256-GCMを、メタデータにChaCha20を使用することで、Vaultaireは一方の暗号方式が侵害されるという極めてまれな事態でも、もう一方のレイヤーが無傷であることを保証する。
ChaCha20にはメタデータに対する実践的な利点もある。純粋なソフトウェア暗号方式だ——ハードウェアAES命令に依存しない——そのため暗号化するデータに関わらずパフォーマンスが完全に一定だ。これはキャッシュタイミングサイドチャネルを排除する。これは攻撃者が暗号化にかかる時間を測定して鍵や平文の情報を推測する攻撃のクラスだ。メタデータのような小さな構造化データにとって、この定常時間特性は特に重要だ。
ゼロ知識アーキテクチャ
あらゆるセキュリティアプリについて問うに値する質問がある:背後にある会社がハッキングされたり、召喚状を受けたり、単純に悪意を持つようになったりしたらどうなるか?
ほとんどのアプリでは、答えは不快だ。彼らはあなたのデータ、鍵、またはその両方を保持する。裁判所命令が手渡しを強いる。データ侵害が露出させる。不正な従業員がアクセスする。アプリのセキュリティは会社の運用セキュリティと同じ強さしかない——そして歴史は企業が定期的に侵害されることを示している。
Vaultaireはゼロ知識アーキテクチャの上に構築されている。これはVaultaireを作る会社があなたの暗号化鍵、パターン、シークレットフレーズ、または暗号化されていないデータに決してアクセスできないことを意味する。同期中でもない。バックアップ中でもない。決してない。暗号化操作は完全にデバイス上で行われる。デバイスを離れるもの——何かが離れるとしたら——はすでにあなただけが持つ鍵で暗号化されている。
ゼロ知識が実際に意味すること
法執行機関があなたのデータを要求する召喚状をVaultaireに送っても、会社は完全に従い、まったく有用でないものだけを手渡せる。引き渡す鍵はない。マスターパスワードはない。バックドアはない。iCloudに保存された暗号化ブロブは、あなたの鍵なしには数学的にランダムノイズと区別できない。そしてあなたの鍵はあなたの頭の中(パターンとして)と、アプリが開いている間だけデバイスのSecure Enclave内に存在する。
これはポリシー上の決断ではない。アーキテクチャ上の決断だ。Vaultaireは意図、インセンティブ、法的圧力に関わらず、あなたのデータにアクセスできない。そのシステムはその能力が存在しないように設計されている。
ゼロ知識アーキテクチャは、会社としてのVaultaireを信頼する必要がないことを意味する。サーバーが安全であること、従業員が誠実であること、政府がやってこないことを信頼する必要がない。数学がすべての人からあなたを守る——その数学を書いた人々からも。
Secure Enclave統合
ソフトウェアのみのセキュリティには限界がある。アプリがメモリ内の暗号化鍵をどれほど慎重に扱っても、オペレーティングシステム、他のアプリ、または物理的アクセスツールが理論上そのメモリを読み取れる可能性がある。AppleのSecure Enclaveは、鍵操作のためのハードウェア分離環境を提供することでこの脆弱性を除去する。
Secure Enclaveはすべての現代のiPhoneに組み込まれた専用コプロセッサだ。独自の暗号化されたメモリ、独自のブートプロセス、独自のセキュリティ境界を持つ。Secure Enclaveに保存された鍵は決してそこを離れない——メインプロセッサでさえ読み取れない。代わりに、アプリはSecure Enclaveにデータを送り、Secure Enclaveが内部で暗号化操作を実行して結果だけを返す。
VaultaireはSecure Enclaveを鍵管理に使用する。パターンを描いて鍵導出関数が暗号化鍵を生成すると、その鍵はSecure Enclaveに渡される。その後のすべての暗号化・復号操作はハードウェアに委譲される。鍵はデバッガ、ジェイルブレイクツール、フォレンジックイメージングシステムによって抽出可能な形でアプリのメモリ空間に存在することはない。
これは攻撃者があなたのiPhoneへのルートアクセスを持っていても——高度なジェイルブレイクを必要とするシナリオ——暗号化鍵はアクセス不能なままであることを意味する。Secure Enclaveは独自のシリコンを持つ独立したチップだ。iOSを侵害してもEnclaveは侵害されない。
ファイルごとの初期化ベクトル
同じ鍵で二つの同一ファイルを暗号化すると、ナイーブな実装では同一の暗号文が生成される。これは問題だ。二つの同一の暗号化ブロブを見た攻撃者は——何も復号することなく——二つの元のファイルが同じであることを知る。写真でいっぱいのボールトでは、この種のパターン分析が暗号化を通じてさえ情報を明かすことができる。
Vaultaireはすべての個々のファイルに対して一意の暗号化されたランダムな初期化ベクトル(IV)を生成することでこれを排除する。IVはAES-256-GCM操作中に暗号化鍵と組み合わされ、バイト単位で同一のファイルでも完全に異なる暗号文を生成することを保証する。同じ写真の二枚のコピーが同じ鍵で暗号化されても、まったく関係のないランダムデータのように見える。
IVは暗号化されたファイルと一緒に保存されるが秘密ではない——そのセキュリティは機密性ではなく一意性から来る。各IVはデバイスの暗号化乱数ジェネレーターを使用して生成され、ハードウェアのノイズソースからエントロピーを得る。同じIVを二度生成する確率は天文学的に小さい:GCMの96ビットIVでは約296 分の1だ。
メモリ管理:自己破壊する鍵
セキュリティソフトウェアのよくある失敗は、不要になった後も機密データをメモリに残すことだ。暗号化鍵、導出されたパスワード、復号されたデータは、アプリがそれらを使い終わった後もRAMに長期間残ることがある。フォレンジックツールはデバイスメモリをダンプしてこれらの残骸を検索できる——コールドブート攻撃またはメモリダンプ分析として知られる技術だ。
Vaultaireはメモリ衛生に積極的なアプローチを取る。アプリを閉じるかボールトをロックすると、以下が即座に順番に起きる:
- 暗号化鍵が上書きされる。鍵素材を保持するメモリ場所はゼロで埋められ、次にランダムデータで、そして再びゼロで埋められる。これは単純な解放ではない——メモリは回復を防ぐために積極的に消去される。
- 導出された鍵素材が削除される。PBKDF2計算からの中間値、一時バッファ、キャッシュされた復号データはすべてゼロクリアされる。
- Secure Enclaveの鍵が無効化される。Secure Enclave内の鍵参照は破壊のためにマークされ、パターンから再導出せずには再使用できないことを保証する。
- 復号されたサムネイルとプレビューが消去される。メモリ内のキャッシュされた画像データは、アプリが完全に閉じる前に上書きされる。
次にVaultaireを開くとき、ゼロから始める。パターンを描き、鍵が新たに導出され、Secure Enclaveが新しい鍵参照を受け取る。セッショントークンもキャッシュされた資格情報もショートカットもない。すべてのアプリ起動は前回から暗号学的に独立している。
よくある質問
AES-256は本当に解読不能か?
どの暗号化アルゴリズムも絶対的な数学的意味で解読不能であることを証明することはできない。しかしAES-256は世界的な研究コミュニティによる20年以上の公開暗号解析に耐えてきた。AES-256に対して知られている最良の攻撃は有効な鍵強度を256ビットから約254.4ビットに低下させる——実際上の影響がゼロの無視できる低下だ。AES-256をブルートフォースで破るには太陽系に存在する以上のエネルギーが必要になる。実用上、現在存在するまたは理論上予見可能なあらゆる技術では解読不能だ。
なぜ鍵導出にPBKDF2を使用するのか?
HMAC-SHA512を使用したPBKDF2は、数十年の実証されたセキュリティ分析を持つNIST推奨の標準だ。Vaultaireの高いイテレーション数とボールトごとのランダムソルトと組み合わせることで、ブルートフォース攻撃にはボールトごとに何年もの計算が必要になる。PBKDF2はAppleのCommonCryptoフレームワークにネイティブに実装されており、サードパーティの依存関係を避け、鍵導出が堅牢化され監査されたシステムコードで実行されることを保証する。
Vaultaireはサーバーにどんなデータを送るか?
なし。Vaultaireにはあなたのデータを受け取るサーバーがない。iCloudバックアップを有効にした場合、あなたの暗号化されたデータはあなたの個人のiCloudアカウントに保存される——Appleが持っていない鍵でデバイスを離れる前に暗号化された状態で。Vaultaireという会社は暗号化されていてもそうでなくても、いかなるユーザーデータも受け取らず、処理せず、保存しない。
ジェイルブレイクされたiPhoneはボールトを侵害できるか?
ジェイルブレイクは攻撃者にiOSへのルートアクセスを与えるが、Secure Enclaveは独自のセキュリティ境界を持つ物理的に独立したコプロセッサだ。iOSをジェイルブレイクしてもSecure Enclaveをジェイルブレイクすることはできない。そこに保存された暗号化鍵は完全なオペレーティングシステム制御でもアクセス不能なままだ。ただし、ジェイルブレイクされたデバイスはキーロギングやスクリーンキャプチャの攻撃面を増やすため、最大のセキュリティのためにVaultaireはジェイルブレイクされていないデバイスの使用を推奨する。
なぜファイルとメタデータに異なる暗号方式を使用するのか?
暗号学的多様性だ。AESに脆弱性が発見された場合(極めてまれだが不可能ではない)、メタデータはChaCha20によって保護されたまま、逆も然りだ。さらに、ChaCha20はファイル名やタイムスタンプのような小さな構造化データに理想的な定常時間パフォーマンス特性を提供し、ソフトウェアのみの実装でAESに理論上影響する可能性があるサイドチャネル攻撃のカテゴリを排除する。
アプリがクラッシュしたら鍵はどうなるか?
iOSは終了時に、正常かどうかに関わらず、すべてのアプリメモリを回収する。Secure Enclaveの鍵参照はアプリのセッションに結びついており、プロセスが終了すると自動的に無効化される。クラッシュシナリオでも鍵素材はアクセス可能な形で残らない。次の起動には完全なパターン入力と新たな鍵導出が必要だ——前のセッションを再開する方法はない。
スタックを実際に体験する
6層の暗号化。信頼ゼロ。Vaultaireをダウンロードして、すべての人——私たちを含む——からあなたを守るセキュリティアーキテクチャを体験せよ。
Vaultaireを無料ダウンロード