FINGERPRINTING AV HÅRDVARULIKA ENHETER

Relevanta dokument
Mobile First Video on demand och livesändningar på Internet. Juni 2012

Procedurell renderingsmotor i Javascript och HTML5

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

ADOBE FLASH PLAYER 10.3 Lokal inställningshanterare

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Användarhandledning. edwise Webbläsarinställningar

Modul 6 Webbsäkerhet

Behandling av personuppgifter innefattar all hantering av personuppgifter såsom insamling, registrering och lagring.

Webbprogrammering. Sahand Sadjadee

Hja lp till Mina sidor

Denna Sekretesspolicy gäller endast för webbsidor som direkt länkar till denna policy när du klickar på "Sekretesspolicy" längst ner på webbsidorna.

Användarhandledning. edwise Webbläsarinställningar

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Användarmanual för webbapplikationen Fejjan för alla. Manualens version:1.0. Datum: 5 februari 2014

Systemkrav WinServ II Edition Release 2 (R2)

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1

Viktigt angående Kund- och Förskrivarportalen

Sammanfattning. Nyckelord: Renderingstid, Canvas, Attribut och iterationer.

Systemkrav för Qlik Sense. Qlik Sense September 2017 Copyright QlikTech International AB. Alla rättigheter förbehållna.

ATT ARBETA MED VEKTORGRAFIK

Avancerade Webbteknologier

Användarhandledning. edwise Webbläsarinställningar

Webbservrar, severskript & webbproduktion

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Systemkrav för Qlik Sense. Qlik Sense June 2017 Copyright QlikTech International AB. Alla rättigheter förbehållna.

ÅGIT PRESENTERAR FILR SMIDIG OCH SÄKER FILÅTKOMST OCH DELNING

Guide företagskonto. HantverksParken. Box 576, Haninge

Systemkrav Bilflytt 1.4

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Qlik Sense Desktop. Qlik Sense 1.1 Copyright QlikTech International AB. Alla rättigheter förbehållna.

Visma Proceedo. Att logga in - Manual. Version 1.4. Version 1.4 /

Sekretesspolicy. 1 Allmänt. 2 Vilka uppgifter behandlar MyNumbers om dig? De sammanfattande punkterna är inte en del av policyn.

Guide för Google Cloud Print

Webbprogrammering - 725G54 PHP. Foreläsning II

1. Hur öppnar jag Polisens blanketter / formulär, trycksaker och annat som är i PDF-format?

Systemkrav för Qlik Sense. Qlik Sense September 2017 Copyright QlikTech International AB. Alla rättigheter förbehållna.

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Systemkrav för Qlik Sense. Qlik Sense 3.0 Copyright QlikTech International AB. Alla rättigheter förbehållna.

Sekretesspolicy. Insamlingen syftar till att stödja vårt arbete inom ett antal områden:

Guide för Google Cloud Print

Policy för kakor. Policydokument

Visma Proceedo. Att logga in - Manual. Version 1.3 /

Systemkrav för Qlik Sense. Qlik Sense 3.1 Copyright QlikTech International AB. Alla rättigheter förbehållna.

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser.

Kort om World Wide Web (webben)

FJÄRRENDERING AV CANVAS GRAFIK FÖR INTERAKTIVA DIAGRAM REMOTE RENDERING OF CANVAS GRAPHICS FOR INTERACTIVE DIAGRAMS

B. Hur vi samlar in dina personuppgifter Följande typer av personuppgifter kan samlas in, lagras och användas:

Systemkrav för Qlik Sense. Qlik Sense 2.2 Copyright QlikTech International AB. Alla rättigheter förbehållna.

Systemkrav Bilflytt 1.3

2 Inloggning. 3 Inställningar. Användarmanual systeminställningar Förskrivarportalen

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Elektronisk publicering TNMK30

Karlstads universitetsbibliotek

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte

1. Revisionsinformation

2. Komma igång. 3. Komma åt Salut Chat. 4. Uppdatera webbläsare och plugin

E12 "Evil is going on"

Systemkrav Tekis-Bilflytt 1.3

Termen "Leverantör" avser en anställd hos en organisation som levererar Comforta till produkter eller tjänster.

Statistik från webbplatser

sektionsdata webb Sektionsdata webb är anpassat för att du ska kunna justera, jobba i eller visa dina kalkyler för kollegor, kunder och beställare.

Åtkomst Du kommer till ditt system via en webblänk som erhålles från oss. Via denna länk ges tillgång till sökning i bibliotekets katalog.

iphone/ipad Snabbguide för anställda på HB

Webbserver och HTML-sidor i E1000 KI

Lärarhandledning. Felix börjar skolan

Genom att använda vår webbplats godkänner du att din personliga information behandlas i enlighet med denna integritetspolicy

Visma Proceedo. Att logga in - Manual. Version Version /

Rekommenderad IT-miljö

Laglig grund Avtal och intresseavvägning.

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Manual Lead tracking. Version

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Visma Proceedo Att logga in - Manual

Det finns olika typer av Cookies och pixlar

Sektionsdata webb är anpassat för att du ska kunna justera, jobba i eller visa dina kalkyler för kollegor, kunder och beställare.

Grunder. Grafiktyper. Vektorgrafik

KARLSTADS UNIVERSITETSBIBLIOTEK

On-line produktion TDDC61

Web Client. Produktinformation

SKOLFS. På Skolverkets vägnar. GENERALDIREKTÖREN Enhetschef

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q2

Mångdubbla din försäljning med målsökande marknadsföring

Sektionsdata webb är anpassat för att du ska kunna justera, jobba i eller visa dina kalkyler för kollegor, kunder och beställare.

Innehålls förteckning

Sekretesspolicy. för MyLyconet Website

Instruktion för installation av etikettskrivare 2.31

ico-worker.com Användarvillkor och andra saker som du bör känna till för att kunna vara säker online.

On-line produktion TDDC61

eklient Objekt 1 Livscykelplaner i Samverkan Livscykelplaner eklient 1.5

Zimplit CMS Manual. Introduktion. Generell Information

Kakpolicy för paneler och undersökningar

SKOLFS. beslutade den XXX 2017.

Mobilt Efos och ny metod för stark autentisering

Arbetssätt i Skola24 Schema

Webbprogrammering TDDD52

E-legitimationsnämndens legitimeringstjänster för test

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

Transkript:

FINGERPRINTING AV HÅRDVARULIKA ENHETER Precisionsmätning med fingerprinting på mobila enheter FINGERPRINTING OF HARDWARE LIKE DEVICES Precision measurement of fingerprinting on mobile devices Examensarbete inom huvudområdet Datalogi Grundnivå 30 Högskolepoäng Vårtermin 2014 Kristoffer Frisell 19840112-4816 Handledare: Mikael Lebram Examinator: Mikael Berndtsson

Sammanfattning Fingerprinting är en teknik för att unikt identifiera användare för olika ändamål. Dessa ändamål är i huvudsak antibedrägeri, riktad annonsering och Paywalls. Det finns ett antal fingerprintingtekninger som används, men de flesta involverar instickningsprogram som Flash och Silverlight, vilka inte stöds av alla mobila enheter. Arbetet undersöker hur stor skillnad existerande fingerprintingtekniker, vid exkludering av cookies och tredjepartsprogram, kan påvisa för hårdvarulika mobila enheter. Fingerprintingteknikerna klockning av renderingstid och renderingsdifferens används för att samla in information om enheter. Experiment används som undersökningsmetod för att ta reda på hur bra teknikerna fungerar. Ingen av de två fingerprintingteknikerna visar sig vara verkligt användabara. Nyckelord: Fingerprinting. Mobile. Canvas

Innehållsförteckning 1 Introduktion... 1 2 Bakgrund... 2 2.1 Appliceringsområden... 2 2.2 Tekniker... 4 2.3 Mobila enheter... 8 2.4 Fingerprint-precision... 9 3 Problemformulering... 10 4 Metod... 11 4.1 Experiment...11 4.2 Avgränsningar...11 4.3 Forskningsetiska aspekter...12 5 Genomförande... 13 5.1 Litteraturstudie...13 5.2 Implementation...14 5.3 Pilotstudie...17 6 Utvärdering... 19 6.1 Presentation av undersökning...19 6.2 Analys...21 6.3 Slutsatser...30 7 Avslutande diskussion... 32 7.1 Sammanfattning...32 7.2 Diskussion...32 7.3 Framtida arbete...33 Referenser... 34

