Revault šifruje veľký súbor po segmentoch s veľkosťou približne 5 MiB, z ktorých každý má vlastnú autentizačnú značku, takže celý súbor nikdy nemusí byť naraz v pamäti. Vo webovej aplikácii to umožňuje pracovať so súbormi do 1 GiB.

Prečo nešifrovať celý súbor naraz?

Veľké súbory by nemali vyžadovať veľa pamäte. Revault číta súbory v segmentoch s veľkosťou približne 5 MiB, každý segment šifruje vo vašom prehliadači a šifrovaný text pripravuje v IndexedDB. Pôvodný súbor sa nikdy nenačíta do jedného obrovského buffera.

Práca po segmentoch tiež znamená, že prerušené nahrávanie môže pokračovať od šifrovaného textu, ktorý je už pripravený, namiesto opätovného šifrovania celého súboru.

Čo chráni poradie a úplnosť segmentov?

Každý súbor dostane vlastný šifrovací kľúč odvodený pomocou HKDF z hlavného kľúča trezora. Kontext odvodenia zahŕňa identifikátory trezora a súboru, dĺžku súboru v bajtoch a veľkosť segmentu.

12-bajtový nonce každého segmentu kombinuje náhodnú predponu zvolenú pre daný súbor, štvorbajtové počítadlo segmentov a príznak označujúci posledný segment. Segmenty nesú 128-bitové značky GCM. Ak sú segmenty vymenené, zmenené alebo odrezané, overenie zlyhá.

Čo sa stane, ak sa nahrávanie preruší?

Po dokončení šifrovania možno sieťové nahrávanie po obnovení stránky obnoviť zo šifrovaného textu v medzipamäti. Opakované pokusy odošlú tie isté šifrované bajty, namiesto šifrovania nového zdroja pod starými nonce. Ak sa preruší samotné šifrovanie, zrušte nedokončené nahrávanie a začnite znova s novou identitou súboru.

Ako sa overuje sťahovanie?

Pri sťahovaní sa každý segment pred uvoľnením overí. Pretože kontrola prebieha počas streamovania súboru, chyba neskôr počas sťahovania môže zanechať neúplný súbor, preto sa pred použitím uistite, že sa sťahovanie úspešne dokončilo.

Aké sú limity?

Každý súbor vo webovej aplikácii môže mať až 1 GiB. Ukážky obrázkov a videí majú samostatný limit pamäte. Vymazaním lokálneho úložiska prehliadača sa môže odstrániť šifrovaný text potrebný na obnovenie nahrávania.

Streamovací formát vychádza z dokumentovanej streamovacej konštrukcie AES-GCM-HKDF z Tink a používa natívne primitíva Web Crypto. Identita súboru a očakávaná dĺžka sú viazané do kontextu odvodenia kľúča; počítadlá segmentov a záverečná značka chránia poradie a dokončenie. Táto implementácia nepodstúpila nezávislý kryptografický audit.

Stránka Bezpečnostný model opisuje úplnú konštrukciu vrátane hlavičky streamu a odvodenia kľúča.