Nojo. Jak jsem se už zmiňoval, jsem chaotik. Dneska jsem předváděl, co znamená, když se na sektory disku zašifrovaného BitLocker používá jen prosté CBC. Pokud znáte dešifrovací klíč (tedy FVEK), můžete se podívat, že jste schopni dešifrovat téměř celý libovolný sektor i bez ohledu na to, jestli znáte jeho pozici na disku, nebo ne.
Každý sektor se šifruje nezávisle na ostatních sektorech. Inicializačním vektorem (IV) je pouze číslo sektoru vzhledem k oddílu.
Tím se myslí, že neznáte inicializační vektor (IV) pro AES CBC. Při dešifrování se vám nepodaří dešifrovat správně jen prvních 16 bytes (tedy velikost AES bloku). Zbytek sektoru uvidíte v pořádku. Viz. následující obrázek z mého ukázkového prográmku. Je v něm sektor plný ASCII znaků 16-255. Jen prvních šestnáct znaků je chaos.
Proč mi to nefungovalo na přednášce? Protože jsem blázen. Sektory jsou sice dlouhé 0x200, ale taky člověk musí začít na pozici tímto dělitelné. V obou případech jsem si prostě vzal 512 bajtů od poloviny jednoho do poloviny druhého sektoru. No prostě únava materiálu :-(
BitLocker Diffuser a XTS-AES
Proč to vadí? Proč nestačí jenom CBC? Vždyť jsem znal FVEK. Když znáte dešifrovací klíč, tak je přece jasné, že ty sektory dešifrujete.
Ale v případě offline sector-switch útoku ten FVEK neznáte. Nejste schopni nic sami dešifrovat. Ale přehodit dva zašifrované sektory (tedy nečitelné) můžete vždycky. Až se bude disk později normálně dešifrovat - uživatel si prostě počítač spustí - sektory se dešifrují korektně, kromě svých prvních 16 bajtů.
Dalo by se to tedy využít k tomu, že nahradíte, offline a bez znalosti klíče, některé systémové soubory, nebo konfiguraci v registrech. Samozřejmě byste museli vědět (offline bez dešifrování), které sektory máte vyměnit. Ale ono je v systému hodně míst, která mají poměrně pevnou pozici na disku.
Proto byl dříve v BitLocker proprietární Diffuser. A od Windows 10 je k dispozici standardní XTS-AES. A je dokonce výchozí. S jedním z těchto dvou algoritmů už sektory závisí na své pozici vzhledem k ostatním sektorům a nelze je tedy přehodit.