Postranní kanály
Co je postranní kanál
V 90. letech minulého století se došlo k závěru, že
moderní kryptografie je postavena na pevných matematických
základech a tím pádem je bezpečná. Kryptoanalytici proto
přestali hledat chyby v matematickém modelu, ale zaměřili
se na konkrétní implementace. A zde se ukázalo, že obsahují
spoustu slabin a poskytují informace, s nimiž se v matematickém
modelu nepočítá.
Každý nežádoucí způsob výměny informací mezi zabezpečeným
systémem okolím je postranní kanály.
Typy
Potranních kanálů existuje celá řada. Dají se rozdělit
na několik skupiny:
-
elektromagnetické (např. každý počítač je zdrojemelektomagnetického záření)
- časové (průběh operace závisí na vstupních datech)
-
proudové (např. pokud zadám špatně pin, v zařízeníprochází jíný proud)
- chybové (chyba v implementaci systému)
Chybové potranní kanály
Můžou být způsobené vlastní chybou sytému. Tzn. systém
není spolehlivý.
Chyba do nich může být také vnesena špatným protokolem
nebo šifrovacím algoritmem. Např. při šifrování pomocí
blokových šifer mohou pro stejné bloky textu vzniknout
stejné bloky zašifrovaného textu (při použití ECB) anebo
naopak zopakovaním některých bloků dojde k změně informace,
aniž by útočník znal způsob šifrování (např. zvojením
bloku přídáme 3 nuly a tak místo 1 000 Kč pošleme 1
000 000 Kč).
TLS proto umožňuje u blokových šifer použít pouze CBC
modus.
Doplňování v modu CBC
U šifrování pomocí blokových šifer je známý problém
doplnění posledního bloku textu na správnou délku (např.
předepsaná délka je 8 bytů, ale na poslední
blok zbylo jen 7). V TLS se doplňuje od 0 do 255 bytů.
Jde o tzv. padding.
Např. chceme zašifrovat text ovelikosti 61 bytů.
MAC má délku 20 bytů a na uložení délky paddingu potřebujem
1 byte (0 - 255). To je celkem 82 bytů. Budem chtít
šifrovat TripleDESem. Jeho délka bloku je 8 bytů. Tzn.
musíme data doplnit tak, aby jejich délka odpovídala
násobkům 8. Zvolíme tedy jedno z čísel 6, 14, 22, ...,254.
Jako hodnota bytů použitých jako výplň se zvolí délka
paddingu. Např. pro 6 bude konec odesílaných dat vypadat
xx 06 06 06 06 06 06 06, kde xx je poslední byte z MAC,
následuje 6 x 06 a nakonec délka paddingu 06.
PK při použití RSA v TLS
TLS umožňuje nastavit se tak, aby mohl komunikovat
s klientem SSLv2. Toto skrývá nebezpečí v okamžiku handshaku,
kdy server přijme pre-master secret, ale zjistí, že
je pro špatnou verzi. Vyšle chybové hlášení a ukončí
spojení.
Toto chybové hlášení je zdrojem informace, kterou může
útočník využít. Po mnoha takových pokusech, kdy posílá
jím pozměněná chybová data se dostane až k privátnímu
klíči.
Na tento postraní kanál přišli čeští kryptoanalytici
Tomáš Rosa a Vlastimil Klima. Podařilo se jim při jednom
jejich testu nalézt privátní RSA klíč o délce 1024 bitů
za necelých 23 hodin. Doba víceméně závisí jen na výkonnosti
serveru.
Lze odstranit tak, že se společně s pre-master secret
pošle očekávaná verze protokolu. Další řešení je konfigurace
serveru (není běžné aby klient posílal tisíce požadavků).
|