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.

Zero-knowledge šifrování je kryptografická architektura, kde poskytovatel služby nemůže přistupovat k datům uživatele, protože šifrovací klíče jsou odvozeny a uloženy výhradně v zařízení uživatele a nikdy nejsou přenášeny na servery poskytovatele. Na rozdíl od standardního cloudového šifrování, kde poskytovatel drží klíče, zero-knowledge šifrování znamená, že ani soudním příkazem, při úniku dat nebo od nepoctivého zaměstnance poskytovatel nemá co předat. Pokyny NIST pro správu klíčů (SP 800-57) stanovují princip, že správa klíčů určuje přístup k datům -- zero-knowledge šifrování dotahuje tento princip do logického závěru.

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 poskytne pověření (heslo, přístupovou frázi nebo vzor). Funkce pro odvození klíče (typicky PBKDF2 nebo Argon2) kombinuje toto pověření s jedinečnou kryptografickou solí a vytvoří šifrovací klíč. To se děje výhradně v zařízení uživatele.

  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 nikdy nevidí klíč. Šifrovací klíč existuje pouze v paměti zařízení při aktivním použití. Nikdy není přenášen na servery poskytovatele. Poskytovatel ukládá šifrované bloky, které jsou k nerozeznání od náhodných dat.

Zásadní omezení: pokud uživatel ztratí přihlašovací údaje a nemá žádnou obnovovací frázi, data jsou trvale nedostupná. Neexistuje žádný tok "zapomenuté heslo", který by fungoval bez nezávisle uloženého obnovovacího mechanismu. Pokud služba nabízí reset hesla přes e-mail a vaše data se znovu objeví, tato služba zero-knowledge šifrování nepoužívá. Drží vaše klíče.

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í)
E2E šifrování spravované poskytovatelem Poskytovatel generuje, uživatel ukládá Technicky ne, ale poskytovatel měl přístup při generování klíče Částečně iCloud Pokročilá ochrana dat
Zero-knowledge šifrování Pouze uživatel (odvozeno v zařízení) Ne. Matematicky nemožné. Ano. Šifrované bloby jsou bez klíče uživatele k ničemu. Signal, Proton Mail, Vaultaire

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 zero-knowledge šifrování poskytovatel dešifrovací schopnost nikdy nemá. Šifrovaná data na jeho serverech jsou pro něj stejně neprůhledná jako pro jakéhokoli vnějšího útočníka.

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

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

Centrum pro ochranu identity ITRC zaznamenalo v roce 2023 v USA 3 205 kompromitací dat, které postihly přibližně 353 milionů osob. Když je kompromitován poskytovatel, který drží šifrovací klíče, útočník potenciálně získá přístup jak k šifrovaným datům, tak ke klíčům k jejich dešifrování. Zero-knowledge architektura toto riziko zcela eliminuje. Kompromitovaný server obsahuje pouze šifrový text, jehož výpočetní prolomení je nepraktické.

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

Vládní agentury v různých jurisdikcích mohou poskytovatele přimět předat uložená data. Pokud poskytovatel drží šifrovací klíče, musí vyhovět. Při zero-knowledge architektuře je odpovědí poskytovatele na předvolání šifrovaný blob, který je bez pověření uživatele k ničemu. Pokročilá ochrana dat Apple pro iCloud se tímto směrem vydala, ale byla zavedena až v iOS 16.2 (prosinec 2022) a ve výchozím nastavení není zapnuta.

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

Standardní šifrování spoléhá na slib poskytovatele, že nepřistoupí k vašim datům. Zero-knowledge šifrování nahrazuje tento slib matematickou zárukou. Poskytovatel nemůže přistupovat k datům, ani když chce, ani když zaměstnanec zradí, ani když ho koupí společnost s jinými hodnotami soukromí. Architektura toto omezení vynucuje.

Standard NIST za kryptografií

AES-256-GCM, šifra nejčastěji používaná v zero-knowledge implementacích, byla standardizována Národním institutem standardů a technologií v SP 800-38D (2007). AES samotný byl NIST vybrán prostřednictvím veřejné soutěže v roce 2001, čímž nahradil stárnoucí standard DES. "256" se týká délky klíče v bitech -- 256bitový klíč má 2^256 možných hodnot, číslo tak velké, že jeho prolomení hrubou silou by vyžadovalo více energie, než slunce vyprodukuje za zbývající dobu své existence.

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), specifikovaný v RFC 8018, převádí lidsky poskytnuté pověření na kryptografický klíč prostřednictvím opakovaného hashování. Spuštění hashovací funkce stotisíckrát dělá každý pokus o uhodnutí hesla výpočetně nákladným, čímž transformuje jednoduchý vzor nebo heslo na klíč odolný vůči útokům hrubou silou.

Jak Vaultaire implementuje zero-knowledge šifrování

Vaultaire je trezorová aplikace pro iPhone postavená na zero-knowledge architektuře. Zde je popis implementace na každé vrstvě.

Odvození klíče. Uživatel nakreslí vzor na mřížce 5x5 s 25 body. Sekvence bodů v pořadí je zpracována přes PBKDF2 s HMAC-SHA512 a jedinečnou kryptografickou solí specifickou pro každý trezor. Výsledkem je 256bitový šifrovací klíč AES. Vzor není nikdy uložen v zařízení. Ne jako hash, ne jako reprezentace, ne v žádné podobě.

