Card revocation

นั่งคิดว่าบัตรอะไรก็ตามที่ใช้ยืนยันตัวตนได้ ควรมี Protocol อะไรสักอย่างไว้ยืนยันว่าเป็นบัตรใบล่าสุดจริงๆ

กรณีที่ใกล้ตัวที่สุดคือบัตรนิสิตของมหาวิทยาลัยเกษตรศาสตร์ บัตรทุกใบมีบาร์โค้ดเป็นตัวยืนยันธุรกรรม (เช่นการยืมหนังสือห้องสมุด)

บาร์โค้ดหน้าบัตรจะอยู่ในรูป 2XX-[รหัสนิสิต]-X ซึ่งเลขส่วน XX หลักที่สองและหลักที่สาม จะเป็นจำนวนบัตรที่เคยทำไปก่อนหน้านั้น (บัตรใบแรกจะเป็น 00, ทำครั้งต่อมาเป็น 01, 02, …) มีหลักสุดท้ายของบาร์โค้ดเป็น checksum ของเลขบาร์โค้ดทั้งหมดอีกที

ทันทีที่ออกบัตรใบใหม่และนำไปใช้ ฐานข้อมูลต่างๆ (ไม่มีฐานข้อมูลกลาง) จะค่อยๆ revoke บัตรใบเก่าทิ้งไปเอง (เคยลองเอาใบเก่าไปใช้ยืมหนังสือห้องสมุด เจ้าหน้าที่แจ้งให้ทราบทันทีว่าเป็นใบเก่า ใช้ยืมไม่ได้)

กรณีบัตรประชาชนน่าจะง่ายพอๆ กับกรณีของม.เกษตรศาสตร์ เพราะบัตรประชาชนทุกใบจะมีโค้ดหลังบัตรซึ่งต่างกันไป กล่าวคือเลขชุดที่สอง และชุดที่สามของตัวเลขหลังบัตร เป็นเลขล็อตบัตร และลำดับของบัตรในล็อตนั้นๆ ตามลำดับ

ถ้ากรมการปกครองมี API ที่ให้ตรวจเลขบัตรดังกล่าวว่าเป็นใบล่าสุดหรือเปล่าก็เรียบร้อย แค่ป้อนเลขบัตรประชาชน กับเลขหลังบัตร ระบบไม่ expose ข้อมูลส่วนตัวอื่นๆ นอกจากว่าบัตรใบนี้เป็นใบล่าสุดหรือเปล่า ปัญหาเรื่องการ revoke บัตรทิ้งจะหมดทันที

Leave a Reply

Your email address will not be published. Required fields are marked *