LudovicRousseau / pyscard

pyscard smartcard library for python
http://pyscard.sourceforge.net/
GNU Lesser General Public License v2.1
377 stars 108 forks source link

Using pyscard to read Hitag 2 cards #138

Closed carstenfuchs closed 1 year ago

carstenfuchs commented 1 year ago

Hello,

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 you please give me a clue how to proceed?

LudovicRousseau commented 1 year ago

No idea. https://ludovicrousseau.blogspot.com/2020/11/how-to-get-smart-card-support.html