Šifrování souborů. Každý importovaný soubor je šifrován pomocí AES-256-GCM s odvozeným klíčem a náhodně generovaným inicializačním vektorem (IV) jedinečným pro daný soubor. Identické soubory produkují různý šifrový text, protože IV se liší.

Šifrování metadat. Názvy souborů, data vytvoření a data náhledů jsou šifrována odděleně pomocí ChaCha20, jiné šifry, která poskytuje kryptografickou diverzitu a eliminuje útoky side-channel přes cache-timing.

Správa klíčů. Apple Secure Enclave ukládá klíčový materiál ve vyhrazeném hardwarovém koprocesoru s vlastní šifrovanou pamětí. Klíče jsou vymazány z paměti aplikace, když se Vaultaire zavře nebo uživatel přepne jinam.

Žádný registr trezorů. Neexistuje žádná databáze se seznamem trezorů, žádný počet, žádné názvy. Každý vzor otevírá jiný trezor. Aplikace sama nemůže zjistit, kolik trezorů existuje. Přečtěte si celou bezpečnostní architekturu a vysvětlení šifrování vzorem.

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

Tři testy, které zaberou méně než minutu:

  1. Test zapomenutého hesla. Pokud aplikace dokáže resetovat vaše heslo přes e-mail a vaše data se znovu objeví, aplikace drží vaše šifrovací klíče. Není zero-knowledge.

  2. Test nového zařízení. Pokud se přihlásíte na novém zařízení a vaše data se zobrazí bez přenosu klíčů ze starého zařízení nebo zadání obnovovací fráze, server má vaše klíče. Není zero-knowledge.

  3. Test účtu. Pokud aplikace vyžaduje e-mailovou adresu nebo telefonní číslo, poskytovatel má propojení mezi vaší identitou a vašimi daty. To samo o sobě nutně není diskvalifikující, ale v kombinaci s kterýmkoli z výše uvedených testů potvrzuje, že poskytovatel může přistupovat k vašim datům.

Aplikace, které projdou všemi třemi testy: Signal, Proton Mail, Standard Notes, Vaultaire. Aplikace, které selžou v alespoň jednom: většina cloudových úložných služeb, většina "trezorových" aplikací v App Store.

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. Neexistuje žádný hlavní klíč, žádná zadní vrátka a žádný proces obnovy, který by fungoval bez samostatně uložené obnovovací fráze. Toto je základní kompromis: absolutní soukromí vyžaduje absolutní odpovědnost. Některé zero-knowledge aplikace (včetně Vaultaire) generují obnovovací frázi při vytvoření trezoru, která může obnovit šifrovací klíč v případě ztráty primárního pověření.

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

Orgány mohou poskytovatele přimět předat uložená data. Při zero-knowledge šifrování jsou data, která poskytovatel předá, šifrovaným blobem, který je bez klíče uživatele k ničemu. Zda mohou orgány přimět uživatele k poskytnutí klíče, je samostatná právní otázka závisející na jurisdikci. Soudy v USA obecně rozhodly, že vynucený biometrický přístup (Face ID, otisky prstů) je přípustný, zatímco vynucené sdělení hesla/vzoru je spornější podle Pátého dodatku.

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

Šifrovací a dešifrovací operace jsou identické. AES-256-GCM běží stejnou rychlostí bez ohledu na to, kdo drží klíč. Jediné přidané náklady jsou odvození klíče: spuštění PBKDF2 se stovkami tisíc iterací trvá přibližně 0,5-2 sekundy na moderním iPhonu. Toto se děje jednou při odemknutí trezoru, ne pro každý soubor. V praxi uživatelé rozdíl v rychlosti nepozorují.

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

Nutně ne. Zero-knowledge se specificky týká šifrovací architektury. Poskytovatel nemůže přistupovat k šifrovanému obsahu. Aplikace může stále shromažďovat anonymní analytiku, hlášení o pádech nebo metadata o používání, pokud s tím uživatel souhlasí. Co nemůže sbírat, je obsah šifrovaných souborů, šifrovací klíč nebo pověření použitá k jeho odvození. Zásady ochrany soukromí Vaultaire popisují přesně, jaká volitelná data jsou sbírána se souhlasem uživatele.

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

Pokročilá ochrana dat Apple (ADP), zavedená v iOS 16.2, rozšiřuje end-to-end šifrování na většinu kategorií dat iCloud. S aktivovaným ADP nemůže Apple přistupovat k chráněným datům. Klíčové rozdíly od dedikované zero-knowledge aplikace: ADP je opt-in (ve výchozím nastavení vypnuto), vyžaduje Apple ID a chrání data pouze v ekosystému Apple. Zero-knowledge trezorová aplikace jako Vaultaire funguje nezávisle na infrastruktuře Apple, nevyžaduje účet a přidává funkce jako verohodné popření a nouzový režim, které ADP neposkytuje.

Shrnutí

Zero-knowledge šifrování je architektura, kde poskytovatel matematicky nemůže přistupovat k datům uživatele, protože šifrovací klíče nikdy neopustí zařízení uživatele. Liší se od standardního šifrování, šifrování v klidu a dokonce některých forem end-to-end šifrování v jedné zásadní věci: neschopnost poskytovatele přistupovat k datům je vynucena matematikou, ne zásadami. Kompromis -- ztráta klíče znamená ztrátu dat -- není chyba. Je to mechanismus, který záruku dělá skutečnou.

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