<![CDATA[Latest posts for the topic "Thắc mắc về OTP"]]> /hvaonline/posts/list/8.html JForum - http://www.jforum.net Thắc mắc về OTP /hvaonline/posts/list/23862.html#143782 /hvaonline/posts/list/23862.html#143782 GMT Re: Thắc mắc về OTP /hvaonline/posts/list/23862.html#143843 /hvaonline/posts/list/23862.html#143843 GMT Thắc mắc về OTP

vikjava wrote:
chảo cả nhà! Cho minh hỏi một số vấn đề về OTP một tí. Khi client cung cấp một OTP để thực hiện giao dịch qua mạng thì phía server sẽ kiểm tra như thế nào. Về mặt cơ chế và thuật toán. Làm thế nào server biết đươc OTP đó là của client đó. theo mình nghĩ là nó dựa vào serial của thiết bị và thuật toán tại server. Nhưng lại có người nói là tại server sẽ có một cái bảng ,dựa vào thuật toán để tính toán lần bấm thứ mấy sẽ là cái pass nào. Và nếu ngửoi dùng sử dung lại cái pass đã dùng trươc thì như thế nào . thân 
Vấn đề này theo hiểu biết của mình thì như sau: OTP dưa trên Tiêu chuẩn OATH (OTP AuTHentication), có 3 dạng thức để xây dựng một hệ thống OTP: - OTP dựa trên sự kiện (OTP Event based): Dùng thuật toán HOTP (HMAC Based One Time Password) để tạo ra mật khẩu nhờ tính toán kết hợp giữa 1 mã bí mật (SEED CODE - Thường do NH tạo và giữ) và một tham số đếm số lần bấm Token. - OTP dựa trên thời gian thực (OTP Time Based): Dùng thuật toán TOTP (Time Based OTP) để tạo ra mật khẩu nhờ tính toán kết hợp SEED CODE và tham biến dựa trên thơi gian thực. - OTP Challenge Response Based (Thử thách - Hồi đáp): cũng tương tự có 1 Seed code và tham số sinh ra trong quá trình gửi Thử thách - hồi đáp. Một giao dịch thành công bằng phương pháp xác thực OTP phải có đủ các điều kiện sau: - Cùng loại thiết bị: Cùng dựa trên thời gian hoặc sự kiện - Cùng SEED CODE - Cùng thuật toán: Giải thuật kết hợp SEED CODE và tham số giống nhau sẽ cho ra đáp án giống nhau. - Cùng có OTP giống nhau: Tức là mật khẩu sinh ra từ thiết bị - Cùng User PIN: Tức là cùng mật khẩu người dùng - Cùng Account: Tức là OTP Token đã được gán với OTP Server thông qua hệ thống quản lý (gồm serial và license).
Nguyên tắc hoạt động của hệ thống OTP như sau: Khi người dùng cần thanh toán hoặc xác thực qua mạng Internet. Người dùng thực hiện việc xác thực bằng cách bấm OTP Token để lấy mật khẩu, nhập mật khẩu vừa sinh ra vào và gửi lên server. Server nhận được thông tin sẽ phân tích xem thiết bị đã được đăng ký chưa? Có đúng User PIN không? sau đó kiểm tra mật khẩu OTP gửi lên có khớp với mật khẩu sinh ra trên server không. Nếu tất cả đều đúng thì cho phép thực hiện thanh toán. Vậy câu hỏi đặt ra là làm sao Server biết chính xác số lần bấm hoặc thời gian trong OTP Token là bao nhiêu? Câu trả lời là: - Sau khi khởi tạo, tham số đầu vào là giữa OTP Token và OTP server là giống nhau -> xác thực lần đầu tiên đương nhiên thành công. - Sau lần xác thực thành công đó, bộ đếm trong OTP Token báo tăng thêm 1. Trong khi đó OTP server lập tức tính toán cho 50 lần bấm tiếp theo. - Như vậy cho dù người dùng có vô tình hay cố ý bấm OTP Token vài chục lần (<50) thì OTP server vẫn hiểu và cho phép xác thực. - Trong trường hợp người dùng bấm nhiều hơn 50 lần. OTP Server sẽ yêu cầu xác thực bằng cách người dùng phải nhập 2 mật khẩu OTP vào để OTP Server đồng bộ lại bộ đếm với OTP Token. Nếu ai đó ghi lại một loạt mật khẩu OTP từ OTP Token với ý định không tốt thì sao? - Điều này rất dễ xảy ra và khá nguy hiểm. Tuy nhiên vì OTP là giải pháp xác thực 2 nhân tố (Mât khẩu OTP và Mật khẩu người dùng) nên tránh được điều này. - Cụ thể là: Một mật khẩu được cho là hợp lệ trong giao dịch sẽ = mật khẩu người dùng + mật khẩu OTP, nếu vô tình bị mất 1 trong 2 thì bạn vẫn có thể yên tâm về tài khoản của mình hoặc chí ít cũng đủ thời gian để báo với ngân hàng tạm thời đóng tài khoản lại. - Hơn nữa, danh sách mật khẩu OTP bị lấy trộm sẽ không còn tác dụng nếu người dùng thực hiện đồng bộ với server hoặc thực hiện 1 giao dịch với server. Bộ đếm sẽ loại bỏ tất cả những mật khẩu trước đó. Quá trình xác thực như hình dưới:
]]>
/hvaonline/posts/list/23862.html#260394 /hvaonline/posts/list/23862.html#260394 GMT