protonmail は、暗号化された「ゼロアクセス」暗号化メールボックスを提供します。方法 「ゼロアクセス」を説明する は、少なくとも私にとって、ゼロ知識暗号化に似ています。ただし、protonmailのサーバーには私の秘密鍵があります。キーは 暗号化もされている であると彼らは言いますが、彼らのサーバーにはその暗号化のための私のパスワードもあります。したがって、protonmailはいつでも私の秘密鍵とメールボックスにアクセスできるように思えます。
これは正しいですか、それとも何か不足していますか?これが彼らがそれをゼロ知識暗号化と呼ばない理由ですか?
プロトンメールがあなたの秘密鍵の暗号化に使用されるパスワードを保存するというあなたの仮定は間違っています。
Protonmailはセキュアリモートパスワードプロトコル( wikipediaのSRP - SRPに関するProtonmailブログ投稿 )を使用しているため、パスワードに関連する不可逆性のある検証のみを保存します。
protonmailのログインフォームにパスワードを入力すると、javascriptがクライアント側で実行され、この検証機能が生成され、protonmailに送信されます。
検証時に、protonmailは暗号化されたバージョンの秘密鍵を返し、それがパスワードを使用してクライアント側で復号化されます。次に、この秘密鍵を使用してメールを復号化します。
Xavier59の答えは正解です。protonmailはSRPを使用しています。したがって、(通常の状況では)パスワードがプロトンメールのサーバーに送信されることはありません。
ただし、SRPはjavascriptで実装され、protonmailのサーバーによって提供されます。プロトンメールが危険にさらされた場合、またはプロトンメールが「不正」になった場合、パスワードを入力した後にそれをキャプチャしてパスワードをサーバーに送信するJavaScriptを簡単に提供できます。次に、あなたの秘密鍵を解読するために必要なすべてのものを持ち、次にあなたのメッセージを解読します。
これが、JavaScript暗号化が「鶏と卵」の問題である理由です。シークレットでサーバーを信頼できない場合、サーバーを信頼して安全なコードを配信するにはどうすればよいですか?これについての良い読み物は https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/javascript-cryptography-considered-harmful/ を参照してください件名。