ANALYZING PRACTICAL COMMUNICATION SECURITY of ANDROID VENDOR APPLICATIONS Master of Science Thesis
Total Page:16
File Type:pdf, Size:1020Kb
JUHO NURMI ANALYZING PRACTICAL COMMUNICATION SECURITY OF ANDROID VENDOR APPLICATIONS Master of Science Thesis Examiner: Professor Jarmo Harju Examiner and topic approved by the Council of the Faculty of Computing and Electrical Engineering on October 8th, 2014 ii ABSTRACT TAMPERE UNIVERSITY OF TECHNOLOGY Master’s Degree Programme in Information Technology Nurmi, Juho: Analyzing practical communication security of Android vendor applications Master of Science Thesis, 87 pages, 9 Appendix pages December 2014 Major: Communication Networks and Protocols Examiner: Professor Jarmo Harju Keywords: Android, Information security, mobile device, security weakness, MITM, SSL, TLS, certificate The development of mobile devices and the new personalized services have gone to the point, where users do not alone control their data. While the devices are in constant communication with the cloud services the user’s data and the data of the user move ever more to the services providers’ cloud services. Little is known about how and how well service providers protect the users’ information. The work studies two biggest western Android based ecosystems, Google’s and Amazon’s, own applications’ practical security in the communication process. The aim is to identify all mechanisms used to protect the information that is communicated with the Android device. The study used one device from Amazon and Google, and the application market was chosen from both service providers for in-depth study. The applications were selected on the basis that they must provide same service in order to make the comparison possible. In practice, the applications and devices were studied by performing active and passive Man-in-the-middle (MITM) attacks in network laboratory. The communications were intercepted and analysed afterwards. Both vendors relied heavily on SSL/TLS protocol. Also in common was the usage, roles and acquirement of authorization tokens. Amazon’s client applications were noticed to use digital signatures. The biggest difference between the market applications was that Google required authentication when buying an application, while Amazon did not require it. During the same authentication Google sent user’s password in plaintext inside the TLS connection. During the less frequently happening registration of the user’s Google account to the device the user’s password is sent instead encrypted inside the TLS connection. An active MITM attack was performed on the Google device and account to demonstrate what the attacker can do in practice, when SSL/TLS connection is compromised. With manipulating traffic and intercepting authorization tokens the attacker is able to spy the victim and access to nearly all the victim’s Google data for the present. In addition, the attacker can “force” the victim to register herself again to the Android device and the attacker can use the victim’s intercepted encrypted password to add the victim’s Google account to her own device. iii TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan koulutusohjelma Nurmi, Juho: Analyzing practical communication security of Android vendor applications Diplomityö, 87 sivua, 9 liitesivua Joulukuu 2014 Pääaine: Tietoliikenneverkot ja -protokollat Tarkastaja: professori Jarmo Harju Avainsanat: Android, tietoturvallisuus, mobiililaite, tietoturvaheikkous, välimieshyökkäys, SSL, TLS, sertifikaatti Älylaitteiden kehitys ja palveluntarjoajien uudet henkilökohtaisemmat palvelut ovat johtaneet siihen, että käyttäjät eivät enää yksin hallitse tietojaan. Laitteiden ollessa jat- kuvassa yhteydessä pilvipalveluihin käyttäjien tiedot ja tietoa heistä siirtyy yhä enem- män palveluntarjoajien pilvipalveluihin. Siitä miten ja kuinka hyvin palveluntarjoajat suojaavat käyttäjien tietoja, tiedetään hyvin vähän. Työssä tutkitaan kahden suurimman länsimaisen Android-pohjaisen ekosysteemin, Googlen ja Amazonin, omien ohjelmien tietoliikenteen tietoturvallisuutta käytännössä. Tavoitteena oli selvittää kaikki ne mekanismit, joilla Android-laitteesta lähtevää tietolii- kennettä suojataan. Tutkimuksessa käytettiin Amazonilta ja Googlelta yhtä laitetta, sekä molemmilta valittiin sovelluskauppa tarkempaa tutkimusta varten. Applikaatiot valittiin sillä perusteella, että niiden piti tuottaa käyttäjälle samaa palvelua vertailun mahdollis- tamiseksi. Laitteita ja applikaatioita tutkittiin käytännössä suorittamalla niille sekä pas- siivisia että aktiivisia välimieshyökkäyksiä verkkolaboratoriossa. Tietoliikenne kaapat- tiin talteen ja analysoitiin jälkikäteen. Molempien valmistajien ohjelmien, sekä laitteiden tietoturvan havaittiin nojautuvan vahvasti kuljetuskerroksen tunnelointiprotokollaan (SSL/TLS). Lisäksi yhteistä oli auktorisointitokenien käyttö, niiden roolit sekä hakuprosessi. Amazonin asiakasappli- kaation havaittiin käyttävän digitaalisia allekirjoituksia. Sovelluskauppojen isoimmaksi eroksi havaittiin Googlen vaativan käyttäjää tunnistautumaan ostaessaan applikaatiota, mitä Amazonilla ei vaadittu. Googlella samaisen tunnistautumisen yhteydessä havaittiin käyttäjän salasanan välittyvän selkokielisenä TLS-tunnelin sisällä. Harvoin tapahtuvan Google-käyttäjätunnuksen laitteeseen rekisteröimisen yhteydessä käyttäjän salasana sen sijaan välitetään salattuna TLS-tunnelin sisällä. Googlen laitteelle ja tunnukselle suoritettiin vielä aktiivinen välimieshyökkäys de- monstroimaan mitä hyökkääjä voi tehdä käytännössä, kun TLS-protokolla pettää. Mani- puloimalla liikennettä ja kaappaamalla auktorisointitokeneita hyökkääjän havaittiin pystyvän vakoilemaan uhria ja pääsevän toistaiseksi käsiksi etänä lähes kaikkiin uhrin Google-tunnuksen tietoihin. Lisäksi hyökkääjä pystyy ”pakottamaan” uhrin rekisteröi- tymään Android-laitteelleen uudestaan, minkä yhteydessä hyökkääjä voi käyttää uhrin kaapattua salattua salasanaa uhrin Google-tunnuksen lisäämiseen omalle laitteelleen. iv PREFACE This thesis was written as a master’s thesis for Tampere University of Technology (TUT) in department of Pervasive Computing. Thesis was examined by Professor Jarmo Harju from TUT. When I started to work on this thesis, I knew basically nothing of Android and especially its security, so the whole journey was very interesting. Everywhere you looked at, you saw something new and you had (urge) to understand it. There are a lot of people I really have to thank for: I would like to thank Professor Jarmo Harju and Nokia Oyj for offering me this interesting topic. I would also like to thank Mika Anttila, Sami Majaniemi and Anssi Juvonen from Nokia for guiding me and giving me a flying start. In addition, I thank Joona Kannisto and Billy Bob Brumley for helping me with cryptology related questions and my colleagues for enduring my constant bombardment of questions. Special thanks goes to Tanel for enduring in the trenches with me everything that TUT threw at us over the years. Most of all, I want thank my family for their support and encouragement during my studies. Juho Nurmi, 11 November 2014 v CONTENTS 1 Introduction ............................................................................................................... 1 2 Security basics ........................................................................................................... 3 2.1 Basic terms ........................................................................................................ 3 2.2 Token................................................................................................................. 3 2.3 Cryptographic hash function ............................................................................. 4 2.4 MAC and HMAC .............................................................................................. 6 2.5 Digital signature ................................................................................................ 7 2.6 Public Key Infrastructure X.509 ....................................................................... 9 2.7 SSL/TLS .......................................................................................................... 10 2.8 Man-in-the-middle attack ................................................................................ 11 3 Test environment ..................................................................................................... 12 3.1 Android and Used software ............................................................................. 12 3.1.1 Android OS ........................................................................................ 12 3.1.2 OpenSSL ............................................................................................ 12 3.1.3 MITM software – SSLsplit & mitmproxy ......................................... 12 3.1.4 Wireshark ........................................................................................... 13 3.1.5 Other software.................................................................................... 13 3.2 The environment ............................................................................................. 13 4 Google and Amazon ................................................................................................ 16 4.1 Google’s and Amazon’s market places ........................................................... 16 4.2 Google specific details .................................................................................... 18 4.2.1 Google Login Service and Google Play Services .............................. 18 4.2.2 ClientLogin .......................................................................................