Slashdot Mirror


Smart-Card Hacking?

W3bbo asks: "With the ever-increasing information being stored on so-called 'Smart-Cards', including credit cards with the chips, how do we know what data is read by stores when you hand over your plastic? Seaching for 'smart-card hacking' just turns up satelite TV piracy websites and virtually nothing for (sort-of) legitimate investigation to our cards. So what methods are available to hack smart-card chips and see what information about us our banks store on our cards?"

7 of 32 comments (clear)

  1. it's called carding... by da5idnetlimit.com · · Score: 3, Informative

    so have a few searches on this term
    http://www.kallipse.com/creaweb/galaad/carding.php

    Also there is an open source project devoted to reading cards and chips, don't remember the name right now...

    Was on slashdot, so have a check 8)

    --
    It takes 40+ muscles to frown, but only four to extend your arm and bitchslap the motherfucker
    1. Re:it's called carding... by Mattcelt · · Score: 4, Informative

      One of the original smart card hacks was done by Ben Jun, Paul Kocher, and Joshua Jaffe, the guys at Cryptography Research, using a technique called "Differential Power Analysis" which they did with a $50 HP oscilliscope to extract the private key stored on a smart card. You can find the white paper here.

  2. Kind of Esoteric, But... by fuzzybunny · · Score: 4, Informative

    The best way to learn is to latch onto someone who really knows their stuff (which is what I did on a previous project.) If you don't have that luxury, start looking at vendor pages (Schlumberger, ActivCard, Siemens, Utimaco, Gemplus, etc.) and chipset manufacturers (Infineon, Sagem or Giesecke & Devrient for example.)

    Depending on how far down you want to dig (do you want to learn about applications? Circuit design? Interfaces? Security issues?) you should probably browse around related manufacturers' pages and related newsgroups. A good example would be looking at PKCS#11-related docs, Entrust implementation docs, the Javacard specifications, how Javacards differ from other implementations, docs on "Open Platform", types of card readers (class 1 through class 4, what is "middleware", how hardware key storage works, etc.)

    A lot of card-related documentation and information is strongly vendor-specific, poorly documented and, to be honest, largely irrelevant for someone who wants to learn about it in a not-too-hardcore manner.

    If you're professionally seriously interested, I recommend talking to one of the serious pros, such as Jerome Ajdenbaum who really know their stuff. For starters, though, a quick google search on "smart card" +documentation turned up a number of good results, including from Microsoft (whose card interface for many manufacturers and variants is surprisingly well-written), ,a href="http://java.sun.com/products/javacard/refere nce/docs/">Java card docs from Sun, and the Open Card platform.

    --
    Cole's Law: Thinly sliced cabbage
    1. Re:Kind of Esoteric, But... by Cthefuture · · Score: 2, Informative

      Along with PKCS#11 and Javacard, you should be looking at all the ISO 7816 specifications for technical information.

      However, do any stores actually use the smartcard portion of the card? All I have seen is using the mag-strip on the back and nothing more (which is usually just your account number, expiration, and name on the card). So there is no "secret" information that is even being used on the card.

      Once you get into it you will realize that smartcards are not some magical device designed to invade privacy or something. Really, a smartcard is best for carrying protected private keys to be used with PKI (like a certificate). A smartcard provides benefits over traditional "soft" tokens by protecting your data in hardware.

      Generally speaking a smartcard has one or more sets of keys and maybe certificates to go with those keys (just like PGP keys or a certificate you get from Verisign). Other than that the information is similar to what is on your credit card. Maybe your name, expiration date, etc. Some military cards have more information about the person. Almost always all the information is also printed on the card somewhere (just like how your credit card's mag-strip has the same information stamped on the front of the card).

      --
      The ratio of people to cake is too big
    2. Re:Kind of Esoteric, But... by swillden · · Score: 4, Informative

      Along with PKCS#11 and Javacard, you should be looking at all the ISO 7816 specifications for technical information.

      The ISO 7816 specs are generally not free. You buy them from your national standards body, which in the US is ANSI. It'll cost around $150-$200 to buy the whole set from ANSI.

      However, much of the content of the 7816 documents is replicated in the EMV specifications. EMV stands for Europay Mastercard Visa and is a consortium for establishing smart card banking standards, so if you're interested in looking at your bank card chip, that's the more relevant set of documents anyway. You can find all of the EMV documents on-line, free, at the EMVCo web site. You may still have to acquire some of the 7816 specs (parts 3 and 4 are probably the most important), but the EMV docs contain most of what you need. Word of warning: be prepared to plow through a lot of material. Smart card technology has acquired a lot of complexity through 30 years of incremental enhancements.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  3. Card security attacks by brejc8 · · Score: 3, Informative

    These break down to a few different kinds:
    Information leaking e.g. power analysis: observe the power consumption of a divide to determine what operations it is executing and what data it is working on. Usually these will only tell you the number of bits which are on in a particular stage. I found the ARM 6 gave a very clear signature of the result of the adder and could determine the number of on bits down to the nearest 2.
    Error introduction e.g. clock glitch attack: This is an asynchronous engineers favorite. Basically a method of inserting errors into the processor in a deterministic method. Say the processor stage calculating a compare operation is the worst case path, the attack inserts an early clock forcing the comparison to be incorrectly made. Place this in the "are the checksums correct" code. Usually though these are a little more difficult than that.
    Brute force with limited tries e.g. Flash charge pump: So to crack your card it only takes as many attempts as there are pin code combinations. To stop people from just trying out the 10,000 or so combinations the card remembers how many tries you had. Before it writes something to the flash it needs to drive up a charge pump. This is visible using power analysis and at this point you cut the power and try again.

    More interestingly why are these not investigated? Well because there is no money for it. The async community has been offering better methods but the companies who make the only get a tiny profit are not inclined to make them any better.

  4. MUSCLE project by sgifford · · Score: 2, Informative

    Information from the MUSCLE smartcard-on-Linux project be useful:

    http://www.linuxnet.com/