Ny busskortteknik i Västerbotten
[caption id="attachment_422" align="alignright" width="300"] "Nu införs ett nytt och säkrare betalsystem på våra bussar."[/caption]
Umeå kommun och andra kommuner i Västerbotten har i dagarna (sedan 11 mars 2013) ett nytt tekniskt system för busskort och betalningar inom kollektivtrafiken. Detta system lovar Länstrafiken i Västerbotten att det ska vara säkrare än det tidigare. I tisdags under vår vanliga öppet hus-kväll, 12 mars 2013, så spekulerade vi i hur säkert kortsystemet var. Här är vår rapport.
Umeå Hackerspace arrangerade 2012 sitt första cryptoparty, inför vilket det sammanfattades ett kort svar på frågan "vad är säkerhet?". Så om det nya kortsystemet är säkrare än det tidigare behöver vi läsa det i kontexten av vad säkerhet är. Bland annat ska resenären känna sig säker att kortets integritet är bevarad (förlorad data kan vara förlorad resa), samt att autenticiteten i systemet är pålitlig så att tredjepart inte kan manipulera busskortens innehåll.
Den lösning Länstrafiken i Västerbotten har försökt sig på med sitt nya kortsystem har så gott som till 100% baserats på förtroende till externa leverantörer. Från protokollet för resekortets kommunikation med bussens läsare, till hårdvara och mjukvara som används för att integrera allt till samma betalsystem. De tekniker som används i betalsystemet är i stor utsträckning baserade på slutenhet och hemlighet, en generellt sett dålig strategi för god säkerhet. Detta gör att inte ens beställaren själv har möjlighet att granska och korrigera funktionalitet och säkerhet, vilket skapar ett ohälsosamt - och dyrt - leverantörsberoende.
Strukturmässigt är det nya betalsystemet alltså mycket likt det tidigare. Lite eller ingen insyn, dåliga affärsförhållanden och tekniska lösningar som man saknar kontroll över. Så hur ser det ut på den tekniska fronten? Är funktionen säkrare idag än tidigare och kan resenärerna lita på integriteten och autenticiteten? Med ett par busskort tillhands så slog vi våra kloka huvuden ihop och började analysera den tekniska karaktären:
- Det används fortfarande kontaktlösa kort (publik utsändning av transaktioner).
- Plingkort är vad det verkar fortfarande av typen Mifare Classic eller mer sannolikt Mifare Plus. (det senare stöder AES-128bit istället för Crypto1)
- Plingkort är ej direkt sårbara för "dark side"-attacken med mfcuk. Troligen pga bättre slumpgenerator, samt kombinerat med mindre avslöjande paritetskontroll.
- Periodkort är ännu oanalyserade, men de är nog identiska med plingkorten.
- Enkelkort är Mifare Ultralight (verkar vara EV1?). Ingen krypteringsnyckel används i alla fall. Kortets lagringsyta för "OTP-bytes" (one-time-programmable bytes) nyttjas ej märkbart. Lockbytes för viktiga data-pages aktiveras ej vid resande.
- Det verkar inte finnas en central kontrollinstans för transaktioner, vilket gör att klonade kort kan användas (detta behöver i dagsläget verifieras).
Så. TL;DR?
- Plingkorten är en snäppet svårare nöt att knäcka än föregående generations. Viss konfidentialitet och autenticitet verkar finnas.
- Enkelkorten är läs- och skrivbara helt utan krypteringsnycklar, vilket gör tredjeparts-manipulering (autenticiteten) löjligt ickeexisterande.
- Avsaknaden av både kryptering och någon slags central auktoritet för transaktioner gör ett betalsystem mycket opålitligt - särskilt när de två egenskaperna kombineras.
- Vi rekommenderar att systemdesignern ser över okrypterade kort samt biljettens verifiering vid resande för resenärernas bästa.
Umeå Hackerspace är fortfarande intresserat av att hjälpa till att skapa ett pålitligt, integritetssäkert och Bra™ system för kollektivtrafiken i Västerbottens län. Så all säkerhetsrelaterad information vi klurar ut eller på annat sätt tar del av analyserar vi gärna för att fundera på hur man bäst motverkar.
Det är mycket viktigt att resenärerna kan ha förtroende i sin interaktion med betalsystemet utan risk för att ex. förlora resor eller riskera att identifieras/spåras som resultat av låg säkerhet.