ゼロ知識暗号化とは?シンプルなガイド
ゼロ知識暗号化とは、プロバイダーがあなたのデータにアクセスできないことを意味します。
ゼロ知識暗号化はプロバイダー限定のアーキテクチャであり、保存されたユーザー コンテンツの復号化に必要なキーをサービスが保持しません。プロバイダーがコンテンツ キーを制御する標準のクラウド暗号化とは異なり、クライアント側の暗号化ではその機能をユーザー デバイス上で維持できます。法的要求、侵害、内部関係者によって、プロバイダーが保持する暗号文、アカウント記録、トラフィック データ、またはその他のメタデータが漏洩する可能性があります。 NIST のキー管理ガイダンスでは、キーの保管がアクセスの中心となりますが、クライアント アプリ、オペレーティング システム、ロック解除されたデバイスは信頼境界の一部のままになります。
ゼロ知識暗号化の仕組み
最もシンプルな例え:ホテルの金庫で、あなただけが組み合わせを設定し、ホテルがそれを知ることはありません。組み合わせを忘れたら、ホテルはあなたのために金庫を開けられません。これは設計上の欠陥ではありません。それが設計です。
技術的には、ゼロ知識暗号化は3つのステップで機能します:
デバイス上でのキーの導出。 ユーザーは、パスワード、パスフレーズ、パターンなどの資格情報を提供します。パスワードベースのキー導出関数は、それをソルトと組み合わせて、ユーザーのデバイス上にキーを生成します。適切に分離された設計では、すべてのファイルを人間の資格情報で直接暗号化する代わりに、そのキーを使用してランダムなコンテンツ暗号化キーのロックを解除できます。
転送前にデバイスで暗号化。すべてのデータは、クラウドストレージまたはバックアップのためにデバイスを離れる前に、派生した鍵を使用してデバイスで暗号化されます。暗号化された出力(暗号文)がアップロードされるものです。
プロバイダーは平文のコンテンツキーを受け取りません。 コンテンツ キーは使用中必ずクライアント メモリに存在し、認証された暗号化エンベロープ内にローカルまたはリモートで保存される場合もあります。プロバイダーは、暗号文とラップされたキーを開くために必要なユーザーの秘密を保持せずに、暗号文とラップされたキーを保存できます。アカウント、トラフィック、レコードサイズ、およびタイミングのメタデータは引き続き表示される可能性があります。
重要な制約: ユーザーが有効な認証情報と回復パスをすべて失うと、暗号化されたコンテンツにアクセスできなくなります。リカバリーはまだ存在する可能性がありますが、その鍵の保管場所について説明する必要があります。古いデバイスの承認、回復フレーズ、回復キー、または同等のユーザー保持の秘密を使用せずに、電子メールのリセットだけで読み取り可能なコンテンツが復元された場合、プロバイダーは平文に戻る効果的なルートを保持しています。
ゼロ知識暗号化と他のタイプの暗号化
「暗号化」という用語はほぼすべてのクラウドサービスのマーケティング資料に表示されます。タイプ間の違いは大きいです。
| タイプ | 鍵の保持者 | プロバイダーがデータを読める | プロバイダー侵害に耐える | 例 |
|---|---|---|---|---|
| 暗号化なし | N/A | はい | いいえ | Dropbox(標準プラン) |
| 転送中の暗号化(TLS) | プロバイダー | はい(サーバー上で保存時) | いいえ | Google Photos |
| サーバーサイドの保存時暗号化 | プロバイダー | はい(復号鍵を保持) | 部分的(侵害範囲による) | iCloud(標準) |
| プラットフォームのエンドツーエンド暗号化 | クライアントデバイスとアカウント回復システム | 通常のサービスパスを経由しない | クライアント、リカバリ、メタデータの公開に応じて異なります | iCloud 高度なデータ保護機能を搭載 |
| プロバイダーブラインドのクライアント側暗号化 | クライアントおよびユーザーが制御する回復パス | プロバイダーが保持する平文コンテンツキーがない | コンテンツは暗号化されたままにすることができます。メタデータと暗号文が依然として漏洩する可能性がある | 暗号化されたボールトおよびバックアップ システム |
「保存時暗号化」と「ゼロ知識暗号化」の区別が最もよく混同されます。保存時暗号化では、プロバイダーが制御する鍵を使用してサーバー上のデータを暗号化します。これはサーバーハードウェアの物理的な盗難から保護します。プロバイダーによるデータの読み取り、データと鍵の政府召喚状、インサイダーの脅威からは保護しません。プロバイダーは復号能力を持っています。
プロバイダーブラインドのクライアント側暗号化では、文書化されたプロトコルを通じてサービスに平文のコンテンツキーが与えられません。保存された暗号文はプロバイダーに対して不透明なままにすることができますが、クライアント ソフトウェア、回復パス、アカウント メタデータ、およびソフトウェア配信チャネルは依然として信頼とレビューが必要です。
ゼロ知識暗号化が重要な理由
データ侵害は毎年数十億件の記録を露出させる
個人情報盗難リソース センターは、2023 年に米国で 3,205 件のデータ侵害が発生し、約 3 億 5,300 万人が影響を受けたと報告しました。プロバイダーがコンテンツ キーを保持している場合、1 回の侵害により、保存されているデータとそれを復号化するためのパスの両方が公開される可能性があります。プロバイダーブラインド暗号化はこれらの資産を分離します。サーバー侵害によって暗号文とメタデータが公開される可能性はありますが、プロバイダーが保持する平文コンテンツキーは公開されません。資格情報の推測とクライアントの侵害は依然として別個のリスクです。
法的強制は現実の脅威である
プロバイダーは、保持しているデータの開示を要求される場合があります。プロバイダー ブラインド設計では、プロバイダーが平文コンテンツ キーを保持しないため、その応答を暗号文と利用可能なアカウント、トラフィック、請求、またはサービス メタデータに制限できます。第三者がユーザー資格情報を取得できるか、クライアントを悪用できるか、または開示を強制できるかどうかは別の問題です。 Apple は高度なデータ保護を導入しました iOS 16.2 は、エンドツーエンド暗号化のオプション拡張として、 iCloud データ。
「信頼してください」はセキュリティアーキテクチャではない
サーバー側の暗号化は、プロバイダーが制御するキーとポリシーに依存します。プロバイダー ブラインド暗号化ではキーの保管場所が変更されるため、文書化されたサービス パスには平文のコンテンツ キーが不足します。これはより強力なアーキテクチャ境界ですが、その力は依然として正しいクライアント コード、認証されたソフトウェア配信、サウンド リカバリ、安全なデバイス、および仕様に一致する実装に依存します。
暗号学の背後にあるNISTの標準
AES-GCM 年に国立標準技術研究所によって標準化されました。 SP800-38D (2007)。 AES 自体は、2001 年の公募により NIST によって選ばれました。 AES-256 256 ビットの鍵を指します。一様にランダムなキーに対する徹底的な検索は計算上実行不可能ですが、キー導出関数が 256 ビットを出力する場合でも、人間のパスワードまたはパターンははるかに少ないエントロピーを提供できます。
GCM(Galois/Counter Mode)は認証暗号化を追加し、復号プロセスが暗号文への改ざんを検出することを意味します。暗号化されたデータの1ビットでも変更された場合、復号は破損した出力を生成するのではなく失敗します。これにより攻撃者は検出されずに暗号化されたデータを操作できません。
PBKDF2 (パスワードベースのキー導出関数 2)、で指定されます。 RFC 8018、擬似ランダム関数の呼び出しを繰り返すことで、人間が提供した資格情報を固定長のキーマテリアルに変換します。反復が増えると、各推測のコストが増加します。予測可能なパターンやパスワードにエントロピーが追加されることはないため、資格情報の選択とオフライン検証は依然として重要です。
Vaultaire がプロバイダーとキーの分離を実装する方法
ヴォルテール のクライアント側暗号化ボールトです。 iPhone。 「ゼロ知識」として宣伝されることが多い製品の意味では、その狭義の文書化された主張は、Wraxle が平文のボールト コンテンツやそれを復号化するために必要なキーを受け取らないというものです。実装と残りの信頼境界が各層でどのように機能するかを次に示します。
鍵の導出。 ユーザーは、25 個のドットからなる 5x5 グリッド上にパターンを描画します。 PBKDF2-HMAC-SHA512 そのシーケンスをデバイス全体の 1 つのものと組み合わせる Keychain ソルトを 600,000 回反復して 256 ビットのボールト キーを取得します。ボールト キーは暗号化されたインデックスを認証し、別のランダムな 256 ビット マスター キーをラップします。パターンを含むリカバリ情報は、 AES-GCM 暗号化された Keychain プレーンテキスト ファイルや Vaultaire アカウントではなく、データベースを使用します。
ファイルの暗号化。 インポートされた各ファイルは暗号化されます AES-256-GCM ランダムなマスターキーの下にあります。 CryptoKit 新しいノンスを含む認証済みの密閉ボックスを作成し、ストリーミング形式は、注文されたチャンクごとに個別のノンスを導出します。
メタデータの暗号化。 ファイル名、 MIME タイプ、日付、インデックス レコード、サムネイル データも保護されます。 AES-256-GCM。 Vaultaire は、Vault メタデータに ChaCha20 を使用しません。
鍵の管理。 Vaultaire は、デバイス ソルトと暗号化された回復データベースを通常どおり保存します。 iOS Keychain で保護された汎用パスワード項目 WhenUnlockedThisDeviceOnly アクセシビリティクラス。パターン派生のボールト キーとランダムなマスター キーは、アプリのメモリ内で処理されます。 CryptoKit。ロックするとアクティブなキーの状態が失われますが、Swift と iOS すべての一時コピーが上書きされるという保証はサポートされていません。
ボールトの発見。 通常のインターフェイスにはボールト リストは表示されません。ローカル形式では、各ボールトに対して暗号化されたインデックス ファイルが 1 つだけ保存され、メンテナンス コードでそれらのファイルを列挙できます。したがって、アプリコンテナーにアクセスできるユーザーは、ファイル名からパターン、名前、またはプレーンテキストの内容が明らかにされない場合でも、暗号化されたインデックスをカウントできます。全文を見る セキュリティアーキテクチャ そして パターン暗号化の説明.
アプリが本物のゼロ知識暗号化を使用しているかを確認する方法
3 つの簡単なテストから始めて、公開されたアーキテクチャを検証します。
パスワードを忘れた場合のテスト。 電子メールのリセットだけで読み取り可能なデータが復元される場合は、プロバイダーが保持するどのメカニズムが有効なコンテンツ キーを復元したかを尋ねてください。ユーザーが保持する回復フレーズ、古いデバイスの承認、およびプロバイダー制御のリセットは、異なる設計です。
新しいデバイスのテスト。 新しいデバイスが読み取り可能なコンテンツを復元する場合は、それを承認したシークレット デバイスまたは信頼できるデバイスを特定します。アカウント ログインだけでは、プロバイダーが制御する回復パスが示唆されます。リカバリ フレーズと暗号化されたバックアップ レコードにより、プロバイダーとキーの分離を維持できます。
アカウントテスト。 電子メール アドレスや電話番号は ID をサービス メタデータに関連付けますが、それだけではプロバイダーがコンテンツを復号できることを証明するものではありません。キー階層、リカバリ設計、クライアント コードまたは監査、メタデータ ポリシー、および認証された暗号文でオフライン資格情報チェックが許可されているかどうかを検査します。
これらのテストはフィルターであり、セキュリティを証明するものではありません。一貫した仕様では、コンテンツ キー、ロック解除キー、ソルト、導出パラメータ、認証済み暗号化形式、ノンス ルール、回復エンベロープ、ローカル シークレット ストレージ、クラウド メタデータ、および平文キーが存在するポイントに名前を付ける必要があります。独立したレビューは、製品ラベルよりも強力な証拠です。
よくある質問
ゼロ知識暗号化はエンドツーエンド暗号化と同じですか?
重なりますが、同一ではありません。エンドツーエンド暗号化(E2EE)とは、データが送信者のデバイスで暗号化され、受信者のデバイスでのみ復号されることを意味します。ゼロ知識暗号化とは、プロバイダーがデータにアクセスできないことを意味します。プロバイダーがある時点で鍵を生成またはアクセスしていた場合、サービスはエンドツーエンド暗号化であってもゼロ知識でないことがあります。ゼロ知識暗号化がより厳しい標準です。
ゼロ知識暗号化でパスワードを失ったらどうなりますか?
有効な認証情報と回復エンベロープがすべて失われると、データは永久にアクセスできなくなります。プロバイダーが制御するリセットまたはマスター キーはプロバイダーの境界を弱めるため、リカバリーを個別に設計する必要があります。 ヴォルテール 派生回復キーが暗号化されたボールト キー エンベロープを開く、9 つの個別の単語を含むカスタム フレーズを生成します。このフレーズはキーの再生成やエンコードを行わず、新しいデバイスの復元には一致する暗号化されたキーも必要です。 CloudKit 記録。
法執行機関はゼロ知識暗号化データにアクセスできますか?
プロバイダーは、保存されている暗号文と、プロバイダーが保持しているアカウント、トラフィック、請求、またはサービスのメタデータを開示する必要がある場合があります。プロバイダーが保持する平文コンテンツ キーがなければ、プロバイダーは通常のサービス パスを使用してコンテンツを復号化できません。デバイスの悪用、資格情報の検出、リカバリ コピー、および強制開示は別のルートであり、その合法性と有効性は管轄区域と事実によって異なります。
ゼロ知識暗号化は通常の暗号化より遅いですか?
AES-256-GCM パフォーマンスは誰がキーを保持しているかに依存しません。パスワードベースの導出ではロック解除中に作業が追加され、その期間はアルゴリズム、反復回数、デバイス、実装によって異なります。アプリケーションは、サポートされているハードウェアでそのコストを測定し、オフラインの推測ごとに課せられるコストと応答性のバランスをとる必要があります。
ゼロ知識とはアプリがデータを全く収集しないことを意味しますか?
必ずしもそうとは限りません。この用語は、すべてのデータ フローではなく、プロバイダーのコンテンツ キー境界を対象としています。アプリは引き続き、アカウント データ、分析、クラッシュ レポート、IP アドレス、レコード サイズ、タイミング、またはその他のサービス メタデータを処理する場合があります。 Vaultaire は ID アカウントを必要とせず、同意ベースの分析では Vault の内容、パターン、フレーズ、復号キーは除外されると述べています。その プライバシーポリシー では、現在の収集ルールと保持ルールについて説明します。
ゼロ知識暗号化はAppleの高度なデータ保護とどう違いますか?
Apple の Advanced Data Protection (ADP) は、 iOS 16.2、エンドツーエンド暗号化を追加の機能に拡張 iCloud カテゴリを管理し、Apple アカウント回復モデルを使用します。 Vaultaire はデフォルトで Vault の内容をローカルに保持し、Vaultaire ID アカウントを必要としません。オプションのバックアップ、同期、共有ではクライアント側の暗号化を使用します CloudKit ユーザーの Apple アカウントに記録されます。 Vaultaire では、パターン分離された Vault アクセスも提供しており、 強迫モードに記載されているストレージとリカバリの制限付き もっともらしい否認の文書化.
まとめ
ゼロ知識暗号化は、プロバイダー キー分離要求として扱うのが最適です。サービスは、保存されたコンテンツの復号化に必要な平文キーを保持しません。これは、プロバイダーが制御するキーに基づくサーバー側の暗号化よりも強力ですが、キーがメモリ内にのみ存在する、メタデータが消える、またはすべてのクライアントとデバイスの侵害が阻止されるという主張ではありません。製品は、主要な階層、リカバリ設計、実装、および独立したレビューによって判断します。