
Seal v0.2.3
पीयर-टू-पीयर, एंड-टू-एंड एन्क्रिप्टेड चैट। कोई इनबॉक्स नहीं। रिकवर करने के लिए कोई अकाउंट नहीं। कोई सुन नहीं रहा — हम भी नहीं।
Seal
पीयर-टू-पीयर, एंड-टू-एंड एन्क्रिप्टेड चैट।
कोई इनबॉक्स नहीं। पुनर्प्राप्त करने के लिए कोई खाता नहीं। कोई सुन नहीं रहा — हम भी नहीं।
संदेश libp2p के माध्यम से सीधे पीयर के बीच यात्रा करते हैं और आपके डिवाइस से बाहर निकलने से पहले Signal-शैली के Olm/Megolm प्रोटोकॉल (vodozemac के माध्यम से) से एन्क्रिप्ट किए जाते हैं। इसमें शामिल एकमात्र सर्वर एक छोटी निर्देशिका है जो पीयर को एक-दूसरे का वर्तमान पता खोजने में मदद करती है। यह कभी भी संदेश सामग्री नहीं देखता है, और इसे एक ही कमांड में हटाया जा सकता है।
वास्तव में किन चीज़ों से सुरक्षा मिलती है और कैसे, यह देखने के लिए docs/THREAT_MODEL.md और docs/SECURITY.md देखें।
विषय-सूची
- स्क्रीनशॉट
- विशेषताएँ
- यह कैसे काम करता है
- प्रोजेक्ट संरचना
- 1. पूर्वापेक्षाएँ
- 2. बिल्डिंग
- 3. इसे डेव मोड में चलाना
- 4. परीक्षण
- 5. बैकएंड (डायरेक्टरी सर्वर) सेटअप
- 6. ऐप का उपयोग
स्क्रीनशॉट
पहला रन — एक नाम चुनें; और कुछ सेट करने की ज़रूरत नहीं।
बातचीत — ग्रुप रेल, संपर्क सूची, और एक एंड-टू-एंड एन्क्रिप्टेड चैट पैन।
सेटिंग्स — माइक संवेदनशीलता, पुश-टू-टॉक, लॉगिन-पर-लॉन्च, नेटवर्क पहुँच।
विशेषताएँ
- हमेशा एंड-टू-एंड एन्क्रिप्टेड — हर संदेश आपके डिवाइस से बाहर निकलने से पहले Olm (1:1) या Megolm (समूहों) के साथ सील किया जाता है, vodozemac की Double-Ratchet-शैली योजना का उपयोग करते हुए: हर संदेश को अपनी खुद की कुंजी मिलती है।
- कभी नहीं कोई इनबॉक्स — संदेश एक सीधे पीयर-टू-पीयर कनेक्शन (libp2p: QUIC/TCP + Noise, NAT के लिए रिले और होल-पंचिंग के साथ) पर यात्रा करते हैं। यदि प्राप्तकर्ता ऑफ़लाइन है, तो संदेश स्थानीय रूप से प्रतीक्षा करता है और पुनः प्रयास करता है — यह कभी भी किसी और के इंफ्रास्ट्रक्चर पर कतारबद्ध नहीं होता।
- एक डायरेक्टरी, डेटाबेस नहीं — इसमें शामिल एकमात्र सर्वर (
crates/directory-server) एक उपयोगकर्ता ID को वर्तमान नेटवर्क पते पर मैप करता है और कुछ और नहीं। यह संरचनात्मक रूप से संदेश सामग्री पढ़ने में असमर्थ है: इसकाCargo.tomlउन crates पर निर्भर भी नहीं है जो यह जानते हैं। - एक डिवाइस, कई खाते — पूरी तरह से अलग पहचान (कुंजियाँ, संपर्क, संदेश) जिनके बीच आप बिना पुनः आरंभ किए स्विच कर सकते हैं।
- वास्तविक सदस्यता परिवर्तन वाले समूह — प्रति समूह टेक्स्ट और वॉइस चैनल; किसी को हटाने पर समूह की कुंजी घुमा दी जाती है ताकि वे बाद में भेजी गई कोई भी चीज़ न पढ़ सकें।
- वॉइस, अंतर्निर्मित — सिस्टम-व्यापी शॉर्टकट पर पुश-टू-टॉक (केवल Seal से नहीं, किसी भी ऐप से काम करता है), समायोज्य माइक संवेदनशीलता, और एक वैकल्पिक वॉइस चेंजर।
- मेटाडेटा के बिना अटैचमेंट — EXIF डेटा (GPS स्थान, कैमरा/डिवाइस जानकारी) भेजे जाने से पहले छवियों से हटा दिया जाता है, डिफ़ॉल्ट रूप से चालू।
- एक वास्तविक पैनिक बटन — सेटिंग्स → डेटा और गोपनीयता इस डिवाइस पर हर कुंजी, संपर्क और संदेश को तुरंत और अपरिवर्तनीय रूप से हटा देता है, जिसका उन सभी पर शून्य प्रभाव पड़ता है जिनसे आपने बात की है।
- लॉगिन पर लॉन्च, यदि आप चाहें — डिफ़ॉल्ट रूप से चालू, सेटिंग्स में बस एक टॉगल दूर।
- एक कोडबेस, तीन प्लेटफ़ॉर्म — Tauri के माध्यम से macOS, Windows और Linux पर नेटिव विंडोज़।
यह कैसे काम करता है
इस ऐप में दो प्रकार की पहचान हैं, और उन्हें जानबूझकर अलग रखा गया है:
- आपकी चैट पहचान एक Ed25519/Curve25519 कुंजीयुग्म है जिसे ऐप पहली बार खोलने पर vodozemac द्वारा स्थानीय रूप से उत्पन्न किया जाता है (
identity::Identity)। आपका सार्वजनिक "user ID" उस कुंजी का फ़िंगरप्रिंट मात्र है (wire_proto::user_id_from_ed25519)। इसे किसी सर्वर द्वारा जारी या रद्द नहीं किया जा सकता, क्योंकि इसे बनाने में कोई सर्वर शामिल नहीं है। - आपकी नेटवर्क पहचान एक अलग libp2p कुंजीयुग्म (
PeerId) है, जिसका उपयोग केवल ट्रांसपोर्ट परत के लिए होता है। यह पुनः आरंभ के बीच बदल सकता है, बिना आपकी चैट पहचान को बिल्कुल प्रभावित किए; दोनों केवल एक उपस्थिति रिकॉर्ड से बंधे होते हैं जिस पर आप स्वयं हस्ताक्षर करते हैं।