Tìm hiểu về cách Yahoo! Nhật Bản đã xây dựng một hệ thống nhận dạng không cần mật khẩu.
Mức phân bổ ngân sách tối thiểu cho Yahoo! JAPAN là một trong những công ty truyền thông lớn nhất tại Nhật Bản, cung cấp các dịch vụ như tìm kiếm, tin tức, thương mại điện tử và email. Hơn 50 triệu người dùng đăng nhập vào Yahoo! JAPAN mỗi tháng.
Trong những năm qua, đã có nhiều cuộc tấn công vào tài khoản người dùng và các vấn đề dẫn đến việc mất quyền truy cập vào tài khoản. Hầu hết các vấn đề này đều liên quan đến việc sử dụng mật khẩu để xác thực.
Nhờ những tiến bộ gần đây trong công nghệ xác thực, Yahoo! NHẬT BẢN đã quyết định chuyển từ xác thực dựa trên mật khẩu sang xác thực không sử dụng mật khẩu.
Tại sao nên dùng phương thức đăng nhập không cần mật khẩu?
Như Yahoo! JAPAN cung cấp dịch vụ thương mại điện tử và các dịch vụ khác liên quan đến tiền, có nguy cơ gây thiệt hại đáng kể cho người dùng trong trường hợp truy cập trái phép hoặc mất tài khoản.
Các cuộc tấn công phổ biến nhất liên quan đến mật khẩu là tấn công bằng danh sách mật khẩu và lừa đảo. Một trong những lý do khiến các cuộc tấn công bằng danh sách mật khẩu trở nên phổ biến và hiệu quả là do nhiều người có thói quen sử dụng cùng một mật khẩu cho nhiều ứng dụng và trang web.
Các số liệu sau đây là kết quả của một cuộc khảo sát do Yahoo! thực hiện. NHẬT BẢN.
50 %
sử dụng cùng một mã nhận dạng và mật khẩu trên 6 trang web trở lên
60 %
Sử dụng cùng một mật khẩu trên nhiều trang web
70 %
sử dụng mật khẩu làm phương thức đăng nhập chính
Người dùng thường quên mật khẩu và đây là nguyên nhân chính dẫn đến các câu hỏi liên quan đến mật khẩu. Ngoài mật khẩu, còn có những người dùng quên cả mã đăng nhập. Vào thời điểm cao điểm, những câu hỏi này chiếm hơn 1/3 tổng số câu hỏi liên quan đến tài khoản.
Khi chuyển sang phương thức đăng nhập không cần mật khẩu, Yahoo! JAPAN đặt mục tiêu cải thiện không chỉ tính bảo mật mà còn cả khả năng sử dụng mà không gây thêm gánh nặng cho người dùng.
Về mặt bảo mật, việc loại bỏ mật khẩu khỏi quy trình xác thực người dùng sẽ giảm thiểu thiệt hại do các cuộc tấn công dựa trên danh sách gây ra. Về mặt khả năng sử dụng, việc cung cấp một phương thức xác thực không phụ thuộc vào việc ghi nhớ mật khẩu sẽ ngăn chặn các trường hợp người dùng không thể đăng nhập vì quên mật khẩu.
Mức phân bổ ngân sách tối thiểu cho Yahoo! Các sáng kiến không dùng mật khẩu của NHẬT BẢN
Mức phân bổ ngân sách tối thiểu cho Yahoo! Nhật Bản đang thực hiện một số bước để thúc đẩy phương thức xác thực không cần mật khẩu, có thể chia thành 3 danh mục chính:
- Cung cấp một phương thức xác thực thay thế cho mật khẩu.
- Tắt mật khẩu.
- Đăng ký tài khoản không cần mật khẩu.
Hai sáng kiến đầu tiên nhắm đến người dùng hiện tại, trong khi tính năng đăng ký không cần mật khẩu nhắm đến người dùng mới.
1. Cung cấp một phương thức xác thực thay thế cho mật khẩu
Mức phân bổ ngân sách tối thiểu cho Yahoo! Nhật Bản cung cấp các lựa chọn thay thế sau đây cho mật khẩu.
Ngoài ra, chúng tôi cũng cung cấp các phương thức xác thực như xác thực bằng email, mật khẩu kết hợp với OTP (mật khẩu một lần) qua SMS và mật khẩu kết hợp với OTP qua email.
Xác thực qua SMS
Xác thực bằng SMS là một hệ thống cho phép người dùng đã đăng ký nhận mã xác thực gồm 6 chữ số qua SMS. Sau khi nhận được SMS, người dùng có thể nhập mã xác thực vào ứng dụng hoặc trang web.

