Fluhrer, Mantin and Shamir attack
V kryptografii , Fluhrer, Mantin a Shamir útok je zejména proudová šifra útok, speciální forma dešifrování pro útok na široce používanou proudová šifra RC4 .Útok umožňuje útočníkovi získat zpět klíč v RC4 zašifrované proudu z velkého množství zpráv v tomto proudu.
Fluhrer, Mantin a Shamir útok se vztahuje na určité klíčové derivačních metod, ale nevztahuje se na RC4 založené SSL, protože SSL generuje šifrovací klíče používá pro RC4 by hašování, což znamená, že různé SSL relace mají nesouvisejících klíče. [ 1 ]
Fluhrer , Mantin a Shamir (FMS) útok, publikoval v 2001 papíru s názvemNedostatky v Key Plánování algoritmus RC4 , využívá slabosti RC4 klíč plánování algoritmus rekonstruovat klíč od počtu odebraných šifrovaných zpráv.Útok FMS získal popularitu v nástrojích, jako AirSnort a aircrack , které oba mohou být použity k útoku na WEP šifrované bezdrátové sítě.
Tato diskuse bude používat pod RC4 algoritmu plánování klíče (KSA).
začít KSA (s int KeyLength, s byte klávesou [KeyLength]) pro i 0-255 S [i]: = i endfor j: = 0 pro i 0-255 j: = (j + S [i] + klávesa [i mod KeyLength]) mod 256 swap (S [i], S [j]) endfor konec
Následující pseudo-náhodné generování algoritmus (PRGA) budou rovněž použity.
začínají prga (s byte S [256]) i: = 0 j: = 0 zatímco GeneratingOutput: i: = (i + 1) mod 256 j: = (j + S [i]) mod 256 swap (S [i], S [j]) Výstup S [(S [i] + S [j]) mod 256] endwhile konec
Základem útoku FMS spočívá v použití slabých inicializačních vektorů (IVS) používané s RC4. RC4 šifruje jeden bajt najednou s keystream výstupem zprga () ; RC4 používá klíč k inicializaci stavu stroje prostřednictvím KSA () , a poté průběžně upravuje stav a generuje nový byte keystream z nového státu.Teoreticky, klíčové proud funguje jako náhodné vycpávky , jako pseudo-generátor náhodných čísel ovládá výstup na každém kroku.
U některých infuzí, útočník věděl, první bajt keystream a první m může bytů klíče odvodit ( m + 1) tý bajt klíče kvůli slabosti v PRNG použité ke generování klíčů. Vzhledem k tomu, první bajt holého textu pochází z WEP SNAP záhlaví, může útočník předpokládat, že mohou pocházet první bajt keystream od B ⊕ 0x AA . Odtamtud, on jen potřebuje IV ve formě ( + 3, n - 1, x ) pro index klíče původu 0, prvek hodnota space n (256 od 8 bitů, aby byte), a jakékoli X .Chcete-li začít, útočník potřebuje IVs (3, 255, x ). WEP používá 24-bitové IVs, což každá hodnota jeden bajt dlouhé.
Chcete-li začít, útočník využívá IV jako první 3 prvky K []. Naplnil S-box S [] s následnými hodnotami od 0 do n jako RC4 dělá při inicializaci S-box od známého K []. On pak provede první 3 iterace KSA () a začněte inicializaci S-box.
Po třetím kroku může útočník možná, ale není rozhodně, odvodit čtvrtý bajt klíče pomocí keystream výstupní O výpočtem (O - j - S [ i ]) mod n = K [ i ], s hodnotou i = 3 v tomto kroku.
V tomto bodě, útočník zatím nemá čtvrtý bajt klíče. Tento algoritmus neregeneruje další bajt klíče, generuje možnou hodnotu klíče. Sběrem více zpráv, například WEP pakety a opakování těchto kroků, bude útočník generovat řadu různých možných hodnot. Správná hodnota se zobrazí významně častěji než jakákoli jiná, útočník může určit hodnotu klíče uznáním této hodnoty a výběrem jako další byte. V tomto bodě, může začít útok znovu v pátém bajtu klíče.
Přestože útočník nemůže zaútočit slova klíčového mimo pořadí, může ukládat zprávy pro pozdější sekvenční útoku na později slovy, jakmile ví dřívější slova.Opět, on jen potřebuje zprávy se slabými infuzí, a může vyřadit ostatní.Prostřednictvím tohoto procesu, může shromažďovat velké množství zpráv pro útoku na celkový klíče, ve skutečnosti, může ukládat pouze krátký úsek na začátku těchto zpráv, jen dost nést útok tak daleko, jak slovo klíč IV mu umožní napadnout.