कई प्रणालियों में GPG कुंजी कैसे प्रबंधित करें?


103

मैं GnuPG का उपयोग करने के लिए नया हूं और यह समझने की कोशिश कर रहा हूं कि इसका उपयोग कैसे करना है। मैंने गैर-तकनीकी लोगों के लिए GPG / PGP के स्पष्टीकरण को समझने के लिए लघु, आसान की समीक्षा की है ? , लेकिन अधिकांश गाइड पीजीपी को एक मशीन के नजरिए से समझाते हैं।

मैं तीन कंप्यूटिंग उपकरणों पर GnuPG का उपयोग करना चाहता हूं: एक लिनक्स पीसी, एक लिनक्स लैपटॉप और एक एंड्रॉइड फोन।

मौलिक उपयोग का मामला IMAP सेवा द्वारा प्रबंधित ईमेल को एन्क्रिप्ट / डिक्रिप्ट कर रहा है, इसलिए सभी उपकरणों को डिक्रिप्शन के लिए एक ही निजी कुंजी की आवश्यकता होती है।

मुझे लगता है कि मेरी पसंद हैं:

  1. बस प्रत्येक डिवाइस पर कीरिंग के लिए मेरी सभी कुंजियों को कॉपी करें और सुरक्षा के लिए मुख्य रूप से निजी कुंजी पासवर्ड पर भरोसा करें।

  2. मेरी पहचान का प्रतिनिधित्व करने के लिए एक मास्टर कुंजी (--gen- कुंजी) बनाएं, फिर ईमेल एन्क्रिप्ट / डिक्रिप्ट करने के लिए एक अलग डिस्पोजेबल कुंजी (फिर से --gen- कुंजी) बनाएं और मास्टर कुंजी के साथ हस्ताक्षरित करें। पूर्व केवल मेरे पीसी पर रहता है, बाद वाले को प्रत्येक डिवाइस पर वितरित किया जाता है। जब तक मेरे मोबाइल उपकरणों से समझौता नहीं किया जाता है, तब तक डिस्पोजेबल कुंजी वैध रहती है।

मैं अत्यधिक पागल हो सकता हूं और इसे और अधिक जटिल बना सकता हूं, लेकिन कृपया मुझे विनोद करें। मेरा मानना ​​है कि अपने सभी अंडे एक टोकरी में नहीं डालें।

मास्टर कुंजी को मेरी डिजिटल पहचान माना जाता है। उस पहचान के इर्द-गिर्द भरोसे का निर्माण करने में बहुत प्रयास किया जाएगा, और मैं लापरवाही से अपनी कुंजी खोने की बजाय अपने व्यामोह की असुविधा को झेलूंगा और एक नई मास्टर कुंजी के आसपास विश्वास का निर्माण करना होगा (शायद यह उतना बुरा नहीं है जितना मैं। सोचो, लेकिन मैं इसके लिए नया हूं)

मैं अपने पीसी से अपने लैपटॉप या अपने फोन को खोने की अधिक संभावना है। यदि नुकसान == समझौता होता है, तो मैं अपने मास्टर की-जोड़ी की तुलना में एक डिस्पोजेबल की-पेयर (जिसे मैं निरस्त कर सकता हूं) खो सकता हूं। मैं हमेशा अपने मास्टर कुंजी का विश्वास एक नई डिस्पोजेबल कुंजी पर दे सकता हूं।

वास्तव में लंबे प्रश्न के लिए क्षमा करें। :-)

टी एल; डॉ

क्या मेरे मास्टर को कई उपकरणों पर निजी कुंजी संग्रहीत करने के लिए पर्याप्त सुरक्षा है?

क्या विकल्प # 2 के लिए मेरी योजना संभव है? क्या मुझे कुछ गलत लगा या इसमें सुधार किया जा सकता है?

यदि विकल्प # 2 एक बुरा विचार है, तो कई उपकरणों में एकल उपयोगकर्ता के लिए GnuPG का उपयोग करते समय सबसे अच्छे अभ्यास क्या हैं?

जवाबों:


59

