Přednáška 4 - Security@FIT
Transkript
Přednáška 4 - Security@FIT
Kryptoanalýza Kamil Malinka [email protected] Fakulta informačních technologií Kryptografie a informační bezpečnost, Kamil Malinka 2008 1 Microsoft PPTPv1 • zájem o rozšiřování možností op. systémů přináší implementaci konkrétního protokolu pro VPN • Co řeší VPN? • point-to-point tunneling protocol – port 1723 – nevyužívá žádné specifické kryptografické algoritmy – první verze ve Windows NT (server), Win Me, Win98 Kryptografie a informační bezpečnost, Kamil Malinka 2008 2 Autentizace • heslo v čisté podobě – problém odposlouchávání – zanedbatelné bezpečnost • poslání hashe hesla – pro útočníka totožné jako otevřená forma – pouze nutno drobné úpravy • výzva/odpověď – MS-CHAP (Microsoft Challenge Authentication Protocol) – jediná rozumná volba – ke skrytí hesla jsou použity dvě jednocestné funkce – klient nezasílá autentizační zprávu sám, žádá server o zaslání výzvy Kryptografie a informační bezpečnost, Kamil Malinka 2008 3 MS CHAP – úvodní zpráva klienta c0 21 01 00 00 13 03 05 c2 23 80 • (2) LCP packet, (1) conf request, (1) ID, (2) length, (1) authentication, (1) CHAP option length, (2) CHAP, (1) MS-CHAP – výzva serveru c2 23 01 00 00 0d 08 cf 4f 0e 72 89 04 3b • (2) chap packet, (1) challenge, (1) ID, (2) length, (1) challenge length, (8) challenge – odpověď c2 23 02 00 00 53 31 41… 31 19 … 0f 01 A d m … t o r • (2) chap packet, (1) response, (1) ID, (2) length, (24) LANMAN, (24) NT response, (1) NT compatib. flag, (13) account name • Poslední zpráva obsahuje 2 dlouhé řetězce – jejich základem jsou dva algoritmy • Lan Manager Hash • Windows NT Hash Kryptografie a informační bezpečnost, Kamil Malinka 2008 4 Lan Manager Hash • autentizace založená na hesle – síla hesla určuje sílu autentizace • Postup: – – – – úprava hesla na 14 znaků (oříznutí, doplnění nulami) všechna malá písmena převedena na velké rozdělení hesla na dvě půlky – 7 znakové řetězce zašifrování standardem definované konstanty pomocí DES (jako klíče slouží 7 znak. řetězce) – zřetězení výsledků – dostáváme LM hash – 16 bajtů • Postup silně snižuje bezpečnost! Proč? Kryptografie a informační bezpečnost, Kamil Malinka 2008 5 Slovníkový útok • • • • lidé volí lehce uhodnutelná hesla pouze velká písmena – snížení prostoru klíčů žádná sůl – stejná hesla => stejný hash původní heslo rozdělené – stačí hádat 2x kratší (podstatné zrychlení útoku) • okamžité rozpoznání hesla kratšího 8 znaků • NT Hash se snaží vyvarovat těchto chyb. ALE! Kryptografie a informační bezpečnost, Kamil Malinka 2008 6 Windows NT hash • 14 znakové heslo zpracovávané v celku • heslo je vstupem MD5 => 16B hodnota hashe • mnohem silnější jako Lan Manager Hash • stále žádná sůl • !zachování kompatibility – zasílány obě hodnoty hashe! Kryptografie a informační bezpečnost, Kamil Malinka 2008 7 Kryptoanalýza MS-CHAP • kromě již zmíněných základních útoku je možná důkladnější a nebezpečnější kryptoanalýza • Popis protokolu: 1. 2. 3. 4. klienta posílá výzvu server pošle 8 bajtovou náhodnou výzvu klient spočítá hash (LM nebo NT), hash || 0 0 0 0 0 => 21 znaků => 3 x 56b. klíče pro DES 3 klíče využity k trojnému zašifrování 8 bajtové výzvy => 24 bajtů odpovědi server porovná zaslanou odpověď Kryptografie a informační bezpečnost, Kamil Malinka 2008 8 Konvence zápisu • P0…P13 – jednotlivé bajty hesla • H0…H15 – bajty LM nebo NT hashe • K0…K20 – bajty klíčů, kterými se šifruje autentizační výzva • S – konstanta, která je součástí definice protokolu • C – výzva, R0…R23 – odpověď • útočník zná C a R, chce najít heslo P Kryptografie a informační bezpečnost, Kamil Malinka 2008 9 Postup útoku Heslo: P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 LM hash získaný z hesla: H0 H1 H2 H3 H4 H5 H6 H7 DES (opt.) H8 H9 H10H11H12H13H14H15 získáme 3x DES klíč: K0 K1 K2 K3 K4 K5 K6 K7 K8 K9 K10K11K12K13 K14K15 016 017 018 019 020 challenge - response 3x DES zašifrování 8 bajtové výzvy DES R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10R11R12R13R14R15 R16 R17 R18 R19 R20 R21 R22 R23 Kryptografie a informační bezpečnost, Kamil Malinka 2008 10 Kryptoanalýza MS-CHAP • 1. 2. 3. Offline: předpočítané šifrování DES každé možné hodnoty P0…P6 a P7…P13 hledáme všechny možné K14, K15 – kontrola:správná hodnota šifruje C na R16…R23 s klíčem K14, K15, 0, 0, 0, 0, 0 => průměrně 215 operací zkoušíme vhodné hodnoty P7…P13, špatné volby eliminujeme šifrováním a srovnáním s K14, K15 => pro všechny kandidáty otestujeme všechny možné hodnoty K7, kontrola: C zašifrujeme na R8…R15 – N/216 možností zkoušíme vhodné hodnoty P0…P6 , K7 známe N1/28 možností Kryptografie a informační bezpečnost, Kamil Malinka 2008 11 MPPE – point-to-point encryption • předpokládá sdílený klíč • RC4 – 40 nebo 128 bitů • kompresní protokol PPP použit k domluvě na parametrech šifrování 1. získání 64-bitového klíče z LM hashe použitím SHA – 24 nejvýznamnějších bitů nahrazeno konstantou 0xD1269E 2. NT hash || 64 bitů náhodné výzvy z MS-CHAP – získání128 bitového klíče použitím SHA • po každých 256 zašifrovaných bajtech je vytvořen nový klíč pro RC4 Kryptografie a informační bezpečnost, Kamil Malinka 2008 12 Síla klíčů • deterministický postup generování klíče => síla klíče je rovna síle hesla • RC4 – OFB cipher – proudové šifry – 40bit klíč je stejný, nemění se s novým přihlášením => získání více proudů dat umožňuje rekonstrukci původních dat (xor) nebo pseudonáhodného řetězce • bit flipping attack – útočník chce způsobit změnu v datech, změny v hlavičkách … – RC4 je OFB šifra • vlastnost MPPE – resynchronizace na žádost klienta – útočník může podvrhnout žádost o resynch. – informace obsažena v bitu dalšího paketu, klient nekontroluje zda o ni žádal – útočník může docílit xorování předem zvoleným řetezcem • další problémy: – pasivní monitorování komunikace, snadný únik citlivých informací z klientského počítače … Kryptografie a informační bezpečnost, Kamil Malinka 2008 13 CBC Padding • SSL/TLS, IPSEC, WTLS – zpráva je nejdříve předformátována • po dešifrování je formát opět zkontrolován – postranní kanál • chybová zpráva – chyba při dešifrování • chybová zpráva – chybný formát – složitost útoku O(NbW) • N – počet bloků, b – počet slov v bloku, W – počet možných slov (usually 256) – 8 kB msg => 1000 blocks * 8 words * 256 – CBC Padding: Security flaws in SSL, IPSEC, WTLS, …, S. Vaudenay, EUROCrypt’02 Kryptografie a informační bezpečnost, Kamil Malinka 2008 14 RFC2040 • RC5-CBC-PAD, každý blok má 8 slov o 8 bitech – zprává je doplněna n slovy s hodnotou n – získáme sekvenci bloků x1, …, xn – šifrování y1=C(IV ⊕ x1), yi = C(yi-1 ⊕ xi) • dešifrování: – dešifrování, kontrola paddingu, odstranění paddingu • kontrolu korektnosti paddingu použijeme jako “věštírnu“ (z angl. oracle) Kryptografie a informační bezpečnost, Kamil Malinka 2008 15 Nepravděpodobný útok • předpokládejme že šifrové bloky yi, yj jsou shodné – potom platí yi-1 ⊕ yj-1 = xi ⊕ xj – dále využijeme redundance v textu k získání xi, xj z yi-1, yj-1 – pravděpodobnost – narozeninový teorém • p ≈ 1 – e-N.N/(2m) = 1 – e-N.N/(2.8^8) • rozumnou pravděpodobnost 39% získáme až pro data o délce 32 GB Kryptografie a informační bezpečnost, Kamil Malinka 2008 16 Účinný útok I – používáme “orákulum“ O – vrací 1, pokud má dešifrovaný text korektní padding, jinak vrací 0 – O je definováno šifrovým textem a IV – chceme spočítat poslední slovo bloku y • nechť r=r1 … rb jsou náhodná slova, podvrhneme šifrovaný text r|y • pokud O(r|y)=1 pak C-1(y) ⊕ r skončí s platným paddingem • nejpravděpodobnější padding je 1 (odpovída pouze 1 byte), můžeme ověřit použitím r’= r1’ … rb’, rb = rb’ Kryptografie a informační bezpečnost, Kamil Malinka 2008 17 Účinný útok II • O(r|y) = 1 => C-1(y) ⊕ r = 01 resp. 02 atd.. C-1(yi) = (yi-1) ⊕ pi C-1(y) ⊕ r = 01 ((yi-1) ⊕ pi) ⊕ r = 01 Kryptografie a informační bezpečnost, Kamil Malinka 2008 18 Účinný útok III • nyní chceme dešifrovat blok – block decryption oracle – a = a1 … ab <= C-1(y) – použijeme O k získání posledního slova ab – co s ab-k? – aj • • • • začátek je stále náhodný r1…rj-1, konec je rk=ak ⊕ (b-j+2) použijeme padělaný šifrovaný text r|y pro dešifrování druhý blok je r ⊕ a, tedy poslední b-j+1 blok je b-j+2 pokud O(r|y) = 1 tak víme, že rj ⊕ aj = b-j+2 => tedy získáme aj Kryptografie a informační bezpečnost, Kamil Malinka 2008 19 Příklad b=8 W=256 yi=C(yi-1 ⊕ xi), xi = C-1(yi) ⊕ yi-1 • C = 3c 68 74 6d 6c 3e 3c 68 | 65 61 64 3e 3c 6c 69 6e • r = 00 00 00 00 00 00 00 00 = r1 r2 r3 r4 r5 r6 r7 r8 • zkoušíme – O(65 61 64 3e 3c 6c 69 6e | 00 00 00 00 00 00 00 r8) – kde r8 běží od 0 -> ff, dostaneme O()=1 pro r8 = f3 a dešifrování posledního bajtu “6e” je s největší pravděpodobností 01 ⊕ f3 = a8 – další bajt – r8 = a8 ⊕ 2 a dále zkoušíme všechny hodnoty r7 – O(65 61 64 3e 3c 6c 69 6e | 00 00 00 00 00 00 r7 f2) – pokud O()=1 => r7 ⊕ a7 = 2 => a7 = r7 ⊕ 2 Kryptografie a informační bezpečnost, Kamil Malinka 2008 20 Jiný příklad • • • • ŠIFRA: 4D A8 B5 17 64 59 26 B7 | FA 0B 47 2C 04 04 62 33 Inicializační vektor: 12 12 12 12 12 12 12 12 r1: 4C50585A5F31545C r2: 07FDF633645E20B2 p18 = 12 ⊕ 5C ⊕ 01 = 4F p17 = 12 ⊕ 54 ⊕ 02 = 44 p16 = 12 ⊕ 31 ⊕ 03 = 20 p11 = 12 ⊕ 4C ⊕ 08 = 56 p28 = B7 ⊕ B2 ⊕ 01 = 04 p27 = 26 ⊕ 20 ⊕ 02 = 04 p26 = 59 ⊕ 5E ⊕ 03 = 04 … p21 = 4D ⊕ 07 ⊕ 08 = 42 VELMI DOBRE! Kryptografie a informační bezpečnost, Kamil Malinka 2008 21 Používání ENIGMY 1. Nastavení do základní konfigurace pro daný den 2. zvolí se 3 písmenná počáteční pozice rotorů (indikátor) od které se zašifruje 3 písmenný klíč zprávy 3. rotory se nastaví na pozici indikátoru, klíč ve zprávě, šifrování 2x za sebou, 4. nastavení rotorů na klíč zprávy, šifrování vlastní zprávy 5. jak preambule (zašifrovaný klíč zprávy), tak zpráva jsou předány operátorovi k přenosu (radio, morseovka) Kryptografie a informační bezpečnost, Kamil Malinka 2008 22 Kryptografie a informační bezpečnost, Kamil Malinka 2008 23 Kryptografie a informační bezpečnost, Kamil Malinka 2008 24 Picture comes from the book Decrypted Secrets by Friedrich L. Bauer Kryptografie a informační bezpečnost, Kamil Malinka 2008 25 Čtyři rotory Enigmy E a detail rotoru. Pictures shot at Bletchley Park, UK, 2005 Kryptografie a informační bezpečnost, Kamil Malinka 2008 26 Německá komunikační stanice během 2. světové války Kryptografie a informační Picture shot at Bletchley Park, UK, 272005 bezpečnost, Kamil Malinka 2008 2005 Kryptografie a informační Picture shot at Bletchley Park, UK,28 bezpečnost, Kamil Malinka 2008 Luštění Enigmy • Dillwyn Knox a Alan Turing měli repliky Enigmy, které pocházeli z Polska (včetně výsledků dosavadní kryptoanalýzy) • možné útoky – kryptoanalýza pouze s použitím šifrového textu – útok s diskriminanty – studium využití opakovaného šifrování tří písmenného diskriminantu – útok s použitím pravděpodobné fráze – známý či uhodnutý text – crib • každý znak se po šifrování nutně změní • posunování crib po textu, dokud se ani jedno z písmen neshoduje • se známým pořadím rotorů a jejich pozicí se hledalo nastavení steckeru, jež by umožnil transformaci šifrovaného textu na otevřený text, počet testovaných možností - 1020 Graham Ellsbury – The Turing Bombe Kryptografie a informační bezpečnost, Kamil Malinka 2008 29 Bomba – dešifrovací přístroj přední (vpravo), zadní strana (vlevo) a otevřený (dole) Kryptografie a informační 30 Pictures shot at Bletchley Park, UK, 2005 bezpečnost, Kamil Malinka 2008 Lorenz a Colossus Lorenz je rotorový šifrovací stroj používaný německými vysokými důstojníky v Evropě během 2. světové války (nahoře). Colossus je dešifrovací stroj pro Lorenz vytvořen Brity aniž by vůbec někdy původní šifrovací stroj spatřili. Kryptografie a informační 31 Pictures shot at Bletchley Park, UK, 2005 bezpečnost, Kamil Malinka 2008