Čo je zero-knowledge šifrovanie? Jednoduchý sprievodca
Zero-knowledge šifrovanie znamená, že poskytovateľ nemôže pristupovať k vašim dátam.
Šifrovanie s nulovými znalosťami je architektúra ohraničená poskytovateľom, v ktorej služba nedrží kľúč potrebný na dešifrovanie uloženého používateľského obsahu. Na rozdiel od štandardného cloudového šifrovania, kde kľúč obsahu riadi poskytovateľ, môže šifrovanie na strane klienta ponechať túto schopnosť na zariadeniach používateľa. Právna žiadosť, únik dát alebo zasvätené osoby môžu stále odhaliť šifrovaný text, záznamy o účte, údaje o prevádzke alebo iné metadáta, ktoré poskytovateľ uchováva. Pokyny NIST pre správu kľúčov robia z úschovy kľúčov ústrednú otázku prístupu, ale klientska aplikácia, operačný systém a odomknuté zariadenie zostávajú súčasťou hranice dôvery.
Ako zero-knowledge šifrovanie funguje
Najjednoduchšia analógia: hotelový trezor, kde kombináciu nastavíte len vy a hotel ju nikdy nezistí. Ak kombináciu zabudnete, hotel za vás trezor neotvorí. To nie je chyba v návrhu. To je zámer návrhu.
V technických pojmoch zero-knowledge šifrovanie funguje v troch krokoch:
Odvodenie kľúča na zariadení. Používateľ zadá prístupový údaj, ako je heslo, prístupová fráza alebo vzor. Funkcia odvodenia kľúča založená na hesle ju kombinuje so soľou a vytvára kľúč na zariadení používateľa. Dobre oddelený návrh môže použiť tento kľúč na odomknutie náhodného kľúča na šifrovanie obsahu namiesto šifrovania každého súboru priamo prístupovým údajom človeka.
Šifrovanie pred prenosom. Všetky dáta sú šifrované v zariadení pomocou odvodeného kľúča ešte pred tým, než opustia zariadenie pre cloudové úložisko alebo zálohu. Šifrovaný výstup (šifrovaný text) je to, čo sa nahrá.
Poskytovateľ nedostane žiadny kľúč obsahu v otvorenej podobe. Kľúče obsahu nevyhnutne existujú v pamäti klienta počas používania a môžu byť tiež uložené lokálne alebo vzdialene vo vnútri overených šifrovaných obálok. Poskytovateľ môže ukladať šifrovaný text a zabalené kľúče bez toho, aby musel držať používateľské tajomstvo potrebné na ich otvorenie. Metadáta účtu, návštevnosti, veľkosti záznamu a časovania môžu zostať viditeľné.
Kritické obmedzenie: ak používateľ stratí všetky platné prístupové údaje a cestu obnovy, šifrovaný obsah sa stane nedostupným. Obnova môže stále existovať, ale musí byť vysvetlená úschova kľúča. Ak samotný reset e-mailu obnoví čitateľný obsah bez schválenia starého zariadenia, frázy na obnovenie, kľúča na obnovenie alebo ekvivalentného tajomstva uchovávaného používateľom, poskytovateľ si zachoval účinnú cestu späť k otvorenému textu.
Zero-knowledge šifrovanie vs. iné typy šifrovania
Pojem „šifrovanie" sa objavuje v marketingových materiáloch takmer každej cloudovej služby. Rozdiely medzi typmi sú podstatné.
| Typ | Kto drží kľúč | Poskytovateľ môže čítať dáta | Prežije únik dát poskytovateľa | Príklad |
|---|---|---|---|---|
| Bez šifrovania | Nie je | Áno | Nie | Dropbox (štandardná úroveň) |
| Šifrovanie pri prenose (TLS) | Poskytovateľ | Áno (v pokoji na ich serveroch) | Nie | Google Fotky |
| Šifrovanie v pokoji na strane servera | Poskytovateľ | Áno (drží dešifrovací kľúč) | Čiastočne | iCloud (štandardný) |
| End-to-end šifrovanie platformy | Klientske zariadenia a systém obnovy účtu | Nie cez bežnú cestu služby | Závisí od klienta, obnovy a vystavenia metadát | iCloud s rozšírenou ochranou údajov |
| Šifrovanie na strane klienta, ktoré poskytovateľ nevidí | Klient a cesta obnovy riadená používateľom | Žiadny kľúč obsahu v otvorenej podobe uchovávaný poskytovateľom | Obsah môže zostať šifrovaný; metadáta a šifrový text môžu stále unikať | Šifrované trezory a zálohovacie systémy |
Rozdiel medzi „šifrovaním v pokoji" a „zero-knowledge šifrovaním" je najčastejšie zamieňaný. Pri šifrovaní v pokoji poskytovateľ šifruje vaše dáta na svojich serveroch pomocou kľúčov, ktoré kontroluje. Toto chráni pred fyzickou krádežou serverového hardvéru. Nechráni pred čítaním vašich dát poskytovateľom, vládnym predvolaním pre dáta a kľúče alebo vnútornou hrozbou.
Pri zero-knowledge šifrovaní poskytovateľ dešifrovaciu schopnosť nikdy nemá. Šifrované dáta na jeho serveroch sú pre neho rovnako nepriehľadné ako pre akéhokoľvek vonkajšieho útočníka.
Prečo na zero-knowledge šifrovaní záleží
Úniky dát postihujú každoročne miliardy záznamov
Identity Theft Resource Center zaznamenalo v roku 2023 v Spojených štátoch 3 205 únikov údajov, ktoré postihli približne 353 miliónov jednotlivcov. Keď poskytovateľ vlastní kľúče obsahu, jeden únik môže odhaliť uložené údaje aj cestu na ich dešifrovanie. Šifrovanie, pri ktorom poskytovateľ nevidí obsah, tieto aktíva oddeľuje: narušenie servera môže stále odhaliť šifrovaný text a metadáta, ale nie kľúč obsahu v otvorenej podobe uchovávaný poskytovateľom. Hádanie prístupových údajov a napadnutie klienta zostávajú samostatnými rizikami.
Právne donútenie je reálna hrozba
Poskytovatelia môžu byť požiadaní, aby zverejnili údaje, ktoré uchovávajú. Návrh, pri ktorom poskytovateľ nevidí obsah, môže takúto odpoveď obmedziť na šifrovaný text a dostupné metadáta účtu, prevádzky, fakturácie alebo služby, pretože poskytovateľ nedrží kľúč obsahu v otvorenej podobe. Či môže iná strana získať prístupový údaj používateľa, zneužiť klienta alebo vynútiť zverejnenie, je samostatná otázka. Apple predstavil Rozšírenú ochranu údajov v iOS 16.2 ako voliteľné rozšírenie end-to-end šifrovania pre údaje v iCloude.
„Verte nám" nie je bezpečnostná architektúra
Šifrovanie na strane servera sa spolieha na kľúče a pravidlá riadené poskytovateľom. Šifrovanie, pri ktorom poskytovateľ nevidí obsah, mení úschovu kľúča, takže zdokumentovaná cesta k službe neobsahuje kľúč obsahu v otvorenej podobe. To je silnejšia architektonická hranica, ale jej sila stále závisí od správneho klientskeho kódu, dodania overeného softvéru, spoľahlivej obnovy, bezpečných zariadení a implementácie, ktorá zodpovedá špecifikácii.
Štandard NIST za kryptografiou
AES-GCM bol štandardizovaný Národným inštitútom pre štandardy a technológie (NIST) v publikácii SP 800-38D (2007). Samotný AES vybral NIST prostredníctvom verejnej súťaže v roku 2001. „256“ v AES-256 označuje 256-bitový kľúč. Úplné prehľadávanie rovnomerne náhodného kľúča je výpočtovo neuskutočniteľné, ale ľudské heslo alebo vzor môže poskytnúť oveľa menšiu entropiu, aj keď funkcia odvodenia kľúča vydáva 256 bitov.
PBKDF2 (Funkcia odvodenia kľúča na základe hesla 2), špecifikovaná v RFC 8018, prevádza prístupový údaj zadaný človekom na materiál kľúča s pevnou dĺžkou prostredníctvom opakovaných volaní pseudonáhodných funkcií. Viac iterácií zvyšuje cenu každého odhadu. Nepridávajú entropiu k predvídateľnému vzoru alebo heslu, takže na výbere prístupového údaja a offline overení stále záleží.
Ako Vaultaire implementuje oddelenie kľúča poskytovateľa
Vaultaire je trezorová aplikácia pre iPhone postavená na zero-knowledge architektúre. Tu je popis implementácie na každej vrstve.
Odvodenie kľúča. Používateľ nakreslí vzor na mriežku 5×5 s 25 bodkami. PBKDF2-HMAC-SHA512 kombinuje túto sekvenciu s jednou soľou v Keychain pre celé zariadenie počas 600 000 iterácií na odvodenie 256-bitového kľúča trezora. Kľúč trezora overuje zašifrovaný index a obalí samostatný náhodný 256-bitový hlavný kľúč. Informácie o obnove vrátane vzoru sú uložené v databáze Keychain zašifrovanej AES-GCM namiesto súborov v otvorenej podobe alebo účtu Vaultaire.
Šifrovanie súborov. Každý importovaný súbor je zašifrovaný pomocou AES-256-GCM pod náhodným hlavným kľúčom. CryptoKit vytvára overené zapečatené boxy s novými nonce a streamovací formát odvodzuje samostatný nonce pre každý blok v poradí.
Šifrovanie metadát. Názvy súborov, MIME typy, dátumy, indexové záznamy a údaje miniatúr sú tiež chránené pomocou AES-256-GCM. Vaultaire nepoužíva ChaCha20 pre metadáta trezora.
Správa kľúčov. Vaultaire ukladá svoju soľ zariadenia a šifrovanú databázu obnovy ako bežné položky všeobecného hesla v iOS Keychain chránené triedou prístupnosti WhenUnlockedThisDeviceOnly. Kľúče trezora odvodené zo vzoru a náhodné hlavné kľúče sa spracúvajú v pamäti aplikácie cez CryptoKit. Uzamknutie zahodí aktívny stav kľúča, ale Swift a iOS nedávajú záruku, že každá prechodná kópia bude prepísaná.
Objavenie trezorov. Bežné rozhranie nezobrazuje zoznam trezorov. Stránky všetkých trezorov sú v jednom spoločnom priečinku pod náhodnými názvami, takže názvy súborov neukazujú, ku ktorému trezoru súbor patrí, a neprezrádzajú vzory, názvy ani obsah v otvorenej podobe. Kto má prístup ku kontajneru aplikácie, môže aj tak odhadnúť, koľko trezorov máte, pretože počet úložných arén tento počet obmedzuje. Pozrite si celú bezpečnostnú architektúru a vysvetlenie šifrovania vzorom.
Ako zistiť, či aplikácia skutočne používa zero-knowledge šifrovanie
Tri testy, ktoré zaberú menej ako minútu:
Test zabudnutia hesla. Ak samotný reset e-mailu obnoví čitateľné údaje, opýtajte sa, ktorý mechanizmus držaný poskytovateľom obnovil účinný kľúč obsahu. Používateľské frázy na obnovenie, schválenie starého zariadenia a resetovanie riadené poskytovateľom sú rôzne návrhy.
Test nového zariadenia. Ak nové zariadenie obnoví čitateľný obsah, identifikujte tajné alebo dôveryhodné zariadenie, ktoré ho autorizovalo. Samotné prihlásenie do účtu naznačuje cestu obnovy riadenú poskytovateľom; fráza na obnovenie plus šifrované záložné záznamy môžu zachovať oddelenie kľúča poskytovateľa.
Test účtu. E-mailová adresa alebo telefónne číslo spája identitu s metadátami služby, ale sama o sebe nedokazuje, že poskytovateľ dokáže dešifrovať obsah. Skontrolujte hierarchiu kľúčov, návrh obnovy, klientsky kód alebo audit, politiku metadát a či overený šifrovaný text umožňuje offline overovanie prístupových údajov.
Tieto testy sú filtre, nie bezpečnostný dôkaz. Koherentná špecifikácia by mala pomenovať kľúč obsahu, kľúč na odomknutie, soli, parametre odvodenia, formát overeného šifrovania, pravidlá nonce, obálky na obnovenie, lokálne úložisko tajomstiev, metadáta v cloude a miesto, kde existujú kľúče v otvorenej podobe. Nezávislá recenzia je silnejším dôkazom ako označenie produktu.
Najčastejšie otázky
Je zero-knowledge šifrovanie totožné s end-to-end šifrovaním?
Prekrývajú sa, ale nie sú totožné. End-to-end šifrovanie (E2EE) znamená, že dáta sú šifrované v zariadení odosielateľa a dešifrované iba v zariadení príjemcu. Zero-knowledge šifrovanie znamená, že poskytovateľ nemôže pristupovať k dátam. Služba môže byť end-to-end šifrovaná bez toho, aby bola zero-knowledge, ak poskytovateľ kľúče vygeneroval alebo k nim mal prístup v nejakom okamihu. Zero-knowledge šifrovanie je prísnejší štandard.
Čo sa stane, ak stratím heslo pri zero-knowledge šifrovaní?
Vaše údaje sa stanú trvalo nedostupnými, ak sa stratia všetky platné prístupové údaje a obálka na obnovenie. Reset alebo hlavný kľúč riadený poskytovateľom by oslabili hranicu poskytovateľa, takže obnovenie musí byť navrhnuté samostatne. Vaultaire vygeneruje vlastnú frázu z deviatich slov, ktorej odvodený obnovovací kľúč otvorí zašifrovanú obálku kľúča trezora. Fráza negeneruje ani nekóduje kľúč a obnova na novom zariadení tiež vyžaduje zodpovedajúce šifrované záznamy CloudKit.
Môže polícia pristupovať k dátam šifrovaným pomocou zero-knowledge šifrovania?
Poskytovateľ môže musieť zverejniť uložený šifrovaný text a metadáta účtu, prevádzky, fakturácie alebo služby, ktoré uchováva. Bez kľúča obsahu v otvorenej podobe, ktorý by mal poskytovateľ, nemôže tento poskytovateľ použiť svoju normálnu cestu služby na dešifrovanie obsahu. Zneužitie zariadenia, získanie prístupových údajov, kópie na obnovenie a vynútené zverejnenie sú samostatné cesty, ktorých zákonnosť a účinnosť sa líši podľa jurisdikcie a faktov.
Je zero-knowledge šifrovanie pomalšie ako bežné šifrovanie?
Výkon AES-256-GCM nezávisí od toho, kto má kľúč. Odvodenie kľúča z hesla pridáva prácu pri odomykaní a jeho trvanie závisí od algoritmu, počtu iterácií, zariadenia a implementácie. Aplikácie by mali merať tieto náklady na podporovanom hardvéri a vyvažovať rýchlosť odozvy s nákladmi na každý odhad offline.
Znamená zero-knowledge, že aplikácia vôbec nezbiera dáta?
Nie nevyhnutne. Tento výraz sa týka hraníc obsahu poskytovateľa, nie každého toku údajov. Aplikácia môže naďalej spracovávať údaje účtu, analytiku, správy o pádoch, adresy IP, veľkosti záznamov, načasovanie alebo iné metadáta služby. Vaultaire nevyžaduje žiadny používateľský účet. Jeho analytika aplikácie a diagnostika pádov sú predvolene zapnuté a dajú sa vypnúť prepínačom „Anonymne zdieľať chyby“ v Nastaveniach. Zdokumentovaná politika udalostí vylučuje obsah trezora, vzory, frázy a dešifrovacie kľúče; zásady ochrany osobných údajov popisujú aktuálne pravidlá zhromažďovania a uchovávania.
Ako sa zero-knowledge šifrovanie líši od Pokročilej ochrany dát Apple?
Pokročilá ochrana údajov spoločnosti Apple (ADP), predstavená v iOS 16.2, rozširuje end-to-end šifrovanie na ďalšie kategórie údajov iCloud a používa model obnovenia Apple účtu. Vaultaire šifruje obsah trezoru v zariadení a nevyžaduje žiadny používateľský účet Vaultaire; záloha iCloud (predvolene zapnutá), synchronizácia a zdieľanie používajú záznamy CloudKit šifrované na strane klienta v Apple účte používateľa. Vaultaire tiež ponúka vzorovo oddelený prístup k trezoru a nátlakový režim, pričom limity ukladania a obnovy sú opísané v dokumentácii o vierohodnom popretí.
Záver
Zero-knowledge šifrovanie je architektúra, kde poskytovateľ matematicky nemôže pristupovať k dátam používateľa, pretože šifrovacie kľúče nikdy neopustia zariadenie používateľa. Líši sa od štandardného šifrovania, šifrovania v pokoji a dokonca niektorých foriem end-to-end šifrovania v jednej zásadnej veci: neschopnosť poskytovateľa pristupovať k dátam je vynucovaná matematikou, nie zásadami. Kompromis, strata kľúča znamená stratu dát, nie je chyba. Je to mechanizmus, ktorý záruku robí skutočnou.
Šifrovanie s nulovými znalosťami sa najlepšie považuje za nárok na oddelenie kľúča od poskytovateľa: služba neuchováva kľúč v otvorenej podobe potrebný na dešifrovanie uloženého obsahu. To je silnejšie ako šifrovanie na strane servera pomocou kľúčov riadených poskytovateľom, ale nie je to tvrdenie, že kľúče existujú iba v pamäti, že metadáta zmiznú alebo že odolá každému napadnutiu klienta či zariadenia. Posúďte produkt podľa jeho hierarchie kľúčov, návrhu obnovy, implementácie a nezávislej kontroly.