असल में क्या उल्लिखित है पर व्याख्या यहाँ ।
यहां बताया गया है कि यह कैसे काम करता है: मान लें कि हमारे पास एक फ़ंक्शन है जो शून्य से नौ के माध्यम से एक संख्या लेता है, तीन जोड़ता है और, यदि परिणाम दस से अधिक है, तो दस घटाता है। तो f (2) = 5, f (8) = 1, आदि। अब, हम एक और कार्य कर सकते हैं, इसे f कह सकते हैं ', जो कि पीछे की ओर जाता है, तीन के बजाय सात जोड़कर। f '(5) = 2, f' (1) = 8, आदि।
यह दो-तरफ़ा फ़ंक्शन और इसके व्युत्क्रम का एक उदाहरण है। सैद्धांतिक रूप से, कोई भी गणितीय कार्य जो एक चीज़ को दूसरे से मैप करता है, उलटा हो सकता है। व्यवहार में, हालांकि, आप एक ऐसा फ़ंक्शन बना सकते हैं जो इसके इनपुट को अच्छी तरह से स्क्रैम्बल करता है ताकि रिवर्स करने के लिए अविश्वसनीय रूप से मुश्किल हो।
इनपुट लेना और वन-वे फ़ंक्शन लागू करना इनपुट को "हैशिंग" कहा जाता है, और अमेज़ॅन उनके सिस्टम पर क्या स्टोर करता है, यह आपकी गुप्त कुंजी का "हैश" है। SHA1 इस तरह के "वन-वे" फ़ंक्शन का एक उदाहरण है, यह हमलों के खिलाफ भी कठोर है।
HMAC समारोह स्थापित हैश फंक्शन बनाता पाठ की एक स्ट्रिंग को प्रमाणित करने के एक ज्ञात कुंजी का उपयोग करने के लिए। यह इस तरह काम करता है:
- आप अपने अनुरोध और अपनी गुप्त कुंजी का पाठ लेते हैं और HMAC फ़ंक्शन लागू करते हैं।
- आप अपने अनुरोध में उस प्रमाणीकरण शीर्षलेख को जोड़ते हैं और इसे अमेज़ॅन को भेजते हैं।
- अमेज़ॅन गुप्त कुंजी की उनकी प्रतिलिपि देखता है, और आपके द्वारा अभी-अभी भेजा गया पाठ HMAC फ़ंक्शन लागू करता है।
- यदि परिणाम मेल खाता है, तो वे जानते हैं कि आपके पास एक ही गुप्त कुंजी है।
इस और PKI के बीच अंतर यह है कि यह तरीका Restful है , जो आपके सिस्टम और अमेज़ॅन के सर्वर के बीच न्यूनतम संख्या में आदान-प्रदान की अनुमति देता है।
क्या यह मूल रूप से मेरे क्रेडिट कार्ड नंबर या पासवर्ड के लिए मुझसे पूछने और अपने स्वयं के डेटाबेस में संग्रहीत करने के समान नहीं है?
हां, हालांकि S3 के साथ कोई व्यक्ति जो नुकसान कर सकता है, वह आपके खाते की निकासी तक ही सीमित है।
उन्हें कितने गुप्त होने की आवश्यकता है? क्या ये एप्लिकेशन किसी तरह से इसे संग्रहीत करने वाली गुप्त कुंजियों का उपयोग करते हैं?
कुछ बिंदु पर, आपको गुप्त कुंजी को लोड करना होगा, और अधिकांश यूनिक्स आधारित प्रणालियों के साथ, यदि कोई हमलावर रूट एक्सेस प्राप्त कर सकता है तो वे कुंजी प्राप्त कर सकते हैं। यदि आप कुंजी को एन्क्रिप्ट करते हैं, तो आपको इसे डिक्रिप्ट करने के लिए कोड होना चाहिए, और कुछ बिंदु पर डिक्रिप्शन कोड को सादा पाठ होना चाहिए ताकि इसे निष्पादित किया जा सके। यह वही समस्या है जो DRM के पास है, सिवाय इसके कि आप कंप्यूटर के मालिक हैं।
कई मामलों में, मैं सिर्फ सीमित अनुमतियों के साथ एक फ़ाइल में गुप्त कुंजी डालता हूं, और अपने सिस्टम को रूट होने से रोकने के लिए सामान्य सावधानी बरतता हूं। मल्टीसियर सिस्टम के साथ इसे ठीक से काम करने के लिए कुछ तरकीबें हैं, जैसे कि अस्थायी फाइलों से बचना और जैसे।