1 Introduktion Artikeln handlar om fingerprinting på webben för mobila enheter. Fingerprinting är en teknik för att unikt identifiera användare för olika ändamål. Dessa ändamål är i huvudsak antibedrägeri, annonsering och Paywalls. Varje gång en webbsida laddas skickar webbläsaren med en viss mängd information till webbservern som kan användas som fingerprint. Detta kan göras med ett antal olika tekniska lösningar. För hårdvarulika mobila enheter krävs ett annorlunda sätt att fingerprinta. En mobil enhet används ofta på ett annat sätt än traditionella datorer och har ofta sämre stöd för de tekniker som normalt används för fingerprinting. Fler och fler använder sina mobila enheter för deras vardagliga internetbaserade ärenden. Detta gör att det är viktigt att fingerprinting fungerar lika bra på mobila enheter som traditionella datorer. I slutet av bakgrundsdelen förklaras vad fingerprinting-precision innebär och hur det är möjligt att skilja enheter från varandra. Problemet kan sammanfattas som Hur stor skillnad kan existerande fingerprintingtekniker, vid exkludering av cookies och tredjepartsprogram, påvisa för hårdvarulika mobila enheter? och hypotesen är att renderingstiden för text och grafik kan variera enheter emellan. Tillsammans med mätningar av renderingstider kan kompletterande basinformation som webbläsarversion och operativsystem hjälpa till att identifiera olika mobila enheter unikt. Metoden som används för att ta fram och evaluera resultatet av de olika mätningarna är experiment. Data som extraheras sparas undan för att senare kunna analyseras och dras slutsatser ifrån. För experimentet kommer ett antal hårdvarulika mobila enheter att fingerprintas. Fokus ligger på att ha så många smartphones av samma modell som möjligt och den valda modellen är iphone 5. Detta för att iphone 5 bland annat saknar stöd för de vanligaste fingerprintingteknikerna. 1

2 Bakgrund Likt rättsliga utredningar kan fingeravtryck användas även på webben för att unikt identifiera en användare. Men som olikt rättsliga utredningar istället används för att knyta användare till specifika enheter eller maskiner. Detta görs med hjälp av ett flertal olika tekniker som ofta används tillsammans för att ge bättre precision. Tekniken i sig kallas för fingerprinting och kan göras med bland annat JavaScript, Flash, PHP (HTTP) och Java där man kan utvinna information om till exempel webbläsare, operativsystem, installerade plugin med mera, för att hålla reda på vem användaren är (Nikiforakis et al. 2013a). Fingerprinting har i huvudsak tre användningsområden, vilka är att förebygga bedrägeri (Anti-fraud), annonsering (Advertising) och Paywalls (Nikiforakis et al. 2013a). 2.1 Appliceringsområden Tre vanliga appliceringsområden är förhållandevis konstruktiva och har mer eller mindre goda avsikter. Men som Mowery et al. (2011) menar kan webbplatser med sämre avsikter utnyttja informationen från fingerprintingteknikerna för att bland annat attackera specifika webbläsare och system. Detta tillsammans med kunskapen om svagheterna hos respektive system. 2.1.1 Antibedrägeri Webbsidor kan använda fingerprinting för att avgöra om användaren som försöker använda tjänsten är den som han eller hon utger sig för att vara. Ett bra användningsområde att applicera tekniken på är därmed vid autentisering hos till exempel internetbanker. Som Nikiforakis et al. (2013a) menar kan banken nämligen komplettera sin redan existerande autentiseringsteknik med fingerprinting för att erhålla bättre säkerhet. Skulle någon obehörig få tillgång till en annan användares konto kan dennes behörighet ifrågasättas av systemet då det upptäcker ett ovanligt mönster i användarens gränssnitt mot bankkontot. Ett exempel på åtgärd från banken skulle kunna vara att systemet ställer kontrollfrågor som bara den behöriga användaren känner till. Skulle till exempel användaren använda en bekants dator vid tillfälle av bankärende borde inte han eller hon direkt blockas av från banksidan, utan borde ha en möjlighet att legitimera sig på något bra sätt. Med hjälp av fingerprintingtekniker kan webbsidans ägare även få ett bra skydd mot XSS (Cross site scripting) eftersom det vid tillfälle av en sessions-kapning innebär att attackeraren då måste ha liknande fingerprint för att kunna utnyttja den riktiga användarens session (Unger et al. 2013). Detta skyddar webbsidans kontohavare. Men fingerprinting kan även skydda tjänster i sig. Ett exempel på en sådan tjänst kan vara en webbplats där användare betalar en prenumerationsavgift. Fingerprinting kan då se till att bara användaren som betalar, kan använda tjänsten (Nikiforakis et al. 2013a). 2.1.2 Annonsering Genom att känna till vem användaren är och vad denne tidigare har sökt eller klickat på kan man rikta reklam som är potentiellt intressant för just den användaren. Som Nikiforakis et al. (2013a) beskriver visar många webbsidor idag reklam länkade till det ämne som webbsidan berör. Detta kallas för kontextuell annonsering. Beteendebaserad annonsering är istället reklam som inte enbart länkar genom nuvarande sidas ämne, utan även tidigare sidor användaren har besökt. 2

Ett exempel som Nikiforakis et al. (2013a) förklarar är att om en användare som besöker en sida som har Beteendemässig annonsering och användaren tidigare var på en sida som säljer böcker och kollade på en bok hon aldrig köpte där, kan den nya sidan genom den informationen visa reklam om samma bok användaren tittade på. Relevansen för reklamen blir därmed högre och personen kommer med större sannolikhet lägga märke till den. Funktioner som beteendebaserad och kontextuell annonsering har traditionellt varit webbläsar-cookies uppgift att hålla koll på (Gumzej & Grgić, 2013). I september 2011 startades en diskussion i ämnet Do Not Track standard utav en tracking protection -grupp under WWW Consortium. Diskussionen handlar om att användare skall kunna tala om att de inte vill bli spårade, vilket gör att företag enligt lag inte får spåra användaren (Zuiderveen Borgesius, 2013). Eftersom cookies sedan 2011 är hårdare reglerat och lagstadgat runt om i världen, samt att användare mer och mer regelbundet raderar cookies i sina webbläsare innebär detta ett större behov för alternativa tekniker att hålla koll på sådan information om användaren (Nikiforakis et al. 2013a). 2.1.3 Paywalls Paywalls är ett system för att blockera användare som inte betalar prenumerations-avgift för innehåll på en webbsida. Många tidningssidor på nätet tillhandahåller möjligheten för icke betalande kunder att läsa ett mindre antal artiklar utan att betala. Besökaren måste därmed skriva upp sig för en prenumeration för att kunna läsa fler artiklar. Skulle till exempel en nyhetstidningssida erbjuda potentiella kunder ett antal gratisartiklar att läsa per dag skulle det vara praktiskt att användaren inte skaffar sig möjlighet att läsa fler gratisartiklar genom att till exempel radera cookies (Nikiforakis et al. 2013a). 3

