Beskerming begin voor oplaai
Lêerinhoud, lêername, MIME-tipes, duimnaels, kluisname en vouername en struktuur word op jou toestel geïnkripteer voordat dit opgelaai word. Die diens stoor syferteks en toegedraaide sleutels. 'n Indringer wat slegs daardie gestoorde rekords verkry, kry nie die gewone tekskluissleutel, die toestelgeheim of jou herstelsleutel nie.
Dit veronderstel dat die blaaier, bedryfstelsel, gelewerde toepassingskode en ewekansige getalgenerator betroubaar is wanneer jy 'n kluis skep of ontsluit. Enkripsie in rus kan nie 'n oopgesluit kluis beskerm teen kwaadwillige kode wat op jou toestel loop nie.
Onafhanklike sleutels vir elke kluis
Elke kluis begin met 'n lukraak gegenereerde 256-bis AES hoofsleutel. Die sleutel word gegenereer deur die blaaier se kriptografiese ewekansige getalgenerator, eerder as om direk van jou gebaar afgelei te word. Afsonderlike kluissleutels beperk die effek van 'n enkele kluissleutel wat openbaar gemaak word.
'n Toestelpatroon kombineer die geordende kolletjievolgorde met 'n ewekansige 256-bis toestelgeheim. PBKDF2 met HMAC-SHA-256, 'n vars 128-bis sout, en 600,000 iterasies lei 'n 256-bis wikkelsleutel af. AES-256-GCM enkripteer dan die hoofsleutel onder daardie omvousleutel. Die diens ontvang die geënkripteerde omhulsel, sy sout en publieke afleidingsparameters. Die toestelgeheim bly in hierdie blaaier se plaaslike IndexedDB-databasis.
Patrone gebruik slegs 'n 5 × 5 rooster en ten minste ses duidelike kolletjies. Vorige patroonformate word nie ondersteun nie. Bestaande kluise het hul herstelsleutels nodig om 'n nuwe patroon in te skryf. Roostergrootte is nie 'n belofte van wagwoordsterkte nie: voorspelbare gebare is steeds makliker om te raai. Die toestelgeheim voeg beskerming by teen iemand wat net die bedienerrekords het, maar dit is nie 'n hardeware-gesteunde sleutel nie. Iemand wat beide die plaaslike geheim en omhulsel kopieer, kan vanlyn patroonraaiings probeer.
Wagsleutels staaf jou rekening deur publieke sleutel-uitdagingsantwoorde te gebruik. Rekeningstawing lei nie 'n kluissleutel af of dekripteer jou lêers nie. 'n Geldige rekeningsessie en 'n suksesvolle kluisontsluiting is afsonderlike vereistes in die normale toepassingsvloei.
| Doel | Konstruksie |
|---|---|
| Vault-hoofsleutel | Ewekansige 256-bis AES sleutel |
| Sleutel toedraai | PBKDF2-HMAC-SHA-256 · 600 000 iterasies · 128-bis sout → AES-256-GCM |
| Metadata en duimnaels | AES-256-GCM · ewekansige 96-bis nonce · 128-bis stawingmerker |
| Lêer sleutel afleiding | HKDF-SHA-256 · per-lêer ewekansige 256-bis sout · 256-bis AES uitvoer |
| Herstel geheim | 192 ewekansige bisse, vertoon as ses groepe heksadesimale karakters |
Vertroulikheid en peuteropsporing
Vault-metadata, lêermetadata, duimnaels en toegedraaide sleutels gebruik AES-256-GCM met 128-bis-verifikasiemerkers. Elke onafhanklike enkripsie gebruik 'n vars ewekansige 96-bis nonce. Dekripsie verifieer die merker voordat gewone teks teruggestuur word; gewysigde syferteks of 'n verkeerde sleutel veroorsaak dat verifikasie misluk.
Bykomende geverifieerde data bind elke geënkripteerde voorwerp aan sy formaatweergawe, kluisidentifiseerder, objekidentifiseerder en doel. Byvoorbeeld, 'n kleinkiekie en lêermetadatarekord gebruik verskillende kontekste. Deur 'n geënkripteerde voorwerp na 'n ander kluis te skuif of dit met 'n ander voorwerp te vervang, verander die geverifieerde konteks en misluk verifikasie.
Geverifieerde konteks versteek nie identifiseerders nie en bewys nie varsheid nie. 'n Geldige ouer rekord kan steeds 'n geldige merker hê. Toepassingshersieningskontroles bespeur gewone gelyktydige opdaterings, maar dit is nie 'n kriptografiese verdediging teen 'n kwaadwillige diens wat 'n volledige ouer toestand weerspeel nie.
Groot lêers gebruik geverifieerde segmente
Lêerinhoud gebruik die AES-256-GCM-HKDF-SHA-256-stroomkonstruksie wat deur Tink beskryf word, geïmplementeer met behulp van kriptografiese primitiewe blaaier. Elke nuwe lêerstroom het 'n 40-grepe kopskrif wat sy lengtemerker bevat, 'n ewekansige 32-grepe sout en 'n ewekansige 7-grepe nonce-voorvoegsel.
HKDF lei 'n aparte lêerenkripsiesleutel van die kluishoofsleutel af. Die konteks daarvan sluit die kluis- en lêeridentifiseerders, gewone teksgreeplengte en gekonfigureerde segmentgrootte in. Elke segment se 12-grepe nonce kombineer die ewekansige voorvoegsel, 'n vier-grepe segmentteller en 'n finale segment vlag. Segmente dra 128-bis GCM-etikette.
Die toepassing verwerk lêers in begrensde segmente van ongeveer 5 MiB. Segmentposisies, die finale segmentvlag en verwagte greeplengtes maak dat omgeruilde, veranderde of afgekapte segmente nie verifikasie nie. Aflaaie staaf elke segment voordat dit vrygestel word; 'n fout laat in 'n stroom kan 'n onvolledige aflaai laat, so suksesvolle voltooiing is belangrik. Oplaai herproberings hergebruik reeds geënkripteerde grepe eerder as om nuwe inhoud met dieselfde segment nonce te enkripteer.
Die konstruksie volg op die Tink AES-GCM-HKDF streaming spesifikasie. Revault se implementering en segmentkonfigurasie is nie onafhanklik deur Tink geoudit of gesertifiseer nie.
Herstel is 'n tweede pad na dieselfde sleutel
'n Herstelgeheim word uit 24 ewekansige grepe gegenereer, wat 192 bisse ewekansige invoer gee. Dit verkry onafhanklik 'n wikkelsleutel deur PBKDF2-HMAC-SHA-256 en sy eie sout te gebruik, en enkripteer dieselfde kluishoofsleutel met AES-256-GCM. Enigiemand wat die herstelgeheim en 'n kopie van die geënkripteerde kluis bekom, kan daardie kluis dekripteer.
Die herstelgeheim word tydens opstelling vertoon en word nie deur die diens in gewone teks gestoor nie. Hou dit apart van jou geënkripteerde lêers. Deur blaaierdata uit te vee, verwyder die toestelgeheim; om toegang te herwin vereis jou rekening se geënkripteerde wolkkopie en die herstelsleutel, of 'n uitgevoerde geënkripteerde rugsteun en sy herstelsleutel. Daar is geen hoofdekripsiesleutel wat deur die verskaffer gehou word nie.
'n Herstelstel bevat 'n geheim en sleutelomhulsels, maar geen lêerinhoud nie. 'n Geënkripteerde rugsteun bevat 'n geverifieerde voorraad en geënkripteerde lêersegmente, sonder die blaaier se toestelgeheim. Invoer verifieer die geënkripteerde data en skep 'n nuwe kluis met nuwe identifiseerders en sleutels.
Die verandering van 'n patroon vervang hierdie toestel se omhulsel. Dit draai nie die kluishoofsleutel, herroep 'n ander toestel, maak ou rugsteun ongeldig of verander 'n bestaande herstelgeheim nie. As 'n kluissleutel of herstelgeheim gekompromitteer word, skuif die data na 'n nuwe kluis met vars sleutels.
Inheemse aandele gebruik onafhanklike enkripsie
Mobiele delings verpak standaard die sleutels van gekose lêerweergawes onder ’n nuwe deelsleutel en hergebruik geënkripteerde lêergrepe. Opsionele ekstra isolasie enkripteer die lêers opnuut. Die bronkluis se sleutels bly privaat. Identiese syferteks kan delings verbind; geen modus kan ’n ontvanger se gestoorde kopie terugroep nie.
iOS kan hierdie syferteks in 'n aparte CloudKit rekordhiërargie plaas met 'n privaat, leesalleen-uitnodiging. Dit deel nie die kluis se sinkroniseringsone nie. Kruisplatform-inheemse aandele gebruik begrensde bedieneronderdele met SHA-256 kontrolesomme. Onafhanklike ewekansige 256-bis lees- en bestuursvermoëns word as hashes op die bediener gestoor. Die dekripsie geheim word afsonderlik deurgegee en nooit opgelaai nie. Beheerde aandele verval op die sender se gekose tyd, binne 30 dae. Die diens tel toegangsessies atoom en dwing die gekose maksimum, verval en herroeping af. 'n Aflaaisessie duur hoogstens 15 minute en nooit verder as deelvervaldatum nie.
Ontvangers verifieer elke geënkripteerde segment en maak 'n geïsoleerde gedeelde kluis oop met die afsender se aparte geheim. Geen rekening, persoonlike kluis of patroon word vereis nie. Persoonlike kluise bly gesluit. Wanneer uitvoer toegelaat word, kan ontvangers 'n geënkripteerde .qvault kopie stoor wat met daardie deelgeheim oopmaak. Andersins is uitvoerkontroles afwesig. Die tydelike sessie bekragtig deurlopende toegang. Dit is toepassingkontroles: skermkiekies, gewysigde kliënte en behoue kopieë kan nie kriptografies voorkom word nie. Aandele is momentopnames sonder deurlopende bronopdaterings. Onbeperkte CloudKit uitnodigings dwing nie toegangtellings of outomatiese verval af nie; toegang duur totdat die eienaar ophou deel. Die verwydering van 'n oorspronklike herroep nie sy afsonderlike deel nie, en geen herroeping kan 'n reeds behoue kopie herroep nie.
Opsionele kluisaktiwiteit
Inheemse ouditloglêers is by verstek af en gekonfigureer per kluis op elke toestel. Die jongste 500 plaaslike geleenthede is geïnkripteer met die kluis se hoofsleutel en 'n toegewyde geverifieerde konteks. Hulle sluit sleutels, patrone, lêerinhoud en ander kluise se data uit, sinkroniseer nie en kan uitgevee of gedeaktiveer word. Hulle is nie peuterbestande bewyse nie. Mislukte ontsluitings word nie aan 'n kluis toegewys nie.
Nuwe beheerde delings wat geskep is met aanteken geaktiveer, behou tot 100 toegangsessie-tydstempels op die deeldiens. Slegs die bestuursvermoë kan hulle herwin; die logboek bevat geen ontvanger-identiteit of dekripsie-geheim nie. Die deaktivering van plaaslike logboek beïnvloed toekomstige aandele. Bestaande deelloglêers behou hul oorspronklike instelling tot herroeping of verstryking en opruiming.
Opsionele geënkripteerde inbraakfoto's
Eienaars kan Inbraakwaarskuwings afsonderlik vir elke kluis op elke toestel aktiveer. Na drie ongeëwenaarde patrone kan die voorgrond-toepassing 'n foto van die voorste kamera vasvang, onderhewig aan toestemming, kamerabeskikbaarheid en 'n afkoeling van een minuut. Stelselkamera-aanwysers bly sigbaar. Die jongste tien waarskuwings word plaaslik gestoor en word nooit by Foto's gevoeg of opgelaai nie. 'n Ongeëwenaarde patroon identifiseer nie 'n teikenkluis nie, so elke kluis wat ingeteken is, ontvang 'n afsonderlik geënkripteerde toestelpogingrekord.
'n Toegewyde RSA-3072 publieke sleutel omvou 'n vars 256-bis AES-GCM sleutel vir elke waarskuwing wat OAEP gebruik met SHA-256 en MGF1-SHA-256. Dit laat enkripsie toe terwyl die kluis gesluit is. Die ooreenstemmende private sleutel is self geïnkripteer onder daardie kluis se hoofsleutel met 'n toegewyde geverifieerde konteks. Slegs die ontsluiting van daardie kluis kan sy foto's dekripteer. Waarskuwings verskyn in sy ouditaansig onafhanklik van gewone aktiwiteitsregistrasie en kan in Inbreekwaarskuwings-instellings uitgevee word. Hulle is nie peuterbestande bewyse nie.
Geënkripteerde oplaaie na jou eie emmer
Die berginginstellings van 'n kluis kan hierdie blaaier direk aan 'n gebruiker-gespesifiseerde S3-versoenbare HTTPS-eindpunt koppel. Geselekteerde toestellêers word plaaslik geïnkripteer met dieselfde lêerkonstruksie. Elkeen word 'n aparte, draagbare .qvault-objek wat 'n geverifieerde geënkripteerde voorraad en toegedraaide kluissleutels bevat. Ewekansige voorwerpname vermy die blootlegging van die oorspronklike lêername. Herstel vereis die afgelaaide voorwerp en die kluisherstelsleutel.
Die eindpuntkonfigurasie en geloofsbriewe word geïnkripteer onder die kluishoofsleutel met 'n toegewyde geverifieerde konteks en in hierdie toestel se IndexedDB gehou. Hulle word nie gesinkroniseer of na Revault se API gestuur nie. Versoekondertekening gebruik AWS Signature Weergawe 4, HMAC-SHA-256, en 'n hash van elke begrensde versoekliggaam. Agt-MiB meervoudige dele dra reeds geënkripteerde grepe direk na die bergingverskaffer. Emmertoegang bly deur daardie verskaffer se toestemmings en CORS-beleid beheer.
Die verskaffer kan toegangsleutelidentifiseerders, objekpaaie, greepgroottes, oplaaitye en verbindingsinligting sien. Hou die emmer privaat en sy geloofsbriewe in ooreenstemming met die vereiste bedrywighede. Opgelaaide voorwerpe is onafhanklik van Revault wolksinkronisering en -deling. Sluiting of kansellasie pogings om onvoltooide oplaaie te staak; oortjie-sluiting of verlies van konnektiwiteit kan wees dele laat, so stel 'n onvolledige-oplaai lewensiklus reël op. Safe Exit verwyder ander kluise se plaaslike bergingsbewyse, maar vee nie voorwerpe uit hul emmers uit nie.
Safe Exit verwyder plaaslike toegang
Jy kan een kluis in hierdie blaaier as 'n Safe Exit-kluis aanwys. Deur die kluis se patroon in te voer, word dit normaalweg oopgemaak, sonder 'n snellerbevestiging of voltooiingskennisgewing. Ander kluise se plaaslike kiekies, geënkripteerde stukke, toestelgeheime en touveranderings word verwyder. Ongesinkroniseerde data kan verlore gaan.
'n Volgehoue plaaslike grens verhoed dat daardie kluise outomaties gelys of herstel word deur sinchronisasie op hierdie blaaier. Hul geënkripteerde wolkkopieë en kopieë op ander toestelle bly onveranderd. Herstel is eksplisiet, een kluis op 'n slag, en vereis daardie kluis se herstelsleutel voordat 'n nuwe toestelpatroon ingeskryf kan word.
Dit is verwydering van plaaslike toegang, nie gewaarborgde fisiese uitwissing of forensiese verberging nie. Blaaierprofiele, lêerstelsel-kiekies, vorige aflaaie, skermkiekies, diensrekords en 'n ander toestel kan bewyse behou. Deur hierdie blaaier se plaaslike data skoon te maak, word ook die plaaslike isolasiegrens skoongemaak; 'n vars installasie kan die rekening se wolkkluise weer lys na verifikasie.
Wat sigbaar bly
Enkripsie beskerm inhoud, nie elke feit oor berging nie. Die diens kan rekeningassosiasies, ewekansige objekidentifiseerders, objektellings, greepgroottes, hersienings, tydstempels, geënkripteerde omhulsels, stroomopskrifte en versoekaktiwiteit waarneem. Netwerk- en operasionele rekords kan verbindingsinligting openbaar. Dit is nie 'n anonimiteitstelsel nie en bied nie weerstand teen verkeersanalise nie.
Vervoerkodering beskerm versoeke tydens vervoer wanneer die toepassing oor HTTPS bedien word. Dit is apart van die kliënt-kant-enkripsie wat gestoorde lêerinhoud by die diens geïnkripteer hou.
Waar die beskerming eindig
Privaat blaai vee gewoonlik plaaslike berging uit wanneer die private sessie eindig. 'n Aanhoudende bergingversoek maak nie 'n incognitosessie permanent nie. Gesinkroniseerde wolkkopieë bly, maar plaaslike patrone, ongesinkroniseerde veranderinge, gekaslêers en Safe Exit-instellings kan verlore gaan. 'n Nuwe privaat sessie benodig rekeningtoegang en jou herstelsleutel om 'n nuwe patroon in te skryf.
Die toepassing laat vaar sy in-geheue kluis sleutel verwysing en herroep private voorskou URL's wanneer gesluit. Dit sluit outomaties wanneer dit versteek is of na vyf minute se onaktiwiteit. Inheemse programme sluit ook wanneer dit op agtergrond is, verwyder tydelike voorskoue en vee besit sleutelbuffers uit wanneer bedrywighede klaar is. Blaaier-, Swift- en JVM-geheuebestuur kan nie die onmiddellike uitvee van elke sleutelkopie of gedekodeerde mediabuffer waarborg nie.
Wanware, 'n onveilige uitbreiding, gekompromitteerde toepassingskode, of iemand wat 'n oopgesluit skerm bekyk, kan gewone teks en geheime vaslê. Enkripsie kan nie ontkenning van diens van rekeninge, uitgevee wolkvoorwerpe, losprysware, verlies van 'n herstelgeheim of 'n diensweerhoudingsdata verhoed nie. Hou 'n aparte geënkripteerde rugsteun en beskerm die toestel self.
Revault het nie 'n onafhanklike sekuriteitsoudit ondergaan nie. Dit is beskrywings van die geïmplementeerde kriptografiese ontwerp, nie 'n sertifisering of 'n waarborg teen elke inbraak nie.