सुरक्षा की समीक्षा करने वालों के लिए तकनीकी विवरण। यहाँ लिखी हर बात स्रोत कोड से मिलाकर जाँची जा सकती है — उन हिस्सों समेत जो हमारे पक्ष में नहीं हैं और जिन्हें हम छिपाने के बजाय साफ़ लिखते हैं।
कोई बैकएंड नहीं है। यह एक Manifest V3 क्रोम एक्सटेंशन है जो TOTP/HOTP कोड OTPAuth की मदद से डिवाइस पर ही बनाता है। हम कोई सर्वर नहीं चलाते, कोई खाता नहीं रखते, और ऐसा कोई रास्ता ही नहीं है जिससे उपयोगकर्ता का डेटा हम तक पहुँच सके।
जब सर्वर ही नहीं है, तो सर्वर पर कुंजी सामग्री, कुंजी एस्क्रो या हमारे नियंत्रण वाला कोई रिकवरी रास्ता भी नहीं है। यदि उपयोगकर्ता पासवर्ड भूल जाए और रिकवरी कोड भी खो दे, तो हम कुछ नहीं कर सकते — यह डिज़ाइन का हिस्सा है।
पासवर्ड सुरक्षा वैकल्पिक है और डिफ़ॉल्ट रूप से बंद रहती है। चालू होने पर:
डेटा को पासवर्ड से बनी कुंजी से सीधे कभी एन्क्रिप्ट नहीं किया जाता। रिकॉर्ड एक यादृच्छिक मास्टर कुंजी से एन्क्रिप्ट होते हैं; PBKDF2 का आउटपुट सिर्फ़ उस मास्टर कुंजी को लपेटता है। इससे दो नतीजे निकलते हैं, और दोनों मायने रखते हैं:
पासवर्ड सुरक्षा चालू होने पर खाते का पूरा रिकॉर्ड एन्क्रिप्ट होता है, सिवाय उसके पहचानकर्ता और फ़िंगरप्रिंट के — सेवा का नाम भी इसमें शामिल है, ताकि चोरी हुई प्रोफ़ाइल से यह पता न चले कि उपयोगकर्ता के खाते किन सेवाओं पर हैं। चालू करते समय एक्सटेंशन रिकॉर्ड एन्क्रिप्ट करता है, उन्हें डिक्रिप्ट करके मिलान से जाँचता है, और उसके बाद ही हर सादा प्रति हटाता है: ब्राउज़र का लोकल स्टोरेज, सिंक और सातों घूमते बैकअप स्नैपशॉट।
साफ़-साफ़ कह रहे हैं, क्योंकि आपके आकलन के लिए यह अहम है:
संक्षेप में: यह निष्क्रिय अवस्था में रखे डेटा की रक्षा करता है। जो डिवाइस इस्तेमाल के समय पहले से ही हमलावर के नियंत्रण में है, उसकी रक्षा यह नहीं करता, और कर भी नहीं सकता।
मैनिफ़ेस्ट पाँच अनुमतियाँ घोषित करता है और कोई होस्ट अनुमति नहीं:
यहाँ कोई कंटेंट स्क्रिप्ट नहीं है हैं, tabs, cookies या webRequest अनुमतियाँ नहीं हैं, और कोई web-accessible resources नहीं हैं। जब तक आप वहाँ कोड नहीं माँगते, किसी पेज पर हमारा कुछ भी मौजूद नहीं होता; उस समय जो चलता है वह उसी एक टैब और उसी एक बार के लिए इंजेक्ट होता है, उसी अनुमति के तहत जो आपका अपना क्लिक देता है, और पीछे कुछ नहीं छोड़ता।
कैमरे से QR स्कैन करना पॉपअप में नहीं, बल्कि टैब में खुले एक्सटेंशन पेज पर चलता है — पॉपअप फ़ोकस हटते ही नष्ट हो जाता है, और अनुमति का संवाद ठीक यही करता है। इसके लिए मैनिफ़ेस्ट में किसी अनुमति की ज़रूरत नहीं: यह ब्राउज़र का सामान्य कैमरा अनुरोध इस्तेमाल करता है, जो एक्सटेंशन के ऑरिजिन पर दिया जाता है और साइट सेटिंग्स से वापस लिया जा सकता है, और जब तक उपयोगकर्ता स्कैनर न खोले तब तक कभी नहीं माँगा जाता। वीडियो डिवाइस पर ही डिकोड होता है और कभी भेजा या सहेजा नहीं जाता।
घड़ी की जाँच ही एकमात्र अनुरोध है जो एक्सटेंशन अपने आप भेजता है; बाकी सब कुछ तभी होता है जब उपयोगकर्ता खुद कहीं क्लिक करता है। Manifest V3 रिमोट कोड पर रोक लगाता है, और इनमें से कोई भी खाते, गुप्त कुंजियाँ या बने हुए कोड नहीं ले जाता। पूरी सूची:
| होस्ट | कब | क्या उपयोगकर्ता डेटा जाता है? |
|---|---|---|
| time.akamai.com timeapi.io cloudflare.com | घड़ी के अंतर की जाँच, कैश के साथ; कोई भी स्रोत न मिले तो सेटिंग्स में यह लिखा होता है। घड़ी खिसकी हो तो TOTP टूट जाता है। | नहीं |
| authenticator.sh | इंस्टॉल पर स्वागत पेज; अनइंस्टॉल पर प्रतिक्रिया पेज; पॉपअप से खोले जाने पर सहायता और सपोर्ट पेज। | नहीं (सामान्य वेब सर्वर लॉग) |
| chromewebstore.google.com | स्टोर लिस्टिंग, क्लिक करने पर ही नए टैब में: रेटिंग के संकेत से समीक्षा फ़ॉर्म, क्रॉस-प्रोमो बैनर से हमारा पासवर्ड मैनेजर। | नहीं (Google को यह किसी भी दूसरे स्टोर पेज जैसी ही विज़िट दिखती है) |
| authenticator.featurebase.app | सार्वजनिक फ़ीचर बोर्ड, सपोर्ट पट्टी में फ़ीचर माँगने वाले लिंक से नए टैब में खुलता है। | सिर्फ़ वही जो उपयोगकर्ता वहाँ पोस्ट करे। तृतीय-पक्ष सेवा, अपनी अलग शर्तों के साथ। |
कोई फ़ॉन्ट, स्क्रिप्ट, स्टाइल या छवि तृतीय-पक्ष होस्ट से लोड नहीं होती। इंटरफ़ेस दिखाने के लिए जो भी चाहिए, वह पैकेज के भीतर ही आता है।
ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। एक्सटेंशन ओपन सोर्स है और हर रिलीज़ दोबारा बनाई जा सकती है:
.crx डाउनलोड करके उसे अनज़िप करेंnpm ci && npm run build चलाएँdist/ की तुलना अनज़िप किए पैकेज से करेंबनी हुई dist/ की हर फ़ाइल का SHA-256 हर GitHub रिलीज़ के साथ SHA256SUMS-v<version>.txt नाम से, sha256sum प्रारूप में प्रकाशित होता है — इसलिए चरण 4 सिर्फ़ एक बार sha256sum -c चलाने जितना रह जाता है। अंतर केवल आर्काइव के भीतर फ़ाइलों के क्रम और Node की अलग पैच रिलीज़ में मिनिफ़ाइड आउटपुट के ख़ाली स्थान तक सीमित होने चाहिए।
रनटाइम निर्भरताएँ जानबूझकर बहुत कम हैं — OTPAuth, React, jsQR, Zustand, Framer Motion और Lucide — और कमिट की गई लॉकफ़ाइल से तय हैं। CycloneDX प्रारूप में SBOM माँगने पर उपलब्ध है।
स्रोत कोड देखेंहम एक छोटे स्वतंत्र विक्रेता हैं। यदि नीचे में से कुछ भी आपकी प्रक्रिया के लिए अनिवार्य है, तो मूल्यांकन के तीन हफ़्ते बाद पता चलने से बेहतर है कि अभी पता चल जाए:
इनके बदले हम जो देते हैं वह है स्रोत कोड की पूरी पारदर्शिता, जाँची जा सकने वाली बिल्ड, न्यूनतम अनुमतियाँ, और ऐसा कोई सर्वर ढाँचा ही नहीं जो आपका डेटा रख सके।
सुरक्षा खामियों की सूचना और सुरक्षा से जुड़े सवाल: security@authenticator.sh। हमारी प्रकटीकरण नीति, दायरा, प्रतिक्रिया समय और सेफ़ हार्बर शर्तें सुरक्षा नीति पेज पर हैं; क्या सहेजा जाता है और डिवाइस से क्या बाहर जाता है, यह गोपनीयता नीति में लिखा है।
हम विक्रेता आकलन की लिखित प्रश्नावली भरने या किसी सुरक्षा टीम के साथ कोड पर चलकर बात करने को तैयार हैं।
जो कुछ भी सुरक्षा का मामला नहीं है — इंस्टॉलेशन, खाता वापस पाना, तैनाती से जुड़े बिलिंग सवाल — उसके लिए सहायता देखें। कृपया सुरक्षा खामियों की सूचना वहाँ न भेजें; वह इनबॉक्स गोपनीय नहीं माना जाता।