Revault veliko datoteko šifrira v segmentih po približno 5 MiB, vsak s svojo oznako za overjanje, tako da celotna datoteka nikoli ne sme biti naenkrat v pomnilniku. V spletni aplikaciji to omogoča datoteke do 1 GiB.
Zakaj ne šifrirati celotne datoteke naenkrat?
Velike datoteke ne bi smele zahtevati veliko pomnilnika. Revault bere datoteke v segmentih po približno 5 MiB, vsak segment šifrira v brskalniku in šifrirano besedilo vmesno shrani v IndexedDB. Izvorna datoteka se nikoli ne prebere v en velikanski vmesnik.
Delo po segmentih pomeni tudi, da se lahko prekinjeno nalaganje nadaljuje iz šifrirnega besedila, ki je že pripravljeno, namesto da bi celotno datoteko šifrirali znova.
Kaj ščiti vrstni red in popolnost segmentov?
Vsaka datoteka dobi svoj šifrirni ključ, izpeljan s HKDF iz glavnega ključa trezorja. Kontekst izpeljave vključuje identifikatorje trezorja in datoteke, dolžino datoteke v bajtih in velikost segmenta.
12-bajtna enkratna vrednost vsakega segmenta združuje naključno predpono, izbrano za to datoteko, štiribajtni števec segmenta in zastavico, ki označuje zadnji segment. Segmenti nosijo 128-bitne oznake GCM. Če so segmenti zamenjani, spremenjeni ali odrezani, preverjanje ne uspe.
Kaj se zgodi, če je nalaganje prekinjeno?
Ko je šifriranje končano, se lahko nalaganja po omrežju po osvežitvi strani nadaljujejo iz šifriranega besedila v predpomnilniku. Ponovni poskusi pošljejo iste šifrirane bajte, namesto da bi nov vir šifrirali s starimi enkratnimi vrednostmi. Če je prekinjeno samo šifriranje, prekličite to nepopolno nalaganje in začnite znova z novo identiteto datoteke.
Kako se preverjajo prenosi?
Prenosi pred sprostitvijo overijo vsak segment. Ker se preverjanje izvaja med pretakanjem datoteke, lahko napaka pozno v prenosu pusti nepopolno datoteko, zato se prepričajte, da se prenos uspešno konča, preden se nanj zanesete.
Kakšne so omejitve?
Vsaka datoteka v spletni aplikaciji je lahko velika do 1 GiB. Predogledi slik in videoposnetkov imajo ločeno omejitev pomnilnika. Brisanje lokalne shrambe brskalnika lahko odstrani šifrirno besedilo, ki je potrebno za nadaljevanje nalaganja.
Pretočna oblika sledi dokumentirani pretočni konstrukciji AES-GCM-HKDF iz Tinka, z uporabo izvornih primitivov Web Crypto. Identiteta datoteke in pričakovana dolžina sta vezani v kontekst izpeljave ključa; števci segmentov in končni označevalnik ščitita vrstni red in dokončanje. Ta izvedba ni prestala neodvisne kriptografske revizije.
Stran Varnostni model opisuje celotno konstrukcijo, vključno z glavo toka in izpeljavo ključev.