Útoky postranními kanály: Jak útočníci zneužívají vedlejší stopy
Postranní kanály (side channels) představují způsob, jak útočníci získávají tajné informace nejen napadením samotného kryptografického algoritmu, ale z jeho implementace. Místo prolomení matematických principů se zaměřují na vedlejší stopy, které systém vydává – například čas běhu, spotřebu energie, chybové hlášky nebo dokonce lidské chování.
1. Co jsou postranní kanály?
Postranní kanál je jakýkoli nepřímý zdroj informací, který závisí na utajované hodnotě, ale sám není přímo tajnou datovou položkou. Z těchto "vedlejších" dat lze často odvodit nebo přímo rekonstruovat chráněné informace.
1.1. Proč jsou nebezpečné
-
Pasivní a neinvazivní: Nevyžadují modifikaci hardwaru či softwaru, stačí jen sledovat odposlouchávané stopy.
-
Obcházejí matematická zabezpečení: Ani perfektní algoritmus nestačí, pokud implementace „vyzradí“ něco navíc.
-
Široká škála: Od mikroarchitektur až po lidské chování.
2. Hlavní typy postranních kanálů
2.1. 1. Časový postranní kanál
Založen na měření doby běhu operací, která závisí na utajovaných datech.
for (int i = 0; i < n; ++i) {
if (pass[i] != text[i])
return false;
}
return true;
Rozdíl v čase vrácení false odhalí, v jaké pozici se heslo neshoduje. Útočník tak může hádat po znakové ose.
Ochrana: konstantní čas bez podmíněných návratů:
byte c = 0;
for (int i = 0; i < n; ++i)
c |= pass[i] ^ text[i];
return !c;
2.2. 2. Chybový postranní kanál
Únik informací skrze detailní chybové zprávy.
-
Příklad: Systém vrátí, ve kterých znacích se vstup liší od hesla.
-
Nebo chybná implementace, která při neúspěšném ověření odhalí hash hesla.
Ochrana: zjednodušené, generické hlášky bez odhalování detailů.
2.3. 3. Odběrový (Power) postranní kanál
Sledování spotřeby energie při kryptografických výpočtech.
2.3.1. SPA (Simple Power Analysis)
Analyzuje průběh spotřeby v čase jednoho běhu algoritmu.
-
Příklad útoku na Square & Multiply (RSA):
-
Operace
squareamultiplyse liší v energetické náročnosti. -
Z grafu spotřeby lze odhadnout bity exponentu (privátní klíč).
-
for (int i = k-1; i >= 0; --i) {
x = x*x % n; // SQUARE
if (d[i] == 1)
x = x*c % n; // MULTIPLY
}
2.3.2. DPA (Differential Power Analysis)
Statistická analýza stovek či tisíců měření spotřeby.
-
Zvolit vnitřní hodnotu $v = SubBytes(d \oplus k)$ závislou na klíči a datech.
-
Změřit $t_i$ (500–1000 běhů) a vytvořit matici $T$ měření.
-
Sestavit hypotetickou vnitřní hodnotu $V$ pro všechny možné bytové klíče.
-
Modelovat hypotetickou spotřebu $H$ (Hammingova váha) z $V$.
-
Pearsonova korelace mezi $H$ a $T$ odhalí správný klíč.
2.4. 4. Elektromagnetický postranní kanál
Variace odběrového kanálu – měří se elektromagnetické pole, které vydávají obvody.
2.5. 5. Sociální postranní kanál
Lidské chování jako zdroj informací.
-
Příklad: sledování zbylých volebních lístků odhalí, jak kdo hlasoval.
3. Doporučení k ochraně
| Metoda | Popis |
|---|---|
Odstranit datovou závislost |
Konstantní čas, pevné chybové zprávy. |
Zamaskovat implementaci |
Přidat dummy operace, šumění spotřeby (blinding). |
Fyzická opatření |
Stínění EM vyzařování, filtrace napájení (Faradayova klec). |
Bezpečné protokoly |
Protokoly navržené specificky proti postranním kanálům. |
Autor: Jan Troják, DevOps/Infra engineer