Securing web clients utilizing OAuth 2.0

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Department

Mcode

SCI3084

Language

en

Pages

57

Series

Abstract

The OAuth 2.0 specification is widely used to authorize applications to use resources belonging to third parties and to enable single sign-on across multiple applications. While the technology is widely used, the lax nature of the specification leaves plenty of different options for developers looking to implement the specification, enabling different OAuth systems to have very different security characteristics. As third-party OAuth authorization servers are often utilized by developers that might have limited knowledge of the technology and might thus be unaware of the security implications of their choices, this thesis aims to present known vulnerabilities in OAuth systems, and demonstrates simple steps that should be taken to securely implement the specification. This thesis presents a number of vulnerabilities of varying severity that are common in real-world systems utilizing OAuth. These vulnerabilities are often caused by incorrect implementation of OAuth clients and authorization servers, but the lax nature of the specification allowing the creation of insecure applications if only the bare minimum of the specification is implemented is an equally common source for vulnerabilities. Through a practical client implementation utilizing third-party authorization servers, this thesis shows that a number of simple steps can be taken to mitigate many of the described vulnerabilities, often at a minimal development and performance cost and without a significant increase in complexity. It is however not always obvious if the most secure option is the optimal choice for a specific system, such as when deciding if and how to persist user sessions, as a more secure option might lead to a deterioration in user experience. To help developers adapt the OAuth specification to their specific application according to their security requirements, this thesis presents the impact of different design choices and shows why taking extra precautions is often worth the effort.

OAuth 2.0-specifikationen används ofta för att auktorisera applikationer att använda resurser som tillhör tredje parter och för att möjliggöra att användare autentiseras med samma konto i flera applikationer. Även om teknologin används i stor utsträckning ställer specifikationen få krav på utvecklare, vilket möjliggör många olika alternativ då teknologin implementeras. Denna brist på strikta krav gör det möjligt för varierande applikationer att utnyttja teknologin, men det leder också till att olika OAuth-system kan ha väldigt olika säkerhetsegenskaper. OAuth auktoriseringsservrar som upprätthålls av tredje parter utnyttjas ofta av utvecklare för autentisering, vilket leder till att utvecklare slipper implementera komplicerade inloggningssystem för att autentisera sina användare. Då utvecklare kan utnyttja OAuth servrar och implementera OAuth klienter utan djupare kunskap om teknologin är det lätt hänt att beslut om hur systemet ska implementeras tas utan att ta säkerhetskonsekvenserna i beaktande. Målet med denna avhandling är att presentera kända sårbarheter i OAuth-system och beskriva enkla steg som bör tas för att implementera specifikationen på ett säkert sätt. I denna avhandling presenteras ett antal sårbarheter av varierande allvarlighetsgrad som är vanliga i system som använder OAuth. Dessa sårbarheter orsakas ofta av felaktig implementering av OAuth-klienter och auktoriseringsservrar, men bristen på strikta krav i specifikationen som gör det möjligt att skapa osäkra applikationer utan att göra explicita fel är en lika vanlig källa till sårbarheter. Genom en praktisk implementation av en OAuth-klient som utnyttjar tredje parters auktoriseringsservrar visar denna avhandling att ett antal enkla steg kan tas för att minska många av de beskrivna sårbarheterna, ofta till en minimal kostnad och utan en betydande ökning av komplexitet. Det är dock inte alltid uppenbart om det säkraste alternativet är det optimala valet för ett visst system, exempelvis då man ska besluta om och hur användarsessioner ska bevaras, eftersom ett säkrare alternativ kan leda till en försämrad användarupplevelse. För att hjälpa utvecklare att anpassa OAuth-specifikationen till sin specifika applikation i enlighet med sina säkerhetskrav presenterar avhandlingen effekterna av olika beslut då OAuth-system implementeras och visar varför det ofta är värt besväret att vidta extra åtgärder för att göra system tillräckligt säkra.

Description

Supervisor

Ylä-Jääski, Antti

Thesis advisor

Lehtiranta, Karri

Other note

Citation