يشفّر Revault الملف الكبير على مقاطع يبلغ كل منها نحو 5 MiB، ولكل مقطع وسم مصادقة خاص به، فلا يلزم أن يبقى الملف كاملًا في الذاكرة دفعة واحدة. وهذا ما يتيح في تطبيق الويب ملفات يصل حجمها إلى 1 GiB.

لماذا لا يُشفَّر الملف كاملًا دفعة واحدة؟

يجب ألا تتطلب الملفات الكبيرة مساحة كبيرة من الذاكرة. يقرأ Revault الملفات في مقاطع يبلغ حجمها حوالي 5 ميجابايت، ويقوم بتشفير كل مقطع في المتصفح، ويقوم بمراحل النص المشفر في IndexedDB. لا تتم قراءة الملف الأصلي مطلقًا في مخزن مؤقت واحد عملاق.

والعمل على مقاطع يعني أيضًا أن الرفع المتقطع يمكنه المتابعة من النص المشفر المُجهّز مسبقًا، بدلًا من تشفير الملف كاملًا من جديد.

ما الذي يحمي ترتيب المقاطع واكتمالها؟

يحصل كل ملف على مفتاح تشفير خاص به، مشتق باستخدام HKDF من المفتاح الرئيسي للمخزن. ويتضمن سياق الاشتقاق معرّفي المخزن والملف، وطول الملف بالبايت، وحجم المقطع.

يجمع الرقم العشوائي (nonce) المكوّن من 12 بايت لكل مقطع بين بادئة عشوائية مختارة لذلك الملف، وعدّاد مقاطع من أربعة بايتات، وعلامة تميّز المقطع الأخير. تحمل المقاطع وسوم GCM بطول 128 بت. إذا بُدّلت المقاطع أو عُدّلت أو اقتُطعت، يفشل التحقق.

ماذا يحدث إذا انقطع الرفع؟

بمجرد اكتمال التشفير، يمكن استئناف التحميلات عبر الشبكة من النص المشفر المخزن مؤقتًا بعد تحديث الصفحة. تقوم عمليات إعادة المحاولة بإرسال نفس وحدات البايت المشفرة، بدلاً من تشفير مصدر جديد تحت الحروف القديمة. إذا تمت مقاطعة التشفير نفسه، فقم بإلغاء هذا التحميل غير المكتمل وابدأ مرة أخرى بهوية ملف جديدة.

كيف يتم التحقق من التنزيلات؟

تتحقق عمليات التنزيل من كل مقطع قبل تحريره. ولأن التحقق يجري أثناء تدفق الملف، قد يترك خطأ في أواخر التنزيل ملفًا غير مكتمل، لذا تأكد من اكتمال التنزيل بنجاح قبل الاعتماد عليه.

ما هي الحدود؟

يمكن أن يصل حجم كل ملف في تطبيق الويب إلى 1 GiB. ولمعاينات الصور والفيديو حد منفصل للذاكرة. قد يؤدي مسح تخزين المتصفح المحلي إلى حذف النص المشفر اللازم لاستئناف الرفع.

يتبع تنسيق البث بنية البث الموثقة AES-GCM-HKDF من Tink، باستخدام أساسيات Web Crypto الأصلية. ترتبط هوية الملف والطول المتوقع بسياق الاشتقاق الرئيسي؛ تعمل عدادات الأجزاء والعلامة النهائية على حماية الطلب والإكمال. لم يتلق هذا التطبيق تدقيق تشفير مستقل.

تصف صفحة نموذج الأمان البنية الكاملة، بما في ذلك ترويسة التدفق واشتقاق المفاتيح.