در ۲ دقیقه بررسی کنید
F12 را در مرورگرتان فشار دهید. بدون نصب چیزی. بدون نیاز به برنامهنویسی.
| ادعا | نحوه تأیید | تب |
|---|---|---|
| هیچ کوکیای از هیچ نوعی وجود ندارد | Application → Cookies → خالی. Solo2 هیچ کوکیای نصب نمیکند. جلسه شما در localStorage نگهداری میشود، نه در کوکیها. بدون _ga |
Application |
| سرویسهای شخص ثالث در اپلیکیشن وجود ندارد | Network → فیلتر بر اساس دامنه → فقط درخواستها به solo2.net |
Network |
| تحلیل آماری فقط در صفحه معرفی، نه در اپلیکیشن | Network → در /* |
Network |
| تاریخچه شما در مرورگرتان زندگی میکند | Application → IndexedDB → solo2-vault-{userId} |
Application |
| لیست مخاطبین فقط محلی | Application → IndexedDB → store pares |
Application |
| بدون CDN خارجی | Network → تمام JS/CSS از همان دامنه بارگذاری میشوند. هیچ cdn.jsdelivr.net |
Network |
| جلسات حداکثر ۲۴ ساعت | Application → localStorage → solo2_session |
Application |
| میتوانید نوع اتصال خود را ببینید | در رابط گفتگو: نشانگر P2P (سبز) در مقابل Mirror/TURN (نارنجی) همیشه قابل مشاهده | UI |
| Umami بدون کوکی است | Application → Cookies → هیچ کوکی از stats.menzuri.com |
Application |
| کلید اصلی شما بهصورت تصادفی تولید میشود | Application → هنگام ثبتنام، Solo2 ۲۴ کلمه منحصربهفرد تولید میکند. از رمز عبور شما مشتق نمیشوند — کلید مستقلی با ۲۵۶ بیت آنتروپی واقعی هستند | Application |
اگر بلد هستید از DevTools استفاده کنید
تأییداتی که نیاز به دانش فنی دارند. اگر HTTP، WebRTC و رمزنگاری پایه را درک میکنید، میتوانید این ادعاها را تأیید کنید.
| ادعا | نحوه تأیید |
|---|---|
| پیامها با E2E رمزگذاری شدهاند | Network → درخواستها به /cmd |
| سیگنالهای WebRTC با E2E رمزگذاری شدهاند | Network → پیامهای سیگنال بهصورت بلوبهای باینری رمزگذاریشده منتقل میشوند. JSON خوانا با offer |
| کلید اصلی مستقل از رمز عبور | Network → ورود یک wrapped_master_key |
| پدینگ یکنواخت در آینه | Network → بستههای WebSocket/DataChannel هنگام استفاده از relay اندازه ثابت دارند. اندازهها را در تب Network بررسی کنید |
| رمز عبور محافظتشده (بهصورت متن ساده منتقل نمیشود) | Network → ورود یک هش ارسال میکند، نه متن ساده. نمیتوانید تأیید کنید سرور از چه الگوریتمی (Argon2id) استفاده میکند، اما میتوانید تأیید کنید رمز عبور اصلی شما هرگز از مرورگر خارج نمیشود |
| درخواستهای پیوند بعد از ۳ روز منقضی میشوند | یک درخواست بسازید، پاسخ ندهید، بعد از ۳ روز بررسی کنید که ناپدید شده. نیاز به صبر و دو حساب دارد |
| اعلانهای push رمزگذاری شده | Network → درخواستهای push به Service Worker رمزگذاریشده میرسند (استاندارد Web Push). بار رمزگذاریشده در تب Network قابل مشاهده است |
| اتصال P2P مستقیم در مقابل relay | chrome://webrtc-internals/ |
این را نمیتوانید تأیید کنید
ریاکار میبودیم اگر میگفتیم همه چیز قابل تأیید است. این ادعاها نیاز دارند که به ما اعتماد کنید — یا صبر کنید تا کد را منتشر کنیم.
| ادعا | چرا قابل تأیید نیست |
|---|---|
| Double Ratchet با چرخش کلیدها | عملیات رمزنگاری در داخل یک باینری WASM اتفاق میافتد. کاربر میبیند که بارگذاری میشود، اما نمیتواند الگوریتم اجراشده را بخواند |
| کلید اصلی با آنتروپی واقعی (۲۵۶ بیت) تولید میشود | تولید از crypto.getRandomValues در مرورگر استفاده میکند. میبینید ۲۴ کلمه تولید میشود، اما نمیتوانید از F12 کیفیت آنتروپی یا امنیت CSPRNG را تأیید کنید |
| X25519 + Ed25519 + ChaCha20-Poly1305 | همان مشکل: پشته رمزنگاری در داخل WASM است. نمیتوان منحنیها و الگوریتمها را از مرورگر تأیید کرد |
| سرور «کاملاً کور» است | میتوانید تأیید کنید که کلاینت دادههای خوانا ارسال نمیکند. آنچه سرور با فرادادههای اتصال (IPها، timestamps) انجام میدهد نیاز به اعتماد یا بازرسی سرور دارد |
| سرور پس از پیوند روابط را نگه نمیدارد | نیاز به دسترسی به کد و پایگاه داده سرور دارد |
| IPها ثبت نمیشوند | نمیتوانید تأیید کنید سرور چه چیزی در لاگهایش ثبت میکند |
| کلیدها با هر پیام چرخش میکنند | در داخل WASM اتفاق میافتد. میبینید پیامها ارسال میشوند، اما نمیتوانید چرخش کلیدها را مشاهده کنید |
| دادههای حذفشده واقعاً ناپدید میشوند | میتوانید از IndexedDB محلی حذف کنید، اما نمیتوانید تأیید کنید سرور نسخههایی نگه نمیدارد (هرچند بیانیه میگوید هرگز آنها را نداشته) |
چرا WASM یک مانع واقعی است
لایه رمزنگاری Solo2 به WebAssembly کامپایل شده — فرمت باینری که مرورگر شما اجرا میکند اما نمیتوانید بهصورت متن بخوانید. این یعنی نمیتوانید از F12 تأیید کنید از چه الگوریتمی استفاده میکنیم.
جاوااسکریپت فشردهشده (که برای رابط کاربری استفاده میکنیم) قابل بازگشت است: مرورگر میتواند آن را بازفرمت کند و ساختار کد خوانا است. این یک مانع عملی است، نه یک سد واقعی. اما WASM کامپایلشده از Zig اساساً متفاوت است
ما میگوییم Double Ratchet با X25519 است. میتوانید به حرف ما اعتماد کنید، یا صبر کنید تا کد منبع لایه رمزنگاری را منتشر کنیم تا هر کسی بتواند آن را بازرسی کند. ما روی آن کار میکنیم.
آنچه برای افزایش اعتماد شما انجام میدهیم
انتشار هشهای SHA-256 فایلهای .wasm
هش رمزنگاری هر فایل WASM در تولید را منتشر خواهیم کرد. به این ترتیب هر بازرسی میتواند تأیید کند که باینری اجراشده در مرورگر شما دقیقاً مطابق آنچه ما کامپایل کردهایم است.
باز کردن لایه رمزنگاری بهعنوان کد باز
انتشار کد منبع لایه رمزنگاری (Zig) بهعنوان مخزن عمومی. همان مدل Signal: پروتکل رمزنگاری باز، بقیه کد بسته. هر کسی میتواند کد منبع را کامپایل کند و هش فایل .wasm حاصل را با آنچه در تولید است مقایسه کند.
امنیت به ابهام وابسته نیست
مدل امنیتی ما طراحی شده تا حتی اگر کد منبع عمومی باشد کار کند. اگر امنیت به این وابسته بود که هیچکس نتواند کد را بخواند، امنیت نبود — امید بود.
۵ لایه امنیتی مستندشده
رمز عبور (دسترسی به سرور)، ۲۴ کلمه (کلید اصلی واقعی)، راز دستگاه (حفاظت صندوق) و چرخش Double Ratchet. هر لایه مستقل و قابل تأیید در بیانیه شفافیت ماست.