Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Skype Analýza funkcionality a zabezpečení Fakulta informatiky Masarykova univerzita 29. dubna 2010 Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje • Petr Bartel • Tomáš Král • Ladislav Tkáč • JiříVomáčka • Tomáš Pyszko « Marek Čermák • Richard Nossek Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Q Skype protokol £ Fáze komunikace • Registrace • Přihlášení • Vzájemná autentizace uživatelů 0 P2P výměna klíčů • Šifrování komunikace Q Kryptografická primitiva Q Ochrana protokolu Q Útoky na protokol Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje • Historie. • VolP, P2P. • Architektura sítě. • Detekce provozu, IDS, FW. □ s Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje • zakladatelé Janus Friis a Niklas Zennstrom, rok 2003 • Skype technologies S.A. je registrováno v Lucembursku • close-source, VoIP aplikace (postavená na principech P2P) • multiplatformní - (Linux, MacOS, iPhone OS, Maemo, Windows Mobile, Symbian, Android, Playstation, Windows) • Ve Q3 2009 27,7 milionů minut hovorů, 521 milionů účtů, s více než 20 miliony aktivních uživatelů za den. • 8% všech světových hovorů Skype protokol Historie Vol P P2P Fáze komunikace Kryptografická primitiva A r^h itolíti i ra Ochrana protokolu MIOI ML^rvLUICt Útoky na protokol OUUľvl Ul 1 II riotolí^o nrn\/n"7i i IDQ P\A/ Závěr a zdroje l_/t?Lt?l\Ot? Ul UVUĺU^ IL/O, r VV Internetová telefonie v podání Skype • VolP hovory - hlavní funkcionalita, P2P infrastruktura • videokonference • instant messaging • hovory do běžných telefonních sítí • přenos souborů • hry a doplňky • proprietami bez dostupné dokumentace Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje • Node • Supernode • Login server • Hostcache FiguiE 1 - Skype Helvuoik: Oiríinaiy Hasíš and Supemcdes Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Kurt Sauer "We provide a safe communication option, I will not tell you whether we can listen or not." Speciální verze v Číně (TOM) - filtruje instant messaging Síťový provoz skypu nelze jednoduše izolovat Dokáže obejít firewally, NAT i proxy. Dokonalý backdoor, díky využití kryptografie. V korporátním prostředí - připojení k vnější entitě, často proti bezpečnostní politice Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Historie VolP, P2P Architektura Soukromí Detekce provozu, IDS, FW Detekce provozu Skype • Existují pouze proprietami produkty pro firemní detekci Skypu vzhledem ke složitosti protokolu a snaze znemožnit reverzování. 0 Veřejná alternativa je založena na Pearsonovu Chi-kvadrát testu s přihlédnutím k charakteristikám VolP trafficu. Umožňuje vytvořit jakýsi otisk charakteristiky paketů a obejít tak náhodnost na bitové úrovni vzniklou šifrováním. • Jinou možností je stochastická charakterizace v závislosti na délce a počtu příchozích paketů. Toho se poté využije v rozhodovacím procesu založeném na naivním Bayesiánském klasifikátoru. Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Blokace Skype Historie VolP, P2P Architektura Soukromí Detekce provozu, IDS, FW • inspekce TCP i UDP payloadu paketů pomocí např. nástroje Snort • pakety s hodnotou 0x1703010000 jsou odpovědné za navázaní spojeni • nemá vliv na samotnou komunikaci pomocí Skype Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace Klient: O uživatel si zvolí unikátní uživatelské jméno a heslo Q zašle uživatelské jméno a SHA-1 hash hesla na Skype Login Server (zašifrováno veřejným klíčem serveru) Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace Klient: O uživatel si zvolí unikátní uživatelské jméno a heslo Q zašle uživatelské jméno a SHA-1 hash hesla na Skype Login Server (zašifrováno veřejným klíčem serveru) Skype login server: O pomocí privátního klíče dešifruje zprávu a získá uživatelské jméno a hash hesla Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace • Centrální server disponuje veřejným a privátním klíčem (Ss a Vs) • Veřejný klíč je zabudován do klienta » Uživatel A vygeneruje privátní a veřejný klíč (Sa, Va) • Rovněž vygeneruje hash H{Pá) - který si ponechá lokálně uložený a pošle přes AES kanál serveru S tři údaje: A, H{Pá),Va • S uloží pár (pokud je jedinečný) A, H(H(Pá)) • S pošle přes AES kanál klientovi A : certifikát identity Ica, který je ve tvaru (A, Va)Ss • Skype podporuje 2 délky klíče s modulem 1536, 2048 (pro „enterprise" aplikace) Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace Přihlášení z pohledu klienta O vygeneruje 1024-bitový veřejný a privátní klíč (K%, KA) -jednorázový pár klíčů pro dané sezení Q vygeneruje 256-bitový symetrický klíč (K) pro AES O zašifruje K%, uživatelské jméno a hash hesla pomocí klíče K O zašifruje K veřejným klíčem Skype Login Serveru Q zašifrovaný K%, uživatelské jméno, hash hesla a zašifrovaný klíč sezení K jsou odeslány na Skype Login Server Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace Přihlášení z pohledu Skype login serveru O pomocí privátního klíče dešifruje zprávu a získá K O K použije pro dešifrování uživatelského jména, hashe hesla a K% O pokud je nalezena shoda pro uživatelské jméno a hash hesla, klient je autentizován O vytvoří podepsaný certifikát CA obsahující uživatelské jméno a K% Q zašle CA klientovi Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Vzájemné ověření klientů Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace klienti si vymění certifikáty (Ca) —^ & '■ ''i (o Dytuj O B^A: Kg(Ri) Q B . ověří, že K^(Kg(R^) == R Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Vzájemné ověření klientů Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace » klienti si vymění certifikáty (Ca) • pro ověření použijí protokol výzva-odpověď (8 bytů): O A ->• B : F?! (8 bytů) O B^A:KB(R,) Q A^ B . ověří, že K^(KB(R^)) == Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace • Používá vlastní proprietami systém • Algoritmus je symetrický • Proti útoku přehráním je chráněn 64-bit jednorázovým číslem (nonce - number used once) Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace • klienti si ustanoví společný 256-bitový klíč sezení Ks (AES) pro šifrování vzájemné komunikace O každý z klientů vygeneruje 128 bitů O vzájemně si své příspěvky podepsané veřejným klíčem protějšku vymění Q kryptograficky bezpečnou kombinací obou 128-bitových bloků získá každá ze stran sdílený 256-bitový klíč sezení Ks Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Registrace Přihlášení Vzájemná autentizace uživatelů P2P výměna klíčů Šifrování komunikace Šifrování komunikace • Všechna komunikace mezi klienty je šifrována XORováním otevřeného textu s bloky které jsou generovány pomocí blokové šifry AES. • AES pracuje v ICM (integer counter mode) módu • Jako klíč je použit klíč Ks ustanovený oběma stranami • Relace mezi klienty může obsahovat více paralelních toků • Čítač pro tento ICM mód pak závisí na daném toku, soli a sledu toků Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Bezpečnostní politika PRNG, Signatuře padding AES RSA SHA-1, RC4 Bezpečnostní politika ustanovená pro Skype • používá jedinečné uživatelská jména • uživatele se autentizují pomocí jména a znalosti hesla • každý uzel poskytuje ostatním uživatelské jméno a to včetně důkazu • zprávy se posílají v šifrované podobě Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Bezpečnostní politika PRNG, Signatuře padding AES RSA SHA-1, RC4 PRNG, Signatuře padd ing • PRNG • generátor náhodných čísel • Implementace se liší na jednotlivých platformách, ve Windows Skype sbírá bity z několika systémových volání, na tyto bity se za použití soli aplikuje hash funkce SHA-1, je použito pouze 64 bitů z výsledku hash funkce • zarovnání (Signatuře padding) • Vychází ze standardu ISO 9796-2 Skype Skype protokol Fáze komunikace Bezpečnostní politika PRNG, Signatuře padding AES Kryptografická primitiva Ochrana protokolu RSA Útoky na protokol SHA-1 ROd Závěr a zdroje onrt I , nuH AES • AES • Skype používá bloky o velikosti 128 a 256 bitů pro klíč • AES pracuje v režimu ICM - Integer Counter Mode • Při testování implementace byly použity AES-256 standardní testovací vektory a klíče, které byly následně porovnány s výsledky algoritmu AES implementovaným v Perlu • Skype se vyznačuje rychlou implementací AES (v porovnání s jinými rychlými C/C++ implementacemi) Skype Skype protokol Fáze komunikace Bezpečnostní politika PRNG, Signatuře padding AES Kryptografická primitiva Ochrana protokolu RSA Útoky na protokol SHA-1 ROd Závěr a zdroje on/A i, nwf RSA • RSA • Využívá variantu standardního „square-and-multiply" algoritmu a rovněž chytré algoritmy pro umocňování. Zda je číslo prvočíslo, pak ověřuje Miller-Rabinův test s 25 iteracemi ->• což nám zajišťuje, že číslo není přirozené s pst < 1(T16 • Korektně implementuje variantu Montgomeryho metody pro modulární inverzi, která je použita pro generování exponentu při dešifrování (privátní klíč) • Kód je navržen tak, aby využíval speciální funkce procesoru pro zvýšení efektivity Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu rsa Útoky na protokol Závěr a zdroje Bezpečnostní politika PRNG, Signature padding AES SHA-1, RC4 SHA-1 (revize od Torna Bersona - Anagram Laboratories) • Úhledný a čistý kód, kompiluje se bez varovaní a chyb • Otestovány obě rozhraní funkce, bez nalezení problému • Stejné výsledky Jim Gillogyova testu a testovacích vektorů Torna Bersona jako implementace SHA-1 v Perlu RC4 • Tato proudová šifra je ve Skypu použita pro generování prvočísel pro RSA a je inicializována náhodnými bity Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje no provozu • šifrovaná komunikace se jeví jako náhodná data • chaos v P2P architektuře • mnoho peerů a nejasná identifikace cíle • vytváření síťového provozu i v době nečinnosti • směrování, pingy ->• není možné rozeznat legitimní chování od potenciálně škodlivého (šifrovaná spojení na neobvyklých portech, aktivita během nečinnosti...) Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje • mnoho nejrůznějších ochran • využití triků znesnadňujících (znemožňujících) debugging • využití obfuskátoru k zatemnění kódu nebo šifrování vyvolává „konšpirační otázky" • proč firma nepůsobící v Open Source poskytuje zadarmo program, který funguje bezvadně a vyvíjí tolik úsilí, aby nešel reverzovat? • je snad co skrývat? nemožnost otestovat na přítomnost škodlivého software Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje • znemožnění statického disassemblování • šifrování binárky • na některé části binárky je aplikován XOR s pevně daným klíčem • dešifrování probíhá za běhu v paměti • změna struktury binárky za běhu • smazání začátku kódu 9 dešifrování zašifrovaných oblastí kódu • nahrazení části WinAPI import tabulky (PE exe) Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje systém kontroly integrity sestává z několika jednotek počítajících kontrolní součty • každá jednotka trochu jiná = jsou polymorfní? • spouštěny náhodně • podmínky cyklů mají náhodná znaménka • použití náhodných operátorů (add, xor, sub...) • náhodná délka kontrolního součtu ->• finální kontrola integrity velmi netriviální úlohou • finální kontrolní součet se využívá k výpočtu ukazatele na další úsek kódu Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje • použití obfuskátoru • účelem je znemožnění (znesnadnění) zpětného inženýrství • vytváří nepříjemný chaos v kódu • klady » rapidně zpomaluje studii kódu • znemožňuje přímé vykradení kódu • zápory • citelné zpomalení chodu aplikace • nárůst velikosti aplikace Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Pod pokličkou Skype Maskování síťového pr o voz u • Skype nad UDP • rámce mohou být několika typů: • maskující (obfuskační) data • potvrzující (ACK/NACK) paket • přeposílána data • posílaná data • využití extra obfuskační vrstvy • zmatek v hlavičce paketu • šifrování obsahu paketu Skype Skype protokol Fáze komunikace I Kryptografická primitiva pod kQu Ochrana protokolu r r Útoky na protokol Síťová obfuskační vrstva • šifruje data proudovou RC4 šifrou • klíč je generován z prvků datagramu • zdrojová a cílová IP adresa • ID Skype paketu • IV (inicializační vektor) obfuskační vrstvy • tato RC4 šifra je stavebním kamenem obfuskace na síti • používá 80B (80 bajtů) klíč • není jasné, kde se bere seed • patrně věštba z hvězd • šifra se používá POUZE k obfuskaci, nikoli za účelem dosažení soukromí! Skype protokol Fáze komunikace Kryptografická primitiva PnH nnlí 1 if^líni i Qlí\/no Ochrana protokolu rUU uur\MOr\UU Or\yut? Útoky na protokol Závěr a zdroje Maskování síťového provozu 2 » Skype nad TCP • RC4 seed je poslán v prvních 4 bajtech proudu • RC4 proud pak dešifruje následujících 10 bajtů • následně je RC4 proud reinicializován a použit k dešifrování zbytku proudu • toto dvojité použití stejného proudu umožňuje detekci Skype provozu bez nutnosti vypořádávat se s deobfuskací • otázkou je, k čemu je to dobré vědět, když stejně není možné Skype blokovat? Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Pod pokličkou Skype Přenos dat na nižších vrstvách • temeř vše zašifrováno • data mohou být fragmentována • komprese každého paketu • využití aritmetického komprimování • algoritmus blízký Huffmanovu kódování • nač používat zbytečně jednoduchý zip Skype □ r5> - = « "OP.O Skype protokol Fáze komunikace Kryptografická primitiva PnH nnlí 1 if^líni i Qlí\/no Ochrana protokolu rUU uur\MOr\UU Or\yut? Útoky na protokol Závěr a zdroje Pod pokličkou Skype - shrnutí plusy • dobře promyšlený systém • hezké použití kryptografie mínusy • temeř nemožné prosadit bezpečnostní politiku při použití Skype • ze síťového provozu nemůžeme určit, jedná-li se o legitimní přenos nebo únik dat • nekompatibilní s IDS a monitory síťového provozu • úplný black-box, zcela chybí alespoň jakási transparentnost protokolu Skype protokol Man-in-the-Middle Fáze komunikace Replay atack Kryptografická primitiva Hádání hesla Ochrana protokolu Slabiny při používání CRC Útoky na protokol Útok postranním kanálem Závěr a zdroje Útok naASNI Útoky na protokol • Man-in-the-middle. • Replay atack. • Hádání hesla. • Slabiny v používání CRC. • Útok postranním kanálem. 9 Útok naASNI. Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Man-in-the-Middle Replay atack Hádání hesla Slabiny při používání CRC Útok postranním kanálem Útok naASNI • útočník musí přesvědčit obě strany, že komunikují přímo mezi sebou • útočník musí zabránit přímé komunikaci mezi těmito dvěma stranami Skype Skype protokol Man-in-the-Middle Fáze komunikace Replay atack Kryptografická primitiva Hádání hesla Ochrana protokolu Slabiny při používání CRC Útoky na protokol Útok postranním kanálem Závěr a zdroje Útok naASNI Replay atack • útočník může odposlechnout několik handshaků s cílovým uzlem • může pak zaslat výzvu předstírajíc, že je některý z předchozích účastníků • pokud uzel zašle stejnou výzvu, jako v předchozím běhu protokolu, útočník ví, jak odpovědět • pravděpodobnost při N odposlechnutích je však pouze N / 264 Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Man-in-the-Middle Replay atack Hádání hesla Slabiny při používání CRC Útok postranním kanálem Útok naASNI es la • uživatele mají možnost zapamatování hesla - heslo je „bezpečně" uloženo operačním systémem • útočník se může snažit uhodnout heslo např. slovníkovými útoky • autentizační centrála Skype vynucuje timeout po několika neúspěšných pokusech o přihlášení Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Slabiny při používání CRC Man-in-the-Middle Replay atack Hádání hesla Slabiny při používání CRC Útok postranním kanálem Útok naASNI • CRC kontrolní součty: « lineární hashovací funkce • vhodné pro odhalení náhodných bitových chyb • nevhodné pro obranu před úmyslnými změnami Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Slabiny při používání CRC Man-in-the-Middle Replay atack Hádání hesla Slabiny při používání CRC Útok postranním kanálem Útok naASNI • CRC kontrolní součty: « lineární hashovací funkce • vhodné pro odhalení náhodných bitových chyb • nevhodné pro obranu před úmyslnými změnami • Podobné používání CRC jako ve WEP • oprava naplánována Skype □ r5> - = « "OP.O Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Útok postranním kanálem Man-in-the-Middle Replay atack Hádání hesla Slabiny při používání CRC Útok postranním kanálem Útok naASNI • založeno na monitorování využívání sdílených prostředků (HDD, CPU): • z nichž mezi nejběžnější patří: • Timing attack - měření času CPU (výpočet různých operací trvá různě dlouho) • Power monitoring attack - měření spotřeby energie CPU (různé operace mají různou energetickou náročnost) • Skype se proti těmto útokům nijak nebrání Skype Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Man-in-the-Middle Replay atack Hádání hesla Slabiny při používání CRC Útok postranním kanálem Útok naASNI Skype nepoužívá přímo ASN1 avšak používá podobné mechanismy: • spoléhá na korektní parsování zakódovaných dat (payloadu) « útočník může libovolné upravit některá pole • objeveny potenciální chyby v dekódování integerů • nehrozí však narušení důvěrnosti komunikace Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Multiplatformní, široce používaná close-source aplikace. Využívá silnou kryptografii, jako AES, RSA, RC4, SHA-1. Bez dokumentace aplikace či protokolu, schopná projít většinou bezpečnostních omezení. Robustní, decentralizovaná struktura sítě, využívající zdroje klientů Důvěryhodnost a bezpečnost aplikace je neprokazatelná Skype protokol Fáze komunikace Kryptografická primitiva Ochrana protokolu Útoky na protokol Závěr a zdroje Skype Security Evaluation, T Berson, October 2005 Silver Needle in the Skype, P Biondi, F Desclaux -BlackHat Europe, 2006 An analysis of the skype peer-to-peer internet telephony protocol, SA Baset, H Schulzrinne - IEEE infocom, 2006 Skype Detection: Traffic Classification In the Dark, A Nucci, Narus, 2006 Skype, Wikipedia EN Skype Security, Wikipedia EN