Revault katta faylni taxminan 5 MiB li segmentlarga boʻlib shifrlaydi, har birining oʻz autentifikatsiya tegi bor, shuning uchun butun fayl bir vaqtda xotirada turishi shart emas. Veb-ilovada aynan shu 1 GiB gacha fayllarga imkon beradi.
Nega butun faylni birdaniga shifrlamaymiz?
Katta fayllar katta hajmdagi xotirani talab qilmasligi kerak. Revault fayllarni taxminan 5 MiB li segmentlarda oʻqiydi, har bir segmentni brauzerda shifrlaydi va shifrmatnni IndexedDB’da vaqtincha saqlaydi. Asl fayl hech qachon bitta ulkan buferga oʻqilmaydi.
Segmentlar bilan ishlash, shuningdek, uzilib qolgan yuklashni butun faylni qaytadan shifrlamasdan, allaqachon tayyorlangan shifrmatndan davom ettirish imkonini beradi.
Segmentlar tartibi va toʻliqligini nima himoya qiladi?
Har bir fayl oʻzining shifrlash kalitini oladi, u seyfning asosiy kalitidan HKDF yordamida hosil qilinadi. Hosil qilish konteksti seyf va fayl identifikatorlarini, fayl uzunligini baytlarda va segment oʻlchamini oʻz ichiga oladi.
Har bir segmentning 12 baytli nonce’i shu fayl uchun tanlangan tasodifiy prefiksni, toʻrt baytli segment hisoblagichini va oxirgi segmentni belgilovchi bayroqni birlashtiradi. Segmentlar 128 bitli GCM teglarini olib yuradi. Segmentlar almashtirilsa, oʻzgartirilsa yoki qirqib tashlansa, tekshiruv muvaffaqiyatsiz boʻladi.
Yuklash uzilib qolsa nima boʻladi?
Shifrlash tugagach, tarmoq orqali yuklash sahifa yangilangandan keyin ham keshlangan shifrmatndan davom ettirilishi mumkin. Qayta urinishlar eski nonce’lar ostida yangi manbani shifrlash oʻrniga aynan bir xil shifrlangan baytlarni yuboradi. Shifrlashning oʻzi uzilsa, tugallanmagan yuklashni bekor qiling va yangi fayl identifikatori bilan qaytadan boshlang.
Yuklab olishlar qanday tekshiriladi?
Yuklab olishda har bir segment chiqarilishidan oldin autentifikatsiya qilinadi. Tekshiruv fayl oqimi bilan birga oʻtgani uchun, yuklab olishning oxirida yuz bergan xato tugallanmagan faylni qoldirishi mumkin, shuning uchun unga tayanishdan oldin yuklab olish muvaffaqiyatli tugaganiga ishonch hosil qiling.
Limitlar qanday?
Veb-ilovadagi har bir fayl 1 GiB gacha boʻlishi mumkin. Rasm va video koʻrinishlari uchun alohida xotira limiti bor. Mahalliy brauzer xotirasini tozalash yuklashni davom ettirish uchun kerak boʻlgan shifrmatnni oʻchirib yuborishi mumkin.
Oqimli format Tink’ning hujjatlashtirilgan AES-GCM-HKDF oqimli konstruksiyasiga mos keladi va mahalliy Web Crypto primitivlaridan foydalanadi. Fayl identifikatori va kutilgan uzunlik kalit chiqarish kontekstiga bogʻlanadi; segment hisoblagichlari va yakuniy belgi tartib hamda tugallanishni himoya qiladi. Bu amalga oshirish mustaqil kriptografik auditdan oʻtmagan.
Xavfsizlik modeli sahifasi toʻliq tuzilmani, jumladan oqim sarlavhasi va kalitni hosil qilishni tasvirlaydi.