2.2 Tekniker Det finns ett många tekniker för att samla in data för att tillsammans ge en hög precision av ett fingerprint. Då alla dessa kompletterar varandra och faktumet att alla har sina för- och nackdelar innebär detta att det behövs fler tekniker för bättre fingerprinting. För att fingerprinting ska vara användbart måste tekniken uppfylla ett antal olika baskriterier vilka enligt Homem & Carvalho (2011) är: Skall inkludera ett minimalt antal funktioner som beskriver användaren i ett kompakt format Skall tillåta uppdateringar av användare, med ny information om sådan ändras för användaren Skall tillåta en snabb jämförelseprocess så snart en ny sessions-ägare behöver bli identifierad Skall ha skalbarhet. Det vill säga, prestanda skall inte påverkas avsevärt Skall ha flexibilitet. Det vill säga, nya användare skall lätt kunna inkluderas då information finns tillgänglig 2.2.1 PHP (HTTP) Då en sida begärs av användaren genom till exempel en länk eller adress direkt i adressfältet följer det med information från webbläsaren. För varje http request överförs ett antal http headers som innehåller information om användarens webbläsare samt klientens ip-adress. I headern följer även en sträng med som kallas för UserAgent string. Denna innehåller information som går att läsa i klartext Unger et al. (2013). Nedan rad är ett exempel på hur ett sådant kan se ut: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0 Exempel 1 UserAgent string Som exemplet illustrerar kan information om bland annat operativsystem och webbläsare hämtas ut som klartext för servern. För att få del av denna information kan PHP kolla med servervariabeln $_SERVER['HTTP_USER_AGENT']. Det är förövrigt möjligt för användaren att ändra denna information vilket därmed kan ge ett missvisande fingerpring men som Unger et al. (2013) menar är en sådan informationsändring ofta ett tecken på att en så kallad session-kapning håller på att ske, då den ändras under en öppen session. Detta eftersom en attackerare kan klona offrets http header-information. 2.2.2 JavaScript JavaScript är ett program som webbläsaren laddar hem till klienten för att köras lokalt tillsammans med html-sidan på användarens dator. Då skripten körs på klienten har de tillgång till information utvunnen ur webbläsaren. Det finns ett större antal JavaScript-motorer och de största webbläsarna har olika sådana. Detta gör att det finns stora skillnader mellan vad de olika webbläsarna exponerar, olika antal möjliga API-anrop med olika namnval, vilket i sin tur gör att man kan urskilja dessa 4

från varandra ganska lätt (Nikiforakis, Kapravelos, Joosen, Kruegel, Piessens, Vigna, 2013b). Med hjälp av JavaScript är det bland annat möjligt att få information om skärmupplösning och färgdjup samt vilken webbläsare användaren har. Dessutom kan JavaScript testa huruvida Java och cookies är aktiverat i webbläsaren. Även om de flesta webbläsare idag är utrustade med en JavaScriptmotor är det för en användare möjligt att stänga av JavaScript i webbläsaren. Enligt Zakas (2010) på Yahoo Developer network är det ganska låg andel internetsurfande som faktiskt stänger av JavaScript i webbläsaren (se tabell 1). JavaScript avaktiverat av användaren i webbläsaren i respektive listat land USA 2.06% Storbritannien 1.29% Frankrike 1.46% Spanien 1.28% Brasilien 0.26% Tabell 1 JavaScript avaktiverat i webbläsaren (Zakas, 2010) 2.2.3 Tredjepartsprogram Tredjepartsprogram i webbläsaren är små program som behövs för köra vissa script skapade i till exempel Flash, Silverlight eller Java. Dessa tekniker har liknande funktionalitet och används till liknande ändamål. Det vanligast använda av dessa insticksprogram är Adobe Flash (w3techs.com, 2014). Figur 2 Användning av populära tredjepartsprogram (W3Techs, 13 feb 2014) 5

Adobe Flash är en plattform främst avsett för vektorgrafik, animationer och spel i webbläsaren men kan även köras utanför webbläsaren på många enheter. I webbläsaren behövs ett plugin installeras för att kunna köra spelen eller applikationerna gjorda i Flash. Flash är utrustat med flera bibliotek som går att använda för fingerprinting, vilken genom dessa har tillgång till information som traditionellt sett inte är möjligt genom webbläsarens API. Tack vare att flashapplikationer har denna möjlighet att samla information om användarens webbläsare och system lämpar det sig att, genom olika tillvägagångssätt utföra fingerprinting som är osynlig för användaren (Nikiforakis et al. 2013b). Alla moderna webbläsare som stödjer tredjepartsprogram erhåller inställningen att inte tillåta plugins som Flash och Silverlight att laddas initialt, utan att användaren klickar på det själv. Eftersom det är meningen att fingerprintfunktionaliteten skall köras utan att användaren behöver interagera med funktionaliteten för att fingerprintas innebär detta att själva metoden inte fungerar som normalt. Det finns dock metoder som gör att JavaScript kan fläta in exekveringen av Flashs SWF-filer och köra dessa ändå (Nikiforakis et al. 2013b). En större nackdel med tredjepartsprogram som Flash är just att de kräver plugin installerade i webbläsaren. Som Apple.com (2014) skriver har enheter som iphone och ipad inte stöd för Flash, samtidigt som inställningen är att aldrig stödja det heller. Det innebär att alla de värdefulla funktioner som finns i biblioteken går förlorade i ett försök att fingerprinta dessa enheter och som nämnts tidigare är många fingerprintingmetoder mer eller mindre beroende av just dessa bibliotek. 2.2.4 Browser cookies Informationen som normalt sparas i en cookie är språkinställningar användaren valt på sidan, kundvagnar på webbshopar och annan information som kan avlasta användaren nästa gång denne besöker sidan. Därmed slipper användaren välja språk igen då han eller hon återbesöker sidan. Men enligt Nikiforakis et al. (2013a) har cookies även länge varit god hjälp för webbtjänster att även hålla reda på annan information om användare. Nikiforakis et al. (2013a) beskriver fortsatt att fler och fler internetanvändare väljer att radera sina cookies regelbundet. Faktumet att även lagar har skapats som gör att ägare av webbsidor synligt måste meddela användarna om att cookies används på sidan, resulterar i ett ökat behov av andra fingerprintingmetoder. 2.2.5 HTML5 canvas HTML5 canvas är ett html-element som är till för att rita ut grafik i realtid med hjälp av JavaScript. Elementet besitter flertalet metoder för att bland annat rita ut linjer, boxar, cirklar, bitmap-bilder och text (W3schools.com, u.åa.). Enligt Mowery et al. (2012) kan HTML5 canvas-elementet ge möjlighet att hjälpa till men att få fram unika Fingerprints. Med hjälp av att rendera ut texter i en canvas kan en base64 hashtag hämtas ut med hjälp av en metod på canvas-elementet. Detta gör att användaren inte behöver ladda upp någon bildfil för att fingerprintingen skall fungera, utan hashen förklarar pixel för pixel hur bilden ser ut. Canvas-elementet erbjuder även en annan metod som returnerar ett ImageData-objekt, som också går att använda i förmån för fingerprinting (Mowery et al. 2012). Enligt Caniuse.com. (2014a) har de flesta webbläsare idag fullt stöd för HTML5 canvas och 81.36% (2014-02-16) av alla internetanvändare har en av dessa webbläsare. 6

2.2.6 WebGL WebGL är ett royalty-fritt API som används tillsammans med HTML5 canvas för att skapa 3D-grafik i webbläsaren. WebGL är baserat på OpenGL som är en grafikstandard som är brett utspridd och populär och i och med att det använder canvasen för att rita ut grafik är det många webbläsare som har eller kommer ha stöd för tekniken (Khronos.org, 2011). Tekniken lämpar sig enligt Mowery et al. (2012) bra för fingerprinting då WebGL-grafiken är hårdvaru-accelererad och använder bland annat grafikkortet för att rendera ut canvasen. Detta gör det möjligt att få fram synliga skillnader mellan olika hårdvara hos olika system Mowery et al. (2012). Nackdelen med WebGL som fingerprintingmetod idag är att tekniken inte stöds av bland annat Safari i ios. Enligt Caniuse.com (2014b) har endast 40,83% (2014-02-16) av alla internetanvändare har en webbläsare med stöd för WebGL. Statistiken påvisar också att de webbläsarna som generellt inte har stöd för WebGL är webbläsare i mobila enheter, där Blackberry Browser och Opera Mobile är de enda med fullt stöd för tekniken (Caniuse.com, 2014b). 2.2.7 CSS Stilmallar, på engelska Cascaded Style Sheet (CSS) används till att beskriva för webbläsaren hur informationen skall presenteras på en webbsida. Detta görs genom att sätta upp regler för de olika html-elementen som finns i dokumentstrukturen. Dessa regler kallas för deklarationer och kan göras inbäddat i html-element, i egen sektion i html-dokumentet eller i en extern fil (W3schools.com, u.åc). Med hjälp av CSS-attributet :visited är det möjligt att kolla igenom vilka webbsidor användaren har besökt genom att studera färgen på länkar till URL-er renderade på sidan. Färgen på en sådan länk kan bestämmas med hjälp av att deklarera attributet :visited en vald färg, vilket sedan kan hämtas fram i länklistan med hjälp av JavaScript. Denna metod kräver dock att JavaScriptet erhåller en lista av URL-er som användaren kan ha besökt (Olejnik et al. 2012). 7

