ProtonMail というサービスがあります。
クライアント側で電子メールを暗号化し、暗号化されたメッセージをサーバーに保存し、受信者がそれを復号化します。これもクライアント側とシステムで「キーを保存しません」。
私の質問はこれです:復号化はどのように機能しますか?
私は少し混乱しています。メッセージを読む前に、各受信者に復号化キーを送信する必要がありますか?
私はProtonMail開発者の一人であるJasonです。
復号化では、非対称(RSA)暗号と対称(AES)暗号を組み合わせて使用します。
PM to PM電子メールの場合、PGPの実装を使用して、鍵交換を処理します。したがって、すべての公開鍵があります。秘密鍵については、アカウントを作成すると、ブラウザで生成され、メールボックスのパスワードで暗号化されます(これにはアクセスできません)。次に、暗号化された秘密鍵がサーバーにプッシュされるので、いつでもプッシュできますログインします。秘密キーを保存しますか?はい、それは暗号化された秘密キーであるため、実際にはアクセスできません。
PM to外部メールの場合、暗号化はオプションです。暗号化を選択した場合、そのメッセージに設定したパスワードで対称暗号化が使用されます。このパスワードは何でも構いません。メールボックスのパスワード。このパスワードを何らかの方法で受信者に伝える必要があります。
RSAの恐ろしいパフォーマンスを回避するために、他にもいくつかのトリックがあります。
最終的には、誰でも理解できる詳細が記載されたホワイトペーパーを作成します。しかし、そのようなものはそれ自体が1週間のプロジェクトです。私の答えが暗号化された人々にのみ意味がある場合、私は事前に謝罪します。
ジェイソンからの回答とメールでの会話の後で、この回答を大幅に変更しました。オリジナルはまだ編集履歴にあります。
ここには2つの異なるケースがあります:ProtonMail-to-ProtonMailとProtonMail-to-Otherメールです。
PM間メールの場合、システムは公開鍵/秘密鍵の配布を処理する立場にあります。彼らは秘密鍵を生成してサーバーに公開鍵を送信するコードを記述し、暗号化する前に電子メールの受信者を知っているため、受信者の公開鍵で暗号化でき、受信者は秘密鍵で復号化できます。これは、システムのユーザーに対して透過的です。彼らはあなたの秘密鍵で電子メールに署名することについて言及していませんが、これも同様に可能で透過的であるべきです。
PM-to-Otherメールは非対称暗号化を使用しません。 ProtonMailを使用していない受信者への電子メールを作成する場合、メッセージの暗号化に使用される対称キーを導出するために使用される新しいパスワードを生成します。次に、別の独立した安全な方法を使用して、別の方法でこのパスワードを受信者に伝える必要があります。受信者に復号化キーを電子メールで送信し、次に暗号化された電子メールは、脅威モデルに電子メールを傍受できる攻撃者が含まれている場合、暗号化を使用しない場合と同じです。 (脅威モデルにこの機能が含まれていない場合、暗号化メールが必要なのはなぜですか?)
受信者が実際にメールクライアントで受信するメールは暗号化されておらず、元のメッセージではありません。これは単に、ProtonMail Webサイトへのリンクであり、ユーザーがすでに伝えているパスワードを使用してメッセージを復号化できます。
どちらの場合も、暗号化と復号化はブラウザーでJavaScriptを使用して行われ、中央のサーバーには暗号化されたデータしか表示されません。
復号化パスワードの独立した安全な通信方法がある場合、ProtonMailの代わりにそれを使用しないのはなぜですか?
理由の1つは、独立した方法がそれほど便利ではないことです。それは、受信者を直接訪問するか、電話をかけることです。もう1つの潜在的な理由は、広告または宣伝目的です。 ProtonMailが好きで、連絡先にそれを使用してもらいたい場合は、ProtonMailからメールで送信することで促進できます。
しかし、安全および便利な方法(OTR、Cryptocat、Skypeなど、信頼できる方法)があるとしたら、それを使用しないのはなぜですか?
私はもともと用心深いので、少なくともこの事件が裁判にかけられるまでは、このサービスについて留保しています。
それは間違いなくNSAに対応していませんが、それに関するすべての話題は、その正確なフレーズを使用して主張しています。脅威モデルに関する彼ら自身のブログ投稿は、それがNSAに対応していないと言っています。
それはあなたにとっては便利かもしれませんが、革命を組織しようとしている場合はそうではありません。
「ProtonMailの分離された認証および復号化システムとは、2つのパスワードを必要とするProtonMailアカウントにログインすることを意味します。最初のパスワードは、ユーザーの認証に使用され、正しいアカウントを取得します。その後、暗号化されたデータがユーザーに送信されます。2番目のパスワードは、復号化パスワードであり、私たちに送信されることはありません。[2番目のパスワードは]ブラウザーでユーザーのデータを復号化するために使用されるため、復号化されたデータまたは復号化パスワードにアクセスすることはできません。このため、パスワードの回復を実行します。復号化パスワードを忘れた場合、データを回復することはできません。」
これについての解説として、これは依然としてNSA-vs-LavabitスタイルのSSL鍵の侵害に対して脆弱であると私は言います。 SSLキーを取得できる場合は、ProtonMailになりすまし、javascriptを使用して、すべてのユーザーの最初と2番目のパスワードを盗みます。これにより、暗号化プロトコル全体が壊れる可能性があります。
したがって、この方法は「唯一の電子メールシステムNSAアクセスできない)」にはなりません: http://www.forbes.com/sites/hollieslade/2014/05/19/the-only-email-system-the-nsa-cant-access /
彼らのページの「セキュリティ」タブの下に彼らは述べています:
対称暗号化を介して、ProtonMail以外のユーザーに暗号化通信を送信することをサポートしています。暗号化されたメッセージをProtonMail以外のユーザーに送信すると、ユーザーは暗号化されたメッセージをブラウザーにロードするリンクを受け取ります。このリンクは、ユーザーが共有している復号化パスフレーズを使用して復号化できます。
最初に復号化パスフレーズを受信者と共有する必要があるようです。
ProtonMailの分離された認証と復号化システムは、2つのパスワードを必要とするProtonMailアカウントにログインすることを意味します。最初のパスワードは、ユーザーを認証し、正しいアカウントを取得するために使用されます。その後、暗号化されたデータがユーザーに送信されます。 2番目のパスワードは、私たちに決して送信されない復号化パスワードです。これは、ブラウザーでユーザーのデータを復号化するために使用されるため、復号化されたデータや復号化パスワードにアクセスすることはできません。このため、パスワードを回復することもできません。復号化パスワードを忘れた場合、データを回復することはできません。
そのため、パスワードを使用してユーザーを認証し、2番目のパスワード(解読キー)を使用してデータを回復し、ブラウザーに表示します(HTTPS経由)。 2番目のパスワード/復号化キーはサーバーに保存されず、すべての復号化はシステムのローカルで行われます。鍵を持たないものは解読できません。ただし、システムのキーロガーがデータの復号化に必要な情報を取得できないわけではありません。
非プロトンユーザーに安全なメールを送ることに関して:
ProtonMail以外のユーザーとの通信でさえ安全です。
対称暗号化を介して、ProtonMail以外のユーザーに暗号化通信を送信することをサポートしています。暗号化されたメッセージをProtonMail以外のユーザーに送信すると、ユーザーは暗号化されたメッセージをブラウザーにロードするリンクを受け取ります。このリンクは、ユーザーが共有している復号化パスフレーズを使用して復号化できます。通常のメールと同じように、暗号化されていないメッセージをGmail、Yahoo、Outlookなどに送信することもできます。
個人的な意見として、それは非常に安全に見えます。彼らのサーバーが没収された場合、彼らはデータのロックを解除するために何もすることができないようです。最も弱いリンクは、エンドユーザー、使用するパスワード、およびパスワードが侵害されるかどうかです(最初のパスワード用のProtonMailのパスワードデータベースがハッキングされたように見えても、攻撃者はすべて暗号化されたデータを持っているため、データベースは、2番目のパスワードを格納するために使用されます)。
私は彼らが1つの公開鍵と1つの秘密鍵でPGP鍵を使用していると思います。彼らはあなたの公開鍵とあなたの秘密鍵をあなたのパスワードを使って暗号化して保存します(あなたは暗号化された秘密鍵だけを保存するために彼らを信頼する必要があります)。彼らはあなたの公開鍵を持っているので、どんな着信メールも暗号化することができます。メールを読みたい場合は、識別されると、パスワードで省略されたパスワードを使用して暗号化された秘密鍵が送信されます(これは透過的です)。その後、この秘密鍵を使用してメールを解読できます。これなら、私にはかなり良いようです。