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