PGP Suite

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

कुंजी जोड़ा बनाएँ

Curve25519 आधुनिक डिफ़ॉल्ट है: छोटी कुंजियाँ, तेज़ कार्रवाइयाँ, और वही चुनाव जो मौजूदा GnuPG नई कुंजियों के लिए करता है। RSA-4096 तभी चुनें जब दूसरी तरफ़ के टूल इतने पुराने हों कि उन्हें इसकी ज़रूरत पड़े। पासफ़्रेज़ निजी कुंजी को आराम की हालत में एन्क्रिप्ट करता है — अगर कुंजी कहीं रखने वाले हैं तो एक ज़रूर रखें।

पासफ़्रेज़ इस टैब से कभी बाहर नहीं जाता। अगर एक रखकर भूल गए, तो निजी कुंजी वापस नहीं मिल सकती — न हमारे द्वारा, न किसी के द्वारा।

संदेश एन्क्रिप्ट करें

प्राप्तकर्ता की सार्वजनिक कुंजी और संदेश पेस्ट करें। नतीजा सिर्फ़ मेल खाती निजी कुंजी ही खोल सकती है, इसलिए सिफ़रटेक्स्ट उन रास्तों से भी भेजा जा सकता है जिन पर आपको भरोसा नहीं है।

संदेश डिक्रिप्ट करें

अपनी निजी कुंजी, उसका पासफ़्रेज़ और एन्क्रिप्ट किया गया संदेश पेस्ट करें। प्लेनटेक्स्ट यहाँ दिखाई देता है और कहीं और नहीं — वह सहेजा नहीं जाता, इसलिए टैब बंद करने से पहले उसे कॉपी कर लें।

हस्ताक्षर और सत्यापन

क्लियरटेक्स्ट हस्ताक्षर संदेश को पठनीय बनाए रखता है और आपकी सार्वजनिक कुंजी रखने वाले किसी भी व्यक्ति को यह साबित करने देता है कि वह आपका है और बदला नहीं गया है। बाईं ओर अपनी निजी कुंजी से हस्ताक्षर करें; दाईं ओर हस्ताक्षरकर्ता की सार्वजनिक कुंजी से हस्ताक्षरित संदेश सत्यापित करें।

कुंजी का निरीक्षण करें

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

यह टूल OpenPGP.js द्वारा संचालित है, जिसे बिना बदलाव के GNU Lesser General Public License v3.0 या बाद के संस्करण (LGPL-3.0-or-later) के तहत इस्तेमाल किया गया है। पूरा स्रोत कोड OpenPGP.js रिपॉज़िटरी में उपलब्ध है।

यह आपके ब्राउज़र में क्यों रहता है, और यह क्या नहीं कर सकता

PGP तीन दशक इसलिए ज़िंदा रहा क्योंकि उसके भरोसे के मॉडल को किसी सर्वर की ज़रूरत नहीं है: कुंजियाँ उनके मालिक बनाते हैं, एन्क्रिप्शन भेजने वाले की मशीन पर होता है, और डिक्रिप्शन पाने वाले की मशीन पर। हर वेब फ़ॉर्म जो इस आकार को तोड़ता है — अपनी निजी कुंजी अपलोड करें, हम आपके लिए डिक्रिप्ट कर देंगे — ठीक उसी बिचौलिए को फिर से ले आता है जिसे हटाने के लिए PGP मौजूद है, इसलिए यह सुइट उलटी दिशा में बनाया गया है: OpenPGP.js लाइब्रेरी कोड के रूप में एक बार डाउनलोड होती है, और उसके बाद आपकी कुंजियाँ, पासफ़्रेज़, प्लेनटेक्स्ट और सिफ़रटेक्स्ट उस कोड द्वारा आपके टैब में ही संसाधित होते हैं और कभी प्रसारित नहीं होते। यही वजह है कि यहाँ न खाता है, न कुंजियों का भंडार। ऊपर बनाई गई कुंजी, सहेजने तक, सिर्फ़ उसी टेक्स्ट क्षेत्र में मौजूद रहती है जिसमें वह दिखाई दी थी; ईमानदार कार्यप्रवाह यह है कि दोनों हिस्से डाउनलोड करें, निजी कुंजी किसी एन्क्रिप्ट की गई जगह रखें, सार्वजनिक कुंजी वहाँ प्रकाशित करें जहाँ लोग आपको खोजते हैं, और “आपकी कुंजियाँ ऑनलाइन सुरक्षित रखेंगे” का प्रस्ताव देने वाली हर सेवा को इलाज नहीं, ख़तरा समझें। साथी मार्गदर्शिका कमांड लाइन के बिना PGP एन्क्रिप्शन इस कार्यप्रवाह को शुरू से अंत तक समझाती है, जिसमें पहले संदेश से पहले फ़िंगरप्रिंट की जाँच कैसे करें, यह भी शामिल है।

ईमानदार सीमाएँ सुविधाओं जितनी ही महत्वपूर्ण हैं। यह पेज केवल क्लियरटेक्स्ट हस्ताक्षर बनाता है — यह फ़ाइलों पर अलग हस्ताक्षर नहीं करता और फ़ाइलें एन्क्रिप्ट नहीं करता, क्योंकि फ़ाइल टूल को भी अपना इनपुट कभी अपलोड नहीं करना चाहिए, और वह काम जोड़-तोड़ की जगह अपने अलग पेज का हक़दार है। यह कीरिंग का प्रबंधन नहीं करता, कुंजी सर्वरों से कुंजियाँ नहीं लाता, और निरस्तीकरण की जाँच नहीं करता: यहाँ निरीक्षण की गई कुंजी वैसी ही कुंजी है जैसी पेस्ट की गई थी, और उसका फ़िंगरप्रिंट ही वह हिस्सा है जिसे कहीं और सत्यापित करना है। और यह खोया हुआ पासफ़्रेज़ नहीं बचा सकता — डिज़ाइन के अनुसार कोई वसूली नहीं है। सुइट के आस-पास, पड़ोसी टूल पड़ोसी काम संभालते हैं: प्रमाणपत्र और कुंजी मिलानकर्ता TLS प्रमाणपत्रों के लिए वही जोड़-मिलान जाँच करता है, और पासवर्ड जनरेटर वह मज़बूत, अनोखा पासफ़्रेज़ बनाता है जिसका आपकी निजी कुंजी हक़दार है — दोनों, इस पेज की तरह, बिना कुछ भी आपके ब्राउज़र से बाहर गए।

