सत्यापन-योग्य दावे।
यह कोई 'हम सुरक्षित हैं' वाला मार्केटिंग पेज नहीं है, बल्कि सत्यापन-योग्य दावों (SR-N) का एक सेट है, जिनमें से हर एक को आप इनाम के लिए हमारे bug bounty प्रोग्राम में चुनौती दे सकते हैं।
आपके सर्वर तक एक्सेस
SR-1root पासवर्ड एक बार इस्तेमाल होता है और हमारी तरफ़ संग्रहीत नहीं होता।सत्यापित+
पासवर्ड की ज़रूरत केवल पहला SSH कनेक्शन खोलने और एक सर्विस यूज़र इंस्टॉल करने के लिए होती है। इसे हमारे कनेक्शन के लिए SSH प्रमाणीकरण के रूप में पास किया जाता है — किसी स्क्रिप्ट आर्ग्युमेंट या एनवायरनमेंट वेरिएबल के रूप में नहीं। हमारे डेटाबेस में इसके लिए कोई फ़ील्ड नहीं है; यह स्क्रिप्ट-रन एनवायरनमेंट में नहीं जाता और लॉग में नहीं लिखा जाता (कनेक्शन एरर में केवल पता और पोर्ट होते हैं, पासवर्ड कभी नहीं)। इस्तेमाल के बाद इसे मेमोरी में (best-effort) मिटा दिया जाता है — यह बहु-परत सुरक्षा (defense in depth) है, कोई गारंटी नहीं: Go, garbage collection होने तक इस वैल्यू की प्रतियाँ heap पर रख सकता है।
ईमानदार चेतावनी: यह आपके सर्वर पर root पासवर्ड ही बना रहता है। इंस्टॉलेशन के बाद हम SSH पर पासवर्ड और root लॉगिन बंद कर देते हैं, लेकिन पासवर्ड को स्वयं नहीं बदलते — चाहें तो इसे आप खुद बदलें। 'हम इसे संग्रहीत नहीं करते' सच है; 'यह अब गुप्त नहीं रहा' सच नहीं है।
SR-2इंस्टॉलेशन के बाद, पासवर्ड और root SSH लॉगिन बंद कर दिए जाते हैं।सत्यापित+
PasswordAuthentication no, PermitRootLogin no, SSH को एक ग़ैर-मानक पोर्ट पर ले जाया गया (डिफ़ॉल्ट रूप से 12011), fail2ban सक्षम (5 विफलताओं के बाद एक घंटे का बैन), केवल key से लॉगिन। सार्वजनिक key को इस्तेमाल से पहले कड़ाई से मान्य किया जाता है: नई-पंक्तियाँ (authorized_keys में अतिरिक्त keys घुसाने से सुरक्षा) और सिंटैक्स की दृष्टि से अमान्य keys अस्वीकार कर दी जाती हैं।
एंटी-लॉकआउट: पोर्ट 22 तब तक बंद नहीं किया जाता जब तक kernel (ss के ज़रिए) यह पुष्टि न कर दे कि नया SSH पोर्ट वाकई सुन रहा है; कॉन्फ़िग की जाँच sshd -t से और sudo नियम की जाँच visudo -cf से की जाती है, एरर होने पर दोनों वापस पलट (roll back) दिए जाते हैं।
SR-3प्रबंधन key केवल एन्क्रिप्टेड रूप में संग्रहीत होती है।सत्यापित+
पैनल आपके पासवर्ड से नहीं, बल्कि एक अलग key (ed25519) से काम करता है जिसे वह खुद जनरेट करता है। निजी हिस्सा डेटाबेस में AES-256-GCM से एन्क्रिप्टेड रहता है। एन्क्रिप्शन key (KEK) डेटाबेस से अलग संग्रहीत होती है — एक सर्वर एनवायरनमेंट वेरिएबल में — और प्रोडक्शन में यह अनिवार्य है (कोई असुरक्षित डिफ़ॉल्ट नहीं है: KEK के बिना क्रिप्टो सबसिस्टम बस चालू ही नहीं होगा)। यही एन्क्रिप्शन डेटाबेस के भारी सीक्रेट्स की रक्षा करता है — Marzban एडमिन पासवर्ड/token/JWT, Reality keys, पेमेंट-प्रोवाइडर keys, प्रॉक्सी-क्रेडेंशियल cache, बैकअप कॉन्फ़िग।
एन्क्रिप्शन डेटा को केवल छिपाता नहीं बल्कि उसे प्रमाणित भी करता है (GCM auth tag): किसी एन्क्रिप्टेड फ़ील्ड से छेड़छाड़ डिक्रिप्शन के समय पकड़ी जाती है और अस्वीकार कर दी जाती है। हर फ़ील्ड को एक नए यादृच्छिक nonce के साथ एन्क्रिप्ट किया जाता है; KEK की वैल्यू कभी लॉग तक नहीं पहुँचती — केवल उसका छोटा id पहुँचता है।
क्षमता-token (capability tokens) के बारे में: /sub सब्सक्रिप्शन token एक bearer सीक्रेट है। लुकअप के लिए हम केवल उसका SHA-256 संग्रहीत करते हैं, जबकि पहले से जारी किए गए लिंक को दोबारा दिखाने के लिए ज़रूरी प्रति को AES-GCM ciphertext के रूप में रखा जाता है। पुराने plaintext रिकॉर्ड HTTP सर्वर शुरू होने से पहले, fail-closed तरीके से, नए फ़ॉर्मैट में माइग्रेट कर दिए जाते हैं। पेमेंट-webhook URL पहचानकर्ता को सादे रूप में संग्रहीत किया जाता है लेकिन वह अपने आप किसी इवेंट को प्रमाणित नहीं करता: प्रामाणिकता की पुष्टि अलग से एक HMAC हस्ताक्षर द्वारा की जाती है।
SR-4निजी key कभी ब्राउज़र तक नहीं पहुँचती।सत्यापित+
key को केवल सर्वर पर, मेमोरी में डिक्रिप्ट किया जाता है; सामान्य API इसे कभी वापस नहीं देते। इसे पाने का एकमात्र तरीका एक जानबूझकर बनाया गया एक्सपोर्ट फ़ंक्शन है ('अपनी key ले जाएँ'), जो साइन-इन के साथ-साथ एक एक-बार वाले email कोड से सुरक्षित है (कोड केवल एक HMAC हैश के रूप में संग्रहीत होता है, स्थिर समय (constant time) में तुलना की जाती है, 10-मिनट का TTL, 5 प्रयास)। यानी key को जानबूझकर निकाला जा सकता है, लेकिन किसी सामान्य अनुरोध के ज़रिए इसे 'लीक' नहीं किया जा सकता।
SR-5जब कोई सर्वर हटाया जाता है, तो key उसके रिकॉर्ड से सिंक्रोनस रूप से साफ़ कर दी जाती है।सत्यापित+
सर्वर की स्थिति बदलने से पहले और किसी भी बैकग्राउंड नेटवर्क ऑपरेशन से पहले, प्रबंधन key रखने वाले फ़ील्ड सिंक्रोनस रूप से शून्य (zero) कर दिए जाते हैं। यदि डेटाबेस साफ़ किए जाने की पुष्टि नहीं करता, तो ऑपरेशन एक एरर लौटाता है और उसे दोबारा आज़माया जा सकता है। हटाना 'soft' ही रहता है: पंक्ति और ग़ैर-गुप्त सर्विस डेटा सुरक्षित रखे जाते हैं। इसका मतलब पहले से बनाए गए बैकअप का भौतिक मिटाया जाना नहीं है — उनका जीवनचक्र बैकअप रिटेंशन नीति द्वारा नियंत्रित होता है।
SR-16ऑडिट किए गए पार्टनर API एक्सेस को संसाधन के मालिक तक सीमित करते हैं।सत्यापित+
ऑडिट किए गए पार्टनर रूट partner_id के आधार पर प्राधिकरण करते हैं, जिसे सर्वर हस्ताक्षरित लॉगिन token से प्राप्त करता है — न कि उससे जो क्लाइंट ने पथ (path) या body में भेजा। कुछ भी लौटाने या बदलने से पहले, सिस्टम दोबारा जाँचता है कि अनुरोधित सर्वर, क्लस्टर, inbound, रूट, VPN यूज़र या पेमेंट आपके अकाउंट का है; संबंधित डेटाबेस क्वेरी आपके partner_id तक सीमित होती हैं, और स्कीमा (कंपोज़िट यूनीक keys के साथ कंपोज़िट फ़ॉरेन keys) अमान्य क्रॉस-पार्टनर लिंक अस्वीकार कर देती है। आइसोलेशन बहुस्तरीय है: एप्लिकेशन, usecase पुनः-जाँच, एक partner_id फ़िल्टर, और स्कीमा।
ईमानदार चेतावनी: यह अनुरोध-पथ के आर-पार एक कोड ऑडिट द्वारा सत्यापित है, किसी सार्वजनिक पेनिट्रेशन टेस्ट द्वारा नहीं — इसलिए SR-16, बाकी सबकी तरह, bug bounty में खंडन के लिए खुला है।
पैनल के एक्सेस के बारे में ईमानदारी से — यह पूर्ण एडमिन है, 'सीमित' नहीं।ईमानदार टिप्पणी+
सब कुछ स्वचालित रूप से कॉन्फ़िगर करने के लिए (Xray+Reality इंस्टॉल करना, कॉन्फ़िग लागू करना, मेट्रिक्स पढ़ना) पैनल के पास सर्वर पर पूर्ण प्रशासनिक एक्सेस होता है (root-समकक्ष, बिना-पासवर्ड sudo वाले एक सर्विस यूज़र के ज़रिए)। यह प्रबंधन के लिए आवश्यक है, और हम इसे 'सीमित' नहीं कहते।
जोखिम को क्या कम करता है: सीक्रेट्स सर्वर को केवल प्रोसेस के stdin के ज़रिए भेजे जाते हैं (कमांड आर्ग्युमेंट के रूप में नहीं — वे प्रोसेस सूची में नहीं दिखते); शुरुआती इंस्टॉल के बाद, हर प्रबंधन कनेक्शन सर्वर की पिन-की-गई host key सत्यापित करता है — 'बीच में' किया गया सर्वर-स्वैप अस्वीकार कर दिया जाता है। आप क्या नियंत्रित करते हैं: एक्सेस एक ऐसी key पर टिका है जिसे आप किसी भी समय रद्द कर सकते हैं — सर्वर हटाकर (key शून्य कर दी जाती है) या बस अपने होस्ट पर VPS हटाकर (तब सब कुछ ग़ायब हो जाता है)।
आपका डेटा और गोपनीयता
SR-6VPN यूज़र आपके सर्वर पर रहते हैं; हम न्यूनतम सर्विस मेटाडेटा रखते हैं।सत्यापित+
VPN अकाउंट स्वयं (VLESS/Reality) आपके मास्टर सर्वर पर Marzban में बनाए जाते हैं और वहीं रहते हैं। केंद्रीय रूप से हम केवल वही संग्रहीत करते हैं जो एक सब्सक्रिप्शन लिंक जारी करने के लिए आवश्यक है: एक यादृच्छिक सब्सक्रिप्शन token और प्रॉक्सी क्रेडेंशियल का एक एन्क्रिप्टेड snapshot (एक cache; सत्य का स्रोत आपका Marzban है)। हमारे पास कोई ट्रैफ़िक, IP, या यूज़र विज़िट इतिहास नहीं है।
यहाँ एक ईमानदार सूची है कि किन-किन जगहों पर अंतिम उपयोगकर्ता का ईमेल वास्तव में हमारे केंद्रीय डेटाबेस से होकर गुज़रता है: साइन-इन कोड वाला ईमेल हम भेजते हैं, इसलिए पता हमारी भेजने की कतार से गुज़रता है (स्टोरफ्रंट में किसी भी साइन-इन के लिए, मुफ़्त सहित); भुगतान के समय खरीदार का ईमेल भुगतान webhook में आता है और भुगतान लॉग में दर्ज हो जाता है; Telegram जोड़ते समय ईमेल प्रोफ़ाइल में सहेजा जाता है। ये ही एकमात्र संपर्क-बिंदु हैं — सेवागत और आवश्यकतावश; इनमें से कोई भी ट्रैफ़िक या उपयोगकर्ता व्यवहार को नहीं छूता।
इन सेवा-संबंधी डेटा को हम केवल आवश्यक समय तक रखते हैं और स्वतः साफ़ कर देते हैं: ईमेल भेजने के तुरंत बाद भेजने की कतार से हटा दिया जाता है, भुगतान इवेंट का बॉडी संसाधन के बाद, और पुनः प्रयास की प्रतीक्षा कर रहे इवेंट 90 दिनों की अवधि के भीतर। आप सहायता से संपर्क करके अपना अकाउंट, उससे जुड़े डेटा सहित, हटा सकते हैं (विवरण के लिए जोखिम 7 देखें)। हम इसे अस्पष्ट शब्दों के पीछे छिपाने के बजाय खुलकर बताते हैं।
SR-7हम आपके ट्रैफ़िक या विज़िट के लॉग एकत्र नहीं करते, और सर्वर कोई विज़िट जर्नल नहीं रखते।सत्यापित+
CreateYourVPN प्लेटफ़ॉर्म यह जानकारी न प्राप्त करता है और न संग्रहीत करता है कि आप या आपके यूज़र कौन-सी साइटें देखते हैं। मेट्रिक्स-इनजेस्ट स्कीमा बंद है: इसमें IP, डोमेन, या विज़िट के लिए भौतिक रूप से कोई फ़ील्ड नहीं है — केवल समुच्चय (अद्वितीय ऑनलाइन गिनती, कुल bytes, CPU/RAM/लोड)। हर नोड अपने ही id से बंधे एक HMAC token से प्रमाणित होता है और केवल अपने लिए ही मेट्रिक्स लिख सकता है। नोड-पर मौजूद बैलेंसर (HAProxy) SNI के आधार पर एक TCP राउटर की तरह काम करता है और ट्रैफ़िक को डिक्रिप्ट नहीं करता। सर्वर पर स्वयं, सिस्टम जर्नल लगभग एक घंटे से अधिक नहीं रखे जाते और syslog को फ़ॉरवर्ड नहीं किए जाते।
प्लेटफ़ॉर्म स्तर से परे, सर्वर भी कोई विज़िट जर्नल नहीं रखते: हर कॉन्फ़िग पुश पर Xray की access logging ज़बरन बंद कर दी जाती है (प्लेटफ़ॉर्म log.access को none पर सेट करता है), इसलिए edge proxy यह रिकॉर्ड नहीं करता कि उपयोगकर्ता किन पतों से जुड़ते हैं। यह कोड में लागू किया गया है और पूरे fleet में तैनात किया गया है।
SR-8वेब एनालिटिक्स Google Analytics है; कोई अन्य ट्रैकर नहीं है।सत्यापित+
साइट और पैनल का उपयोग कैसे होता है यह समझने के लिए हम Google Analytics लगाते हैं (cookie बैनर cookie और आँकड़ों के संग्रह के बारे में चेतावनी देता है; विवरण गोपनीयता नीति में हैं)। कोई अन्य थर्ड-पार्टी ट्रैकर नहीं है: न Sentry, न PostHog, न Mixpanel, और न कोई विज्ञापन pixel (दोनों फ्रंटएंड में खोजकर सत्यापित)। बैकएंड में बिल्कुल भी कोई थर्ड-पार्टी टेलीमेट्री नहीं है। end-user स्टोरफ्रंट पर एनालिटिक्स बिल्कुल भी नहीं है — न GA, न कोई ट्रैकर (इसके स्रोतों से सत्यापन-योग्य)।
चेतावनी: GA आपका IP (Google की तरफ़) और देखे गए पैनल पेजों के पते प्राप्त करता है; पैनल के URL में केवल एक क्लस्टर पहचानकर्ता होता है, कोई email नहीं।
SR-9पेमेंट बाहरी हैं — हमें पूरा कार्ड नंबर नहीं मिलता।सत्यापित+
पेमेंट और सभी कार्ड डेटा प्रोवाइडर की तरफ़ (Tribute / Lemon Squeezy) संभाले जाते हैं। हमें केवल एक हस्ताक्षरित webhook मिलता है (HMAC-SHA256, स्थिर-समय तुलना, body को पार्स किए जाने से पहले और किसी भी डेटाबेस राइट से पहले सत्यापित: सीक्रेट जाने बिना, कोई इवेंट सत्यापन में विफल हो जाता है)। हमें पूरा कार्ड नंबर (PAN) या CVV नहीं मिलता। उसी webhook का दोबारा भेजा जाना (प्रोवाइडर द्वारा पुनः-प्रयास) दोहरा ग्रांट नहीं कराता — इवेंट डी-डुप्लिकेट कर दिए जाते हैं।
चेतावनी: प्रोवाइडर webhook body में कार्ड मेटाडेटा (ब्रांड और अंतिम 4 अंक) और भुगतानकर्ता का नाम व email शामिल कर सकता है। प्रोसेसिंग पूरी होने तक worker को मूल body की ज़रूरत होती है; सफल प्रोसेसिंग के बाद इसे email संकेत सहित हटा दिया जाता है। पुनः-प्रयास या मैन्युअल समीक्षा की प्रतीक्षा कर रहे इवेंट मूल body को केवल रिटेंशन विंडो के अंत तक (बिना गतिविधि के 90 दिन) रखते हैं, जिसके बाद कार्ड मेटाडेटा और भुगतानकर्ता का email स्वतः मिटा दिया जाता है। 'कोई पूरा कार्ड नंबर नहीं है' सच है, लेकिन यह प्रोवाइडरों का गुण है (हम स्वयं body को फ़िल्टर नहीं करते); 'हम कार्ड के बारे में बिल्कुल कुछ नहीं देखते' सच नहीं है।
हम आपके (पार्टनर के) बारे में क्या संग्रहीत करते हैं, ईमानदारी से।ईमानदार टिप्पणी+
Email (साइन-इन के लिए ज़रूरी), आख़िरी साइन-इन का समय, इंटरफ़ेस मोड; बिलिंग के लिए — बैलेंस और Telegram (टॉप-अप के लिए)। पार्टनर का IP डेटाबेस में संग्रहीत नहीं होता, और हम पैनल में कोई क्लिक या क्रिया इतिहास नहीं रखते (एरर पर एक छोटे access लॉग के अलावा)।
सर्वर हार्डनिंग
SR-10फ़ायरवॉल ज़रूरी चीज़ों को छोड़कर बाकी सब कुछ अस्वीकार कर देता है।सत्यापित+
फ़ायरवॉल डिफ़ॉल्ट रूप से आने वाले कनेक्शन अस्वीकार करता है। बाहर की ओर खुले: 443 (VPN, Xray+Reality), एक ग़ैर-मानक पोर्ट पर SSH (डिफ़ॉल्ट रूप से 12011), और — मास्टर सर्वर पर — Marzban एडमिन पैनल पोर्ट, केवल control-plane IP के लिए। पोर्ट 80 केवल Let's Encrypt मोड में HTTP-01 के लिए अलग से खोला जाता है। SSH स्थानांतरित होने के बाद पोर्ट 22 बंद कर दिया जाता है।
नोड के प्रबंधन पोर्ट केवल मास्टर सर्वर के IP के लिए खुले होते हैं, बाहर की ओर नहीं (इस binding की विफलता इंस्टॉल को रोक देती है)। यदि फ़ायरवॉल सक्रिय नहीं होता, तो इंस्टॉलेशन विफल हो जाता है। ICMP echo केवल IPv4 के लिए सीमित है; हम यह वादा नहीं करते कि सर्वर 'अदृश्य' है, और IPv6 के सही ढंग से काम करने के लिए IPv6 ICMP संरक्षित रखा जाता है।
SR-11स्वचालित सुरक्षा अपडेट।सत्यापित+
Unattended upgrades सुरक्षा पैकेज अपडेट स्वचालित रूप से इंस्टॉल करता है। चेतावनी: स्वचालित reboot जानबूझकर बंद रखा गया है (ताकि कोई असत्यापित kernel अपने आप reboot न हो जाए) — इसका मतलब है कि reboot माँगने वाले फ़िक्स (kernel, कभी-कभी OpenSSH) केवल किसी मैन्युअल या निर्धारित reboot के बाद ही लागू होते हैं। 'ऑटो-पैचिंग' userland के लिए सच है, उसके लिए नहीं जिसे reboot चाहिए।
'अदृश्यता' के बारे में ईमानदारी से — हम इसका दावा नहीं करते।ईमानदार टिप्पणी+
हम यह दावा नहीं करते कि सर्वर 'अदृश्य' है या 'स्कैन नहीं किया जा सकता'। पोर्ट 443 खुला है और किसी भी वेब सर्वर की तरह एक TCP कनेक्शन का जवाब देता है। यह गुण कि 'ग़लत कनेक्शन पर यह एक साधारण असंबंधित वेबसाइट जैसा दिखता है' — Xray के भीतर Reality प्रोटोकॉल द्वारा प्रदान किया जाता है — एक अलग घटक जिसे हम निरपेक्ष रूप में नहीं बदलते।
प्लेटफ़ॉर्म (कंट्रोल पैनल)
SR-12बिना पासवर्ड के अपने CreateYourVPN अकाउंट में साइन-इन।सत्यापित+
पार्टनर साइन-इन email पर भेजे गए एक-बार वाले 6-अंकीय कोड से होता है। कोई अकाउंट पासवर्ड नहीं है। यह प्रबंधित घटकों के आंतरिक क्रेडेंशियल पर लागू नहीं होता, जैसे जनरेट किया गया Marzban एडमिन पासवर्ड। कोड एक क्रिप्टोग्राफ़िक जनरेटर द्वारा बनाए जाते हैं; केवल उनका HMAC हैश संग्रहीत होता है, और तुलना स्थिर-समय में होती है। कोड एक-बार-उपयोग वाला है: सफल होने पर इसे तुरंत हटा दिया जाता है (कोई replay नहीं); 5 ग़लत प्रयासों के बाद इसे समय से पहले रद्द कर दिया जाता है। जारी करने की rate limit प्रति email गिनी जाती है, प्रति IP नहीं — पते बदलकर इसे बायपास नहीं किया जा सकता।
SR-13सेशन सुरक्षित है।सत्यापित+
सेशन token एक HttpOnly और Secure cookie में रहता है (JS इसे नहीं पढ़ सकता), जिसकी पुष्टि बैकएंड पर होती है (केवल edge पर नहीं)। निष्क्रियता पर idle टाइमआउट और ऑटो-लॉगआउट क्लाइंट पर लागू किए गए हैं, सर्वर पर नहीं। token को HS256 से हस्ताक्षरित किया जाता है; सत्यापन पर हम किसी भी अन्य एल्गोरिदम ('none' सहित) को कड़ाई से अस्वीकार करते हैं — क्लासिक एल्गोरिदम-स्वैप हमला पास नहीं होता। स्टोरफ्रंट token और पार्टनर-पैनल token audience के आधार पर अलग किए गए हैं: एक end-user token तकनीकी रूप से पार्टनर API तक नहीं पहुँच सकता (और इसका उलटा भी)। एक हटाया गया पार्टनर जीवित token के साथ भी अस्वीकार कर दिया जाता है।
चेतावनी: निरस्तीकरण (revocation) हर अनुरोध पर यह जाँचकर लागू किया जाता है कि पार्टनर मौजूद है या नहीं, न कि token को स्वयं अमान्य करके; साइन-आउट cookie को हटा देता है, लेकिन जारी किया गया token समाप्ति तक क्रिप्टोग्राफ़िक रूप से मान्य रहता है (एक घंटे तक)। अभी तक कोई केंद्रीकृत निरस्तीकरण सूची नहीं है (एक सोचा-समझा MVP सरलीकरण)।
SR-14token और सीक्रेट्स ब्राउज़र में लीक नहीं होते।सत्यापित+
ब्राउज़र के local storage में कोई token नहीं होते (केवल UI सेटिंग्स); न कोई सीक्रेट और न API पता क्लाइंट बंडल में पहुँचता है। केवल सर्वर (Next.js) ही token को एक HttpOnly cookie में रखता है। ब्राउज़र core से केवल सर्वर के ज़रिए बात करता है (Server Actions): फ्रंटएंड ब्राउज़र से सीधे API को कॉल नहीं करता, और CORS दूसरे origin से API रिस्पॉन्स को ब्राउज़र में पढ़ने की अनुमति नहीं देता।
एक पूर्व निरपेक्ष कथन के बजाय एक स्पष्टीकरण: API डोमेन स्वयं एक सार्वजनिक होस्ट है — तकनीकी रूप से आप इसे ब्राउज़र से खोल सकते हैं, लेकिन सेशन के बिना यह कोई प्राधिकृत डेटा नहीं लौटाता।
SR-15प्लेटफ़ॉर्म के सार्वजनिक डोमेन HTTPS का उपयोग सख़्त सुरक्षा हेडर के साथ करते हैं।सत्यापित+
CreateYourVPN के सार्वजनिक डोमेन HTTPS पर HSTS के साथ परोसे जाते हैं (max-age दो साल, includeSubDomains)। वेब फ्रंटएंड और API डोमेन दोनों सुरक्षा हेडर का एक सख़्त समूह भेजते हैं: एक प्रतिबंधात्मक Content-Security-Policy, X-Content-Type-Options: nosniff, X-Frame-Options, और एक कसी हुई Referrer-Policy (API पर no-referrer; फ्रंटएंड पर strict-origin-when-cross-origin, जो एक प्रतिबंधात्मक Permissions-Policy भी भेजता है)।
यह दोनों डोमेन पर प्रोडक्शन में चालू है और स्वतंत्र रूप से जाँचा जा सकता है — किसी भी HTTP हेडर इंस्पेक्टर या SSL Labs जैसी सेवा से।
जोखिमों के बारे में ईमानदारी से (जिसका हम वादा नहीं करते)
इस खंड के बिना कोई रिपोर्ट मार्केटिंग है। असली सीमाएँ ये हैं:
नियंत्रण पैनल पूरे सर्वर-बेड़े तक की एन्क्रिप्टेड एक्सेस कुंजियाँ संग्रहित करता है। यह स्वाभाविक रूप से सिस्टम का सबसे संवेदनशील घटक है — और हम इसे उसी के अनुरूप सुरक्षित रखते हैं।
इसकी सुरक्षा क्या करती है: भारी सीक्रेट डेटाबेस में केवल साइफरटेक्स्ट के रूप में रहते हैं; एन्क्रिप्शन कुंजी (KEK) डेटाबेस से अलग रखी जाती है; कुंजियाँ कभी भी ब्राउज़र तक नहीं पहुँचतीं; और सर्वर हटाए जाने पर उन्हें शून्य कर दिया जाता है। सब्सक्रिप्शन टोकन के लिए एक अतिरिक्त परत है — हैश-लुकअप (hash lookup) के साथ AES-GCM — इसलिए KEK के बिना डेटाबेस का डंप भी कोई कार्यशील /sub लिंक नहीं रखता।
ईमानदार सीमा: एन्क्रिप्शन डेटाबेस की चोरी से — बैकअप, रेप्लिका या डंप से — विश्वसनीय रूप से रक्षा करता है। यह पैनल के होस्ट के पूर्ण समझौते (compromise) के जोखिम को समाप्त नहीं करता, जहाँ KEK और डेटाबेस दोनों एक ही प्रक्रिया के लिए उपलब्ध होते हैं। इसीलिए हमारी रक्षा का मुख्य केंद्र यही है कि होस्ट पर कब्ज़ा होने ही न दिया जाए: आइसोलेशन, स्वचालित सुरक्षा अपडेट, और न्यूनतम उजागर सतह।
एक समर्पित KMS/HSM आगामी सुरक्षा रिलीज़ों में से किसी एक में आएगा।
जब आप कोई सर्वर जोड़ते हैं, तो हम उससे ठीक एक ही बार जुड़ते हैं — उस अस्थायी पासवर्ड के ज़रिये जो आप दर्ज करते हैं। इसी पहले कनेक्शन पर Man-in-the-Middle (MITM) हमला सैद्धांतिक रूप से संभव होता है। हम इसे कई स्वतंत्र उपायों से निष्क्रिय कर देते हैं, जिससे व्यावहारिक जोखिम शून्य हो जाता है।
पासवर्ड एक बार के उपयोग के लिए होता है: यह ठीक एक कनेक्शन के काम आता है, हमारी ओर कहीं भी संग्रहित नहीं होता और दोबारा कभी उपयोग नहीं किया जाता। निजी कुंजी कभी नेटवर्क पर नहीं भेजी जाती — आगे का प्रमाणीकरण पासवर्ड पर नहीं, बल्कि कुंजी-युग्म (सार्वजनिक-कुंजी प्रमाणीकरण, pubkey) पर आधारित होता है।
सेटअप के तुरंत बाद सर्वर पर पासवर्ड प्रमाणीकरण और root लॉगिन बंद कर दिए जाते हैं, SSH पोर्ट बदल दिया जाता है, और पहुँच केवल कुंजियों तक सीमित कर दी जाती है। उस क्षण से, रोका गया पासवर्ड भी कुछ नहीं खोलता।
हर आगे वाला प्रबंधन कनेक्शन सर्वर के पिन किए गए फ़िंगरप्रिंट की जाँच करता है (host-key pinning) — «बीच में» बदल दिया गया सर्वर अस्वीकृत कर दिया जाता है।
परिणामस्वरूप, अवरोधन केवल उसी हमलावर के लिए संभव होगा जो प्रारंभिक इंस्टॉल के उन चंद सेकंडों के दौरान हमारे और सर्वर के बीच के नेटवर्क मार्ग पर भौतिक रूप से मौजूद हो — और उस चरम स्थिति में भी रोका गया डेटा तुरंत निष्प्रभावी हो जाता है।
यह किसी भी किराए के सर्वर का गुण है, केवल हमारे का नहीं: स्नैपशॉट, रेस्क्यू मोड और इस तरह की चीज़ें प्रदाता के लिए उपलब्ध रहती हैं, और कोई भी सॉफ़्टवेयर इससे रक्षा नहीं करता। दूसरी ओर, एक भरोसेमंद प्रदाता चुनना आपके हाथ में है, और सर्वर पूरी तरह आपका है — आप कभी भी होस्ट बदल सकते हैं या मशीन हटा सकते हैं।
पूर्ण सुरक्षा का वादा कोई नहीं कर सकता — हर सॉफ़्टवेयर में नई कमज़ोरियाँ सामने आती हैं। हम क्या करते हैं: सुरक्षा अपडेट स्वतः इंस्टॉल होते हैं, और जिन सुधारों के लिए रीबूट ज़रूरी है (कर्नेल, कभी-कभी OpenSSH) वे रीबूट के बाद लागू होते हैं — चाहे मैन्युअल हो या निर्धारित (देखें SR-11)।
साइन-इन के लिए आपका ईमेल, और कुछ सेवागत मामलों में अंतिम उपयोगकर्ताओं का ईमेल (देखें SR-6)। इसे केवल आवश्यक समय तक रखा जाता है और स्वतः साफ़ कर दिया जाता है (देखें जोखिम 9)।
चूँकि साइन-इन ईमेल के एक बार वाले कोड पर आधारित है, आपका मेलबॉक्स व्यावहारिक रूप से अकाउंट की कुंजी है — इसे अच्छी तरह सुरक्षित रखना ज़रूरी है। दूसरा फ़ैक्टर अभी नहीं है: इस चरण के लिए यह उचित है, पर इसकी जानकारी रखना अच्छा है।
हम व्यक्तिगत डेटा को ठीक उतने ही समय तक रखते हैं जितना किसी संक्रिया के लिए आवश्यक हो, और उसके बाद उसे स्वतः साफ़ कर देते हैं। संदेश भेजते ही ईमेल कतार से हटा दिया जाता है, और किसी सफल भुगतान इवेंट का कच्चा बॉडी संसाधित होते ही हटा दिया जाता है।
केवल एक चीज़ अधिक समय तक रहती है: वे भुगतान इवेंट जो पुनः प्रयास या मैन्युअल समीक्षा की प्रतीक्षा में हैं। उनका मूल बॉडी अनिश्चित काल तक नहीं, बल्कि बिना किसी गतिविधि के 90 दिनों की अवधि समाप्त होने तक रखा जाता है, जिसके बाद व्यक्तिगत डेटा स्वतः शून्य कर दिया जाता है।
इंटरफ़ेस में स्वयं-सेवा «मेरा डेटा हटाएँ» विकल्प अभी नहीं है — यह योजना में है। इस बीच, आप सहायता से संपर्क करके अपना अकाउंट, उससे जुड़े डेटा सहित, हटा सकते हैं।
एक /sub लिंक मैन्युअल निरस्तीकरण या यूज़र हटाए जाने तक एक स्थायी bearer token है; कोई ऑटो-समाप्ति या रोटेशन नहीं है (एक लीक हुआ लिंक ज़िंदा रहता है)।
यदि आप Google Drive या S3 पर बैकअप एक्सपोर्ट सक्षम करते हैं, तो उपयोगकर्ताओं का डेटा आपके सर्वर से बाहर चला जाता है, और तब उसकी सुरक्षा आपके क्लाउड पर निर्भर करती है — यह रिपोर्ट इसे अलग से कवर नहीं करती। यह आपका सोचा-समझा चुनाव है: यह सुविधा आप स्वयं चालू करते हैं।
इसे कैसे जाँचें।
ऊपर दिया गया हर दावा एक सार्वजनिक दांव है। हम आपको आमंत्रित करते हैं कि आप खोजें कि हम कहाँ ग़लत थे या बढ़ा-चढ़ाकर कहा:
ट्रैक A — क्लासिक भेद्यताएँ (RCE, प्राधिकरण बायपास, IDOR, लीक, इत्यादि)।
ट्रैक B — इस रिपोर्ट का खंडन: साबित करें कि कोई भी SR-N ग़लत है, इनाम पाएँ, और हम सुधार को सार्वजनिक रूप से प्रकाशित करते हैं।
कुछ मिला?
एक पुनरुत्पादनीय proof of concept के साथ हमें लिखें। हम 72 घंटों के भीतर जवाब देते हैं और triage अंदरूनी तौर पर करते हैं।