Säkerhet och integritet i närfältskommunikation

Thesis no: BCS-2014-09
Säkerhet och integritet i
Närfältskommunikation
Oskar Jilkén
Faculty of Computing
Blekinge Institute of Technology
SE–371 79 Karlskrona, Sweden
This thesis is submitted to the Department of Computer Science & Engineering at Blekinge
Institute of Technology in partial fulfillment of the requirements for the degree of Bachelor of
Science in Computer Science. The thesis is equivalent to 10 weeks of full-time studies.
Contact Information:
Author(s):
Oskar Jilkén
E-mail: [email protected]
University advisor:
Prof. Bengt Carlsson
Dept. Computer Science & Engineering
Faculty of Computing
Blekinge Institute of Technology
SE–371 79 Karlskrona, Sweden
Internet
Phone
Fax
: www.bth.se
: +46 455 38 50 00
: +46 455 38 50 57
Abstract
Context. In today’s society we use smart cards in many areas, NFC is a smart card
technology that allows contactless interaction between a reader and the tag, the tag is
often in the form of a card. NFC can be used for various payment methods or as access
card to a building which makes life easier. In previous studies, the technique has proven
to be weak to attacks using an NFC reader connected to a computer. Among today’s
smartphones, there are phones that have built-in read and write support for NFC tags.
Objectives. In this study, I examine the NFC tags that are frequently used in our society, entry cards and debit cards to determine the security against the increasing use of
smartphones as a potential attack tool. If there is a threat I will try to remedy the found
lack.
Methods. My approach was to select a number of test items and analyze the objects
using only a smartphone with NFC support to determine the risk for each of the items.
The test conducted was the modification, cloning and unique copy.
Results. Through this investigation, I concluded that four of the non-empty items was
at risk of being intimidated. All four are used in public transport and the objects were
vulnerable to unique copy.
Conclusions. In order to remedy this vulnerability should be the management of the
tag’s data is handled in a different way, perhaps by storing the data in a internal system
or to replace the tags for a safer tag alternative.
Keywords: NFC, Mifare, smartcard, security.
Sammanfattning
Kontext. I dagens samhälle används smartcards i många områden, NFC som är en
smartcard teknik som tillåter kontaktlös interaktion mellan en läsare och taggen, taggen är ofta i form av ett kort. NFC kan användas till olika betalnings metoder eller
som inpasseringskort vilket gör vardagen enklare. I tidigare studier har tekniken visat
sig svag för attacker med hjälp av en NFC-läsare kopplad till en dator. Bland dagens
smartphones finns det telefoner som har inbyggt läs- och skriv-stöd till NFC taggar.
Objektiv. I den här studien ska jag undersöka de NFC taggar som används flitigast i
vårt samhälle, inpasseringskort och betalkort för att fastställa säkerheten mot den ökade
användningen av smartphones som ett potentiellt attackverktyg, om det finns en hotbild
ska jag försöka avhjälpa den funna bristen.
Metoder. Mitt tillväga gångsätt var att välja ut ett antal testobjekt och analysera de objekten med hjälp av endast en smartphone med NFC-stöd som verktyg. För att fastställa
risken för vart och ett av objekten, de test som utfördes var modifiering, kloning och
unik kopiering.
Resultat. Genom denna undersökning kom jag fram till att fyra av de icke tomma objekten löper risk att bli utsatta för hot alla fyra används i kollektivtrafiken och objekten
var sårbara för unik kopiering.
Slutsats. För att avhjälpa denna sårbarhet bör hanteringen av taggens data hanteras på
ett annat vis, kanske genom att lagra data i ett inre system eller att byta ut taggarna till
ett säkrare alternativ.
Innehåll
1
2
3
Inledning
1.1 Bakgrund . . . . . . . . . . . . . . .
1.2 Syfte, problemformulering och metod
1.3 Avgränsning . . . . . . . . . . . . . .
1.4 Relaterade arbeten . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
Introduktion till Närfältskommunikation
2.1 Teknisk bakgrund . . . . . . . . . . .
2.2 Tillämpningsområden . . . . . . . . .
2.3 Angrepp . . . . . . . . . . . . . . . .
2.4 Säkerhet . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
7
7
10
Experiment
3.1 Testmiljö och verktyg . . . . . . . . . .
3.2 Analys Blekinge tekniska högskolas kort
3.3 Analys Kalmar länstrafiks kort . . . . .
3.4 Analys Stockholms länstrafiks kort . . .
3.5 Analys Blekingetrafikens kort . . . . .
3.6 Analys Skånetrafikens kort . . . . . . .
3.7 Analys Norges statsbaners kort . . . . .
3.8 Analys Färjestaden biltvättskort . . . .
3.9 Resultat . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
13
14
16
16
17
17
18
19
4
Diskussion
19
5
Slutsats och förslag på fortsatta arbeten
21
6
Appendix
6.1 Förkortningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 NFC kontra RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
22
22
23
7
Referenser
24
1
1.1
Inledning
Bakgrund
Detta arbete kommer att handla om Närfältskommunikation (NFC).
NFCs många användningsområden och tillämpningar, även vilka hot som kan förekomma
och vilka säkerhetslösningar som används idag.
För att eventuellt kunna förbättra säkerhetssystem och täta säkerhetshål måste risker
identifieras. Detta görs enklast genom att attackera systemet ur en angripares synvinkel
för att kunna förutsätta och förstå systemets svagheter. Detta examensarbete kommer
undersöka hur långt ett angrepp är möjligt att genomföra med endast en smartphone
tillhands. Ett attackverktyg i form av en smartphone som idag innehas av flera hundra
miljoner personer.
1.2
Syfte, problemformulering och metod
Syftet med arbetet är att undersöka den risk som finns i dagens smartphone samhälle,
samt vilken fara denna risk kan utgöra mot radiofrekvens identifiering (RFID)/NFC baserade taggar som bland annat används i inpasseringssystem och transportkort. Resultatet av undersökningen ger en bättre förståelse på vad som kan komma att behöva justeras
rörande säkerhetsåtgärder för att uppnå en bra säkerhetsnivå för just det tillämpningssystemet.
De frågor jag önskar få svar på är, hur ser den teknik ut som finns bakom NFC? Vilka
brister finns det i de tillämpningar som NFC används idag? Hur skulle man kunna avhjälpa dessa brister?
Arbete är uppdelat i två delar. Del 1 är en teoretisk del, som är baserad på fakta, litteratur
och andras studier inom ämnet. Del 2 är en praktisk del där tester utförs mot NFC taggar
av typen Mifare classic. Testerna består i en analysdel av taggens innehåll, den andra
testfasen är till för att se vad som är möjligt att åstadkomma för skada med hjälp av
en eventuell smartphone. Dessa tester görs för att analysera hotbilden och fastställa angriparens kompetenskrav, utrustning, och en uppskattad kostnad för att utföra angreppet.
Alla Testobjekt är av tagg typen Mifare classic med både läs- och skrivrättigheter till
minnet. Testobjekt 1 är ett student inpasseringskort till Blekinges tekniska högskola
(BTH), testobjekt 2 är ett personalinpasseringskort till BTH, testobjekt 3 är ett resekort
från Kalmars länstrafik (KLT), testobjekt 4 är ett resekort från Stockholms länstrafik
(SL), testobjekt 5 är ett resekort från Blekinges länstrafik (BLT), testobjekt 6 är ett
resekort från Skånes länstrafik, testobjekt 7 är ett resekort från Norges statsbaner (NSB)
och testobjekt 8 är ett betalkort till Färjestadens tvätthall.
1.3
Avgränsning
Den praktiska delen innefattar test som genomförts med endast en smartphone som
verktyg. Detta utesluter mer avancerad testning av taggarna, som till exempel att knäcka
de eventuella kryptolösningar som kan finnas, som vore möjligt med en NFC läsare
kopplad till en dator. Datorn som är ett starkare attackverktyg. Testerna som utförs är
endast riktade mot passiva NFC-smartcardet, det vill säga avgränsat och angrepp mot
läsare och aktiva NFC-smartcards är uteslutet och kommer ej att testas i detta arbete.
1
1.4
Relaterade arbeten
Några som redan knäckt krypteringen på det vanligaste kortet Mifare, som finns i 500
miljoner upplagor runt om i världen, är teamet bakom det offensiva säkerhetsprogrammet
“Backtrack”. Där visar de hur lätt det är att knäcka de krypterade nycklarna med hjälp av
en 500 kr RFID/NFC läsare samt Linux distributionen backtrack och därmed få tillgång
att modifiera taggen.(Backtrack 2012)[12].
Collin Mulliner, 2011 påvisar att det är enkelt att hacka NFC och NDEF (NFC Data Exchange Format (dataöverföringsformat) med hjälp av en vanlig mobiltelefon med
NFC möjligheter. Hans tester gjordes genom att skapa en tagg som är destruktiv mot
den enhet som läser av taggen exempelvis kraschar ett mobilsystem eller tar över den
mobila enheten. Detta gör han genom att programmera taggar med hjälp av en NFC
läsare/skrivare kopplad till en dator[4].
Jovan Golić 2013 beskriver i NFCs protokoll och testar olika scenarion av råstyrka attacker (eng. brute-force attack) och förbättringar av dessa attacker som kan komma i
framtiden. Han testar både attacker mot taggar och läsare. Hans test går ut på att knäcka
NFC nycklarna i en tagg, till sin hjälp har han en eller flera datorer för att snabba upp
processen. Hans slutsats blir att NFC Mifare har en låg säkerhet vilket gör att en stor
risk för att bli hackad föreligger[5].
Karsten Nohl och Henryk Plötz publicerade 2008 en rapport om vilka brister Mifarechippet har och hur det går att knäcka. Efter att ett kort är knäckt är det fullt möjligt att
göra kloner enligt deras studie. De båda säger att det är förvånande att ett så vida spritt
NCF-chipp här sådana säkerhetsbrister. Mifare-chippet används i till exempel betalkort
som Oyster Card i Storbritannien och Charliecard i Boston[9].
2
2
Introduktion till Närfältskommunikation
Närfältskommunikation är en relativt ny chippteknik som kommer från en gammal uppfinning, smartcardet. NFC tekniken tillämpas idag på många olika områden för att underlätta vardagen för miljoner människor världen över. Några av dessa områden är betalning, biljett och dataöverföring mellan olika sorters apparater. De flesta av de enheter
som kan läsa informationen är stationära, men det finns även andra typer till exempel en
smartphone som kan läsa NFC-taggar.
Alla dessa NFC produkter utgör idag en stor marknad. En stor NFC produkt är NFCtaggen denna tagg används i biljett och passersystem. Antagligen kommer även fler
användningsområden dyka upp i framtiden.
NFC tekniken är utvecklat från RFID, NFC behåller några egenskaper från RFID som
driftfrekvens, för fler skillnader se bilden i Appendix under 6.2. NFC utvecklades av
Sony och Philips där de applicerade deras smartcard protokoll i NFC-teknologin. 2003
blev protokollen standardiserade och NFC fick ett nytt uppsving med hjälp av Nokia,
2006 fanns en formell beskrivning av NFC teknikens arkitektur[21].
Andra sorters identifierare är vanliga streckkoder så kallad elektronisk produkt kod
(EPC) och tvådimensionella streckkod eller snabb svarskod (QR), som kan användas
i olika tagg-system och de kan kombineras med NFC system.
Information som finns lagrad i NFC är exempelvis hemsidors URL, små meddelanden
i form av SMS eller telefonnummer, de kan också innehålla personlig data typ inloggnings uppgifter. En del taggar kan vara skrivskyddade medan andra är det möjligt att
skicka och skriva data till.
Smartcard
NFC är en utvecklad form av smartcard. Smartcard uppfanns redan på 1970-talet, men
den första riktiga massproduceringen av smartcards blev cirka 10 år senare då telefonkortet lanserades. Senare utvecklades tekniken ytterligare då mikrochippet blev integrerat med smartcards. Fram till slutet av 1990-talet var det svårt att köra fler än en
applikation på varje smartcard chipp men i början av 2000-talet utvecklades ett nytt operativsystem. Det nya operativsystemet möjliggjorde att fler applikationer kunde köras på
samma smartcard chipp. Detta öppnade upp för en helt ny rad av användningsområden
för mikrochipp och smartcard industrin fick ett uppsving. På senare tid har operativsystemet gått vidare till en Java baserad kod[10] som möjliggör flera olika sorters enheter
kan få anpassad programvara för att använda smartcards. Nyare smarttelefoner har ett
smartcard inbyggt, som har möjligheten att läsa och skriva till NFC taggar. Detta innebär att det öppnar sig många nya möjligheter på NFC marknaden, men medför även
svagheter[3] svagheter som ökad risk när det gäller säkerhet till exempel (att bli hackad).
De smartcards som finns och används idag är många på grund av de framsteg tekniken
gjorde. Områdena förutom NFC är SIM-kortet som sitter i alla mobiltelefoner, chippet
i kreditkort och mikroprocessorer i datorer, gps och mobil utrustning. Smartcards delas
in i tre kategorier kontaktkort, kontaktlösa kort och multikomponent kort [22].
3
Figur 1: Smartcards kategorier.
Mifare classic
2006 producerade NXP Semiconductors sin egen NFC produkt, ett kort som kom att
heta Mifare classic. Mifare classic följer standarden ISO 14443 A, NXP utvecklade sin
egen säkerhetslösning till kortet som de kallade crypto1.
Mifare classic kom att bli ett av de populäraste NFC korten i världen med flera miljarder sålda kort. Detta på grund av att det är en billig och lätthanterlig produkt som kan
användas i många områden: som resekort i kollektivtrafiken, i elektroniska vägtullar,
bonuskort och som bilparkerings kort [23].
2.1
Teknisk bakgrund
NFC är ett kommunikationsalternativ som använder sig av radiovågor. Kommunikationen kan endast förekomma på ett litet avstånd som teoretiskt är 0-10 cm men som i
praktiken endast är 0-4 cm. NFC har fyra olika standardtyper. Kommunikationen är kontaktlös och kan därmed användas med fördel i exempelvis passeringskort, transportkort
(buss/tåg), kreditkort och varuidentifiering jämfört med andra lösningar som är fysisk eller optisk. NFC-taggen är även läsbar genom några material så som tunnare klädesplagg.
I ett NFC-system går oftast kommunikationen mellan två enheter kallade mästare (eng.
master) och slav (eng. slave). Mästaren är läsare och den enhet som startar kommunikationen. Mästaren är ofta kopplad till inre system så som en server med en databas som
behandlar de taggar som läses. Slaven är oftast en passiv NFC-tagg, Slaven svarar på
mästarens anrop och skickar sina nycklar för att identifiera sig innan kommunikation
påbörjas. Detta gör att NFC hamnar under kategorin “point-to-point” nätverk.
4
Figur 2: Illustration: NFC kommunikation.
Passiva taggar har ingen egen strömförsörjning istället får de ström av de elektriska
magnetfält som bildas av mästaren. Det elektriska magnetfältet bildar en spänning till
slavens antenn som är en kopparspole och som försörjer mikrochippet med ström. På så
vis behöver inte denna typ av tagg bära med sig en egen strömkälla som ex ett batteri.
Vilket ger flera fördelar till exempel de kan göras mycket små.
Aktiva taggar, till skillnad mot den passiva taggen, så har aktiva taggar en egen strömkälla.
Dessa taggar ökar i storlek eftersom de innehåller en strömkälla men fördelen blir att
räckvidden ökar över de annars vanliga tio centermetarna.
Både tagg och chipp har nämnts i texten för att specificera vad som är vilket för den
passiva taggen så “Taggen” är systemets inkapsling medan “chippet” är systemet som
innehåller data. Kopparringen runt chippet är dess antenn som fångar och sänder radiovågor. Radiovågorna både driver chippet i passiva enheter och är bärare av information.
Figur 3: Passiv genomskinlig tagg med sina olika beståndsdelar.
5
NFC-Standarder
Internationella standardiseringsorganisationen (ISO), Internationella elektrotekniska kommissionen (IEC).
Figur 4: Fyra standardiserade NFC typer.
Källa [11, 13].
Minnesstruktur
Mifare classic har två varianter av minneskapacitet, tusen bitar och fyratusen bitar dessa
två varianter fungera principiellt på samma sätt. Minnet är av typen EEPROM, vilket
betyder att minnet går att modifiera. Minnet består av sektorer varje sektor består av
block som i sin tur har 16 bytes. Skillnaden på Mifare classic 1K och 4K är den totala
minneskapaciteten. För 1K chippet finns det 16 sektorer med 4 block i varje sektor,
vilket ger en kapacitet på 1024bytes medan 4K har 40 sektorer. De 32 första har 4
block var och de 8 sista sektorerna har 16 block, vilket ger ett totalt minnesutrymme på
4096bytes.
Figur 5: Mifare Classic 1K minnesstruktur.
6
De block som finns i varje chipp är sektorblock, datablock och tillverkarblock, vilka
håller olika information. Det finns ett tillverkarblock på varje chipp, detta block finns
på sektor 0, block 0. Block 0 är förprogrammerat av chipptillverkaren och är därför låst.
Innehållet består av tillverkningsdatum, ett unikt ID (UID) och en kontrollbit. Eftersom
denna del är låst kan den inte ID ändras. Sektorblocken innehåller två nycklar en A och
en nyckel B nyckel, dessa används vid läsning och skrivning till den valda sektorn. Båda
nycklarna har defaultvärde vid leverans. Sektorblocket har även åtkomstvillkor för just
den sektorn, det vill säga för att få läsa eller skriva till den sektorn måste man ange
A- och eventuellt även B-nyckeln. Åtkomstvillkoret berättar vilka operationer som är
möjliga att utföra i datablocken tillhörande den sektorn. Sektorblocket har även ett extra
byte som kan användas som kontrollbyte. Datablocken innehåller data som antingen kan
vara läsbar, skrivbar eller båda delarna beroende på åtkomstvillkoret [20].
Figur 6: Sektor blockets byte struktur
2.2
Tillämpningsområden
Det finns flera tillämpningsområden för NFC eftersom det finns både billiga, dyra, simpla, och komplexa taggar med olika starka signalstyrkor. Vilket gör NFC-system anpassningsbart för flera olika områden.
Inpasseringssystem handlar om att få tillgång till ett eller flera skyddade områden genom en specifik dörr som kräver NFC-identifiering. Identifieringen kan ses som en automatiserad pinkod. Det finns flera sorters system som bör räknas till denna kategori, ex
transportkort som används för betalning av resor för kommunala medel, även bilnycklar
som är elektroniska kan räknas in här.
Betalning. Båda kreditkortsjättarna Mastercard[18] och Visa[17] erbjuder möjligheten
att betala genom RFID/NFC. Genom att endast hålla kreditkortet framför en läsare genomförs köpet. Ett annat NFC betalningsalternativ som är tillgängligt är Google wallet[19]
en mobilapplikation som genomför betalning med en smartphone med NFC-stöd.
2.3
Angrepp
Om vi bortser från den mest vanliga formen av angrepp nämligen den fysiska stölden,
så kan angrepp mot NFC-system delas in i två delar. Den första delen är riktat mot
taggen och då innebär det oftast att få ut informationen som är lagrad. Den andra sortens angrepp är riktat mot läsaren. Vid en attack mot läsare är syftet ofta att störa eller
förhindra systemets funktion. De två angreppen kan givetvis kombineras. Olika sorters
attacker kan grupperas och delas in i underkategorier se bilden nedan.
7
Figur 7: En överblick över uppdelningen av angrepp
A Konfidentialitet
A.1 Avlyssning
Avlyssning är en vanlig typ av angrep som innebär att en obehörig part “tjuvlyssnar” på
kommunikationen exempelvis i ett nätverk och kan komma att spela in konversationen
för att använda den i ett senare angrep. Är kommunikationen krypterad så försvårar det
utnyttjandet av den information som fångas vid avlyssningstillfället.
A.1.1 Man-in-the-middle-attack (MIMA) är ett säkerhetsscenario där en tvåpartskommunikation
fångas upp av en tredje part. Den tredje parten fungerar som ett filter och har möjligheten
att ta del av och ändra informationen som skickas mellan de två andra parterna, för att
uppnå sina mål. Detta sker givetvis utan att de två ursprungliga parterna vet att det finns
en tredje part mellan dem.
A.2 Skimning
Skimning är ett känt begrepp när det talas om kreditkortskapning eller när en NFCkort/tagg avläses utan ägarens medgivande. Angripare läser av kortet med en egen
avläsare, exempelvis en smartphone, för att få reda på informationen som finns på NFCkortet/taggen. Avlyssning kan liknas med skimning då de båda strävar efter att utvinna
informationen på den passiva taggen.
Den utvunna informationen kan användas för att skapa en klon av originalet eller för att
manipulera informationen, detta innebär att informationen på taggen/kortet ändras eller
raderas. Målet för angriparen i manipulationsfallet kan vara att göra taggen obrukbar
eller fungera på annat sätt, är taggen/kortet ett betalmedel kan det manipuleras till att
summan på taggen ökar eller minskar.
B Integritet
B.3 Spoofing
Spoofing handlar om att luras antingen genom, att en icke legitim läsare placeras så den
används av vanliga användare för att utvinna informationen ur deras taggar (skimning),
8
eller tvärtom, att en klon eller oäkta tagg används för att lura läsaren.
För att genomföra ett spoofingattack så kräver det att den som utför attacken redan vet
hur systemet fungerar normalt, detta kan attackeraren finna ut genom till exempel att
först utföra en avlyssning mot det valda systemet.
B.3.1 Replay är en typ av angrepp som först behöver en avlyssning från en tidigare
kommunikation mellan läsare och tagg för att fungera. Genom att spela upp inspelningen för läsaren vid attacken lurar man läsaren att tro att uppspelningsenheten är den
legitima taggen.
B.3.2 Relay är en blandning av MIMA och replay angrepp, en relay attack fångar kommunikationen och sänder den vidare för att spela upp den infångade kommunikationen
och få det mottagande mediet att tro att det är den legitima sändaren som utför kommunikationen.
Figur 8: Relay attack
B.3.3 Kloning är när man skapar flera exakta kopior av originalet detta är vanligt förekommande
i den digitala världen både för legitima syften och de icke legitima sådana.
C Tillgänglighet
C.4 Denial of service
Detta innebär att angriparen stör ut systemets servrar genom att skicka stora mängder
skräpdata så att servern inte hinner svara på all inkommande trafik, detta förhindrar att
systemet fungerar korrekt eller får systemet att krascha. För en angripare kan en systemkrasch vara ett sätt att komma in på det avgränsade området.
Scenario: ett inpasseringssystem som har kraschat kommer att ersättas av manuella kontrollanter eller så släpps alla in utan kontroll, då kan angriparen gömma sig i mängden
och komma in.
C.5 Skadlig kod
I datorsystem är virusskydd ofta en självklarhet, men i NFC-sammanhang är det inte
lika självklart. Skadlig kod kan appliceras på en skrivbar NFC-tagg antingen genom
att modifiera en tagg eller genom att skapa en egen. När denna tagg blir avläst blir
systemet smittat, det vill säga läsaren läser och systemet exekverar koden från kortet.
Den skadliga koden kan till exempel utföra felaktiga kommandon för att skada systemet
eller gå ut på internet för att exempelvis ladda ner en bakdörr för ge angriparen tillgång
till det bakomliggande system.
9
2.4
Säkerhet
Att upprätta en säker kommunikationskanal mellan två NFC enheter är antagligen det
bästa sättet att skydda sig mot avlyssning och alla typer av modifieringsattacker. På
grund av det redan inbyggda skyddet mot MIMA se (MIMA under 2.3 Appendix) i NFC
passiva taggar då det handlar om så korta avstånd är en MIMA opraktisk att genomföra.
Det är ganska enkelt och okomplicerat att installera en säker kanal för kommunikation. Detta kan ske genom Diffie-Hellmanns nyckelutbyte (se Diffie-Hellman 6.3 under
Appendix) vilket är ett asymmetriskt krypto, som till exempel RSA[1] eller elliptiska
kurvor. Genom att använda en sådan tillämpning så kan en delad hemlig kommunikation mellan två enheter fastställas.
Med hjälp av Diffie-Hellmann kan man härleda en symmetrisk nyckel som trippel-DES
(Data Encryption Standard) eller AES (Advanced Encryption Standard) som ger sekretess, integritet och autenticitets skydd vid dataöverföring[2].
Det mest använda kortet i världen, och så antagligen även i Sverige, är Mifare classic.
Mifare classic använder crypto1 som säkerhetslösning. Crypto1 är ett symmetriskt 48bit nyckel chiffer. Kryptoanalys av crypto1 har visat att säkerheten har stora brister[7,
8]. Mifare taggen har flera underkategorier, dessa kategorier är indelade efter säkerhet,
så kallad SAK “Select Acknowledge” (välj kvittens). SAK används för att bestämma
vilket protokoll som ska användas vid kommunikation mellan taggen och läsaren, detta
protokoll väljer säkerhetsnivån. Före kommunikation börjar avläsningsenheten att be
den passiva taggen efter nyckel A, nyckeln berättar för terminalen om taggen har support
för antikollision. Därefter ber terminalen om taggens UID och SAK, för att välja vilket
protokoll som ska användas vid kommunikationen.[15, 16]
Figur 9: Läsare fastställer vilket kommunikationsprotokoll som ska användas under
kommunikation sessionen.
SAK har sju underkategorier (Mini, Classic 1K, Classic 4K, UL, ULC, Plus 1K och
Plus 4K). De har en säkerhetsnivå som sträcker sig från 1 - 3 där 3 är den högsta. De
kategorier som har beteckningen “-” har extremt låg eller ingen säkerhet (se figur 10).
10
Figur 10: SAK-Beteckning med säkerhetsnivåer.
3
Experiment
Den praktiska delen har jag gjort för att testa modifiering, kloning och unik kopiering
som rör (avsnitt Konfidentialitet och Integritet 2.3 under Angrepp) på utvalda passiva NFC-smartcards. De tester som ska utföras görs med det valda verktyget. Efter genomförda tester presenteras resultatet och de framkomna svagheterna. I diskussion kommer jag ta upp förslag till vad som kan göras i åtgärd.
De införskaffade korten laddas i forskningssyfte med en bestämd summa sedan utförs
testerna modifiering, kloning och unik kopiering här nedan förklaras tester närmare. De
testobjekt jag valt tillhör användningsområdena resekort, betalkort och passerkort.
3.1
Testmiljö och verktyg
Mitt valda verktyg att jobba med är min egen smartphone Samsung Galaxy S3. Verktygets programvara är en applikation som jag laddat ner gratis från “Google Play”.
Figur 11: Till vänster verktyg i analys och tester Samsung Galaxy S3. Mitten appens
“Mifare Classic tool” logga, och till höger menyn för gratisappen hämtad från Google
Play
11
Mifare Classic Tool är som nämnt en app som är nedladdningsbar utan kostnad. Den
gör det möjligt att läsa, skriva och formatera NFC-taggar. Appen ger även en möjlighet
att spara lästa taggar till fil, för senare bruk. Mifare Classic Tool ger användaren möjlighet
att testa egna A- och B-nycklar mot taggar där nycklarna är okända och användaren vill
prova sig fram. Det finns även möjligheten att lägga till filer med många nycklar i för att
låta appen köra en viss nyckel fil mot en vald tagg, detta kan jämföras med en ordboksattack (eng. dictionary attack). Appen kommer med två förinstallerade nyckelfiler med
de vanligaste kända nycklarna[14].
Testobjekt 1 och testobjekt 2 är taggar från Blekinge tekniska högskola ett studentoch personalpasserkort.
Testobjekt 3 är taggen ett kort från Kalmars länstrafik “KLT”.
Testobjekt 4 är taggen ett kort från Stockholms länstrafik “SL”.
Testobjekt 5 är taggen ett kort från Blekinges länstrafik.
Testobjekt 6 är taggen ett kort från Skånes länstrafik “JOJO”.
Testobjekt 7 är taggen ett kort från Norges statsbaner “NSB”.
Testobjekt 8 är taggen ett betalkort för Färjestaden biltvätt .
Testet ska ge svar på frågan:
• Finns det några säkerhetsbrister?
Samt diskutera:
• Hur kan säkerheten förbättras?
Utförda tester
På samtliga kort har följande test gjorts. Här förklaras testerna med hjälp av bilder.
Modifiering (ändra på befintligt kort)
Figur 12: Illustration av modifiering.
12
Kloning (ett kort blir till många kort)
Figur 13: Illustration av kloning.
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
Figur 14: Illustration av unik kopiering.
3.2
Analys Blekinge tekniska högskolas kort
Analys av studentkortet visar att det är av tagg typen 2 (Mifare classic 1K) se (figur
4 under 2.1 NFC-Standarder) och med SAK-beteckning “08”, låg-säkerhet eller ingen
alls. Avläsningen visar de 16 sektorerna dessa är helt tomma. Det kan bero på att skolan
hanterar kortens UID i en databas som håller behörigheterna istället för att korten i sig
ska hålla data. Om så här är fallet så utesluter det all modifiering av kortet.
Analysen av personalkortet gav en annan karaktär. Taggen är av typen 4 (figur 4 under 2.1 NFC-Standarder) (Mifare Classic 4K Plus) med SAK-beteckning “18” vilket
innebär en medium säkerhet. Kortet har 40 sektorer och de sektorer som har data är helt
dolda för avläsning samtidigt som de tomma sektorerna går att se.
Test Blekinge tekniska högskola kort
Modifiering (ändra på befintligt kort)
Slutsats även om kortet var läsligt skulle en behörighetshöjning som jag hade tänkt som
test(ta personalkortet och lägga in det på studentkortet), vara omöjlig då studentkortet
endast har 1 kB lagringskapacitet jämfört med personalkortets 4 kB. Och eftersom de
sektionerna i personalkortet med intressant data är oläsliga så slutar det andra testet
också. Detta kort går säkert för mobila modifieringar (för stunden).
Kloning (ett kort blir till många kort)
Kloning av studentkortet fungerar bra, men varför ska man klona ett tomt kort? Då jag
13
ändå klonar studentkortet till ett annat kort, och beger mig till skolan vid annan tidpunkt
än när det är öppet för att prova om klonen fungerar. Klonen fungerar ej, detta är antagligen på grund av att kortets unika ID ej har blivit klonat. Detta medför antagligen inga
problem.
Kloning av personalkortet fungerar inte alls då jag inte kan läsa kortets dolda data utan
endast har tillgång till kortets tomma block, för att kunna läsa den dolda data behöver
man knäcka kortets samtliga A- och B-nycklar, att knäcka dem är ingen jag tänker utföra
i det här arbetet.
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
För studentkortet fungerar försöket, men till vilken nytta då jag återställer ett tomt kort
till ett tomt kort. Personalkortet går inte eftersom jag behöver nyckel A och B för att
komma åt informationen på blocken. Dessa antar jag man kan få fram om man tar hjälp
av en dator som är ett starkare attackverktyg och knäcker A- och B-nyckeln.
Figur 15: Bilden till vänster visar de 4 första sektorerna med HEX på studentkortet och
bilden till höger visar de 6 första sektorerna i personalkortet
3.3
Analys Kalmar länstrafiks kort
Analys av rabattkortet gav resultatet att kortet är Mifare classic av taggtyp 2 se (figur
4 under 2.1 NFC-Standarder), kortet har en minnesstruktur enligt följande 16 sektorer
med 4 block i varje sektor och varje block innehåller 16 bytes, vilket ger en total minnes
kapacitet på 1024 bytes. SAK-beteckning för kortet är “08”.
Start fakta: rabattkortet är att det är laddat med X kr.
Kortets avläsningar visar att den data som finns på kortet är i hexadecimalt språk. För
rabattkortet gjorde jag en avläsning då det var nyladdat och i slutet då kortet nästan var
tomt. Båda avläsningarna av kortet sparar jag i telefonen, för senare test.
Test Kalmar länstrafiks kort
Modifiering (ändra på befintligt kort)
Med modifiering syftar jag på att man kan ändra innehållet på taggen ex, lägga på en
nolla på det belopp som finns på kortet till exempel 10kr → 100kr. För att kunna modifiera innehållet måste man först få innehållet i läsbar text så man vet vart man ska ändra.
14
Avläsningarna av kortet gav hexadecimal kod denna kan översättas till ascii-tecken som
är den mänskligt läsbar kod. Översättning till ascii gick bra men gav ingen läslig text
som jag hoppats på. varför jag tror att det är ascii är för att jag lyckades avkoda de privata A- och B-nycklarna till ascii, men själva datablocken gav ingen läsbart innehåll. Detta
kan bero på att innehållet är krypterat och måste avkrypteras innan det kan översättas
till ascii. Jag provade också att se någon förbindelse mellan de olika stadierna före
användning och efter, genom att översätta den rådata jag hade (HEX) till andra kod
alternativ som binärform men fann ingen koppling. Att försöka bryta kryptot är inget
jag tänker göra här, så min slutsats är att det är säkert mot mobiler. Dock skulle jag
kunna modifiera i blindo, men detta skulle antagligen resultera i att kortet blir korrupt
och ej går att använda. Därför har jag valt bort detta försök.
Figur 16: Bilden till vänster visar de 4 första sektorerna med HEX på rabattkortet.
Bilden till höger visar direkt översättningen till ascii
Kloning (ett kort blir till många kort)
Med kloning syftar jag på att mitt busskort med saldo X kr kan bli n antal exakta kopior
som fungerar som sitt eget kort.
Här använder jag en redan sparade kopia som jag läste in i analysdelen, (rabattkort med
saldo X kr). Rabattkortets kopia tar jag och skriver till ett tomt kort av samma typ (som
för övrigt också är ett Kalmar länstrafik resekort).
Skrivningen till kortet fungerade, så nu har jag en klon av rabattkortet. För att verkligen
veta om klonen fungerar så måste en valideringstest göras mot klonen, med hjälp av en
legitim terminal. Legitima terminaler kan finnas vid buss-/tågstationer, vid dessa terminaler kan man bland annat köpa resor eller se saldo på sina resekort.
Testet med klonen mot den legitima terminalen ger meddelandet ”Det är något fel på
ditt kort, var vänlig kontakta personalen” detta betyder att klonen är obrukbar. Vilket
kan bero på att det kort jag använde som klon har ett annat UID än vad originalkortet
har, och eftersom unika identifieringsnummer inte klonas så blir klonen inte en exakt
kopia av originalet vilket då ger ett korrupt och obrukbar klon.
Slutsatsen blir att kloning inte är möjligt med endast en mobil som verktyg. Detta är
dock fullt möjligt med annan utrustning och det har Tiina Loukusa[6] visat i sitt examensarbete 2012.
15
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
Efter lite fundering över det föregående kloningsförsöket som påvisar att det unika id
förhindrar kloning av kort med en mobiltelefon. Men hur är det med en “unik kopiering”
av sitt kort. Det vill säga en återställnings kopia, något man kan återgå till.
Scenario: Angriparen laddar kortet med X kr tar en unik kopia av kortet. Använder beloppet och sedan återställer kortet med hjälp av den unika avbild som angriparen sparade
på sin mobil innan användningen och skriver den till samma kort igen.
Jag utför ovanstående scenario. Och samma sak gäller här som vid kloning testet. Testet
måste verifieras med en legitim terminal. Vid station terminalen kollar jag saldot före
och efter återställningen. Före återställning visar beloppet Z kr, efter återställning med
mobiltelefon visar terminalen att jag på nytt har samma summa som jag laddade kortet
med det vill säga X kr.
3.4
Analys Stockholms länstrafiks kort
Jag köper ett kort och laddar det med X kr. Analysen av SL-kortet gav att det är av
typen Mifare classic 1k taggtyp 2 se (figur 4 under 2.1 NFC-Standarder) och har SAKbeteckning “08”. Med andra ord så är korttypen är den samma som Kalmars länstrafik
använder.
Test Stockholms länstrafiks kort
Modifiering(ändra på befintligt kort)
Modifiering av kortet med hjälp av mobil. Avläsning för att se vad man kan modifiera gav inget annat än hexadecimala koden som jag översatte till ascii men utan något
läsbart.
Kloning (ett kort blir till många kort)
Kortet har unikt identitetsnummer. Jag läser in kortet i mobilen och skapar en digital
kopia av kortet, efteråt skriver jag kopian till ett tomt kort.
Appen visar “success!” men vid test vid den legitima terminalen visar ett felmeddelande: “Det är något fel på ditt kort, var vänlig kontakta personalen”. Alltså blev denna
klon korrupt på grund av UID som förhindrar total kloning.
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
Eftersom kloning ej var möjligt borde unik kopiering vara möjlig. Jag använder kortet
för att minska startbeloppet, efter ett par åk har jag kvar y kr. Nu återställer jag mitt SLkort med hjälp av den avbilden jag har från analysdelen av kortet med mobiltelefonen.
Efter återställningen går jag och kollar saldot på en legitim terminal, terminalen visar
saldo X kr. Alltså är unik kopiering möjligt.
3.5
Analys Blekingetrafikens kort
Köper ett av Blekingetrafikens buss och tåg kort, med saldot X kr. Vid analys av kortet är av typen Mifare classic 1k taggtyp 2 se (figur 4 under 2.1 NFC-Standarder) och
SAK-beteckningen för kortet är “08”. Avläsningen av kortet ger en hexadecimal kod
16
som ej kan läsas av mig.
Test Blekingetrafikens länstrafiks kort
Modifiering (ändra på befintligt kort)
Modifieringen gick inte eftersom jag inte kunde få ut någon klartext av min analys så är
det svårt att ändra på något specifikt utan att veta vart.
Kloning (ett kort blir till många kort)
Skrivning med den sparade kopian av kortet till ett annat tomt kort, gick bra. Vid koll
om klonen var legitim på en terminal vid stationen gav som vid tidigare tester ett felmeddelande. Att jag ska kontakta personal då det är något fel på kortet.
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
När kortets saldo nästan var slut, testade jag att återställa kortets saldo till det ursprungliga beloppet (nyinköpt). Återställningen gick fint, och testet vid den legitima terminalen
visade att saldot på kortet var återställt, vilket tyder på lyckad attack.
3.6
Analys Skånetrafikens kort
Inköp av Skånetrafikens jojo-kort X kr. Analysen av kortet med hjälp av mobilen gav
att det är av typen Mifare classic 1k, taggtyp 2 se (figur 4 under 2.1 NFC-Standarder),
SAK-beteckning för kortet är “08”. Analysen gav även en variant av hexadecimala kod
som tidigare testobjekt.
Test Skånetrafiken länstrafiks kort
Modifiering (ändra på befintligt kort)
Avläsningen av kortet gav liknande svar som för föregående tester en hexadecimal kod
som inte blir läslig då jag konverterar det till ascii kod (klartext). och med detta är det
svårt om inte omöjligt att veta vart jag ska modifiera för att uppnå bästa attack, till exempel att höja saldot.
Kloning (ett kort blir till många kort)
Vid kloningen till annat kort gick bra fram tills testet med den legitima terminalen, där
fel meddelandet “Det är något fel på ditt kort, var vänlig kontakta personalen” i terminalen vilket tyder på att jojo-korten har varsitt unikt ID.
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
Den unika kopieringen gick däremot som förväntat, lyckad (i attack syfte). Mitt nästan
tomma jojo-kort blev helt återställt med samma summa som vid inköpet.
3.7
Analys Norges statsbaners kort
När jag bodde i Oslo så hade jag ett resekort för att resa med lokaltrafiken där, det slog
mig att vårt grannland Norge måste använda ett liknande system som Sverige använder,
så jag blev nyfiken och tog med det i försöks arbetet. Första anblicken av kortet säger
inte mer än att det säkerligen är ett NFC baserat kort. Men efter läsning av kortet är
17
det klart, det är inget vanligt Mifare classic utan ett Mifare DESFire EV1 med SAK 20
taggtyp 4 se (Figur 4 under 2.1 NFC-Standarder). Desfire ev1 har bland annat 128 bit
AES kryptering, vilket gör det avsevärt mycket starkare i ett säkerhetsaspekt jämfört
med Mifare classic kortet som använder crypto-1.
Test Norges statsbaners kort
Modifiering (ändra på befintligt kort)
Appen misslyckas att läsa kortet på grund av appen endast kan läsa Mifare classic taggar. Modifiering kan ej testas och antas säkert för mobilattack.
Kloning (ett kort blir till många kort)
Appen misslyckas att läsa kortet på grund av appen endast kan läsa Mifare classic taggar. Kloning kan ej testas och antas säkert för mobilattack.
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
Appen misslyckas att läsa kortet på grund av appen endast kan läsa Mifare classic taggar.
Unik kopiering kan ej testas och antas säkert för mobilattack.
3.8
Analys Färjestaden biltvättskort
Färjestaden biltvätts kortanalys visade att kortet är av taggtyp 2 se (figur 4 under 2.1
NFC-Standarder) alltså Mifare classic 1k. Kortet använder endast A-nyckeln som säkerhetsnyckel
samtidigt som B-nyckeln saknas eller o-aktiverad. Kortet har 16 sektorer men det är
endast sektor 1 som innehåller data, data:n är kapslad i två värdeblock som kan direktöversättas till decimaltal, vilket betyder att jag kan läsa kortets saldo i klartext.
Test Färjestaden biltvättskort
Modifiering (ändra på befintligt kort)
Eftersom innehållet på kortet är läsligt så vet jag ju precis vad jag behöver ändra för att
modifiera innehållet. Saldot var i från början 151 kr och jag ändrade det till 100 kr. Men
skrivning till kortet misslyckades. Detta på grund av att jag ej känner till säkerhetsnyckel
A, och har där med inte skrivrättigheter till blocket. Som tidigare nämnt så kommer jag
inte att försöka mig på att knäcka säkerhetsnycklarna.
Kloning (ett kort blir till många kort)
Eftersom skrivning till kortet inte är möjligt med den utrustning jag använder, så misslyckas denna test.
Unik kopiering (kopiera kortet använda och sedan kopiera tillbaka)
Eftersom skrivning till kortet inte är möjligt med den utrustning jag använder, så misslyckas även denna test.
18
3.9
Resultat
NOT - ingen säkerhetsbrist (i min undersökning)
OK - säkerhetsbrist
4
Diskussion
I min studie gick jag tillväga på följande vis. Jag valde att arbeta med min egen smartphone som hotverktyg tillsammans med applikationen “Mifare classic tool”, och jag valde ut åtta stycken typer av NFC-smartcards som var lätta att få tag på (resekort, betalkort
och passerkort). Och jag testade om de var lätt att attackera korten (modifiering, kloning och
unik kopiering).
I angriparens perspektiv behövs endast en smartphone med NFC tillgång. Kompetenskravet är lågt då det räcker med att kunna hantera en smartphone. Däremot behövs intresset
för att finna en passande applikation som både kan skriva och läsa NFC och om applikationen inte redan har de nycklar man behöver så ska man finna dessa på internet
ganska lätt. Den uppskattade kostnaden för angriparen inköp av smartphone om angriparen inte redan äger en samt resekortets inköp som kostar. Vid låg kostnad och relativt
låg kompetens så är det hög risk att Mifare classic utnyttjas.
Det mest välspridda NFC-smartcardet Mifare classic, visade sig ha säkerhetsbrister detta påvisade bland annat Karsten Nohl och Henryk Plötz 2008. Idag är det 2014 och i
Sverige använder företag fortfarande Mifare classic som passerkort och betalkort.
Inom området säkerhet så pågår ständigt en kapplöpning mellan de som vill upprätthålla
säkerhet och skydda integritet, och de som alltid kommer att försöka komma åt detta
genom att finna säkerhetshål och utnyttja dessa. Därför är det viktigt att uppdatera och
hänga med i “säkerhetsloppet” så att man miniminerar risken för att vara utsatt.
I min studie visar det sig att de svenska resekort som används inte är uppdaterade utan
förmodligen håller samma standard som resekorten gjorde då systemet infördes, kanske
är företagen som använder Mifare classic kort omedvetna om problemet eller så räknar
de med svinn och mörklägger problemet, för att det anses vara för dyrt att lösa. I vilket
fall som helst är det på tiden att systemet förbättras. Detta blir givetvis en ekonomisk
fråga. Det finns några förändringar man skulle kunna göra utan att det blir en alltför stor
19
omställning. Eftersom jag även gjorde ett test på ett norskt resekort och fann att deras
kort inte är Mifare classic utan Mifare desfire som har en högre säkerhetsstandard än
classic kortet. Å andra sidan om man inför ett nytt kort hur länge ska det gamla gälla?
och vad tycker användarna om att man byter kort? och all praktisk överföring med personers saldo från ett kort till ett annat. Det finns heller inget som säger att det nya kortet
kommer att vara helt säkert en längre tid.
Problemet med resekort är att kortet i sig innehåller informationen om vad som är aktivt
på kortet det kan vara ett rabattkort då det håller ett saldo med ett belopp eller så kan
det vara en period som håller ett datum och de zoner du kan resa över. Så om man vill
förändra något så finner man det på kortet. Min spontana fråga blir varför har man gjort
en sådan lösning?
Svaret på den frågan kan vara många, man kanske vill slippa kostnader för servrar som
ska hålla reda på informationen eller tiden då systemet infördes fanns ingen hotbild. Ett
annat alternativ svar skulle kunna vara att det var mer hanterbart då korten höll reda på
sin eget data. Alla kort har ju redan ett unikt id så varför inte binda kortets id till ett
konto på ett inre system så informationen ligger där istället för på kortet.
Detta är en lösning som har sina nackdelar, ett problem är: vad händer om kommunikationen mellan avläsaren och systemet upphör till exempel vid dålig täckning eller
eventuellt strömavbrott, i detta fall är knappt några tekniska lösningar bra, så för att hantera en sådan situation kanske en utskriven pappersbiljett vore det bästa bevis på köpt
resa. Man kan köpa biljetten med sitt NFC-resekort innan man stiger på transporten.
Ett annat alternativ är kanske är lite väl drastiskt men skulle ge en övervakande fördel
om fusk eller brott misstänks, genom att binda din identitet till kortet du köper med en
id-handling. Som det är idag om du går och köper ett rabattkort eller periodkort så gör
du det anonymt det vill säga du kan fuska med unik kopiering utan att det utsätter dig
som person för risk, utan om företagen eventuellt har ett övervakningssystem så kan de
bara se vilket kort som “fuskar”.
Om man applicerar ett sådant system så blir integriteten mycket viktigt då korten kommer att vara kopplade till identiteter, och då kommer ändå korten kräva en bättre standard än mifare classic erbjuder för att skydda den personliga integriteten. Å andra siden
skulle man kunna koppla kortets UID med köparens personnummer som kan placeras
på företagets server, i ett sådant alternativ skulle man kunna använda de kort som finns
idag och samtidigt spåra kort till personer, å andra sidan blir det här alternativet lite
av ett “storebror ser dig” scenario. En bra fråga är ändå varför har inte kollektivtrafiken
gjort något åt problemet då de bör vetat om det sedan 2008 [9] det har ju ändå gått sex år.
Vad gällande Blekinge tekniska högskolas passerkort håller även de en lägre säkerhet,
men eftersom deras hotbild ser annorlunda ut, det vill säga utnyttjandet. Personalkortens
A och B-nycklar ännu okända, de finns även en extra säkerhetslösning med personalkorten de måste aktiveras vid ankomst varje dag för att fungera. Elevpasserkorten har
A- eller B-nyckel men nycklarna har default värden och är där med oskyddade, korten
håller dock inga data (tomma). Behörigheterna placeras istället i det bakliggande systemet alltså ej på elevens kort, vilket är säkrare och skyddar elevens integritet och skolans
lokaler.
20
5
Slutsats och förslag på fortsatta arbeten
Alla NFC-kort klarade av att skydda sig mot modifiering och kloning Det var lätt att
attackera länstrafikens kort med unik kopiering (återställning) detta innebär att den angripande laddar kortet med en summa pengar och kopierar över detta till sin smartphone,
använder kortet där nu saldot av pengar sjunker och sedan kopierar över den ursprungliga summan som finns kvar i återställningskopian från smartphonen och på detta sätt
kan han åka gratis på kortet hur mycket som helst.
I början av arbetet ställde jag tre forsknings frågor, den första: hur ser tekniken ut bakom
NFC. NFC är en kontaktlös kommunikations lösning, som tillåter tvåvägskommunikation
på låg frekvens mellan en läsare och en tagg, taggen har en lagringskapacitet som tillåter
både läsning och skrivning till minnet. Den andra frågan: vilka brister det finns i de
tillämpningar som används idag, och som det ser ut så finns de brister idag trotts att
bristerna med NFC-teknikens uppdagades redan 2008, och även jag i mina experiment
fann brister i ett par av de testobjekt jag valt ut. Slutligen den tredje frågan: hur skulle man kunna avhjälpa de brister som finns, här valde jag att lägga fram förslag på de
brister jag fann i de tester jag gjort. De förslag jag kom fram till är i korthet: byta ut
de kort som används idag till ett säkrare kort som använder en annan kryptolösning,
eller hantera den data som finns lagrad på ett annat vis, om man vill behålla de kort
som används idag. Det sista alternativet är att binda sin identitet till kortet, på så vis kan
företag enklare binda en person till ett kort om “fusk” inträffar.
Mitt förslag till fortsatt arbete är att jag skulle vilja inrikta arbetet mot att ta fram ett
eller flera sätt att förhindra “unik kopiering” av länstrafikens NFC-kort undersöka de
olika för och nackdelarna med de olika lösningarna samt även ta fram vad ett sådant
arbete skulle kosta och ställa det mot de risker som man idag tar med att ha ett så pass
lättattackerat system som de har. Det hade även varit intressant att träffa de ansvariga på
länstrafiken för att diskutera mitt arbete och förklara dagens brister och vad mitt förslag
till skydd innebär i kostnader och arbete. Det hade också varit intressant att få ta del
av deras ursprungliga riskanalys, den som kanske gjordes när de köpte dagens nuvarande system, vad de förutsåg för attacker och hot. Det kan ju tänkas att utrustningen
som fanns tillhands vid inköpstillfället för att göra attacker och att hota systemet var av
ett helt annat slag det vill säga att risken inte var så stor. Den tekniska utvecklingen av
smartphones samt vilka olika typer av “appar” som det nu går att få tag på från ett öppet
internet har ju utvecklats med en svindlande hastighet. Det hade även varit av intresse
och se in i kristallkulan ur perspektivet vad som kommer i framtiden i den tekniska utvecklingen både när det gäller system för företagen samt vilka “hot och attack” verktyg
som kan dyka upp på nätet och vad detta kan föra med sig.
En annan vinkel som också är intressant är att se vad det är för skillnader på det norska
och svenska systemet samt om det finns andra sätt att även knäcka det norska systemet
för en billig penning eller om det system är mer motståndskraftigt och förstå vad det i så
fall beror på. Är det bättre riskanalys och kunskap eller är det senare inköpt eller någon
annan förklaring till att det ser ut som det gör.
Vill man sedan gå vidare så finns det ju en hel uppsjö av olika typer av smartcards som
skulle kunna undersökas och kategoriseras ur ett hot och attack perspektiv så jag tror att
det skulle finnas många intressanta vägar att gå vidare med detta intressanta arbete på.
21
6
6.1
Appendix
Förkortningar
NFC
RFID
CPU
MPU
UHF
EPC-code
QR-code
URL
REQA
ATQA
UID
SAK
CL2
CL
HEX
BTH
KLT
ISO
IEC
MIMA
EEPROM
6.2
Närfältskommunikation
Radiofrekvens identifiering
Central processorenhet
Mikroprocessorenhet
Ultrahög frekvens
Elektronisk produktkod
Snabb svarskod
Web address
Begär A nyckel
Svar till REQA
Unik Identitet
Vald kvittens
Flödes nivå 2
Flödes nivå
Hexadecimal
Blekinge tekniska högskola
Kalmar länstrafik
Internationella standardiseringsorganisationen
Internationella elektrotekniska kommissionen
Mannen i mitten attack (eng. Man-in-the-middle-attack)
Electrically Erasable Programmable Read-Only Memory
NFC kontra RFID
Figur 17: Skillnader och likheter mellan RFID och NFC [24].
22
6.3
Diffie-Hellman
Om två personer vill ha en privat kommunikation utan att behöva träffas först och komma överens om en hemlig nyckel så kan man göra en Diffie-Hellmanns nyckelutbyte.
Det går till på följande vis:
I Alice och Bob börjar med att välja ett primtal p och en primitivrot g. Detta val kan
göras publikt.
II Alice väljer sedan ett heltal a (0 ≤ a ≤ p − 1), som hon håller hemligt. Med hjälp
av sitt tal bestämmer hon C ≡ g a (mod p). Nu skickar hon C till Bob.
III Bob gör på samma sätt, Han väljer ett eget hemligt tal b och beräknar D ≡ g b (mod
p) och skickar D till Alice.
IV Alices nyckel ≡ Da ≡ (g b )a ≡ g a b mod p.
V Bobs nyckel ≡ C b ≡ (g a )b ≡ g a b mod p.
VI Nu kan Alice och Bob skapa en privat kommunikation. Dock måste Alice och Bobs
nycklar förbli hemliga.
Exempel:
Alice och Bobs gemensamma nämnare är nu 31. Nyckelutbytet är avklarat.
23
7
Referenser
Publikationer
[1] W. Diffie and M.E. Hellman, New directions in cryptograph. IEEE Transactions on
Information Theory 22, s 644-654, 1976.
[2] Morris Dworkin, Recommendation for Block Cipher Modes of Operation. Special
Publication 800-38A, 2001.
[3] Vedat Coskun, Kerem Ok, Busra Ozdenizci, Near Field Communication (NFC).
John Wiley & Sons, 2012.
[4] Collin Mulliner, Hacking NFC and NDEF: why I go and look at it again. Berlin
Institute of Technology, 2011.
[5] Jovan Golić, Cryptanalytic Attacks on MIFARE Classic Protocol. Security Lab, Telecom Italia IT, 2013.
[6] Tiina Loukusa, Analys av säkerheten av RFID i inpasseringssystem. Uppsala universitet, 2012.
[7] Nicolas T. Courtois and Karsten Nohl and Sean O’Neil, Algebraic Attacks on the
Crypto-1 Stream Cipher in MiFare Classic and Oyster Cards. IACR Cryptology
ePrint Archive, 2008.
[8] Karsten Nohl, Cryptanalysis of Crypto-1. University of Virginia, 2008.
[9] Karsten Nohl och Henryk Plötz, Reverse-Engineering a Cryptographic RFID Tag.
USENIX Security Symposium, 2008.
[10] Ahmed Patel, Kenan Kalajdzic, Laleh Golafshan, Mona Taghavi, Design and Implementation of a Zero-Knowledge Authentication Framework for Java Card. International Journal of Information Security and Privacy, 2011.
Länkadresser
[11] NFC tag type definitions.
www.radio-electronics.com/info/wireless/nfc/near-field-communications-tagstypes.php, [4 mars 2014].
[12] Cooking with Mifare Classic.
www.backtrack-linux.org/wiki/index.php/RFID Cooking with Mifare Classic#0x01 Hardware, [14 april 2014].
[13] How to Select the Right NFC Tag.
www.nfctags.com/nfc-applications-which-tag, [5 mars 2014].
[14] Mifare Classic Tool.
https://play.google.com/store/apps/details?id=de.syss.MifareClassicTool&hl=sv,
[14 april 2014].
[15] MIFARE ISO/IEC 14443 PICC Selection.
www.nxp.com/documents/application note/130830.pdf, [10 maj 2014].
24
[16] MIFARE Type Identification Procedure.
www.nxp.com/documents/application note/AN10833.pdf, [10 maj 2014].
[17] Visa payWave.
www.visaeurope.com/en/cardholders/visa paywave.aspx, [6 maj 2014].
[18] MasterCard PayPass Home.
http://www.mastercard.com/contactless/index.html, [6 maj 2014].
[19] Google Wallet - a smart, virtual wallet for in-store and online shopping.
www.google.com/wallet, [6 maj 2014].
[20] Mainstream contactless smart card IC.
http://www.datasheetlib.com/datasheet/953746/mf1s503x nxpsemiconductors.html?page=9#datasheet, [6 maj 2014].
[21] Beginnings and NFC Forum.
http://www.radio-electronics.com/info/wireless/nfc/near-field-communicationstutorial.php, [5 okt 2014].
[22] Types of Smart Card.
http://www.smartcardbasics.com/smart-card-types.html, [5 okt 2014].
[23] Mifare classic.
http://www.nxp.com, [5 okt 2014].
[24] The Difference Between NFC and RFID - Explained.
http://rapidnfc.com/blog/72/the difference between nfc and rfid explained,
[5 okt 2014].
25