एक अविश्वसनीय सीए पर भरोसा करना - क्या मैं इसे प्रतिबंधित कर सकता हूं कि सिस्टम इस पर कैसे भरोसा करता है?


32

(StackOverflow के बजाय ServerFault पर पोस्ट किया गया क्योंकि मुझे लगता है कि यह प्रोग्रामिंग कोड की तुलना में ओएस कॉन्फ़िगरेशन को चिंता करता है)।

मैं वर्तमान में एक सिस्टम को बनाए रखने के लिए ज़िम्मेदार हूं, जो एक तृतीय-पक्ष webservice से जुड़ता है। इस webservice के लिए क्लाइंट ऑथेंटिकेशन सर्टिफिकेट्स की जरूरत होती है, जो काफी हद तक सही है, लेकिन webservice को एक स्व-निर्मित रूट सर्टिफिकेशन अथॉरिटी सर्टिफिकेट द्वारा बनाए गए सेल्फ अटेस्टेड सर्टिफिकेट के साथ सुरक्षित किया जाता है - वही रूट जो क्लाइंट ऑरिजनल सर्टिफिकेट बनाता है।

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

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

क्या मेरे कंप्यूटर को बताना संभव है (वर्तमान में एक सर्वर बॉक्स, लेकिन भविष्य में साधारण डेस्कटॉप क्लाइंट बॉक्स में) एक सीए पर भरोसा करने के लिए लेकिन केवल कुंजी-उपयोगों के दिए गए सेट और संभावित विषय-नाम (डोमेन-नाम) के एक छोटे सेट के लिए )?

सर्वर वर्तमान में विंडोज सर्वर 2012 आर 2 है, लेकिन यह लिनक्स बॉक्स पर चल सकता है - हालांकि डेस्कटॉप मशीनें सभी विंडोज बॉक्स हैं।


3
कम से कम लिनक्स पर, कई अनुप्रयोगों में सहकर्मी CA प्रमाणपत्रों का स्थान निर्दिष्ट करने का विकल्प होता है, इसलिए आप इस CA के दायरे को केवल उपयोग करने वाले अनुप्रयोग तक सीमित कर सकते हैं। @CryptoGuy का जवाब लिनक्स पर भी काम करेगा, इसमें कुछ भी खास नहीं है।
एडहेलिल

1
@Edheldil: हालांकि यह कार्यान्वयन-विशिष्ट है - उदा। Windows ने XSS9 नाम की बाधाओं का समर्थन किया है जैसे कि NSS या GnuTLS की तुलना में अधिक समय तक।
grawity

आपका सिस्टम इस तृतीय-पक्ष सेवा से जुड़ता है; क्या आपके सिस्टम के क्लाइंट कोड को उस सेवा के CA पर भरोसा करने के लिए कॉन्फ़िगर किया जा सकता है, इस तरह से यह सिर्फ उस क्लाइंट कोड के लिए किया जाता है , आपके पूरे सिस्टम के लिए नहीं?
कास्टाग्लिया

@ कस्तगलिया मैं अपना स्वयं का प्रमाणपत्र सत्यापन कोड लिख सकता हूं जो स्वतंत्र रूप से मेजबान प्रणाली का काम करता है, लेकिन ग्राहक सॉफ्टवेयर के अन्य टुकड़े हैं जिनका मेरे पास नियंत्रण नहीं है जो कि सिस्टमवाइड प्रमाणपत्र सेवाओं का उपयोग करते हैं।
दाई

जवाबों:


40

हाँ यह संभव है। विंडोज के मामले में, क्रॉस-सर्टिफिकेशन या क्वालिफाइड सबऑर्डिनेशन नामक एक सुविधा है।

विचार यह है कि आप अपने वातावरण में तीसरे पक्ष के जारी करने वाले सीए प्रमाण पत्र पर हस्ताक्षर करते हैं। परिणाम के रूप में दूरस्थ एसएसएल प्रमाणपत्र आपके स्वयं के सीए प्रमाण पत्र के लिए जंजीर है। अपने आप को संभावित दुष्ट प्रमाणपत्रों से बचाने के लिए, आप एक Name Constraintsप्रमाणपत्र एक्सटेंशन को लागू करते हैं जहां आप स्वीकार्य नामों की सूची निर्दिष्ट करते हैं। यदि तृतीय पक्ष CA किसी अन्य नाम के लिए प्रमाण पत्र जारी करता है (स्पष्ट रूप से नाम की सीमा विस्तार में निर्दिष्ट नहीं है), तो यह आपके CryptoAPI प्रदाता द्वारा स्वचालित रूप से अस्वीकार कर दिया जाएगा।

नाम की कमी के अलावा, आप Application Policiesक्रॉस-सर्टिफिकेट में सर्टिफिकेट एक्सटेंशन को परिभाषित करके एन्हांस्ड कुंजी Usages बाधा का वर्णन कर सकते हैं । इसलिए, आपका ट्रस्ट प्रदाता सफलतापूर्वक केवल Application Policiesएक्सटेंशन में निर्दिष्ट usages को मान्य करेगा ।

अधिक जानकारी: Windows Server 2003 का उपयोग करके क्रॉस-प्रमाणन और योग्य अधीनता की योजना बनाना और कार्यान्वित करना

पीएस हालांकि, लेख विंडोज सर्वर 2003 के खिलाफ लिखा गया है, लेख अभी भी सबसे हाल के विंडोज सर्वर संस्करण पर लागू होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.