एपीआई कीज़ और सीक्रेट कीज़ कैसे काम करते हैं? यदि मुझे अपना एपीआई और गुप्त कुंजी किसी अन्य एप्लिकेशन को पास करना है तो क्या यह सुरक्षित होगा?


136

मैं सिर्फ यह सोचना शुरू कर रहा हूं कि एपी की चाबियाँ और गुप्त कुंजी कैसे काम करती हैं। अभी 2 दिन पहले मैंने Amazon S3 के लिए साइन अप किया और S3Fox प्लगइन स्थापित किया । उन्होंने मुझसे मेरी एक्सेस कुंजी और सीक्रेट एक्सेस कुंजी दोनों के लिए पूछा, दोनों को मुझे एक्सेस करने के लिए लॉगिन करने की आवश्यकता है।

तो मैं सोच रहा था, अगर वे मुझसे मेरी गुप्त कुंजी के लिए पूछ रहे हैं, तो वे इसे कहीं सही स्टोर कर रहे होंगे? क्या यह मूल रूप से मेरे क्रेडिट कार्ड नंबर या पासवर्ड के लिए मुझसे पूछने और अपने स्वयं के डेटाबेस में संग्रहीत करने के समान नहीं है?

गुप्त कुंजी और एपीआई कुंजी कैसे काम करने वाली हैं? उन्हें कितने गुप्त होने की आवश्यकता है? क्या ये एप्लिकेशन किसी तरह से इसे संग्रहीत करने वाली गुप्त कुंजियों का उपयोग करते हैं?

जवाबों:


90

असल में क्या उल्लिखित है पर व्याख्या यहाँ

यहां बताया गया है कि यह कैसे काम करता है: मान लें कि हमारे पास एक फ़ंक्शन है जो शून्य से नौ के माध्यम से एक संख्या लेता है, तीन जोड़ता है और, यदि परिणाम दस से अधिक है, तो दस घटाता है। तो f (2) = 5, f (8) = 1, आदि। अब, हम एक और कार्य कर सकते हैं, इसे f कह सकते हैं ', जो कि पीछे की ओर जाता है, तीन के बजाय सात जोड़कर। f '(5) = 2, f' (1) = 8, आदि।

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

इनपुट लेना और वन-वे फ़ंक्शन लागू करना इनपुट को "हैशिंग" कहा जाता है, और अमेज़ॅन उनके सिस्टम पर क्या स्टोर करता है, यह आपकी गुप्त कुंजी का "हैश" है। SHA1 इस तरह के "वन-वे" फ़ंक्शन का एक उदाहरण है, यह हमलों के खिलाफ भी कठोर है।

HMAC समारोह स्थापित हैश फंक्शन बनाता पाठ की एक स्ट्रिंग को प्रमाणित करने के एक ज्ञात कुंजी का उपयोग करने के लिए। यह इस तरह काम करता है:

  • आप अपने अनुरोध और अपनी गुप्त कुंजी का पाठ लेते हैं और HMAC फ़ंक्शन लागू करते हैं।
  • आप अपने अनुरोध में उस प्रमाणीकरण शीर्षलेख को जोड़ते हैं और इसे अमेज़ॅन को भेजते हैं।
  • अमेज़ॅन गुप्त कुंजी की उनकी प्रतिलिपि देखता है, और आपके द्वारा अभी-अभी भेजा गया पाठ HMAC फ़ंक्शन लागू करता है।
  • यदि परिणाम मेल खाता है, तो वे जानते हैं कि आपके पास एक ही गुप्त कुंजी है।

इस और PKI के बीच अंतर यह है कि यह तरीका Restful है , जो आपके सिस्टम और अमेज़ॅन के सर्वर के बीच न्यूनतम संख्या में आदान-प्रदान की अनुमति देता है।

क्या यह मूल रूप से मेरे क्रेडिट कार्ड नंबर या पासवर्ड के लिए मुझसे पूछने और अपने स्वयं के डेटाबेस में संग्रहीत करने के समान नहीं है?

हां, हालांकि S3 के साथ कोई व्यक्ति जो नुकसान कर सकता है, वह आपके खाते की निकासी तक ही सीमित है।