Từ lâu, Apple đã cho phép iOS đọc tin nhắn SMS và đề xuất mã xác thực từ nội dung văn bản. Gần đây, bạn có thể sử dụng các đề xuất bằng cách chỉ định "one-time-code" trong thuộc tính autocomplete
của phần tử đầu vào. Chrome trên Android, Windows và Mac có thể mang đến trải nghiệm tương tự bằng cách sử dụng WebOTP API.
Ví dụ:
<form>
<input type="text" id="code" autocomplete="one-time-code"/>
<button type="submit">sign in</button>
</form>
if ('OTPCredential' in window) {
const input = document.getElementById('code');
if (!input) return;
const ac = new AbortController();
const form = input.closest('form');
if (form) {
form.addEventListener('submit', e => {
ac.abort();
});
}
navigator.credentials.get({
otp: { transport:['sms'] },
signal: ac.signal
}).then(otp => {
input.value = otp.code;
}).catch(err => {
console.log(err);
});
}
Cả hai phương pháp này đều được thiết kế để ngăn chặn hành vi lừa đảo bằng cách đưa miền vào nội dung SMS và chỉ cung cấp đề xuất cho miền được chỉ định.
Để biết thêm thông tin về WebOTP API và autocomplete="one-time-code"
, hãy xem các phương pháp hay nhất đối với biểu mẫu OTP qua SMS.

FIDO với WebAuthn
FIDO với WebAuthn sử dụng một trình xác thực phần cứng để tạo một cặp mật mã khoá công khai và chứng minh quyền sở hữu. Khi được dùng làm trình xác thực, điện thoại thông minh có thể kết hợp với phương thức xác thực bằng sinh trắc học (chẳng hạn như cảm biến vân tay hoặc công nghệ nhận dạng khuôn mặt) để thực hiện quy trình xác thực hai yếu tố một bước. Trong trường hợp này, chỉ có chữ ký và chỉ báo thành công từ quy trình xác thực sinh trắc học được gửi đến máy chủ, nên không có nguy cơ bị đánh cắp dữ liệu sinh trắc học.
Sơ đồ sau đây cho thấy cấu hình máy chủ-máy khách cho FIDO. Trình xác thực ứng dụng khách xác thực người dùng bằng dữ liệu sinh trắc học và ký kết kết quả bằng tiêu chuẩn mã hoá khoá công khai. Khoá riêng tư dùng để tạo chữ ký được lưu trữ an toàn trong TEE (Môi trường thực thi đáng tin cậy) hoặc một vị trí tương tự. Nhà cung cấp dịch vụ sử dụng FIDO được gọi là RP (bên phụ thuộc).

Sau khi người dùng thực hiện quy trình xác thực (thường là bằng cách quét sinh trắc học hoặc nhập mã PIN), trình xác thực sẽ sử dụng một khoá riêng tư để gửi tín hiệu xác minh đã ký đến trình duyệt. Sau đó, trình duyệt sẽ chia sẻ tín hiệu đó với trang web của RP.
Sau đó, trang web RP sẽ gửi tín hiệu xác minh đã ký đến máy chủ của RP. Máy chủ này sẽ xác minh chữ ký dựa trên khoá công khai để hoàn tất quy trình xác thực.
Để biết thêm thông tin, hãy đọc các nguyên tắc xác thực của FIDO Alliance.
Mức phân bổ ngân sách tối thiểu cho Yahoo! NHẬT BẢN hỗ trợ FIDO trên Android (ứng dụng di động và web), iOS (ứng dụng di động và web), Windows (Edge, Chrome, Firefox) và macOS (Safari, Chrome). Là một dịch vụ dành cho người tiêu dùng, FIDO có thể được dùng trên hầu hết mọi thiết bị, nhờ đó, đây là một lựa chọn phù hợp để quảng bá phương thức xác thực không cần mật khẩu.