खैर, यह थोड़ा शर्मनाक है। मैंने इस समस्या का पता लगाने की कोशिश करते हुए एक सप्ताह से अधिक समय बिताया है, और उत्तर उपकुंजियों के साथ झूठ बोलना प्रतीत होता है - एक विषय GnuPG मैनुअल और FAQ ग्लोस ओवर।

यह शोध करते समय कि उप-नब्ज क्या है और इसका उपयोग --gen-key के बजाय क्यों किया जा सकता है, मैंने इस मणि को ठोकर मारी: http://wiki.debian.org/subkeys

डेबियन की विकि बताती है कि उपकुंजियों के साथ मास्टर कुंजी का उपयोग करके विकल्प # 2 (ओपी देखें) को कैसे लागू किया जाए , और आगे बताया गया है कि बैकअप माध्यम (उदाहरण के लिए एक फ्लैश ड्राइव) पर संग्रहीत करने के बाद मास्टर कुंजी को किसी भी सिस्टम से कैसे हटाया जाए। उपकुंजियों को तब प्रत्येक उपकरण पर मेरी कुंजी के बीच वितरित किया जा सकता है।

पेशेवरों:

  1. मुख्य कुंजी की सुरक्षा के लिए पासवर्ड पर मुख्य रूप से भरोसा नहीं करता है,

  2. यदि किसी भी प्रणाली से समझौता किया जाता है, तो मास्टर कुंजी तुरंत उपलब्ध नहीं होती है (जब तक कि मैं मूर्खतापूर्वक मेरे फ्लैश ड्राइव को प्लग इन नहीं करता हूं, या कहा कि ड्राइव को एक समझौता प्रणाली में संलग्न करें)

  3. यह डेबियन विकास टीम द्वारा कार्यान्वित एक अभ्यास है।

  4. GnuPG की उपकुंजी सुविधा का उपयोग करता है। जो आपकी कीरिंग पर ढीली चाबियों का एक गुच्छा होने से थोड़ा अधिक व्यवस्थित लगता है, हाँ?

डेबियन सबकी विकी से प्रासंगिक भाग

  1. अपनी मौजूदा GnuPG फ़ाइलों ($ HOME / .gnupg) का बैकअप बनाएं। उन्हें सुरक्षित रखें। यदि निम्न चरणों के दौरान कुछ गलत हो जाता है, तो आपको एक अच्छी जगह पर लौटने के लिए इसकी आवश्यकता हो सकती है। (नोट: umask 077 बैकअप के लिए प्रतिबंधात्मक अनुमति देगा।)

    • umask 077; tar -cf $HOME/gnupg-backup.tar -C $HOME .gnupg
  2. हस्ताक्षर करने के लिए एक नया उपकुंजी बनाएँ।

    • अपनी मुख्य आईडी ढूंढें: gpg --list-keys yourname
    • gpg --edit-key YOURMASTERKEYID
    • पर gpg>शीघ्र:addkey
    • यह आपके पासफ़्रेज़ के लिए पूछता है, इसे टाइप करें।
    • "RSA (केवल साइन करें)" कुंजी प्रकार चुनें।
    • 4096 (या 2048) बिट कुंजी आकार चुनना बुद्धिमानी होगी।
    • एक एक्सपायरी डेट चुनें (आप मास्टर कुंजी की तुलना में अपनी उपकुंजियों को अधिक बार घुमा सकते हैं, या उन्हें मास्टर कुंजी के जीवन के लिए रख सकते हैं, कोई समाप्ति नहीं)।
    • GnuPG विल (अंततः) एक कुंजी बनाता है, लेकिन ऐसा करने के लिए पर्याप्त एन्ट्रापी पाने के लिए आपको इसका इंतजार करना पड़ सकता है।
    • कुंजी सहेजें: save
  3. आप इसे दोहरा सकते हैं, और यदि आप चाहें तो "आरएसए (केवल एन्क्रिप्ट करें)" उप कुंजी भी बना सकते हैं।

  4. अब $HOME/.gnupgअपने USB ड्राइव पर कॉपी करें।

  5. यहाँ मुश्किल हिस्सा आता है। आपको निजी मास्टर कुंजी को हटाने की आवश्यकता है, और दुर्भाग्य से GnuPG ऐसा करने का एक सुविधाजनक तरीका प्रदान नहीं करता है। हमें उपकुंजी को निर्यात करने, निजी कुंजी को हटाने और उपकुंजी को वापस आयात करने की आवश्यकता है।

    • उपकुंजियों का निर्यात करें: gpg --export-secret-subkeys YOURMASTERKEYID >secret-subkeys( निर्यात करने के लिए उपकुंजियों का चयन करने के लिए, प्रत्येक विस्मयादिबोधक चिह्न के साथ उपकुंजी आईडी निर्दिष्ट करें gpg --export-secret-subkeys SUBKEYID! [SUBKEYID! ..]) :
    • अपनी मास्टर गुप्त कुंजी निकालें: gpg --delete-secret-key YOURMASTERKEYID
    • उपकुंजियों को वापस आयात करें: gpg --import secret-subkeys
    • सत्यापित करें कि आपकी निजी कुंजी के लिए केवल gpg -Kएक के sec#बजाय दिखाता है sec। इसका मतलब है कि गुप्त कुंजी वास्तव में नहीं है। (आउटपुट में एक डमी ओपनपीजीपी पैकेट की उपस्थिति भी देखें gpg --export-secret-key YOURMASTERKEYID | gpg --list-packets)।
    • वैकल्पिक रूप से, उपकुंजियों की रक्षा करने वाले पासफ़्रेज़ को बदलें gpg --edit-key YOURMASTERKEYID passwd:। (ध्यान दें कि निजी मास्टर कुंजी सहित बैकअप पर निजी कुंजी सामग्री, पुराने पासफ़्रेज़ द्वारा संरक्षित रहेगी।)

