U2F I SHIBBOLETH Slutrapport - IFv2015-0063 Av: Stefan Wold INNEHÅLLSFÖRTECKNING 1 Inledning .................................................................................................................... 3 2 Mål och syfte .............................................................................................................. 3 3 Projektbeskrivning .................................................................................................. 4 4 Leverabler .................................................................................................................. 4 5 Resultat....................................................................................................................... 4 6 Utvärdering och analys ........................................................................................... 4 7 6.1 Utvärdering av resultat ................................................................................... 4 6.2 Förslag på förbättringar.................................................................................. 5 Framtida arbeten...................................................................................................... 5 2 1 INLEDNING De senaste åren har media skrivit ett flertal artiklar om inloggningsuppgifter och annan personlig information som kommit i orätta händer pga. bristande säkerhet i stora tjänster på Internet. Det allvarliga problemet med att just inloggningsuppgifterna sprids på internet är att användare av dessa tjänster ofta återanvänder sitt lösenord på mer än en tjänst. Detta innebär att användaren utsätts för en större attackvektor där förövaren kan komma åt andra tjänster som t ex e-post, dejtingsiter osv; oftast obemärkt. Det har gjorts många försök med att kräva olika svårighetsgrader på de lösenord som användaren tillåts sätta, ju mer komplexiteten i lösenorden ökar; desto större är risken att användaren väljer att återanvända lösenordet till ett flertal tjänster. Med teknik går detta givetvis att lösa på flera sätt, ett av dem är att tjänsten har stöd för tvåfaktor-autentisering. Den andra faktorn är oftast någon form av engångslösenord som genereras av antingen en hårdvarubaserad dosa likt det bankerna använder, en Yubikey1, eller helt enkelt mjukvara i mobiltelefonen t ex. Google Authenticator2. Förhoppningen är att hjälpa till med att ta fram en kostnadseffektiv lösning baserad på den senaste standarden inom multifaktor-autentisering, Universal 2nd Factor (U2F)3, speciellt riktat mot användare av Shibboleth4 (Single Sign-On); t ex Svenska lärosäten. 2 MÅL OCH SYFTE Målet med projektet är att utveckla en tilläggsapplikation för Shibboleth Identity Provider (IdP) 3.x som implementerar stöd för standarden U2F. Tilläggsapplikationen ska vara tillräckligt flexibel för att göra det så enkelt som möjligt för en organisation att implementera lösningen i sin befintliga infrastruktur och Shibboleth IdP. Det primära syftet är att ta fram en standardlösning som är kostnadseffektiv för organisationer med begränsade medel och många användare som t ex Svenska lärosäten och myndigheter. Det finns även ett internationellt intresse speciellt från lärosäten i USA som även de använder sig av Shibboleth och som idag ingår i stora federationer med miljontals användare i form av anställda och studenter. United ID5 kommer efter detta projekt ta över förvaltningen av tilläggsapplikationen. https://www.yubico.com/products/yubikey-hardware/ https://goo.gl/rp5EWY 3 https://www.yubico.com/about/background/fido/ 4 https://shibboleth.net/products/identity-provider.html 5 https://unitedid.org/ 1 2 3 3 PROJEKTBESKRIVNING Projektet ämnar utveckla en U2F tilläggsapplikation till Shibboleth Identity Provider 3.x som gör det möjligt att autentisera med både lösenord och U2F. Koden levereras som öppen källkod med licensen Apache License 2.06 Projektet är uppdelat i ett par faser. Fas 1: Utveckling av applikationen i form av en tidig ”proof-of-concept”. Fas 2: Slutlig implementation, paketering, testning och dokumentation. Fas 3: Referensinstallation av U2F tilläggsapplikationen i United ID, https://app.unitedid.org/ 4 LEVERABLER https://github.com/Ratler/shibboleth-mfa-u2f-auth https://wiki.shibboleth.net/confluence/display/IDP30/Contributions+and+Extensions 5 RESULTAT Tilläggsapplikationen shibboleth-mfa-u2f-auth är den första fungerande implementation av U2F i Shibboleth. Referensinstallationen i United ID kommer dröja till Augusti 2016 pga. ett större arbete än beräknat för att uppgradera Shibboleth från version 2.0 till 3.x. 6 UTVÄRDERING OCH ANALYS 6.1 UTVÄRDERING AV RESULTAT Projektet har levererat en första version av tilläggsapplikationen enligt plan. Driftsättning av tilläggsapplikationen var egentligen en avgränsning men valet gjordes att ta med det som fas 3 genom att implementera en referensinstallation i United ID. Tyvärr var det inte möjligt att hinna med det eftersom det krävdes ett digert arbete med att uppgradera Shibboleth för United ID som bygger på äldre komponenter som inte är kompatibla med den nyare Shibboleth 3.x. Arbetet med referensinstallationen kommer att fortsätta utanför ramen för detta projekt. Det tog även mer tid än beräknat att sätta sig in i Shibboleth 3.x, som är en total omskrivning av Shibboleth 2.x, eftersom det saknas dokumentation. Detta innebar att 6 http://www.apache.org/licenses/LICENSE-2.0 4 en stor del projekttiden gick åt att sätta sig in i kodbasen för Shibboleth 3.x istället för att helt kunna fokusera på utvecklingen av tilläggsapplikationen. U2F är fortfarande en ny standard vilket innebär att det idag finns begränsat stöd i de vanligaste webbläsarna. Den enda webbläsaren som kommer med stöd direkt för hårdvarubaserade U2F-tokens är Google Chrome. Firefox arbetar med att ta fram stöd för U2F, det finns däremot plugin för Firefox som fungerar med varierande kvalitet. Microsoft Internet Explorer/Edge har inget stöd alls, och de har heller inga planer7 på att implementera standarden. 6.2 FÖRSLAG PÅ FÖRBÄTTRINGAR Tilläggsapplikationen shibboleth-mfa-u2f-auth behöver vidareutvecklas för att ge stöd åt mer generella datakällor, t ex SQL, LDAP och dokumentbaserade databaser. Idag har den endast stöd för Yubico U2F Validation Server8. 7 FRAMTIDA ARBETEN Arbetet fortsätter under United ID som tar över förvaltningen av shibboleth-mfa-u2fauth. Planen är att till augusti 2016 leverera stöd för SQL och dokumentbaserade databaser som MongoDB. Samt att färdigställa referensinstallationen i United ID för att kunna visa upp hur U2F fungerar i Shibboleth. https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6830216-u2fsupport-2-factor 8 https://developers.yubico.com/u2fval/ 7 5