CRYPTOGRAFIE & VERTROUWEN

Beveiligingsmodel

Hoe Revault uw gegevens beschermt, wat een indringer nodig heeft om deze te lezen en waar deze beveiligingen eindigen.

Technische referentie · Bijgewerkt in oktober 2026

De bescherming begint vóór het uploaden

Bestandsinhoud, bestandsnamen, MIME-typen, miniaturen, kluisnamen en mapnamen en -structuur worden op uw apparaat gecodeerd voordat ze worden geüpload. De service slaat cijfertekst en verpakte sleutels op. Een indringer die alleen deze opgeslagen records in handen krijgt, krijgt niet de kluissleutel in platte tekst, het apparaatgeheim of uw herstelsleutel.

Hierbij wordt ervan uitgegaan dat de browser, het besturingssysteem, de geleverde applicatiecode en de generator voor willekeurige getallen betrouwbaar zijn wanneer u een kluis maakt of ontgrendelt. Encryptie in rust kan een ontgrendelde kluis niet beschermen tegen kwaadaardige code die op uw apparaat wordt uitgevoerd.

Jouw apparaatPlatte tekst en kluissleutel
Versleutel lokaalGeauthenticeerde cijfertekst
Gecodeerde opslagGeen kluissleutel in platte tekst

Onafhankelijke sleutels voor elke kluis

Elke kluis begint met een willekeurig gegenereerde 256-bits AES-hoofdsleutel. De sleutel wordt gegenereerd door de cryptografische generator van willekeurige getallen van de browser en wordt niet rechtstreeks afgeleid van uw gebaar. Afzonderlijke kluissleutels beperken het effect van het vrijgeven van één enkele kluissleutel.

Een apparaatpatroon combineert de geordende puntenreeks met een willekeurig apparaatgeheim van 256 bits. PBKDF2 met HMAC-SHA-256, een nieuwe 128-bits salt en 600.000 iteraties leidt een 256-bits inpaksleutel af. AES-256-GCM codeert vervolgens de hoofdsleutel onder die inpaksleutel. De service ontvangt de gecodeerde wrapper, de salt- en openbare afleidingsparameters. Het apparaatgeheim blijft in de lokale IndexedDB-database van deze browser.

Patronen gebruiken alleen een raster van 5 x 5 en minimaal zes verschillende punten. Eerdere patroonformaten worden niet ondersteund. Bestaande kluizen hebben hun herstelsleutels nodig om een ​​nieuw patroon te registreren. De rastergrootte is geen belofte van wachtwoordsterkte: voorspelbare gebaren zijn nog steeds gemakkelijker te raden. Het apparaatgeheim biedt bescherming tegen iemand die alleen de serverrecords heeft, maar het is geen door hardware ondersteunde sleutel. Iemand die zowel het lokale geheim als de wrapper kopieert, kan proberen offline patronen te raden.

Wachtwoorden verifiëren uw account met behulp van uitdagingsreacties met openbare sleutels. Accountverificatie leidt niet tot een kluissleutel en ontsleutelt uw bestanden niet. Een geldige accountsessie en een succesvolle ontgrendeling van de kluis zijn afzonderlijke vereisten in de normale aanvraagstroom.

Cryptografische parameters
DoelBouw
KluishoofdsleutelWillekeurige 256-bits AES-sleutel
Sleutel inpakkenPBKDF2-HMAC-SHA-256 · 600.000 iteraties · 128-bit salt → AES-256-GCM
Metagegevens en miniaturenAES-256-GCM · willekeurige 96-bits nonce · 128-bits authenticatietag
Afleiding van bestandssleutelHKDF-SHA-256 · willekeurige 256-bit salt per bestand · 256-bit AES-uitvoer
Herstelgeheim192 willekeurige bits, weergegeven als zes groepen hexadecimale tekens

Vertrouwelijkheid en sabotagedetectie

Metagegevens van de kluis, metagegevens van bestanden, miniaturen en ingepakte sleutels gebruiken AES-256-GCM met 128-bits authenticatietags. Elke onafhankelijke codering maakt gebruik van een nieuwe willekeurige 96-bits nonce. Decodering verifieert de tag voordat platte tekst wordt geretourneerd; gewijzigde cijfertekst of een verkeerde sleutel zorgt ervoor dat de authenticatie mislukt.

Aanvullende geauthenticeerde gegevens verbinden elk gecodeerd object met zijn formaatversie, kluis-ID, object-ID en doel. Een record voor miniatuurweergaven en bestandsmetagegevens gebruiken bijvoorbeeld verschillende contexten. Het verplaatsen van een gecodeerd object naar een andere kluis of het vervangen ervan door een ander object verandert de geverifieerde context en mislukt de verificatie.

Geauthenticeerde context verbergt geen identificatiegegevens en bewijst geen versheid. Een geldig ouder record kan nog steeds een geldige tag hebben. Applicatierevisiecontroles detecteren gewone gelijktijdige updates, maar dit is geen cryptografische verdediging tegen een kwaadwillende service die een volledig oudere staat naspeelt.

Grote bestanden gebruiken geverifieerde segmenten

Bestandsinhoud maakt gebruik van de AES-256-GCM-HKDF-SHA-256-streamingconstructie beschreven door Tink, geïmplementeerd met behulp van cryptografische primitieven in de browser. Elke nieuwe bestandsstroom heeft een header van 40 bytes met daarin de lengtemarkering, een willekeurige salt van 32 bytes en een willekeurig nonce-voorvoegsel van 7 bytes.

HKDF leidt een afzonderlijke bestandscoderingssleutel af van de kluishoofdsleutel. De context omvat de kluis- en bestands-ID's, de bytelengte in platte tekst en de geconfigureerde segmentgrootte. De nonce van 12 bytes van elk segment combineert het willekeurige voorvoegsel, een segmentteller van vier bytes en een vlag voor het laatste segment. Segmenten bevatten 128-bits GCM-tags.

De applicatie verwerkt bestanden in begrensde segmenten van ongeveer 5 MiB. Segmentposities, de vlag van het laatste segment en de verwachte bytelengtes zorgen ervoor dat verwisselde, gewijzigde of ingekorte segmenten de verificatie mislukken. Downloads authenticeren elk segment voordat het wordt vrijgegeven; een fout laat in een stream kan een onvolledige download achterlaten, dus een succesvolle voltooiing is belangrijk. Nieuwe uploadpogingen hergebruiken reeds versleutelde bytes in plaats van nieuwe inhoud te versleutelen met dezelfde nonce van het segment.

De constructie volgt de Tink AES-GCM-HKDF streamingspecificatie. De implementatie en segmentconfiguratie van Revault zijn niet onafhankelijk gecontroleerd of gecertificeerd door Tink.

Herstel is een tweede pad naar dezelfde sleutel

Er wordt een herstelgeheim gegenereerd uit 24 willekeurige bytes, wat 192 bits willekeurige invoer oplevert. Het leidt onafhankelijk een inpaksleutel af met behulp van PBKDF2-HMAC-SHA-256 en zijn eigen salt, en codeert dezelfde kluishoofdsleutel met AES-256-GCM. Iedereen die het herstelgeheim en een kopie van de gecodeerde kluis verkrijgt, kan die kluis ontsleutelen.

Het herstelgeheim wordt weergegeven tijdens de installatie en wordt niet in leesbare tekst door de service opgeslagen. Bewaar het gescheiden van uw gecodeerde bestanden. Door browsergegevens te wissen, wordt het apparaatgeheim verwijderd; Voor het herstellen van de toegang zijn de gecodeerde cloudkopie van uw account en de herstelsleutel vereist, of een geëxporteerde gecodeerde back-up en de bijbehorende herstelsleutel. Er is geen door de provider beheerde hoofddecoderingssleutel.

Een herstelkit bevat een geheim- en sleutelverpakking, maar geen bestandsinhoud. Een gecodeerde back-up bevat een geverifieerde inventaris en gecodeerde bestandssegmenten, zonder het apparaatgeheim van de browser. Import verifieert de gecodeerde gegevens en creëert een nieuwe kluis met nieuwe identificatiegegevens en sleutels.

Als u een patroon wijzigt, wordt de verpakking van dit apparaat vervangen. Het roteert niet de hoofdsleutel van de kluis, trekt geen ander apparaat in, maakt oude back-ups ongeldig of wijzigt een bestaand herstelgeheim. Als een kluissleutel of herstelgeheim in gevaar komt, verplaatst u de gegevens naar een nieuwe kluis met nieuwe sleutels.

Door te delen krijgt u toegang tot één bestand

Delen is beschikbaar voor voltooide Revault-clouduploads. De browser leidt de streamingsleutel van het geselecteerde bestand af en plaatst deze, de streamdescriptor en bestandsmetagegevens in een afzonderlijke AES-256-GCM-envelop. Map-ID's en de kluishoofdsleutel zijn uitgesloten. Een nieuw willekeurig 256-bits geheim codeert deze envelop; de ontvanger kan er geen andere bestandssleutels uit afleiden.

Het linkfragment bevat dat decoderingsgeheim en een afzonderlijk willekeurig 256-bits toegangstoken. Fragmenten worden niet verzonden in HTTP-URL's. De browser van de ontvanger verzendt het toegangstoken in een verzoekheader; de service vergelijkt de SHA-256-hash met de opgeslagen capaciteitshash. De service slaat een tweede envelop op die is gecodeerd met de kluissleutel, zodat de eigenaar zijn links later kan beheren. Via deze verzoeken ontvangt het nooit de sleutel van het leesbare bestand of het geheim voor het decoderen van de link.

Iedereen die over de volledige link beschikt, kan dat bestand downloaden zonder account. Bescherm links als geheimen: de inhoud van het klembord, de browsergeschiedenis en berichten kunnen deze blootleggen. Links verlopen na één uur, één dag of zeven dagen. De service controleert de vervaldatum, intrekking, beschikbaarheid van bestanden en opschorting van de eigenaar bij elk metadata- en chunkverzoek. Intrekking kan geen reeds gedownloade bytes intrekken of een ontvanger tegenhouden die de cijfertekst en de bijbehorende bestandssleutel heeft behouden. Safe Exit verwijdert lokale toegang; het trekt de cloudshare-links niet in.

Native shares gebruiken onafhankelijke versleuteling

Mobiel delen verpakt standaard de sleutels van gekozen bestandsversies met een nieuwe deelsleutel en hergebruikt versleutelde bestandsbytes. Optionele extra isolatie versleutelt de bestanden opnieuw. De sleutels van de bronkluis blijven privé. Identieke versleutelde inhoud kan gedeelde kopieën koppelen; geen van beide methoden kan een opgeslagen ontvangerskopie terughalen.

iOS kan deze cijfertekst in een aparte CloudKit-recordhiërarchie plaatsen met een privé, alleen-lezen uitnodiging. Het deelt de synchronisatiezone van de kluis niet. Systeemoverschrijdende native shares maken gebruik van begrensde serveronderdelen met SHA-256-controlesommen. Onafhankelijke willekeurige 256-bits lees- en beheermogelijkheden worden als hashes op de server opgeslagen. Het decoderingsgeheim wordt afzonderlijk doorgegeven en nooit geüpload. Gecontroleerde aandelen vervallen op het door de afzender gekozen tijdstip, binnen 30 dagen. De service telt atomair de toegangssessies en handhaaft het gekozen maximum, de vervaldatum en de intrekking. Een downloadsessie duurt maximaal 15 minuten en nooit langer dan de vervaldatum van het aandeel.

Ontvangers authenticeren elk gecodeerd segment en openen een geïsoleerde gedeelde kluis met het afzonderlijke geheim van de afzender. Er is geen account, persoonlijke kluis of patroon vereist. Persoonlijke kluizen blijven vergrendeld. Wanneer exporteren is toegestaan, kunnen ontvangers een gecodeerde .qvault-kopie opslaan die wordt geopend met dat gedeelde geheim. Anders zijn er geen exportcontroles. De tijdelijke sessie valideert doorlopende toegang. Dit zijn applicatiecontroles: screenshots, gewijzigde clients en bewaarde kopieën kunnen niet cryptografisch worden voorkomen. Shares zijn momentopnamen zonder voortdurende bronupdates. Onbeperkte CloudKit-uitnodigingen dwingen geen toegangstelling of automatische vervaldatum af; toegang duurt totdat de eigenaar stopt met delen. Als u een origineel verwijdert, wordt het afzonderlijke aandeel ervan niet ingetrokken, en geen enkele intrekking kan een reeds bewaarde kopie terughalen.

Een deadline na de eerste toegang

Een afzender kan een aparte vernietigingstimer inschakelen. Het begint atomair wanneer de eerste servertoegangssessie wordt verleend, zelfs als de overdracht of decodering later mislukt. Elke latere sessie heeft dezelfde deadline; heropenen reset het nooit. De vroegste vervaldatum, vernietigingstijd en sessievervaldatum zijn van toepassing. Op de deadline weigert de service verder lezen en zet de cijfertekst in de wachtrij voor verwijdering, terwijl de native viewer sluit en zijn deelsleutels en tijdelijke bestanden vrijgeeft. Het opschonen is asynchroon en kan geen schermafbeeldingen, de bewaarde gegevens van een gewijzigde klant of eerder geëxporteerde kopieën verwijderen.