2.3 Mobila enheter Tack vare smartphones fördelar använder fler och fler människor telefonen till att besöka webbplatser de tidigare endast har använt stationära datorer till. Fler och fler gör sina vardagliga ärenden från mobila enheter vilket bevisar den växande rollen smarta telefoner har för i vårt dagliga liv (Tang, Hidenori, Urano, 2010). Skillnaden mellan mobila enheter och stationära enheter är främst att de mobila enheterna bär användaren med sig på resande fot. Med hjälp av PHP kan användarens IP-adress läsas ut, vilken sedan kan användas mot en tjänst för att ta reda på ungefär var användaren befinner sig på planeten. Ett exempel på en sådan tjänst är https://freegeoip.net/. Denna tjänst erhåller även ett API som gör det möjligt att med hjälp av PHP skicka en http-förfrågan få ut enhetens position i form av longitud- och latitud-koordinater (Fiori, 2014). HTML5 canvas är som sagt till för grafisk representation och stöds av de flesta moderna webbläsarna. Även om WebGL inte stöds på alla mobila webbläsare kan de flesta moderna webbläsare idag utnyttja hårdvaruaccelerering för CSS3 transformationer (Caniuse.com, 2014c). Som Fuchs (2010) specifikt skriver kan även ios-enheter triggas till hårdvaruaccelerering med CSS-transformationer. Vidare menar Mclaughlin (2011) även att SVG-grafik (scalable vector graphics) som renderas ut i en canvas triggar hårdvaruaccelerering vilken också stöds i de flesta moderna webbläsare (Caniuse.com, 2014d). Figur 3 Andel uppkopplade smartphones i Sverige (Statistiska centralbyrån, 2013) Enligt Statistiska centralbyrån (2013a) använder 6 av 10 svenskar sin smartphone för att koppla upp sig mot Internet. Som Figur 3 illustrerar använder över 60 procent av alla män och strax över 50 procent av alla kvinnor i Sverige (2012), sin smartphone för att koppla upp sig mot webben. Då Statistiska centralbyrån (2013b) vidare påvisar att det näst vanligaste ärendet svenskar har på Internet är att besöka sina internetbanker (77 procent), vilket har ett särskilt syfte för fingerprinting som tidigare nämnts i kap 2.1.1 Antibedrägeri, (Nikiforakis et al. 2013a). 8

2.4 Fingerprint-precision Fingerprintingteknikers precision kan avgöras genom att samla ihop data om olika enheter för att sedan granska skillnader mellan dessa enheter (Eckersley, 2010). Skulle en enhet mätas två gånger är ett fingerprint lyckat då den specifika enheten identifieras som samma enhet, båda gångerna. Figur 4 - Misslyckade kontra lyckade fingerprint Figur 4 illustrerar de tre utsagor ett fingerprint kan ha. Skulle enhet A identifieras som enhet B, eller som en ny enhet ( A A ) innebär detta ett misslyckat fingerprint när enheten redan har ett tidigare registrerat fingerprint. Precisionen för en fingerprintingteknik avgörs genom att ta reda på antalet överlapp och missmatchningar som existerar. 9

3 Problemformulering Fingerprinting på mobila enheter låter sig inte göras på samma sätt som på stationära och bärbara datorer, då många mobila enheter saknar stöd för en eller flera underliggande tekniker som till exempel Flash och Silverlight (Caniuse.com, 2014b, Apple.com, 2014). Dock är det fortfarande möjligt att med hjälp av andra tekniker kontrollera om till exempel cookies eller java är aktiverat i webbläsaren, vilket går att göra med bland annat JavaScript (W3schools.com, u.åb). Som Tang, Hidenori, Urano (2010) menar använder fler och fler människor sina mobila enheter för att utföra många av deras dagliga sysslor på webben. Som nämnts i kap 2.3 Mobila enheter, påvisar Statistiska centralbyrån att 6 av 10 svenskar (2012) använder sin smartphone till Internetsurf. Detta innebär att det är viktigt att fingerprinting fungerar minst lika bra på dessa enheter, som det gör för traditionella datorer. Därmed är problemställningen likt följande: Hur stor skillnad kan existerande fingerprintingtekniker, vid exkludering av cookies och tredjepartsprogram, påvisa för hårdvarulika mobila enheter? Hypotesen är att renderingstiden för text eller andra grafiska objekt i HTML5 canvas, kan skilja sig åt beroende på bland annat processorlast och minnesanvändning. Mowery et al. (2011) föreslår mätning av exekveringstid som ett sätt att skapa fingeravtryck med hjälp av JavaScript. Det kan alltså vara möjligt att till exempel två lika modeller av samma telefon och operativsystem renderar olika fort beroende på hur mycket minne och processorkraft som används. Vidare kan en sådan skillnad bero på bland annat hur många appar som ligger och körs i bakgrunden på enheten. Uppgiften är att med hjälp av bland annat PHP, JavaScript och HTML5 canvas-elementet ta fram information som bas för ett fingerprint och komplettera detta fingerprint med renderingstiden. Därpå är det möjligt att ta reda på i vilken utsträckning det kan förväntas vara möjligt att fingerprinta hårdvarulika mobila enheter. De tekniker som skall användas bör tillämpa Homem & Carvalho s (2011) kriterier för att uppfylla användbara fingerprint. Arbetet är inspirerat av artikeln Pixel Perfect: Fingerprinting canvas in HTML5 som handlar om att åstadkomma en god fingerprinting enbart genom canvas-elementet med WebGL och JavaScript. Experimentet bakom artikeln involverar många traditionella datorsystem men få mobila enheter som till exempel smartphones och surfplattor. Olikt artikeln som inspirerat till detta arbete är att identifieringen av mobila enheter troligtvis inte ger lika bra resultat som för stationära system, bland annat på grund av att WebGL inte stödjs fullt ut i samtliga webbläsare (Caniuse.com, 2014b). Möjligheten är därför att det endast är webbläsarens renderingsmotor som påverkar hur resultatet blir, vilket troligtvis medför ett sämre resultat i en fingerprint då skillnaderna mellan bland annat liknande mobila ios-enheter därmed inte kan urskiljas på hårdvaruspecifikationerna med hjälp av WebGL. 10

