Difference between revisions of "RFID"

From YobiWiki
Jump to navigation Jump to search
Line 49: Line 49:
 
http://www.makezine.com/06/theorypractice/ => See MAKE n6
 
http://www.makezine.com/06/theorypractice/ => See MAKE n6
 
====[http://www.openpcd.org/ OpenPCD]====
 
====[http://www.openpcd.org/ OpenPCD]====
====[http://www.acs.com.hk/acr122.php ACR122/ACR122U]====
+
====[http://www.acs.com.hk/acr122.php ACR122U]====
 
based on PN532
 
based on PN532
 
* [http://www.nfc-reader.com/acr122-document.php docs]
 
* [http://www.nfc-reader.com/acr122-document.php docs]
Line 60: Line 60:
   
 
* To get the Firmware version string in command line: (actual string here is "ACR122U203" as the last 2 bytes are not SW1/SW2 but part of the string)
 
* To get the Firmware version string in command line: (actual string here is "ACR122U203" as the last 2 bytes are not SW1/SW2 but part of the string)
opensc-tool -s FF00480000
+
$ opensc-tool -s FF00480000
 
Sending: FF 00 48 00 00.
 
Sending: FF 00 48 00 00.
 
Received (SW1=0x30, SW2=0x33):
 
Received (SW1=0x30, SW2=0x33):
 
41 43 52 31 32 32 55 32 ACR122U2
 
41 43 52 31 32 32 55 32 ACR122U2
  +
  +
You can also use scriptor:
  +
$ echo ff00480000|scriptor
  +
No reader given: using ACS ACR122U PICC Interface 00 00
  +
Using T=1 protocol
  +
Reading commands from STDIN
  +
> ff 00 48 00 00
  +
< 41 43 52 31 32 32 55 32 30 33 : Error not defined by ISO 7816
  +
  +
If you get the following error:
  +
Can't allocate Chipcard::PCSC::Card object: No smartcard inserted.
  +
that's because you've a model without SAM support. Place a tag on the reader and try again, it should work.
  +
  +
So that's where a lot of confusion comes into play: the two models behave very differently!
  +
  +
  +
 
* Some more infos [http://hackerati.com/post/57314994/rfid-on-the-cheap-hacking-tikitag here] about the Tikitag
 
* Some more infos [http://hackerati.com/post/57314994/rfid-on-the-cheap-hacking-tikitag here] about the Tikitag
   

Revision as of 00:45, 16 March 2009

Hardware Tools

RFID killers

RFID skimmers

RFID readers

pcscd

Is the Linux daemon to access readers compatible with the PC/SC standard.
To dump the readers list supported by libccid of your pcscd install:

 cat /etc/libccid_Info.plist|gawk '
    /ifdVendorID/{
        mode=1
    }
    /ifdProductID/{
        mode=2
    }
    /ifdFriendlyName/{
        mode=3
    }
    {
        inarray=0
    }
    /<array>/{
        i=0
    }
    /<array>/,/<\/array>/{
        inarray=1
    }
    /string/&&inarray{
        match($0,/<string>(.*)<\/string>/,a);
        t[mode i]=a[1]; 
        i++
    }
    END{
        for (j=0;j<i;j++) 
            print t[1 j]":"t[2 j], t[3 j]
    }'

Parallax

http://www.makezine.com/06/theorypractice/ => See MAKE n6

OpenPCD

ACR122U

based on PN532

  • docs
    • ISO/IEC18092 (NFC) compliant
    • NFC Tags Access Speed = 212 kbps
    • Support FeliCa card
    • Support ISO 14443 Type A & B cards
    • MIFARE® cards (Classics, DESFire)
    • SAM Socket (optional)
  • To get the Firmware version string in command line: (actual string here is "ACR122U203" as the last 2 bytes are not SW1/SW2 but part of the string)
$ opensc-tool -s FF00480000
Sending: FF 00 48 00 00.
Received (SW1=0x30, SW2=0x33):
41 43 52 31 32 32 55 32 ACR122U2

You can also use scriptor:

$ echo ff00480000|scriptor           
No reader given: using ACS ACR122U PICC Interface 00 00
Using T=1 protocol
Reading commands from STDIN
> ff 00 48 00 00 
< 41 43 52 31 32 32 55 32 30 33 : Error not defined by ISO 7816

If you get the following error:

Can't allocate Chipcard::PCSC::Card object: No smartcard inserted.

that's because you've a model without SAM support. Place a tag on the reader and try again, it should work.

So that's where a lot of confusion comes into play: the two models behave very differently!


  • Some more infos here about the Tikitag

Pegoda

  • See http://www.nxp.com/#/pip/pip=[pfp=41960]|pp=[t=pfp,i=41960]

Arygon ADRA

based on PN531

Supported Standards:

  • ISO18092 ( NFC transport protocol)
  • Sony FeliCa
  • NXP Mifare ® family
  • compliant to ISO14443A, ISO14443A – 4 (T=CL)

Communication protocol:

  • ARYGON (HL - high level language), TAMA (LL - low level language)

Baud rate (passive/active):

  • 106 kBaud, 212 kBaud, up to 424 kBaud
  • USB, seen as a serial port

Omnikey 5321

  • datasheet
  • ISO 14443 A/B and 15693 ( up to 848 Kbps in the fastest ISO 14443 transmission mode)
  • APIs: PC/SC, Synchronous-API (on top of PC/SC), OCF (Open Card Framework) or CT-API
  • contactless smartcards supported:
    • HID: iCLASS®
    • NXP: MIFARE®, DESFire®, SMART-MX and ICODE
    • Texas Instruments: TagIT®
    • ST Micro: x-ident, SR 176, SR 1X 4K
    • Infineon: My-d (in secure mode UID only)
    • Atmel: AT088RF020
    • KSW MicroTech: KSW TempSens
    • iCODE SLI, iCODE SL2 & LRI 64
    • Contactless 2048 bit key generation in RSA mode (JCOP / SMART-MX)

Installing OmniKey reader under linux:

apt-get install libusb-dev pcsc-omnikey

Warning! this removes libccid!!

Note that there are also drivers here

It's better to keep libccid if needed and install the missing driver by hand:

cd ifdokrfid_lnx-2.6.0
sudo ./install  -d /usr/lib/pcsc/drivers/

See here: you need also to recompile pcscd with libusb:

./configure --disable-libhal --enable-libusb

To do it by repackaging the Debian pcscd:

apt-get source pcscd
apt-get build-dep pcscd
--- debian/rules        2009-01-14 13:54:42.000000000 +0100
+++ debian/rules        2009-01-14 13:46:56.000000000 +0100
@@ -38,6 +38,8 @@
        dh_testdir
        # we add LDFLAGS="-lpthread" for bug #253629
        ./configure $(confflags) \
+               --disable-libhal \
+               --enable-libusb \
                --sysconfdir=/etc \
                --prefix=/usr \
                --enable-usbdropdir=/usr/lib/pcsc/drivers \

Then

dpkg-buildpkg -uc -us

To launch the modified pcsc in foreground, showing ADPUs and debug info: (here pcscd was installed in /usr/local/bin/pcscd-libusb)

pcscd-libusb -f -a -d

Others

RFID emulators

Misc

Software Tools

librfid

librfid is a Free Software RFID library. It implements the PCD (reader) side protocol stack of ISO 14443 A, ISO 14443 B, ISO 15693, Mifare Ultralight and Mifare Classic. Support for iCODE*1 and other 13.56MHz based transponders is planned.

RFDump

RFDump is a backend GPL tool to directly interoperate with any RFID ISO-Reader to make the contents stored on RFID tags accessible.

RFIDIOt

RFIDIOt is an open source python library for exploring RFID devices

apt-get install python-pyscard
$ ./mrpkey.py -L
PCSC devices:
   No: 0               OMNIKEY CardMan 5x21 00 00
   No: 1               OMNIKEY CardMan 5x21 00 01
$ ./mrpkey.py -r 1 CHECK
mrpkey v0.1n (using RFIDIOt v0.1s)
 Reader: PCSC OMNIKEY CardMan 5x21 00 01
 Device is a Machine Readable Document
$ ./mrpkey.py -r 1 "EXnnnnnn<cBELyymmddcSyymmddc<<<<<<<<<<<<<<cc"

To fix reader number, edit RFIDIOtconfig.py
In MRZ passport number is coded with 9 chars. Belgian uses only 8 chars so some passport readers need a document number padded with char "<" ("EXnnnnnn<")

To use mrpkey under Windows you need:
python, pyscard, pyserial, pywin32, pycrypto, python imaging library

GNU Radio

GNU Radio is a collection of software that when combined with minimal hardware, allows the construction of radios where the actual waveforms transmitted and received are defined by software. What this means is that it turns the digital modulation schemes used in today's high performance wireless devices into software problems.

pwnpass

RFID tool by 3ric Johanson (get info from rfid on credit cards), presented at Shmoocon 2009
See also this video showing sth probably similar

libnfc

Oen source library for Near Field Communication (NFC) using PN53x, current support for ACR122U v1.x readers.

Privacy

Misc