Revault krypterer en stor fil i segmenter på omtrent 5 MiB, hvert med sin egen autentiseringskode, slik at hele filen aldri trenger å ligge i minnet samtidig. I nettappen er det dette som gir rom for filer på opptil 1 GiB.

Hvorfor ikke kryptere hele filen på en gang?

Store filer bør ikke kreve mye minne. Revault leser filer i segmenter på omtrent 5 MiB, krypterer hvert segment i nettleseren og mellomlagrer chifferteksten i IndexedDB. Originalfilen leses aldri inn i én gigantisk buffer.

Å arbeide i segmenter betyr også at en avbrutt opplasting kan fortsette fra chiffertekst som allerede er mellomlagret, i stedet for at hele filen må krypteres på nytt.

Hva beskytter rekkefølgen og fullstendigheten til segmentene?

Hver fil får sin egen krypteringsnøkkel, utledet med HKDF fra hvelvets hovednøkkel. Utledningskonteksten inkluderer hvelv- og filidentifikatorene, filens lengde i byte og segmentstørrelsen.

Hvert segments 12-byte nonce kombinerer et tilfeldig prefiks som er valgt for den filen, en fire-byte segmentteller og et flagg som markerer det siste segmentet. Segmentene har 128-bits GCM-koder. Hvis segmenter byttes om, endres eller kuttes av, mislykkes verifiseringen.

Hva skjer hvis en opplasting avbrytes?

Når krypteringen er fullført, kan nettverksopplastinger gjenopptas fra bufret chiffertekst etter at siden er lastet på nytt. Nye forsøk sender de samme krypterte bytene, i stedet for å kryptere en ny kilde med gamle nonce-verdier. Hvis selve krypteringen avbrytes, avbryter du den ufullstendige opplastingen og starter på nytt med en ny filidentitet.

Hvordan verifiseres nedlastinger?

Nedlastinger autentiserer hvert segment før det frigis. Siden kontrollen skjer mens filen strømmes, kan en feil sent i en nedlasting etterlate en ufullstendig fil, så sørg for at nedlastingen fullføres før du stoler på den.

Hva er grensene?

Hver fil i nettappen kan være opptil 1 GiB. Forhåndsvisninger av bilder og videoer har en egen minnegrense. Hvis du sletter lokal nettleserlagring, kan den chifferteksten som trengs for å gjenoppta en opplasting, bli borte.

Strømmeformatet følger Tinks dokumenterte AES-GCM-HKDF-strømmekonstruksjon, med innebygde Web Crypto-primitiver. Filens identitet og forventede lengde er bundet inn i nøkkelavledningens kontekst, og segmenttellere og sluttmarkøren beskytter rekkefølge og fullføring. Denne implementeringen har ikke fått en uavhengig kryptografisk revisjon.

Siden om sikkerhetsmodellen beskriver hele konstruksjonen, inkludert strømhodet og nøkkelutledningen.