4 Metod Experiment är metoden som används, där ett antal mobila enheter ingår för mätningen av fingerprintingen. Detta för att bedöma och evaluera ställda hypoteser och antaganden, vilket experiment lämpar sig bra för (Wohlin et al. 2012). Metoden är kvantitativ där flertalet fingerprintingtekniker testas och används på flertalet hårdvarulika mobila enheter. Problemet är datalogiskt eftersom data samlas in med hjälp av en fingerprintingalgoritm. Då data som samlas in är i form av bland annat renderingstider lämpar sig inte kvalitativa metoder som enkäter och intervjuer för att undersöka huruvida ett fingerprint är lyckat eller inte. Styrkan med experiment som metod i detta arbete är också, baserat på Wohlin et al. (2012) påstående att det går att undersöka vilken situation hävdanden är sanna. Experiment kan även tillhandahålla klarhet i vilka metoder som är rekommenderade att använda (Wohlin et al. 2012). En alternativ metod skulle kunna vara fallstudie, vilken lämpar sig bra för många typer av programvaruteknisk forskning eftersom det ofta rör sig om samtida fenomen som utgör resultatet. Dessa fenomen kan vara svåra att studera isolerat från de andra samtidiga fenomenen (Wohlin et al. 2012). Eftersom det bland annat inte är samtidiga fenomen som behandlas vid fingerprinting är fallstudie inte passande som metod för detta arbete. 4.1 Experiment Som beskrevs i kap 2.4 Fingerprint-precision, kan en enhets fingerprint vara misslyckat eller lyckat. Resultatet i en mätning är därmed antal misslyckade fingerprint genom antalet enheter som ingår i mätningen, vilket utgör en procentuell skillnad. En artefakt kommer byggas för att göra det möjligt att utföra fingerprintmätningen. Artefakten kommer vara en webbsida som samlar ihop data från flera fingerprintingtekniker. Data som samlas in kommer lagras i en databas som är kopplad till webbsidan för att sedan kunna utvärderas. Många av fingerprintingteknikerna som presenterades i kap 2.2 Tekniker, används för att ta fram information om operativsystem, webbläsare, cookie- och javastöd, skärmstorlek med mera. Denna information används som bas i fingerprintingen och kompletteras med klockning av renderingstiden vid rendering av text och grafik i en canvas. Varje teknik kan analyseras för sig men samtliga tekniker kommer tillsammans utvisa resultatet av lyckad eller misslyckad fingerprint. Renderingstiden kommer mätas flertalet gånger vid varje besök av webbsidan och ett medel av de samlade klockningstiderna sparas. Anledningen till detta är att kunna utesluta spikar i tid för mätningen. Eftersom renderingstiderna kan variera mellan tillfällen måste ett toleransspann tas fram som baseras på observation av ihopsamlad data, vilket bör ge en indikation för vilken enhet det är. 4.2 Avgränsningar Eftersom utvärderingen är tänkt att göras mot mobila enheter som är väldigt lika hårdvarumässigt, kommer testerna avgränsas till att fokusera på ios-enheter. Detta för att dessa påvisat minst stöd för traditionella fingerprintingmetoder. För att resultatet skall vara intressant är det viktigt att ha så lika enheter som möjligt med så många olikheter som möjligt. Andra smartphones kan användas som referenspunkter i mätningarna. 11

4.3 Forskningsetiska aspekter Allt material och källkod som skapas för detta arbete kommer publiceras som bilagor för att möjliggöra replikation och reproducerbara resultat. Därmed kan tester återskapas och påvisa legitimiteten hos rapporten. Fullständiga grafer med potentiellt brus, utan modifiering kommer även dessa bifogas i appendix, om dem inte redan finns i dokumentet. Det finns en växande medvetenhet hos användare på webben att cookies är ett stort hot mot deras integritet. Många användare blockar därmed cookies i sina webbläsare eller raderar dem regelbundet (Eckersley, 2010). Ur en etisk aspekt kan artefakten användas för att extrahera känslig information om system för att utnyttja vid attacker mot specifika enheter (Mowery & Shacham, 2012). I brist på tid kan antalet enheter som testas i fingerprintingen vara för låg för att säkerställa att resultatet är fullständigt trovärdigt. Alla deltagare som ingår i experimentet är informerade om avsikten med deras medverkan, samt hur data relaterat till dem används. Direkta och indirekta kopplingar till personen som den tillhandahållna informationen om enheterna är relaterad till kommer inte presenteras i något av materialet, utan kommer censureras ut. 12

5 Genomförande 5.1 Litteraturstudie Arbetet är till grunden inspirerat av artikeln Pixel Perfect: Fingerprinting canvas in HTML5 (Mowery & Shacham, 2012), vilket beskrivs i kap 3 Problemformulering. Experimentet involverar till mestadels stationära system. Då användandet av smartphones och surfplattor ökar i användning på webben innebär detta ett ökat intresse för fingerprinting som även fungerar på mobila enheter. 5.1.1 Rendering i canvas Författarna av artikeln Pixel Perfect: Fingerprinting canvas in HTML5 använder sig av text och grafik i en HTML5 canvas för att få fram ett unikt fingerprint. I det här arbetet används HTML5 canvas-elementet för liknande teknik för att fingerprinta men med komplettering i form av klockning av renderingstid. Klockningen görs olika på olika webbläsare då till exempel Safari för ios inte har stöd för W3C High Resolution Timer (w3.org, 2012) och därmed får luta sig tillbaka på JavaScript Date-objektet som endast har upplösning i millisekunder. Inspiration för användandet av W3C High Resolution Timer är från Microsecond timing in JavaScript (StackOverflow, 2014a). Figur 5 - Fallbackfunktionalitet för klockning av renderingstider illustrerar funktionen för klockning av renderingstiderna av grafik i HTML5 canvas. Figur 5 - Fallback-funktionalitet för klockning av renderingstider 13

5.1.2 Grundläggande tekniker I arbetet används andra bakomliggande tekniker för att utgöra ett fingerpring, vilket nämns i kap 3 Problemformulering. Renderingen i canvas kan analyseras för sig men kan även behöva stöd från andra tekniker för att ge en grund till ett användbart fingerprint. De grundläggande tekniker som är valda att använda håller sig inom JavaScript, PHP (Hypertext Preprocessor) och CSS (Cascading Style Sheet) för att säkerställa att de flesta webbläsare och enheter har stöd för teknikerna. För att ta del av information om användarens operativsystem och webbläsare används JavaScript. Den text-sträng webbläsaren gör synlig för JavaScript ser olika ut för olika webbläsarversioner och operativsystemsversioner. En lista (se Figur 6 - Ian Ippolitos lista över useragent-strängar med regex validering för operativsystem) över de flesta operativsystem och webbläsare är inspirerat av Ian Ippolitos inlägg i How can I find the OS name and OS version using JavaScript? (StackOverflow, 2014b). Figur 6 - Ian Ippolitos lista över useragent-strängar med regex validering för operativsystem 5.2 Implementation En prototyp av en webbapplikation har skapats för insamlingen av data från olika enheter. Applikationen består av en klient-del och en server-del. På klienten körs initialt ett JavaScript som renderar en vektorgrafisk figur i ett HTML5 canvas-element i webbapplikationen och klockar renderingstiderna. Data om webbläsare och operativsystem sparas undan i en Array tillsammans med tiderna för klockningen. Slutligen skickas datan i Arrayen till servern med hjälp av JavaScript Ajax där ett PHP-script lagrar all den insparade datan om användaren och enheten i en mysql-databas (se Figur 7 - Grovskiss av webbapplikation). 14

Figur 7 - Grovskiss av webbapplikation 5.2.1 Rendering i canvas En klockning görs precis före renderingen startar och precis efter renderingen är klar. Renderingen och klockningarna görs 10 gånger för att kunna avgöra om klockningen visar spikar i renderingstiden. Mätningen resulterar därmed i 10 tidsstämplar för varje enhet vid varje tillfälle enheten anropar sidan. En statistisk standardavvikelse görs på de klockade tiderna för att sortera bort spikar med hjälp av formeln i Figur 8 - Standardavvikelseformel för renderingstider, där kvadratroten ur variansen på medelvärdet tas fram. 15

Figur 8 - Standardavvikelseformel för renderingstider Normalfördelningen i Figur 9 - Diagram av normalfördelning illustrerar värdena nära medeltiden för klockningarna i de två mellersta banden. De värden som hamnar utanför normalen sållas bort och ett medelvärde av de kvarvarande värdena sparas undan, samt högsta och lägsta klockningarna inom normalen. Figur 9 - Diagram av normalfördelning 5.2.2 Operativsystemsspecifik information Med hjälp av Ian Ippolitos lista presenterad i kap 5.1.2 Grundläggande tekniker och JavaScript hämtas namnet på operativsystemet och versionsnumret ut och mellanlagras i data-arrayen som tidigare nämnts, till dess att användaren klicka på spara-knappen i webbapplikationen. Då användaren har fyllt i ett formulär och klickat på spara-knappen skickas datan i Arrayen till servern. 5.2.3 Webbläsarspecifik information Med hjälp av enkla JavaScript-kommandon hämtas information om skärmstorlek, fönsterstorlek och färgdjup ut. Tre tester görs för att testa om Flash och Cookies stöds av webbläsaren likt Figur 10 - cookiesenabled-funktion & flashenabled-funktion. Java-stöd kontrolleras också genom metoden javaenabled() på navigator-objektet likt Exempel 1 UserAgent string. navigator.javaenabled(); Exempel 2 javaenabled method 16