Mức phân bổ ngân sách tối thiểu cho Yahoo! Nhật Bản khuyến nghị người dùng đăng ký FIDO bằng WebAuthn nếu họ chưa xác thực bằng các phương thức khác. Khi cần đăng nhập bằng cùng một thiết bị, người dùng có thể nhanh chóng xác thực bằng cảm biến sinh trắc học.
Người dùng phải thiết lập phương thức xác thực FIDO với tất cả thiết bị mà họ dùng để đăng nhập vào Yahoo! NHẬT BẢN.
Để thúc đẩy việc xác thực không sử dụng mật khẩu và tôn trọng những người dùng đang chuyển đổi từ mật khẩu, chúng tôi cung cấp nhiều phương thức xác thực. Điều này có nghĩa là mỗi người dùng có thể có chế độ cài đặt phương thức xác thực riêng và phương thức xác thực mà họ có thể sử dụng có thể khác nhau giữa các trình duyệt. Chúng tôi tin rằng người dùng sẽ có trải nghiệm tốt hơn nếu đăng nhập bằng cùng một phương thức xác thực mỗi lần.
Để đáp ứng những yêu cầu này, bạn cần theo dõi các phương thức xác thực trước đó và liên kết thông tin này với ứng dụng bằng cách lưu trữ thông tin dưới dạng cookie, v.v. Sau đó, chúng ta có thể phân tích cách các trình duyệt và ứng dụng khác nhau được dùng để xác thực. Người dùng được yêu cầu cung cấp phương thức xác thực thích hợp dựa trên chế độ cài đặt của người dùng, các phương thức xác thực đã dùng trước đó và cấp độ xác thực tối thiểu bắt buộc.
2. Huỷ kích hoạt mật khẩu
Mức phân bổ ngân sách tối thiểu cho Yahoo! Nhật Bản yêu cầu người dùng thiết lập một phương thức xác thực thay thế rồi vô hiệu hoá mật khẩu để không thể sử dụng mật khẩu. Ngoài việc thiết lập phương thức xác thực thay thế, việc tắt xác thực bằng mật khẩu (do đó, không thể đăng nhập chỉ bằng mật khẩu) sẽ giúp bảo vệ người dùng khỏi các cuộc tấn công dựa trên danh sách.
Chúng tôi đã thực hiện các bước sau để khuyến khích người dùng tắt mật khẩu.
- Quảng bá các phương thức xác thực thay thế khi người dùng đặt lại mật khẩu.
- Khuyến khích người dùng thiết lập các phương thức xác thực dễ sử dụng (chẳng hạn như FIDO) và tắt mật khẩu cho những trường hợp yêu cầu xác thực thường xuyên.
- Kêu gọi người dùng tắt mật khẩu trước khi sử dụng các dịch vụ có rủi ro cao, chẳng hạn như thanh toán thương mại điện tử.
Nếu quên mật khẩu, người dùng có thể chạy quy trình khôi phục tài khoản. Trước đây, việc này liên quan đến việc đặt lại mật khẩu. Giờ đây, người dùng có thể chọn thiết lập một phương thức xác thực khác và chúng tôi khuyến khích họ làm như vậy.
3. Đăng ký tài khoản không cần mật khẩu
Người dùng mới có thể tạo tài khoản Yahoo! không cần mật khẩu Tài khoản JAPAN. Trước tiên, người dùng phải đăng ký bằng phương thức xác thực qua SMS. Sau khi đăng nhập, chúng tôi khuyến khích người dùng thiết lập phương thức xác thực FIDO.
Vì FIDO là chế độ cài đặt cho từng thiết bị, nên bạn có thể gặp khó khăn trong việc khôi phục tài khoản nếu thiết bị không hoạt động. Do đó, chúng tôi yêu cầu người dùng duy trì số điện thoại đã đăng ký, ngay cả sau khi họ thiết lập phương thức xác thực bổ sung.
Những thách thức chính đối với phương thức xác thực không cần mật khẩu
Mật khẩu dựa vào trí nhớ của con người và không phụ thuộc vào thiết bị. Mặt khác, các phương thức xác thực được giới thiệu cho đến nay trong sáng kiến không dùng mật khẩu của chúng tôi đều phụ thuộc vào thiết bị. Điều này gây ra một số thách thức.
Khi sử dụng nhiều thiết bị, bạn có thể gặp một số vấn đề liên quan đến khả năng sử dụng:
- Khi sử dụng phương thức xác thực qua SMS để đăng nhập từ máy tính, người dùng phải kiểm tra điện thoại di động để xem có tin nhắn SMS đến hay không. Điều này có thể gây bất tiện vì yêu cầu người dùng phải luôn có điện thoại và dễ dàng truy cập vào điện thoại bất cứ lúc nào.
- Với FIDO, đặc biệt là với trình xác thực nền tảng, người dùng có nhiều thiết bị sẽ không thể xác thực trên các thiết bị chưa đăng ký. Người dùng phải hoàn tất quy trình đăng ký cho từng thiết bị mà họ dự định sử dụng.
Phương thức xác thực FIDO được liên kết với các thiết bị cụ thể, do đó, các thiết bị này phải luôn nằm trong quyền sở hữu của người dùng và đang hoạt động.
- Nếu hợp đồng dịch vụ bị huỷ, bạn sẽ không thể gửi tin nhắn SMS đến số điện thoại đã đăng ký nữa.
- FIDO lưu trữ khoá riêng tư trên một thiết bị cụ thể. Nếu thiết bị bị mất, những khoá này sẽ không dùng được.
Mức phân bổ ngân sách tối thiểu cho Yahoo! Nhật Bản đang thực hiện nhiều biện pháp để giải quyết những vấn đề này.
Giải pháp quan trọng nhất là khuyến khích người dùng thiết lập nhiều phương thức xác thực. Điều này giúp bạn có thể truy cập vào tài khoản bằng phương thức khác khi thiết bị bị mất. Vì khoá FIDO phụ thuộc vào thiết bị, nên bạn cũng nên đăng ký khoá riêng tư FIDO trên nhiều thiết bị.
Ngoài ra, người dùng có thể sử dụng WebOTP API để truyền mã xác minh SMS từ điện thoại Android sang Chrome trên máy tính.
Chúng tôi tin rằng việc giải quyết những vấn đề này sẽ trở nên quan trọng hơn khi phương thức xác thực không cần mật khẩu được sử dụng rộng rãi.
Quảng bá tính năng xác thực không sử dụng mật khẩu
Mức phân bổ ngân sách tối thiểu cho Yahoo! Nhật Bản đã nỗ lực thực hiện những sáng kiến không cần mật khẩu này từ năm 2015. Quá trình này bắt đầu bằng việc mua lại chứng nhận máy chủ FIDO vào tháng 5 năm 2015, sau đó là việc ra mắt tính năng xác thực bằng SMS, tính năng huỷ kích hoạt mật khẩu và hỗ trợ FIDO cho từng thiết bị.
Hiện nay, hơn 30 triệu người dùng hoạt động hằng tháng đã tắt mật khẩu và đang sử dụng các phương thức xác thực không cần mật khẩu. Mức phân bổ ngân sách tối thiểu cho Yahoo! Nhật Bản bắt đầu hỗ trợ FIDO trên Chrome dành cho Android. Hiện tại, hơn 10 triệu người dùng đã thiết lập phương thức xác thực FIDO.
Do Yahoo! Nhờ các sáng kiến của NHẬT BẢN, tỷ lệ phần trăm các câu hỏi liên quan đến việc quên mã đăng nhập hoặc mật khẩu đã giảm 25% so với thời điểm số lượng câu hỏi như vậy ở mức cao nhất. Chúng tôi cũng có thể xác nhận rằng tình trạng truy cập trái phép đã giảm do số lượng tài khoản không cần mật khẩu tăng lên.
Vì FIDO rất dễ thiết lập nên có tỷ lệ chuyển đổi đặc biệt cao. Trên thực tế, Yahoo! JAPAN nhận thấy FIDO có CVR cao hơn xác thực bằng SMS.
25 %
Giảm số lượng yêu cầu về thông tin đăng nhập bị quên
74 %
Người dùng xác thực thành công bằng FIDO
65 %
Xác minh thành công qua SMS
FIDO có tỷ lệ thành công cao hơn so với xác thực qua SMS, đồng thời có thời gian xác thực trung bình và trung vị nhanh hơn. Đối với mật khẩu, một số nhóm có thời gian xác thực ngắn và chúng tôi nghi ngờ rằng điều này là do autocomplete="current-password"
của trình duyệt.

