ゼロ知識暗号化とは?シンプルなガイド
ゼロ知識暗号化とは、プロバイダーがあなたのデータにアクセスできないことを意味します。
ゼロ知識暗号化は、暗号化鍵がユーザーのデバイスのみで導出・保存され、プロバイダーのサーバーに送信されることがないため、サービスプロバイダーがユーザーデータにアクセスできない暗号化アーキテクチャです。プロバイダーが鍵を保持する標準的なクラウド暗号化とは異なり、ゼロ知識暗号化は、裁判所命令、データ侵害、または悪意のある従業員であっても、プロバイダーには渡すものがありません。鍵管理に関するNISTのガイドライン(SP 800-57)は、鍵の保管者がデータアクセスを決定するという原則を確立しています。ゼロ知識暗号化はこれを論理的な結論まで進めます。
ゼロ知識暗号化の仕組み
最もシンプルな例え:ホテルの金庫で、あなただけが組み合わせを設定し、ホテルがそれを知ることはありません。組み合わせを忘れたら、ホテルはあなたのために金庫を開けられません。これは設計上の欠陥ではありません。それが設計です。
技術的には、ゼロ知識暗号化は3つのステップで機能します:
デバイス上での鍵導出。ユーザーが認証情報(パスワード、パスフレーズ、またはパターン)を提供します。鍵導出関数(通常はPBKDF2またはArgon2)がこの認証情報をユニークな暗号化ソルトと組み合わせて暗号化鍵を生成します。これはすべてユーザーのデバイス上で行われます。
転送前にデバイスで暗号化。すべてのデータは、クラウドストレージまたはバックアップのためにデバイスを離れる前に、派生した鍵を使用してデバイスで暗号化されます。暗号化された出力(暗号文)がアップロードされるものです。
プロバイダーが鍵を見ることはない。暗号化鍵はアクティブな使用中にのみデバイスのメモリに存在します。プロバイダーのサーバーには送信されません。プロバイダーはランダムデータと区別できない暗号化ブロブを保存します。
重要な制約:ユーザーが認証情報を失い、回復フレーズがない場合、データは永久にアクセス不可能です。独立して保存された回復メカニズムなしに機能する「パスワードを忘れた」フローはありません。サービスがメールでパスワードリセットを提供し、データが再び表示される場合、そのサービスはゼロ知識暗号化を使用していません。鍵を保持しています。
ゼロ知識暗号化と他のタイプの暗号化
「暗号化」という用語はほぼすべてのクラウドサービスのマーケティング資料に表示されます。タイプ間の違いは大きいです。
| タイプ | 鍵の保持者 | プロバイダーがデータを読める | プロバイダー侵害に耐える | 例 |
|---|---|---|---|---|
| 暗号化なし | N/A | はい | いいえ | Dropbox(標準プラン) |
| 転送中の暗号化(TLS) | プロバイダー | はい(サーバー上で保存時) | いいえ | Google Photos |
| サーバーサイドの保存時暗号化 | プロバイダー | はい(復号鍵を保持) | 部分的(侵害範囲による) | iCloud(標準) |
| プロバイダー管理のE2E暗号化 | プロバイダーが生成、ユーザーが保存 | 技術的にはいいえ、ただし鍵生成時にプロバイダーがアクセス | 部分的 | iCloud高度なデータ保護 |
| ゼロ知識暗号化 | ユーザーのみ(デバイスで導出) | いいえ。数学的に不可能。 | はい。暗号化されたブロブはユーザーの鍵なしでは役に立たない。 | Signal、Proton Mail、Vaultaire |
「保存時暗号化」と「ゼロ知識暗号化」の区別が最もよく混同されます。保存時暗号化では、プロバイダーが制御する鍵を使用してサーバー上のデータを暗号化します。これはサーバーハードウェアの物理的な盗難から保護します。プロバイダーによるデータの読み取り、データと鍵の政府召喚状、インサイダーの脅威からは保護しません。プロバイダーは復号能力を持っています。
ゼロ知識暗号化では、プロバイダーは復号能力を持ちません。プロバイダーのサーバー上の暗号化されたデータは、外部の攻撃者にとっても同様に不透明です。
ゼロ知識暗号化が重要な理由
データ侵害は毎年数十億件の記録を露出させる
Identity Theft Resource Centerは2023年に米国で3,205件のデータ侵害を報告し、約3億5,300万人の個人に影響を与えました。暗号化鍵を保持するプロバイダーが侵害された場合、攻撃者は暗号化されたデータとそれを復号する鍵の両方に潜在的にアクセスできます。ゼロ知識アーキテクチャはこのリスクを完全に排除します。侵害されたサーバーには、計算上復号不可能な暗号文のみが含まれます。
法的強制は現実の脅威である
複数の管轄区域の政府機関は、プロバイダーに保存されたデータの引き渡しを強制できます。プロバイダーが暗号化鍵を保持している場合、従わざるを得ません。ゼロ知識アーキテクチャの下では、召喚状に対するプロバイダーの回答は、ユーザーの認証情報なしには役に立たない暗号化ブロブです。AppleのiCloud用高度なデータ保護はこの方向に動いていますが、iOS 16.2(2022年12月)で導入され、デフォルトでは有効になっていません。
「信頼してください」はセキュリティアーキテクチャではない
標準的な暗号化はプロバイダーがあなたのデータにアクセスしないという約束に依存します。ゼロ知識暗号化はその約束を数学的な保証に置き換えます。プロバイダーは望んでもデータにアクセスできず、従業員が悪意を持っても、異なるプライバシー価値を持つ会社に買収されても同様です。アーキテクチャが制約を強制します。
暗号学の背後にあるNISTの標準
ゼロ知識実装で最も一般的に使用される暗号化方式であるAES-256-GCMは、米国国立標準技術研究所によってSP 800-38D(2007年)で標準化されました。AES自体は2001年に公開コンペティションを通じてNISTによって選択され、老朽化したDES標準に取って代わりました。「256」はビット単位の鍵長を指します。256ビット鍵には2^256の可能な値があり、その数はブルートフォースに太陽の残り寿命で生成できるエネルギーより多くを必要とするほど大きいです。
GCM(Galois/Counter Mode)は認証暗号化を追加し、復号プロセスが暗号文への改ざんを検出することを意味します。暗号化されたデータの1ビットでも変更された場合、復号は破損した出力を生成するのではなく失敗します。これにより攻撃者は検出されずに暗号化されたデータを操作できません。
PBKDF2(パスワードベースの鍵導出関数2)は、RFC 8018で指定されており、繰り返しハッシュを通じて人間が提供した認証情報を暗号化鍵に変換します。ハッシュ関数を数十万回実行すると、各パスワード推測の計算コストが高くなり、シンプルなパターンやパスワードをブルートフォース攻撃に対抗できる鍵に変換します。
VaultaireがゼロEknowledge暗号化を実装する方法
Vaultaireはゼロ知識アーキテクチャで構築されたiPhone用ボルトアプリです。各レイヤーでの実装の仕組みを説明します。
鍵導出。ユーザーは25ドットの5x5グリッドにパターンを描きます。順番に並んだドットのシーケンスがHMAC-SHA512とボルトごとのユニークな暗号化ソルトを持つPBKDF2に入力されます。出力は256ビットAES暗号化鍵です。パターンはデバイスに保存されません。ハッシュとして、表現として、どんな形でも。
ファイル暗号化。インポートされた各ファイルは、派生した鍵とそのファイルに固有のランダムに生成された初期化ベクトル(IV)を使用してAES-256-GCMで暗号化されます。IVが異なるため、同一のファイルでも異なる暗号文を生成します。
メタデータ暗号化。ファイル名、作成日、サムネイルデータはファイル暗号化(AES-256-GCM)とは別の暗号化方式であるChaCha20を使用して別々に暗号化されます。メタデータに異なる暗号化方式を使用することで、暗号の多様性が提供され、キャッシュタイミングのサイドチャネル攻撃が排除されます。
鍵管理。AppleのセキュアエンクレーブはApple独自の暗号化されたメモリを持つ専用ハードウェアコプロセッサに鍵マテリアルを保存します。Vaultaireが閉じたり、ユーザーが切り替えたりすると、鍵はアプリのメモリから消去されます。
ボルトレジストリなし。ボルトをリストするデータベースはなく、カウントもなく、名前もありません。すべてのパターンが異なるボルトを開きます。アプリ自体がいくつのボルトが存在するかを特定できません。完全なセキュリティアーキテクチャとパターン暗号化の説明を参照してください。
アプリが本物のゼロ知識暗号化を使用しているかを確認する方法
1分以内に完了する3つのテスト:
パスワードを忘れたテスト。アプリがメールでパスワードをリセットでき、データが再び表示される場合、アプリはあなたの暗号化鍵を保持しています。ゼロ知識ではありません。
新しいデバイステスト。新しいデバイスでサインインし、古いデバイスから鍵を転送したり回復フレーズを入力したりせずにデータが表示される場合、サーバーにあなたの鍵があります。ゼロ知識ではありません。
アカウントテスト。アプリがメールアドレスや電話番号を必要とする場合、プロバイダーはあなたのアイデンティティとデータの間にリンクを持っています。これは必ずしも失格ではありませんが、上記のいずれかと組み合わさると、プロバイダーがあなたのデータにアクセスできることが確認されます。
3つすべてに合格するアプリ:Signal、Proton Mail、Standard Notes、Vaultaire。少なくとも1つに失敗するアプリ:ほとんどのクラウドストレージサービス、App Storeのほとんどの「ボルト」アプリ。
よくある質問
ゼロ知識暗号化はエンドツーエンド暗号化と同じですか?
重なりますが、同一ではありません。エンドツーエンド暗号化(E2EE)とは、データが送信者のデバイスで暗号化され、受信者のデバイスでのみ復号されることを意味します。ゼロ知識暗号化とは、プロバイダーがデータにアクセスできないことを意味します。プロバイダーがある時点で鍵を生成またはアクセスしていた場合、サービスはエンドツーエンド暗号化であってもゼロ知識でないことがあります。ゼロ知識暗号化がより厳しい標準です。
ゼロ知識暗号化でパスワードを失ったらどうなりますか?
データが永久にアクセス不可能になります。マスターキー、バックドア、別途保存した回復フレーズなしに機能する回復プロセスはありません。これが根本的なトレードオフです:絶対的なプライバシーには絶対的な責任が必要です。一部のゼロ知識アプリ(Vaultaireを含む)はボルト作成時に回復フレーズを生成し、主要な認証情報が失われた場合に同じ暗号化鍵を再生成できます。
法執行機関はゼロ知識暗号化データにアクセスできますか?
法執行機関はプロバイダーに保存されたデータの引き渡しを強制できます。ゼロ知識暗号化では、プロバイダーが引き渡すデータはユーザーの鍵なしには役に立たない暗号化ブロブです。法執行機関がユーザーに鍵の提供を強制できるかどうかは、管轄区域によって異なる別の法的問題です。米国の裁判所は一般的に、強制されたパスワード/パターン開示が第五修正条項の下でより争われているのとは対照的に、強制された生体認証ロック解除(Face ID、指紋)が許容されると判決しています。
ゼロ知識暗号化は通常の暗号化より遅いですか?
暗号化と復号の操作は同一です。AES-256-GCMは誰が鍵を保持するかに関係なく同じ速度で実行されます。唯一の追加コストは鍵導出です:数十万回の反復でPBKDF2を実行すると、最新のiPhoneで約0.5〜2秒かかります。これはボルトのロック解除時に1回発生し、ファイルごとではありません。実際には、ユーザーは速度の違いを感じません。
ゼロ知識とはアプリがデータを全く収集しないことを意味しますか?
必ずしもそうではありません。ゼロ知識は特に暗号化アーキテクチャを指します。プロバイダーは暗号化されたコンテンツにアクセスできません。アプリはユーザーがオプトインした場合、匿名の分析、クラッシュレポート、または使用メタデータを収集する場合があります。収集できないのは、暗号化されたファイルのコンテンツ、暗号化鍵、またはそれを導出するために使用した認証情報です。Vaultaireのプライバシーポリシーは、ユーザーの許可を得て収集されるオプションのデータを詳述しています。
ゼロ知識暗号化はAppleの高度なデータ保護とどう違いますか?
iOS 16.2で導入されたAppleの高度なデータ保護(ADP)は、ほとんどのiCloudデータカテゴリにエンドツーエンド暗号化を拡張します。ADPを有効にすると、Appleは保護されたデータにアクセスできません。専用のゼロ知識アプリとの主な違い:ADPはオプトイン(デフォルトはオフ)で、Apple IDが必要で、Appleのエコシステム内のデータのみを保護します。VaultaireのようなゼロEknowledgeボルトアプリはAppleのインフラストラクチャとは独立して動作し、アカウントを必要とせず、ADPが提供しないプラウジブルデナイアビリティと緊急モードのような機能を追加します。
まとめ
ゼロ知識暗号化は、暗号化鍵がユーザーのデバイスから離れないため、プロバイダーが数学的にユーザーデータにアクセスできないアーキテクチャです。標準的な暗号化、保存時暗号化、さらにはいくつかの形式のエンドツーエンド暗号化とも1つの重要な点で異なります:プロバイダーがデータにアクセスできないことはポリシーではなく数学によって強制されます。トレードオフ — 鍵を失うとデータを失う — はバグではありません。それが保証を現実にするメカニズムです。