SSH चाबियाँ सिर्फ सादा RSA, DSA या ECDSA असममित कुंजी जोड़े हैं। ओपनएसएसएच द्वारा उत्पन्न इस तरह की एक कीपर का उपयोग पहले से ही ओपनएसएसएल और अधिकांश अन्य कार्यक्रमों द्वारा किया जा सकता है।
( .pub
फ़ाइल आउटपुट ssh-keygen
ओपनएसएसएच-विशिष्ट प्रारूप में है, लेकिन यह "निजी" फ़ाइल के बाद से अप्रासंगिक है, जिसमें पहले से ही निजी और सार्वजनिक दोनों कुंजी हैं।)
अन्य SSH सॉफ़्टवेयर के अपने स्वयं के संग्रहण प्रारूप हो सकते हैं, जैसे RFC 4716 या PuTTY का PPK , लेकिन वे समान RSA / DSA / ECDSA जानकारी संग्रहीत करते हैं।
X.509 (SSL, S / MIME द्वारा प्रयुक्त) थोड़ा और अधिक जटिल है: "निजी" कुंजी अभी भी समान है, लेकिन एक नंगे सार्वजनिक-कुंजी फ़ाइल के बजाय आपके पास "प्रमाणपत्र" है - ASN.1 संरचना जिसमें सार्वजनिक कुंजी, विषय और जारीकर्ता के नाम, वैधता दिनांक। X.509 v3 प्रमाणपत्र में, "कुंजी उपयोग" और "वैकल्पिक विषय नाम" जैसे एक्सटेंशन मौजूद होंगे। पूरे प्रमाण पत्र को जारीकर्ता की कुंजी (या यदि कोई अलग से जारीकर्ता न हो तो स्व-हस्ताक्षरित) द्वारा हस्ताक्षरित किया जाता है।
आप SSH के लिए एक X.509 "निजी कुंजी" फ़ाइल का उपयोग आसानी से कर सकते हैं - ओपनएसएसएच यहां तक कि एक ही प्रारूप का उपयोग करता है।
आप एक साधारण कीपर से X.509 प्रमाणपत्र बना सकते हैं और फिर उसे स्व-साइन कर सकते हैं, या आप एक "प्रमाणपत्र अनुरोध" बना सकते हैं और इसे CA (प्रमाणीकरण प्राधिकारी) द्वारा हस्ताक्षरित करने के लिए सबमिट कर सकते हैं।
X.509 प्रमाणपत्र में जानकारी प्रदर्शित करने के लिए, उपयोग करें:
certtool -i < foo.pem
certtool -i --inder < foo.crt
openssl x509 -noout -text < foo.pem
openssl x509 -noout -text -inform der < foo.crt
( certtool
GnuTLS का हिस्सा है।)
OpenPGP (GPG द्वारा उपयोग की जाने वाली) कुंजियाँ सबसे जटिल हैं। जिसे आप "PGP कुंजी" या "PGP कीपर" कहते हैं, एक जटिल संरचना है जिसे "OpenPGP प्रमाणपत्र" कहा जाता है:
- एक "प्राथमिक कुंजी" - एक असममित कुंजी जोड़ी, आमतौर पर हस्ताक्षर करने के लिए उपयोग की जाती है
- एक या अधिक "उपयोगकर्ता आईडी" - पाठ लेबल, आमतौर पर "नाम <ईमेल @ पता>" के रूप में
- उनमें से कम से कम एक को "प्राथमिक उपयोगकर्ता आईडी" के रूप में चिह्नित किया गया है
- प्रत्येक उपयोगकर्ता आईडी के लिए, एक "स्व-हस्ताक्षर" - अपने स्वयं के प्राथमिक कुंजी द्वारा हस्ताक्षर
- प्रत्येक उपयोगकर्ता आईडी के लिए, अन्य उपयोगकर्ताओं द्वारा शून्य या अधिक "हस्ताक्षर"
- स्व-हस्ताक्षर के पैकेट में आपके पसंदीदा एल्गोरिदम (SHA-1, AES, आदि) भी होते हैं।
- एक या अधिक "उपकुंजियों" - अतिरिक्त प्रमुख जोड़े, पहला आमतौर पर एन्क्रिप्शन के लिए है
- प्रत्येक उपकुंजी के लिए, प्राथमिक कुंजी द्वारा एक हस्ताक्षर
- शून्य या अधिक "फोटो आईडी" - जेपीईजी या पीएनजी संलग्नक जिसमें आपका चेहरा है
- उपयोगकर्ता आईडी के रूप में उसी तरह हस्ताक्षर किए
- शून्य या अधिक X.509 प्रमाणपत्र
सभी कीपियों में समाप्ति तिथि और उपयोग बिट्स हैं: साइन डेटा, प्रमाणित (साइन) कुंजी, एन्क्रिप्ट, सेवाओं के लिए प्रमाणित। डिफ़ॉल्ट रूप से प्राथमिक कुंजी में "साइन" और "प्रमाणित" बिट्स होते हैं और पहली उपकुंजी "एन्क्रिप्ट" करने के लिए है। यदि आप "प्रमाणीकरण" उपकुंजी जोड़ते हैं, तो आप gpg-agent
एसएसएच प्रमाणीकरण के लिए इसका उपयोग कर सकते हैं ।
यह देखने के लिए कि आपके प्रमाणपत्र में क्या है:
gpg --export joe@example.com | gpg -vv
gpg --export joe@example.com | certtool --pgp-certificate-info
( certtool
GnuTLS का हिस्सा है।)
एक कम भ्रामक स्थिति ओपनपीजीपी में है: सभी डेटा एक ही बाइनरी प्रारूप का अनुसरण करते हैं, और वैकल्पिक रूप से "बख्तरबंद" (रेडिक्स 64 के साथ और पीईएम जैसे हेडर के बीच एन्कोडेड) है।