सलाह: PIE नॉन-कस्टोडियल कंप्यूट मॉडल में एक महत्वपूर्ण खोज
मॉडल ऑपरेटर की किसी भी चीज़ को डिक्रिप्ट करने की क्षमता को हटाता है जब एक जॉब समाप्त होता है. डिवाइस अभी भी एक अनवेरिफाइड सार्वजनिक कुंजी को एन्क्रिप्ट करता है जिसे मॉडल द्वारा अनविश्वसनीय के रूप में निर्दिष्ट एक घटक द्वारा प्रकाशित किया गया है.
Developed by Robert E. Beckner III (Merlin) | rbeckner.com
मैं 25 वर्षों से सिस्टम बना रहा हूँ, और मैं जानबूझकर डिज़ाइन किए गए और ऑपरेशनल रूप से लीन चीज़ें बनाना पसंद करता हूँ, केवल उतना ही वेक्टर ले जाता है जितना उसका वजन कमाता है.
उस दृष्टिकोण में, उपयोगकर्ता के डेटा का मैं कितना स्टोर करता हूँ उसे न्यूनतम करना हमेशा मेरे लिए समझ में आता था, उन कारणों के लिए जो स्पष्ट से परे हैं. उनके डेटा की संप्रभुता मायने रखती है. इसके नीचे कुछ सरल है: चीज़ें वहीं जाती हैं जहाँ उन्हें जाना चाहिए. मैं जो अधिकांश बनाता हूँ वह प्रोसेसिंग है, और एक प्रोसेसिंग आर्किटेक्चर किसी अन्य रूप में संचालित होने का व्यवसाय नहीं रखता. एक रिकॉर्ड को रखना जिसे कभी आवश्यकता नहीं थी, एक ऐसा वेक्टर है जो कुछ भी कमाता नहीं है. इसे एक ऑप्टिमाइज़ेशन के रूप में मानना, न कि एक अनुपालन अभ्यास के रूप में, वही है जो डिज़ाइन को ईमानदार रखता है — और इस तरह से बना सिस्टम स्वाभाविक रूप से नियमों के साथ अच्छे स्थिति में रहता है, क्योंकि इसे विनियमित करने के लिए बहुत कम बचे हैं.
इसलिए जब Mary Camacho का घोषणा X पर मेरे फ़ीड में आई, मैंने उसकी आर्किटेक्चर को उसी तरह पढ़ा जैसे मैं अपनी पढ़ता हूँ। उसने इसका कोर सार्वजनिक रिकॉर्ड में एक क्रिएटिव कॉमन्स लाइसेंस के तहत प्रकाशित किया, उस स्तर के विवरण के साथ जिसे एक इंजीनियर इसे पुनर्निर्माण करने के लिए आवश्यक होगा, और वह पूर्व कला के बारे में सीधे थी जिस पर यह खड़ा है.
अनुक्रम के माध्यम से काम करते हुए, मैंने सर्वर के अंदर एक प्रतिद्वंद्वी इकाई रखी और देखा कि वह क्या पहुँच सकता है. वह कार्यकर्ता से आगे निकल सकता था.
लगभग सभी काम जो इसके बाद हुए, एक वॉयस बातचीत के रूप में हुए — 30 वॉयस नोट्स पर, ज़ोर से सोचते हुए और विभिन्न कोणों से चिंता का परीक्षण करते हुए, जब तक कि यह या तो बना रहा या टूट गया.
मैंने जो देखा: डिवाइस उस व्यक्ति को एन्क्रिप्ट करता है जो पहले क्लेम रिकॉर्ड लिखता है#
प्रकटीकरण सीधे ऑपरेशन्स के क्रम को निर्दिष्ट करता है. वर्कर नौकरी का दावा करता है और अपनी कुंजी प्रकाशित करता है, और तभी डिवाइस एन्क्रिप्ट करता है:
वर्कर → समन्वय: पोल और नौकरी का दावा (एक बार लिखें, पहला जीतता है), वर्कर की सार्वजनिक कुंजी प्रकाशित करता है.
डिवाइस ← समन्वय: पोल, वर्कर की सार्वजनिक कुंजी प्राप्त करें, साझा रहस्य व्युत्पन्न करें, पेलोड एन्क्रिप्ट करें.
— §2.1, डेटा प्रवाह (प्रति नौकरी)
उस समझौते का डिवाइस पक्ष समान सटीकता के साथ निर्दिष्ट है:
डिवाइस, वर्कर की सार्वजनिक कुंजी सीखने पर, अपनी स्वयं की X25519 विनिमय और वर्कर की कुंजी के खिलाफ ML-KEM एनकैप्सुलेशन करता है, अपनी स्वयं की सार्वजनिक योगदान (X25519 सार्वजनिक कुंजी ‖ ML-KEM सिफरटेक्स्ट) और साझा रहस्य उत्पन्न करता है.
— §4.2, वर्कर जीवनचक्र से बंधन
सीखने पर। 19 पृष्ठों में वर्कर के क्षणिक सार्वजनिक कुंजी पर कोई हस्ताक्षर नहीं है, कोई प्रमाणपत्र नहीं, कोई अटेस्टेशन नहीं जिसे डिवाइस मूल्यांकन करता है, और कोई पूर्व-साझा रहस्य नहीं. अनुपस्थिति जानबूझकर है और इसे ताकत के रूप में प्रस्तुत किया गया है: मॉडल डिक्रिप्शन को किसी अटेस्टेशन दस्तावेज़, TPM कोट, या मापित-boot कलाकृति पर गेट नहीं करता, और यह कोई पूर्व-प्रावधानित वर्कर रहस्य नहीं रखता.
इसलिए डिवाइस अपना पेलोड उस सार्वजनिक कुंजी पर एन्क्रिप्ट करता है जो क्लेम रिकॉर्ड में बैठी है, बिना किसी साधन के एक वैध वर्कर की कुंजी को किसी और से अलग करने के लिए. कोई भी पक्ष जो पहले क्लेम लिख सकता है, वह पक्ष बन जाता है जिसे डिवाइस एन्क्रिप्ट करता है, और विश्वासित पेलोड उनके हाथों में डिक्रिप्ट होता है.
Diagram source
flowchart TB
subgraph BEFORE["पहले: प्रकाशित के रूप में"]
direction LR
A2{"पहले कौन दावा करता है?"} -->|वास्तविक वर्कर| A3["वास्तविक कुंजी"]
A2 -->|कोई अन्य लेखक| A4["हमलावर कुंजी"]
A3 --> A5["डिवाइस इसे एन्क्रिप्ट करता है"]
A4 --> A5
A5 --> A6["कुंजी धारक पढ़ सकता है"]
end
subgraph AFTER["बाद में: हस्ताक्षरित कुंजी"]
direction LR
B2{"हस्ताक्षर वैध?"} -->|हाँ| B3["सत्यापित कार्यकर्ता कुंजी"]
B2 -->|नहीं| B4["अस्वीकार करें, पुनः प्रयास करें"]
B3 --> B5["केवल वास्तविक कार्यकर्ता पढ़ता है"]
end
A6 ~~~ B2
गंभीरता मॉडल द्वारा वहन की गई चीज़ों से आती है. यह वास्तुकला ठीक वही डेटा रखने के लिए मौजूद है जिसे लोग पढ़ने के लिए सबसे कम इच्छुक होते हैं, और यह उस समस्या के कठिन आधे हिस्से में सफल होता है: एक पूर्ण कार्य किसी भी व्यक्ति द्वारा डिक्रिप्ट नहीं किया जा सकता, ऑपरेटर सहित. अंतर उस एक चरण में है जहाँ डिवाइस को यह स्थापित करना होता है कि वह किससे बात कर रहा है.
हमलावर कुछ भी नहीं तोड़ता. X25519 और ML-KEM-768 दोनों निर्दिष्ट के अनुसार ठीक से काम करते हैं. हमलावर एक कुंजी प्रदान करता है और अनुबंध का वैध पक्ष बन जाता है.
यह असत्यापित कुंजी समझौता है, और इसकी विफलता मोड क्षेत्र का सबसे पुराना परिणाम है. साधारण Diffie-Hellman किसी को भी प्रमाणित नहीं करता और अपने स्वयं के सार्वजनिक कुंजी को बदलने वाले पक्ष पर गिर जाता है. कुंजी संलग्नन तंत्र इस गुण को विरासत में लेते हैं, यही कारण है कि RFC 9180 प्राप्तकर्ता की सार्वजनिक कुंजी की प्रामाणिकता को उसके अपने दायरे के बाहर रखता है और मानता है कि आसपास का अनुप्रयोग इसे प्रमाणपत्रों, कुंजी निर्देशिका, या आउट-ऑफ-बैंड सत्यापन के माध्यम से स्थापित करता है। यह मॉडल वह आसपास का अनुप्रयोग है, और वह चैनल जिसका उपयोग वह प्राप्तकर्ता कुंजी वितरित करने के लिए करता है, वह घटक है जिसे उसका स्वयं का विश्वास मॉडल अविश्वसनीय लेबल करता है.
प्रकटीकरण एक पड़ोसी हमले का पूर्वानुमान लगाता है और इसे बंद करता है:
दावा write-once/first-wins है इसलिए बाद का कार्यकर्ता नौकरी की कुंजी विनिमय को हाइजैक नहीं कर सकता.
— §6, संदर्भ कार्यान्वयन
वह तर्क ठोस है और तंत्र वही करता है जो वह कहता है. यह दो सममित मामलों में से एक को कवर करता है.
खतरा
एक बार लिखे जाने वाले दावे द्वारा संभाला गया
एक दूसरा कार्यकर्ता मौजूदा दावे को ओवरराइट करता है
हाँ — लिखना अस्वीकार कर दिया जाता है
एक अनधिकृत पक्ष पहले दावा लिखता है
नहीं — पहला लिखना जीतता है
फर्स्ट-विन एक रेस है. नियम यह गारंटी देता है कि विजेता नौकरी रखता है और यह नहीं बताता कि विजेता कौन है.
एक और दावा उद्धृत करने योग्य है, क्योंकि खोज इसके विपरीत है:
कोई मध्यस्थ (गेटवे, समन्वय, भंडारण, मॉनिटर) कभी भी पर्याप्त कुंजी सामग्री नहीं रखता है जिससे कोई भी रहस्य निकाला जा सके. एक हमलावर जो समन्वय या भंडारण को समझौता करता है, केवल अस्पष्ट ब्लॉब और सार्वजनिक कुंजियाँ प्राप्त करता है.
— §4.3, स्वतंत्र प्रति-दिशा कुंजियाँ
पहला वाक्य सटीक है. दूसरा एक हमलावर का वर्णन करता है जो पढ़ता है. एक हमलावर जो लिखता है, दावा रिकॉर्ड में एक चुनी हुई सार्वजनिक कुंजी रखता है इससे पहले कि डिवाइस पोल करे, और वैध रहस्य प्राप्त करना अनावश्यक हो जाता है उस पक्ष के लिए जो प्रतिपक्षी बनने का प्रबंध कर सकता है. जो भी उस रिकॉर्ड की सामग्री को नियंत्रित करता है, वह नियंत्रित करता है कि कौन पेलोड पढ़ सकता है, जिससे समन्वय परत गोपनीयता के लिए एक विश्वसनीय घटक बन जाती है — वह एकमात्र चीज़ §3 कहता है कि डिवाइस और कार्यकर्ता के अलावा कोई अन्य घटक कभी भी नहीं होना चाहिए.
दावे पर एक ईमानदार सीमा: इसका मतलब यह नहीं है कि आज खुला इंटरनेट पर कोई भी इस डेटा को पढ़ सकता है. एक वास्तविक तैनाती में दावे लिखने की क्षमता क्लाउड नेटवर्किंग और क्रेडेंशियल्स के पीछे होती है, और प्रकटीकरण डिवाइस पथ पर एक प्रमाणीकरण गेटवे का वर्णन करता है. सटीक समस्या यह है कि गोपनीयता अब उस परिमिति पर निर्भर करती है, जबकि वास्तुकला का केंद्रीय वादा यह है कि यह बिना डिवाइस और कार्यकर्ता के बीच के घटकों पर भरोसा किए रखता है.
परिणाम उसी प्रतिद्वंद्वी द्वारा मध्यस्थता किए गए दूसरे समझौते के तहत डिवाइस पर लौटते हैं, इसलिए एक अवरोधित कार्य पूरा होता है और उपयोगकर्ता की ओर से सामान्य दिखता है.
एक टिकाऊ कार्य और परिणाम लेजर की जानबूझकर अनुपस्थिति — वही अनुपस्थिति जो गैर-निवास बनाती है और नियामक सतह को घटाती है — अधिकांश उन चीजों को हटा देती है जिन्हें एक जांचकर्ता बाद में पुनर्निर्माण के लिए उपयोग करेगा कि कौन से कार्य प्रभावित थे. समन्वय रिकॉर्ड लगभग एक घंटे के क्रम पर समाप्त हो जाते हैं. सामान्य मामले में डेटा की रक्षा करने वाला गुण प्रतिद्वंद्वी मामले में फॉरेंसिक रिकॉर्ड को पतला कर देता है.
अंतराल मॉडल के सर्वश्रेष्ठ निर्णय द्वारा डाली गई छाया है#
वास्तुकला डेटा को अलग करती है जिसे एक ऑपरेटर वैध रूप से रख सकता है, उससे डेटा जिसे उसे कभी नहीं रखना चाहिए. संपर्क डेटा वह है जो एक व्यक्ति है और उनसे कैसे संपर्क किया जाए. विश्वसनीय डेटा वह है जो वे अपने बारे में प्रकट करते हैं. पारंपरिक प्रणालियाँ दोनों को एक ही डेटाबेस में फ़ाइल करती हैं, जो वह चाल है जो एक खाता तालिका को किसी के निजी जीवन के रिकॉर्ड में बदल देती है. संरचनात्मक उत्तर एक ही पंक्ति है: संपर्क को रखें, विश्वसनीय को रखने में असमर्थ रहें.
केंद्रीय समन्वयक को हटाना इसे सीधे पूरा करता है. एक घटक जो कार्यों को कामगारों को सौंपता है, अनिवार्य रूप से सीखता है कि कौन क्या कर रहा है, और वह ज्ञान वही सटीक संपत्ति है जिसे मॉडल रखने से इनकार करता है. इसे हटाने से वह घटक भी हट गया जो सामान्यतः एक कामगार की पहचान की गारंटी देता, और शेष हर मार्ग को कामगार को प्रमाणित करने के लिए स्वतंत्र रूप से अस्वीकार कर दिया गया, प्रत्येक के लिए एक बचाव योग्य कारण.
परिणाम एक ऐसा डिज़ाइन है जो वास्तविक कठोरता के साथ निवास के बारे में तर्क करता है और निवास तर्क को उस एक बिंदु पर लागू करता है जहाँ समस्या का आकार प्रमाणीकरण है. विश्वास मॉडल पूछता है कि प्रत्येक घटक क्या रखता है और सही ढंग से उत्तर देता है. वहाँ आवश्यक प्रश्न यह है कि प्रत्येक घटक क्या बदल सकता है. ये दो स्वतंत्र विश्वास समस्याएँ हैं, और किसी एक को हल करने से कभी भी दूसरे को हल नहीं किया गया है.
एक हस्ताक्षर कार्यकर्ता के क्षणिक सार्वजनिक कुंजी पर इसे बंद कर देता है#
कार्यकर्ता अपनी क्षणिक कुंजी जोड़ी को स्टार्टअप पर उसी तरह उत्पन्न करता है जैसे अब करता है. उस कुंजी को किसी दावे में प्रकाशित करने से पहले, इसे एक दीर्घकालिक ऑपरेटर कुंजी द्वारा हस्ताक्षरित किया जाता है जिसकी सार्वजनिक आधी एप्लिकेशन के साथ शिप की जाती है. डिवाइस हस्ताक्षर को सत्यापित करता है इससे पहले कि कुछ भी व्युत्पन्न किया जाए और एक बिना हस्ताक्षरित या अमान्य कुंजी को अस्वीकार करता है. पुनर्प्राप्ति पहले से ही निर्दिष्ट है, क्योंकि क्लाइंट-चालित पुनः प्रयास एक ताज़ा नौकरी और एक ताज़ा कुंजी समझौते के साथ मॉडल का मानक विफलता पथ है.
निर्णायक गुण यह है कि एक हस्ताक्षर कुंजी कुछ भी डिक्रिप्ट नहीं करती. ऑपरेटर की हस्ताक्षर कुंजी का समझौता आगे चलकर एक कार्यकर्ता का प्रतिरूपण करने की अनुमति देता है और एक भी पूर्ण नौकरी पढ़ने की क्षमता नहीं देता, क्योंकि उन प्रति-नौकरी कुंजियों को उनके कार्यकर्ताओं के साथ नष्ट कर दिया गया था. गैर-निवास, खाली कुंजी भंडार, और प्रतिगामी डिक्रिप्शन की असंभवता सभी अखंड रहते हैं. यही कारण है कि यह डिजाइन का समापन है.
हस्ताक्षरकर्ता उस समन्वयक बनने से बचता है जिसे डिजाइन ने हटाया था. इसे केवल यह प्रमाणित करने की आवश्यकता है कि एक दी गई क्षणिक सार्वजनिक कुंजी उस कार्यकर्ता से संबंधित है जिसे ऑपरेटर ने लॉन्च किया, और इसे कभी यह जानने की आवश्यकता नहीं होती कि वह कार्यकर्ता कौन सी नौकरी दावा करेगा. मौजूदा मॉनिटर प्राकृतिक घर है: यह पहले से ही कार्यकर्ताओं को प्रोविजन और समाप्त करता है, कोई उपयोगकर्ता डेटा और कोई कुंजी नहीं रखता, और डिजाइन द्वारा यह नौकरियों को रूट या असाइन नहीं करता.
पुन: प्ले को जांचने योग्य है, क्योंकि एक हस्ताक्षरकर्ता जिसके पास नौकरी का ज्ञान नहीं है, एक हस्ताक्षर को नौकरी पहचानकर्ता से बाँध नहीं सकता. एक हमलावर जो एक वास्तविक हस्ताक्षरित कार्यकर्ता कुंजी को एक अलग दावा रिकॉर्ड में कॉपी करता है, फिर भी संबंधित निजी कुंजी से वंचित रहता है, इसलिए पेलोड पढ़ने योग्य नहीं रहता. परिणाम एक ऐसी नौकरी है जिसे कोई भी प्रोसेस नहीं कर सकता — सेवा अस्वीकृति, गोपनीयता अखंड रहती है.
तीन सीमाएँ शेष हैं, और प्रकटीकरण सभी तीनों का नाम देता है: प्लेनटेक्स्ट कार्यकर्ता की मेमोरी में मौजूद है जबकि नौकरी चल रही है, नौकरी समय मेटाडेटा लीक करता है, और कुंजी-व्युत्पत्ति निर्माण को लेखक द्वारा सुधार के लिए चिह्नित किया गया है.
यह खोज इसलिए मौजूद है क्योंकि वास्तुकला को सार्वजनिक डोमेन में रखा गया था. प्रकाशन वही था जिसने स्वतंत्र मूल्यांकन को संभव बनाया, और यही कारण है कि यह अंतर यहाँ उभरा बजाय किसी घटना रिपोर्ट में. इस प्रणाली का एक स्वामित्व संस्करण उसी समस्या को वहन करेगा, बिना किसी के इसे कहने के लिए स्थित हुए.
मैं योगदान की सराहना करता हूँ, और मॉडल को वह जांच मिलती है जिसके वह योग्य है. केंद्रीय दावा बना रहता है, और यह वह रूप है जिसे मैं अधिक प्रणालियों से चाहता हूँ, क्योंकि एक वास्तुकला जो कभी भी भरोसेमंद डेटा नहीं रखती, वह एक के नियामक सतह का एक अंश वहन करती है जो रखती है.
अनुशंसा संकीर्ण है: डिवाइस को एन्क्रिप्ट करने से पहले कार्यकर्ता की क्षणिक सार्वजनिक कुंजी को प्रमाणित करें. एक हस्ताक्षर, डिवाइस पर सत्यापित, बिना किसी लागत के, मॉडल को अपनाने योग्य बनाता है. ऊपर सब कुछ एक वॉयस-टू-टेक्स्ट वार्तालाप से आया है जो 30 नोट्स से अधिक था, प्रकाशित प्रकटीकरण के विरुद्ध जाँच किया गया न कि उसके किसी सारांश के विरुद्ध. यदि ये निष्कर्ष उनकी ओर से सत्यापित हैं, तो वे लागू करने में सीधा हैं.