Ochrana začíná před nahráním
Nativní trezory fungují lokálně bez účtu Revault. Obsah souborů, názvy souborů, typy MIME, miniatury, názvy trezorů, složky, štítky a oblíbené položky se šifrují v zařízení. Místní používání nenahrává soubory trezoru do Revaultu. Nativní synchronizace v cloudu a sdílení jsou volitelné, samostatné operace.
Model předpokládá důvěryhodný operační systém, nainstalovanou aplikaci a kryptografický zdroj náhody při vytvoření nebo odemknutí trezoru. Ten, kdo má pouze šifrované soubory a obaly klíčů, je bez potřebného tajemství nedešifruje. Malware nebo napadená aplikace běžící při otevřeném trezoru mohou zachytit otevřený text a klíče.
Nezávislé klíče pro každý trezor
Každý trezor začíná náhodným 256bitovým hlavním klíčem AES vygenerovaným pomocí kryptografického zdroje náhody operačního systému. Gesto tento klíč přímo neurčuje. Každý trezor má nezávislý materiál hlavního klíče, takže prozrazení klíče jednoho trezoru neodvodí klíč jiného.
Gesto zařízení spojuje uspořádanou posloupnost bodů s náhodným 256bitovým tajemstvím zařízení. Výsledný vstup se normalizuje pomocí NFKC a předá PBKDF2-HMAC-SHA-256 s novou 128bitovou solí a 600 000 iteracemi. Odvozený 256bitový klíč zabalí hlavní klíč pomocí AES-256-GCM. Aplikace neukládá gesto v otevřené podobě ani samostatný otisk gesta.
Gesta používají mřížku 5 × 5 se šesti až 25 různými body a musí být jedinečná napříč trezory registrovanými na stejném zařízení. Odpovídající gesto otevře pouze svůj trezor; názvy a obsah ostatních trezorů zůstávají skryté. Předvídatelná gesta se stále hádají snadněji. Osoba, která získá tajemství zařízení i jeho šifrovaný obal, může zkoušet hádat gesto offline.
Otevření nativního trezoru vyžaduje jeho místní gesto nebo výslovný postup obnovení, nikoli účet Revault ani přístupový klíč (passkey). Volitelná synchronizace v cloudu využívá autorizaci platformy Apple nebo Google a nákupy v obchodě používají fakturační účet platformy. Ani cloudová autorizace, ani nákup neposkytují dešifrovací klíč trezoru.
| Účel | Konstrukce |
|---|---|
| Hlavní klíč trezoru | Náhodný 256bitový klíč AES |
| Zabalení klíče | PBKDF2-HMAC-SHA-256 · 600 000 iterací · 128bitová sůl → AES-256-GCM |
| Metadata a miniatury | AES-256-GCM · náhodný 96bitový nonce · 128bitový autentizační tag |
| Odvození klíče souboru | HKDF-SHA-256 · náhodná 256bitová sůl pro každý soubor · 256bitový výstup AES |
| Tajný kód pro obnovení | Vygenerovaná: 18 náhodných slov (198 bitů); vlastní: alespoň 6 různých slov a 32–512 znaků |
Ochrana klíčů pouze v zařízení
V iOS je zámek zařízení uložen jako nesynchronizovaná položka Keychain s ochranou WhenUnlockedThisDeviceOnly. Je přístupný pouze při odemčeném zařízení a nemigruje přes synchronizaci Keychain. Uložené tajemství není klíč Secure Enclave.
V Androidu je zámek zařízení šifrován pomocí AES-256-GCM pod neexportovatelným klíčem Android Keystore, který vyžaduje odemčené zařízení. Šifrovaný soubor zámku je v adresáři aplikace vyloučeném ze zálohování. Hardwarová podpora Keystore závisí na zařízení; aplikace neslibuje, že každé zařízení používá klíče podložené hardwarem.
Místní odemykací tajemství jsou vyloučena z nativní synchronizace v cloudu a přenosných záloh trezoru. Vlastnictví účtu Apple nebo Google tato tajemství neobnoví ani automaticky neodemkne obnovený trezor. Nové zařízení musí ověřit nezávislé tajemství pro obnovení a zaregistrovat vlastní gesto.
Důvěrnost a detekce manipulace
Metadata trezoru, metadata souborů, miniatury a zabalené klíče používají AES-256-GCM se 128bitovými autentizačními tagy. Každé nezávislé šifrování používá nový náhodný 96bitový nonce. Dešifrování ověří tag, než vrátí otevřená data; pozměněný šifrový text nebo špatný klíč způsobí selhání ověření.
Dodatečná autentizovaná data (AAD) váží každý šifrovaný objekt k verzi formátu, identifikátoru trezoru, identifikátoru objektu a jeho účelu. Například miniatura a záznam metadat souboru používají různé kontexty. Přesunutí šifrovaného objektu do jiného trezoru nebo jeho záměna za jiný objekt změní autentizovaný kontext a ověření selže.
Autentizovaný kontext identifikátory neskrývá a neprokazuje aktuálnost. Platný starší záznam může mít stále platný tag. Kontroly revizí v aplikaci odhalí běžné souběžné aktualizace, ale nejde o kryptografickou obranu proti škodlivé službě, která přehraje celý starší stav.
Velké soubory používají autentizované segmenty
Nativní šifrování souborů používá streamovací konstrukci AES-256-GCM-HKDF-SHA-256 popsanou knihovnou Tink. iOS používá CryptoKit pro AES-GCM a HKDF; Android používá kryptografické primitivy platformy. Každý nový stream má 40bajtovou hlavičku obsahující značku délky, náhodnou 32bajtovou sůl a náhodnou sedmibajtovou předponu nonce.
HKDF z hlavního klíče trezoru odvodí samostatný šifrovací klíč souboru. Jeho kontext zahrnuje identifikátory trezoru a souboru, délku otevřených dat v bajtech a nastavenou velikost segmentu. 12bajtový nonce každého segmentu kombinuje náhodný prefix, čtyřbajtový čítač segmentu a příznak posledního segmentu. Segmenty nesou 128bitové tagy GCM.
Nativní aplikace zpracovávají soubory po omezených segmentech o velikosti přibližně 5 MiB. Počítadla segmentů, příznak posledního segmentu a očekávané délky v bajtech odhalí změněné, přeuspořádané nebo zkrácené segmenty. Každý segment se před použitím ověřuje a soukromý náhled se zveřejní až po dokončení dešifrování souboru. Při selhání se neúplný výstup zahodí; opakované pokusy přenášejí stávající šifrované bajty.
Konstrukce vychází ze specifikace streamování Tink AES-GCM-HKDF. Implementace Revault a konfigurace segmentů nebyly nezávisle auditovány ani certifikovány projektem Tink.
Soukromé úložiště, importy a náhledy
Šifrované soubory trezoru jsou uloženy v soukromém úložišti aplikace. Názvy souborů, typy MIME, složky, štítky, oblíbené položky a miniatury jsou ověřené šifrované záznamy. Vyhledávání a filtrování podle štítků pracují po odemknutí s dešifrovanými metadaty aktivního trezoru; neexistuje žádný serverový vyhledávací index v otevřeném textu.
Importy fotografií, videí a souborů mohou před šifrováním využívat soukromé dočasné úložiště. Pořizování fotoaparátem uvnitř trezoru automaticky neukládá kopii do galerie. Import z Fotek nebo od jiného poskytovatele ponechává originál u tohoto poskytovatele nedotčený. Volitelná optimalizace médií probíhá lokálně před šifrováním a mění pouze nově importovaná média.
Soukromé náhledy vyžadují po dobu otevření dočasný otevřený text. Aplikace dočasné náhledy odstraňují při zavření, zamknutí a následujícím spuštění; iOS na dešifrované soubory náhledů uplatňuje úplnou ochranu souborů. Soubory výslovně exportované do jiné aplikace opouštějí ochranu trezoru. Smazání dočasných souborů nezaručuje forenzní vymazání.
Volitelná nativní synchronizace v cloudu
Synchronizace je ve výchozím nastavení vypnutá a zapíná se zvlášť pro každý trezor v každém zařízení. iOS ukládá šifrované záznamy a segmenty souborů do soukromé databáze CloudKit uživatele v iCloudu. Android používá soukromou složku appDataFolder v Google Drive. Žádný z těchto přenosů nevyžaduje účet Revault ani nenahrává data nativní synchronizace do webového cloudu Revaultu.
Cloud přijímá šifrovaná metadata, segmenty souborů a obaly klíčů, nikoli hlavní klíč trezoru v otevřené podobě, místní tajemství zařízení ani tajný kód pro obnovení. Další zařízení na stejné platformě potřebuje stejný nativní cloudový účet a klíč pro obnovení trezoru, aby zaregistrovalo vlastní místní gesto. Autorizace Apple a Google řídí přístup k šifrovaným záznamům, nikoli jejich dešifrování.
Vypnutí synchronizace zastaví další přenosy daného trezoru z aktuálního zařízení; stávající šifrované kopie v cloudu zůstávají. Změny a mazání se mohou synchronizací šířit a souběžné úpravy mohou vyžadovat kontrolu konfliktů. iCloud a Google Drive jsou samostatná úložiště bez automatického mostu mezi platformami. Pro přechod mezi iPhonem a Androidem použijte šifrovaný přenos mezi telefony.
Obnovení je druhá cesta ke stejnému klíči
Vygenerované fráze pro obnovení obsahují 18 nezávisle vybraných slov z přiloženého seznamu 2 048 slov, což poskytuje 198 bitů náhodnosti. Můžete místo toho zvolit vlastní frázi s alespoň šesti různými slovy a 32–512 znaky; její síla závisí na vaší volbě. Obě varianty nezávisle odvozují zabalovací klíč pomocí PBKDF2-HMAC-SHA-256 a nové soli a poté stejný hlavní klíč trezoru zabalí pomocí AES-256-GCM. Kdokoli, kdo má frázi a šifrovaný trezor, jej může dešifrovat.
Tajný kód pro obnovení se zobrazí při nastavení a neukládá se trvale v úložišti nativní aplikace ani se nenahrává do nativního cloudového úložiště. Uchovávejte jej odděleně od šifrovaných souborů. Registrace dalšího zařízení vyžaduje šifrovaný trezor z původního nativního cloudového účtu, nebo šifrovanou zálohu, a klíč pro obnovení. Tajný kód nemůže obnovit chybějící data souborů a Revault nemá žádný resetovací klíč v držení poskytovatele.
Přenosná záloha .qvault obsahuje šifrované obaly klíčů, ověřený šifrovaný soupis a šifrované segmenty souborů. Vylučuje místní odemykací tajemství zařízení. Import před obnovením ověří soupis, metadata a každý segment a obnoví do trezoru s novými identifikátory, hlavním klíčem, klíči souborů a novým gestem zařízení. Po obnovení uložte nový klíč pro obnovení.
Nové fráze pro obnovení zachovávají velikost písmen, normalizují Unicode pomocí NFKC a slučují přebytečné mezery. Starší hexadecimální klíče jsou nadále podporovány. Frázi pro obnovení trezoru můžete v jeho nastavení nahradit poté, co novou frázi uložíte. Tím se nahradí stávající obal pro obnovení; staré zálohy a zařízení, která se dosud nesynchronizovala, mohou stále obsahovat starý obal. Změna gesta odemknutí nebo fráze pro obnovení nemění hlavní klíč trezoru a neruší kopie. Pokud je klíčový materiál kompromitován, přesuňte soubory do nového trezoru s novými klíči.
Šifrovaná migrace z telefonu do telefonu
Přenos mezi telefony vytvoří přenosnou šifrovanou kopii s novými identifikátory trezoru, hlavním klíčem, klíči souborů a hlavičkami streamů. Jeho nezávislé přenosové tajemství nemůže odemknout zdrojový trezor a tajný kód pro obnovení zdroje ani odemykací tajemství zařízení nejsou zahrnuty. Šifrovaný balíček a přenosové tajemství se musí doručit samostatně.
Přijímající aplikace ověří balíček i jeho segmenty souborů a poté obnoví do nového trezoru s novým místním gestem a klíčem pro obnovení. Funguje to mezi iOS a Androidem bez propojování jejich cloudových účtů. Originál zůstává ve starém zařízení; před jeho smazáním potvrďte obnovený obsah a uložte nový klíč pro obnovení.
Zamykání a úklid relace
Mobilní aplikace se zamknou okamžitě po přesunu na pozadí a ve výchozím nastavení po 60 sekundách nečinnosti. Každý trezor může zvolit 30 sekund, 1 minutu, 2 minuty, 5 minut nebo 10 minut. Sdílený trezor používá výchozích 60 sekund. Odchod vrátí na obrazovku gesta a ukončí dešifrovanou relaci.
Zamknutí zruší práci relace, vymaže dešifrovaná metadata a stav vyhledávání, zavře náhledy, odstraní dočasné soubory a před uvolněním přepíše vlastněné vyrovnávací paměti klíčů. Dočasné odvozovací klíče se po použití také vymažou. Správa paměti Swift a JVM, kryptografické knihovny a dekodéry médií mohou vytvářet kopie; okamžité vymazání každé kopie nelze zaručit.
iOS zakrývá snímky přepínače aplikací ochranným krytem soukromí. Android používá příznak zabezpečeného okna k omezení snímků obrazovky a náhledů nedávných aplikací. Tyto ochrany platformy nezabrání tomu, aby někdo vyfotografoval odemčenou obrazovku, a nevrací soubory dříve exportované do jiné aplikace.
Revault Cloud
Revault Cloud je volitelný poskytovatel úložiště Pro pro synchronizaci mezi platformami. Šifrované segmenty a šifrovaná metadata souborů jsou propojeny s pseudonymní fakturační instalací. Služba vidí identifikátory úložiště, velikosti, kontrolní součty, revize a přenosovou aktivitu, ale neobdrží žádný rozbalený klíč od trezoru ani frázi pro obnovení. Přístup k úložišti povoluje samostatný náhodný připojovací kód; k připojení dalšího zařízení je navíc potřeba fráze pro obnovení. Stávající data v cloudu zůstávají po skončení Pro čitelná pro účely obnovení.
Přenosy nativního sdílení a řízení přístupu
V iOS soukromá pozvánka CloudKit pouze pro čtení umístí šifrovaný snímek do samostatné hierarchie sdílecích záznamů mimo zónu osobní synchronizace. Přístup k pozvánce řídí Apple; příjemce stále potřebuje samostatný dešifrovací tajný kód. Pozvánky CloudKit nevynucují počet přístupových relací, pevné vypršení platnosti ani časovač zničení, které uplatňuje server. Vlastník může zastavit budoucí přístup přes CloudKit.
Sdílení mezi platformami nahrávají šifrované části do sdílecí služby Revaultu. Nezávislá náhodná 256bitová oprávnění ke čtení a správě se ukládají jako hashe SHA-256. Odkaz na webu nese oprávnění ke čtení ve svém fragmentu, nikoli dešifrovací tajný kód. Jeho otevření přesměruje přímo na sdílený trezor a vyzve k zadání tajného kódu odesílatele; není vyžadováno osobní gesto ani existující trezor. Osobní trezory zůstávají zamčené.
Řízená sdílení přes server vynucují nejvyšší počet přístupových relací stanovený odesílatelem, pevné vypršení platnosti do 30 dnů, zrušení a volitelné oprávnění k exportu. Relace se uděluje atomicky a trvá nejvýše 15 minut, omezených termíny sdílení. Přístup se započítává při udělení relace, i když stahování nebo dešifrování selže. Prohlížeč průběžně kontroluje přístup a v termínu se zavře.
Kontrolní součty SHA-256 ověřují přenesené části, zatímco autentizované šifrování ověřuje jejich obsah. Pokud je export povolený, může si příjemce uložit šifrovanou kopii .qvault, kterou otevře pomocí tajného kódu sdílení. Zákaz exportu odebere tuto akci v aplikaci, ale kryptograficky nemůže zabránit pořizování snímků obrazovky ani tomu, aby si upravený klient ponechal nešifrovaná data. Smazání zdrojového souboru nezruší samostatně vytvořené sdílení.
Volitelná aktivita trezoru
Nativní protokoly auditu jsou ve výchozím stavu vypnuty a nastavují se pro každý trezor na každém zařízení zvlášť. Posledních 500 místních událostí je šifrováno hlavním klíčem trezoru a vyhrazeným autentizovaným kontextem. Neobsahují klíče, gesta, obsah souborů ani data jiných trezorů, nesynchronizují se a lze je vymazat nebo vypnout. Nejsou důkazem odolným proti manipulaci. Neúspěšná odemknutí nejsou přiřazena k trezoru.
Nová řízená sdílení vytvořená se zapnutým protokolováním uchovávají na sdílecí službě až 100 časových razítek přístupových relací. Získat je může pouze oprávnění ke správě; protokol neobsahuje identitu příjemce ani dešifrovací tajný kód. Vypnutí místního protokolování ovlivní budoucí sdílení. Stávající protokoly sdílení si ponechají původní nastavení až do zrušení nebo vypršení a vyčištění.
Volitelné šifrované fotografie při vloupání
Majitelé mohou Upozornění na vloupání zapnout samostatně pro každý trezor na každém zařízení. Po třech neodpovídajících gestech může aplikace na popředí pořídit snímek přední kamerou, v závislosti na oprávnění, dostupnosti fotoaparátu a jednominutové prodlevě. Systémové indikátory fotoaparátu zůstávají viditelné. Posledních deset upozornění se ukládá lokálně a nikdy se nepřidává do Fotek ani nenahrává. Neodpovídající gesto neurčí cílový trezor, proto každý trezor, který se přihlásil, obdrží samostatně šifrovaný záznam o pokusu na zařízení.
Vyhrazený veřejný klíč RSA-3072 zabalí pro každé upozornění nový 256bitový klíč AES-GCM pomocí OAEP se SHA-256 a MGF1-SHA-256. To umožňuje šifrování, i když je trezor zamčený. Odpovídající soukromý klíč je sám zašifrován hlavním klíčem daného trezoru s vyhrazeným autentizovaným kontextem. Fotografie může dešifrovat jedině odemknutí tohoto trezoru. Upozornění se zobrazují v jeho přehledu auditu nezávisle na běžném protokolování aktivity a lze je vymazat v nastavení Upozornění na vloupání. Nejsou důkazem odolným proti manipulaci.
Bezpečný odchod odebere místní přístup
Jeden trezor v zařízení lze určit pro Bezpečný odchod. Zadání jeho gesta odemknutí tento trezor otevře jako obvykle a zároveň odstraní záznamy ostatních místních trezorů, šifrované bloky, materiál pro odemknutí zařízení a změny čekající ve frontě. Aplikace uchovává trvalý místní seznam povolených trezorů, aby je synchronizace nemohla nepozorovaně znovu obnovit. Šifrované přenosy, které už probíhají, se mohou ještě dokončit.
Nativní kopie v cloudu a kopie v jiných zařízeních zůstávají zachovány. Výslovná obnova vyžaduje klíč pro obnovení vyloučeného trezoru, a to dříve, než se nastaví nové místní gesto odemknutí. Trezor pouze offline bez samostatné zálohy lze ztratit. Toto nastavení platí pro aktuální instalaci, nikoli pro každé zařízení používající stejný cloudový účet.
Bezpečný odchod nezaručuje forenzní vymazání ani utajení. Flash paměť, mezipaměti operačního systému, zálohy a dřívější exporty mohou uchovávat stopy. Odstranění dat aplikace nebo přeinstalace může zrušit místní izolační hranici; záznamy v cloudu pak mohou být znovu nalezeny prostřednictvím nativního cloudového účtu. Tyto záznamy dokáže odemknout pouze tajný kód pro obnovení.
Co zůstává viditelné
Šifrování skrývá obsah, nikoli všechny provozní informace. Místní záznamy a poskytovatelé cloudu mohou vidět identifikátory, vztahy mezi záznamy, počty objektů, velikosti, revize, časová razítka, šifrované obaly klíčů a hlavičky datových proudů. Identifikátory používají UUIDv7 a obsahují informaci o čase vytvoření; nejsou tajné. Apple nebo Google může nativní synchronizaci přiřadit k účtu platformy.
Řízená služba sdílení Revault vidí velikosti šifrovaných balíčků, kontrolní součty částí, nastavení vypršení platnosti, počty přístupových relací a volitelně časová razítka relací, ale nikoli samostatně doručený tajný kód pro dešifrování. Sdílení přes CloudKit zpřístupňuje společnosti Apple informace o pozvánkách a účastnících. Síťové a provozní záznamy mohou prozradit informace o připojení. Revault neposkytuje anonymitu ani odolnost proti analýze provozu.
HTTPS chrání síťové požadavky při přenosu. Autentizované šifrování v zařízení samostatně chrání obsah trezoru uložený lokálně i v cloudu. Žádné z nich neskryje všechna fakta o tom, kdy, kde nebo kolik dat se přenáší.
Analytika používání
Ve výchozím nastavení zapnuto. Mixpanel přijímá události o používání funkcí s náhodným analytickým ID. Obsah trezoru, názvy, gesta odemknutí, klíče a tajné kódy sdílení jsou vyloučeny. Analytiku můžete kdykoli vypnout pro tento prohlížeč nebo zařízení.
Kde ochrana končí
Odemčený trezor nutně zpřístupňuje dešifrované informace relaci aplikace. Zachytit je může malware, napadený operační systém nebo aplikace, někdo, kdo se dívá na obrazovku, nebo nedůvěryhodný příjemce. Ukládání klíčů pouze v zařízení je dodatečná hranice, nikoli záruka proti plně napadenému zařízení. Předvídatelné gesto odemknutí přestává být bezpečné, jakmile je jeho místní tajemství kompromitováno.
Šifrování nebrání smazání dat v cloudu, ransomwaru, ztrátě tajného kódu pro obnovení, zadržování záznamů poskytovatelem ani návratu celého dříve platného šifrovaného stavu zpět. Uchovávejte nezávislé šifrované zálohy a před vyřazením starého zařízení si ověřte, že obnova funguje. Zrušení přístupu nedokáže vzít zpět snímky obrazovky, exporty ani kopie, které si už někdo jiný ponechal.
Revault neprošel nezávislým bezpečnostním auditem. Jde o popis implementovaného kryptografického návrhu, nikoli o certifikaci ani záruku proti každému průniku.
Stávající trezory v prohlížeči
Tento přehled popisuje nativní aplikace. Stávající trezory v prohlížeči mají samostatný účet, úložiště v zařízení a webový cloudový model. Nahrávání do S3 specifické pro prohlížeč a odkazy ke sdílení z prohlížeče nejsou nativní synchronizace v cloudu. Účet v prohlížeči vás do mobilních aplikací nepřihlásí; stávající data z prohlížeče přesunete do nativního trezoru pomocí šifrované zálohy a jejího klíče pro obnovení.