सिक्योरिटी

    सुरक्षित लिंक से प्राइवेट सर्टिफ़िकेट सुरक्षित तरीके से कैसे शेयर करें

    सर्टिफ़िकेट को उसकी प्राइवेट कुंजी से अलग करें, कुंजी को पासवर्ड वाली PFX में पैक करें, वन-टाइम लिंक से भेजें और पासवर्ड अलग से भेजें।

    LinkPilot Team · TetraCore, LLC में LinkPilot को बनाने और चलाने वाले लोग · LinkPilot के बारे में

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

    प्राइवेट सर्टिफ़िकेट को सुरक्षित लिंक से ठीक तरह शेयर करने के लिए पहले पता करें कि असल में कौन-सा हिस्सा चाहिए। फिर प्राइवेट कुंजी को ऐसे पैक करें कि पासवर्ड के बिना वह बेकार हो, फ़ाइल को ऐसे वन-टाइम लिंक से भेजें जो एक बार डाउनलोड होते ही मिट जाए, और पासवर्ड किसी और रास्ते से भेजें। यह गाइड हर स्टेप को कमांड के साथ समझाती है।

    सर्टिफ़िकेट सार्वजनिक है, कुंजी नहीं

    सर्टिफ़िकेट में एक पब्लिक कुंजी, वह सब्जेक्ट जिसके लिए यह जारी हुआ, जारी करने वाला और वैधता की तारीखें होती हैं। इसे बांटने के लिए ही बनाया गया है; आपकी साइट से जुड़ने वाले हर ब्राउज़र को यह मिलता है। प्राइवेट कुंजी अलग गोपनीय जानकारी है, जो साबित करती है कि सर्टिफ़िकेट आपका है। जिसके पास यह कुंजी है, वह आपके लिए आया ट्रैफ़िक डिक्रिप्ट कर सकता है, आपके नाम से साइन कर सकता है, या ऐसा सर्वर खड़ा कर सकता है जो खुद को आप बताए।

    इसलिए पहला सवाल यह है कि प्राप्तकर्ता को कुंजी की ज़रूरत है भी या नहीं।

    प्राप्तकर्ता क्या करना चाहता हैउसे क्या चाहिएसंवेदनशील?
    आपकी सर्विस पर भरोसा करना या सिग्नेचर जांचनासर्टिफ़िकेट (और शायद CA चेन)नहीं
    अपने चलाए सर्वर या डिवाइस पर TLS इंस्टॉल करनासर्टिफ़िकेट, चेन और प्राइवेट कुंजीहां
    आपके संगठन के नाम से कोड या डॉक्यूमेंट साइन करनासर्टिफ़िकेट और प्राइवेट कुंजीहां, बहुत ज़्यादा
    क्लाइंट सर्टिफ़िकेट से किसी सिस्टम में लॉगिन करनासर्टिफ़िकेट और प्राइवेट कुंजीहां

    अगर जवाब पहली पंक्ति है, तो .crt या .cer फ़ाइल किसी भी तरह भेज दें। आगे पढ़ने की ज़रूरत नहीं। आगे का सब कुछ उन पंक्तियों के लिए है जिनमें कुंजी को भेजना पड़ता है।

    भेजने से पहले देखें कि फ़ाइल में क्या है

    एक्सटेंशन पर भरोसा नहीं किया जा सकता। .pem में सर्टिफ़िकेट, कुंजी या दोनों हो सकते हैं। .pfx या .p12 में आमतौर पर सर्टिफ़िकेट, चेन और कुंजी एक पासवर्ड के पीछे बंडल होते हैं। भेजने से पहले जांच लें:

    # what is in this PEM?
    openssl x509 -in cert.pem -noout -subject -issuer -dates
    grep -c "PRIVATE KEY" cert.pem        # 0 means no key inside
    
    # what is in this PFX? (prompts for the password)
    openssl pkcs12 -in bundle.pfx -info -noout
    

    पक्का करें कि सब्जेक्ट वही है जो प्राप्तकर्ता ने मांगा था और एक्सपायरी की तारीख अभी आगे है। गलत सर्टिफ़िकेट भेज देना आम बात है; गलत सर्टिफ़िकेट उसकी कुंजी के साथ भेज देना सुरक्षा में सेंध है।

    कुंजी को ऐसे पैक करें कि अकेले वह बेकार हो

    अगर कुंजी भेजनी ही है, तो उसे कभी खुला न भेजें। उसे ऐसे फ़ॉर्मैट में रखें जो एक पासवर्ड से एन्क्रिप्ट हो, और वह पासवर्ड अलग से भेजें।

    # bundle certificate, chain and key into a password-protected PFX
    openssl pkcs12 -export -out service.pfx \
      -inkey service.key -in service.crt -certfile chain.crt
    
    # or encrypt a PEM key on its own
    openssl pkey -in service.key -aes-256-cbc -out service.enc.key
    

    पासवर्ड मैनेजर से बनाया गया लंबा पासवर्ड इस्तेमाल करें। पासवर्ड दूसरा फ़ैक्टर है: जिसके हाथ फ़ाइल लगे, वह भी उसे इस्तेमाल नहीं कर सकता, और जिसके हाथ पासवर्ड लगे, उसके पास उसे लगाने के लिए कुछ नहीं होता।

    लिंक डिलीवरी का स्टेप है, और मकसद यह है कि बाद में किसी भी मैसेज में फ़ाइल की कोई कॉपी न बचे।

    1. प्राप्तकर्ता की पुष्टि करें किसी ऐसे स्रोत से जिस पर आप पहले से भरोसा करते हैं: टिकट, रिकॉर्ड में दर्ज वेंडर संपर्क, या फ़ोन कॉल। किसी अनजान पते से सर्टिफ़िकेट की मांग आए, तो जवाब देने के बजाय फ़ोन करें।
    2. फ़ाइल अटैच करके सीक्रेट लिंक बनाएं। साइन इन किए हुए LinkPilot अकाउंट में “Secret Links” खोलें, “New” चुनें और PFX या एन्क्रिप्ट की हुई PEM फ़ाइल अटैच करें। हर फ़ाइल की सीमा 9 MB है, जो किसी भी कुंजी बंडल से हज़ारों गुना ज़्यादा है। अटैचमेंट अपलोड से पहले आपके ब्राउज़र में ही एन्क्रिप्ट होता है और पहली बार डाउनलोड होते ही मिट जाता है।
    3. एक्सपायरी असली ज़रूरत के हिसाब से रखें। अगर प्राप्तकर्ता इंतज़ार कर रहा है तो एक घंटा, अलग-अलग टाइम ज़ोन हों तो 24 घंटे। एक बार का डाउनलोड मुख्य कंट्रोल है; एक्सपायरी उस लिंक के लिए बचाव है जिसे कोई नहीं खोलता।
    4. व्यू लिमिट एक रखें। अगर दो इंजीनियरों को बंडल चाहिए, तो दोनों को अपना-अपना लिंक मिले।
    5. Pro अकाउंट पर लिंक में पासफ़्रेज़ जोड़ें, अगर लिंक ऐसे चैनल से जाएगा जिसे दूसरे लोग भी देख सकते हैं।
    6. लिंक भेजें एक लाइन के संदर्भ के साथ: कौन-सा सर्टिफ़िकेट, कौन-सा सिस्टम, कब एक्सपायर होगा।
    7. फ़ाइल का पासवर्ड किसी दूसरे रास्ते से भेजें। SMS, फ़ोन कॉल, या किसी दूसरे रास्ते से भेजा गया दूसरा सीक्रेट लिंक। फ़ाइल वाले लिंक के साथ उसी मैसेज में कभी नहीं, और फ़ाइल के नाम में भी कभी नहीं।

    अगर कुंजी PEM टेक्स्ट है और छोटी है, तो फ़ाइल अटैच करने के बजाय उसे सीधे मुफ़्त सीक्रेट लिंक टूल में पेस्ट कर सकते हैं। टेक्स्ट भी उसी तरह आपके ब्राउज़र में एन्क्रिप्ट होता है और पहली बार खुलते ही मिट जाता है।

    प्राप्तकर्ता को बताएं कि इसका क्या करना है

    इंस्टॉलेशन के निर्देश संदर्भ वाले मैसेज के साथ भेजें, पासवर्ड के साथ नहीं:

    • कौन-सी फ़ाइल आएगी, उसका फ़ॉर्मैट क्या है और वह किस सिस्टम पर लगेगी।
    • उसे कहां रखना है: सर्वर की सर्टिफ़िकेट डायरेक्टरी में, जिसकी अनुमतियां सर्विस अकाउंट तक सीमित हों, या OS के सर्टिफ़िकेट स्टोर में। Downloads फ़ोल्डर या साझा ड्राइव में नहीं।
    • इम्पोर्ट के बाद डाउनलोड की गई कॉपी मिटा दें, और उसे कभी किसी रिपॉज़िटरी में कमिट न करें।
    • मिलने की पुष्टि करें फ़ाइल के नाम और फ़िंगरप्रिंट से, फ़ाइल वापस भेजकर कभी नहीं:
    openssl x509 -in service.crt -noout -fingerprint -sha256
    

    इसके बाद

    देखें कि लिंक “revealed” (खोला गया) दिखा रहा है और प्राप्तकर्ता पुष्टि करता है कि फ़िंगरप्रिंट मेल खाता है। Pro अकाउंट में ऑडिट टाइमलाइन पर डाउनलोड का सटीक समय दिखता है। अगर लिंक प्राप्तकर्ता के पहुंचने से पहले खुल गया, या फ़ाइल गलत पते पर चली गई, तो दुरुपयोग के सबूत का इंतज़ार न करें: जारी करने वाले CA से सर्टिफ़िकेट रिवोक करवाएं, नई कुंजी जोड़ी बनाएं, सर्टिफ़िकेट दोबारा जारी करवाएं, और जहां-जहां पुराना सर्टिफ़िकेट लगा है, वहां उसे बदल दें।

    दर्ज करें कि किसे कौन-सा सर्टिफ़िकेट कब मिला। यह रिकॉर्ड संभालकर रखें। फ़ाइल उन्हीं सिस्टम पर होनी चाहिए जिन्हें उसकी ज़रूरत है, बीच में कहीं नहीं।

    इस लेख के लिए टूल

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

    LinkPilot ऐसा सीक्रेट लिंक भेजता है जो खुलने के बाद मिट जाता है।

    आपके ब्राउज़र में ही एन्क्रिप्ट होता है, एक बार दिखता है और फिर हमेशा के लिए मिट जाता है। अकाउंट बनाने की ज़रूरत नहीं।

    सीक्रेट लिंक बनाएं

    आगे पढ़ें

    सिक्योरिटी

    डेवलपर को कॉन्फ़िग फ़ाइल सुरक्षित तरीके से कैसे भेजें

    सेटिंग्स और सीक्रेट अलग करें, सीक्रेट वैल्यू वन-टाइम लिंक या एक डाउनलोड के बाद मिटने वाले अटैचमेंट से भेजें, और .env को git से बाहर रखें।

    सिक्योरिटी

    रिमोट टीमों में सुरक्षित सीक्रेट शेयरिंग कैसे लागू करें

    रिमोट टीमों में सुरक्षित सीक्रेट शेयरिंग पांच स्टेप में: सूची, ज़रूरत के हिसाब से वॉल्ट या वन-टाइम लिंक, तीन नियम, Slack में टूल और लीक की योजना।

    सिक्योरिटी

    टीमों के बीच क्रेडेंशियल सुरक्षित तरीके से कैसे सौंपें

    टीमों के बीच क्रेडेंशियल सुरक्षित तरीके से सौंपें: इस्तेमाल के हिसाब से वॉल्ट या वन-टाइम लिंक चुनें, दायरा सीमित करें, ज़िम्मेदार तय करें, समय पर वापस लें।