HDC V4.0 & Smart Card On Ubuntu

เนื่องจาก HDC ของกระทรวงสาธารณสุขได้ปรับปรุงเวอร์ชั่นใหม่ ทำให้การเข้าใช้งานระบบด้วย Smart Card ด้วย Linux แบบเดิมไม่สามารถทำได้ เคยเขียนวิธีใช้เวอร์ชั่นเดิมไว้ที่นี่ (HDC & Smart Card On Ubuntu)

ถ้าจากข้อมูลการปรับปรุงจะเห็นว่า

  • มีการใช้ HTTPS
  • มีการปรับปรุง Agent

ที่นี้เราจะเข้าใช้งานระบบด้วย Smart Card ด้วย Linux (ในที่นี้ใช้ Ubuntu 18.04)

  1. ทำการดาวน์โหลด Smart Card Agent เวอร์ชั่นปรับปรุง ทำการติดตั้งให้เรียบร้อย
  2. ตรวจสอบ Smart Card ในเครื่อง ถ้าพบเครื่องอ่าน Smart Card จะขึ้นหน้าตาแบบนี้ (กรณีไม่พบให้ทำการติดตั้งแพคเกจ sudo apt install pcscd pcsc-tools
  3. ทำการรัน Smart Card Agent ได้เลย (ข้ามเรื่องติดตั้ง JRE ไปเลยนะ ถ้าไม่มีก็ติดตั้งซะ)
    java -Dsun.security.smartcardio.library=/lib/x86_64-linux-gnu/libpcsclite.so.1 -jar JSmartCardReader.jar 8084

  4. เปิดหน้า Login ของ HDC ก็เป็นอันสามารถเข้าใช้งานได้ เคลียร์ !!!

ป.ล. ที่เปลี่ยนแปลงจากเวอร์ชั่นเดิม

  • Port ปรับมาใช้ 8084 ในตัว Agent
  • ใช้ HTTPS

 

Smart Card Reader เสียรึเปล่าเนี่ย ?

Smart Card Reader เสียรึเปล่าเนี่ย ?

คำถามแรกเลยเวลาที่เปิดใช้งานโปรแกรมที่จำเป็นต้องติดต่อกับ Smart Card (สำหรับหน่วยงานราชการเกี่ยวกับเงิน ๆ ทอง ๆ นี่หลายโปรแกรมกันเลยทีเดียวเชียว) แล้วผลปรากฏว่า นิ่ง นิ่ง โปรแกรมไม่อ่านการ์ด/บัตร แล้วก็จะเกิดคำถามต่อ ๆ มา

  • Driver เครื่องอ่านติดตั้งรึยัง ติดตั้งแล้วใช้ได้ไหม
  • โปรแกรมต้องการคอมโพเนนท์/ไลบรารี่อะไรเพิ่มเติมอีกไหม
  • การ์ด/บัตร ยังอ่านได้ไหม มันเลือนไปอ่านไม่ได้เหมือนหัวใจใครบางคนรึเปล่า
  • แล้วเครื่องนี่ยังใช้ได้ไหม (วะ) เนี่ยยยยย

ปกติเราก็มักจะจำกัดขอบเขตของปัญหาใช่ไหม ถ้าเครื่อง Smart Card Reader เจ๊งจริงก็จะได้รู้ไง โดยฝั่ง Linux ก็สามารถใช้ pcsc_scan ตรวจสอบ ผลที่ได้ก็จะประมาณนี้ถ้าทุกอย่างโอเค

ในฝั่ง Windows เองมักใช้โปรแกรมที่ติดมากับ Smart Card Reader ซึ่งปกติก็มักหายไปกับแผ่น Driver เรียบร้อยแล้วหรือใครเพียรพยายามเก็บไว้ก็ดีไป ส่วนเราจะอิ๊อ๊ะอยู่ใย ก็ทำเองเลย โดยความต้องการพื้นฐานสำหรับรันโปรแกรมนี้ คือ

  • .NET Framework 2.0 ขึ้นไป
  • Smart Card Reader
  • การ์ด/บัตร ประชาชนคนไทย 😛

โปรแกรมชื่อ Reader Checker สามารถตรวจสอบว่าเครื่องอ่านหรือบัตรใช้งานได้จริงหรือไม่ วิธีง่าย ๆ ก็ให้โปรแกรมอ่านการ์ด/บัตรนั่นแหล่ะ กรณีที่มีการติดตั้งเครื่องอ่านสมาร์ทการ์ดมากกว่าหนึ่งเครื่องก็สามารถเลือกได้จากลิสต์ ดังรูป

กรณีพบความผิดพลาดไม่สามารถอ่านบัตรได้หรือกรณีอื่นก็สามารถตรวจสอบได้จากข้อความแจ้งเตือนจากโปรแกรม ถ้าทุกอย่างโอเค โปรแกรมจะทำการอ่านข้อมูลในการ์ด/บัตรออกมา แบบนี้

ป.ล.

  • โปรแกรมสามารถส่งออก/Export รูปที่อ่านได้ ถ้าต้องการ
  • ไลบรารี่ที่เกี่ยวข้อง กรณีต้องการพัฒนาโปรแกรมที่เกี่ยวกับ บัตรประชาชนคนไทยก็ ตามไปที่ GitHub ของคุณ Chakphanu Komasathit หรือในกลุ่มของ HOSXP
  • Specification ของ PC/SC
  • Windows PC/SC 1.0 (Smart Card)
  • สามารถสนับสนุนค่ากาแฟเราได้นะ Bitcoin Wallet Address :
    3DchASXQrisoqmJfxU6uRsbC5NV3Wsspyb

 

 

 

HDC & Smart Card On Ubuntu

จากที่ระบบ HDC ของกระทรวงสาธารณสุขปรับปรุงจนถึงเวอร์ชั่น 4.0 และก็มีการปรับปรุงเรื่องการตรวจสอบสิทธิ์การเข้าถึงข้อมูลด้วย Smart Card ซึ่งมันก็เป็นเรื่องที่น่ายินดีเลย (เราเองก็เพิ่งได้อบรมเชิงปฏิบัติการจากจังหวัดไปเมื่อวันนี้ สด ๆ ร้อน ๆ)

ด้วยความที่เครื่องทำงานหลัก ๆ อยู่บน Ubuntu งั้นเราก็มาลองใช้ Smart Card ตรวจสอบเพื่อเข้าระบบ HDC ผ่าน Ubuntu กัน (สำหรับดิสโทรอื่นก็คงไม่ต่างกันมากนัก) และ Smart Card Agent ก็ถูกพัฒนาขึ้นโดยใช้ Java เพราะฉะนั้นก็การันตีในระดับนึงว่าแพลตฟอร์มอื่นก็รันได้เช่นกัน

  1. เดิม ๆ เครื่องไม่รู้จัก Smart Card รัน Agent จะขึ้นไดอะล็อกแบบนี้ ไม่ต้องตกใจ มันแจ้งเตือนถูกแล้ว
  2. เพราะฉะนั้นก็ทำให้เครื่องเรารู้จัก Smart Card ซะ มีแพคเกจที่จำเป็นสำหรับติดต่อ Smart Card ก็ติดตั้งได้เลยตามนี้
    sudo apt install pcscd pcsc-tools
  3. ตรวจสอบอีกทีว่าติดต่อ Smart Card ได้แล้ว ด้วย pcsc_scan


    เจอข้อความตามภาพก็เป็นอันว่าเครื่องรู้จัก Smart Card Reader และสามารถอ่านบัตรประชาชนชาวไทยได้เรียบร้อยแล้ว

  4. ขั้นตอนต่อไปก็รัน Smart Card Agent ได้เลย (ข้ามเรื่องติดตั้ง JRE ไปเลยนะ ถ้าไม่มีก็ติดตั้งซะ)
    java -Dsun.security.smartcardio.library=/lib/x86_64-linux-gnu/libpcsclite.so.1 -jar javadaemon.jar 8080

    **มีเรื่องที่ต้องตรวจสอบ 2 เรื่องคือ
    – Port 8080 ไม่ควรถูกใช้ถ้าใช้ก็ปิด Service ที่ใช้ชั่วคราว
    – เพื่อให้ไลบรารี่ smartcardio ของ java ทำงานได้ ก็ใช้คำสั่งตามข้างบน อ้างอิง

  5. เปิดหน้า Login ของ HDC ก็เป็นอันสามารถเข้าใช้งานได้ เคลียร์ !!!