सुरक्षा कथं कार्यं करोति — सरलैः शब्दैः।
जिज्ञासुभ्यः सावधानेभ्यश्च। प्रथमं संक्षेपः, तदनन्तरं विस्तृतं विवरणम्।
सरलैः शब्दैः
भवतः प्रत्येकं यन्त्रं स्वयं कुञ्चिकायुगलं निर्मिणोति। सन्देशं प्रेषयन् भवतः phone तं नूतनया एककालिकया कुञ्चिकया बद्ध्नाति, तत्पश्चात् सा कुञ्चिका वार्तालापे विद्यमानस्य प्रत्येकस्य यन्त्रस्य कृते पृथक्तया बद्ध्यते। केवलं तानि यन्त्राणि एव तं मोचयितुं शक्नुवन्ति। भवतः phone सन्देशं स्वाक्षरयति अपि, येन पाठकस्य phone जानाति यत् सः वस्तुतः भवतः एव आगतः, मार्गे च परिवर्तितः नास्ति।
तकनीकी सारांशः
- यन्त्रकुञ्चिकाः: कुञ्चिकासम्मतये X25519, स्वाक्षरेभ्यः Ed25519 — एते यन्त्रे एव निर्मीयन्ते। गुप्तकुञ्चिकाः platform-स्य सुरक्षितस्थाने रक्ष्यन्ते, कदापि न अपलोड्यन्ते।
- सन्देशाः: एकः यादृच्छिकः 256-bit विषयकुञ्चिका ChaCha20-Poly1305 द्वारा सामग्रीं बद्ध्नाति। सा विषयकुञ्चिका प्रत्येकस्य प्राप्तृयन्त्रस्य कृते ephemeral X25519 + HKDF-SHA256 द्वारा आवृता भवति। आवरणशीर्षकम् (वार्तालापः, प्रेषकः, यन्त्रम्, सन्देशचिह्नम्, प्राप्तृसूची) associated data रूपेण संयुक्तं Ed25519 द्वारा च स्वाक्षरितम् अस्ति।
- संचिकाः: यन्त्रे एव एककालिककुञ्चिकया बद्ध्यन्ते; सा कुञ्चिका बद्धसन्देशस्य अन्तः गच्छति। सेवकः केवलं बद्धं रूपमेव संगृह्णाति।
- वार्तालापाः: WebRTC सह DTLS-SRTP माध्यमेन। Offers, answers, ICE candidates च तैः एव स्वाक्षरितैः बद्धैश्च आवरणैः गच्छन्ति, अतः सेवकः वार्तालापस्य आरम्भं न पठितुं न कल्पयितुं च शक्नोति।
- सुरक्षासंख्याः: उभयोः जनयोः यन्त्रकुञ्चिकानां मुद्रा। मध्ये कोऽपि नास्ति इति निश्चेतुं साक्षात् मिलित्वा तुलयतु। यदा कस्यचित् सम्पर्कस्य कुञ्चिकाः परिवर्तन्ते, तदा app सूचयति।
- प्रवेशः: scrypt द्वारा password-हाशाः, ऐच्छिकः TOTP द्विचरणीयः सत्यापनः हाशितैः पुनःप्राप्तिसंकेतैः सह, 5 असफलतानन्तरं निरोधः, 12-घण्टा-निष्क्रियता-सत्रं 24-घण्टा-अधिकतम-सत्रं च, HttpOnly SameSite=Strict cookie। SMS कुत्रापि नास्ति।
- वेब: दृढ़ं Content-Security-Policy अस्ति, कोऽपि तृतीयपक्ष-स्रोतः न स्वीक्रियते, frame-संस्थापनं निषिद्धम्, उत्पादने HSTS अस्ति।
- Android: चित्रग्रहणं निवारयितुं FLAG_SECURE, cleartext-संचारः निष्क्रियः, app-संग्रहः निष्क्रियः।
सेवकः किं पश्यति
कः केन सह कदा वार्तां करोति, सन्देशसंचिकयोः आकाराः, गणसंज्ञा सदस्यता च, तथा वार्तालापः आरभ्यते इति — एतत् सेवकाय दृश्यम्। कार्याणि, सम्मतयः, प्रतिवेदनप्रारूपाणि च सेवके संगृह्यन्ते — तेषां पूर्णरक्षा नास्ति। एतत् सर्वं वयं गोपनीयता-पृष्ठे स्पष्टतया लिखामः।
परीक्षणं कथं कुर्मः
प्रत्येकं संस्करणं 40-अधिकानां स्वचालितपरीक्षाणां द्वारं पारयति। तेषु सन्ति: Python-लिखितः प्रोटोकॉलस्य स्वतन्त्रः कार्यान्वयः यः app-सह कार्यं कुर्यात्; विकृत-कल्पित-पुनःप्रेषित-आवरणेषु आक्रमणाः; सेवकदत्तांशकोशे असुरक्षितपाठस्य अन्वेषणम्; नष्टसन्देशाः तत्कुञ्चिकाभिः सह विलुप्ताः इति सत्यापनम्; तथा web app शून्यान् तृतीयपक्षनिवेदनान् करोति इति browser-परीक्षणम्।
ज्ञाताः सीमाः
- अद्यापि forward secrecy ratchet नास्ति: चोरितया यन्त्रकुञ्चिकया तस्य यन्त्रस्य पूर्वसन्देशाः पठितुं शक्येरन्। double-ratchet रचना भविष्यकार्यसूच्यां विद्यते।
- Metadata सेवकाय दृश्यः भवति, यथा उपरि वर्णितम्।
- जालसंस्करणस्य सुरक्षा browser इत्यस्य, अस्माकं सर्वरेण प्रेषितस्य कोडस्य च उपरि आश्रिता। एतदेव एकं कारणं यत् जालसंस्करणं केवलम् आमन्त्रणाधारिते लघुपरीक्षणे सीमितम् अस्ति। Google Play app प्रथमम् आगमिष्यति, तस्य signing certificate वयं Namaskara प्राप्यताम् इति पृष्ठे प्रकाशयिष्यामः।
सुरक्षादोषं निवेदयतु
कोऽपि दुर्बलता दृष्टा? प्रकाशनात् पूर्वं कृपया अस्माकं गोपनीयतया सूचयतु — विषयपङ्क्तौ "Security" लिखित्वा सम्पर्कपृष्ठेन। वयं प्रत्युत्तरं दास्यामः, दोषं सुधारिष्यामः, भवतः इच्छायां सत्यां श्रेयश्च दास्यामः। कृपया अन्येषां खातेषु परीक्षणं न करोतु।