[Pcsclite-muscle] Using pyscard to read Hitag 2 cards

Carsten Fuchs carsten.fuchs at cafu.de
Sun Jul 17 09:29:49 PDT 2022


Dear group,

please forgive me if this is off-topic here. In this case, any kind note to where I should instead be posting would very much be appreciated.

Using Ubuntu 20.04 LTS, Python 3.8.10, pyscard 2.0.2, I try to read Hitag 2 cards:



$ pcsc_scan 
Using reader plug'n play mechanism
Scanning present readers...
0: Elatec TWN4/B1.06/CPF3.05/S1SC1.32/P (Beta 3) 00 00
 
Sun Jul 17 10:35:59 2022
 Reader 0: Elatec TWN4/B1.06/CPF3.05/S1SC1.32/P (Beta 3) 00 00
  Event number: 0
  Card state: Card removed, 
   
Sun Jul 17 10:36:06 2022
 Reader 0: Elatec TWN4/B1.06/CPF3.05/S1SC1.32/P (Beta 3) 00 00
  Event number: 1
  Card state: Card inserted, 
  ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 40 00 00 00 00 00 00 28

ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 40 00 00 00 00 00 00 28
+ TS = 3B --> Direct Convention
+ T0 = 8F, Y(1): 1000, K: 15 (historical bytes)
  TD(1) = 80 --> Y(i+1) = 1000, Protocol T = 0 
-----
  TD(2) = 01 --> Y(i+1) = 0000, Protocol T = 1 
-----
+ Historical bytes: 80 4F 0C A0 00 00 03 06 40 00 00 00 00 00 00
  Category indicator byte: 80 (compact TLV data object)
    Tag: 4, len: F (initial access data)
      Initial access data: 0C A0 00 00 03 06 40 00 00 00 00 00 00
+ TCK = 28 (correct checksum)

Possibly identified card (using /usr/local/share/pcsc/smartcard_list.txt):
3B 8F 80 01 80 4F 0C A0 00 00 03 06 40 00 00 00 00 00 00 28
3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 00 00 00 00 00 ..
    Card name not given (as per PCSC std part3)
3B 8F 80 01 80 4F 0C A0 00 00 03 06 40 00 00 00 00 00 00 28
3B 8F 80 01 80 4F 0C A0 00 00 03 06 40 .. .. 00 00 00 00 ..
    RFID - Low Frequency < 135 kHz (as per PCSC std part3)
3B 8F 80 01 80 4F 0C A0 00 00 03 06 40 00 00 00 00 00 00 28
    HID Proximity. Used to access buildings. Reference on the card "HID0008P".
    http://www.hidglobal.com/product-display/cards-and-credentials/hid-proximity
   
Sun Jul 17 10:36:07 2022
 Reader 0: Elatec TWN4/B1.06/CPF3.05/S1SC1.32/P (Beta 3) 00 00
  Event number: 2
  Card state: Card removed, 



I understand how I can use pyscard to send APDU commands and receive replies, e.g. for reading the UID. However, Hitag 2 cards don't seem to use ISO APDU commands and from the data reference sheets that I can find I'm not sure how to proceed. The intention is to read the card's data blocks and to possibly use the encryption features (I know that Hitag 2 encryption is broken).

Can someone please give me a clue on how to proceed?

Best regards,
Carsten




More information about the pcsclite-muscle mailing list