Revault enkripteer ’n groot lêer in segmente van ongeveer 5 MiB, elk met sy eie verifikasie-etiket, sodat die hele lêer nooit op een slag in die geheue hoef te wees nie. In die webprogram maak dit lêers tot 1 GiB moontlik.
Hoekom nie die hele lêer op een slag enkripteer nie?
Groot lêers behoort nie 'n groot hoeveelheid geheue te benodig nie. Revault lees lêers in segmente van ongeveer 5 MiB, enkripteer elke segment in die blaaier, en verhoog syferteks in IndexedDB. Die oorspronklike lêer word nooit in een reuse buffer gelees nie.
Om in segmente te werk, beteken ook dat ’n onderbroke oplaai kan voortgaan vanaf syferteks wat reeds gereed is, in plaas daarvan om die hele lêer weer te enkripteer.
Wat beskerm die volgorde en volledigheid van segmente?
Elke lêer kry sy eie enkripsiesleutel, wat met HKDF van die kluis se meestersleutel afgelei word. Die afleidingskonteks sluit die kluis- en lêeridentifiseerders, die lêer se lengte in grepe en die segmentgrootte in.
Elke segment se 12-greep-nonce kombineer ’n ewekansige voorvoegsel wat vir daardie lêer gekies is, ’n segmentteller van vier grepe en ’n vlag wat die laaste segment aandui. Segmente dra 128-bis-GCM-etikette. As segmente omgeruil, verander of afgesny word, misluk die verifikasie.
Wat gebeur as ’n oplaai onderbreek word?
Sodra enkripsie voltooi is, kan netwerkoplaaie hervat word vanaf gekaste syferteks na 'n bladsyverversing. Herproberings stuur dieselfde geënkripteerde grepe, eerder as om 'n nuwe bron onder ou nonses te enkripteer. As enkripsie self onderbreek word, kanselleer daardie onvolledige oplaai en begin weer met 'n nuwe lêeridentiteit.
Hoe word aflaaie geverifieer?
Aflaaie verifieer elke segment voordat dit vrygestel word. Omdat die kontrole gebeur terwyl die lêer stroom, kan ’n fout laat in ’n aflaai ’n onvolledige lêer agterlaat, so maak seker dat die aflaai suksesvol voltooi is voordat jy daarop staatmaak.
Wat is die limiete?
Elke lêer in die webprogram kan tot 1 GiB groot wees. Beeld- en videovoorskoue het ’n aparte geheuelimiet. As jy plaaslike blaaierberging uitvee, kan die syferteks wat nodig is om ’n oplaai te hervat, verwyder word.
Die stroomformaat volg Tink se gedokumenteerde AES-GCM-HKDF-stroomkonstruksie, met gebruik van inheemse Web Crypto-primitiewe. Lêeridentiteit en verwagte lengte word in die sleutelafleidingskonteks ingebind; segmenttellers en die finale merker beskerm bestelling en voltooiing. Hierdie implementering het nie 'n onafhanklike kriptografiese oudit ontvang nie.
Die bladsy oor die sekuriteitsmodel beskryf die volledige konstruksie, insluitend die stroomopskrif en sleutelafleiding.