Slutrapport till IIS för projektet Kerberos OTP Contents 1 Inledning 1 2 Mål och syfte 1 3 Sammanfattning av utfallet 1 4 Projektbeskrivning 2 4.1 Korrigerad projektplan...................... 2 5 Leverabler 2 6 Resultat 2 6.1 5.2 Specikation av delprojekt/aktiviteter/leverabler..... 3 7 Utvärdering och analys 4 7.1 Utvärdering av resultat...................... 4 7.2 Förslag på förbättringar..................... 4 8 Framtida arbeten 4 1 Inledning 2 Mål och syfte Projektets mål har varit att göra det möjligt att använda ett OTP-token tillsammans med Heimdal eller MIT Kerberos och i mån av resurser andra implementationer av Kerberos. 1
Ett OTP-token är en bit hård- eller mjukvara som genererar ett unikt lösenord varje gång det används. Förkortningen OTP står för One Time Password. Sådana tokens är mycket intressanta eftersom dom ofta är mycket enklare och billigare än andra alternativ till klassiska lösenord inklusive s.k. smarta kort. Kerberos är en mycket spridd säkerhetsteknologi (främst eftersom Kerberos är en central del i Windows Active Directory). Målet med vårt projekt har alltså varit att göra det möjligt att använda ett billig och enkelt alternativ till lösenord i Kerberos. 3 Sammanfattning av utfallet Projektet har i stort lyckats med sina utsatta mål. Det nns en fungerande implementation av en IETF-standard för integration av OTP i Kerberos. Denna implementation har gjorts i MITs Kerberos och kommer med mycket stor sannolikhet att bli accepterad som ociell del av nästa version (1.11) av MIT Kerberos. Projektet har etablerat ett väl fungerande samarbete med bla MIT Kerberos Konsortiet samt med RedHat Inc. Projektet har inte nått riktigt så långt när det gäller paketering och dokumentation som vi hade hoppats. Till stor del beror det på att vi här är beroende av att vissa förändringar i MIT Kerberos skulle slå igenom i ociella releaser vilket av olika skäl (som vi dock inte har kontroll över) inte har hänt ännu. Vi tror dock att det är fullt realistiskt att börja genomföra mer praktiska tester av denna teknologi under 2012. Vi ser fram emot att hjälpa till med detta och hoppas att genom IIS synliggörande av vårt projekt kunna etablera kontakter och nna resurser för vidare arbete inom detta område. Projektet har haft två syften: 1. Implementera stöd (via en plugin-arkitektur) för generella OTP-nycklar i Kerberos baserat på FAST-standarden inom IETF 2. Genom att ta detta tillfälle att inviga en ny utvecklare som kan jobba med Heimdal gör vi det möjligt för sverige att behålla ett visst mått av inytande över detta mycket viktiga projekt. 2
4 Projektbeskrivning 4.1 Korrigerad projektplan Projeketet ska inledas 2011-02-01. Projeketet ska avslutas 2012-02-15. 5 Leverabler Leverans- Förväntat Planerat Nr förteckning resultat lev.datum Utfall 1 Alpha Patchar till Heimdal eller MIT 2011-08-01 2 Beta Publik beta 2011-11-01 3 Upstream Patchar accepterade 2012-01-31 4 Slutrapport 2012-02-15 6 Resultat En plugin till MIT Kerberos har utvecklats och testats och väntar på att infogas som ociellt bidrag till MIT Kerberos. Vårt projekt har gett upphov till en hel del aktivitet inom MIT Kerberos och ett stort antal förändringar (bla våra bidrag) väntas bli del av nästa version (1.11). Projektet har presenterats på en konferens, 2011 Kerberos Conference Interop Event på MIT i Boston, MA. Denna konferens utgör den huvudsakliga mötesplatsen för utvecklare av Kerberos. En tidig version av ramverket FAST (som krävs för OTP-stöd i Kerberos) har under projektets gång tagits fram av utvecklare på Apple för Heimdal men detta blev tyvärr inte klart i tid varför vårt projekt bara har kunnat implementera OTP-stöd för MIT Kerberos. 6.1 5.2 Specikation av delprojekt/aktiviteter/leverabler En användare (principal) ska kunna associeras i KDC:n med en OTP-nyckel och därefter ska alla inloggningar kräva OTP-inloggning. En användare som i kdc:n är associerad med en OTP-nyckel ska kunna göra kinit user@realm på kommandorad och efter lyckad användning av OTP-nyckeln ska det ha skapats en tgt. 3
En administratör ska i förekommande fall kunna återställa en OTPnyckel i KDC:n. NOT: Det är ofta lämpligare att utföra återställning i externt OTPsystem (OTP backend). Utvecklare ska kunna lägga till stöd för nya OTP-nycklar utan att behöva ändra i MIT/Heimdal. Detta delmål ck utgå pga tidsbrist. NOT: Pluginramverket i MIT Kerberos 1.10 tillåter inte komplett outof-tree build (ASN.1 encoding/decoding är inte utbrutet). Detta kommer att åtgärdas i MIT 1.11. En administratör ska kunna lägga till stöd för en ny OTP-nyckel utan att behöva kompilera om MIT/Heimdal. Detta delmål ck utgå pga tidsbrist. NOT: Se förra punkten. En användare vars OTP-nyckel har kommit ur synk ska i normala fall inte behöva byta ut sin OTP-nyckel. Om OTP-nyckeln kräver en PIN-kod så bör ändring av PIN-kod vara integrerat i användargränssnitten (tex kinit). Detta delmål ck utgå pga tidsbrist. Utvecklare av plugins för OTP-nycklar bör ha tillgång till en enkel referensimplementation (dummy-plugin) som visar användningen av abi:et. 7 Utvärdering och analys 7.1 Utvärdering av resultat En stor del av insatsen har varit instudering av ett antal komplicerade protokoll och en omfattande kodbas. Kompetensspridningen har varit mycket framgångsrik. En stor mängd kontaktvägar har etablerats. Samarbetet med RedHat förenklade vissa delar och gjorde andra delar mer komplicerade. Den öppna kommunikationen på mejlinglistor och öppna källkodsarkiv gav era nya kontakter och möjligheter. 4
7.2 Förslag på förbättringar Vi kunde ha lagt mer fokus på paketering och dokumentation, något som nu i viss mån ck stryka på foten till förmån för fokus på utveckling och kontaktbyggande. 8 Framtida arbeten Ett antal moment återstår innan det är möjligt att börja testa OTP för Kerberos i mer praktiska situationier. 1. Portering till ny ASN.1-struktur i MIT Kerberos 1.11 och komplettering av de datastrukturer som ännu ej är implementerade. 2. Implementering av stöd för ändring av PIN. 3. Implementering av en native OTP-metod direkt i KDC. 4. Portering till Heimdal. 5. Användardokumentation. 5