सुरक्षा कसरी काम गर्छ, सरल शब्दमा।
जान्न चाहने र सतर्क रहने मानिसहरूका लागि। पहिले छोटकरीमा, त्यसपछि प्राविधिक विवरण।
सरल शब्दमा
तपाईंको प्रत्येक यन्त्रले आफ्नै जोडी साँचो बनाउँछ। सन्देश पठाउँदा, तपाईंको phone ले त्यसलाई एउटा नयाँ एक-पटके साँचोले बन्द गर्छ, अनि त्यो साँचो कुराकानीमा भएका हरेक यन्त्रका लागि छुट्टाछुट्टै बन्द गर्छ। ती यन्त्रहरूले मात्र खोल्न सक्छन्। तपाईंको phone ले सन्देशमा दस्तखत पनि गर्छ, जसले गर्दा पढ्नेको phone ले थाहा पाउँछ कि सन्देश साँच्चै तपाईंबाटै आएको हो र बाटोमा बदलिएको छैन।
प्राविधिक सारांश
- यन्त्रका साँचोहरू: साँचो मिलाउनका लागि X25519 र दस्तखतका लागि Ed25519, यन्त्रमै बनाइन्छ। गोप्य साँचोहरू यन्त्रको सुरक्षित भण्डारमा राखिन्छन् र कहिल्यै upload गरिँदैन।
- सन्देशहरू: एउटा अनियमित 256-bit सामग्री साँचोले ChaCha20-Poly1305 मार्फत सन्देश बन्द गर्छ। सामग्री साँचो प्रत्येक प्राप्तकर्ता यन्त्रका लागि ephemeral X25519 + HKDF-SHA256 प्रयोग गरी छुट्टाछुट्टै बेरिन्छ। खाम हेडर (कुराकानी, पठाउने, यन्त्र, सन्देश id, प्राप्तकर्ता सूची) associated data को रूपमा जोडिन्छ र Ed25519 ले दस्तखत गरिन्छ।
- फाइलहरू: यन्त्रमै एक-पटके साँचोले बन्द गरिन्छ, जुन साँचो सुरक्षित सन्देशभित्रै पठाइन्छ। Server मा केवल बन्द गरिएको सामग्री मात्र राखिन्छ।
- कलहरू: DTLS-SRTP media सहित WebRTC। Offer, answer र ICE candidate हरू त्यही दस्तखत गरिएको, बन्द गरिएको खाममा आउजाउ गर्छन्, त्यसैले server ले कल जोड्ने प्रक्रिया पढ्न वा नक्कल गर्न सक्दैन।
- सुरक्षा नम्बरहरू: दुवै मानिसका यन्त्र साँचोको छाप। बीचमा कोही छैन भनी पक्का गर्न आमनेसामने मिलाएर हेर्नुहोस्। कुनै सम्पर्कको साँचो बदलिएमा app ले सचेत गराउँछ।
- साइन-इन: scrypt पासवर्ड ह्यास, वैकल्पिक TOTP दुई-चरण प्रमाणीकरण ह्यास गरिएका रिकभरी कोडसहित, 5 पटक असफल भएपछि ताल्चा लाग्ने, 12 घण्टा निष्क्रिय रहँदा र अधिकतम 24 घण्टामा सत्र समाप्त हुने, HttpOnly SameSite=Strict कुकी। कहीँ पनि SMS छैन।
- वेब: कडा Content-Security-Policy, कुनै तेस्रो पक्षको स्रोत छैन, फ्रेम इम्बेडिङ अस्वीकृत, उत्पादनमा HSTS।
- Android: स्क्रिन क्याप्चर रोक्न FLAG_SECURE, सादा टेक्स्ट ट्राफिक बन्द, app ब्याकअप बन्द।
Server ले के देख्न सक्छ
को कससँग र कहिले कुरा गर्छ, सन्देश र फाइलको आकार, समूहको नाम र सदस्यता, र कल जोडिँदैछ भन्ने कुरा — यी server लाई देखिन्छन्। काम, सहमति र मस्यौदाहरू server मा राखिन्छन् र ती पूर्ण रूपमा बन्द गरिँदैनन्। यो कुरा हामीले Privacy पृष्ठमा खुलेर उल्लेख गरेका छौं।
हामी कसरी जाँच गर्छौं
हरेक release 40 भन्दा बढी स्वचालित जाँचहरूबाट पार हुनुपर्छ, जसमा समावेश छन्: Python मा लेखिएको protocol को स्वतन्त्र कार्यान्वयन जुन app सँग मिलेर काम गर्नुपर्छ; छेडछाड गरिएको, नक्कली र दोहोर्याइएको खाममाथि आक्रमण परीक्षण; server database मा खुला सामग्री छ कि छैन भनी जाँच; म्याद सकिएका हराउने सन्देशहरू तिनका साँचोसहित मेटिएका छन् कि छैनन् भनी प्रमाणीकरण; र web app ले कुनै तेस्रो पक्षमा अनुरोध गर्दैन भनी browser जाँच।
थाहा भएका सीमाहरू
- अहिलेसम्म forward secrecy ratchet छैन: चोरिएको यन्त्र साँचोले त्यो यन्त्रलाई पठाइएका पुराना सन्देशहरू खोल्न सक्ने सम्भावना छ। double-ratchet योजना भविष्यको कार्यसूचीमा छ।
- माथि उल्लेख गरिएअनुसार, metadata server लाई देखिन्छ।
- वेब संस्करणको सुरक्षा ब्राउजर र हाम्रो सर्भरले पठाउने कोडमा निर्भर हुन्छ। यही कारणले वेब संस्करण सानो निमन्त्रणा-मात्र पाइलटमा सीमित राखिएको छ: Google Play को app पहिले आउँछ, र हामी त्यसको signing certificate Namaskara लिनुहोस् पृष्ठमा प्रकाशित गर्नेछौं।
सुरक्षा सम्बन्धी समस्या जानकारी दिनुहोस्
कुनै कमजोरी फेला पर्यो? कृपया प्रकाशित गर्नुअघि हामीलाई गोप्य रूपमा जानकारी दिनुहोस् — विषयमा "Security" लेखेर Contact मार्फत। हामी जवाफ दिनेछौं, सुधार गर्नेछौं र तपाईंको इच्छा भए श्रेय पनि दिनेछौं। कृपया अरू मानिसका account मा परीक्षण नगर्नुहोस्।