हिन्दी

डेवलपर टूल · JWT डिकोडर

RFC 7519 और JOSE परिवार: JWT, JWS, JWE, JWK और JWA समझाया गया

· पेजभूमि

जेडब्ल्यूटी क्रिप्टोग्राफी मानकों

हस्ताक्षरित और एन्क्रिप्टेड JOSE लिफाफों के साथ JWT दावों को जोड़ने वाला एक मानचित्र
मूल ToolAcre वेक्टर चित्रण

JWT IETF JOSE कार्य समूह के विशिष्टताओं के परिवार का एक सदस्य है। यह पोस्ट बताती है कि प्रत्येक RFC क्या परिभाषित करता है, वे एक साथ कैसे फिट होते हैं, और JWT आमतौर पर JWS क्यों है।

पांच संक्षिप्त शब्द, एक टोकन - दस्तावेज़ में JWS और JWE का उल्लेख क्यों है, जबकि आपने केवल JWT के बारे में पूछा था

टोकन दस्तावेज़ JWT, JWS, JWE, JWK और JWA के बीच चलते हैं क्योंकि वे एक ही पारिस्थितिकी तंत्र की विभिन्न परतों का वर्णन करते हैं। भ्रम तब शुरू होता है जब "JWT" का उपयोग प्रत्येक कॉम्पैक्ट तीन-भाग हस्ताक्षरित टोकन के लिए शॉर्टहैंड के रूप में किया जाता है। दावों को लिफाफे और मुख्य प्रतिनिधित्व से अलग करने से कार्यान्वयन के बारे में तर्क करना आसान हो जाता है।

ToolAcre का डिकोडर जानबूझकर परिवार से संकीर्ण है। यह तीन-भाग JWS-आकार के इनपुट को संभालता है जिसके पहले दो डिकोडेड खंड JSON ऑब्जेक्ट हैं। यह पांच-भाग वाले एन्क्रिप्टेड कॉम्पैक्ट इनपुट का पता लगाता है और रुक जाता है, क्योंकि प्राप्तकर्ता कुंजी के बिना सिफरटेक्स्ट को पढ़ना एक ही चीज़ को डिकोड करना नहीं होगा।

JOSE दस्तावेज़ संबंधित प्रारूपों को परिभाषित करते हैं; यह भंडार उनके कार्य-समूह की समय-सीमा स्थापित नहीं करता है

संबंधित विनिर्देश IETF JOSE कार्य से आए हैं, लेकिन रिपॉजिटरी स्रोत रूपरेखा द्वारा अनुरोधित विस्तृत संगठनात्मक समयरेखा स्थापित नहीं करते हैं। इसलिए यह लेख तारीखों या प्रक्रिया इतिहास का आविष्कार करने से बचता है और टूल और योजना में देखे जा सकने वाले प्रारूप संबंधों पर ध्यान केंद्रित करता है।

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

JWS (RFC 7515) - मनमाने ढंग से सामग्री पर हस्ताक्षर करना और JWT द्वारा उपयोग किए जाने वाले कॉम्पैक्ट क्रमबद्धता

JWS हस्ताक्षरित या MAC-संरक्षित सामग्री का वर्णन करता है। इसके संक्षिप्त रूप में तीन खंड हैं: संरक्षित हेडर, पेलोड और हस्ताक्षर। हस्ताक्षरित इनपुट एक बिंदु से जुड़े पहले दो एन्कोडेड खंडों का उपयोग करता है। एक JWT आमतौर पर इस लिफाफे में यात्रा करता है, जिसका रूप ToolAcre है जिसे विभाजित और निरीक्षण किया जाता है।

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

JWE (RFC 7516) - पांच-भाग क्रमांकन के साथ सामग्री को एन्क्रिप्ट करना

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