अक्सर पूछे जाने वाले सवाल

क्या यहाँ अपनी निजी कुंजी पेस्ट करना वाकई सुरक्षित है?

इस पेज पर, हाँ — और वजह वादा नहीं, संरचना है। यह पेज डिक्रिप्ट या हस्ताक्षर करते समय कोई नेटवर्क अनुरोध नहीं करता: OpenPGP.js कोड आपके ब्राउज़र टैब में चलता है, कुंजी मेमोरी में इस्तेमाल होती है और कभी प्रसारित, सहेजी या लॉग नहीं होती। आप खुद जाँच सकते हैं: पेज लोड करें, ऑफ़लाइन हो जाएँ, और सब कुछ वैसा ही चलता रहता है। यह सर्वर-पक्षीय “ऑनलाइन PGP” फ़ॉर्म से अलग प्रजाति का टूल है, जहाँ कुंजी सचमुच किसी और की मशीन तक जाती है — जो कुंजी मायने रखती हो, उसके साथ उनका इस्तेमाल कभी न करें।

Curve25519 या RSA-4096 — कौन-सी बनाऊँ?

हर नई चीज़ के लिए Curve25519। यह मौजूदा GnuPG और OpenPGP.js का डिफ़ॉल्ट है, कुंजियाँ और हस्ताक्षर कहीं छोटे होते हैं, निर्माण अभाज्य संख्याओं की खोज के सेकंडों की जगह तुरंत होता है, और कमज़ोर RSA मापदंडों के जाल नहीं हैं। RSA-4096 यहाँ संगतता के लिए है: बहुत पुराने मेल प्लगइन, विरासती HSM कार्यप्रवाह और कुछ उद्यम टूल अब भी दीर्घवृत्त-वक्र कुंजियाँ नहीं पढ़ पाते। अगर आपको यक़ीन नहीं कि आपको RSA चाहिए, तो आपको नहीं चाहिए।

अगर मैं अपनी निजी कुंजी का पासफ़्रेज़ भूल जाऊँ तो क्या होगा?

कुंजी खो जाएगी। पासफ़्रेज़ निजी कुंजी की सामग्री को ही एन्क्रिप्ट करता है, इसलिए उसके बिना गणित कोई नहीं चला सकता — न यह साइट (जिसने उसे कभी देखा ही नहीं), न OpenPGP.js, न GnuPG। यह अंतिमता ही सुरक्षा गुण का डिज़ाइन के अनुसार काम करना है। एक नया कुंजी जोड़ा बनाएँ, नई सार्वजनिक कुंजी प्रकाशित करें, और अगर पहुँच खोना दुख देगा तो पासफ़्रेज़ किसी पासवर्ड मैनेजर में रखें — उसी तरह के स्थानीय टूल से बनाया हुआ, याद करके दोबारा इस्तेमाल किया हुआ नहीं।

सत्यापन कहता है कि हस्ताक्षर मेल नहीं खाता। इसका क्या मतलब है?

इसका मतलब है कि आपके सामने का संदेश बिट-दर-बिट वह संदेश नहीं है जिस पर हस्ताक्षर हुआ था — या हस्ताक्षर ब्लॉक ही रास्ते में ख़राब हो गया। मेल क्लाइंट और चैट टूल पंक्तियाँ फिर से लपेटते हैं, डैश बदल देते हैं और पंक्ति के अंत की खाली जगह खा जाते हैं, और क्लियरटेक्स्ट हस्ताक्षर ठीक-ठीक बाइट्स को कवर करता है, इसलिए आम वजह परिवहन में हुई क्षति है; जानबूझकर किया गया बदलाव सत्यापनकर्ता की कुर्सी से बिल्कुल वैसा ही दिखता है — यही तो हस्ताक्षर का मतलब है। संदेश को फ़ाइल अटैचमेंट के रूप में फिर से माँगें, और अगर सामग्री मायने रखती हो तो फ़िंगरप्रिंट आउट-ऑफ़-बैंड मिलाएँ।

क्या मैं अपनी पहले से मौजूद कुंजियाँ इस्तेमाल कर सकता हूँ — GnuPG, Mailvelope या किसी कुंजी सर्वर से?

हाँ। armored ब्लॉक निकालें (सार्वजनिक कुंजी के लिए gpg --armor --export [email protected], निजी कुंजी के लिए --export-secret-keys) और उसे इस पेज पर कहीं भी पेस्ट करें; निरीक्षक दूसरे OpenPGP सॉफ़्टवेयर की बनाई कुंजियाँ भी पढ़ता है, क्योंकि प्रारूप मानक है, इस साइट का आविष्कार नहीं। उल्टा भी सच है: यहाँ बनाई गई कुंजियाँ GnuPG और हर संगत क्लाइंट में साफ़-सुथरे ढंग से आयात हो जाती हैं, इसलिए यहाँ बनाया गया कुछ भी आपको बाँधता नहीं है।