エンドツーエンド暗号化 とは?
エンドツーエンド暗号化(E2EE)は、送信者のデバイスでデータを暗号化し、受信者のデバイスでのみ復号できる通信方式で、サービスプロバイダーを含む中間者が平文コンテンツにアクセスできないことを保証します。
別名: E2EE, E2E encryption, end to end encryption
エンドツーエンド暗号化は、重要な点で TLS のような転送暗号化と異なります。転送暗号化ではサーバーが平文でデータを受け取り、転送前に再暗号化します。サーバー運営者はすべてを読み取ることができます。E2EE では、サーバーは読み取れない暗号化されたデータのみを扱います。
この概念はメッセージングアプリを通じて広く知られるようになりましたが、データが中間者を通過するあらゆるシステムに適用できます。メール、ファイルストレージ、シークレット共有、コラボレーションツールはすべて E2EE を実装できます。鍵交換が重要な課題です。送信者と受信者は、サーバーが傍受できない方法で暗号鍵に合意する必要があります。
システムによって鍵交換問題の解決方法は異なります。メッセージングアプリは通常、公開鍵暗号と鍵合意プロトコルを使用します。より単純なシステムでは、共有 URL に鍵を直接埋め込んだり、共有パスワードから鍵を導出したりします。共通点は、プロセスのいずれの時点でもサーバーが復号鍵にアクセスできないことです。
Vaulted における エンドツーエンド暗号化 の使われ方
Vaulted は、すべての暗号化操作をブラウザで行うことでエンドツーエンド暗号化を実装しています。送信者のブラウザが AES-256-GCM 鍵を生成し、シークレットを暗号化して、鍵を URL フラグメントに埋め込みます。受信者のブラウザはフラグメントから鍵を取り出し、サーバーから取得した暗号文を復号します。Vaulted のサーバーは暗号化されたデータを保存・配信する中間者ですが、それを復号する能力は持ちません。