Herkos

सुरक्षा नीति

Herkos निजी कुंजियाँ और एन्क्रिप्ट किए गए संदेश संभालता है, इसलिए हम सुरक्षा रिपोर्ट को गंभीरता से लेते हैं और किसी समस्या के बारे में देर से नहीं, जल्दी जानना पसंद करते हैं।

किसी कमज़ोरी की रिपोर्ट करना

कृपया सुरक्षा समस्याओं के लिए कोई सार्वजनिक issue न खोलें।

इसकी रिपोर्ट निजी तौर पर security@herkos.email पर ईमेल करके करें।

रिपोर्ट में ये बातें शामिल करना उपयोगी है: समस्या क्या है, उसे दोबारा कैसे पैदा करें, आपने किस प्लेटफ़ॉर्म और वर्शन पर जाँच की, और कोई हमलावर इससे क्या हासिल कर सकता है। प्रूफ़ ऑफ़ कॉन्सेप्ट से बहुत मदद मिलती है।

रिपोर्ट में अपनी nsec, निजी कुंजी या बंकर सीक्रेट कभी शामिल न करें।

हमारा लक्ष्य कुछ ही दिनों में रिपोर्ट मिलने की पुष्टि करना है। क्योंकि Herkos एक छोटा प्रोजेक्ट है, कृपया सार्वजनिक रूप से बताने से पहले सुधार के लिए उचित समय दें। अगर आप न चाहें तो बात अलग है, वरना हमें सुरक्षा सलाह (advisory) में आपको श्रेय देने में ख़ुशी होगी।

दायरे में क्या है

ख़ुद Herkos ऐप्लिकेशन: कुंजी को संभालना और स्टोर करना, संदेशों का एन्क्रिप्शन और डिक्रिप्शन (local_packages/nostr_mail में NIP-59 भेजने वाले की जाँच और Bcc को अलग रखने समेत), ऐप लॉक, रिले और ब्रिज के साथ संचार, अटैचमेंट को संभालना, और बिल्ड और रिलीज़ पाइपलाइन। Herkos Drive के लिए, उसका प्रोटोकॉल पैकेज (packages/herkos_drive_protocol) और उसके लिंक खोलने वाला पेज (herkos.app/f/) भी; नीचे उसका अपना भाग देखें।

दायरे से बाहर क्या है

ज्ञात सीमाएँ, साफ़-साफ़

ये डिज़ाइन से जुड़े समझौते हैं, कमज़ोरियाँ नहीं। हम इन्हें पहले ही लिख देना पसंद करते हैं, बजाय इसके कि किसी को ये मुश्किल से पता चलें:

Herkos Local Relay: यह किससे बचाता है और किससे नहीं

Herkos Local Relay आपके ऐप के इवेंट आपके डिवाइस पर रखता है, निजी इवेंट भी (ड्राफ़्ट, निजी सूचियाँ, आपको मिले लिफ़ाफ़े)। यहाँ बताया गया है कि उन्हें क्या सुरक्षित रखता है और सीमा कहाँ है, हर प्लेटफ़ॉर्म के हिसाब से। रिले की सुरक्षा समस्याओं की रिपोर्ट भी बाकी समस्याओं की तरह ही करें (ऊपर देखें)।

पूरा डेटाबेस एन्क्रिप्ट किया जाता है, उसका जर्नल भी (SQLite3 Multiple Ciphers, AEGIS-256)। कुंजी डिवाइस पर बनाए गए 32 रैंडम बाइट हैं, जो सिस्टम के सुरक्षित स्टोरेज में रखे जाते हैं: Android पर Keystore, Windows पर DPAPI, Linux पर कीरिंग (libsecret)। इसमें आपका कोई पासवर्ड नहीं लगता, क्योंकि रिले को अपने-आप शुरू होना होता है। कुंजी के बिना रिले शुरू नहीं होता और यह बता देता है: यह कभी बिना एन्क्रिप्शन वाला डेटाबेस नहीं खोलता या बनाता, और जिस डेटाबेस को खोल नहीं पाता, उसे कभी नहीं मिटाता।

अगर… Android Windows Linux
कोई डेटाबेस फ़ाइल कॉपी कर ले (किसी बैकअप, सिंक किए गए फ़ोल्डर या डिस्क इमेज से) सुरक्षित सुरक्षित सुरक्षित
डिवाइस या डिस्क बंद हालत में चोरी हो जाए सुरक्षित: कुंजी Keystore में है सुरक्षित, जब तक चोर को आपका Windows साइन-इन पासवर्ड पता न हो: DPAPI कुंजी को उसी से सुरक्षित रखता है सुरक्षित, जब तक चोर को आपकी कीरिंग का पासवर्ड पता न हो (लगभग हमेशा आपके सत्र का पासवर्ड)
उसी डिवाइस पर कोई दूसरा उपयोगकर्ता खाता सुरक्षित सुरक्षित: DPAPI हर उपयोगकर्ता के लिए अलग है सुरक्षित: कीरिंग हर उपयोगकर्ता के लिए अलग है
आपके उपयोगकर्ता के रूप में चलने वाला कोई दूसरा ऐप या प्रोग्राम सुरक्षित: Android हर ऐप को अलग रखता है और Keystore कुंजी सिर्फ़ रिले को देता है नहीं: DPAPI हर उपयोगकर्ता के लिए एन्क्रिप्ट करता है, हर ऐप के लिए नहीं; आपके रूप में चलने वाला प्रोग्राम कुंजी ठीक वैसे ही माँग सकता है जैसे रिले नहीं: आपके सत्र की कीरिंग ऐप को एक-दूसरे से अलग नहीं रखती
रूट किया हुआ फ़ोन, या ऐसा टूल जो ऐप के रूप में कोड चलाता है नहीं — —
किसी के हाथ में अनलॉक डिवाइस हो सिर्फ़ रिले का PIN या फ़िंगरप्रिंट, अगर आपने उन्हें सेट किया है वही वही
कोई चलते हुए रिले की मेमोरी पढ़ ले नहीं नहीं नहीं