उन्हें कितने गुप्त होने की आवश्यकता है? क्या ये एप्लिकेशन किसी तरह से इसे संग्रहीत करने वाली गुप्त कुंजियों का उपयोग करते हैं?

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

कई मामलों में, मैं सिर्फ सीमित अनुमतियों के साथ एक फ़ाइल में गुप्त कुंजी डालता हूं, और अपने सिस्टम को रूट होने से रोकने के लिए सामान्य सावधानी बरतता हूं। मल्टीसियर सिस्टम के साथ इसे ठीक से काम करने के लिए कुछ तरकीबें हैं, जैसे कि अस्थायी फाइलों से बचना और जैसे।


14
"इनपुट लेना और एक-तरफ़ा फ़ंक्शन को लागू करना" हैशिंग "इनपुट कहा जाता है, और अमेज़ॅन उनके सिस्टम पर क्या स्टोर करता है यह आपकी गुप्त कुंजी का" हैश "है - यदि अमेज़ॅन आपकी गुप्त कुंजी का एचएएसएच स्टोर करता है, तो यह कैसे होता है अमेज़ॅन के लिए संभव है कि वह उनके पास भेजे गए पाठ को स्वीकार करे?
फ्रैंकलिन

21
पहले आप कहते हैं कि "अमेज़ॅन उनके सिस्टम पर क्या स्टोर करता है, यह आपकी गुप्त कुंजी का" हैश "है और फिर बाद में" अमेज़ॅन गुप्त कुंजी की अपनी प्रतिलिपि देखता है "। ये एक दूसरे के विपरीत प्रतीत होते हैं। मेरा मानना ​​है कि पहला बयान गलत है।
सीन

3
यह url अमेज़ॅन S3 प्रामाणिक
asyncwait 12

10
"सैद्धांतिक रूप से, कोई भी गणितीय कार्य जो एक चीज़ को दूसरे से मैप करता है, उसे उलटा किया जा सकता है" - यह सच नहीं है, हैश फ़ंक्शन इसका उदाहरण हैं। यह दिखाना बहुत आसान है। मान लें कि हमारे पास एक फ़ंक्शन है जो शब्दों को संख्याओं में बदल देता है, मूल्यों के योग के आधार पर (एक = 1, बी = 2, सी = 3 आदि)। उदाहरण के लिए "SO" 18 + 14 = 32 होगा। इसलिए हमने SO को 32 में बदल दिया है, लेकिन अगर मैं इस फ़ंक्शन को किसी को बताता हूं, और उसे 32 नंबर देता हूं, तो कोई तरीका नहीं है कि वह जान सके कि हमारा मूल शब्द "SO" है या नहीं "ZF" (26 + 6) या दर्जनों अन्य संभावनाओं में से एक
लियो

1
@Asyncwait से जुड़े दस्तावेज़ के अनुसार, अमेज़ॅन निश्चित रूप से आपकी गुप्त कुंजी संग्रहीत करता है, न कि केवल एक हैश। वास्तव में, ऐसा लग रहा है कि
एचएमएसी

7

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

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

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


2
निजी कुंजी की जरूरत नहीं है लिंक अब टूट गया है।
सेटज़ामोरा

@ जोसेट ने 2008 से इंटरनेट
वेबैक

1

AWS ने अपना स्वयं का कस्टम प्रमाणीकरण एल्गोरिथम तैयार किया है। v4 2014 में जारी किया गया था। विवरण यहाँ उल्लिखित है: प्रामाणिक अनुरोध (AWS हस्ताक्षर संस्करण 4) । एक प्रमुख बिंदु यह है कि अनुरोध को स्वयं रहस्य के साथ हस्ताक्षरित नहीं किया जाता है, लेकिन हस्ताक्षर कुंजी के साथ जो गुप्त का उपयोग करके उत्पन्न होता है। यह हस्ताक्षर करने के लिए HMAC-SHA256 का भी उपयोग करता है।

हस्ताक्षर पीढ़ी

असममित कुंजियों का उपयोग करना सुरक्षित होगा क्योंकि AWS केवल गुप्त के बजाय एक सार्वजनिक कुंजी संग्रहीत करेगा, जिसे उपयोगकर्ता और AWS दोनों द्वारा संग्रहीत किया जाता है।

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