ฉันได้ถูกขอให้ช่วยกำหนดค่าเครื่องอ่านสมาร์ทการ์ดบนคอมพิวเตอร์ที่ใช้ Windows 7 แต่สิ่งนี้ทำให้ฉันสงสัยว่าจะเกิดอะไรขึ้น ถ้าฉันเชื่อมต่อเครื่องอ่านการ์ดกับแล็ปท็อป Ubuntu ของฉันและฉันจะสามารถอ่านข้อมูลจากบัตรประชาชนได้หรือไม่
เครื่องอ่านบัตรสมาร์ทการ์ด EZ100PU
มาดูเครื่องอ่านบัตรกันก่อน
เป็นเครื่องอ่านบัตรสมาร์ทการ์ด FAST ID EZ100PU ที่ได้รับ มาตรฐาน ISO7816 ที่หน้าเพจผลิตภัณฑ์ของรุ่นนี้ ซึ่งเมื่อเราค้นหา EZ100PU จะพบข้อมูล InfoThink Technology อาจจะผลิตจากไต้หวัน
เครื่องอ่านบัตรสมาร์ทการ์ด USB มาพร้อมกับซีดีที่มีไดรเวอร์สำหรับ Windows, Linux, Mac OS และ Android ตลอดจน SDK พร้อมโปรแกรมสาธิตและโค้ดตัวอย่างใน C++, Visual Basic .NET และ C# ดังที่เราจะดูเพิ่มเติมด้านล่างนี้ไม่จำเป็นต้องใช้ไดรเวอร์ ในLinux เนื่องจากใช้งานได้ทันที
การออกแบบบอร์ด (RX-N99B-2) นั้นง่ายมากเพียงแค่ใช้ชิปหลัก: Alcor AU9560 USB สมาร์ทการ์ดคอนโทรลเลอร์ นอกจากนี้เรายังสามารถดูพื้นที่ที่เชื่อมต่อกับชิปของสมาร์ทการ์ดที่ด้านล่างซ้ายของ PCB
การใช้ เครื่องอ่านบัตรสมาร์ทการ์ด ใน Ubuntu 18.04
มาเชื่อมต่อเครื่องอ่านกับแล็ปท็อปของฉัน และใส่บัตรประชาชนไทย (ติดต่อสมาร์ทการ์ด)
เคอร์เนลจะตรวจพบสมาร์ทการ์ดโดยอัตโนมัติเป็นเครื่องอ่านบัตรสมาร์ทการ์ด EMV
1 2 3 4 5 |
[ 3024.839989] usb 3-2: new full-speed USB device number 3 using xhci_hcd [ 3025.020314] usb 3-2: New USB device found, idVendor=058f, idProduct=9540, bcdDevice= 1.20 [ 3025.020317] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 3025.020320] usb 3-2: Product: EMV Smartcard Reader [ 3025.020322] usb 3-2: Manufacturer: Generic |
ฉันต้องการค้นหาเว็บจากที่นี่และฉันเจอ โพสต์บน Linuxmint ซึ่งอธิบายวิธีการทำตามโพสต์ก่อนหน้านี้เกี่ยวกับบัตรประจำตัวประชาชนของสเปน
เราจะต้องติดตั้งแพ็คเกจบางอย่าง (หมายเหตุ: อาจไม่จำเป็นต้องใช้ทั้งหมด แต่ที่สำคัญคือ pcscd และ pcsc-tools):
1 |
sudo apt install libccid pcscd pinentry-gtk2 pcsc-tools libpcsclite-dev libreadline-dev coolkey |
ตอนนี้เราสามารถสแกนบนเครื่องอ่านการ์ดได้แล้ว:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
pcsc_scan PC/SC device scanner V 1.5.2 (c) 2001-2017, Ludovic Rousseau <ludovic.rousseau@free.fr> Using reader plug'n play mechanism Scanning present readers... 0: Alcor Micro AU9560 00 00 Sat Aug 10 10:23:50 2019 Reader 0: Alcor Micro AU9560 00 00 Card state: Card inserted, ATR: 3B 79 96 00 00 54 48 20 4E 49 44 20 31 32 ATR: 3B 79 96 00 00 54 48 20 4E 49 44 20 31 32 + TS = 3B --> Direct Convention + T0 = 79, Y(1): 0111, K: 9 (historical bytes) TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU 250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s TB(1) = 00 --> VPP is not electrically connected TC(1) = 00 --> Extra guard time: 0 + Historical bytes: 54 48 20 4E 49 44 20 31 32 Category indicator byte: 54 (proprietary format) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): NONE Updating /home/jaufranc/.cache/smartcard_list.txt using http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt Possibly identified card (using /home/jaufranc/.cache/smartcard_list.txt): 3B 79 96 00 00 54 48 20 4E 49 44 20 31 32 Thai (passport) |
ตรวจพบ Alcor Micro AU9560 และตรวจพบหนังสือเดินทางไทย อาจเป็นเพราะโปรแกรมที่ใช้สร้างบัตรมีการกำหนดค่าไม่ถูกต้อง?
มีรหัสอื่น ๆ สำหรับบัตรประชาชนไทยโดยเฉพาะใน smartcard_list.txt คุณอาจต้องการตรวจสอบไฟล์นั้นเพื่อดูการรองรับการ์ดทุกประเภท นี่คือรายการที่มีสตริง “ไทย” สำหรับการอ้างอิง:
Thai GSM UICC (Telecommunication)
Thai id card (Other)
Seven-Eleven Value Card / Smart Purse – Thailand (Other)
Thailand National ID (eID)
Thai National ID Card (eID)
Thai National ID Card (eID)
Thai (passport)
Truemove H Thailand (Telecommunication)
True Money Touch Sim (Thailand)
Seven-Eleven Value Card / Smart Purse – Thailand (Contactless) (Other)
Thai Passport 2010, 2011
Thai Passport 2005
การอ่านและถอดรหัสข้อมูลจากบัตรประจำตัวประชาชน
ฉันสามารถเข้าถึงฮาร์ดแวร์ด้วยเครื่องอ่านและประเภทของบัตร ทั้งหมดนี้เป็นเรื่องดี แต่จะเป็นการดีที่จะสามารถเข้าถึงและถอดรหัสข้อมูลภายในบัตรประจำตัวประชาชนของไทยได้ Bouroo ผู้ใช้ Github เขียนโค้ดเพื่อทำสิ่งนั้นใน Python และ NodeJS
ฉันจะใช้สคริปต์ Python ก่อนอื่นเราต้องติดตั้งการอ้างอิงบางอย่าง:
1 2 |
sudo apt install swig python3-pip libncurses-dev pip install readers pyscard |
ตอนนี้เราสามารถรันสคริปต์ได้แล้วและมันจะดึงข้อมูลตามนั้น:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
python thai-id-card.py Available readers: (0, 'Alcor Micro AU9560 00 00') Select reader[0]: 0 Using: Alcor Micro AU9560 00 00 ATR: 3B 79 96 00 00 54 48 20 4E 49 44 20 31 32 Select Applet: 61 0A CID: TH Fullname: EN Fullname: Date of birth: Gender: Card Issuer: Issue Date: Expire Date: Address: |
ฉันลบข้อมูลส่วนบุคคลออกจากเอาต์พุต แต่ทุกอย่างแสดงอย่างถูกต้องในคอนโซลรวมถึงชื่อและที่อยู่โดยใช้ภาษาไทย สคริปต์จะบันทึกภาพถ่ายที่เก็บไว้ในบัตรประจำตัวประชาชนโดยใช้ชื่อไฟล์ <CID> .jpg โดย CID เป็นหมายเลขประจำตัวบัตร
แปลจากบทความภาษาอังกฤษ : Reading ID Card Data in Ubuntu with EZ100PU Smart Card Reader (Thai ID Edition)
บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT