サーバーがあなたについて知っていること
基本から始めましょう。Solo2のサーバーはあなたについて正確に3つのことを知っています:ユーザー名、一意の識別子、そしてパスワードのハッシュです。ハッシュとは不可逆的な数学的変換で、サーバーはパスワードが正しいかどうかを、パスワード自体を知ることなく検証できます。あなたの本当のパスワードは、あなたの頭の中とデバイスの中にしか存在しません。
それだけです。サーバーは誰と話しているか知りません。トンネルがいくつあるか知りません。連絡先の名前も知りません。その情報はあなたのデバイスで暗号化されたボールトの中にのみ存在します。サーバーはたとえ望んでも開けることができません。
メールボックス
古い郵便局のような、番号の付いたメールボックスの壁を想像してください。あなたのアプリが誰かと接続したいとき、ボックスに「ユーザーXと話したい」というメモを残します。それだけです。あなたが誰かは言いません。何について話したいかも言いません。ただボックスの中のメモだけです。
定期的に、Solo2に接続されているすべてのアプリがメールボックスをチェックして、誰かがメモを残していないか確認します。郵便局に立ち寄って「何か届いていますか?」と聞くようなものです。あなたの連絡先がメモを見つけたら、あなたが残したIPアドレスをサーバーに尋ねます。サーバーはそれを提供し、その情報は即座にメモリから消去されます。ディスクに書き込まれることはありません。応答に必要なミリ秒間だけサーバーの一時メモリに存在します。
その瞬間から、サーバーは消える
両方のデバイスが互いのアドレスを知ると、直接通信します。サーバーはもう参加しません。メッセージを中継しません。保存しません。接続が確立されたかどうかも知りません。どのくらい続くかも知りません。何通のメッセージが交換されたか、どのくらいの大きさかも知りません。
その瞬間にサーバーがシャットダウンしても、2人のユーザーはまったく同じように会話を続けます。会話はサーバーに依存していません。2台のデバイスがお互いを見つけるためだけにサーバーに依存していました。接続されれば、サーバーは無関係です。
会話は始まる前からすでに安全
2人がSolo2でトンネルを作成すると、デバイスは公開暗号鍵を交換します。その瞬間から、すべてのメッセージは受信者の鍵で暗号化され、受信者だけが復号できます。これは会話が始まる前に行われます。鍵はトンネルが作成された瞬間から準備されています。
だからこそ、2台のデバイスが直接接続するとき、通信はすでに保護されています。何も交渉する必要がありません。サーバーに許可を求める必要もありません。鍵は彼らのもので、彼らのデバイスにあり、他の誰も持っていません。
これが実際に意味すること
あなたの会話の記録がどのサーバーにも存在しないということです。分析するメタデータもありません。裁判所の命令で引き渡す履歴もありません。ハッキングするデータベースもありません。Solo2のサーバーは持っていないものを引き渡すことができません。そして何も持っていないのは、一度も持ったことがないからです。
次に誰かがアプリが「メッセージをエンドツーエンドで暗号化する」と言ったとき、それ以外のすべてに何が起こるか聞いてください。誰があなたの話し相手を知っているのか。誰が時間を知っているのか。誰が頻度を知っているのか。答えが「私たちのサーバーですが、悪いことには使いません」なら、それは約束です。Solo2では答えが違います:誰も知りません。聞く相手がいないからです。