Figur 10 - cookiesenabled-funktion & flashenabled-funktion 5.2.4 Progression I den första versionen av webbapplikation användes JavaScript Date-objektet för att ta fram klockningar för renderingstider av vektorgrafiken i HTML5 canvas. W3C High Resolution Timer ersatte funktionaliteten delvis men visade sig senare inte fungera i bland annat Safari på mobila enheter. Dock körs funktionaliteten vid tillfälle då den stöds. Klockningarna gjordes till en början endast en gång per anslutning till sidan vilket senare visade sig vara missvisande. Felet korrigerades genom att rendera ut vektorgrafiken i HTML5 canvas fler antal gånger, samt sålla bort felaktig data, så att spikar elimineras i utvärderingen. Bortsorterad data lagras i separata fält i databasen och tas därmed inte bort helt för experimentets skull. I senare versioner av webbapplikationen tillades fler alternativ av enheter och modeller av smartphones och surfplattor, i formuläret som användaren fyller i. Detta för att möjliggöra fler referensvärden till utvärderingen av experimentet. Fokus för experimentet ligger på iosenheter men antas vara mer värd med fler referenspunkter. 5.3 Pilotstudie Pilotstudien av experimentet påvisar skillnader enheter emellan i klockningar av renderingstiden av vektorgrafiken i HTML5 canvas. Dock påvisas även överlapp för smartphones av samma modell (se tabell 2). I pilotstudien ingick 1 iphone 5, 2 iphone 4 och 1 iphone 4s. 17

Enhet # Modell Operativsystem Skärmupplösning Webbläsare Stöd Klockning 1 (ms) Klockning 2 (ms) 1 iphone 4 320 x 480 ios 6.1.3 cookies 3096 2571 2 iphone 4 320 x 480 ios 7.0.6 cookies 2844 3 iphone 4s 320 x 480 ios 7.0.6 cookies 1669 1549 4 iphone 5 320 x 568 ios 7.1.0 cookies 658 665 Tabell 2 Resultat av mätningar i pilotstudie 18

6 Utvärdering 6.1 Presentation av undersökning Undersökningen genomfördes på 50 enheter. De olika enheter som användes var varierande i form-faktor och modell. För varje mätning görs 20 klockningar av renderingstiden för att simulera flera besök på sidan. Hälften av klockningarna för varje mätning, det vill säga 10 stycken, görs för rendering av en större och mer avancerad figur för att kunna avgöra om det finns skillnader i renderingstid mellan avancerade och simpla figurer för varje enhet. I mätningarna fick enbart en av enheterna en godkänd klockning över 0 millisekunder för den enkla figuren, vilket gjorde det omöjligt att mäta mot de andra enheterna. Anledningen till att klockningarna på den enkla figuren inte kunde klockas tros vara den låga upplösningen för klockningarna i JavaScript Date-objektet. Då detta arbete främst fokuserar på ios-enheter används dessa i analysen tillsammans med de andra enheterna som referenspunkter. Referenspunkterna påvisar om det är större skillnader mellan ios-enheter och andra enheter än till exempel en ios-enhet från en annan. När en mätning är genomförd sparas 28 värden in i en databas. De värden som sparas undan förutom identifierare bestående av deltagarens namn, enhetens modellnamn, är skärmstorlek (i pixlar), fönsterstorlek (i pixlar), färgdjup, färgupplösning, webbläsare samt version, om enheten är en mobil enhet eller inte, operativsystem samt version och de olika klockningsvärdena. Enhetens stöd för Java, cookies och Flash skrivs även in i databasen tillsammans med 2 base64 hash-strängar som finns till för att påvisa skillnader i hur grafiken renderas i HTML5 canvas för de olika enheterna. 6.1.1 Renderingstid Klockningarna gjordes med JavaScript Date-objektet för de enheter som inte stödjer W3C High Resolution Timer, vilket bland annat är ios-enheter med webbläsaren Safari. Ett typvärde av renderingstiderna tas fram för att avgöra precisionen för varje enhet i dess fingerprint. Eftersom i princip inga renderingstillfällen kommer infalla på samma millisekund i mätningarna går det inte med säkerhet påvisa ett typvärde på exakta millisekunder. Typvärdet måste där med få ett tidsspann som fungerar som ett typvärde med flera värden i. Som beskrevs i kap 4.1 Experiment, måste ett toleransspann tas fram som baseras på observation av ihopsamlad data, vilket bör ge en indikation för vilken enhet det är. Exempel på hur renderingstidernas klockningar kan räknas ut som en komponent i ett fingerprint. Exemplet förutsätter att toleransspannet är satt till 5 millisekunder. Tabell 3 - Exempel på klockningstider Exempel # Exempel på klockningstider (ms) 1 5,5,6,7,4,4,6,32,50,7 2 5,6,7,8,32,7,15,16,17 3 5,10,15,20,25,30,35,40,45,50 På första raden i Tabell 3 - Exempel på klockningstider visas en mätserie på 10 renderingstider i millisekunder. Klockningstillfällena som renderingen görs på 32 samt 50 19

millisekunder sållas bort med hjälp av den statistiska standardavvikelsen beskriven i kap 5.2.1 Rendering i canvas. Resterande värden ligger inom ett spann på ± 5 millisekunder vilket därmed anses som samma enhet i analysen och utvärderingen. På andra raden sållas siffran 32 bort och kvar är 5, 6, 7, 7, 8, 15, 16 och 17 i ordning från lägsta till högsta. Vid tillfället där mätningen är på 15, 16 och 17 millisekunder skiljer det mer än 5 millisekunder från de flest förekommande värdena av mätningen. Fingerprinting skall enligt Homem & Carvalho (2011) lära sig förändring för en användare och anpassa sig efter förändring. I verkligheten är det möjligt att en enhet ändrar renderingstid på grund av olika hårdvarurelaterade faktorer så som till exempel minnesanvändning. Skulle de kommande renderingstiderna i serien efter 15, 16 och 17 hålla sig inom spannet på ± 5 millisekunder kommer enheten i fingerprintet klassas som en ny enhet från vilken den klassades som de första 5 gångerna den klockades. Över tid spelar det mindre roll om enheten hädanefter fortsätter hålla sig inom det godkända spannet. På tredje raden i tabellen finns värdena 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 millisekunder och ingen standardavvikelse är identifierad. Ökningen i renderingstid är linjär och varje värde ligger inom spannet på ± 5 millisekunder från vardera värde men det första skiljer 10 millisekunder från det tredje vilket gör att det faller utanför det godkända spannet för att påvisas vara samma enhet. 6.1.2 Renderingsdifferential Renderingstiden togs fram genom att rendera ut grafiska objekt i en HTML 5 canvas likt Figure 11 - Grafiska objekt renderade i HTML 5 Canvas. Två olika objekt renderades ut för varje mätning för att avgöra om renderingstiderna skilde sig åt beroende på hur grafiskt avancerade objekten var. Figure 11 - Grafiska objekt renderade i HTML 5 Canvas 20

Förutom de två grafiska objekten renderas även en textsträng ut i en canvas för att få fram en renderingsdifferens. Textsträngen sparas i databasen som en base64-enkodad bild i jpgformat och png-format. De båda base64-enkodade bilderna jämförs med varandra för varje enhet för att sedan analyseras för att finna olikheter i rendering mellan de olika enheterna. Textsträngen används för renderingsdifferensmätningen, istället för de grafiska objekten så strängarna inte blir för långa och svårhanterliga, samt av anledningen att text renderat i canvas inte säkert har samma kantutjämning i olika webbläsare och grafikkort. De framtagna base64-enkodade bilderna från mätningarna jämförs sedan med varandra. 6.2 Analys 6.2.1 Renderingstider Figur 12 - iphone 5 21

