Learning
Všechny články
Engineering31. srpna 2026 5 min

Podpis dokazuje přístup ke klíči, ne pravdu

Hardwarový modul chrání klíč před vytažením, ne před zneužitím

Kryptografický podpis neprokazuje pravost obsahu

C2PA staví na jednoduchém příslibu: fotoaparát snímek podepíše a ty pak poznáš, co vzniklo v senzoru a co v difuzním modelu. Pixel Camera dostala Assurance Level 2, tedy nejvyšší stupeň, jaký program zatím definuje.

David Buchanan ukázal, že na Androidu ten příslib neplatí. Zajímavé není, že to prolomil. Zajímavé je, že přitom nemusel získat privátní klíč.


Co attestace ve skutečnosti kontroluje

Obrana stojí na třech vrstvách. Key Attestation a Play Integrity mají zabránit tomu, abys upravil aplikaci fotoaparátu a nechal ji podepsat něco jiného než data ze senzoru. Klíče leží ve StrongBoxu, tedy v čipu Titan M2, který je nevydá. A attestace ověří, že bootloader je zamčený a patche aktuální.

Ta poslední kontrola je ta, na které to stojí, a taky ta, kterou útočník nemusí řešit. Buchanan získal root dvěma cestami: levným hardwarovým glitchem přes elektromagnetický puls, který překlopí bity v paměti, a později přes CVE-2026-43499, na které existují jednoklikové exploity pro plně záplatované Pixely.

Ani jedna cesta bootloader neodemkne. Ani jedna nezmění AVB klíče. Attestace po obou projde, protože měří přesně ten stav, který útok nechává netknutý.


Klíč nepotřebuješ vlastnit, stačí ho umět zavolat

Tohle je jádro věci. StrongBox svůj slib plní — surový klíč nikdy neopustí čip. Jenže root si přes nástroj keystork může vyžádat libovolnou operaci KeyStore pod identitou aplikace Pixel Camera. Požádá čip o podpis dat, která si sám vybere, a dostane platný C2PA podpis pod obrázkem vygenerovaným modelem.

Hardwarový modul tedy chrání proti exfiltraci klíče. Nechrání proti jeho zneužití. To jsou dvě různá tvrzení a v návrzích se pravidelně slévají do jednoho.

Skutečná bezpečnostní hranice není v tom, kde klíč fyzicky leží. Je v tom, kdo smí zavolat operaci podpisu. A ta hranice běží v operačním systému, tedy o vrstvu výš, než kam sahá ochrana čipu.


Proč se to nedá zaplatovat

Google report o hardwarovém útoku uzavřel jako „Won't fix (infeasible)" a vyplatil 7 500 dolarů. Ta reakce je poctivá: softwarovou chybu zavřeš, glitchování hradlového pole ne. Zranitelnost v křemíku je trvalá.

Skutečná oprava by znamenala přesunout celý obrazový pipeline do enklávy, tedy přestavět softwarový stack. A i po ní zbývá útok, proti kterému kryptografie nezmůže nic: vyfotit obrazovku, na které je vykreslený falzifikát. Senzor uvidí skutečné fotony a podepíše je poctivě.


Co si z toho odnést

Platný podpis odpovídá na otázku „kdo měl v okamžiku podpisu přístup ke klíči". Neodpovídá na otázku „je ten obsah pravdivý". Systémy provenience ty dvě otázky spojují a při návrhu se ten skok skoro nikdy nevysloví nahlas.

Když stavíš vlastní systém nad KMS nebo HSM, přeformuluj si otázku. Ne kde klíč leží, ale který proces smí požádat o podpis, čím se ten proces prokazuje a co se stane, když ho někdo obejde. Ochrana klíče před vytažením je levná a řeší nejmenší část problému.

Z toho plyne i praktický důsledek pro provoz: log volání podpisové operace je cennější než jakákoli záruka o úložišti klíče. Klíč, který nikdy neunikl, ti nic neřekne o tom, kolikrát a čím byl použit.

Zdroje

Poslech místo čtení — 1 zdroj k načtení.