एक डिजिटल उत्पाद पासपोर्ट सभी को एक जैसी जानकारी नहीं दिखाता। एक खरीदार सार्वजनिक डेटा देखता है। एक मरम्मत की दुकान या नवीनीकरण करने वाला अधिक देखता है। एक बाजार निगरानी प्राधिकरण सब कुछ देखता है। इसे स्पष्ट कर दिया गया है, और अब यूरोपीय मानक इसे स्पष्ट रूप से निर्दिष्ट करते हैं।
अधिक दिलचस्प सवाल एक शांत सवाल है: अगर किसी को सार्वजनिक डेटा से परे संरक्षित फ़ील्ड्स तक पहुँच दी जाती है, तो क्या वे यह सत्यापित कर सकते हैं कि ये विशिष्ट फ़ील्ड्स असली हैं? या क्या उन्हें भरोसा करना होगा कि प्लेटफ़ॉर्म ने उन्हें सही ढंग से चुना है और बिना बदले आगे भेजा है?
एक ऐसे नोटरी की कल्पना करें जो पूरे पत्र को प्रमाणित नहीं करता है, बल्कि प्रत्येक अनुच्छेद को अलग से प्रमाणित करता है। सभी को पत्र का सार्वजनिक संस्करण मिलता है। जो कोई भी अधिक का हकदार है, उसे अतिरिक्त अनुच्छेद मिलते हैं, और इनमें से प्रत्येक पर उसी नोटरी की मुहर लगी रहती है। हमने अपना प्लेटफ़ॉर्म इसी तरह बनाया है। अधिकांश प्लेटफार्मों के लिए, उपरोक्त प्रश्न का ईमानदार उत्तर है: विश्वास। हमारे लिए, यह है: प्रमाण, हर उस फ़ील्ड के लिए जो केवल प्रकटीकरण के समय ही जोड़ा जाता है। यह लेख समझाता है कि यह अंतर क्यों मायने रखता है और हमने अधिक श्रम-गहन दृष्टिकोण क्यों चुना है।
हर कोई पहुँच नियम का एक ही तरह से पालन करता है
डीपीपी में पहुँच अधिकारों, सुरक्षा और गोपनीयता के लिए यूरोपीय मानक, EN 18239, यह आवश्यक करता है कि पहुँच को फ़ील्ड-दर-फ़ील्ड आधार पर नियंत्रित किया जाए: प्रत्येक फ़ील्ड के लिए, एक नियम है जो यह नियंत्रित करता है कि इसे कौन देख सकता है। यह सही आवश्यकता है, और इसे पूरा करना मुश्किल नहीं है। हमने सुसंगत मानकों पर अपने लेख में इन मानकों की स्थिति की रूपरेखा दी है।
इसे प्राप्त करने का सामान्य तरीका सर्वर पर एक फ़िल्टर के माध्यम से है। सर्वर जानता है कि अनुरोध कौन कर रहा है, यह जाँचता है कि वह व्यक्ति क्या देखने के लिए अधिकृत है, और ठीक उसी हिस्से को वापस करता है। मानक को इससे अधिक की आवश्यकता नहीं है। पाठक को विश्वास करना चाहिए कि सर्वर ने ईमानदारी से सामग्री का चयन किया है और रास्ते में कुछ भी नहीं बदला है। एक सार्वजनिक सूचना पत्रक के लिए, यह ठीक है। लेकिन एक ऐसे मूल्य के लिए जिस पर कोई रीसायकलर एक इस्तेमाल की हुई बैटरी की कीमत आधारित करता है, उसे सिर्फ भरोसे पर मान लेना बहुत ज़्यादा है।
एक समस्या है जिसे यह मानक संबोधित नहीं करता है: यह अंश बिना मुहर के आता है।
स्पष्ट समाधान डेटा पर हस्ताक्षर करना है। स्पेक्ट्रम के दोनों सिरों के लिए, एक मानक हस्ताक्षर अच्छी तरह से काम करता है: सार्वजनिक दृश्य पर हस्ताक्षर करें; संपूर्ण डेटा सेट पर हस्ताक्षर करें। यह विस्तार से कैसे काम करता है, इसकी व्याख्या DPP में ‘हस्ताक्षर और प्रमाण पत्र’ (Signatures and Certificates) में की गई है। बीच में ही चीजें गड़बड़ हो जाती हैं। पूरे दस्तावेज़ को कवर करने वाला हस्ताक्षर ठीक उन फ़ील्ड्स को कवर करता है जो हस्ताक्षर करने के समय मौजूद थे। यदि किसी संरक्षित फ़ील्ड को अतिरिक्त रूप से एक अधिकृत पाठक को प्रकट किया जाता है, तो वह फ़ील्ड हस्ताक्षरित सेट के बाहर होती है और बिना हस्ताक्षर के उनके पास पहुँचती है। कोई भी पहले से हर संभव ‘कौन-क्या-देखता है’ संयोजन पर हस्ताक्षर नहीं करता है; संयोजनों की संख्या घातीय रूप से बढ़ जाती है। बिना मुहर वाले फ़िल्टर का सहारा लिया जाता है, और मध्य स्तर फिर से विश्वास पर निर्भर करता है।
प्रत्येक फ़ील्ड पर व्यक्तिगत रूप से हस्ताक्षर करना
एक बेहतर डिज़ाइन है, और यह वही है जिस पर हम प्लेटफ़ॉर्म बना रहे हैं। तैयार दस्तावेज़ पर एक ही ब्लॉक के रूप में हस्ताक्षर करने के बजाय, निर्माता एक ही बार में प्रत्येक फ़ील्ड को व्यक्तिगत रूप से निर्दिष्ट करता है (जो मानकों से परिचित हैं उनके लिए: W3C प्रक्रिया ecdsa-sd-2023)।
इसलिए प्रत्येक व्यू एक ही सार्वजनिक फ़ील्ड से शुरू होता है। पाठक जो कुछ भी इसके बाद देखता है, वह फ़ील्ड-दर-फ़ील्ड जोड़ा जाता है, और इन फ़ील्ड्स में से प्रत्येक का संबंध निर्माता की सार्वजनिक कुंजी से जुड़ा रहता है, वह भी ऑफ़लाइन, पुनः हस्ताक्षर करने की आवश्यकता के बिना और व्यू को संकलित करने वाली इकाई पर निर्भर किए बिना। दावे के बिना फ़ील्ड बस अनुपस्थित हैं। छिपाए नहीं गए हैं, बल्कि वहाँ बिल्कुल मौजूद ही नहीं हैं, और उनके बारे में कुछ भी लीक नहीं होता है।
एक उदाहरण: मरम्मत की दुकान
एक मरम्मत की दुकान ## नेबैटरी में एक वैध रुचि घोषित की है, जो बैटरी विनियम में स्पष्ट रूप से प्रदान किए गए एक्सेस स्तरों में से एक है। इसकी कार्यशाला प्रणाली अपनी कुंजी का उपयोग करके हमारे इंटरफ़ेस में लॉग इन करती है और पास प्राप्त करती है। प्रतिक्रिया वही सार्वजनिक पास है जो खरीदार देखता है, जिसमें ठीक एक अतिरिक्त फ़ील्ड होता है: विघटन के निर्देश, जिन्हें केवल अधिकृत पाठकों को ही प्रकट किया जाता है। कोई दूसरा दस्तावेज़ नहीं, कोई विशेष संस्करण नहीं।
कार्यशाला इस फ़ील्ड पर भरोसा करने से पहले, उसका सॉफ़्टवेयर निर्माता की सार्वजनिक कुंजी के विरुद्ध प्रदान की गई मुहर का सत्यापन करता है। यदि सत्यापन सफल होता है - अतिरिक्त फ़ील्ड सहित - तो यह जान जाता है कि ये निर्देश बिल्कुल निर्माता से ही, अक्षर-दर-अक्षर, उत्पन्न हुए हैं, और रास्ते में किसी ने भी उन्हें नहीं बदला है। यदि जाँच विफल हो जाती है, तो उपयोगकर्ता दस्तावेज़ को पूरी तरह से अलग रख देता है। यह सुनिश्चित करना कि उपयोगकर्ता को ठीक वही फ़ील्ड प्राप्त हों जिनका वे हकदार हैं, हमारे एक्सेस कंट्रोल सिस्टम का काम बना रहता है। जो नया है वह अगला कदम है: उपयोगकर्ता हमसे परामर्श किए बिना, स्वयं जाँचता है कि उसे जो प्राप्त हुआ है वह असली है या नहीं।
‘अटूट’ ही पूरी बात है
एक अखंड सील का मतलब यह नहीं है कि सामग्री सच है। यह कहता है: यह बिल्कुल वही है जो निर्माता ने लिखा था, और तब से किसी ने भी एक अक्षर को भी नहीं बदला है। यह विश्वास के प्रश्न से उन सभी को हटा देता है जिन्होंने केवल दस्तावेज़ को आगे भेजा है: कैश, नेटवर्क, आर्काइव, हम।
अब यह मायने नहीं रखता कि पासपोर्ट आपको किसने दिया।
और एक सील द्विआधारी होती है। या तो वह बरकरार रहती है या नहीं; आधा-टूटा हुआ सील जैसी कोई चीज़ नहीं होती। इसीलिए यह डिग्री का मामला नहीं है कि अतिरिक्त फ़ील्ड अपने सील के साथ आते हैं या बिना सील के: बिना सील के, वे सिर्फ थोड़े कम मान्य नहीं हैं - वे बिल्कुल भी मान्य नहीं हैं।
देखने के दोनों तरीके
कोई भी व्यक्ति स्वयं इसकी जाँच कर सकता है। Transpareo Time Machine उत्पाद पासपोर्ट के लिए हमारी ओपन-सोर्स व्यूइंग ऐप है: यह पासपोर्ट के संस्करण इतिहास को स्क्रॉल करती है और हमारे किसी भी सर्वर से पूछे बिना व्यूअर के ब्राउज़र में हर हस्ताक्षर की पुनर्गणना करती है। एक टी-शर्ट के पासपोर्ट में पूरे दस्तावेज़ को कवर करने वाला एक हस्ताक्षर होता है, जबकि एक बैटरी के पासपोर्ट में फ़ील्ड-दर-फ़ील्ड सत्यापन का उपयोग होता है।
दोनों W3C के खुले मानक हैं; कोई भी इन्हें लागू कर सकता है। दस्तावेज़-व्यापी हस्ताक्षर को बनाना और संचालित करना काफी सस्ता है, और जो कोई भी केवल सार्वजनिक डेटा प्रदान करता है, वह इससे काम चला सकता है। टाइम मशीन का दोनों तरीकों का समर्थन करना जानबूझकर किया गया है: पासपोर्ट एक मानक प्रारूप बना रहता है जिसे कोई भी उपयुक्त उपकरण सत्यापित कर सकता है, न कि केवल हमारा।
इससे किसे लाभ होता है, और इस मानक में क्या आवश्यक है?
सार्वजनिक डेटा तक पहुँचने वालों के अलावा, वास्तव में किसे कोई और जानकारी दी जाती है? आम खरीदार को नहीं। यह प्रोसेसर है जो इस्तेमाल किए गए बैटरी पैक के मूल्य का आकलन करता है, बीमाकर्ता जो जोखिम का मूल्य निर्धारित करता है, रीसाइक्लर जो रसायनों को छाँटता है, और प्राधिकरण जो मामला बनाता है। ऐसे पाठक जिनके निर्णय पैसे या सुरक्षा पर निर्भर करते हैं। और, सामान्य दृष्टिकोण के तहत, ये वही पाठक हैं जिन्हें उन क्षेत्रों के लिए कोई मुहर नहीं मिलती जिन पर उनके निर्णय निर्भर करते हैं। हमारा मानना है कि एक गुणवत्ता मुहर का मतलब सभी के लिए एक जैसा होना चाहिए: प्रदर्शित किया गया हर क्षेत्र निर्माता से उत्पन्न हुआ है और तब से उसमें छेड़छाड़ नहीं की गई है। केवल सार्वजनिक फ़ील्ड पर लागू होने वाला एक सील केवल आधा सील है।
स्पष्ट कर दें: यह सब अनिवार्य नहीं है। EN 18239 यह आवश्यक बनाता है कि पहुंच को नियंत्रित किया जाए, और सर्वर पर एक फ़िल्टर यह काम पूरी तरह से करता है। हम प्रकट किए गए फ़ील्ड्स को सत्यापनीय बनाने के लिए अतिरिक्त प्रयास करते हैं क्योंकि एक हस्ताक्षरित पासपोर्ट का पूरा उद्देश्य यह है कि किसी को भी प्लेटफ़ॉर्म पर भरोसा नहीं करना पड़े। मध्यवर्ती स्तर को छूट देने से ठीक उसी विश्वास की बहाली होती है जिसे हस्ताक्षर समाप्त करने के लिए बनाया गया था।
यही सिद्धांत किसी फ़ील्ड को छोड़ने की अनुमति देता है
प्रत्येक फ़ील्ड को व्यक्तिगत रूप से निर्दिष्ट करने से एक दूसरी विशेषता सामने आती है, और यह वास्तव में यूरोपीय कानून द्वारा आवश्यक है। सामान्य डेटा संरक्षण विनियमन लोगों को अपना व्यक्तिगत डेटा मिटाने का अधिकार देता है। एक ही ब्लॉक के रूप में हस्ताक्षरित एक डेटा रिकॉर्ड, अपने स्वयं के हस्ताक्षर को नष्ट किए बिना इस अनुपालन को नहीं कर सकता है।
क्योंकि यहाँ प्रत्येक फ़ील्ड अपने आप में स्वतंत्र है, एक फ़ील्ड को हटाया जा सकता है जबकि बाकी सब कुछ वैध बना रहता है। यदि व्यक्तिगत डेटा गलती से पासपोर्ट में आ जाता है, तो उसे पूरी तरह से हटाया जा सकता है, और पासपोर्ट वैध बना रहता है: इसे फिर से जारी करने की कोई आवश्यकता नहीं है, कोई बाधित इतिहास नहीं। वे फ़ील्ड जिन्हें कानून द्वारा बनाए रखने की आवश्यकता है, वे अपनी जगह बनी रहती हैं; जो कुछ भी हटाया जा सकता है, उसे अनुरोध पर हटाया जा सकता है, सालों बाद भी।
यह क्यों मुश्किल है, और हमने इसे कैसे हल किया
हमने इस प्रक्रिया का आविष्कार नहीं किया; यह एक सार्वजनिक W3C मानक है। इस विचार के साथ आना मुश्किल नहीं है। कठिनाई इसे इस तरह से बनाने में है कि दस साल बाद भी पासपोर्ट वैध रहे। एक मानक हस्ताक्षर दस्तावेज़ के बाइट्स के आधार पर गणना किया जाता है। फ़ील्ड-दर-फ़ील्ड हस्ताक्षर इसकी व्यक्तिगत जानकारी के आधार पर गणना किया जाता है, और इसे प्राप्त करने के लिए, हस्ताक्षर करने से पहले पासपोर्ट को एक निश्चित प्रारूप में बदल दिया जाता है, जिसमें प्रत्येक विवरण एक अलग वाक्य के रूप में दिखाई देता है। इस प्रारूप को दस साल बाद भी अक्षर-दर-अक्षर दोहराया जाना चाहिए; अन्यथा, कोई भी मुहर मेल नहीं खाएगी। तीन प्रतीत होने वाले तुच्छ मुद्दे रास्ते में बाधा डालते हैं, और हमने तीनों को उनकी जड़ से ही हल कर दिया है।
संख्याएँ अपना प्रकार खो देती हैं। 2.0 जैसे मान को एक मानक डेटा प्रारूप से गुज़रने के बाद 2 के रूप में लौटाया जाता है। एक इंसान के लिए, यह एक ही है; निश्चित संकेतन के लिए, यह एक अलग मान है। हमारी प्रणाली के साथ, हर मान को उसके प्रकार के साथ संग्रहीत किया जाता है, और जैसे ही बिना प्रकार वाला एक भी नंबर दिखाई देता है, प्रकाशन प्रक्रिया को समाप्त कर दिया जाता है।
लेबल अभी तक कोई अर्थ नहीं बनाते हैं। प्रत्येक फ़ील्ड नाम का शब्दकोश में एक अद्वितीय अर्थ से मेल खाना आवश्यक है; अन्यथा, रूपांतरण के दौरान फ़ील्ड चुपचाप गायब हो जाती है और सील इसे कवर नहीं करती है। हमारे साथ, प्रत्येक शब्दकोश स्थानीय रूप से संग्रहीत किया जाता है और इसे कभी भी नेटवर्क के माध्यम से पुनः प्राप्त नहीं किया जाता है; एक अज्ञात फ़ील्ड नाम साइनिंग प्रक्रिया को रोक देता है, बजाय इसके कि चुपचाप एक खाली परिणाम लौटाया जाए।
एंट्रीज़ के लिए निश्चित नामों की आवश्यकता होती है। दस्तावेज़ में हर एंट्री का हमारे सिस्टम में एक निश्चित पहचानकर्ता होता है, ताकि हर बार नए सहायक नाम देने के बजाय, हर रन पर नोटेशन एक जैसा रहे।
सबसे पेचीदा हिस्सा निर्माता की अपनी कुंजी में निहित है। प्रत्येक मुद्दे के लिए, एक अतिरिक्त, अल्पकालिक कुंजी की आवश्यकता होती है, जिसके साथ प्रकट किए जा सकने वाले फ़ील्डों पर व्यक्तिगत रूप से हस्ताक्षर किए जाते हैं। निर्माता स्वयं इस कुंजी को बनाता है और उसे त्याग देता है। यदि हमारे पास यह होती, तो हम पीछे मुड़कर व्यक्तिगत फ़ील्ड बना सकते थे। प्रत्येक पासपोर्ट पर इस तरह की दो मुहरें होती हैं: एक निर्माता की और एक ट्रांसपेरियो की, भले ही केवल एक ही फ़ील्ड प्रकट किया गया हो।
हमारे लिए, यह प्रयास सार्थक है। प्रत्येक पासपोर्ट का प्रकाशन पर हस्ताक्षर किया जाता है और पिछले संस्करण से जोड़ा जाता है, और जैसे ही पासपोर्टों को EU DPP रजिस्टर के साथ पंजीकृत किया जाता है, अपरिवर्तनीय दस-वर्षीय अभिलेखागार प्रभावी हो जाता है। पूरे ब्लॉक के बजाय प्रत्येक फ़ील्ड पर हस्ताक्षर करना इस मूल सिद्धांत का एक विस्तार है, न कि कोई अतिरिक्त सुविधा।
हमारी स्थिति
हमने हर पाठक के लिए प्रमाण का विकल्प चुना है, क्योंकि एक मुहर का एक ही मतलब होना चाहिए, चाहे उसे कोई भी देख रहा हो। जो लोग इसे काम करते हुए देखना चाहते हैं: ऊपर दिए गए लिंक वाले दो नमूना पासपोर्ट को एक सर्वर से पूछे बिना, सीधे ब्राउज़र में सत्यापित किया जा सकता है।
इस पोस्ट के बारे में प्रश्न
क्या एक मानक क्षेत्र-दर-क्षेत्र हस्ताक्षर निर्दिष्ट करता है?
नहीं। EN 18239, DPP में पहुँच अधिकारों के लिए यूरोपीय मानक, यह आवश्यक करता है कि पहुँच को फ़ील्ड-दर-फ़ील्ड आधार पर नियंत्रित किया जाए, और सर्वर पर एक फ़िल्टर इस आवश्यकता को पूरी तरह से पूरा करता है। प्रकट किए गए फ़ील्ड्स को इसके अलावा सत्यापनीय बनाना हमारा निर्णय है और यह कोई ऐसी शर्त नहीं है जिसे किसी नियम द्वारा पूरा करना अनिवार्य हो। हम इस प्रयास को उचित मानते हैं क्योंकि एक हस्ताक्षरित पास का पूरा उद्देश्य यही है कि किसी को भी प्लेटफ़ॉर्म पर भरोसा करने की आवश्यकता न हो। इन मानकों की स्थिति हमारे समन्वित मानकों पर लेख में बताई गई है।
हम केवल सार्वजनिक डेटा प्रकाशित करते हैं। क्या हमें ऐसा करने की आवश्यकता है?
शायद नहीं, और हम इस बारे में पूरी तरह से खुले हैं। पूरे दस्तावेज़ को कवर करने वाला एक हस्ताक्षर पासपोर्ट को भी शामिल करता है, जिसके सभी फ़ील्ड सार्वजनिक हैं, और इसे स्थापित करने तथा संचालित करने में यह काफी सस्ता है। फील्ड-दर-फील्ड हस्ताक्षर तब फायदेमंद हो जाता है जब दूसरा लक्षित समूह शामिल होता है, जैसे कि एक मरम्मत नेटवर्क, एक पुनर्चक्रणकर्ता या एक सार्वजनिक प्राधिकरण, जिन्हें आप अन्यथा बिना मुहर के अंश प्रदान करते। दोनों तरीके W3C मानक हैं (फील्ड-बाय-फील्ड हस्ताक्षर के लिए ecdsa-sd-2023); मानक का समर्थन करने वाला कोई भी टूल इन्हें सत्यापित कर सकता है, और दोनों वर्तमान में ट्रांसपारेओ टाइम मशीन में चल रहे हैं - एक टी-शर्ट के ‘पासपोर्ट’ पर और एक बैटरी के ‘पासपोर्ट’ पर।
क्या पासपोर्ट को अमान्य किए बिना व्यक्तिगत डेटा को बाद में हटाया जा सकता है?
हाँ, और यह पहलू वास्तव में यूरोपीय कानून द्वारा आवश्यक है। सामान्य डेटा संरक्षण विनियमन लोगों को अपना व्यक्तिगत डेटा मिटाने का अधिकार देता है, और एक डेटा रिकॉर्ड जिसे ब्लॉक के रूप में हस्ताक्षरित किया गया हो, वह अपने स्वयं के हस्ताक्षर को नष्ट किए बिना इस अनुरोध का पालन नहीं कर सकता। क्योंकि यहाँ प्रत्येक फ़ील्ड को अलग से परिभाषित किया गया है, एक फ़ील्ड को हटाया जा सकता है जबकि बाकी सब कुछ वैध बना रहता है, रिकॉर्ड को फिर से जारी करने की आवश्यकता के बिना और संस्करण इतिहास में व्यवधान डाले बिना। कानून द्वारा बनाए रखने की आवश्यकता वाले फ़ील्ड्स अपनी जगह बने रहते हैं।
हस्ताक्षर की कुंजी किसके पास है?
प्रत्येक पास पर दो मुहरें होती हैं, और उनमें से एक आपकी हो सकती है। प्रत्येक जारीकरण के लिए एक अल्पकालिक कुंजी की भी आवश्यकता होती है, जो प्रकटीकरण के लिए निर्धारित फ़ील्ड्स पर व्यक्तिगत रूप से हस्ताक्षर करती है; निर्माता स्वयं इस कुंजी को उत्पन्न करता है और फेंक देता है, क्योंकि यदि हम इसे अपने पास रखते, तो हम पूर्वव्यापी रूप से व्यक्तिगत फ़ील्ड्स बना सकते थे। हम लौटाई गई मुहर को भरोसा करने से पहले संग्रहीत सार्वजनिक कुंजी के खिलाफ सत्यापित करते हैं। इस प्रकार प्रत्येक पासपोर्ट पर दो स्वतंत्र निकायों की दो मुहरें होती हैं, एक व्यक्तिगत रूप से प्रकट किए गए क्षेत्र के लिए और दूसरी पूरे डेटा सेट के लिए।
क्या दस साल बाद भी पासपोर्ट वैध रहेगा?
यही वह जगह है जहाँ प्रयास निहित है। फील्ड-आधारित हस्ताक्षर दस्तावेज़ के बाइट्स के बजाय उसके व्यक्तिगत विवरणों का उपयोग करके गणना करता है, इसलिए एक दशक बाद भी उसी निश्चित प्रारूप को अक्षर-दर-अक्षर पुन: उत्पन्न करना होगा। तीन चीज़ें इस प्रक्रिया में बाधा डालती हैं, और हमने तीनों को प्रारंभिक अवस्था में ही दबा दिया है। प्रत्येक मान अपने प्रकार के साथ संग्रहीत किया जाता है; प्रत्येक शब्दकोश हमारे सर्वरों पर होस्ट किया जाता है और कभी भी इंटरनेट के माध्यम से पुनः प्राप्त नहीं किया जाता; और प्रत्येक प्रविष्टि एक स्थिर पहचानकर्ता रखती है। अपरिवर्तनीय दस-वर्षीय अभिलेखागार तैयार है और जैसे ही पासपोर्ट EU रजिस्टर में पंजीकृत होते हैं, यह संचालन में आ जाता है। रजिस्टर विनियमन पर हमारे विश्लेषण में इसके बारे में और पढ़ें।