आपका कंप्यूटर अब सामान्य उपयोग के लिए तैयार है।

जब आपको मास्टर कुंजियों का उपयोग करने की आवश्यकता होती है, तो एन्क्रिप्टेड यूएसबी ड्राइव को माउंट करें, और GNUPGHOME पर्यावरण चर सेट करें:

export GNUPGHOME=/media/something
gpg -K

या उपयोग - कुछ कमांड-लाइन तर्क:

gpg --home=/media/something -K

बाद वाली कमांड को अब आपकी निजी कुंजी को सूचीबद्ध करना चाहिए secऔर नहीं sec#

प्रति मशीन के लिए एकाधिक उपकुंजी बनाम सभी मशीनों के लिए एक एकल उपकुंजी

डेबियन सबकी विकी के अंश। मूल रूप से टिप्पणियों में नोट किया गया। [परिमार्जन] और मेरा जोर

प्रति मशीन में एक उपकुंजी होने का प्रलोभन दिया जा सकता है, ताकि आपको केवल उस मशीन के संभावित समझौता उपकुंजी का आदान-प्रदान करना पड़े। सभी मशीनों पर उपयोग किए जाने वाले एकल उपकुंजी के मामले में, इसे सभी मशीनों पर आदान-प्रदान करने की आवश्यकता है [जब वह एकल उपकुंजी है या समझौता होने का संदेह है]।

लेकिन यह केवल उपकुंजियों पर हस्ताक्षर करने के लिए काम करता है । यदि आपके पास कई एन्क्रिप्शन उपकुंजियाँ हैं, तो gpg को केवल सबसे हालिया एन्क्रिप्शन उपकुंजी के लिए एन्क्रिप्ट करने के लिए कहा जाता है और सभी ज्ञात एन्क्रिप्शन उपकुंजियों के लिए नहीं।


5
अच्छा प्रश्नोत्तर संदेश, जीएसपी डिफ़ॉल्ट रूप से उपयोग किया जाता है, जो नवीनतम नहीं निरूपित की गई कुंजी है। यूआईडी (घर या काम, आदि) के आधार पर प्रेषकों को एक विशिष्ट एन्क उपकुंजी का उपयोग करने के लिए मजबूर करना संभव नहीं है।
कुरजेडीमेटल

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

9

किसी के रूप में जो असफलता के एकल बिंदु (मास्टर कुंजियों और विशेष रूप से पासवर्ड सहित ) को पसंद नहीं करता है , यही वह तरीका है जो मैं इसे करूंगा। यह उपकरणों को विश्वास के एक वेब के माध्यम से संचालित करने की अनुमति देता है, जबकि अभी भी विकेन्द्रीकृत पहचान की अनुमति देता है।

