* Nguyên lý hoạt động của OTP:
Sau khi đã đăng ký dịch vụ, mỗi lần muốn đăng nhập, người dùng sẽ được cung cấp một mật khẩu tạo ra bởi đầu đọc và thẻ thông minh hay thiết bị tạo mật khẩu dạng cầm tay (token) nhờ vào kết nối internet với máy chủ cung cấp dịch vụ OTP; hoặc cũng có thể thông qua thẻ OTP được tạo sẵn hay điện thoại di động. Mật khẩu này sẽ tự mất hiệu lực sau khi người dùng đăng xuất ra khỏi hệ thống. Như vậy, nếu bị lộ mật khẩu thì người có được mật khẩu đó cũng không thể dùng được, và do đó giải pháp OTP có tính bảo mật cao.
Quá trình tạo mật khẩu mới sẽ lặp lại mỗi lần người dùng đăng nhập vào hệ thống được bảo mật bằng OTP. Công nghệ OTP được dùng nhiều trong chứng thực trực tuyến. Hiện nay người dùng các thiết bị cầm tay như iPhone, Blackberry cũng có thể tự cài đặt cơ chế bảo mật OTP bằng các chương trình như VeriSign, RSA SecureID hay SafeNet MobilePASS.
Sử dụng công nghệ OTP khiến cho việc truy cập bất hợp pháp đến những tài nguyên được giới hạn, ví dụ như một tài khoản máy tính trở nên khó khăn hơn. Thông thường, mật khẩu cố định có thể bị người dùng bất hợp pháp truy cập trong trường hợp họ có đủ thời gian và số lần truy cập.
Thuật toán sinh OTP thường sử dụng các phép toán liên quan tới cách sinh số ngẫu nhiên. Điều này là cần thiết vì nếu không ta có thể dễ dàng dự đoán được OTP sinh cho phiên kế tiếp từ việc quan sát các OTP của những phiên làm việc trước.
Có rất nhiều phương pháp được sử dụng trong sinh mật khẩu OTP, tuy nhiên thông dụng là:
Phương pháp dựa trên việc đồng bộ thời gian: Phương pháp này tạo ra mật khẩu khó đoán dựa vào việc đồng bộ thời gian giữa đồng hồ trong của thiết bị OTP và đồng hồ của 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 sai lệch 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.
Phương pháp dựa trên các thuật toán số học: Phương pháp này sinh OTP trên cơ sở các OTP đã sử dụng trước đó của người dùng. Một ví dụ cho thuật toán này là thuật toán của Leslie Lamport – thuật toán sử dụng các hàm một chiều f. Hệ thống OTP làm việc dựa trên một giá trị khởi tạo s để sinh mật khẩu lần đầu tiên. Mật khẩu OTP được sử dụng cho phiên làm việc đầu tiên sẽ được tính như sau:
OTP1 = fN(s).
Trong đó fN(s) = f(fN-1(s)) – với N là số lần áp dụng hàm f lên giá trị khởi tạo s.
Khi đó ta sẽ có lần lượt các mật khẩu OTP cho các phiên như ở bảng 2.1 dưới đây. Bảng 3.1. Mật khẩu OTP cho các phiên làm việc
Phiên 1 Phiên 2 Phiên 3 Phiên 4 ...
OTP1 = fN(s) OTP2 = fN-1(s) OTP3 = fN-2(s) OTP4= fN-3(s) ...
Nếu một tin tặc có thể bắt được giá trị OTP của một phiên làm việc nào đó thì hắn có thể dùng để đăng nhập vào hệ thống khi mà giá trị OTP này còn hợp lệ, tuy nhiên khi OTP không còn hợp lệ nữa thì tin tặc không thể thực hiện việc đăng nhập nữa và để lấy được giá trị OTP cho lần đăng nhập kế tiếp thì hắn sẽ phải đối mặt với việc tính hàm f ngược. Do hàm f đã được chọn là hàm một chiều nên việc này là cực kì khó để thực hiện. Nếu hàm f là một hàm băm mật mã thì việc tính toán là cực kì khó khăn thậm chí là không thể.
* Phân phối mật khẩu OTP:
Các phương thức phân phối OTP tới người dùng cũng rất đa dạng và phong phú. Một số hệ thống có thể sử dụng một thiết bị e-token đã được đồng bộ trước với máy chủ xác thực. Thiết bị e-token này sẽ sinh ra OTP có giá trị trùng khớp với giá trị OTP sinh ra ở phía máy chủ và hiển thị trên một màn hình nhỏ. Một số hệ thống khác thì sử
dụng các phần mềm chạy trên điện thoại di động của người dùng để sinh OTP thay vì thiết bị e-token, ngoài ra hệ thống máy chủ xác thực có thể thực hiện việc gửi tin nhắn báo OTP tới số điện thoại di động đã đăng ký trước của người dùng. Một số hệ thống khác lại sử dụng những mật khẩu OTP đã được in ra giấy, người sử dụng sẽ sử dụng những OTP này để thực hiện xác thực.