I Figur 12 - iphone 5, visas tre iphone-telefoners sammanställda renderingstider, där det görs tio likadana renderingar per telefon. Inom varje telefons olika renderingar är skillnaden större än mellan de olika telefonernas renderingar. Vid jämförelse mellan de olika telefonernas sammanställda renderingstider syns en del överlappningar och visar därmed på dålig fingerprint-underlag. Det finns även höga spikar för de olika telefonerna som räknas som brus i den här analysen då dessa inte är relevanta för analysen. Figure 13 - Illustration för överlappning av iphone 5 Figure 13 - Illustration för överlappning förtydligar överlappen mellan de tre iphone 5- telefonerna. Alla de tre telefonerna ligger mestadels på liknande tider vilket innebär överlapp. Telefonerna blir på grund av överlappen svåridentifierade som unika telefoner. Detta visar på att fingerprintingmetoden kan vara mindre användbar. Telefonerna har renderingstider som kan korsa de olika telefonernas renderingstider vilket också innebär överlapp. iphone 5 #2 ligger under renderingsiteration 8 och 9 kring 756 millisekunder. Under renderingsiteration 10 för iphone 5 #1 ligger renderingstiden på 755 millisekunder. Utifrån detta kan fingerprintingmetoden missta de två telefonerna som samma telefon. Detta för att de ligger inom samma renderingstid. Även iphone 5 #3 ligger inom 756 millisekunder under första renderingsiterationen. 22

Figur 14 - Medelsnitt av mobila enheters renderingstider Figur 14 - Medelsnitt av mobila enheters renderingstider, påvisar ganska stora skillnader i renderingstid mellan olika märken. Utifrån den här grafen är det möjligt att förutspå vilket märke och modell enheten har beroende på renderingstiden. De tider som presenteras i grafen är medelsnitt av samtliga mätningar per enhet. När renderingstiden överskrider 2 sekunder kan det antas att det är en iphone 4-telefon som besöker webbsidan. När renderingstiden hamnar under 50 millisekunder kan det antas vara en Samsung Galaxy S4 eller S5. # Modell Renderingstider (ms) 1 ipad 2 1457,1240,1236,1241,1241,1239,1463,1260,1292,1233 2 ipad 3 1403,1273,1249,1255,1249,1281,1262,1252,1236,1476 3 ipad 3 1578,1388,1376,1384,1380,1371,1273,1334,1421,1570 4 ipad 3 793,622,602,625,620,598,596,597,601,712 5 ipad Mini 2 406,338,331,318,317,322,314,316,316,315 6 iphone 4 2937,2268,2487,2828,2401,2255,2332,2243,2288,2242 7 iphone 4 4544,3601,3951,2727,2621,2600,2453,2453,2648,3180 23

8 iphone 4 6212,4023,2822,2726,2959,2798,3096,2567,2686,2554 9 iphone 4s 1887,1632,1840,1561,1586,1522,1561,1528,1541,1528 10 iphone 4s 1816,1549,1555,1563,1596,1570,1548,1544,1543,1597 11 iphone 5 756,650,645,631,630,633,627,630,630,738 12 iphone 5 1078,682,641,645,645,643,646,642,635,755 13 iphone 5 811,749,650,646,647,646,641,648,638,756 14 Nokia Lumia 930 395,344,333,259,222,294,268,236,230,289 15 Samsung Galaxy Core 354,207,156,162,153,155,158,158,153,151 16 Samsung Galaxy S2 542,344,260,276,268,270,268,271,282,283 17 Samsung Galaxy S4 410,94,39,47,43,46,45,43,40,41 18 Samsung Galaxy S4 206,70,26,26,26,27,27,27,26,34 19 Samsung Galaxy S4 207,307,35,35,35,35,35,35,35,35 20 Samsung Galaxy S5 169,56,24,27,22,20,20,20,23,24 21 Samsung Galaxy S5 206,54,40,36,24,18,17,30,19,21 22 Samsung Galaxy S5 661,316,124,64,36,35,36,41,36,35 Tabell 4 Renderingstider i millisekunder för samtliga mobila enheter i mätningen Tabell 4 - Renderingstider i millisekunder för samtliga mobila enheter i mätningen, visar renderingstiderna för alla mobila enheter som ingick i mätningarna. Det som kan anses vara intressant här är skillnaderna mellan alla smartphones av märket Samsung, där vardera telefon har relativt liknande renderingstid vid varje mätning. Varje mätning skiljer sig i regel enbart med fåtalet millisekunder från de tidigare mätvärdena. Den enda ipad 2 som var med i mätningen har majoriteten renderingstider runt 1200 millisekunder vilket även den första ipad 3 i listan har. Av de ipad 3 som deltog i mätningen är skillnaden i renderingstid större än det är mellan ipad 2 och ipad 3 på rad 2. De enheter som har flest liknande renderingstider enligt Tabell 4 - Renderingstider i millisekunder för samtliga mobila enheter i testet, är Samsungs Galaxy-modeller. I de flesta mätningarna i serierna skiljer det inte mer än några få millisekunder. Samsung Galaxy S5 på rad nummer 20 har mätvärde 35 millisekunder för 8 av 10 mätningar i mätserien. 24

Figure 15 Illustration för skillnader och överlapp för iphone 4 De tre iphone 4 skiljer sig i regel med några hundra millisekunder från varandra men överlappar varandra i vissa mätningar. I Figure 15 Illustration för skillnader och överlapp för iphone 4, påvisas ett fåtal överlapp men att enheterna mestadels skiljer sig åt. Vid de 3 första iterationerna har iphone 4-telefonerna en ojämn nivå för att sedan dala ut sig till jämnare nivå. 25

Figur 16 - Renderingstider Samsung Galaxy S-serien I Figur 16 - Renderingstider Samsung Galaxy S-serien, framgår det tydligt att de högsta spikarna i renderingstid är de i början av mätningen för att sedan jämna ut sig till jämnare nivå med liknande resultat. Grafen i Figur 16 - Renderingstider Samsung Galaxy S-serien visar en överblick över renderingstiderna innan exkludering av spikar och tydliggörs i grafen nedan, se Figure 17 - Samsung Galaxy S-serien med spikar borttagna. 26

Figure 17 - Samsung Galaxy S-serien med spikar borttagna Figure 17 - Samsung Galaxy S-serien med spikar borttagna, visar hur enheterna smått skiljer sig från varandra och håller jämna renderingstider, vilket ger potential till rättvist fingerprint i och med det jämna mönster som kan ses för Samsungs olika enheter. # Variant Renderingstider (ms) Webbläsare Version OS Version 1 desctoppc 38, 36, 7, 6, 7, 6, 7, 7, 6, 6 Chrome 36.0.1985.5 Windows 7 2 desctoppc 96, 52, 63, 49, 50, 63, 49, 48, 66, 52 Firefox 29 Windows 7 3 desctoppc 39, 28, 6, 7, 6, 7, 7, 9, 7, 7 Chrome 36.0.1985.5 Windows 7 4 desctoppc 116, 54, 69, 53, 53, 67, 54, 52, 69, 53 Firefox 29 Windows 8 5 desctoppc 81, 35, 36, 33, 31, 32, 31, 30, 30, 30 MS IE 11 Windows 7 6 desctoppc 123, 81, 63, 59, 59, 94, 62, 60, 58, 93 Firefox 28 Windows 7 7 desctoppc 204, 18, 5, 4, 3, 3, 3, 3, 3, 3 Chrome 34.0.1847.137 Windows 7 8 desctoppc 114, 55, 69, 53, 52, 64, 52, 52, 66, 55 Firefox 29 Windows 8 9 desctoppc 38, 14, 6, 6, 6, 6, 5, 6, 6, 7 Chrome 34.0.1847.137 Windows 7 10 desctoppc 87, 48, 62, 47, 47, 59, 47, 46, 61, 48 Firefox 29 Windows 7 11 desctoppc 97, 28, 44, 33, 102, 72, 113, 185, 114, Chrome 34.0.1847.137 Windows 8.1 164 12 desctoppc 52, 18, 9, 7, 7, 9, 7, 7, 7, 9 Chrome 34.0.1847.137 Windows 8.1 13 desctoppc 24, 8, 3, 3, 3, 3, 3, 3, 3, 3 Chrome 34.0.1847.137 Windows 8.1 14 desctoppc 28, 10, 4, 4, 4, 4, 4, 4, 4, 4 Chrome 34.0.1847.137 Windows 7 15 desctoppc 35, 13, 5, 4, 5, 5, 5, 4, 5, 5 Chrome 33.0.1750.154 Windows 8.1 16 desctoppc 24, 14, 4, 3, 4, 3, 4, 3, 4, 4 Chrome 34.0.1847.137 Windows 7 17 desctoppc 25, 18, 4, 4, 4, 4, 4, 4, 4, 4 Chrome 35.0.1916.114 Windows 8.1 18 desctoppc 46, 18, 4, 5, 4, 4, 5, 4, 4, 4 Chrome 35.0.1916.114 Windows 8.1 19 desctoppc 23, 7, 9, 7, 7, 7, 9, 7, 7, 7 Chrome 34.0.1847.137 Windows 8.1 27

