En uppdatering på det nya busskortsystemet i Umeå

Umeå kommuns lokala kollektivtrafik körs av det notoriskt lagbrytande övervakningsbolaget Nobina. Trafiken koordineras dock av kommun- och landstingsägda Länstrafiken i Västerbotten, kända för såväl sina exceptionellt osäkra betalsystem (numera uppgraderat) som att de öppet står fören olaglig upphandling, som direkt konsekvens av att de inte väljer att upphandla fri mjukvara (en lösning som hade varit öppen för konkurrens, billig och inte minst flexibel).

Så hur bra har det gått med uppgraderingen av systemet sedan den 11 mars, knappt en månad sedan, då betalsystemet i Umeås lokaltrafik byttes ut? Tekniken är mycket densamma, men de kontaktlösa kort som används numera fylls alltså med annan data än tidigare. Kortfattat bygger deras nya system på Resekortsföreningens standard (RKF-specifikationen), som är tänkt att täcka kollektivtrafik i hela Norden. Hur det ser ut på annat håll i landet med detta system rapporterade Dagens Nyheter om idag från Stockholm.

Först och främst äldre kort osäkra på grund av användandet av dålig slumpgenerator i Mifare-korten (numera heter de Mifare Classic). Problemet var främst att slumptalen var likadana varje gång man startade chipet, vilket gjorde att en matematisk kryptoanalys kan nyttja en okänd konstant istället för slumpmässighet. Denna sårbarhet minskade den nödvändiga "samplingsmängden" av kortkommunikation med en enorm faktor och innebar dessutom att den enda utrustning som behövdes var ens egen Mifare-läsare och det kort man önskade attackera (darkside-attacken genom mfcuk).

Vidare innebär detta att givet hur länge chippet varit igång (antal klock-ticks), med kunskap om algoritmen Crypto1 som publicerades 2008, kan man även förutsäga hur nya slumpsiffror kommer att se ut. Känner man då t.ex. till en nyckel som inhämtats med mfcuk ovan så kan man applicera "nested authentication"-attacken för att etablera en krypterad session, varpå man redan är halvvägs in och slipper gissningsleken.

De moderna korten är fortfarande "Mifare Classic"-kompatibla, som t.ex. "Mifare Plus" i kompatibilitetsläge. Sårbarheten med slumpgeneratorn är lagad, så det är inte lika snabbt och smidigt att återskapa nycklarna utan mer sofistikerade metoder. Eftersom krypteringen dock fortfarande görs med Crypto1 är algoritmen i sig fortfarande dålig, i kombination med en kort nyckel (48 bits). Denna kommunikation kan avlyssnas pålitligt inom 2 meter från källan och sedan knäckas inom rimlig tid med en vanlig persondator. RKF-specifikationen kräver specifikt dessa kryptologiska verktyg eftersom alla operatörer måste kunna tyda index-data i varandras kort.

Väldigt många kortoperatörer använder alltså samma krypteringsnycklar och protokoll över hela Norden. Det är dock inte riktigt så dumt som det låter, eftersom detta bara gäller ett korts "produktindex" - operatörerna har utöver detta egna sektorer på kortet med eget systemspecifikt data och krypteringsnycklar. Alltså kan inte t.ex. Västtrafik radera Västerbotten-data. Och exempelvis kan någon som knäckt Luleå lokaltrafiks resekort inte helt radera eller manipulera data från Umeå lokaltrafiks resekort.

Ovannämnda egenskaper har dock konsekvensen att säkerheten på korten inte uppfyller en säkerhet för resenärer att deras kortanvändning och -historik är konfidentiell. Dessutom hotas integriteten av datat på korten när krypteringsnycklarna för systemkritiska sektorer är identiska inom samtliga resesystem.

Kryptering är inte enkelt och det finns inga spontana, smidiga lösningar för hur heltäckande resekortsystem skulle kunna fungera utan att många behöver dela hemligheter med varandra. Ibland kan förstås symtomen lösas genom att avskaffa problemkällan - exempelvis införa nolltaxa eller helt enkelt bara inte använda kontaktlösa kort. Att lösa de kryptologiska bekymren som RKF-specifikationen innebär och som drabbar samtliga implementatörer kommer att diskuteras mer framöver på bloggen efter djupare analyser.