خودتان آن را تایید کنید

به هیچ‌کس اعتماد نکنید. خودتان بررسی کنید.

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

در ۲ دقیقه آن را بررسی کنید

در مرورگر خود F12 را فشار دهید. بدون نصب هیچ چیزی. بدون نیاز به دانش برنامه‌نویسی.

ادعا نحوه تایید آن تب
هیچ کوکی از هیچ نوعی وجود ندارد Application → Cookies → خالی است. Solo2 هیچ کوکی نصب نمی‌کند. نشست شما در localStorage نگه داشته می‌شود، نه در کوکی‌ها. بدون _ga Application
هیچ سرویس شخص ثالثی در اپلیکیشن وجود ندارد Network → فیلتر کردن بر اساس دامنه → فقط درخواست‌ها به solo2.net Network
آنالیتیکس فقط در صفحه معرفی (landing) است، نه در اپلیکیشن 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 دریافت می‌کند.
پدینگ یکنواخت در آینه (mirror) 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ها، زمان‌ها) انجام می‌دهد، نیاز به اعتماد یا حسابرسی سرور دارد.
سرور روابط را پس از پیوند ذخیره نمی‌کند نیاز به دسترسی به کد و پایگاه داده سرور دارد.
IPها ثبت نمی‌شوند شما نمی‌توانید تایید کنید سرور چه چیزی را در لاگ‌های خود ثبت می‌کند.
کلیدها با هر پیام می‌چرخند در داخل WASM اتفاق می‌افتد. شما می‌بینید که پیام‌ها ارسال می‌شوند، اما نمی‌توانید چرخش کلیدها را مشاهده کنید.
داده‌های حذف شده واقعاً ناپدید می‌شوند شما می‌توانید از IndexedDB محلی حذف کنید، اما نمی‌توانید تایید کنید که سرور کپی‌ها را نگه نمی‌دارد (اگرچه مانیفست می‌گوید هرگز آن‌ها را نداشته است).

چرا WASM یک مانع واقعی است

لایه رمزنگاری Solo2 در WebAssembly کامپایل شده است — یک فرمت باینری که مرورگر شما اجرا می‌کند اما نمی‌توانید آن را به صورت متن بخوانید. این بدان معناست که شما نمی‌توانید از F12 تایید کنید از چه الگوریتمی استفاده می‌کنیم.

فایل JavaScript فشرده شده (که برای رابط کاربری استفاده می‌کنیم) قابل بازگشت است: مرورگر می‌تواند آن را دوباره فرمت کند و ساختار کد قابل خواندن است. این یک مانع عملی است، نه یک سد واقعی. اما WASM کامپایل شده از Zig به طور اساسی متفاوت است.

ما می‌گوییم که این Double Ratchet با X25519 است. شما می‌توانید به حرف ما اعتماد کنید، یا می‌توانید منتظر بمانید تا کد منبع لایه رمزنگاری را منتشر کنیم تا هر کسی بتواند آن را حسابرسی کند. ما در حال کار روی آن هستیم.

ما چه می‌کنیم تا بتوانید بیشتر اعتماد کنید

1

انتشار هش‌های SHA-256 فایل‌های .wasm

ما هش رمزنگاری هر فایل WASM را در تولید منتشر خواهیم کرد. به این ترتیب هر حسابرسی می‌تواند تایید کند که فایل باینری که در مرورگر شما اجرا می‌شود دقیقاً با فایلی که ما کامپایل کرده‌ایم مطابقت دارد.

2

باز کردن لایه رمزنگاری به عنوان متن‌باز

انتشار کد منبع لایه رمزنگاری (Zig) به عنوان یک مخزن عمومی. همان مدل Signal: پروتکل رمزنگاری باز، بقیه کدها بسته. هر کسی می‌تواند کد منبع را کامپایل کرده و هش فایل .wasm حاصل را با فایلی که در تولید است مقایسه کند.

3

امنیت وابسته به تاریکی نیست

مدل امنیتی ما طوری طراحی شده است که حتی اگر کد منبع عمومی باشد کار کند. اگر امنیت وابسته به این باشد که هیچ‌کس نتواند کد را بخواند، امنیت نخواهد بود — بلکه امید خواهد بود.

4

۵ لایه امنیتی مستند شده

رمز عبور (دسترسی به سرور)، ۲۴ کلمه (کلید اصلی واقعی)، راز دستگاه (حفاظت از خزانه) و چرخش Double Ratchet. هر لایه مستقل و در مانیفست شفافیت ما قابل تایید است.

Solo2 — گفتگوی شما فقط مال شماست.