การพิสูจน์ทราบตัวตน (หรือเรียกสั้นๆ ว่า การพิสูจน์ตัวตน) คือกระบวนการแสดงหลักฐาน (Identity) และตรวจสอบความถูกต้องของหลักฐานของบุคคลหรือคอมพิวเตอร์ เพื่อให้ทราบว่าบุคคลหรือคอมพิวเตอร์ที่กล่าวอ้างนั้นเป็นตัวจริงหรือไม่ ขั้นตอนของการพิสูจน์ตัวตนแบ่งออกเป็น 2 ขั้นตอน ได้แก่ “การระบุตัวตน” และ “การพิสูจน์ตัวตน”
การพิสูจน์ตัวตน (Authentication) คือขั้นตอนการตรวจสอบหลักฐาน เพื่อพิสูจน์ว่าบุคคลหรือคอมพิวเตอร์ที่แสดงตนเองนั้น (ขอพิสูจน์ตัวตน) เป็นบุคคลหรือคอมพิวเตอร์ที่กล่าวอ้างจริงหรือไม่ เช่น เครื่องเว็บเซิร์ฟเวอร์ของ www.hotmail.com ได้ตรวจสอบว่าผู้ใช้สมชายที่กล่าวอ้างนั้นเป็นตัวจริงหรือไม่ โดยการนำค่า password ที่ส่งมาจากบราวเซอร์ ไปทดสอบหรือเปรียบเทียบกับรหัสผ่านในฐานข้อมูลผู้ใช้ของ hotmail
หลักฐานที่ผู้ใช้นำมากล่าวอ้างที่เกี่ยวกับเรื่องของความปลอดภัยนั้นสามารถจำแนกได้ 2 ชนิด
Actual identity คือหลักฐานจริงที่สามารถบ่งบอกได้ว่าบุคคลที่กล่าวอ้างนั้นเป็นใคร เช่น ลายนิ้วมือ ใบหน้า DNA และบัตรประจำตัวประชาชน
Electronic identity คือหลักฐานทางอิเล็กทรอนิคส์ที่สามารถใช้บ่งบอกข้อมูลของบุคคล หรือคอมพิวเตอร์นั้น ซึ่งสามารถใช้ระบุตัวตนของบุคคลหรือคอมพิวเตอร์ได้ในทางอ้อม เช่น username, password ที่ใช้ล็อกอินเข้าสู่เว็บไซต์ ใช้ระบุตัวตนของบุคคลที่เป็นเจ้าของบัญชีผู้ใช้นั้น ส่วนหลักฐานทางอิเล็กทรอนิคส์ที่รับรองคอมพิวเตอร์ก็อย่างเช่น Certificate ทีออกโดย CA เพื่อรับรองตัวตนของเว็บไซต์และเครื่องคอมพิวเตอร์แม่ข่าย
กลไกของการตรวจสอบที่สามารถบ่งชี้ได้ว่าเป็นบุคคลหรือคอมพิวเตอร์ที่กล่าวอ้างนั้นจริงหรือไม่จริงสามารถตรวจสอบได้จาก “สิ่งที่คุณมี” หรือ “สิ่งที่คุณรู้” หรือ “สิ่งที่คุณเป็น” ซึ่งสามารถใช้ 2 อย่าง หรือ ทั้ง 3 อย่าง ประกอบกันได้
สิ่งที่คุณมี (Possession factor) เช่นกุญแจรถ บัตร ATM บัตรเครดิต Smart Card หมายเลข MAC Address ของคอมพิวเตอร์ หรือ Certificate ที่รับรองโดย CA เป็นต้น
สิ่งที่คุณรู้ (Knowledge factor) เช่น รหัสผ่าน (password) ที่ใช้ล็อกอินเข้าระบบ ตัวเลขพิน (PIN) เพื่อกดเงินจาก ATM รหัสคีย์ WEO/WPA ของระบบ Wireless LAN เป็นต้น
สิ่งที่คุณเป็น (Biometric factor) เช่น DNA, ลายนิ้วมือ, เรตินา หรือเสียง เป็นต้น
รูปที่ 6 การตรวจสอบด้วยกลไกต่าง ๆ
กระบวนการพิสูจน์ตัวตนจะนำ 3 สิ่งข้างต้นมาใช้ในการยืนยันหลักฐาน โดยอาจนำมาเพียงอย่างเดียว หรือมากกว่า ทั้งนี้ขึ้นอยู่กับระบบหากระบบที่ออกแบบให้มีการยืนยันหลักฐานโดยใช้เพียงสิ่งเดียวจะทำให้มีข้อจำกัดด้านความปลอดภัย เช่น
สิ่งที่คุณมี (เช่น บัตร ATM) อาจจะสูญหายหรือถูกขโมยได้
สิ่งที่คุณรู้ (เช่น รหัสผ่าน) อาจจะถูกดักจับข้อมูล เดา หรือขโมยจากเครื่องคอมพิวเตอร์แม่ข่าย
ดังนั้น หากใช้ “สิ่งที่คุณเป็น” (เช่น ลายนิ้วมือ หรือเรตินา) จึงถือได้ว่าเป็นวิธีที่มีความปลอดภัยสูงที่สุด แต่อย่างไรก็ตามวิธีนี้ก็มีต้นทุนที่ค่อนข้างสูง ทางเลือกอีกอย่างหนึ่งคือการนำสิ่งที่คุณมี มาใช้ร่วมกับสิ่งที่คุณรู้ เช่น ใช้บัตร ATM ร่วมกับ PIN จะสามารถช่วยให้ระดับความปลอดภัยสูงขึ้นโดยใช้ต้นทุนไม่สูงมาก
ประเภทของการพิสูจน์ตัวตน (AuthenticationTypes)
การพิสูจน์ตัวตนโดยใช้รหัสผ่าน (Authenticatio by Passwords)
รหัสผ่านเป็นวิธีการที่มีความง่ายและใช้กันแพร่หลาย รหัสผ่านควรจำกัดให้เฉพาะผู้ใช้ที่มีสิทธิเท่านั้นที่ทราบ การตั้งรหัสผ่านควรจะตั้งให้มีความยาวที่เหมาะสม (ความยาวตั้งแต่ 8 ตัวอักษรขึ้นไป) และควรจะตั้งให้มีความซับซ้อน เช่น ใช้ตัวอักษรตัวเล็กและตัวใหญ่ผสมกันและควรมีตัวเลขหรืออักขระพิเศษปนอยู่ด้วย เช่น F7xV$dGh9z อย่างไรก็ตามรหัสผ่านสามารถถูกดักจับหรือถูกขโมยได้ เช่น การใช้โปรแกรม Ethereal, Wireshark หรือ Sniffer การเปลี่ยนรหัสผ่านอยู่บ่อยๆ สามารถที่จะบรรเทาปัญหานี้ได้ หรืออาจจะใช้เทคนิค leet มาช่วยในการตั้งรหัสผ่าน leet คือการใช้ตัวเลขหรือตัวอักษรที่มีรูปร่างคล้ายกันมาทดแทนกัน เช่น ใช้ 0 (เลขศูนย์) แทน O (ตัวโอใหญ่) ใช้เลข 1 หรือ I (ตัวไอใหญ่) แทนตัว 1 (แอลเล็ก) และอื่นๆ ตัวอย่างเช่น
PASSWORD à PASSWORD
Nologin à Nologin
Hello World à HeIIo%20World
ซึ่งหากแฮกเกอร์ดักจับได้รหัสผ่านก็ไม่สามารถที่จะนำไปใช้ได้ (หากไม่สังเกตหรือไม่นำไปวิเคราะห์) ผู้เขียนมีเทคนิคอย่างหนึ่งที่ทำให้แฮกเกอร์ไม่สามารถโจมตีด้วยวิธี Brute Force ได้นั่นคือ การตั้งรหัสผ่านโดยใช้ตัวอักษรที่ไม่มีในคีย์บอร์ด หรือตัวอักษรที่ไม่สามารถกดคีย์บอร์ดได้ เช่น ใช้ตัวอักษรที่อยู่บนปุ่ม ~ (ตัวที่อยู่ข้างล่าง) ซึ่งบน Windows เวอร์ชั่นภาษาไทยจะไม่สามารถกดได้เพราะ Windows จะเข้าใจว่าผู้ใช้ต้องการเปลี่ยนภาษา นอกจากตัวอักษรนี้ก็ยังมีตัวอักษรอื่นอีกหลายตัว
การพิสูจน์ตัวตนด้วยโดยใช้ PIN (Authentication by PIN)
PIN ย่อมาจาก Personal Identification Number เป็นรหัสลับส่วนบุคคลที่ใช้เป็นรหัสผ่านเพื่อเข้าสู่ระบบ รหัส PIN เป็นที่นิยมใช้อย่างแพร่หลาย เช่น ใช้กับบัตร ATM และใช้กับเครื่องโทรศัพท์มือถือ และ Bluetooth การใช้ PIN มักจะนิยมใช้เป็นตัวเลขความยาวตั้งแต่ 4 ตัวขึ้นไป PIN เป็น “สิ่งที่คุณรู้” ซึ่ง รหัส Pin อาจจะถูกแอบดู หรือรั่วไหลได้โดยวิธีการต่างๆ ดังนั้น จึงมักจะถูกนำไปใช้ร่วมกับ “สิ่งที่คุณมี” เช่น PIN ของบัตร ATM ที่ผู้ใช้จะต้องมีทั้งตัวบัตรและหมายเลข PIN
การพิสูจน์ตัวตนโดยใช้ลักษณะเฉพาะทางชีวภาพ (Authentication by Biometric traits)
ลักษณะทางชีวภาพของแต่ละบุคคลเป็นลักษณะทางภายภาพ จึงไม่สามารถลอกเลียนแบบได้ (เช่น DNA และ Retina) การนำลักษณะทางชีวภาพมาใช้ในการพิสูจน์ตัวตนจะให้ความปลอดภัยสูงที่สุด เช่น การใช้ลายนิ้วมือแทนการตอกบัตร การใช้เสียง และม่านตาเพื่อยืนยันตัวตนก่อนเข้าห้องเซิร์ฟเวอร์ (ดังที่เห็นตัวอย่างในภาพยนตร์เรื่อง Mission Impossible 1996) เป็นต้น
รูปที่ 7 อุปกรณ์ที่ใช้สแกนเรตินา
การพิสูจน์ตัวตนโดยใช้รหัสผ่านเพียงเดียว (One-time Password: OTP)
One-Time Password ถูกพัฒนาขึ้นเพื่อลดปัญหาที่เกิดจากการใช้รหัสผ่านเดิมซ้ำๆ OTP จะบังคับให้ผู้ใช้รหัสผ่านใหม่และเปลี่ยนไปเรื่อยทุกครั้ง ด้วยเหตุนี้จึงทำให้ระบบมีความปลอดภัยมากขึ้น ดังตัวอย่างการนำ OTP มาประยุกต์ใช้คือ K-MOBILE BANKING PLUS ของธนาคารกสิกรไทย ดังรูปที่ 8
รูปที่ 8 ตัวอย่างการใช้งาน One time Password: OTP