Revault xifra un fitxer gran en segments d'uns 5 MiB, cadascun amb la seva pròpia etiqueta d'autenticació, de manera que el fitxer sencer no ha d'estar mai a la memòria alhora. A l'aplicació web, això és el que permet fitxers de fins a 1 GiB.

Per què no xifrar el fitxer sencer d'un cop?

Els fitxers grans no haurien de requerir molta memòria. Revault llegeix els fitxers en segments d'aproximadament 5 MiB, xifra cada segment al navegador i prepara el text xifrat a IndexedDB. El fitxer original mai no es llegeix en un únic buffer gegant.

Treballar per segments també vol dir que una pujada interrompuda pot continuar des del text xifrat que ja està preparat, en lloc de tornar a xifrar tot el fitxer.

Què protegeix l'ordre i la integritat dels segments?

Cada fitxer té la seva pròpia clau de xifratge, derivada amb HKDF de la clau mestra de la caixa forta. El context de derivació inclou els identificadors de la caixa forta i del fitxer, la longitud en bytes del fitxer i la mida del segment.

El nonce de 12 bytes de cada segment combina un prefix aleatori triat per a aquest fitxer, un comptador de segment de quatre bytes i un indicador que marca l'últim segment. Els segments porten etiquetes GCM de 128 bits. Si es canvien, s'alteren o es tallen segments, la verificació falla.

Què passa si una pujada s'interromp?

Un cop acabat el xifratge, les pujades per xarxa es poden reprendre des del text xifrat a la memòria cau després d'actualitzar la pàgina. Els reintents envien els mateixos bytes xifrats, en lloc de xifrar una font nova amb nonces antics. Si el mateix xifratge s'interromp, cancel·la aquesta pujada incompleta i torna a començar amb una identitat de fitxer nova.

Com es verifiquen les baixades?

Les baixades autentiquen cada segment abans d'alliberar-lo. Com que la comprovació es fa a mesura que el fitxer es transmet, un error cap al final d'una baixada pot deixar un fitxer incomplet, així que assegura't que la baixada acaba correctament abans de confiar-hi.

Quins són els límits?

Cada fitxer de l'aplicació web pot ser de fins a 1 GiB. Les vistes prèvies d'imatges i vídeos tenen un límit de memòria independent. Esborrar l'emmagatzematge local del navegador pot eliminar el text xifrat necessari per reprendre una pujada.

El format de streaming segueix la construcció de streaming AES-GCM-HKDF documentada de Tink, utilitzant primitives natives de Web Crypto. La identitat del fitxer i la longitud esperada s'incorporen al context de derivació de la clau; els comptadors de segment i el marcador final protegeixen l'ordre i la finalització. Aquesta implementació no ha rebut cap auditoria criptogràfica independent.

La pàgina del model de seguretat descriu la construcció completa, incloses la capçalera del flux i la derivació de claus.