• No results found

En Man-in-the-middle (MITM) attack är, som namnet antyder, när ett system agerar som en gateway (en länk eller nod som binder samman två olika nätverk, oftast det lokala nätverket med övriga Internet) mellan en klient och en server, ofta i syfte att avlyssna nätverkstrafiken som går mellan en klient och en server. Eftersom att HTTPS använder sig av End-to-end kryp- tering (data krypteras i systemet som skickar datan och avkrypteras inte förrän datan nått sin slutdestination) är det nästan omöjligt, och därför meningslöst, att avlyssna nätverkstra- fik som använder sig av HTTPS. En MITM attack i HTTPS går istället ut på att fånga upp SSL/TLS handskakningen som sker innan data kan krypteras. Själva handskakningen är inte krypterad, och det är detta en MITM attack kan utnyttja [53].

Notera att i äldre versioner av SSL kan systemen använda sig av krypteringstekniker som kan vara sårbara mot Brute-force attacker [54]. Hädanefter antas det att SSL/TLS versioner har väldigt bra krypteringsteknik.

Figur C.1: Överskådlig bild av hur en MITM attack ser ut

En MITM attack sker enligt Figur C.1:

1. Klient skickar förfrågan till en HTTPS server om att initalisera en SSL/TLS handskak- ning genom MITM som fungerar som en gateway.

2. MITM tar emot klientens förfrågan och skickar en egen förfrågan till samma https ser- ver.

3. Servern svarar med ett giltigt certifikat utfärdad av en CA.

4. MITM tar emot certifikatet och modifierar det, sedan skickas det modifierade certifika- tet vidare till klienten.

C.5. Resultat

Efter att klienten godkänt det modifierade certifikatet är MITM-attacken i princip fullbordad, eftersom att MITM kan nu dekryptera all trafik som sker mellan klienten och servern [55]. Notera att kommunikationen ser normal ut för klienten och servern, dessa är ovetandes om att det finns en MITM. Om MITM blir upptäckt blir attacken misslyckad.

Användare kan bli drabbade av MITM-attack oberoende av var MITM befinner sig i nät- verket, det enda kravet från MITM:s perspektiv är att nätverkstrafiken måste gå igenom MITM innan den når servern eller klienten. Olika tekniker används för att åstadkomma detta, men just i ett lokalt nätverk (där vanliga användare oftast befinner sig) kan illvilliga använ- dare använda sig av tekniker som exempelvis ARP poisoning och DNS spoofing. Kort om dessa tekniker:

• ARP (Address Resolution Protocol) är ett protokoll som översätter IP adresser till MAC adresser, och vice versa. I en MITM-attack innebär ARP poisoning således att lura and- ra enheter att en IP adress till en annan enhet översätts till MITM:s MAC adress. All kommunikation som skickas till enhetens IP adress skickas istället till MITM via MAC adressen.

• DNS (Domain Name System) är ett protokoll som översätter domännamn till IP adresser (t.ex. www.google.com). DNS spoofing innebär således att MITM lurar enheter som försöker att ansluta till en domän har en IP adress som motsvarar MITM:s IP adress. MITM kan göra detta eftersom all trafik i det lokala nätverket redan går igenom MITM med hjälp av ARP poisoning [55].

C.5.1

Åtgärder hos klienten

Ett sätt att förhindra MITM-attacker är att direkt motverka teknikerna som används i attac- kerna. Detta kan utföras genom att konfigurera statiska ARP-adresser i det lokala nätverket. Genom att konfigurera statiska ARP-adresser blir det omöjligt för MITM att lura enheter med ARP poisoning, och därmed kan inte DNS spoofing och följaktligen själva MITM-attacken ut- föras [56].

En annan metod som finns för att effektivt förhindra MITM-attacker är att använda sig av två-vägs autentisering som redan finns inbyggt i SSL/TLS. Denna teknik bygger på att, utöver servern som autentiserar sig mot klienten med ett giltigt certifikat utfärdat av en CA, måste klienten också autentisera sig mot servern med sitt egna giltiga certifikat. Om klienten eller servern inte lyckas autentisera sig kommer anslutningen aldrig att etablera sig, och därmed blir det omöjligt för MITM att utföra en framgångsrik attack [53].

Oavsett vilken teknik som väljs för att förhindra MITM-attacken ligger mycket av ansva- ret hos användaren som representerar klienten, eftersom att det är denne som har valet att acceptera ett ogiltigt certifikat eller inte. Ett certifikat som modifierats av en MITM räknas alltid som ogiltigt, och moderna webbläsare kommer alltid att varna användaren om ogiltiga certifikat. Om en användare är noga med att läsa igenom och säkerställa att ett certifikat är giltigt, samt neka ogiltiga certifikat, kan en MITM-attack aldrig utföras. MITM-attacker för- söker alltid att utnyttja dåliga vanor hos användarna, som att automatiskt acceptera ogiltiga certifikat av diverse anledningar, för att ta kontroll över SSL/TLS anslutningen [53, 54].

Notera att ibland kan även CA utfärda felaktiga certifikat till hemsidor, och i sådana fall blir det mycket svårt att upptäcka och förhindra MITM-attacker. Lösningen här kan vara att minska antalet CA som finns samt ge mindre makt åt CA som inte är helt pålitliga ännu att utfärda certifikat [54].

C.5.2

Skydda webbapplikationen mot MITM

Som resultat av att MITM-attacker kan utföras på användarnas lokala nätverk blir det svårt att helt kunna skydda den utvecklade produkten för detta projekt. Trots detta existerar det ett par metoder för att motverka användarnas naivitet om HTTPS och deras vilja att acceptera

Related documents