- शिप
- 19 अगस्त 2026 को 6:38 pm बजे UTC
- लेखक
- Kamo
- Commit
- e64cc8b
उत्पादन में प्रत्येक नोट शरीर अप्राप्य था। Notes MASTER ENCRYPTION KEY था कभी कहीं भी सेट नहीं - तैनाती में नहीं, और तैनात ConfigMap ने नहीं किया नोट्स: सभी पर ब्लॉक - इसलिए Notes.master-encryption-key खाली करने के लिए हल किया गया और getUserEncryptionKey ने पहली बार उपयोग पर ढेर में एक यादृच्छिक AES कुंजी बनाई। कि जब तक पॉड वास्तव में रहता है। प्रत्येक तैनाती, ओओएम या नोड अनाथ को स्थानांतरित करते हैं इससे पहले लिखा गया हर नोट: डिक्रिप्शन threw, सामग्री nulled था, और एक के बाद से सामग्री जानबूझकर एनयूएल सामग्री को बचाती हैसादा वहाँ कुछ भी नहीं पढ़ा जा सकता था। The नोट ने अपना शीर्षक और रंग रखा और उसके शरीर को खो दिया। एक अनुपस्थित कुंजी अब निर्माण पर सेवा बंद कर देती है। आविष्कार करना विफलता है मोड, एक गिरावट नहीं: एक नोट सेवा जो कल के नोट्स को पढ़ नहीं सकती है, खराब है क्योंकि पहला डेटा चुपचाप नष्ट कर देता है। कुंजी खुद नए नोट्स एन्क्रिप्शन कुंजी रहस्य से आती है, जो दोनों के माध्यम से वायर्ड होती है ConfigMap और तैनाती, और फिर से एन्क्रिप्ट किए बिना घुमाया नहीं जाना चाहिए। प्रति सदस्यीय कुंजी अब एक दोहराने के खिलाफ XOR के बजाय HKDF-SHA256 से आती है "user-<id>" स्ट्रिंग, जो प्रतिवर्ती थी - एक लीक सदस्य कुंजी प्लस एक ज्ञात आईडी मास्टर कुंजी को पुनर्प्राप्त किया और उसके साथ हर दूसरे सदस्य के नोट्स। कुंजी भी हैं अब सदस्यता के लिए दायर किया गया है, जिसमें मेल किया गया है कि कैसे खुद को नोट किया गया है। नहीं परिवर्तन लागत एक प्रवासन: कोई मौजूदा सिफरटेक्स्ट के साथ शुरू करने के लिए पठनीय था। डीक्रिप्टडीटीओ एक खाली नोट के रूप में विफलता की रिपोर्ट करना बंद कर देता है और डिक्रिप्टियनफेल सेट करता है, इसलिए एक ग्राहक उस पर लिखने से इनकार कर सकता है जिसे यह नहीं पढ़ सकता है।.