मुझे नहीं पता कि इसके लिए पहले से ही कोई मौजूदा व्यवस्था है, लेकिन मुझे लगता है कि इसे क्रोन जॉब और बैश की कुछ पंक्तियों के साथ एक साथ जोड़ा जा सकता है।

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

संदेशों पर हस्ताक्षर करने के लिए, आप जिस भी उपकरण से संदेश भेज रहे हैं, उस उपकरण की कुंजी का उपयोग करेंगे। यदि कोई आपको संदेश भेजना चाहता है, तो वे इसे आपकी वर्तमान सार्वजनिक समय-सीमा कुंजी के साथ हस्ताक्षर कर सकते हैं। (उनके पास घोषणाओं के साथ रखने के लिए एक स्वचालित प्रणाली होनी चाहिए।) फिर आप किसी भी उपकरण से उनके संदेश को पढ़ सकते हैं।

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

यदि कोई उपकरण चुराया गया है या अन्यथा समझौता किया गया है, तो आप सार्वजनिक रूप से हस्ताक्षरित संदेश बनाने के लिए अपने पहचान पत्र (जो भी माध्यम से, उदाहरण के लिए, उदाहरण के लिए, आप एक सार्वजनिक मीटअप और / या पर होंगे) का उपयोग करके अपने किसी अन्य लोक-विश्वसनीय उपकरण का उपयोग कर सकते हैं। एक विश्वसनीय दोस्त होने के नाते आप व्यक्तिगत रूप से सत्यापित करते हैं) और समझौता किए गए डिवाइस कुंजी और किसी भी समय-सीमा की कुंजी को फिर से प्राप्त करना। कुंजी को वापस करते समय, आप चोरी किए गए डिवाइस को सर्वर की विश्वसनीय डिवाइसों की सूची (पासवर्ड और आपकी विश्वसनीय डिवाइस कुंजी) से भी हटा देते हैं।

नव-घोषित डिवाइस कुंजियों पर भरोसा करने के लिए नीति को वर्तमान विश्वास नीतियों जैसे कुछ का पालन करना चाहिए- मेरा मानना ​​है कि एक उपयुक्त नीति जनरेटिंग सर्वर, एक मोबाइल डिवाइस और एक बड़े और भारी डिवाइस पर भरोसा करना है, क्योंकि यह चोरी / घुसपैठ करना कठिन है। उपयोगकर्ता के फोन, एक डेस्कटॉप पीसी, और उपयोगकर्ता नोटिस से पहले एक संगीत कार्यक्रम में वीपीएस।

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


रिवोकिंग सेक्शन एक छोटे से बादल के रूप में लिखा है - किसी डिवाइस को रिवोक करना किसी अन्य डिवाइस से एक घोषणा के साथ संभव होना चाहिए (ताकि किसी को आपका लैपटॉप चोरी न हो और आपका फोन सीधे सर्वर से संपर्क न कर सके), लेकिन संभव नहीं एक चोर द्वारा किया जाता है (इसलिए उपकरणों में एक पासवर्ड-संरक्षित कुंजी होनी चाहिए जो निरस्त करने के लिए है)। परस्पर विरोधी रिपोर्टों की स्थिति में, सभी कुंजियों को अस्थायी रूप से अविश्वासित किया जाना चाहिए जब तक कि तृतीय पक्ष द्वारा मैन्युअल सत्यापन नहीं किया जा सकता है।
स्टुअर्ट पी। बेंटले

वास्तव में, यह एक उचित सार्वजनिक आधार पर मैन्युअल रूप से अद्यतन (प्रतिस्थापित) है एक मजबूत सार्वजनिक पासवर्ड का उपयोग करते हुए, कुंजी को फिर से शुरू करने के लिए एक और तंत्र के लिए उचित हो सकता है- इस तरह, आप बिना किसी उपकरण के आधार पर कुंजी को रद्द कर सकते हैं (जैसे आप कहते हैं) केवल आपके फ़ोन और किसी व्यक्ति ने इसे चुराया है), जब तक आप पासवर्ड को गुप्त रखते हैं।
स्टुअर्ट पी। बेंटले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.