بلاگ · ۵ آوریل ۲۰۲۶

Solo2 چطور بدون اینکه سرور چیزی بداند متصل می‌شود

سرور فقط یک کار انجام می‌دهد: کمک می‌کند تا دو دستگاه یکدیگر را پیدا کنند. بعد از آن ناپدید می‌شود.

آنچه سرور درباره شما می‌داند

بیایید با ابتدایی‌ترین چیزها شروع کنیم. سرور Solo2 دقیقاً سه چیز را درباره شما می‌داند: نام کاربری شما، شناسه منحصر به فرد شما و هشی از رمز عبور شما. هش یک تبدیل ریاضی برگشت‌ناپذیر است — سرور می‌تواند بدون دانستن رمز عبور شما، صحت آن را بررسی کند. رمز عبور واقعی شما فقط در سر شما و در دستگاه شما وجود دارد.

و این تمام چیزی است که هست. سرور نمی‌داند با چه کسی صحبت می‌کنید. نمی‌داند چند تونل دارید. نام مخاطبین شما را نمی‌داند. آن اطلاعات فقط در داخل خزانه شما، به صورت رمزگذاری شده در دستگاه شما وجود دارد. سرور نمی‌تواند آن را باز کند حتی اگر بخواهد.

صندوقچه‌ها

دیواری را با صندوقچه‌های شماره‌گذاری شده تصور کنید، مانند صندوقچه‌های یک اداره پست قدیمی. وقتی اپلیکیشن شما می‌خواهد به کسی متصل شود، یادداشتی در یک صندوقچه می‌گذارد که می‌گوید "می‌خواهم با کاربر X صحبت کنم". هیچ‌چیز دیگر. نمی‌گوید شما کی هستید. نمی‌گوید درباره چه می‌خواهید صحبت کنید. فقط یک یادداشت در یک صندوقچه.

به طور دوره‌ای، تمام اپلیکیشن‌های متصل به Solo2 به صندوقچه‌ها نگاه می‌کنند تا ببینند آیا کسی یادداشتی برای آن‌ها گذاشته است یا خیر. این مانند رفتن به اداره پست و پرسیدن این است: "آیا چیزی برای من هست؟". اگر مخاطب شما یادداشت شما را پیدا کند، از سرور آدرس IP که گذاشته بودید را می‌خواهد. سرور آن را به او می‌دهد و آن اطلاعات بلافاصله از حافظه پاک می‌شود. در هیچ دیسکی نوشته نمی‌شود. برای چند میلی‌ثانیه لازم جهت پاسخ دادن، در حافظه موقت سرور زندگی می‌کند.

از آنجا به بعد، سرور ناپدید می‌شود

وقتی دو دستگاه آدرس یکدیگر را شناختند، مستقیماً با هم صحبت می‌کنند. سرور دیگر مشارکتی ندارد. پیام‌ها را بازپخش نمی‌کند. آن‌ها را ذخیره نمی‌کند. نمی‌داند آیا اتصال برقرار شده است یا نه. نمی‌داند چقدر طول می‌کشد. نمی‌داند چند پیام رد و بدل می‌شود یا اندازه آن‌ها چقدر است.

تا حدی که اگر سرور در آن لحظه خاموش شود، دو کاربر دقیقاً به همان صورت به صحبت ادامه می‌دهند. گفتگو به سرور وابسته نیست. فقط برای اینکه دو دستگاه یکدیگر را پیدا کنند به آن وابسته بود. به محض اتصال، سرور بی‌اهمیت می‌شود.

گفتگو حتی قبل از شروع امن است

وقتی دو نفر یک تونل در Solo2 ایجاد می‌کنند، دستگاه‌های آن‌ها کلیدهای رمزنگاری عمومی را مبادله می‌کنند. از آن لحظه به بعد، هر پیام با کلید گیرنده رمزگذاری می‌شود — و فقط گیرنده می‌تواند آن را رمزگشایی کند. این اتفاق قبل از شروع هر گفتگویی می‌افتد. کلیدها از لحظه ایجاد تونل آماده هستند.

به همین دلیل، وقتی دو دستگاه مستقیماً به هم متصل می‌شوند، ارتباط از قبل محافظت شده است. آن‌ها نیازی به مذاکره برای هیچ‌چیزی ندارند. نیازی به اجازه گرفتن از سرور ندارند. کلیدها مال خودشان است، در دستگاه‌هایشان است و هیچ‌کس دیگری آن‌ها را ندارد.

معنای این در عمل چیست

به این معنی است که هیچ سوابقی از گفتگوهای شما در هیچ سروری وجود ندارد. متا‌دیتایی برای تحلیل نیست. تاریخچه‌ای برای تحویل دادن به مراجع قضایی نیست. پایگاه داده‌ای برای هک شدن نیست. سرور Solo2 نمی‌تواند آنچه را که ندارد تحویل دهد. و هیچ‌چیزی ندارد چون هرگز نداشته است.

دفعه بعد که کسی به شما گفت اپلیکیشنی "پیام‌های شما را سرتاسری رمزگذاری می‌کند"، از او بپرسید بقیه چیزها چه می‌شود. چه کسی می‌داند با چه کسی صحبت می‌کنید. چه کسی می‌داند در چه ساعتی. چه کسی می‌داند با چه فرکانسی. اگر پاسخ "سرور ما، اما ما از آن برای هیچ کار بدی استفاده نمی‌کنیم" باشد — این یک قول است. در Solo2، پاسخ متفاوت است: هیچ‌کس نمی‌داند. چون کسی نیست که بتوان از او پرسید.