Ochrana začína pred nahraním
Natívne trezory fungujú lokálne bez účtu Revault. Obsah súborov, názvy súborov, typy MIME, miniatúry, názvy trezorov, priečinky, štítky a obľúbené položky sú šifrované v zariadení. Lokálne používanie nenahráva súbory trezora do Revault. Natívna synchronizácia v cloude a zdieľanie sú voliteľné, samostatné operácie.
Model predpokladá dôveryhodný operačný systém, nainštalovanú aplikáciu a kryptografický zdroj náhody pri vytváraní alebo odomykaní trezora. Ten, kto má iba šifrované súbory a obaly kľúčov, ich bez potrebného tajomstva nedešifruje. Malvér alebo napadnutá aplikácia bežiaca počas otvoreného trezora môže zachytiť obyčajný text a kľúče.
Nezávislé kľúče pre každý trezor
Každý trezor začína náhodným 256-bitovým hlavným kľúčom AES vygenerovaným pomocou kryptografického zdroja náhody operačného systému. Gesto tento kľúč priamo neurčuje. Každý trezor má nezávislý materiál hlavného kľúča, takže prezradenie kľúča jedného trezora neumožňuje odvodiť iný.
Vzor zariadenia spája usporiadanú postupnosť bodov s náhodným 256-bitovým tajomstvom zariadenia. Výsledný vstup sa normalizuje pomocou NFKC a odovzdá do PBKDF2-HMAC-SHA-256 s novou 128-bitovou soľou a 600 000 iteráciami. Odvodený 256-bitový kľúč zabalí hlavný kľúč pomocou AES-256-GCM. Aplikácia neukladá vzor v čitateľnej podobe ani samostatný odtlačok vzoru.
Vzory používajú mriežku 5 × 5 so šiestimi až 25 rôznymi bodmi a musia byť jedinečné medzi trezormi zaregistrovanými na tom istom zariadení. Zodpovedajúci vzor otvorí iba svoj trezor; názvy a obsah ostatných trezorov zostávajú skryté. Predvídateľné gestá sa stále uhádnu ľahšie. Osoba, ktorá získa tajomstvo zariadenia aj jeho šifrovaný obal, môže skúšať odhady vzoru offline.
Otvorenie natívneho trezora vyžaduje jeho lokálny vzor alebo výslovný postup obnovy, nie účet Revault ani prístupový kľúč (passkey). Voliteľná synchronizácia v cloude využíva autorizáciu platformy Apple alebo Google a nákupy v obchode využívajú fakturačný účet platformy. Cloudová autorizácia ani nákup neposkytujú dešifrovací kľúč trezora.
| Účel | Konštrukcia |
|---|---|
| Hlavný kľúč trezora | Náhodný 256-bitový kľúč AES |
| Zabaľovanie kľúčov | PBKDF2-HMAC-SHA-256 · 600 000 iterácií · 128-bitová soľ → AES-256-GCM |
| Metadáta a miniatúry | AES-256-GCM · náhodný 96-bitový nonce · 128-bitový autentifikačný tag |
| Odvodenie kľúča súboru | HKDF-SHA-256 · náhodná 256-bitová soľ pre každý súbor · 256-bitový výstup AES |
| Tajomstvo na obnovenie | Vygenerovaná: 18 náhodných slov (198 bitov); vlastná: aspoň 6 rôznych slov a 32 – 512 znakov |
Ochrana kľúča viazaná na zariadenie
V iOS je zámok zariadenia uložený ako nesynchronizovaná položka Keychain s ochranou WhenUnlockedThisDeviceOnly. Je dostupný iba pri odomknutom zariadení a neprenáša sa synchronizáciou Keychain. Uložené tajomstvo nie je kľúčom Secure Enclave.
V Androide je zámok zariadenia šifrovaný pomocou AES-256-GCM kľúčom Android Keystore, ktorý nemožno exportovať a vyžaduje odomknuté zariadenie. Šifrovaný súbor zámku sa nachádza v adresári aplikácie vylúčenom zo zálohovania. Hardvérová podpora Keystore závisí od zariadenia; aplikácia nesľubuje, že každé zariadenie používa kľúče podporované hardvérom.
Lokálne odomykacie tajomstvá sú vylúčené z natívnej synchronizácie v cloude aj z prenosných záloh trezora. Vlastníctvo účtu Apple alebo Google tieto tajomstvá nevytvorí znova ani automaticky neodomkne obnovený trezor. Nové zariadenie musí overiť nezávislé obnovovacie tajomstvo a zaregistrovať vlastný vzor.
Dôvernosť a detekcia manipulácie
Metadáta trezora, metadáta súborov, miniatúry a zabalené kľúče používajú AES-256-GCM so 128-bitovými autentifikačnými tagmi. Každé nezávislé šifrovanie používa nový náhodný 96-bitový nonce. Dešifrovanie pred vrátením čitateľných údajov overí tag; upravený šifrovaný text alebo nesprávny kľúč spôsobí zlyhanie autentifikácie.
Dodatočné autentifikované údaje viažu každý šifrovaný objekt na verziu formátu, identifikátor trezora, identifikátor objektu a účel. Napríklad miniatúra a záznam metadát súboru používajú rôzne kontexty. Presunutie šifrovaného objektu do iného trezora alebo jeho nahradenie iným objektom zmení autentifikovaný kontext a overenie zlyhá.
Autentifikovaný kontext neskrýva identifikátory a nedokazuje aktuálnosť. Platný starší záznam môže mať stále platný tag. Kontroly revízií v aplikácii zachytia bežné súbežné aktualizácie, ale nejde o kryptografickú obranu proti škodlivej službe, ktorá by znova prehrala celý starší stav.
Veľké súbory používajú autentifikované segmenty
Natívne šifrovanie súborov používa streamovaciu konštrukciu AES-256-GCM-HKDF-SHA-256 opísanú v Tink. iOS používa CryptoKit pre AES-GCM a HKDF; Android používa kryptografické primitíva platformy. Každý nový stream má 40-bajtovú hlavičku obsahujúcu značku dĺžky, náhodnú 32-bajtovú soľ a náhodnú sedembajtovú predponu nonce.
HKDF odvodí samostatný šifrovací kľúč súboru z hlavného kľúča trezora. Jeho kontext zahŕňa identifikátory trezora a súboru, dĺžku čitateľných údajov v bajtoch a nakonfigurovanú veľkosť segmentu. 12-bajtový nonce každého segmentu spája náhodnú predponu, štvorbajtové počítadlo segmentu a príznak posledného segmentu. Segmenty nesú 128-bitové tagy GCM.
Natívne aplikácie spracúvajú súbory v ohraničených segmentoch s veľkosťou približne 5 MiB. Počítadlá segmentov, príznak posledného segmentu a očakávané dĺžky v bajtoch odhalia zmenené, preusporiadané alebo skrátené segmenty. Každý segment sa pred použitím overí a súkromná ukážka sa zverejní až po dokončení dešifrovania súboru. Pri zlyhaní sa neúplný výstup zahodí; opakované pokusy prenášajú existujúce šifrované bajty.
Konštrukcia sa riadi špecifikáciou streamovania Tink AES-GCM-HKDF. Implementácia Revault a konfigurácia segmentov neboli nezávisle auditované ani certifikované projektom Tink.
Súkromné úložisko, importy a ukážky
Šifrované súbory trezora sú uložené v súkromnom úložisku aplikácie. Názvy súborov, typy MIME, priečinky, štítky, obľúbené položky a miniatúry sú overené šifrované záznamy. Vyhľadávanie a filtrovanie štítkov prebieha nad dešifrovanými metadátami aktívneho trezora po odomknutí; neexistuje žiadny serverový index vyhľadávania v čitateľnej podobe.
Importy fotografií, videí a súborov môžu pred šifrovaním využívať súkromné dočasné pracovné úložisko. Snímanie fotoaparátom v trezore automaticky neukladá kópiu do galérie. Import z Fotiek alebo od iného poskytovateľa ponecháva originál tohto poskytovateľa nedotknutý. Voliteľná optimalizácia médií prebieha lokálne pred šifrovaním a mení len novo importované médiá.
Súkromné ukážky vyžadujú dočasný čitateľný text, kým sú otvorené. Aplikácie svoje dočasné ukážky odstraňujú pri zatvorení, zamknutí a nasledujúcom spustení; iOS na dešifrované súbory ukážok uplatňuje úplnú ochranu súborov. Súbory, ktoré ste výslovne exportovali do inej aplikácie, opúšťajú ochranu trezora. Odstránenie dočasných súborov nie je zárukou forenzného vymazania.
Voliteľná natívna synchronizácia v cloude
Synchronizácia je predvolene vypnutá a zapína sa samostatne pre každý trezor na každom zariadení. iOS ukladá šifrované záznamy a segmenty súborov do súkromnej databázy CloudKit používateľa v iCloud. Android používa súkromný priečinok appDataFolder na Google Drive. Ani jeden prenos nevyžaduje účet Revault ani nenahráva natívne synchronizačné údaje do webového cloudu Revault.
Cloud prijíma šifrované metadáta, segmenty súborov a obaly kľúčov, nie hlavný kľúč trezora v čitateľnej podobe, lokálne tajomstvo zariadenia ani obnovovacie tajomstvo. Ďalšie zariadenie na rovnakej platforme potrebuje rovnaký natívny cloudový účet a obnovovací kľúč trezora, aby zaregistrovalo vlastný lokálny vzor. Autorizácia Apple a Google riadi prístup k šifrovaným záznamom, nie ich dešifrovanie.
Vypnutie synchronizácie zastaví ďalšie prenosy daného trezora z aktuálneho zariadenia; existujúce šifrované cloudové kópie zostanú. Synchronizácia môže šíriť zmeny a odstránenia a súbežné úpravy môžu vyžadovať kontrolu konfliktov. iCloud a Google Drive sú samostatné úložiská, bez automatického mostu medzi platformami. Na presun medzi iPhonom a Androidom použite šifrovaný prenos medzi telefónmi.
Obnovenie je druhá cesta k tomu istému kľúču
Vygenerované obnovovacie frázy obsahujú 18 nezávisle vybraných slov zo súčasne dodávaného zoznamu s 2 048 slovami, čo poskytuje 198 bitov náhodnosti. Namiesto toho môžete zvoliť vlastnú frázu s aspoň šiestimi rôznymi slovami a 32 – 512 znakmi; jej sila závisí od vášho výberu. V oboch prípadoch sa nezávisle odvodí obaľovací kľúč pomocou PBKDF2-HMAC-SHA-256 a novej soli a potom sa týmto kľúčom pomocou AES-256-GCM zabalí rovnaký hlavný kľúč trezora. Ktokoľvek s frázou a šifrovaným trezorom ho dokáže dešifrovať.
Obnovovacie tajomstvo sa zobrazí počas nastavenia a neukladá sa v úložisku natívnej aplikácie ani sa nenahráva do natívneho cloudového úložiska. Uchovávajte ho oddelene od šifrovaných súborov. Registrácia ďalšieho zariadenia vyžaduje šifrovaný trezor z pôvodného natívneho cloudového účtu alebo šifrovanú zálohu spolu s obnovovacím kľúčom. Tajomstvo nedokáže obnoviť chýbajúce údaje súborov a Revault nemá u poskytovateľa žiadny kľúč na obnovenie.
Prenosná záloha .qvault obsahuje šifrované obaly kľúčov, overený šifrovaný inventár a šifrované segmenty súborov. Vylučuje lokálne odomykacie tajomstvo zariadenia. Import overí inventár, metadáta a každý segment, až potom obnoví údaje do trezora s novými identifikátormi, hlavným kľúčom, kľúčmi súborov a novým vzorom zariadenia. Po obnove uložte nový obnovovací kľúč.
Nové obnovovacie frázy zachovávajú veľkosť písmen, normalizujú Unicode pomocou NFKC a zlučujú nadbytočné medzery. Staršie hexadecimálne kľúče zostávajú podporované. Obnovovaciu frázu trezora môžete nahradiť v jeho nastaveniach po uložení novej frázy. Tým sa nahradí aktuálny obnovovací obal; staré zálohy a zariadenia, ktoré sa nesynchronizovali, môžu stále obsahovať starý obal. Zmena vzoru alebo obnovovacej frázy nemení hlavný kľúč trezora ani neodvoláva kópie. Ak dôjde k prezradeniu kľúčového materiálu, presuňte súbory do nového trezora s novými kľúčmi.
Šifrovaná migrácia z telefónu do telefónu
Prenos medzi telefónmi vytvorí prenosnú šifrovanú kópiu s novými identifikátormi trezora, hlavným kľúčom, kľúčmi súborov a hlavičkami streamov. Jeho nezávislé prenosové tajomstvo nedokáže odomknúť zdrojový trezor a obnovovacie tajomstvo zdroja ani odomykacie tajomstvo zariadenia nie sú zahrnuté. Šifrovaný balík a prenosové tajomstvo sa musia doručiť oddelene.
Prijímajúca aplikácia overí autentickosť balíka a jeho segmentov súborov a potom obnoví údaje do nového trezora s novým lokálnym vzorom a obnovovacím kľúčom. Funguje to medzi iOS a Androidom bez prepájania ich cloudových účtov. Originál zostáva v starom zariadení; pred jeho odstránením potvrďte obnovený obsah a uložte nový obnovovací kľúč.
Zamykanie a čistenie relácie
Mobilné aplikácie sa zamknú okamžite po presune na pozadie a predvolene po 60 sekundách nečinnosti. Každý trezor môže zvoliť 30 sekúnd, 1 minútu, 2 minúty, 5 minút alebo 10 minút. Zdieľaný trezor používa predvolených 60 sekúnd. Ukončenie vráti na obrazovku so vzorom a ukončí dešifrovanú reláciu.
Zamknutie zruší prácu relácie, vymaže dešifrované metadáta a stav vyhľadávania, zatvorí ukážky, odstráni dočasné súbory a prepíše vlastnené vyrovnávacie pamäte kľúčov pred ich uvoľnením. Dočasné odvodzovacie kľúče sa po použití tiež vymažú. Správa pamäte v Swift a JVM, kryptografické knižnice a dekodéry médií môžu vytvárať kópie; okamžité vymazanie každej kópie sa zaručiť nedá.
iOS zakrýva snímky prepínača aplikácií ochranným štítom súkromia. Android používa príznak zabezpečeného okna na obmedzenie snímok obrazovky a ukážok nedávnych aplikácií. Tieto ochrany platformy nezabránia tomu, aby niekto odfotil odomknutú obrazovku, a nevrátia späť súbory predtým exportované do inej aplikácie.
Revault Cloud
Revault Cloud je voliteľný poskytovateľ úložiska Pro na synchronizáciu medzi platformami. Šifrované segmenty a šifrované metadáta súborov sú prepojené s pseudonymnou fakturačnou inštaláciou. Služba vidí identifikátory úložiska, veľkosti, kontrolné súčty, revízie a prenosovú aktivitu, ale neobdrží žiadny rozbalený kľúč od trezora ani obnovovaciu frázu. Prístup k úložisku povoľuje samostatný náhodný pripájací kód; na pripojenie ďalšieho zariadenia je navyše potrebná obnovovacia fráza. Existujúce údaje v cloude zostávajú po skončení Pro čitateľné na účely obnovenia.
Natívne prenosy zdieľania a riadenie prístupu
V iOS súkromná pozvánka CloudKit len na čítanie umiestni šifrovanú snímku do samostatnej hierarchie záznamov zdieľania mimo osobnej synchronizačnej zóny. Prístup k pozvánke riadi Apple; príjemca stále potrebuje samostatné dešifrovacie tajomstvo. Pozvánky CloudKit nevynucujú serverový počet prístupových relácií, pevnú platnosť ani časovač zničenia. Vlastník môže zastaviť budúci prístup cez CloudKit.
Zdieľania medzi platformami nahrávajú šifrované časti do zdieľacej služby Revault. Nezávislé náhodné 256-bitové oprávnenia na čítanie a správu sa ukladajú ako hashe SHA-256. Odkaz na webe nesie oprávnenie na čítanie vo fragmente, nie dešifrovacie tajomstvo. Jeho otvorením sa priamo prejde do zdieľaného trezora a zobrazí sa výzva na zadanie tajomstva odosielateľa; nevyžaduje sa osobný vzor ani existujúci trezor. Osobné trezory zostávajú zamknuté.
Riadené serverové zdieľania vynucujú odosielateľom stanovený maximálny počet prístupových relácií, pevnú platnosť do 30 dní, zrušenie a voliteľné povolenie exportu. Relácia sa udeľuje atomicky a trvá najviac 15 minút, ohraničená termínmi zdieľania. Prístup sa započíta pri udelení relácie, aj keď sťahovanie alebo dešifrovanie zlyhá. Prehliadač priebežne kontroluje prístup a v termíne sa zatvorí.
Kontrolné súčty SHA-256 overujú prenesené časti, zatiaľ čo autentifikované šifrovanie overuje ich obsah. Ak je export povolený, prezerajúci môže uložiť šifrovanú kópiu .qvault, ktorú otvorí tajný kód zdieľania. Vypnutie exportu odstráni túto akciu v aplikácii, no kryptograficky nedokáže zabrániť snímkam obrazovky ani upravenému klientovi, ktorý si ponechá nešifrovaný obsah. Odstránenie zdrojového súboru neodvolá samostatne vytvorené zdieľanie.
Voliteľná aktivita trezora
Natívne záznamy auditu sú predvolene vypnuté a konfigurujú sa pre každý trezor na každom zariadení. Posledných 500 lokálnych udalostí je šifrovaných hlavným kľúčom trezora a vyhradeným autentifikovaným kontextom. Neobsahujú kľúče, vzory, obsah súborov ani údaje iných trezorov, nesynchronizujú sa a možno ich vymazať alebo vypnúť. Nie sú dôkazom odolným voči manipulácii. Neúspešné odomknutia nie sú priradené k trezoru.
Nové riadené zdieľania vytvorené so zapnutým záznamom uchovávajú v službe zdieľania až 100 časových značiek prístupových relácií. Získať ich môže iba správcovská schopnosť; záznam neobsahuje identitu príjemcu ani dešifrovacie tajomstvo. Vypnutie lokálneho záznamu sa týka budúcich zdieľaní. Existujúce záznamy zdieľania si ponechávajú pôvodné nastavenie do zrušenia alebo vypršania a vyčistenia.
Voliteľné šifrované fotografie neoprávneného prístupu
Vlastníci môžu Upozornenia na neoprávnený prístup zapnúť samostatne pre každý trezor na každom zariadení. Po troch nezhodných vzoroch môže aplikácia v popredí zachytiť fotografiu prednou kamerou, podľa oprávnenia, dostupnosti kamery a jednominútovej pauzy. Systémové indikátory kamery zostávajú viditeľné. Posledných desať upozornení sa ukladá lokálne a nikdy sa nepridáva do Fotografií ani nenahráva. Nezhodný vzor neurčí cieľový trezor, preto každý trezor, ktorý sa prihlásil, dostane samostatne šifrovaný záznam o pokuse na zariadení.
Vyhradený verejný kľúč RSA-3072 zabalí nový 256-bitový kľúč AES-GCM pre každé upozornenie pomocou OAEP so SHA-256 a MGF1-SHA-256. To umožňuje šifrovanie, keď je trezor zamknutý. Zodpovedajúci súkromný kľúč je sám zašifrovaný hlavným kľúčom daného trezora s vyhradeným autentifikovaným kontextom. Fotografie dokáže dešifrovať len odomknutie tohto trezora. Upozornenia sa zobrazujú v jeho zobrazení auditu nezávisle od bežného zaznamenávania aktivity a možno ich vymazať v nastaveniach Upozornení na neoprávnený prístup. Nie sú dôkazom odolným voči manipulácii.
Bezpečný východ odstráni lokálny prístup
Jeden trezor v zariadení môže byť určený pre Bezpečný východ. Zadanie jeho vzoru ho otvorí ako obvykle, no odstráni ostatné lokálne záznamy trezorov, šifrované bloky, údaje na odomknutie zariadenia a čakajúce zmeny. Aplikácia si uchováva trvalý lokálny zoznam povolených trezorov, aby synchronizácia nemohla nenápadne obnoviť vylúčené trezory. Šifrované prenosy, ktoré už prebiehajú, sa môžu ešte dokončiť.
Natívne kópie v cloude a kópie v iných zariadeniach zostávajú zachované. Výslovná obnova vyžaduje obnovovací kľúč vylúčeného trezora skôr, než sa zaregistruje nový lokálny vzor. Trezor len v zariadení bez samostatnej zálohy sa môže stratiť. Toto nastavenie sa vzťahuje na aktuálnu inštaláciu, nie na všetky zariadenia používajúce rovnaký cloudový účet.
Bezpečný východ nie je zaručené forenzné vymazanie ani utajenie. Flash úložisko, vyrovnávacie pamäte operačného systému, zálohy a predchádzajúce exporty môžu uchovať stopy. Odstránenie údajov aplikácie alebo jej opätovná inštalácia môže zrušiť lokálnu izoláciu; záznamy v cloude potom môžu byť znova nájdené cez natívny cloudový účet. Tieto záznamy odomkne iba obnovovací tajný kód.
Čo zostáva viditeľné
Šifrovanie skrýva obsah, nie všetky prevádzkové informácie. Lokálne záznamy a poskytovatelia cloudu môžu vidieť identifikátory, vzťahy medzi záznamami, počty objektov, veľkosti, revízie, časové značky, šifrované obaly kľúčov a hlavičky tokov. Identifikátory používajú UUIDv7 a obsahujú informácie o čase vytvorenia; nie sú tajné. Apple alebo Google môže priradiť aktivitu natívnej synchronizácie k účtu platformy.
Kontrolovaná služba zdieľania Revault môže vidieť veľkosti šifrovaných balíkov, kontrolné súčty častí, nastavenia platnosti, počty prístupových relácií a voliteľné časové značky relácií, no nie samostatne doručený dešifrovací tajný kód. Zdieľanie cez CloudKit sprístupňuje Apple informácie o pozvánkach a účastníkoch. Sieťové a prevádzkové záznamy môžu odhaliť informácie o pripojení. Revault neposkytuje anonymitu ani odolnosť voči analýze sieťovej prevádzky.
HTTPS chráni sieťové požiadavky počas prenosu. Autentifikované šifrovanie vo vašom zariadení samostatne chráni obsah trezora uložený lokálne aj v cloude. Ani šifrovanie prenosu, ani zašifrované dáta neskrývajú všetko o tom, kedy, kde alebo koľko dát sa prenáša.
Analytika používania
Predvolene zapnuté. Mixpanel prijíma udalosti používania funkcií s náhodným analytickým ID. Obsah trezora, názvy, vzory, kľúče a tajné kódy zdieľania sú vylúčené. Analytiku môžete kedykoľvek vypnúť pre tento prehliadač alebo zariadenie.
Kde ochrana končí
Odomknutý trezor nevyhnutne sprístupňuje dešifrované informácie relácii aplikácie. Môže ich zachytiť malvér, napadnutý operačný systém či aplikácia, osoba, ktorá sleduje obrazovku, alebo nedôveryhodný príjemca. Uloženie kľúča iba v zariadení je ďalšou hranicou, nie zárukou pri úplne napadnutom zariadení. Predvídateľný vzor je nebezpečný, hneď ako sa jeho lokálny tajný kód prezradí.
Šifrovanie nezabráni zmazaniu v cloude, ransomvéru, strate obnovovacieho tajného kódu, zadržiavaniu záznamov poskytovateľom ani návratu celého predtým platného šifrovaného stavu na staršiu verziu. Uchovávajte nezávislé šifrované zálohy a pred odstránením starého zariadenia si overte obnovu. Odvolanie nedokáže vziať späť snímky obrazovky, exporty ani kópie, ktoré si už ponechala iná osoba.
Revault neprešiel nezávislým bezpečnostným auditom. Ide o opis implementovaného kryptografického návrhu, nie o certifikáciu ani záruku proti každému prienikom.
Kryptografické referencie
NIST SP 800-38D — autentifikované šifrovanie GCMRFC 8018 — PBKDF2RFC 5869 — HKDFExistujúce trezory v prehliadači
Tento prehľad popisuje natívne aplikácie. Existujúce trezory v prehliadači majú samostatný účet, úložisko v zariadení a webový cloudový model. Nahrávanie do S3 špecifické pre prehliadač a odkazy na zdieľanie v prehliadači nie sú natívna synchronizácia v cloude. Účet v prehliadači vás neprihlási do mobilných aplikácií; na prenos existujúcich údajov z prehliadača do natívneho trezora použite šifrovanú zálohu a jej obnovovací kľúč.