Self-Sovereign Identity แนวคิดการถือครองอัตลักษณ์ด้วยตนเอง
ศาสตร์ด้านการจัดการอัตลักษณ์และการเข้าถึง (Identity and Access Management) เป็นหลักการพื้นฐานของระบบจัดการข้อมูล (Information System) ในปัจจุบัน หลักการทั่วไปคือ
- Who หรือการระบุว่าใครเป็นผู้ใช้งานระบบ และการระบุว่าผู้ใช้งานนั้นๆ คือบุคคลตามอ้างถึงจริงหรือไม่
- What หรือการระบุสิทธิ์ของผู้ใช้งานแต่ละคนว่าสามารถเข้าถึงบริการ (Service) หรือข้อมูล (Information) ใดได้
ซึ่งการที่ระบบต่างๆ จะทำตามหลักการข้างต้นได้นั้น จำเป็นต้องมีการเติมฟังก์ชันรักษาความปลอดภัยเข้าไปในระบบด้วย
ฟังก์ชันรักษาความปลอดภัยที่ทุกท่านรู้จักกันดีและใช้สำหรับการจัดการอัตลักษณ์และการเข้าถึงก็คือ User Registration และ User Authentication
แต่ด้วยฟังก์ชันเหล่านั้น ผู้ใช้งานจำเป็นต้องให้ข้อมูลส่วนบุคคล (Personal Information) แก่ผู้ให้บริการระหว่างการสร้างบัญชีผู้ใช้ (User Registration)
จากนั้น ผู้ใช้งานจะต้องใช้ข้อมูลอ้างอิง (Credential) ที่มีเพียงผู้ใช้งานนั้นๆ ทราบหรือถือครอง เช่น username, password หรือ biometric เป็นต้น ในการระบุตัวตนผู้ใช้งาน (User Authentication)
การกระทำเช่นนั้น ทำให้เกิดปัญหาหลัก 2 ข้อ คือ
- การจำต้องเชื่อมั่นในผู้ให้บริการ เพราะหากผู้ให้บริการจัดการข้อมูลส่วนตัวของผู้ใช้งานไม่ดี ก็จะส่งผลให้เกิดการรั่วไหลของข้อมูลส่วนตัวได้
- การกระจายของข้อมูลส่วนตัวที่ทำให้ยากต่อการจัดการ เช่น ทุกวันนี้เราใช้งาน social media หลากหลายแห่งมาก หากวันหนึ่งเรามีการเปลี่ยนชื่อ หรือย้ายที่อยู่ เราจะต้องตามแก้ข้อมูลเหล่านี้ในทุกๆ ที่
ก่อนหน้านี้ปัญหาเหล่านี้ยากที่จะแก้ และผู้ใช้งานจะต้องยอมรับความเสี่ยงด้วยตนเอง
การกำเนิดของ Self-Sovereign Identity กับเทคโนโลยี Blockchain
ปฏิเสธไม่ได้ว่าการมาของเทคโนโลยี Blockchain ทำให้เกิดการเปลี่ยนแปลงทางเทคโนโลยีในหลายวงการอย่างมาก รวมไปถึงศาสตร์ของการจัดการอัตลักษณ์และการเข้าถึง
Self-Sovereign Identity (SSI) เป็น Decentralized System ชนิดหนึ่งที่สร้างขึ้นด้วยแนวคิดที่ว่า ผู้ใช้งาน หรือเจ้าของข้อมูล จะมีสิทธิ์สูงสุดในการจัดการอัตลักษณ์และข้อมูลส่วนตัวของตนเอง
เป้าหมายหลักของ SSI System คือการจัดการปัญหาทั้ง 2 ข้อที่กล่าวมาข้างต้น
รูปที่ 1 ภาพรวมโปรโตคอล Self-Sovereign Identity
SSI System เป็นระบบที่ประยุกต์ใช้ทั้ง Application และ Blockchain เข้าด้วยกัน โดยระบบจะแบ่งกลุ่มผู้ใช้งานออกเป็น 3 บทบาทหลักคือ
- Holder หรือ Owner คือผู้ใช้งานทั่วไปที่ต้องการใช้บริการต่างๆ และเป็นผู้ถือครองอัตลักษณ์ของตนเอง
- Issuer คือผู้ใช้งาน หน่วยงาน หรือระบบที่ทำหน้าที่รับรองข้อมูลอ้างอิงที่สามารถตรวจสอบได้ (Verifiable Credential) แก่ Holder
- Verifier หรือ Service Provider คือผู้ใช้งาน หน่วยงาน หรือระบบที่ให้บริการแก่ผู้ใช้งาน (ซึ่งคือ Holder) โดยต้องการข้อมูลอ้างอิงที่ตรวขสอบได้มาใช้ในการระบุตัวตน
ผู้ใช้งานแต่ละคนสามารถเป็นได้ทั้งสามบทบาท (Interchangeable Roles)
การทำงานของ SSI System จะถูกแบ่งออกเป็น 3 ขั้นตอนหลัก (อ้างอิงตามรูปด้านบน) คือ
Identity Creation
การสร้างอัตลักษณ์ใน SSI System จะคล้ายคลึงกับการสร้างบัญชีผู้ใช้ในระบบดั้งเดิม โดย SSI System ส่วนมากจะใช้แอพลิเคชันบนมือถือที่เรียกว่า Identity Wallet เป็นจุดรับข้อมูลต่างๆ ขั้นตอนการทำงานมีดังนี้
- Holder สร้างข้อมูลอัตลักษณ์ของตนเอง เช่น ชื่อ ที่อยู่ อายุ ประวัติการศึกษา ใน Identity Wallet
- Identity Wallet เข้ารหัสและบันทึกข้อมูลอัตลักษณ์ลงในหน่วยความจำของอุปกรณ์ เรียกว่า Identity Vault
- Identity Wallet สร้างตัวระบุแบบกระจายศูนย์ (Decentralized Identifier — DID) ที่จะมีลักษณะเป็นตัวอักษรและตัวเลข เช่น did:sov:abc123456789
- Identity Wallet สร้างคู่กุญแจสำหรับเข้ารหัส (Public & Private Keys) ซึ่ง Private Key จะใช้สำหรับถอดรหัสข้อมูลที่ถูกเข้ารหัสด้วย Public Key
- Identity Wallet สร้าง transaction เพื่อเขียน DID กับ Public Key บน Blockchain
Claim Validation and Verifiable Claim Issuance
ในการระบุตัวตน (User Authentication) ใน SSI System จะใช้ข้อมูลอ้างอิงที่นิยมเรียกว่า Claim หรือข้อกล่าวอ้าง ยกตัวอย่างเช่น “ฉันชื่อสมชาย” หรือ “ฉันอายุมากกว่า 18 ปี”
บางครั้งข้อกล่าวอ้างอาจจะไม่ได้ระบุข้อมูลส่วนตัวโดยตรงก็ได้ อย่างเช่นตัวอย่างที่ 2 ผู้ใช้งานสามารถระบุเพียงแค่ข้อมูลที่จำเป็นต่อการใช้บริการ โดยไม่ต้องระบุอายุตนเองจริงๆ ก็ได้ กระบวนการนี้จะเรียกว่า Zero-knowledge Proof
Issuer มีหน้าที่ตรวจสอบความถูกต้องของข้อกล่าวอ้างนั้นๆ และสร้าง Verifiable Claim จากแผนผังเชิงการเข้ารหัส (Cryptographic Schema) ที่ประกาศอยู่ใน Transaction บน Blockchain
ขั้นตอนการทำงานมีดังนี้
- ก่อนการติดต่อกันของผู้ใช้งานคู่ใด ผู้ใช้งานทั้งคู่ (ในที่นี้คือ Holder กับ Issuer) ต้องแลกเปลี่ยน DID ของกันและกัน
- ผู้ใช้งานเรียกคืน Public Key ของคู่ติดต่อจาก Blockchain โดยใช้ DID ที่ได้รับ
- หลังจากนั้นทุกข้อความที่ส่งระหว่างคู่ติดต่อจะต้องเข้ารหัส (Encryption) และสร้างลายเซ็นต์ดิจิทอล (Digital Signature) ด้วย Private Key ของผู้ส่ง กับ Public Key ของผู้รับ ทั้งหมด
- Holder สร้าง Claim จากข้อมูลส่วนตัวของตนเองใน Identity Wallet
- Identity Wallet เข้ารหัสและส่ง Claim ไปยัง Issuer
- Issuer ตรวจสอบ Claim ที่ได้รับทั้งแบบอัตโนมัติ หรือด้วยมือ (Manually)
- Issuer สร้าง Verifiable Claim ตาม Cryptographic Schema ที่ประกาศไว้บน Blockchain แล้ว ก่อนส่ง Verifiable Claim ที่เข้ารหัสแล้วกลับไปยัง Holder
- Holder รับ Verifiable Claim และเก็บลง Identity Vault ภายใน Identity Wallet
Service Authentication and Proof Presentation
เมื่อผู้ใช้งาน (Holder) ต้องการใช้บริการต่างๆ จาก Service Provider หรือ Verifier ผู้ใช้งานจะต้องสร้างข้อพิสูจน์ (Proof) ตามที่ Verifier ต้องการที่ประกอบด้วยข้อมูลส่วนตัวและ Verifiable Claim
ซึ่งโดยมาก การสร้าง Proof จะจำเป็นต้องใช้ Verifiable Claim แต่ข้อมูลส่วนตัวจะเป็นตัวเลือกที่ผู้ใช้งานจะให้หรือไม่ก็ได้ ตามหลัก Selective Disclosure
ขั้นตอนการทำงานมีดังนี้
- Holder และ Verifier แลกเปลี่ยน DID และเรียกคืน Public Key จาก Blockchain เช่นเดียวกับตอนติดต่อกับ Issuer
- Holder ร้องขอแผนผัง Proof (Proof Schema) จาก Verifier
- Holder สร้าง Proof ตาม Proof Schema โดยเลือกข้อมูลส่วนตัวกับ Verifiable Claim จาก Identity Vault ภายใน Identity Wallet
- Holder ส่ง Proof ที่เข้ารหัสแล้วไปให้ Verifier
- Verifier ตรวจสอบความถูกต้อง สมบูรณ์ของ Verifiable Claim ภายใน Proof จาก Cryptographic Schema ของ Issuer บน Blockchain
- หากข้อมูลใน Proof ถูกต้องทั้งหมด Verifier จะยินยอมให้ Holder ใช้บริการของตนเอง
ถึงการทำงานของ SSI System จะมีความซับซ้อนทางด้านการเข้ารหัส แต่ในมุมของผู้ใช้งานแทบจะไม่ยุ่งยาก และมีการเปลี่ยนแปลงการทำงานเพียงเล็กน้อย
โดยสรุป SSI System ถูกพัฒนาขึ้นเพื่อแก้ 2 ปัญหา ได้ดังนี้
- ผู้ใช้งานไม่จำเป็นต้องเชื่อมั่นในผู้ให้บริการในการจัดเก็บและถือครองข้อมูลส่วนตัวของตนเอง เพราะข้อมูลส่วนตัวทั้งหมดถูกบันทึกใน Identity Vault บนอุปกรณ์ของตนเองเท่านั้น และข้อมูลที่ส่งไปให้ผู้ใช้งานอื่นอาจจะเป็นแค่ส่วนหนึ่งหรือไม่ใช้ข้อมูลจริง (จาก Zero-knowledge proof) ได้
- ผู้ใช้งานไม่จำเป็นต้องจัดการข้อมูลส่วนตัวในหลายที่ เพราะข้อมูลทั้งหมดอยู่ที่ตนเอง ทำให้ง่ายต่อการแก้ไข ลบ หรือใช้งานข้อมูล
ด้วยประโยชน์ข้างต้นของ SSI System บริษัทเทคโนโลยีชั้นนำหลายแห่ง เริ่มนำหลักการนี้ไปใช้สร้างผลิตภัณฑ์ของตนเองเพื่อให้บริการแก่ผู้ใช้งานแล้ว เช่น IBM, Veramo หรือ ShoCard
หากคุณสนใจรายละเอียดเกี่ยวกับ SSI System ที่ลงลึกทางเทคนิค สามารถดูข้อมูลเพิ่มเติมได้ตามลิงค์ด้านล่างนี้