रूस के अधिकृत प्रमाणन प्राधिकरणों के मूल और मध्यवर्ती प्रमाण पत्र

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

लंबे समय से मैं अधिकारियों के जवाबों के हस्ताक्षरों के सत्यापन को स्वचालित करना चाहता था (मैं बहुत कुछ करता हूं) और प्रामाणिकता (सार्वजनिक गतिविधि की प्रकृति द्वारा) के लिए रोसकोमनादज़ोर के "अनलोडिंग" का सत्यापन। सबसे बड़ी समस्या थी चेन से इंटरमीडिएट सर्टिफिकेट हासिल करना। क्योंकि संचार मंत्रालय की वेबसाइट पर रूट सीए की एक स्लेटेड एक्सेल फाइल थी और वह सब है। और मध्यवर्ती लोगों को संबंधित सीए की साइटों पर खोजा जाना था। जीवन एक पीड़ा है।
"मध्यवर्ती प्रमाण पत्र" क्या हैं । मुझे याद दिलाएं कि यह कैसे काम करता है। मान लीजिए हम कुछ हस्ताक्षरित पत्र की जांच करना चाहते हैं। पत्र एक कुंजी के साथ हस्ताक्षरित है। एक प्रमाण पत्र है जो इस कुंजी को प्रमाणित करता है। प्रमाण पत्र किसी के द्वारा जारी किया गया था और संलग्न प्रमाण पत्र के साथ कुछ कुंजी द्वारा हस्ताक्षरित भी किया गया था। और वह प्रमाण पत्र बिलकुल एक जैसा है। और इसलिए जब तक प्रमाण पत्र जारी नहीं किया जाता है। जांच करते समय, हमारे पास (अंतिम, पैकेज से वितरित, हमें फ्लैश ड्राइव दिया गया था) इन अंतिम प्रमाणपत्रों का एक निश्चित सेट है, जिसे हम मानते हैं। हम विश्वास करते हैं क्योंकि हम उस पर विश्वास करते हैं जिसने उन्हें हमें दिया है। वेब की दुनिया में, हम ब्राउज़र और इसके मूल प्रमाण पत्रों के सेट पर भरोसा करते हैं। वेब की दुनिया में, HTTPS के माध्यम से कनेक्ट करते समय, मध्यवर्ती प्रमाणपत्र भी सर्वर से क्लाइंट में स्थानांतरित हो जाते हैं। इसलिए, वेब की दुनिया में, हमारे पास हमेशा पूरी श्रृंखला होती है।
अचानक (मुझे ठीक से पता नहीं है कि कब और कहां) राज्य सेवा की वेबसाइट पर ऐसा लिंक दिखाई दिया:
e-trust.gosuslugi.ru/CA

मैंने जल्दबाजी में एक प्रोग्राम लिखा जो इस साइट से सीएएम और प्रमाणपत्रों की सूची के साथ एक्सएमएल फ़ाइल को परिचित पीईएम प्रारूप में बदल देता है।

फिर मैंने इसे स्वचालित किया और * NIX दुनिया से परिचित रूप में लगातार बनाए रखा प्रमाणपत्र भंडार मिला।

GOST एन्क्रिप्शन


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

खैर, 2018 में हमारे पास डॉकर है, और अल्पाइन लिनक्स में, जैसा कि मैंने उल्लेख किया है, सब कुछ काम करता है।

इसका उपयोग कैसे करें


रोस्कॉम्नाडज़ोर के "अनलोडिंग" को एक अखंड हस्ताक्षर के साथ जांचने के लिए लघु उदाहरण। "अपलोड" फ़ाइल डंप। Xml है, अछूता हस्ताक्षर डंप। Xml.sig है। यहां तक ​​कि मैंने केवल हस्ताक्षर की अखंडता पर उनकी जांच की, लेकिन स्रोत से पत्राचार पर नहीं।

OpenSSL का उपयोग करना:

git clone https://github.com/schors/gost-russian-ca.git ./ openssl smime -verify -engine gost \ -CAfile gost-russian-ca.git/certs/ca-certificates.pem \ -in dump.xml.sig -inform DER -content dump.xml -out /dev/null 

लिब्रेएसएसएल का उपयोग करना:

 git clone https://github.com/schors/gost-russian-ca.git ./ openssl smime -verify -CAfile gost-russian-ca.git/certs/ca-certificates.pem \ -in dump.xml.sig -inform DER -content dump.xml -out /dev/null 

और हां, आप cts फ़ोल्डर में c_rehash उपयोगिता का उपयोग कर सकते हैं, और -CAfile के बजाय -CAdir विकल्प का उपयोग कर सकते हैं।

और अब से, आप हस्ताक्षर को सत्यापित करने के सरल कार्य के लिए क्रिप्टोप्रो जैसे राज्य सेवा, कंटूर और अजीब कार्यक्रमों की वेबसाइट का उपयोग नहीं कर सकते हैं। और सबसे महत्वपूर्ण बात, अब इसे स्वचालित करना संभव है।

Source: https://habr.com/ru/post/hi423187/


All Articles