Co je zero-knowledge šifrování? Jednoduchý průvodce

Co je zero-knowledge šifrování? Jednoduchý průvodce

Zero-knowledge šifrování znamená, že poskytovatel nemůže přistupovat k vašim datům.

Šifrování s nulovou znalostí je architektura ohraničená poskytovatelem, ve které služba nedrží klíč potřebný k dešifrování uloženého uživatelského obsahu. Na rozdíl od běžného cloudového šifrování, kde klíč k obsahu řídí poskytovatel, může šifrování na straně klienta tuto schopnost ponechat na zařízeních uživatele. Právní žádost, únik nebo zasvěcená osoba mohou stále prozradit šifrovaný text, záznamy účtu, provozní data nebo jiná metadata, která poskytovatel uchovává. Doporučení NIST ke správě klíčů staví držení klíčů do středu přístupu, klientská aplikace, operační systém a odemčené zařízení ale zůstávají součástí hranice důvěry.

Jak zero-knowledge šifrování funguje

Nejjednodušší analogie: hotelový trezor, kde kombinaci nastavíte jen vy a hotel ji nikdy nezjistí. Pokud kombinaci zapomenete, hotel za vás trezor neotevře. To není chyba v návrhu. To je záměr návrhu.

V technických pojmech zero-knowledge šifrování funguje ve třech krocích:

  1. Odvození klíče v zařízení. Uživatel zadá přihlašovací údaj, například heslo, heslovou frázi nebo vzor. Funkce pro odvození klíče z hesla ho spojí se solí a v zařízení uživatele vytvoří klíč. Dobře oddělený návrh může tímto klíčem odemknout náhodný klíč pro šifrování obsahu, místo aby každý soubor šifroval přímo lidským přihlašovacím údajem.

  2. Šifrování před přenosem. Veškerá data jsou šifrována v zařízení pomocí odvozeného klíče ještě před tím, než opustí zařízení pro cloudové úložiště nebo zálohu. Šifrovaný výstup (šifrový text) je to, co se nahraje.

  3. Poskytovatel nedostane žádný klíč k obsahu v otevřené podobě. Klíče k obsahu nutně existují v paměti klienta během používání a mohou být uložené i místně nebo vzdáleně v ověřeně šifrovaných obálkách. Poskytovatel může ukládat šifrovaný text a zabalené klíče, aniž by držel uživatelské tajemství potřebné k jejich otevření. Metadata účtu, provozu, velikosti záznamů a časování mohou zůstat viditelná.

Zásadní omezení: pokud uživatel ztratí všechny platné přihlašovací údaje i cesty obnovy, šifrovaný obsah se stane nedostupným. Obnova může stále existovat, musí se ale vysvětlit, kdo drží její klíče. Pokud samotný reset přes e-mail obnoví čitelný obsah bez schválení ze starého zařízení, fráze pro obnovení, klíče pro obnovení nebo podobného tajemství v rukou uživatele, poskytovatel si ponechal účinnou cestu zpět k otevřenému textu.

Zero-knowledge šifrování vs. jiné typy šifrování

Termín "šifrování" se objevuje v marketingových materiálech téměř každé cloudové služby. Rozdíly mezi typy jsou podstatné.

Typ Kdo drží klíč Poskytovatel může číst data Přežije únik dat poskytovatele Příklad
Bez šifrování Není Ano Ne Dropbox (standardní úroveň)
Šifrování při přenosu (TLS) Poskytovatel Ano (v klidu na jejich serverech) Ne Google Fotky
Šifrování v klidu na straně serveru Poskytovatel Ano (drží dešifrovací klíč) Částečně (závisí na rozsahu úniku) iCloud (standardní)
End-to-end šifrování platformy Zařízení klienta a systém obnovy účtu Ne běžnou cestou služby Závisí na klientovi, obnově a odhalení metadat iCloud s Pokročilou ochranou dat
Šifrování na straně klienta bez přístupu poskytovatele Klient a cesta obnovy řízená uživatelem Poskytovatel nedrží klíč k obsahu v otevřené podobě Obsah může zůstat šifrovaný; metadata a šifrovaný text mohou stále uniknout Šifrované trezory a zálohovací systémy

