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: oskar@jilken.com 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
© Copyright 2024