IT General
น้องๆ หลายคนอาจจะเคยได้ยินคำว่า Biometric Authentication กันมาบ้างแล้ว แต่มันคืออะไรกันแน่ แล้วทำไมอนาคตมันถึงสำคัญนักหนา? สมัยผมทำร้านเน็ตคาเฟ่ SiamCafe เมื่อ 20 กว่าปีก่อน แค่ใส่รหัสผ่านก็หรูแล้ว ใครจะไปคิดว่าวันนึงเราจะใช้ลายนิ้วมือ สแกนหน้า หรือแม้กระทั่งม่านตา เพื่อยืนยันตัวตน
Biometric Authentication ก็คือการยืนยันตัวตนโดยใช้ลักษณะทางกายภาพ หรือพฤติกรรมที่เป็นเอกลักษณ์ของแต่ละคนนั่นเอง ไม่ว่าจะเป็นลายนิ้วมือ, ใบหน้า, ม่านตา, เสียงพูด, ลายมือ หรือแม้แต่การเดิน (อันนี้เริ่มล้ำละ) ซึ่งมันสำคัญมากๆ เพราะช่วยเพิ่มความปลอดภัย ลดความเสี่ยงในการถูกแฮก หรือถูกปลอมแปลงตัวตนได้เยอะเลย
ลองคิดดูสิ สมัยก่อนเราต้องจำรหัสผ่านเป็นสิบๆ อัน บางทีก็ตั้งง่ายเกินไป โดนแฮกง่ายๆ แต่ถ้าเราใช้ Biometric Authentication พวกแฮกเกอร์จะมาขโมยลายนิ้วมือเราได้ยังไง (ถึงจะมีการปลอมแปลงได้บ้าง แต่ก็ยากกว่าเยอะ)
Biometric Authentication มีหลายประเภท แต่ที่นิยมใช้กันหลักๆ ก็จะมี:
หลักการทำงานของ Biometric Authentication โดยทั่วไปก็คือ:
สมัยผมทำร้านเน็ต ผมเคยคิดเล่นๆ ว่าถ้าเอาลายนิ้วมือลูกค้ามาใช้ล็อคอินเครื่อง จะเจ๋งขนาดไหน แต่ตอนนั้นเทคโนโลยีมันยังไม่ถึง
การใช้งาน Biometric Authentication ในปัจจุบันง่ายมากๆ เพราะมันถูกรวมเข้าไปอยู่ในอุปกรณ์ที่เราใช้กันอยู่ทุกวันแล้ว ไม่ว่าจะเป็นสมาร์ทโฟน, แท็บเล็ต, หรือแล็ปท็อป
ถ้าเป็นสมาร์ทโฟน Android หรือ iOS ส่วนใหญ่จะมีระบบสแกนลายนิ้วมือ หรือจดจำใบหน้ามาให้แล้ว วิธีตั้งค่าก็ง่ายๆ แค่เข้าไปที่ Settings -> Security (หรือ Biometrics) แล้วทำตามขั้นตอนที่ระบบแนะนำ
ตัวอย่าง code snippet (Android):
// Check if fingerprint sensor is available
FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
if (!fingerprintManager.isHardwareDetected()) {
// No fingerprint sensor
} else if (!fingerprintManager.hasEnrolledFingerprints()) {
// No fingerprints enrolled
} else {
// Fingerprint authentication is available
}
บางเว็บไซต์ก็เริ่มรองรับการ Login ด้วย Biometric Authentication แล้ว โดยใช้ Web Authentication API (WebAuthn) ซึ่งช่วยให้เราสามารถใช้ลายนิ้วมือ หรือ Face ID เพื่อ Login ได้เลย ไม่ต้องจำรหัสผ่าน
ตัวอย่าง code snippet (WebAuthn):
// Request a new credential
navigator.credentials.create({
publicKey: {
challenge: Uint8Array.from('random challenge', c => c.charCodeAt(0)),
rp: {
name: 'SiamCafe',
id: 'siamcafe.net'
},
user: {
id: Uint8Array.from('user id', c => c.charCodeAt(0)),
name: 'John Doe',
displayName: 'John Doe'
},
pubKeyCredParams: [
{
type: 'public-key',
alg: -7 // ECDSA with SHA-256
}
],
authenticatorSelection: {
requireResidentKey: false,
userVerification: 'preferred'
},
timeout: 60000,
attestation: 'none'
}
})
.then(credential => {
// Credential created successfully
console.log(credential);
})
.catch(error => {
// Error creating credential
console.error(error);
});
ถ้าอยากรู้เรื่อง WebAuthn เพิ่มเติม ลองเข้าไปดูที่ SiamCafe Blog นะครับ ผมเคยเขียนไว้เมื่อนานมาแล้ว อาจจะเก่าไปบ้าง แต่พื้นฐานยังเหมือนเดิม
ดูวิดีโอเพิ่มเติมเกี่ยวกับBiometric Authentication Future:
Biometric Authentication ไม่ได้มีข้อดีอย่างเดียว มันก็มีข้อเสียเหมือนกัน เรามาลองเปรียบเทียบกับทางเลือกอื่นๆ อย่างเช่น รหัสผ่าน และ Two-Factor Authentication (2FA) กันดู
| คุณสมบัติ | รหัสผ่าน | Two-Factor Authentication (2FA) | Biometric Authentication |
|---|---|---|---|
| ความปลอดภัย | ต่ำ (ถ้ารหัสผ่านง่ายเกินไป) | ปานกลาง (ขึ้นอยู่กับวิธีการ 2FA) | สูง (ยากต่อการปลอมแปลง) |
| ความสะดวก | ปานกลาง (ต้องจำรหัสผ่าน) | ปานกลาง (ต้องใส่รหัสจาก SMS หรือ App) | สูง (ไม่ต้องจำอะไรเลย) |
| ต้นทุน | ต่ำ | ต่ำ | ปานกลาง (ขึ้นอยู่กับอุปกรณ์) |
| ความน่าเชื่อถือ | ต่ำ (ขึ้นอยู่กับความปลอดภัยของระบบ) | ปานกลาง (ขึ้นอยู่กับความปลอดภัยของระบบ) | สูง (ขึ้นอยู่กับคุณภาพของเซ็นเซอร์) |
| ข้อเสีย | ลืมง่าย, โดนแฮกง่าย | ยุ่งยาก, อาจโดนดัก SMS | อาจสแกนไม่ติด, มีปัญหาเรื่องความเป็นส่วนตัว |
จากตารางจะเห็นว่า Biometric Authentication มีข้อดีหลายอย่าง แต่ก็มีข้อเสียที่ต้องพิจารณาเหมือนกัน ทางเลือกที่ดีที่สุดก็คือการผสมผสานหลายๆ วิธีเข้าด้วยกัน เพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น
สุดท้ายนี้ อยากจะฝากน้องๆ ที่สนใจเรื่อง IT ว่าอย่าหยุดเรียนรู้ เพราะเทคโนโลยีมันเปลี่ยนแปลงเร็วมาก สมัยผมทำร้านเน็ต ผมต้องตามข่าวทุกวัน กลัวตกเทรนด์ เดี๋ยวลูกค้าหนีหมด ลองแวะไปอ่านบทความอื่นๆ ใน SiamCafe Blog ดูนะครับ อาจจะมีอะไรที่เป็นประโยชน์บ้าง
เอาล่ะน้องๆ มาถึงตรงนี้ แสดงว่าเริ่มสนใจ Biometric Authentication กันแล้วใช่มั้ย สมัยผมทำร้านเน็ตคาเฟ่ (SiamCafe.net Since 1997) เรื่องความปลอดภัยนี่สำคัญสุดๆ เพราะลูกค้าแต่ละคนก็อยากให้ข้อมูลส่วนตัวปลอดภัยใช่ป่ะล่ะ ถึงตอนนั้น Biometric ยังไม่บูมเท่าตอนนี้ แต่ผมก็เริ่มศึกษาไว้ตั้งแต่เนิ่นๆ เลย
จากประสบการณ์ที่ผ่านมา ผมว่า Biometric มันเหมือนดาบสองคมนะ ถ้าใช้อย่างระมัดระวัง มันก็ช่วยให้ระบบปลอดภัยขึ้นเยอะ แต่ถ้าพลาดพลั้งขึ้นมา ก็อาจจะโดนแฮกเกอร์เล่นงานได้ง่ายๆ เหมือนกัน
นี่คือเทคนิคที่ผมเคยใช้จริง แล้วเห็นว่ามันเวิร์ค น้องๆ ลองเอาไปปรับใช้ดูนะ
ตัวอย่าง Code (Pseudo-code) การเข้ารหัสข้อมูล Biometric:
function encryptBiometricData(data, key) {
// Algorithm: AES-256 (ตัวอย่าง)
encryptedData = AES_Encrypt(data, key);
return encryptedData;
}
function decryptBiometricData(encryptedData, key) {
// Algorithm: AES-256 (ตัวอย่าง)
data = AES_Decrypt(encryptedData, key);
return data;
}
อันนี้เป็นแค่ตัวอย่างนะ น้องๆ ต้องเลือกระบบเข้ารหัสที่แข็งแกร่งจริงๆ มาใช้นะครับ
ไม่จริง! ไม่มีอะไรปลอดภัย 100% ในโลกนี้ แม้แต่ Biometric เองก็มีช่องโหว่ แต่ถ้าใช้ให้ถูกวิธี มันก็ช่วยเพิ่มความปลอดภัยได้เยอะมาก
อันนี้เป็นปัญหาใหญ่เลย เพราะเปลี่ยนลายนิ้วมือ หรือม่านตาไม่ได้เหมือนเปลี่ยน Password สิ่งที่ทำได้คือ แจ้งผู้ให้บริการระบบ Biometric ให้ยกเลิกข้อมูลเก่า แล้วสร้างข้อมูลใหม่ (ถ้าทำได้) และระมัดระวังการใช้งานมากขึ้น
ขึ้นอยู่กับประเภทของ Biometric ที่ใช้ ถ้าเป็นลายนิ้วมือ ก็จะเก็บภาพลายนิ้วมือ หรือข้อมูลที่แปลงจากภาพลายนิ้วมือ ถ้าเป็นม่านตา ก็จะเก็บภาพม่านตา หรือข้อมูลที่แปลงจากภาพม่านตา แต่ส่วนใหญ่จะไม่ได้เก็บเป็นภาพดิบๆ นะ จะแปลงเป็นข้อมูลที่เข้ารหัสไว้ก่อน
เยอะแยะ! ตั้งแต่ปลดล็อคโทรศัพท์ เข้าอาคาร ยืนยันตัวตนในการทำธุรกรรมออนไลน์ ไปจนถึงการควบคุมการเข้าถึงข้อมูลสำคัญในองค์กร iCafeForex ก็ใช้ Biometric ในการยืนยันตัวตนลูกค้าด้วยนะ
Biometric Authentication เป็นเทคโนโลยีที่มีอนาคตสดใส แต่ก็ต้องใช้อย่างระมัดระวัง อย่ามองข้ามเรื่องความปลอดภัย และต้องอัพเดทความรู้ใหม่ๆ อยู่เสมอ เพราะแฮกเกอร์ก็พัฒนาตัวเองอยู่ตลอดเวลาเหมือนกัน น้องๆ ลองศึกษาเพิ่มเติมได้จาก SiamCafe Blog นะ มีบทความดีๆ อีกเยอะเลย
หวังว่าบทความนี้จะเป็นประโยชน์กับน้องๆ นะครับ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย!