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.
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.
| Doel | Bouw |
|---|---|
| Kluishoofdsleutel | Willekeurige 256-bits AES-sleutel |
| Sleutel inpakken | PBKDF2-HMAC-SHA-256 · 600.000 iteraties · 128-bit salt → AES-256-GCM |
| Metagegevens en miniaturen | AES-256-GCM · willekeurige 96-bits nonce · 128-bits authenticatietag |
| Afleiding van bestandssleutel | HKDF-SHA-256 · willekeurige 256-bit salt per bestand · 256-bit AES-uitvoer |
| Herstelgeheim | 192 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.
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.
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.