Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การยืนยันตัวตนด้วยรหัสผ่านแบบไดนามิก (Dynamic Password Authentication) ในความปลอดภัยข้อมูลคืออะไร?

รหัสผ่านแบบไดนามิก (Dynamic Password) ยังเรียกว่ารหัสผ่านครั้งเดียว (One-Time Password - OTP) ใช้เพื่อแก้ไขปัญหาเดิมที่เกิดขึ้นเมื่อการยืนยันตัวตนด้วยรหัสผ่านแบบคงที่ (Static Password) ไม่สามารถรับมือกับการขโมยฟัง (Eavesdropping) การเล่นซ้ำ (Replaying) การปลอมแปลง การเดา ได้

การใช้รหัสผ่านแบบไดนามิก ความไม่แน่นอนจะได้รับการจัดการในข้อมูลยืนยันตัวตนระหว่างกระบวนการล็อกอิน เพื่อทำให้ข้อมูลยืนยันตัวตนแตกต่างกันทุกครั้ง ซึ่งเพิ่มความปลอดภัยของข้อมูลในกระบวนการล็อกอิน เทคโนโลยีนี้สามารถป้องกันการโจมตีเล่นซ้ำ (Replay Attack) ได้อย่างมีประสิทธิภาพ และแก้ไขปัญหาที่รหัสผ่านแบบคงที่อาจถูกขโมยระหว่างการส่งผ่านและในฐานข้อมูล

กระบวนการยืนยันตัวตน

มีสามฟิลด์ที่ส่งไปยังเซิร์ฟเวอร์ยืนยันตัวตนหรือ KDC ได้แก่ Principal ID, Principal Password และ timestamp ปัจจุบันของอุปกรณ์ผู้ใช้ รหัสผ่านหลักและ timestamp จะถูกแฮช (Hashed) ก่อนแล้วจึงส่ง

ฝั่งเซิร์ฟเวอร์ เซิร์ฟเวอร์ตรวจสอบว่าผู้ใช้เป็นคนที่ถูกต้องหรือไม่ ตามที่คาดไว้ เซิร์ฟเวอร์มีฐานข้อมูลของคู่ Principal ID และ Principal Password ที่ถูกต้อง เซิร์ฟเวอร์ตรวจสอบการโจมตีเล่นซ้ำก่อนโดยการเปรียบเทียบ timestamp จากนั้นตรวจสอบว่ารหัสผ่านที่ถูกต้องถูกให้มาแล้วหรือไม่ โดยเปรียบเทียบค่าแฮชของค่าที่ได้รับและค่าที่เซิร์ฟเวอร์สร้างขึ้น ขั้นตอนต่อไปคือการสร้างคีย์ลับที่ใช้เข้ารหัสตั๋ว (Ticket)

การใช้งานกับสมาร์ทการ์ด

วิธีการรหัสผ่านแบบไดนามิกปรับปรุงวิธีการรหัสผ่านแบบดั้งเดิมโดยใช้ความสามารถในการประมวลผลของสมาร์ทการ์ดเพื่อสร้างรหัสผ่านหลายรหัสสำหรับแต่ละครั้งของการพยายามยืนยันตัวตน สมาร์ทการ์ดสร้างรหัสผ่านใหม่หลายครั้งต่อวัน โฮสต์ใช้งานอัลกอริทึมเดียวกับสมาร์ทการ์ด ดังนั้นจึงทราบรหัสผ่านที่ถูกต้องในปัจจุบันของโทเค็นรหัสผ่านในเวลาใดก็ตาม

ผู้ออกการ์ดบูทอัปการ์ดแต่ละใบในระบบด้วยกระบวนการซิงโครไนซ์ที่โหลดโค้ดเริ่มต้นหรือซีด (Seed) ลงในโทเค็นรหัสผ่านและโฮสต์ทั้งสอง ค่า seed และอัลกอริทึมสำหรับกำหนดรหัสผ่านถูกเก็บเป็นความลับ ค่า seed และโค้ดเริ่มต้นสำหรับแต่ละการ์ดเป็นเอกภาพ ทำให้ไม่มีการ์ดสองใบที่มีรหัสผ่านเหมือนกันในเวลาเดียวกัน ไม่น่าจะเป็นไปได้ที่ใครจะทำนายรหัสผ่านที่ถูกต้องในเวลาใดเวลาหนึ่งได้โดยไม่รู้อัลกอริทึม seed และค่าเริ่มต้น

กระบวนการยืนยันตัวตน

ระหว่างการยืนยันตัวตน โทเค็นรหัสผ่านแสดงรหัสผ่านปัจจุบัน ซึ่งส่งไปยังโฮสต์ ตัวยืนยัน (Verifier) เปรียบเทียบรหัสผ่านที่ได้รับกับค่าที่คาดไว้ โฮสต์ยอมรับการ์ดหากตัวระบุตรงกัน วิธีนี้ให้ความถูกต้องของการ์ด เนื่องจากอายุการใช้งานของแต่ละรหัสผ่านสั้น และอัลกอริทึมแตกต่างกันไปกับแต่ละการ์ดและถูกเก็บเป็นความลับ

วิธีนี้ใช้การยืนยันตัวตนโดยไม่ใช้ CAD ผู้ใช้ป้อนข้อมูล (เช่น หมายเลขระบุตัวตนการ์ดและรหัสผ่าน) ลงในเทอร์มินัลคอมพิวเตอร์เพื่อเปิดใช้งานระยะไกล (Remote Login) สมาร์ทการ์ดที่ใช้สำหรับวิธีการยืนยันตัวตนนี้ต้องการแบตเตอรี่ หน้าจอแสดงผล และบางครั้งคีย์แพด