20 desctoppc 25, 13, 5, 4, 4, 5, 4, 5, 5, 4 Chrome 34.0.1847.137 Windows 8.1 21 laptoppc 148, 51, 19, 17, 19, 17, 17, 17, 17, 20 Chrome 34.0.1847.137 Windows 8.1 22 laptoppc 267, 25, 7, 5, 6, 6, 6, 6, 6, 6 Chrome 34.0.1847.137 Windows 7 23 laptoppc 23, 8, 9, 7, 7, 7, 9, 7, 8, 9 Chrome 34.0.1847.137 Windows 8.1 24 laptoppc 259, 171, 172, 169, 165, 177, 152, 125 Firefox 29 Windows 7, 158, 165 25 laptoppc 141, 62, 78, 47, 62, 63, 62, 63, 62, 62 Firefox 29 Windows 7 26 desktopmac 48, 13, 5, 5, 5, 5, 5, 5, 5, 5 Chrome 34.0.1847.137 Mac OS X 27 laptopmac 22, 9, 61, 131, 119, 66, 82, 57, 134, 5 Safari 7.0.3 Mac OS X 28 laptopmac 27, 8, 113, 158, 145, 147, 156, 133, Safari 7.0.3 Mac OS 217, 89 X Tabell 5 Renderingstider i millisekunder för stationära och bärbara persondatorer Tabell 5 Renderingstider i millisekunder för stationära och bärbara persondatorer, visar samtliga persondatorer som deltog i mätningarna. I tabellen framgår det tydligt att det är svårare att skilja dessa system från varandra än mobila enheter från varandra. Renderingstiderna skiljer sig mer mellan webbläsare än datorer i sig. Operativsystem verkar inte påverka mätningarna alls. Samtliga datorer som använder webbläsaren Chrome håller renderingstiderna under 10 millisekunder i alla fall utom 1 (rad 11 i tabellen) medan Firefox håller sig runt 60 millisekunder respektive Internet Explorer på 30 millisekunder. 10.8.5 10.9.3 10.9.2 Figure 18 Illustration av renderingstider för samtliga persondatorer i mätningen Figure 18 Illustration av renderingstider för samtliga persondatorer i mätningen, påvisar att samband datorer emellan är mindre än likheten mellan varje maskins olika mätningar. Det finns dock mycket överlapp mellan datorer med samma webbläsare. 28

6.2.2 Renderingsdifferential # Enhet #1 Enhet #2 Jpg (skilje) Png (skilje) 1 iphone 4 ios 7.0.2 Safari 7.0 2 iphone 4S ios 7.0.4 Safari 7.0 3 ipad 2 ios 6.0.1 Safari 6.0 4 ipad 3 ios 7.0.4 Safari 7.0 5 ipad 3 ios 7.1.0 Safari 7.0 6 iphone 4 ios 7.0.4 Safari 7.0 7 Desctop-pc Windows 7 Firefox 29.0 iphone 4S ios 7.0.4 Safari 7.0 ipad 2 ios 6.0.1 Safari 6.0 ipad 3 ios 7.0.4 Safari 7.0 ipad 3 ios 7.1.0 Safari 7.0 iphone 4 ios 7.0.4 Safari 7.0 Desctop-pc Windows 7 Firefox 29.0 Desctop-pc Windows 7 Chrome 36.0.1.1985.5 Identiska Identiska Identiska 80/1000 tecken 989/1000 tecken 80/1000 tecken Identiska Identiska Identiska Identiska 750/1000 tecken 78/1000 tecken 870/1000 tecken 69/1000 tecken # ---------------------- ------------------------- --------------------- ---------------------- 8 Desctop-pc Windows 7 Chrome 34.0.1847.137 Desctop-mac Mac OS X 10.8.5 Chrome 34.0.1847.137 123/1000 tecken 80/1000 tecken Tabell 6 Utplock av base64-enkodade textdifferenser Tabell 6 Utplock av base64-enkodade textdifferenser, visar ett utplock enheter jämförda med varandra med hjälp av ett textjämförelseprogram. Den första enheten på första raden jämförs med den andra enheten på första raden. Därefter jämförs den andra enheten på första raden med andra enheten på andra raden. Sedan jämförs den andra enheten på andra raden med andra enheten på tredje raden och så vidare fram till och med rad 7. 29

Figure 19 Exempel på strängar jämförda med textjämförelseprogram (www.text-compare.com) Utplocket är exempel till för att påvisa generella återkommande liknelser uppmärksammade i analysen för renderingsdifferensen. På rad 1, 4 och 5 i Tabell 6 - Utplock av base64-enkodade textdifferenser, visas resultaten från ios-enheter med webbläsarversion 7.0 av Safari. Resultatet från renderingsdifferensen mellan dessa enheter visar sig vara identiska. På rad 2 och 3 jämförs två ios-enheter varav en med Safari 6.0 och en med Safari 7.0. I dessa fall skiljer sig bilderna i renderingen sig åt. På rad 8 i Tabell 6 - Utplock av base64-enkodade textdifferenser, jämförs en Mac med en PC med olika operativsystem men med samma versionsnummer på webbläsaren. Tidigare resultat har påvisat att skillnader i första hand kan synas mellan webbläsare. På rad 8 skiljer detta sig från de andra resultaten och påvisar skillnader med samma webbläsare och versionsnummer. 6.3 Slutsatser För att renderingstider för utritning av grafik i webbläsaren ska kunna användas som fingerprintingmetod krävs det att ett godkänt tidsspann tas fram. Då olika resultat för olika sorters enheter har observerats i mätningarna bör toleransspannssiffran inte vara en konstant. För en enhet, som med hjälp av andra fingerprintingmetoder har identifierats som till exempel en iphone 5 kan toleransspannssiffran ligga på ± 10 eller 15. För en Samsung Galaxy S4 eller S5 kanske det räcker med ett toleransspann på ± 5, eftersom S4 och S5 har mindre differens i mätvärdena. Även med ett toleransspann är det svårt att unikt identifiera en specifik användare genom en specifik enhet. De iphone 5-telefoner som deltog i mätningarna överlappar varandra vid flera tillfällen, vilket innebär misslyckat fingerprint då en specifik enhet kan identifieras som en annan. Det finns dock stora skillnader mellan olika märken av mobila enheter vilket framgår i Figur 14 - Medelsnitt av mobila enheters renderingstider. Dessa resultat är emellertid inte heller av tillräckligt hög precision för att peka ut en unik enhet i ett fingerprint. Precisionen är snarare endast hög nog att ge en fingervisning vilket märke enheten har. När renderingstiden överskrider 2 sekunder kan det antas att det är en iphone 4-telefon som besöker webbsidan. När renderingstiden hamnar under 50 millisekunder kan det antas vara en Samsung Galaxy S4 eller S5. Samsungs Galaxy S-serie visade sig i Figur 16 - Renderingstider Samsung Galaxy S-serien, ha förhållandevis liknande renderingstider för varje unik telefon vid varje mätning. Hypotesen är att dessa mobila enheters webbläsare cachar renderad data och laddar in på nytt, istället för att på nytt rendera ut objektet. Skulle samma enhet mätas vid senare tillfälle igen, är det möjligt att renderingstiderna vid detta tillfälle inte påvisar ett så positivt resultat. 30