Optionele kluisactiviteit

Systeemeigen auditlogboeken zijn standaard uitgeschakeld en per kluis op elk apparaat geconfigureerd. De laatste 500 lokale gebeurtenissen worden gecodeerd met de hoofdsleutel van de kluis en een speciale, geverifieerde context. Ze sluiten sleutels, patronen, bestandsinhoud en gegevens van andere kluizen uit, synchroniseren niet en kunnen worden gewist of uitgeschakeld. Het zijn geen fraudebestendige bewijzen. Mislukte ontgrendelingen worden niet aan een kluis toegewezen.

Nieuwe gecontroleerde shares die zijn gemaakt met logboekregistratie ingeschakeld, behouden maximaal 100 tijdstempels voor toegangssessies op de deelservice. Alleen de beheercapaciteit kan ze ophalen; het logboek bevat geen identiteit van de ontvanger of een decoderingsgeheim. Het uitschakelen van lokale logboekregistratie heeft invloed op toekomstige shares. Bestaande gedeelde logboeken behouden hun oorspronkelijke instelling tot intrekking of verval en opschoning.

Optionele gecodeerde inbraakfoto's

Eigenaren kunnen inbraakwaarschuwingen afzonderlijk inschakelen voor elke kluis op elk apparaat. Na drie ongeëvenaarde patronen kan de app op de voorgrond een foto van de camera aan de voorkant maken, onder voorbehoud van toestemming, beschikbaarheid van de camera en een afkoelperiode van één minuut. Systeemcamera-indicatoren blijven zichtbaar. De laatste tien waarschuwingen worden lokaal opgeslagen en nooit aan Foto's toegevoegd of geüpload. Een ongeëvenaard patroon identificeert geen doelkluis, dus elke aangemelde kluis ontvangt een afzonderlijk gecodeerd record van apparaatpogingen.

Een speciale openbare RSA-3072-sleutel bevat een nieuwe 256-bits AES-GCM-sleutel voor elke waarschuwing die OAEP gebruikt met SHA-256 en MGF1-SHA-256. Hierdoor is codering mogelijk terwijl de kluis is vergrendeld. De bijbehorende privésleutel wordt zelf gecodeerd onder de hoofdsleutel van die kluis met een speciale, geverifieerde context. Alleen het ontgrendelen van die kluis kan de foto's ervan ontsleutelen. Waarschuwingen verschijnen in de auditweergave, onafhankelijk van de gewone activiteitenregistratie, en kunnen worden gewist in de instellingen voor inbraakwaarschuwingen. Het zijn geen fraudebestendige bewijzen.

Versleutelde uploads naar uw eigen bucket

De opslaginstellingen van een kluis kunnen deze browser rechtstreeks verbinden met een door de gebruiker opgegeven S3-compatibel HTTPS-eindpunt. Geselecteerde apparaatbestanden worden lokaal gecodeerd met dezelfde bestandsconstructie. Elk wordt een afzonderlijk, draagbaar .qvault-object met een geverifieerde gecodeerde inventaris en ingepakte kluissleutels. Willekeurige objectnamen voorkomen dat de originele bestandsnamen zichtbaar worden. Voor herstel zijn het gedownloade object en de kluisherstelsleutel vereist.

De eindpuntconfiguratie en inloggegevens worden gecodeerd onder de kluishoofdsleutel met een speciale geverifieerde context en bewaard in de IndexedDB van dit apparaat. Ze worden niet gesynchroniseerd of verzonden naar de API van Revault. Ondertekening van verzoeken maakt gebruik van AWS Signature versie 4, HMAC-SHA-256 en een hash van elke begrensde verzoektekst. Acht-MiB-multipart-onderdelen dragen reeds gecodeerde bytes rechtstreeks naar de opslagprovider. Buckettoegang blijft onderworpen aan de machtigingen en het CORS-beleid van die provider.

