© Anders Ingeborn 2000 ”Utblick verkligheten” Gästföreläsning Kryptografins grunder KTH 2000
© Anders Ingeborn 2000 Innehåll Kryptering i praktiken – Svårigheter och vanliga problem Microsoft Word – Sekretess i applikationer Kerberos – Ett nygammalt autenticeringsprotokoll Secure Sockets Layer, SSL – Nätverkssäkerhet
© Anders Ingeborn 2000 Vem är jag? Civilingenjör Datateknik KTH Säkerhetsinriktningen 1998 Säkerhetkonsult Infosec 2000 – Säkerhetsanalyser – Penetrationstester
© Anders Ingeborn 2000 Kryptering i praktiken
© Anders Ingeborn 2000 Situation De flesta säkerhetssystem baseras på kryptering Goda nyheter! – Det finns bra system och protokoll Dåliga nyheter… – Design & implementation ”LDAP-krypterat”, ”MD5-krypterat”… – Svårt att verifiera Inte ens ”RSA-krypterat” medför alltid säkerhet
© Anders Ingeborn 2000 Vad är det som brister? Ofta inte matematiken förhållande mellan lösenord och kryptonyckel beroende av lösenord, meningar Falsk säkerhet är farligare än ingen säkerhet alls – ”Hemlig specialutvecklad kryptering” – Räkna upp egenskaper snarare än utvärdera säkerheten Nyckellängder Certifieringar
© Anders Ingeborn 2000 Praktikfall
© Anders Ingeborn 2000 MS Word, äldre versioner MS Word 2.0 – 128-bitars nyckel – XOR – 00-bytes ger nyckeln MS Word 6.0 (95) – Undviker att ”kryptera” 00-bytes – 16 byte känd klarttext ger ändå nyckeln – Halvt dussin verktyg
© Anders Ingeborn 2000 MS Word 8.0 (97) Kunde ha stått i marknadsföringen – ”MD5 och RC4” – RC4 tar 128 bitars nyckel – MD5 ger 128 bitars utdata Från lösenord till kryptonyckel? – Användaren anger ett lösenord – Lösenordet hashas med MD5 – och…
© Anders Ingeborn 2000 – 11 byte ”kastas” – De 5 kvarvarande kombineras 16 gånger med en speciell 16 byte lång sekvens från dokumentet – Detta hashas igen med MD5 – 11 byte kastas igen och ersätts med nollor och utfyllnad enligt MD5-specen – Detta hashas igen och utgör RC4-nyckeln Ett par tre olika verktyg MS Word 8.0 (97)
© Anders Ingeborn 2000 Kerberos
© Anders Ingeborn 2000 Kerberos Renässans senaste året – Version 5 i Windows 2000 Gemensam hemlighet med KDC – Key Distribution Center – Symmetrisk nyckel – Autenticering – Skyddar sessionsnyckel i TGT – Baserad på användarens lösenord
© Anders Ingeborn 2000 Från lösenord till hemlighet Lösenord i ASCII-text – 7 bitar från varje tecken Korta ner till 56 bitar (”vik ihop”) Beräkna paritetsbitar – DES-nyckel Kryptera det ursprungliga lösenordet – DES PCBC XOR med både klar- och kryptotext IV = 0
© Anders Ingeborn 2000 …forts. CBC checksumman är hemligheten – Sista 64-bitarsblocket – Lagras på KDC Kan skyddas ytterligare – Används för att kryptera sessionsnyckeln mellan TGS och klient PKI-alternativ också möjligt – Draft
© Anders Ingeborn 2000 Secure Sockets Layer
© Anders Ingeborn 2000 SSL Secure Sockets Layer – version 3.0, Netscape 1996 Säkerhetstjänster – Autenticering – Verifiera riktighet – Sessionskryptering Två delar – Autenticering och nyckelförhandling – Sessionskryptering mm
© Anders Ingeborn 2000 SSL Handshake Autenticering – Challange-Response Nyckelförhandling – Gemensam hemlighet – Kryptonycklar och startvärden Gemensam hemlighet, 48 byte – Diffie-Hellman – RSA
© Anders Ingeborn 2000 SSL Nyckelgenerering Tre saker behövs – ”Hash-nycklar” – Nycklar för sessionskryptering – Startvärden, IV Detta genereras utifrån den gemensamma hemligheten
© Anders Ingeborn 2000 Nyckelmaterial Nyckelmaterial= MD5(gem_hem + SHA( ’A’ + gem_hem + … + MD5(gem_hem + SHA( ’BB’ + gem_hem + … + MD5(gem_hem + SHA( ’CCC’ + gem_hem +...
© Anders Ingeborn 2000 TLS Transport Layer Security – version 1.0, Certicom 1999 – RFC 2246, IETF Bygger på SSL v3.0 – Autenticering – Riktighet – Sessionskryptering
© Anders Ingeborn 2000 Nyckelmaterial enl. TLS (något förenklat) Definiera en funktion A(i) A(0) = startvärde A(i) = MD5(gem_hem, A(i-1)) Beräkna önskat antal hashvärden MD5(gem_hem, A(1)) + MD5(gem_hem, A(2)) +... Repetera med SHA-1 och kombinera med XOR
© Anders Ingeborn 2000 Magnus!