dùng phổ biến nhất hiện nay vì rẻ và dễ dùng. Như tên gọi, OTP chỉ có giá trị sử dụng một lần nên tính bảo mật cao: sau khi người dùng gõ vào và đăng nhập thành công thì password này hết hiệu lực (lần đăng nhập sau sẽ dùng password khác); tin tặc nếu có lấy trộm password này cũng không đăng nhập hệ thống được.
Dựa trên thuật toán sinh password, thiết bị OTP cứng có 2 dạng: đồng bộ thời gian và dùng bộ đếm.
• Loại đồng bộ thời gian tạo ra mã số khó đoán (mật mã hay khóa) dựa vào đồng hồ trong và mã số này được xác thực với điều kiện đồng hồ trong của thiết bị OTP đồng bộ với máy chủ xác thực. Do sự xê dịch của đồng hồ, việc đồng bộ tuyệt đối chính xác là không thể nên máy chủ xác thực phải chấp nhận các khóa có sự sai lệch đôi chút. Điều quan trọng đó là thu hẹp hết mức “khung cửa” này để giảm thiểu khả năng bị tấn công. Đa phần các nhà cung cấp thiết bị OTP áp dụng phương thức cộng dồn thời gian xê dịch để điều chỉnh với mỗi xác thực thành công. Thiết bị OTP đồng bộ thời gian có thể phải cân chỉnh lại nếu không được sử dụng một thời gian dài.
• Loại dùng bộ đếm tăng bộ đếm trong mỗi khi sinh ra một khóa mới và khóa này được xác thực với điều kiện bộ đếm trong của thiết bị OTP đồng bộ với máy chủ xác thực. Khác với bộ đếm trong của thiết bị OTP, bộ đếm của máy chủ được điều chỉnh với mỗi xác thực thành công. Với loại này, thiết bị OTP và máy chủ xác thực dễ bị “mất đồng bộ”.
So với thiết bị OTP đồng bộ thời gian, thiết bị OTP dùng bộ đếm kém an toàn hơn trong việc chống đỡ kiểu tấn công thụ động online và offline. Tin tặc có thể thực hiện tấn công kiểu giả mạo (phishing) và thu thập nhiều khóa để dùng sau đó, hay ai đó lấy được thiết bị này có thể tạo sẵn các khóa mà không hành động ngay. Một số thiết bị OTP được bảo vệ bằng mã PIN (tương tự password), phương thức này chống được kiểu tấn công offline nhưng không chống được kiểu tấn công online. Cũng có một số thiết bị OTP có khả năng sinh chữ ký số và đây là công cụ hiệu quả để chống lại các cuộc tấn công chủ động.
Cả hai loại thiết bị OTP trên đều dùng pin và phải thay sau vài năm. Mỗi thiết bị được tạo duy nhất với mã số riêng do vậy người dùng phải lập lại quy trình đăng ký mỗi khi thay thế thiết bị OTP.
Một biến thể của thiết bị OTP đó là dùng phần mềm giả lập thiết bị phần cứng, cài trên thiết bị di động như PDA hay điện thoại di động (ĐTDĐ). Đây là giải pháp hiệu quả và ít tốn kém, ít nhất cho đến khi các thiết bị di động trở nên dễ bị can thiệp như máy tính và người ta cũng phải cài đặt firewall, trình chống virus, công cụ lọc spam... trên các thiết bị này. Thiết bị OTP "mềm" thường là mục tiêu nhân sao và
người dùng có thể bị mất quyền kiểm soát khóa mềm của mình mà không biết.
Thiết bị OTP mềm trên thiết bị di động có thêm mã PIN bảo vệ gần đạt như thiết bị OTP cứng. Tuy không có chi phí phần cứng (thiết bị di động có sẵn) và chi phí phân phối trực tiếp nhưng khi triển khai đại trà có thể phải đối mặt với khó khăn trong việc cài đặt và vận hành phần mềm trên danh mục ĐTDĐ mở rộng không ngừng và cũng phải cân nhắc đến số người dùng, tuy nhỏ, không có ĐTDĐ tương thích hay không có ĐTDĐ.
<!--[if !vml]--> <!--[endif]-->
2. Khóa SMS
SMS cũng có thể được dùng làm phương tiện sinh OTP như khóa hai. Có hai dạng khóa SMS: tức thời và lô.
• Với phương thức SMS tức thời, trước tiên người dùng thực hiện đăng nhập với password như bình thường, nếu thành công máy chủ xác thực sẽ sinh OTP và gửi ngay SMS cho người dùng để hoàn tất khóa xác thực thứ hai. Giao thức SMS không bảo đảm gửi tin thành công hay gửi kịp thời. Điều này có thể làm giảm tính khả dụng của việc xác thực hai khóa dựa trên SMS.
• Với khóa SMS lô thì khác, người dùng nhận một danh sách mã số trước khi đăng nhập. Mỗi mã số gắn với một ký tự hay số dòng. Người dùng cần nhập vào mã số tương ứng với dòng yêu cầu để làm khóa xác thực thứ hai. SMS lô có thể giảm đáng kể chi phí SMS và khắc phục được vấn đề chất lượng dịch vụ của giao thức SMS vì danh sách được gửi đến người dùng trước khi họ thực sự cần đến. Tuy nhiên khuyết điểm của SMS lô là khả năng bị tấn công lớn hơn.
Ngoài ra, còn có một hình thức khóa SMS khác đơn giản hơn: "reply" ký tự quy ước nào đó, chẳng hạn dấu #. Sau khi đăng nhập với username và password, người dùng sẽ nhận được cuộc gọi hay tin nhắn SMS và nhấn # trả lời để xác thực lần hai. Với cách này, việc xác thực được thực hiện trên 2 kênh khác nhau: một qua đường
Internet và một qua sóng di động.