Rozdíl mezi "šifrováním v klidu" a "zero-knowledge šifrováním" je nejčastěji zaměňovaný. Při šifrování v klidu poskytovatel šifruje vaše data na svých serverech pomocí klíčů, které kontroluje. To chrání před fyzickou krádeží serverového hardware. Nechrání před čtením vašich dat poskytovatelem, vládním předvoláním pro data a klíče nebo vnitřní hrozbou. Poskytovatel má dešifrovací schopnost.

Při šifrování na straně klienta bez přístupu poskytovatele služba podle zdokumentovaného protokolu nedostane klíč k obsahu v otevřené podobě. Uložený šifrovaný text může pro poskytovatele zůstat nečitelný, zatímco klientský software, cesta obnovy, metadata účtu a kanál doručování softwaru stále vyžadují důvěru a kontrolu.

Proč na zero-knowledge šifrování záleží

Úniky dat postihují každoročně miliardy záznamů

Identity Theft Resource Center uvedlo za rok 2023 ve Spojených státech 3 205 úniků dat, které zasáhly přibližně 353 milionů lidí. Když poskytovatel drží klíče k obsahu, jeden únik může prozradit uložená data i cestu k jejich dešifrování. Šifrování bez přístupu poskytovatele tato aktiva odděluje: únik ze serveru může stále prozradit šifrovaný text a metadata, ne ale klíč k obsahu v otevřené podobě u poskytovatele. Hádání přihlašovacích údajů a napadení klienta zůstávají samostatnými riziky.

Právní donucení je reálná hrozba

Poskytovatelé mohou být povinni vydat data, která uchovávají. Návrh bez přístupu poskytovatele může takovou odpověď omezit na šifrovaný text a dostupná metadata účtu, provozu, fakturace nebo služby, protože poskytovatel klíč k obsahu v otevřené podobě nedrží. Zda může jiná strana získat přihlašovací údaj uživatele, zneužít klienta nebo vynutit vydání, je samostatná otázka. Apple představil Pokročilou ochranu dat v iOS 16.2 jako volitelné rozšíření end-to-end šifrování dat na iCloudu.

"Věřte nám" není bezpečnostní architektura

Šifrování na straně serveru spoléhá na klíče a pravidla řízené poskytovatelem. Šifrování bez přístupu poskytovatele mění držení klíčů tak, že zdokumentovaná cesta služby klíč k obsahu v otevřené podobě nemá. Je to silnější hranice architektury, její síla ale stále závisí na správném klientském kódu, ověřeném doručování softwaru, spolehlivé obnově, zabezpečených zařízeních a implementaci, která odpovídá specifikaci.

Standard NIST za kryptografií

AES-GCM standardizoval Národní institut standardů a technologie (NIST) v SP 800-38D (2007). Samotný AES vybral NIST ve veřejné soutěži v roce 2001. „256“ v AES-256 označuje 256bitový klíč. Úplné prohledání rovnoměrně náhodného klíče je výpočetně neproveditelné, lidské heslo nebo vzor ale může mít mnohem menší entropii, i když funkce pro odvození klíče vydá 256 bitů.

GCM (Galois/Counter Mode) přidává autentizované šifrování, což znamená, že dešifrovací proces odhalí jakékoli manipulace se šifrovým textem. Pokud je jediný bit šifrovaných dat pozměněn, dešifrování selže namísto vytvoření poškozeného výstupu. To zabrání útočníkům manipulovat se šifrovanými daty bez odhalení.

PBKDF2 (Password-Based Key Derivation Function 2), popsaná v RFC 8018, převádí přihlašovací údaj zadaný člověkem na klíčový materiál pevné délky opakovaným voláním pseudonáhodné funkce. Více iterací zvyšuje cenu každého pokusu. Předvídatelnému vzoru nebo heslu ale entropii nepřidají, takže na volbě přihlašovacího údaje a offline ověřování stále záleží.

Jak Vaultaire odděluje klíče od poskytovatele

Vaultaire je trezor pro iPhone šifrovaný na straně klienta. V produktovém smyslu, který se často prodává jako „nulová znalost“, zní jeho užší zdokumentované tvrzení tak, že Wraxle nedostává obsah trezoru v otevřené podobě ani klíče potřebné k jeho dešifrování. Takto funguje implementace a zbývající hranice důvěry na každé vrstvě.