डेस्कटॉप पर, DPAPI और कीरिंग की सीमा वही है जो किसी भी प्रोग्राम की होती है: ये दूसरे उपयोगकर्ताओं से और डिस्क ले जाने वाले से बचाते हैं, उस दुर्भावनापूर्ण प्रोग्राम से नहीं जो पहले से आपके रूप में चल रहा हो। अगर यह स्थिति आपको चिंतित करती है, तो आपको सिस्टम डिस्क का एन्क्रिप्शन (BitLocker, LUKS) और उन प्रोग्राम को न चलाना बचाता है जिन पर आपको भरोसा नहीं है। बिना कीरिंग वाले Linux पर (Secret Service न हो तो) रिले शुरू नहीं होता और इसकी वजह बताता है: यह कुंजी को कभी सादे टेक्स्ट में नहीं रखता।

डिवाइस पर ही कौन अंदर आ सकता है। रिले सिर्फ़ 127.0.0.1 पर सुनता है, और डिवाइस का कोई भी ऐप, या ब्राउज़र में खुला कोई वेब पेज, उस पते तक पहुँच सकता है। इसलिए:

यहाँ यह किससे नहीं बचाता:

लोकल नेटवर्क, अगर आप उसे चालू करें (डिफ़ॉल्ट रूप से यह बंद रहता है):

यहाँ यह किससे नहीं बचाता: उसी नेटवर्क पर मौजूद कोई भी व्यक्ति देख सकता है कि डिवाइस पर एक पोर्ट खुला है और उससे कितना ट्रैफ़िक गुज़रता है, हालाँकि यह नहीं कि क्या गुज़रता है; और अगर डिवाइस का कोई सार्वजनिक पता है (बीच में कोई राउटर नहीं), तो वह पोर्ट इंटरनेट से दिख सकता है, हालाँकि वह फिर भी आपकी सूची की कोई कुंजी माँगता है।

कॉपी। एन्क्रिप्ट की गई कॉपी का एक पासवर्ड होता है (scrypt और XChaCha20-Poly1305): उसके बिना कोई उसे नहीं खोल सकता, हम भी नहीं। JSONL एक्सपोर्ट एन्क्रिप्टेड नहीं होता और उसमें आपके निजी इवेंट सादे टेक्स्ट में होते हैं; ऐप आपको इसकी चेतावनी देता है।

लॉक (एक PIN, साथ में फ़िंगरप्रिंट या Windows Hello) ऐप खुलने पर, 30 सेकंड दूर रहने के बाद, और किसी पेयरिंग को मंज़ूरी देने के लिए माँगा जाता है। यह सुविधा के लिए एक रुकावट है, जैसे Mail में: यह कुछ भी एन्क्रिप्ट नहीं करता। Android पर, PIN सेट होने पर कोई स्क्रीनशॉट नहीं लिया जा सकता और हाल के ऐप में कोई थंबनेल नहीं दिखता, और Android 12 से, जब आप रिले इस्तेमाल कर रहे हों, तब किसी दूसरे ऐप की विंडो उसकी विंडो के ऊपर नहीं आ सकती।

Herkos Drive: यह किससे बचाता है और किससे नहीं

Herkos Drive आपकी फ़ाइलें Blossom सर्वर पर और आपकी फ़ाइलों और फ़ोल्डरों की सूची Nostr रिले पर रखता है, दोनों आपके डिवाइस पर एन्क्रिप्ट की हुई। यहाँ बताया गया है कि उन्हें क्या सुरक्षित रखता है और सीमा कहाँ है। पूरा विवरण packages/herkos_drive_protocol/ में spec-drive.md और ख़तरा मॉडल amenazas-drive.md में है; हर रिले और सर्वर क्या देखता है, यह गोपनीयता नीति में है। Drive की सुरक्षा समस्याओं की रिपोर्ट भी बाकी समस्याओं की तरह ही करें (ऊपर देखें)।

रिले और सर्वर क्या नहीं कर सकते:

यह किससे नहीं बचाता:

इसकी जाँच कैसे होती है। ख़तरा मॉडल के आधार पर दो आंतरिक समीक्षाएँ (2 नवंबर 2026) और उनके सुधार; हर इवेंट और ब्लॉक क्या दिखाता है, इसके परीक्षण; बाहर से आने वाली हर चीज़ (इवेंट, सील, मैनिफ़ेस्ट, लिंक, बैकअप) को पढ़ने वाले हर हिस्से की फ़ज़िंग। अभी कोई बाहरी ऑडिट नहीं: सार्वजनिक बीटा से पहले एक ऑडिट की योजना है, और उसकी रिपोर्ट पूरी प्रकाशित की जाएगी। Drive अभी विकास के चरण में है।

समर्थित वर्शन

सुरक्षा सुधार नवीनतम रिलीज़ किए गए वर्शन पर लागू किए जाते हैं। प्रोजेक्ट के आकार को देखते हुए, पुराने वर्शन मेंटेन नहीं किए जाते — कृपया रिपोर्ट करने से पहले अपडेट करें।