Revault salaa suuren tiedoston noin 5 MiB:n segmentteinä, joista jokaisella on oma todennustunniste, jotta koko tiedoston ei tarvitse olla kerralla muistissa. Verkkosovelluksessa juuri tämä mahdollistaa jopa 1 GiB:n tiedostot.

Miksi koko tiedostoa ei salata kerralla?

Suurten tiedostojen ei pitäisi vaatia paljon muistia. Revault lukee tiedostot noin 5 MiB:n segmenteissä, salaa jokaisen segmentin selaimessa ja tallentaa salatekstin väliaikaisesti IndexedDB:hen. Alkuperäistä tiedostoa ei koskaan lueta yhteen valtavaan puskuriin.

Segmenteissä työskentely tarkoittaa myös sitä, että keskeytynyt lähetys voi jatkua jo valmistellusta salatekstistä sen sijaan, että koko tiedosto salattaisiin uudelleen.

Mikä suojaa segmenttien järjestystä ja täydellisyyttä?

Jokaiselle tiedostolle johdetaan oma salausavain HKDF:llä holvin pääavaimesta. Johdon konteksti sisältää holvin ja tiedoston tunnisteet, tiedoston tavupituuden ja segmentin koon.

Jokaisen segmentin 12 tavun nonce yhdistää kyseiselle tiedostolle valitun satunnaisen etuliitteen, nelitavuisen segmenttilaskurin ja lipun, joka merkitsee viimeisen segmentin. Segmenteissä on 128-bittiset GCM-tunnisteet. Jos segmenttejä vaihdetaan, muutetaan tai katkaistaan, varmennus epäonnistuu.

Mitä tapahtuu, jos lähetys keskeytyy?

Kun salaus on valmis, verkkolähetykset voivat jatkua välimuistissa olevasta salatekstistä sivun päivityksen jälkeen. Uudelleenyritykset lähettävät samat salatut tavut sen sijaan, että uusi lähde salattaisiin vanhoilla nonceilla. Jos itse salaus keskeytyy, peruuta kyseinen keskeneräinen lähetys ja aloita alusta uudella tiedostotunnisteella.

Miten lataukset varmennetaan?

Lataukset todentavat jokaisen segmentin ennen sen vapauttamista. Koska tarkistus tapahtuu tiedoston virrastuessa, virhe latauksen loppuvaiheessa voi jättää jälkeensä epätäydellisen tiedoston, joten varmista, että lataus päättyy onnistuneesti, ennen kuin luotat siihen.

Mitkä ovat rajat?

Verkkosovelluksessa jokainen tiedosto voi olla enintään 1 GiB. Kuva- ja videoesikatseluilla on erillinen muistiraja. Paikallisen selaintallennustilan tyhjentäminen voi poistaa lähetyksen jatkamiseen tarvittavan salatekstin.

Suoratoistomuoto noudattaa Tinkin dokumentoitua AES-GCM-HKDF-suoratoistorakennetta ja käyttää selaimen natiiveja Web Crypto -primitiivejä. Tiedoston identiteetti ja odotettu pituus sidotaan avaimen johdon kontekstiin; segmenttilaskurit ja loppumerkki suojaavat järjestystä ja valmistumista. Tälle toteutukselle ei ole tehty riippumatonta kryptografista tarkastusta.

Tietoturvamalli-sivu kuvaa koko rakenteen, mukaan lukien virran otsakkeen ja avainjohdon.