Odvození klíče. Uživatel nakreslí vzor na mřížce 5x5 s 25 body. PBKDF2-HMAC-SHA512 spojí tuto posloupnost s jednou solí v Keychain společnou pro celé zařízení v 600 000 iteracích a odvodí 256bitový klíč trezoru. Klíč trezoru ověří šifrovaný index a obaluje samostatný náhodný 256bitový hlavní klíč. Údaje pro obnovu včetně vzoru jsou uložené v databázi Keychain šifrované pomocí AES-GCM, ne v souborech v otevřené podobě ani v účtu Vaultaire.

Šifrování souborů. Každý importovaný soubor se šifruje pomocí AES-256-GCM pod náhodným hlavním klíčem. CryptoKit vytváří ověřené zapečetěné schránky s čerstvými nonce a streamovací formát odvozuje pro každý blok v pořadí jinou nonce.

Šifrování metadat. Názvy souborů, typy MIME, data, záznamy indexu a data miniatur jsou také chráněné pomocí AES-256-GCM. Vaultaire pro metadata trezoru nepoužívá ChaCha20.

Správa klíčů. Vaultaire ukládá sůl zařízení a šifrovanou databázi obnovy jako běžné položky obecného hesla v iOS Keychain, chráněné třídou přístupnosti WhenUnlockedThisDeviceOnly. Klíče trezoru odvozené ze vzoru a náhodné hlavní klíče se zpracovávají v paměti aplikace přes CryptoKit. Zamknutí zahodí aktivní stav klíčů, Swift a iOS ale neumožňují zaručit, že se přepíše každá dočasná kopie.

Objev trezoru. Běžné rozhraní nezobrazuje seznam trezorů. Stránky všech trezorů leží v jedné sdílené složce s náhodnými názvy, takže z názvů souborů nepoznáte, ke kterému trezoru soubor patří, a neodhalují ani vzory, názvy či obsah v otevřené podobě. Kdo má přístup ke kontejneru aplikace, může přesto odhadnout, kolik trezorů máte, protože počet úložných arén tento počet omezuje. Podívejte se na celou bezpečnostní architekturu a vysvětlení šifrování vzorem.

Jak zjistit, zda aplikace skutečně používá zero-knowledge šifrování

Začněte třemi rychlými testy a pak ověřte zveřejněnou architekturu:

  1. Test zapomenutého hesla. Pokud samotný reset přes e-mail obnoví čitelná data, zeptejte se, jaký mechanismus v rukou poskytovatele obnovil skutečný klíč k obsahu. Fráze pro obnovení v rukou uživatele, schválení ze starého zařízení a reset řízený poskytovatelem jsou různé návrhy.

  2. Test nového zařízení. Pokud nové zařízení obnoví čitelný obsah, zjistěte, jaké tajemství nebo důvěryhodné zařízení to povolilo. Samotné přihlášení k účtu ukazuje na cestu obnovy řízenou poskytovatelem; fráze pro obnovení spolu se šifrovanými záznamy zálohy může oddělení klíčů od poskytovatele zachovat.

  3. Test účtu. E-mailová adresa nebo telefonní číslo spojuje identitu s metadaty služby, samo o sobě ale nedokazuje, že poskytovatel umí obsah dešifrovat. Prověřte hierarchii klíčů, návrh obnovy, klientský kód nebo audit, pravidla pro metadata a to, zda ověřený šifrovaný text umožňuje offline kontrolu přihlašovacích údajů.

Tyto testy jsou filtry, ne bezpečnostní důkaz. Ucelená specifikace by měla pojmenovat klíč k obsahu, klíč k odemknutí, soli, parametry odvození, formát ověřeného šifrování, pravidla pro nonce, obálky obnovy, místní úložiště tajemství, cloudová metadata a místo, kde existují klíče v otevřené podobě. Nezávislá kontrola je silnějším důkazem než produktový štítek.

Nejčastější otázky

Je zero-knowledge šifrování totéž co end-to-end šifrování?

