セキュリティアーキテクチャ:技術スタック全体像
Vaultaireは単一のアルゴリズムや単一の巧みなトリックに依存しない。すべてのコンポーネントが特定の役割を持ち、一つのレイヤーが失敗しても他のレイヤーを侵害しない、階層的な暗号化アーキテクチャを使用する。プライベートデータと外部世界の間に立つすべての暗号方式、プロトコル、設計上の決断がここにある。
ヴォルテールは使用します AES-256-GCM ボールトのインデックス、ラップされたキー、ファイル ヘッダー、コンテンツ、サムネイル、メタデータにわたる認証された暗号化を実現します。 PBKDF2-HMAC-SHA512 パターンからローカルのボールト キーを導出し、デバイス全体のボールト キーを導出します。 Keychain 塩。そのボールト キーは、別個のランダムな 256 ビット マスター キーをラップし、ファイルの暗号化を実行します。 CryptoKit アプリプロセス内。
暗号化スタック
Vaultaire は、特定のジョブのためにそれぞれが選択された、連携して動作する複数の暗号化メカニズムを使用します。 PBKDF2 人間の資格情報をボールトまたは回復キーに変換します。 AES-256-GCM インデックス、ラッパー、メタデータ、サムネイル、ファイル コンテンツを保護します。ランダムなマスター キーは、長期間有効なファイル暗号化を変更可能なパターンから分離します。 Keychain そして iOS データ保護は、デバイスがロックされている間、デバイスにバインドされたソルトおよびリカバリ レコードを保護します。プロバイダーが保持する復号キーによって、開発者はボールトの平文に日常的にアクセスできなくなります。
これは、それ自体が複雑というわけではありません。各層は異なる攻撃対象領域に対応します。 AES-256-GCM 機密性と認証を組み合わせているため、変更された暗号文は検証に失敗します。 PBKDF2 各パターンまたはフレーズをテストするコストが増加します。ランダムなマスター キーは、パターン変更により、すべてのファイルを再暗号化するのではなく、1 つのキーを再ラップできることを意味します。 Keychain データ保護 ローカルのソルトとリカバリの記録を保護しながら、アプリはプロセス メモリ内で対称暗号化が行われていることを認識します。
これらの層は一緒になって多層防御アーキテクチャを形成しますが、すべてが独立した障壁であるわけではありません。推測されたパターンはインデックス ファイル名と照合してチェックでき、 AES-GCM 認証が行われ、侵害されたロック解除されたデバイスはアプリ プロセス内のキーまたは平文を観察する可能性があります。したがって、アーキテクチャは資格情報のエントロピーに依存します。 PBKDF2 コスト、 iOS デバイス保護、正しい認証暗号化処理、および AES 自体の強度。
Vaultaire の階層を、ネストされたロックされたコンテナーのセットとして考えてください。パターンから派生した 金庫の鍵 認証されたインデックスを開きます。インデックスはラップされたランダムを解放します マスターキー。そのマスター キーはファイルとメタデータを保護します。 PBKDF2, AES-GCM, Keychain、そして iOS データ保護はさまざまな特性に貢献しますが、セキュリティの主張は完全なチェーンと同じくらい強力です。
AES-256-GCM:ファイル暗号化
Vaultaire に保存されているすべての写真、ビデオ、ドキュメントは暗号化されています。 AES-256-GCM — 256 ビット キーを使用する Advanced Encryption Standard ガロア/カウンターモード。ヴォルテールも使用しています AES-GCM ボールトのインデックス、ファイル ヘッダー、サムネイル、キー エンベロープ用。アルゴリズムとキーのサイズは標準化されています。 Vaultaire のセキュリティは依然として、ノンス処理、キー管理、資格情報の強度、実装の正確さに依存しています。
AES-256の「256」は鍵の長さをビットで表す。256ビット鍵は2256 の可能な値を持つ。この数字を理解するために:観測可能な宇宙にはおよそ1080 個の原子がある。すべての原子がビッグバン以来毎秒10億個の鍵をテストするスーパーコンピューターだったとしても、鍵空間の1兆分の1の1兆分の1のパーセントも探索できない。AES-256はブルートフォースで破られることはない。今日も、今世紀も、星が燃え尽きる前にも。
GCMモードが重要な理由
AESはブロック暗号だ——128ビットのチャンクでデータを暗号化する。「モード」がそれらのチャンクをどう組み合わせるかを決定する。GCM(ガロア/カウンタモード)はCBCのようなよりシンプルなモードが提供しない二つのものを提供する:並列化された暗号化と組み込みの認証だ。
認証の部分が重要だ。GCMは暗号化されたすべてのファイルに対して暗号化タグを生成する。このタグは改ざん封印として機能する。悪意のある攻撃者によるものでも、破損したディスクセクタによるものでも、暗号文の1ビットでも変更されると、認証タグが一致せず、復号が失敗する。破損したデータを受け取るのではない。何かが間違っているという明確なシグナルを受け取る。この特性は認証付き暗号化と呼ばれ、攻撃者が暗号化データを変更して復号出力を操作する攻撃のクラス全体を防ぐ。
PBKDF2:鍵導出
Vaultaire は、ジョブごとに異なるキーを取得します。パターンとデバイス全体 Keychain 塩飼料 PBKDF2-HMAC-SHA512 600,000 回の反復でローカル ボールト キーを生成します。決定論的なパターンの導出により、個別のクラウド バックアップ キーが生成されます。正規化された回復フレーズは 800,000 まで実行されます。 PBKDF2 回復エンベロープのキーを生成するための繰り返し。これらの派生は、出力が 256 ビット長であるという理由だけで、人間の資格情報を 256 ビットのエントロピーに変換するものではありません。
PBKDF2があなたのパターンを守る方法
背後にある中心的なアイデア PBKDF2 意図的な作業です。シリアル化されたパターンまたは正規化されたフレーズを受け取り、何十万もの実行を実行します。 HMAC-SHA512 繰り返し。正規のユーザーは、ロック解除または回復の試行中にそのコストを 1 回支払います。攻撃者はすべての候補に対して料金を支払いますが、実際の推測率は並行したハードウェアと実装の選択によって決まります。
Vaultaire が構成する PBKDF2 パターン派生キーの場合は 600,000 回の反復。そのため、各推測のコストは高くなりますが、責任ある攻撃の見積りでは、候補ごとに測定された時間とハードウェアの想定を記載する必要があります。候補ごとにちょうど 1 ミリ秒の場合、1,000,000,000 回の連続推測には数年ではなく、約 11.6 日かかります。 256 ビットの結果では、予測可能なパターンのエントロピーは拡張されません。
ローカル パターンの導出では、デバイスに対して 1 つの暗号的にランダムなソルトが使用され、WhenUnlockedThisDeviceOnly として保存されます。 Keychain アイテム。ソルトは秘密ではなく、そのデバイス上のボールトによって共有されます。これにより、あるデバイス用に構築されたテーブルが、異なるソルトを持つ別のデバイスに直接適用されるのを防ぎますが、攻撃者が同じデバイス上のすべてのボールトを最初からやり直すことを強制するわけではありません。
AES-256-GCM: メタデータ保護
ファイルの内容を暗号化するだけでは不十分だ。ファイル名、作成日、サムネイルの寸法、ボールト構造はすべてメタデータだ——そしてメタデータはデータ自体と同様に多くを明かすことがある。「tax-return-2025.pdf」という名前のファイルは、内容が暗号化されていても攻撃者に中身を正確に伝える。タイムスタンプはボールトを使用した時期を示す。サムネイルサイズは何かが写真か動画かを明かす。
Vaultaire はこのメタデータを次のように保護します。 AES-256-GCM、ChaCha20ではありません。ファイル名と MIME タイプは暗号化されたファイルヘッダーにエンコードされます。暗号化されたボールト インデックスには、ファイル レコード、日付、サイズ情報、ストレージ レイアウト、およびラップされたマスター キーが含まれます。サムネイル データもランダム マスター キーで暗号化されます。
メタデータに認証暗号化を使用する理由
メタデータには機密性だけでなく整合性も必要です。 AES-GCM 暗号化された値ごとに認証タグを生成するため、Vaultaire は攻撃者が制御する平文を受け入れる代わりに、変更されたヘッダー、インデックス、サムネイル、またはエンベロープを拒否できます。この設計では、実装では提供されない暗号化の多様性を主張するのではなく、これらのストレージ形式全体で 1 つの認証された暗号化構造を意図的に使用しています。
同じ暗号は、同じキーや nonce がやみくもに再利用されることを意味するものではありません。ボールト キーはインデックスを保護し、ランダムなマスター キーをラップします。マスターキーはファイル素材を保護します。 CryptoKit Vaultaire のストリーミング形式は、注文されたチャンクごとに個別のナンスを導き出しますが、認証済みの密閉ボックスを新しいナンスで作成します。関連する保証は、2 番目のメタデータ暗号ではなく、キーの分離、ノンス規律、および認証から得られます。
ゼロ知識アーキテクチャ
あらゆるセキュリティアプリについて問うに値する質問がある:背後にある会社がハッキングされたり、召喚状を受けたり、単純に悪意を持つようになったりしたらどうなるか?
ほとんどのアプリでは、答えは不快だ。彼らはあなたのデータ、鍵、またはその両方を保持する。裁判所命令が手渡しを強いる。データ侵害が露出させる。不正な従業員がアクセスする。アプリのセキュリティは会社の運用セキュリティと同じ強さしかない——そして歴史は企業が定期的に侵害されることを示している。
Vaultaire は、パターン、秘密フレーズ、復号化キー、または読み取り可能な Vault コンテンツを受け取るアカウントやストレージ サービスを運営しません。暗号化と復号化は、デバイス上のアプリ プロセスで行われます。いつ iCloud バックアップが有効になっている場合、アプリは認証された暗号文をプライベートに送信します。 CloudKit Vaultaire が制御するボールト サービスではなく、データベースに接続します。
ゼロ知識が実際に意味すること
法執行機関が Vaultaire に Vault の平文を要求する召喚状を提出した場合、同社はその復号化に必要なパターン、回復フレーズ、Vault キー、バックアップ キー、またはマスター キーを保持していません。暗号化された iCloud 記録はユーザーの中に存在します CloudKit プライベートデータベース。ただし、デバイス上では、リカバリ マテリアルは暗号化されたファイルに保存されます。 Keychain データベースと対称キーはアプリのメモリに存在しますが、 CryptoKit 開いているボールトを暗号化または復号化します。
このプロバイダーの境界はアーキテクチャ上の特性であり、クライアント環境のすべての部分が信頼モデルの外側にあることを保証するものではありません。 Vaultaire は、定期的な Vault 回復のために引き渡すことができるサーバー側の復号化キーを保持していません。出荷されたアプリは、 iOS、ロックが解除されたデバイス、および暗号実装は引き続き読み取り可能なデータを処理できるため、それに応じて信頼される必要があります。
Vaultaire のプロバイダー境界では、会社が保持する復号キーが通常の設計から削除されます。これにより、Vaultaire 自体の侵害によって暴露される可能性が軽減されます。出荷されたクライアントを信頼する必要性がなくなるわけではありませんが、 iOS、デバイスの状態、または文書化されたキー階層の実装。これらの境界は、絶対的な約束にまとめてしまうのではなく、個別に評価する必要があります。
Keychain およびアプリとプロセスの境界
アップルの Secure Enclave サポートされている秘密キーを保護し、プラットフォームのセキュリティ アーキテクチャの一部に参加しますが、パブリック API は任意のキーを受け入れません。 PBKDF2-派生対称キーと Vaultaire の実行 AES-GCM コプロセッサ内のファイル操作。したがって、Vaultaire はその Vault 暗号を次のように説明していません。 Secure Enclave AES。
Vaultaire は通常のものを使用します iOS Keychain ランダム デバイス ソルト、暗号化された回復データベース、およびそのデータベースを保護するランダム キーの汎用パスワード項目。これらの項目は、WhenUnlockedThisDeviceOnly アクセシビリティ クラスを使用します。 Keychain データ保護は、特に電話がロックされている間、意味のあるデバイス境界を作成しますが、このアーキテクチャはエクスポートできないものとは異なります。 Secure Enclave 鍵。
模様を描くと、 CommonCrypto アプリプロセスでボールトキーを取得します。 CryptoKit そして、Vaultaire の CryptoEngine は、そのプロセスで対称キー バイトを使用してインデックスの認証と復号化、マスター キーのラップ解除、ファイルの処理を行います。アプリはロックされるとアクティブ状態をクリアしますが、ロックされていないセッションを監視する十分な特権を持つ攻撃者には、ロックされたデバイスの暗号文だけを保持している検査者とは異なる機会が与えられます。
ジェイルブレイクされた、または侵害されたオペレーティング システムは、パターン入力、アプリのメモリ、復号化されたプレビュー、エクスポート、または画面をターゲットにする可能性があります。 Vaultaire では、ジェイルブレイクされていない最新のバージョンを推奨しています。 iPhone デザインが依存しているからです iOS プロセスの分離、 Keychain、データ保護。ルートの侵害により、開いているボールトの対称キーにアクセスできなくなるとは主張していません。
ファイルごとの初期化ベクトル
同じ鍵で二つの同一ファイルを暗号化すると、ナイーブな実装では同一の暗号文が生成される。これは問題だ。二つの同一の暗号化ブロブを見た攻撃者は——何も復号することなく——二つの元のファイルが同じであることを知る。写真でいっぱいのボールトでは、この種のパターン分析が暗号化を通じてさえ情報を明かすことができる。
Vaultaire は、暗号文ごとに新しい暗号ノンスを生成することで、決定論的な暗号文を防ぎます。 AES-256-GCM 封印作業。ファイル ヘッダーとファイル コンテンツは個別にシールされ、大きなファイルでは、ランダムなベース ノンスと、順序付けられたチャンクごとに個別のノンスを使用する認証されたストリーミング形式が使用されます。したがって、同じ写真の 2 つのコピーは、同じ暗号化された表現を生成しません。
nonce は暗号文とともに保存され、秘密ではありません。セキュリティ要件は、特定のキーの下での一意性です。 Vaultaire は、シングルショット暗号化のために Apple の暗号ランダム ジェネレーターに 96 ビットのノンスを要求し、ストリーミング ヘッダーにベースのノンスを記録します。衝突のリスクは 1 つのキーに基づく暗号化の数によって制御されるため、実装では 96 ビット サイズを固定の 1/2 として提示するのではなく、新しい値が生成されます。96 永久保証。
メモリ管理: アクティブなキー状態のクリア
セキュリティソフトウェアのよくある失敗は、不要になった後も機密データをメモリに残すことだ。暗号化鍵、導出されたパスワード、復号されたデータは、アプリがそれらを使い終わった後もRAMに長期間残ることがある。フォレンジックツールはデバイスメモリをダンプしてこれらの残骸を検索できる——コールドブート攻撃またはメモリダンプ分析として知られる技術だ。
Vaultaire は、アクティブなキーの状態と復号化された UI データが利用可能な期間を制限します。アプリがロックするかセッションが切断されると、そのコードはいくつかのクリーンアップ パスに従います。
- アクティブなボールト状態は削除されます。 アプリは現在の Vault キー セッションを削除し、Vault コンテンツを表示する前にもう一度ロックを解除する必要があります。
- キーラッパーは所有されているバッファをクリアします。 Vaultaire のセキュア バイト コンテナは、コンテナの割り当てが解除されると、コンテナが所有するバッファを上書きします。
- キャッシュされたマスターキーの状態は無効になります。 オープン インデックス用に保持されている復号化されたマスター キーは、関連するロック パスおよびキャッシュ リセット パス上で破棄されます。
- 復号化された UI キャッシュは、Vaultaire によって制御されている場合にはクリアされます。 サムネイルとプレビューのクリーンアップは、Swift によって作成されたすべてのコピーに対する制御を要求することなく、アプリケーションの残留状態を軽減します。 iOS、または別のプロセス。
次回、Vaultaire がロック状態で開くとき、パターンを描画すると、アプリはインデックスを認証してマスター キーのラップを解除する前に、Vault キーを再度取得します。これはセッションのクリーンアップであり、すべての一時メモリ コピーが証明可能なマルチパス ワイプを受け取ったとか、 Secure Enclave キー参照が破壊されました。クラッシュの原因 iOS プロセスを再利用しますが、突然終了するたびにクリーンアップ コードを実行することはできません。
よくある質問
AES-256は本当に解読不能か?
AES-256 標準化され、高度に分析されたブロック暗号です。正しく実装されたものに対する実際的な攻撃はありません AES-256-GCM ランダムな 256 ビット キーを使用することは公に知られていますが、だからといって金庫全体が破られなくなるわけではありません。資格情報エントロピー、 PBKDF2 コスト、ノンス処理、キーの保管、リカバリ、デバイスの状態、実装上の欠陥が攻撃経路として残ります。
なぜ鍵導出にPBKDF2を使用するのか?
ヴォルテールは使用します PBKDF2-HMAC-SHA512 を通して CommonCrypto: パターンの反復回数は 600,000 回、リカバリフレーズの反復回数は 800,000 回です。ローカル パターンの導出では、次の場所に保存されているデバイス全体のランダムなソルトを 1 つ使用します。 Keychain. PBKDF2 各推測のコストは増加しますが、パターンにエントロピーは追加されないため、攻撃時間は資格情報の強度、測定されたハードウェア速度、および並列処理に依存します。
Vaultaireはサーバーにどんなデータを送るか?
なし。Vaultaireにはあなたのデータを受け取るサーバーがない。iCloudバックアップを有効にした場合、あなたの暗号化されたデータはあなたの個人のiCloudアカウントに保存される——Appleが持っていない鍵でデバイスを離れる前に暗号化された状態で。Vaultaireという会社は暗号化されていてもそうでなくても、いかなるユーザーデータも受け取らず、処理せず、保存しない。
ジェイルブレイクされたiPhoneはボールトを侵害できるか?
ジェイルブレイクはデバイスの境界を大幅に弱体化します。ヴォルテールの AES-GCM 操作はアプリプロセス内で実行されます CryptoKitしたがって、コンテナーが開いている間は対称キー バイトがアプリのメモリに存在します。ルートレベルの侵害は、入力、メモリ、スクリーンショット、または復号化された出力をターゲットにする可能性があります。 Keychain データ保護は、デバイスがロックされている間もバリアを追加しますが、Vaultaire は、AES キーが内部で隔離されたままであるとは主張していません。 Secure Enclave.
メタデータはどのように暗号化されますか?
Vaultaire は、Vault メタデータに ChaCha20 を使用しません。ファイル名、 MIME タイプ、タイムスタンプ、サムネイル データ、ボールト構造、およびラップされたマスター キーは、以下の範囲内で保護されます。 AES-256-GCM 認証された暗号文。 1 つの認証された構造を使用することで、ストレージ形式全体で一貫した機密性と整合性チェックが維持されます。
アプリがクラッシュしたら鍵はどうなるか?
iOS 終了したプロセスを再利用し、次回の起動では、Vaultaire がアクティブなキーの状態を復元する前に、新しいロックを解除する必要があります。 Vaultaire はセッションスコープを作成しません Secure Enclave AES 参照。キーラッパーは割り当て解除時にバッファをクリアし、ロックパスはアクティブ状態をドロップしますが、Swift と iOS すべての一時コピーがクラッシュ前に上書きされたという保証は正当化されません。
スタックを実際に体験する
認証された暗号化、階層化されたキー、高価な導出、プロバイダーが保持するボールト キーはありません。ここで説明されているアーキテクチャを使用するには、Vaultaire をダウンロードします。デバイスと資格情報の境界は明確に記載されています。
Vaultaireを無料ダウンロード