Khó khăn lớn nhất khi cung cấp tài khoản không cần mật khẩu không phải là việc bổ sung các phương thức xác thực, mà là phổ biến việc sử dụng trình xác thực. Nếu trải nghiệm sử dụng dịch vụ không cần mật khẩu không thân thiện với người dùng, thì quá trình chuyển đổi sẽ không dễ dàng.
Chúng tôi tin rằng để cải thiện tính bảo mật, trước tiên chúng ta phải cải thiện khả năng sử dụng. Điều này sẽ đòi hỏi những điểm cải tiến riêng cho từng dịch vụ.
Kết luận
Xác thực bằng mật khẩu tiềm ẩn nhiều rủi ro về bảo mật, đồng thời cũng gây ra những thách thức về khả năng sử dụng. Giờ đây, khi các công nghệ hỗ trợ xác thực không cần mật khẩu (chẳng hạn như WebOTP API và FIDO) được cung cấp rộng rãi hơn, đã đến lúc bạn bắt đầu chuyển sang xác thực không cần mật khẩu.
Tại Yahoo! NHẬT BẢN, việc áp dụng phương pháp này đã có ảnh hưởng nhất định đến cả khả năng sử dụng và tính bảo mật. Tuy nhiên, nhiều người dùng vẫn đang sử dụng mật khẩu, vì vậy, chúng tôi sẽ tiếp tục khuyến khích nhiều người dùng hơn chuyển sang các phương thức xác thực không cần mật khẩu. Chúng tôi cũng sẽ tiếp tục cải thiện các sản phẩm của mình để tối ưu hoá trải nghiệm người dùng cho các phương thức xác thực không cần mật khẩu.
Ảnh của olieman.eth trên Unsplash