Překrývají se, ale nejsou totožné. End-to-end šifrování (E2EE) znamená, že data jsou šifrována v zařízení odesílatele a dešifrována pouze v zařízení příjemce. Zero-knowledge šifrování znamená, že poskytovatel nemůže přistupovat k datům. Služba může být end-to-end šifrována bez toho, aby byla zero-knowledge, pokud poskytovatel klíče vygeneroval nebo k nim měl přístup v nějakém okamžiku. Zero-knowledge šifrování je přísnější standard.

Co se stane, když ztratím heslo při zero-knowledge šifrování?

Vaše data se stanou trvale nedostupnými, pokud ztratíte všechny platné přihlašovací údaje i obálku obnovy. Reset nebo hlavní klíč řízený poskytovatelem by oslabil hranici poskytovatele, takže obnovu je nutné navrhnout samostatně. Vaultaire vytvoří vlastní frázi z devíti slov, z níž odvozený klíč pro obnovení otevře šifrovanou obálku s klíčem trezoru. Fráze klíč znovu nevytváří ani nekóduje a obnova na novém zařízení vyžaduje také odpovídající šifrované záznamy v CloudKit.

Může policie přistupovat k datům šifrovaným pomocí zero-knowledge šifrování?

Poskytovatel může být povinen vydat uložený šifrovaný text a metadata účtu, provozu, fakturace nebo služby, která uchovává. Bez klíče k obsahu v otevřené podobě nemůže tento poskytovatel běžnou cestou služby obsah dešifrovat. Zneužití zařízení, odhalení přihlašovacích údajů, kopie pro obnovu a vynucené vydání jsou samostatné cesty, jejichž zákonnost a účinnost se liší podle jurisdikce a okolností.

Je zero-knowledge šifrování pomalejší než běžné šifrování?

Výkon AES-256-GCM nezávisí na tom, kdo drží klíč. Odvození z hesla přidává práci při odemykání a jeho délka závisí na algoritmu, počtu iterací, zařízení a implementaci. Aplikace by tuto cenu měly měřit na podporovaném hardwaru a vyvažovat rychlost odezvy proti ceně každého offline pokusu.

Znamená zero-knowledge, že aplikace vůbec neshromažďuje data?

Nemusí. Pojem se týká hranice klíče k obsahu u poskytovatele, ne každého toku dat. Aplikace může stále zpracovávat data účtu, analytiku, zprávy o pádech, IP adresy, velikosti záznamů, časování nebo jiná metadata služby. Vaultaire nevyžaduje účet s identitou. Jeho analytika aplikace a diagnostika pádů jsou ve výchozím nastavení zapnuté a lze je vypnout přepínačem „Anonymně sdílet chyby“ v Nastavení. Zdokumentovaná pravidla událostí vylučují obsah trezoru, vzory, fráze a dešifrovací klíče; zásady ochrany soukromí popisují aktuální pravidla shromažďování a uchovávání.

Jak se zero-knowledge šifrování liší od Pokročilé ochrany dat Apple?

Pokročilá ochrana dat (ADP) od Applu, představená v iOS 16.2, rozšiřuje end-to-end šifrování na další kategorie iCloudu a používá model obnovy účtu Apple. Vaultaire šifruje obsah trezoru v zařízení a nevyžaduje účet Vaultaire s identitou; záloha na iCloud (ve výchozím nastavení zapnutá), synchronizace a sdílení používají záznamy v CloudKit šifrované na straně klienta v účtu Apple uživatele. Vaultaire nabízí také přístup k trezorům oddělený podle vzorů a nátlakový režim; limity úložiště a obnovy popisuje dokumentace věrohodného popření a nátlakového režimu.

Shrnutí

Šifrování s nulovou znalostí je nejlepší chápat jako tvrzení o oddělení klíčů od poskytovatele: služba nedrží klíč v otevřené podobě potřebný k dešifrování uloženého obsahu. To je silnější než šifrování na straně serveru s klíči řízenými poskytovatelem, netvrdí to ale, že klíče existují jen v paměti, že metadata zmizí nebo že odolá každému napadení klienta a zařízení. Produkt posuzujte podle hierarchie klíčů, návrhu obnovy, implementace a nezávislé kontroly.

Přečtěte si bezpečnostní architekturu