De provider kan toegangssleutel-ID's, objectpaden, bytegroottes, uploadtijden en verbindingsinformatie zien. Houd de bucket privé en houd de referenties ervan gericht op de vereiste bewerkingen. Geüploade objecten zijn onafhankelijk van de Revault-cloudsynchronisatie en -deling. Pogingen om onvoltooide uploads te vergrendelen of te annuleren; Het sluiten van tabbladen of verlies van connectiviteit kan leiden tot verweesde onderdelen, dus configureer een levenscyclusregel voor onvolledige uploads. Safe Exit verwijdert de lokale opslagreferenties van andere kluizen, maar verwijdert geen objecten uit hun buckets.

Safe Exit verwijdert lokale toegang

U kunt in deze browser één kluis aanwijzen als Safe Exit-kluis. Als u het patroon van die kluis invoert, wordt deze normaal geopend, zonder een triggerbevestiging of voltooiingsmelding. De lokale momentopnamen, gecodeerde delen, apparaatgeheimen en wijzigingen in de wachtrij van andere kluizen worden verwijderd. Niet-gesynchroniseerde gegevens kunnen verloren gaan.

Een blijvende lokale grens voorkomt dat deze kluizen automatisch worden vermeld of hersteld via synchronisatie in deze browser. Hun gecodeerde cloudkopieën en kopieën op andere apparaten blijven ongewijzigd. Herstel is expliciet, één kluis tegelijk, en vereist de herstelsleutel van die kluis voordat een nieuw apparaatpatroon kan worden ingeschreven.

Dit is verwijdering van lokale toegang, geen gegarandeerde fysieke verwijdering of forensische verhulling. Browserprofielen, momentopnamen van bestandssystemen, eerdere downloads, schermafbeeldingen, servicerecords en een ander apparaat kunnen bewijsmateriaal bevatten. Als u de lokale gegevens van deze browser wist, wordt ook de lokale isolatiegrens gewist; een nieuwe installatie kan na authenticatie de cloudkluizen van het account opnieuw weergeven.

Wat zichtbaar blijft

Encryptie beschermt de inhoud, niet elk feit over opslag. De service kan accountassociaties, willekeurige object-ID's, objectaantallen, bytegroottes, revisies, tijdstempels, gecodeerde wrappers, streamheaders en verzoekactiviteit observeren. Netwerk- en operationele records kunnen verbindingsinformatie onthullen. Dit is geen anonimiteitssysteem en biedt geen weerstand tegen verkeersanalyse.

Transportversleuteling beschermt verzoeken tijdens de overdracht wanneer de applicatie via HTTPS wordt aangeboden. Dat staat los van de versleuteling aan de clientzijde, die de opgeslagen bestandsinhoud bij de service versleuteld houdt.

Waar de bescherming eindigt

Bij privé browsen wordt meestal de lokale opslag verwijderd wanneer de privésessie eindigt. Een verzoek om permanente opslag maakt een incognitosessie niet permanent. Gesynchroniseerde cloudkopieën blijven bestaan, maar lokale patronen, niet-gesynchroniseerde wijzigingen, bestanden in de cache en Safe Exit-instellingen kunnen verloren gaan. Voor een nieuwe privésessie zijn accounttoegang en uw herstelsleutel nodig om een ​​nieuw patroon te registreren.

De toepassing verwijdert de sleutelreferentie in het geheugen van de kluis en trekt privé-voorbeeld-URL's in wanneer deze zijn vergrendeld. Het wordt automatisch vergrendeld wanneer het verborgen is of na vijf minuten inactiviteit. Native apps worden ook vergrendeld wanneer ze op de achtergrond staan, verwijderen tijdelijke voorbeelden en wissen eigen sleutelbuffers wanneer de bewerkingen zijn voltooid. Browser-, Swift- en JVM-geheugenbeheer kan niet garanderen dat elke sleutelkopie of gedecodeerde mediabuffer onmiddellijk wordt gewist.

Malware, een onveilige extensie, een gecompromitteerde applicatiecode of iemand die een ontgrendeld scherm bekijkt, kunnen platte tekst en geheimen vastleggen. Encryptie kan het weigeren van service van accounts, verwijderde cloudobjecten, ransomware, verlies van een herstelgeheim of het achterhouden van gegevens door een service niet voorkomen. Bewaar een aparte gecodeerde back-up en bescherm het apparaat zelf.

Revault heeft geen onafhankelijke beveiligingsaudit ondergaan. Dit zijn beschrijvingen van het geïmplementeerde cryptografische ontwerp, geen certificering of garantie tegen elke inbreuk.

Beveiliging en architectuur