Kleptografie ( angl. Kleptography ) je odvětví kryptovirologie , které zkoumá bezpečnou a skrytou komunikaci prostřednictvím kryptosystémů a kryptografických protokolů a asymetrických zadních vrátek v kryptografických algoritmech ( generování klíčů , digitální podpis , výměna klíčů, generátory pseudonáhodných čísel , šifrovací algoritmy ) za účelem provést kleptografický útok [1] . Termín zavedli Adam Young a Moti Jung na konferenci Advances in Cryptology—Crypto '96 [2]
Kleptografie je přirozeným rozšířením teorie podprahových kanálů [3] [4] [5] , kterou poprvé aplikoval Gus Simmons při práci v Sandia National Laboratory [1] .
Kleptografický útok využívá asymetrickou kryptografii k implementaci kryptografických zadních vrátek [6] . Jedním z takových útoků může být například chytrá úprava způsobu, jakým kryptosystém generuje pár klíčů , aby bylo možné soukromý klíč odvodit z veřejného klíče pomocí soukromého klíče útočníka. Při dobře navrženém útoku budou výstupy infikovaného kryptosystému výpočetně nerozeznatelné od výstupů neinfikovaného [7] . Pokud je infikovaným kryptosystémem implementace černé skříňky , jako je hardwarový bezpečnostní modul , čipová karta nebo TPM , může být úspěšný útok neodhalen [8] .
Pomocí reverzního inženýrství můžete detekovat zadní vrátka vložená útočníkem a když jsou symetrická, dokonce je sami použít [6] . Z definice je však kleptografický backdoor asymetrický a reverzní inženýr ho nebude moci použít. Kleptografický útok (asymetrický backdoor) vyžaduje soukromý klíč, který zná pouze útočník, aby mohl backdoor použít. V tomto případě, i kdyby byl reverzní inženýr dobře financován a měl plnou znalost zadních vrátek, bylo by pro něj zbytečné extrahovat otevřený text bez soukromého klíče útočníka [6] .
Kleptografické útoky mohou být vytvořeny jako kryptotrojský kůň , který infikuje kryptosystém a otevře zadní vrátka pro útočníka, nebo mohou být implementovány výrobcem kryptosystému. Útok nemusí odhalit celý výstup kryptosystému; sofistikovanější útočnou technikou je střídání mezi přijímáním neinfikovaného výstupu a nezabezpečeným výstupem v přítomnosti zadních vrátek [1] .
Kleptografické útoky byly vyvinuty pro generování klíčů RSA , výměnu klíčů Diffie-Hellman , algoritmus digitálního podpisu a další kryptografické algoritmy a protokoly. SSL , SSH a IPsec jsou zranitelné vůči kleptografickým útokům [9] . V každém případě může útočník kompromitovat konkrétní kryptografický algoritmus nebo protokol. Ověřuje informace, do kterých jsou zadní vrátka zakódována (jako je veřejný klíč, digitální podpis, zprávy o výměně klíčů atd.), a poté tato asymetrická zadní vrátka využívá pomocí svého tajného klíče (obvykle soukromého klíče) [1] .
Ari Juels a José Guajardo [10] navrhli metodu (KEGVER), jejímž prostřednictvím může třetí strana ověřit generování RSA klíčů. Je navržen jako forma distribuované distribuce klíče, ve které je tajný klíč znám pouze samotné černé skříňce. Tím je zajištěno, že proces generování klíče nebyl upraven a že soukromý klíč nelze replikovat pomocí kleptografického útoku [10] .
Čtyři praktické příklady kleptografických útoků (včetně zjednodušeného útoku SETUP proti RSA) lze nalézt v JCrypTool 1.0, platformě nezávislé open source verzi projektu CrypTool [11] . JCrypTool také implementuje ukázku prevence kleptografických útoků pomocí metody KEGVER [12] .
Kleptografický backdoor se používá v kryptograficky zabezpečeném generátoru pseudonáhodných čísel Dual_EC_DRBG od NIST SP 800-90A . Dual_EC_DRBG používá eliptickou kryptografii a má se za to, že NSA vlastní soukromý klíč, který spolu s offsetovými chybami v Dual_EC_DRBG umožňuje NSA dešifrovat SSL provoz mezi počítači pomocí například Dual_EC_DRBG [13] .
Existují obecná doporučení pro ochranu před kleptografickými útoky, jako je provedení komplexní analýzy struktury kryptosystému se zapojením specialistů v oblasti kryptografie a složení (kaskádování) kryptografických transformací pocházejících z různých zdrojů [14] . Využití komerčních kryptografických nástrojů, hardwarových i softwarových, vede k tomu, že běžný uživatel ani středně velká firma není schopen ověřit „čistotu“ používaných technologií. Programy se zpravidla snaží co nejvíce chránit před demontáží a analýza vnitřní struktury hardwarových řešení je sama o sobě velmi zdlouhavá a nákladná, i když výrobce neuplatňuje speciální ochranná opatření [14] .