Revault बड़ी फ़ाइल को लगभग 5 MiB के खंडों में एन्क्रिप्ट करता है, हर खंड का अपना प्रमाणीकरण टैग होता है, ताकि पूरी फ़ाइल को एक साथ मेमोरी में रखने की ज़रूरत न पड़े। वेब ऐप में इसी वजह से 1 GiB तक की फ़ाइलें संभव हैं।
पूरी फ़ाइल को एक साथ एन्क्रिप्ट क्यों नहीं किया जाता?
बड़ी फ़ाइलों के लिए बड़ी मात्रा में मेमोरी की आवश्यकता नहीं होनी चाहिए. Revault लगभग 5 MiB के खंडों में फ़ाइलों को पढ़ता है, ब्राउज़र में प्रत्येक खंड को एन्क्रिप्ट करता है, और IndexedDB में सिफरटेक्स्ट को चरणबद्ध करता है। मूल फ़ाइल को कभी भी एक विशाल बफ़र में नहीं पढ़ा जाता है।
खंडों में काम करने का मतलब यह भी है कि रुका हुआ अपलोड पहले से तैयार सिफरटेक्स्ट से आगे जारी रह सकता है, पूरी फ़ाइल को फिर से एन्क्रिप्ट किए बिना।
खंडों के क्रम और पूर्णता की सुरक्षा कैसे होती है?
हर फ़ाइल को अपनी एन्क्रिप्शन कुंजी मिलती है, जो वॉल्ट की मास्टर कुंजी से HKDF के ज़रिए निकाली जाती है। इस व्युत्पत्ति के संदर्भ में वॉल्ट और फ़ाइल के पहचानकर्ता, फ़ाइल की बाइट लंबाई और खंड का आकार शामिल होते हैं।
हर खंड का 12-बाइट nonce उस फ़ाइल के लिए चुने गए एक रैंडम प्रीफ़िक्स, चार-बाइट के खंड काउंटर और अंतिम खंड को चिह्नित करने वाले एक फ़्लैग को जोड़ता है। खंडों में 128-बिट GCM टैग होते हैं। अगर खंडों की अदला-बदली की जाए, उन्हें बदला जाए या काट दिया जाए, तो सत्यापन विफल हो जाता है।
अगर अपलोड बीच में रुक जाए तो क्या होता है?
एक बार एन्क्रिप्शन पूरा हो जाने पर, पेज रिफ्रेश होने के बाद नेटवर्क अपलोड कैश्ड सिफरटेक्स्ट से फिर से शुरू हो सकता है। पुराने नॉन्स के अंतर्गत किसी नए स्रोत को एन्क्रिप्ट करने के बजाय पुनः प्रयास वही एन्क्रिप्टेड बाइट्स भेजते हैं। यदि एन्क्रिप्शन स्वयं बाधित है, तो उस अधूरे अपलोड को रद्द करें और एक नई फ़ाइल पहचान के साथ फिर से शुरू करें।
डाउनलोड का सत्यापन कैसे होता है?
डाउनलोड हर खंड को जारी करने से पहले प्रमाणित करते हैं। चूँकि जाँच फ़ाइल के स्ट्रीम होते समय होती है, डाउनलोड के आख़िर में कोई त्रुटि अधूरी फ़ाइल छोड़ सकती है, इसलिए उस पर भरोसा करने से पहले पक्का कर लें कि डाउनलोड सफलतापूर्वक पूरा हुआ है।
सीमाएँ क्या हैं?
वेब ऐप में हर फ़ाइल 1 GiB तक की हो सकती है। इमेज और वीडियो प्रीव्यू की अलग मेमोरी सीमा होती है। लोकल ब्राउज़र स्टोरेज साफ़ करने से अपलोड फिर से शुरू करने के लिए ज़रूरी सिफरटेक्स्ट हट सकता है।
स्ट्रीमिंग प्रारूप देशी वेब क्रिप्टो प्राइमेटिव्स का उपयोग करते हुए टिंक के प्रलेखित एईएस-जीसीएम-एचकेडीएफ स्ट्रीमिंग निर्माण का अनुसरण करता है। फ़ाइल पहचान और अपेक्षित लंबाई मुख्य व्युत्पत्ति संदर्भ में बंधी हुई है; खंड काउंटर और अंतिम मार्कर ऑर्डर और पूर्णता की रक्षा करते हैं। इस कार्यान्वयन को एक स्वतंत्र क्रिप्टोग्राफ़िक ऑडिट प्राप्त नहीं हुआ है।
सुरक्षा मॉडल पेज पूरी संरचना बताता है, जिसमें स्ट्रीम हेडर और कुंजी व्युत्पत्ति शामिल हैं।