• No results found

Hur DNS fungerar i Tor beskrivs med följande illustration. I figur 2.3 illustreras följande scenario; Bob är en godtycklig webbserver på internet, Alice är en klient i Tor-nätverket och skapar en uppkoppling genom reläerna (benämnt Tor node i diagrammet). Datorn längst ner till höger är ett slutrelä och tillåter data att lämna Tor-nätverket via detta relä. [40]. Då Alice gör ett uppslag för ett domännamn som exempelvis Bob eller Jane innehar kommer slutreläet få i uppgift att göra detta uppslag. Införs ännu en klient i exemplet, låt säga Eve, och Eve använder samma slutrelä som Alice kan problem poten- tiellt uppstå. Då Alice och Eve delar på slutreläets cache skapas en potentiell sidokanal som attackvektor. Denna cache i slutreläer utnyttjar författaren i denna design, med hjälp av mjukvara som beskrivs senare i designkapitlet utförs tidtagning på slutnoders cache.

Figur 3.1: Illustration över topologin för uppkopplingen mellan Alice och Bob. Bilden tillhör EFF och är licensierad under Creative Commons [3].

3.2. WEBBPLATSORAKEL 25

3.2

Webbplatsorakel

Detta kapitel beskriver hur ett webbplatsorakel utformas med DNS-tidtagning av Tor- nätverkets slutreläer som källa. Därefter beskrivs i detalj hur författaren realiserar detta webbplatsorakel.

3.2.1

Konceptet webbplatsorakel från DNS-tidtagning i Tor

Nedan ges ett beskrivande exempel i hur ett webbplatsorakel tar beslut om en webbplats är besökt eller ej, se figur 3.2 för referens. Webbplatsoraklet i denna uppsats riktar in sig på alla möjliga slutnoder i Tor-nätverket, men låt oss fokusera på en enda slutnod i detta exempel. Tid X är den tid det tar för klienten (benämnd Klient) att skicka data genom Tor-nätverket (benämnd Tor-nätverket) till ett godtyckligt slutrelä (benämnd Slutrelä) och sedan få tillbaka denna data. Tid Y är den tid det tar för detta specifika slutrelä att skicka ett domänuppslag till en godtycklig DNS-Server (benämnd DNS-Server) och sedan få tillbaka ett svar från denna DNS-Server. Då klienten skickar ett domänuppslag till slutreläet, som slutreläet ej innehar i sin cache kommer detta domänuppslag ta tid X + Y för klienten att få tillbaka. Om detta uppslag istället existerar i slutreläets cache kommer denna tid endast att vara X, och inte X +Y , då Y är den tid det tar för slutreläet att kontakta DNS-Servern (DNS-Servern kontaktas inte om domännamnet existerar i cache).

3.2.1.1 Attackvektor

Existerar ett domännamn i ett slutreläs cache har detta domännamn besökts av en an- vändare som brukar detta slutrelä. Att inneha vetskap angående vad som existerar i slutreläets cache, är att inneha vetskap om de webbplatser användarna av detta slutrelä besöker. Med tidigare exempel får vi ut tid X +Y från ett domänuppslag mot ett slutrelä, med omvänd logik kan man få ut information om domänuppslaget om man vet X och

Figur 3.2: Topologi för uppkoppling med klient, slutrelä och DNS-Server.

Y. Om man som attackerare innehar informationen tid X och tid Y samt tiden för ett godtyckligt uppslag av exempelvis kau.se, ett uppslag som tar tid Z, kan man avgöra om domännamn kau.se existerar i detta specifika slutreläs cache. Sammanfattat kan man säga att; om Z = X + Y är sant existerar inte domännamnet kau.se i slutreläets cache, är istället Z = X sant så existerar kau.se i slutreläets cache, i sådant fall är kau.se besökt av detta slutrelä sedan tidigare. Problematiken här är att situationerna Z = X + Y och Z = X uppstår mycket sällan, då fördröjningar vanligtvis uppkommer. Ett tröskelvärde för när Z anses befinna sig i något av dessa två stadier krävs, detta tröskelvärde benämns T. Författarens arbete bygger på att finna ett tröskelvärde T där tid Z anses vara antingen X eller X + Y , tröskelvärdet T beräknas från tid X och X + Y . Baserat på den logiken konstrueras konceptet för webbplatsorakel från DNS-tidtagning. Problemet är att vetskap om tid Z (och om predikatet: kau.se existerar i cache) vet vi endast då tröskelvärde T är känt, detta behandlas i nästa kapitel.

3.2.1.2 Att beräkna tröskelvärdet

För att beräkna X och Y behövs en större mängd tester av kända utfall utföras, för detta krävs ett flertal domännamn. Konstruktion av domännamn beskrivs nedan, därefter beskrivs hur de löser ut X och Y. Författaren skapar en stor uppsättning domännamn

3.2. WEBBPLATSORAKEL 27 som antas vara oanvända sedan tidigare, dessa domännamn används för tidtagning av slutreläets cache. Domännamnet pulls.name vilket är konfigurerat till att acceptera alla subdomän konkateneras med en slumpmässigt vald subdomän (resulterar exempelvis i bai6eihoo1oogheipohleezae3sheech.pulls.name). Det är viktigt att kombinationen är konstruerad på ett sådant sätt att ingen tidigare användare har anledning att besöka dessa. För ett godtyckligt domännamn benämnt D0 som följer denna struktur anses detta inte existera i slutreläets cache. Då författaren besöker D0 och tar tid A för detta vet författaren att A = X + Y , då det är omöjligt att D0 existerar i cache. Besöker sedan författaren domän D0 på nytt inom kort tid är det säkert att denna domän existerar i cache och tid B anses då vara B = X . Med tid A vet författaren tiden det tar klienten att kontakta slutreläet och sedan DNS-Servern, med tid B erhålls vetskap om kontakt direkt till slutreälet. I en perfekt värld är tid A = X + Y och tid B = X , sådant är dock inte fallet utan författaren skall utföra en större mängd tidtagningar av A och B skall sedan konstruera en algoritm för att beräkna Z.

Sammanfattningsvis behövs F, där F är en funktion som mottager två mängder i form av T = F(R, S) där;

• T är det sökta tröskelvärdet.

• R är en mängd bestående av element i form av A där domänuppslaget inte existerar i cache och tid A skall då närma sig tid (X + Y).

• S är en mängd bestående av element i form av B där domänuppslaget existerar i cache och tid B skall närma sig X.

Funktion F behandlas tillsammans med korsvalidering (kapitel 3.6) då endast obehand- lad data i form av R och S framtas av denna tidtagning. Mängderna R och S ges av upprepade domänuppslag av A och B, för ett specifikt slutrelä, vilket förklaras i nästa kapitel.

3.2.2

Sammanfattning och realisering av webbplatsorakel

Tidtagning av X + Y vilket vi kallar för A och tidtagning av X vilket vi kallar för B fås genom en upprepade uppslag av slumpgenererade domännamn (se figur 3.2), med dessa tider kan korsvalidering utföras där funktion F nyttjas. För detta skapar författaren slumpgenererade domännamn för att göra ett större antal uppslag mot alla möjliga slutreläer i Tor-nätverket, hur detta utförs med Exitmap beskrivs i kapitel 3.4. Denna process resulterar i de två mängderna R och S för varje slutrelä i Tor-nätverket. Utifrån R och S beräknas tröskelvärdet T, en potentiell attackerare kan sedan göra domänuppslag mot Tor-nätverket, jämföra detta med T och därav veta om detta domännamn är besökt av en tidigare användare.

Related documents