ระบบพิสูจน์และยืนยันตัวตนดิจิทัลของประเทศไทย
ประมาณปลายๆปีนี้ประเทศไทยจะมีระบบการพิสูจน์และยืนยันตัวตนทางดิจิทัลออกมาให้เราๆท่านๆใช้กัน (กำหนดการที่ผมได้ยินมา ซึ่งน่าจะยังไม่ยืนยันและยังไม่เป็นทางการ)
ซึ่งโปรเจคนี้มีตัวย่อที่ทีมทำงานเรียกกันเองว่า NDID
เว็บหลักอย่างเป็นทางการ หรือ เฟสบุ๊คเพจของโครงการ
ผมเองอาจจะอธิบายได้ไม่ดีเท่าไหร่นัก เลยอยากแนะนำให้ดูวีดีโอที่พูดในงาน TEDx ที่เชียงใหม่ (~15 นาที) โดย ดร.ภูมิ ภูมิรัตน ซึ่งเป็นหนึ่งในคณะออกแบบทางเทคนิคของระบบนี้
ภาพรวมของระบบ
ระบบนี้มีเป้าหมายเพื่อนำตัวตนของของประชาชนขึ้นระบบดิจิทัล ซึ่งข้อดีก็คือการที่เราจะสามารถได้รับการแจ้งเตือนแบบ real time เมื่อมีการนำ “ตัวตน” ของเราไปทำธุรกรรม
และเพื่อขอความยินยอม (consent) หรือเพื่อให้เราปฏิเสธธุรกรรมทันทีหากธุรกรรมที่แจ้งเตือนนั้นเราไม่ได้เป็นคนขอทำ
(ซึ่งหนึ่งในกรณีตัวอย่างที่รู้จักกันก็คือเคสคุณณิชา ที่กว่าจะรู้ตัวว่ามีการทำธุรกรรมเรื่องก็บานปลายไปมากแล้ว)
ผู้เกี่ยวข้องที่ต้องเชื่อมต่อกับระบบนี้ แบ่งเป็นสามกลุ่มคือ
- RP (Relying Party)
- องค์กรที่บุคคลต้องการทำธุรกรรมด้วย
- IdP (Identity Provider)
- องค์กรที่ทำหน้าที่พิสูจน์และยืนยันตัวตนให้กับบุคคลที่กำลังจะทำธุรกรรมกับ RP
- รวมถึงการขอ consent หรือปฏิเสธการทำธุกรรมจากบุคคลนั้นๆ
- AS (Authorative source)
- องค์กรที่ทำหน้าเก็บรักษาข้อมูลของบุคคล และจะส่งมอบข้อมูลให้ RP หากบุคคลยินยอม
ซึ่งองค์กรหนึ่งๆสามารถสวมบทบาทมากกว่า 1 บทบาทได้ เช่น ธนาคารหนึ่งๆอาจจะเป็นบทบาททั้งสามบทบาทเลย
ตัวอย่างการใช้งาน
ผมต้องการเปิดบัญชีกับธนาคาร x ที่ไม่เคยมีบัญชีมาก่อน แต่ผมมีบัญชีกับธนาคาร y
ซึ่งตอนที่ผมเปิดบัญชีกับธนาคาร y นั้น ทางธนาคาร y ได้ทำการพิสูจน์และยืนยันตัวตนของผมเรียบร้อยแล้ว
เมื่อผมขอเปิดบัญชีกับธนาคาร x เพื่อความสะดวก ธนาคาร x สามารถอาศัยขั้นตอนพิสูจน์และยืนยันตัวตนที่ผมได้ทำไปแล้วกับธนาคาร y ได้
ซึ่งธนาคาร y จะสามารถให้คำยืนยันได้ก็ต่อเมื่อ “ได้รับความยินยอมจากผม” ซึ่งอาจจะมาในรูปแบบของการให้ผมล็อกอินเข้าแอพลิเคชั่นของธนาคาร y ไปกดยืนยัน (หรือจะโทรหาก็ได้ อันนี้แล้วแต่ธนาคารจะเลือกใช้)
จากกรณีนี้ ธนาคาร x คือ RP ธนาคาร y คือ IdP
และถ้าหากธนาคาร x ต้องการข้อมูลของผมเพิ่มเติมนอกเหนือจากการยืนยันตัวตน ก็สามารถระบุไปในคำขอ consent ได้
ตัวอย่างเช่นธนาคาร x ต้องการ bank statement จากธนาคาร y ซึ่งคำขอนี้จะถูกระบุมาอย่างชัดเจนให้ผมอ่านก่อนที่จะเลือก consent หรือ reject
ซึ่งกรณีนี้แปลว่าธนาคาร y รับบทบาท AS ไปในตัว
เท่าที่ผมทราบมา(ยังไม่ยืนยัน) การใช้งานที่ระบบนี้(และกฎหมาย)รองรับ ช่วงแรกๆจะเป็นการขอยืนยันตัวตนเพื่อเปิดบัญชีธนาคาร
หลังจากนั้นจะเป็นการยืนยันตัวตนและขอข้อมูลทางการเงิน(เครดิตบูโร)เพื่อขอสินเชื่อบุคคล
หลังจากนั้นจะพยายามขยายการใช้งานให้แพร่หลายทั่วประเทศซึ่งจะไม่จำกัดแค่ธุรกิจการเงิน โดยระบบนี้จะเป็นเหมือนโครงสร้างพื้นฐานให้ธุรกิจต่างๆมาต่อยอดบนระบบนี้ได้
แน่นอนว่าการติดต่อกับภาครัฐก็เป็นหนึ่งในเป้าหมาย
สิ่งที่คนทั่วไปเห็น
ตัวอย่างการใช้งานด้านบน เมื่อมองจากมุมมองผู้ใช้อาจจะเป็นประมาณนี้
- ผู้ใช้เข้าเว็บไซต์ธนาคาร x เพื่อขอเปิดบัญชีออนไลน์ โดยระบุเลขบัตรประชาชน
- ผู้ใช้เลือกการยืนยันตัวตนผ่านระบบ NDID แทนการยื่นเอกสารแบบเก่า
- ผู้ใช้เลือกธนาคาร y เป็น IdP
- ธนาคาร y ส่งคำขอไปหาลูกค้าของตนที่มีเลขบัตรประชาชนดังกล่าว
- ผู้ใช้เปิดแอพลิเคชั่นของธนาคาร y เพื่อกดยินยอมให้ธนาคาร y ยืนยันตัวตน
- ธนาคาร y อาจจะเลือกยืนยันตัวตนโดยให้กด PIN หรือแสกนใบหน้า/ลายนิ้วมือ
- ธนาคาร x ได้รับคำยืนยันว่าผู้ใช้คือบุคคลนั้นจริง จึงดำเนินการเปิดบัญชีได้
ทั้งนี้ขอเน้นย้ำว่าข้อมูลอ่อนไหวต่างๆเช่นเลขบัตรประชาชนจะไม่มีการเก็บบันทึกไว้ในระบบ
แต่ธนาคาร x และธนาคาร y จะใช้ช่องทางอื่นเพื่อส่งข้อมูลส่วนนี้หากันโดยตรง โดยช่องทางที่ว่าจะมีการเข้ารหัสลับ (Encrypt) เพื่อไม่ให้ถูกอ่านได้ระหว่างทาง
และระบบจะมีการจัดเก็บหลักฐานต่างๆตามทฤษฎีการเข้ารหัส (cryptography) เพื่อใช้ตรวจสอบหากมีข้อพิพาทเกิดขึ้น (อ่านเพิ่มเติมได้ที่บล็อกอธิบายทางเทคนิค)
บทบาทเพิ่มเติม
นอกเหนือจาก RP, IdP, AS แล้ว ความจริงในระบบนี้ยังมีบทบาท proxy ด้วย ซึ่งผู้ใช้งานทั่วไปอาจจะมองไม่เห็นบทบาทนี้
บทบาทนี้เกิดขึ้นเพื่อให้ผู้เกี่ยวข้องที่ไม่มีทรัพยากรมากพอจะทำการต่อเชื่อมกับ NDID โดยตรง สามารถเชื่อมต่อระบบได้อย่างง่ายขึ้นโดยทำการต่อเชื่อมกับ proxy แทน
หนึ่งใน proxy เท่าที่ผมทราบคือ SET (ตลาดหลักทรัพย์แห่งประเทศไทย) ซึ่งกำลังเตรียมความพร้อมเป็น proxy ให้ บลจ.ต่างๆ
หมายเหตุ
ระบบนี้มีการประชุมเพื่อออกแบบระบบในเชิงเทคนิคจากการร่วมมือของ
- ฝ่ายไอทีจากธนาคารใหญ่ๆทั่วประเทศ
- บริษัท NCB (เครดิตบูโร)
- ตัวแทนหน่วยงานรัฐบาลต่างๆ
- ผู้ทรงคุณวุฒิอีกจำนวนหนึ่ง
(อ้างอิงจากผู้เข้าร่วมประชุมเท่าที่ผมจำได้ ตกหน่วยงานไหนไปขออภัยด้วยครับ)
ซึ่งผู้ก่อตั้งบริษัทที่ผมทำงานอยู่เข้ามามีส่วนรวมในระบบนี้ผ่านที่ปรึกษากระทรวงการคลัง ผมและเพื่อนร่วมงานเลยมีโอกาสได้เข้าไปช่วยทำงานด้วย
ผู้รับผิดชอบจัดทำระบบนี้อย่างเป็นคือบริษัท National Digital ID จำกัด
โดยได้ยินว่ามีคณะกรรมการบริหารประกอบด้วยผู้บริหารจากธนาคารใหญ่ๆประมาณยี่สิบคน (น่าจะมีท่านอื่นๆอีก แต่ผมอยู่ฝ่ายเทคนิคเลยไม่รู้มากนัก)
โดยที่ระบบนี้จะทำเป็นโครงการ opensource (ดูซอร์สโค้ดโครงการได้ที่นี่) ซึ่งผมเขียนบล็อกอธิบายสถาปัตยกรรมระบบเชิงเทคนิคไว้ที่นี่