ToolAcre एक विशिष्ट JWE त्रुटि उत्सर्जित करता है और बताता है कि सामग्री को डिक्रिप्शन कुंजी के बिना नहीं पढ़ा जा सकता है। यह सिफरटेक्स्ट को विकृत JSON नहीं मानता है या यादृच्छिक बाइट्स प्रदर्शित करने का प्रयास नहीं करता है। एन्क्रिप्शन और हस्ताक्षर भी बनाए जा सकते हैं, लेकिन नेस्टेड प्रोसेसिंग इस मार्ग से बाहर है।

JWK और JWA (RFC 7517 और 7518) - कुंजियों को JSON के रूप में प्रस्तुत करना और एल्गोरिदम का नामकरण करना

JWK क्रिप्टोग्राफ़िक कुंजी जानकारी के लिए JSON प्रतिनिधित्व प्रदान करता है, जबकि JWA JOSE में उपयोग किए जाने वाले एल्गोरिदम पहचानकर्ताओं और संबंधित मापदंडों को नाम देता है। उनके अस्तित्व का मतलब यह नहीं है कि कोई टोकन अपनी विश्वसनीय कुंजी या एल्गोरिदम चुन सकता है। एक सत्यापनकर्ता को जारीकर्ता और आवेदन नीति दोनों से प्रतिबंधित होना चाहिए।

ToolAcre एल्गोरिदम नोट्स केवल स्रोत में मौजूद लेबलों के एक सीमित सेट की व्याख्या करते हैं और बाकी किसी भी चीज़ को अज्ञात कहते हैं। वे विवरण हैं, कार्यान्वयन नहीं। डिकोडर न तो JWK आयात करता है और न ही JWA से कोई एल्गोरिदम निष्पादित करता है, जो निरीक्षण सीमा को स्पष्ट रखता है।

JWT (RFC 7519) - दावा प्रारूप जो JWS या JWE पर चलता है

JWT एक दावा वस्तु और जारीकर्ता, विषय, दर्शक और न्यूमेरिकडेट्स जैसे पंजीकृत नामों को परिभाषित करता है। उन दावों को हस्ताक्षरित या एन्क्रिप्टेड JOSE संरचना में किया जा सकता है। इसलिए पेलोड परत उत्तर देती है कि "कौन से कथन दर्शाए गए हैं", जबकि लिफाफा उत्तर देता है कि उन बाइट्स को कैसे संरक्षित या छुपाया जाता है।

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

इसमें क्या शामिल नहीं है - बाद की प्रोफ़ाइलें जैसे RFC 8725 सर्वोत्तम प्रथाएँ और RFC 9068 एक्सेस टोकन, जिनकी अपनी पोस्ट हैं

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

किसी सिस्टम की समीक्षा करते समय, सटीक प्रोफ़ाइल, अपेक्षित लिफाफा, स्वीकृत एल्गोरिदम, मुख्य स्रोत और दावा नियम लिखें। वह सूची संक्षिप्त नाम परिचितता को अनुकूलता या सुरक्षा की धारणा में बदलने से रोकती है।

टेकअवे: JWT दावे हैं, JWS लिफाफा है - ToolAcre JWT डिकोडर JWS कॉम्पैक्ट फॉर्म को पढ़ता है और JWT हेडर और दावों को दिखाता है

JWT दावा परत को नाम देता है; JWS और JWE सुरक्षा लिफाफे प्रदान करते हैं; JWK मुख्य डेटा का प्रतिनिधित्व करता है; JWA एल्गोरिदम विकल्पों को नाम देता है। ToolAcre सामान्य तीन-भाग वाले हस्ताक्षरित आकार को पढ़ता है और सत्यापित या डिक्रिप्ट करने से इनकार करते समय हेडर और दावे दिखाता है।

अगला सही प्रश्न पूछने के लिए उस मानचित्र का उपयोग करें। पठनीय JSON दावा परत की पहचान करता है। तीन या पांच खंड संभावित लिफ़ाफ़ा परिवारों की पहचान करते हैं। विश्वास अभी भी स्वतंत्र रूप से कॉन्फ़िगर की गई क्रिप्टोग्राफी और नीति पर निर्भर करता है, न कि किसी संक्षिप्त नाम को पहचानने वाले डिकोडर पर।