[Home/Nieuws] [Magazines] [Meetings] [Downloads] [Redaktie] [Geschiedenis] |
||||||||||||||||||||||||||||||||||
Paranoia in de portemonnee Een smartcard zoals de ChipKnip is welbeschouwd een
computer op chipformaat: het bevat geheugen, een microprocessor en een file system om
gegevens op te slaan. In een ROM geheugen staat een mini operating system dat commando's
uitvoert die de buitenwereld naar de kaart zendt. De enige communicate met die
buitenwereld vindt plaats via de acht contacten die op de chipkaart zitten. Met behulp van
een smartcard interface zoals beschreven in Klaphek 2 is het mogelijk je De ChipKnip is een smartcard van het type CC 60, gemaakt door Bull CP8 Transac. Deze kaart komt oorspronkelijk uit België waar hij de deel uit maakt van het Proton project van Banksys. Versie 1 van de CC 60 is daar bekend onder de naam Bancontact/MisterCash, in Nederland wordt versie 2 gebruikt. Voor het einde van het jaar wordt alweer overgegaan op een nieuwere kaart, de CC 1000, waar ook de Albert Heijn spaarzegeltjes en dergelijke op gezet kunnen worden. Welke kaart je hebt kun je zien aan de data die een smartcard zendt nadat hij gereset wordt, de zogeheten Answer To Reset (ATR). In tabel 1 staan de ATRs voor een aantal kaarten. Als de ATR begint met 0x03 dan betekent dat, dat de kaart de inverse conventie gebruikt voor het coderen van z'n bits en bytes. Oftewel alle bits staan in omgekeerde volgorde in een byte en alle enen worden geschreven als nullen en omgekeerd. 0x03 is in die inverse conventie gelijk aan 0x3f, dus je kunt zien de CC 60 'm gebruikt en de CC 1000 en de Zeelandkaart niet. Voor meer informatie over wat de bytes in de ATR precies betekenen wordt verwezen naar ISO7816-3, voor de verdere communicatie met de kaart zijn ze niet belangrijk meer. CC 60 V1 3f 67 25 00 2a 20 00 40
68 90 00 Tabel 1: Answer To Reset voor diverse kaarten Nu we weten met wat voor kaart we van doen hebben willen we er natuurlijk ook commando's naar toe sturen. Een commando ziet er als volgt uit:
De eerste byte is de instruction class. De instruction
class geeft aan voor wie het commando bedoelt is: als er meerdere (incompatibele)
applicaties op de kaart staan zijn ze te onderscheiden door ze ieder een eigen class te
geven. De meeste kaarten bevatten maar 1 of 2 instruction classes. > BC A4 00 00 02 In de bovenstaande conversatie wordt de file 2901 op een ChipKnip geselecteerd: BC is de instruction class voor instructies die niet specifiek met Proton functies te maken hebben. (E1 is de class voor de Proton commandos). A4 is de ISO 7816-4 code voor het selecteren van een file. P1 en P2 zijn worden niet gebruikt en zijn dus nul. De optionele data bestaat uit het nummer van de file: 2901, ofwel de 'purse file'. De kaart antwoordt met '90 00', wat de status code voor 'alles OK' is. 90 00 OK Tabel 2: Processing status words Een andere interessante instructie is 'B0', oftewel het lezen van een file. Door nu 'BC B0 00 00 FF' naar de kaart te zenden krijgen we de eerste 255 bytes van de purse file terug. Hier blijken een aantal interessante dingen in te staan, onder andere je bankrekening nummer. Betalen met de ChipKnip is dus net zo anoniem als betalen met contant geld, op iedere gulden staat tenslotte ook je rekening nummer. Zo bevat de ChipKnip wel meer features: van iedere transactie, opladen of betalen wordt een log gemaakt. Met de read trace instructie kunnen deze logs worden opgevraagd: > e1 b6 0 1 24 De teruggestuurde informatie bevat het log record van de laatst gedane transactie. Door het commando te herhalen met P2 = 3 i.p.v 1 kunnen ook de voorgaande logs worden verkregen, 10 in het totaal. In figuur 1 staat de indeling van een log record afgebeeld.
Figuur 1: Data layout van een transaction log record TRANSACT_TYPE geeft aan om wat voor een transactie het
gaat. Zie tabel 3 voor geldige waarden. 0x1F Virgin
Trace: ongebruikt record Tabel 3: Transactie types Een creatieve winkelier kan zo op een wel heel makkelijke
interessante informatie verzamelen over z'n klanten: hoeveel geven ze uit en in welke
winkels? Gebruiken ze hun ChipKnip vaak en wat is hun rekeningnummer? Waar had iemand het
ook al weer over privacy? Al met al is de ChipKnip een hele verbetering: waar met pinnen slechts de banken konden bijhouden wat de consument voor hoeveel bij wie kocht, maakt de ChipKnip zelfs het wederzijds bespionneren van klant en winkelier mogelijk. "Alles kan tegenwoordig" Meer informatie ISO7816 deel 1 t/m 4. De eerste drie delen zijn op http://cuba.xs4all.nl/~tim/sc-hp/iso7816.txt
te vinden. Ammendement deel 3 en deel 4 zijn helaas niet online verkrijgbaar. Deze zul je
in een universiteitbibliotheek moeten zoeken of aanschaffen bij het Nederlands
Normalisatie Instituut (is vrij prijzig).
http://www.cp8.bull.net,
de site van Bull CP8 Transac, waar de CC 60 en CC 1000 gemaakt worden. |
||||||||||||||||||||||||||||||||||
De informatie in 't Klaphek dient slechts een educatief doel. Gebruik van deze informatie zou strafbaar kunnen zijn. De redaktie wijst iedere verantwoordelijkheid voor gebruik door lezers van de in 't Klaphek opgenomen informatie af. De mening van een auteur weerspiegelt niet noodzakelijkerwijs de mening van de redaktie of uitgever. |
||||||||||||||||||||||||||||||||||