Tìm hiểu cách Yahoo! Nhật Bản xây dựng một hệ thống thông tin 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 chẳng hạn như tìm kiếm, tin tức, thương mại điện tử và e-mail. Hơn 50 triệu người dùng đăng nhập vào Yahoo! Dịch vụ tại 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 đề khiến bị mất quyền truy cập vào tài khoản. Hầu hết những vấn đề này liên quan đến việc sử dụng mật khẩu để xác thực.
Với những tiến bộ gần đây trong công nghệ xác thực, Yahoo! JAPAN đã quyết định chuyển từ phương thức xác thực dựa trên mật khẩu sang phương thức xác thực không cần mật khẩu.
Tại sao lại không dùng mật khẩu?
Do Yahoo! JAPAN cung cấp thương mại điện tử và các dịch vụ khác liên quan đến tiền bạc. rủi ro thiệt hại đáng kể cho người dùng trong trường hợp bị 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 danh sách mật khẩu và thủ đoạn lừa đảo trực tuyến. Một trong những lý do khiến các cuộc tấn công đối với danh sách mật khẩu diễn ra phổ biến và hiệu quả là thói quen của nhiều người sử dụng cùng một mật khẩu cho ứng dụng và trang web.
Những số liệu sau đây là kết quả từ một cuộc khảo sát do Yahoo! 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 cho nhiều trang web
70 %
sử dụng mật khẩu làm cách chính để đăng nhập
Người dùng thường quên mật khẩu của mình, việc này chiếm phần lớn liên quan đến mật khẩu. Ngoài ra, còn có các câu hỏi đến từ những người dùng quên ID đăng nhập cùng với mật khẩu của họ. Ở đỉnh điểm, đây là chiếm hơn 1/3 trong số tất cả các câu hỏi liên quan đến tài khoản.
Bằng cách không dùng mật khẩu, Yahoo! JAPAN mục tiêu không chỉ là cải thiện tính bảo mật, tính hữu dụng mà không đặt thêm gánh nặng cho người dùng.
Từ góc độ bảo mật, việc loại bỏ mật khẩu khỏi người dùng quy trình xác thực này giúp giảm thiệt hại từ các cuộc tấn công theo danh sách, cũng như góc nhìn về khả năng sử dụng, cung cấp một phương pháp xác thực không dựa vào về việc ghi nhớ mật khẩu để ngăn chặn trường hợp người dùng không thể đăng nhập vì họ quên mật khẩu của mình.
Mức phân bổ ngân sách tối thiểu cho Yahoo! Sáng kiến không dùng mật khẩu của JAPAN
Mức phân bổ ngân sách tối thiểu cho Yahoo! JAPAN đang thực hiện một số bước để thúc đẩy dịch vụ không dùng mật khẩu xác thực, có thể được chia thành ba loại:
- Cung cấp một phương thức xác thực thay thế đối với mật khẩu.
- Đang huỷ kích hoạt mật khẩu.
- Đăng ký tài khoản không sử dụng 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 không cần dùng mật khẩu mục tiêu đăng ký là 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! JAPAN 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 pháp xác thực như gửi email xác thực, mật khẩu kết hợp với OTP qua SMS (mật khẩu một lần) và mật khẩu kết hợp với OTP của email.
Xác thực qua SMS
Xác thực qua SMS là hệ thống cho phép người dùng đã đăng ký nhận mã xác thực gồm sáu chữ số qua SMS. Sau khi người dùng nhận được tin nhắn SMS, họ có thể nhập mã xác thực vào ứng dụng hoặc trang web.
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/h08m9uzVJg9uNzM3LE5k.jpg?authuser=0000&hl=vi)
Từ lâu, Apple đã cho phép iOS đọc tin nhắn SMS và đề xuất xác thực
mã khỏi phần nội dung văn bản. Gần đây, có thể sử dụng đề xuất bằng cách
chỉ định "mã một lần" trong thuộc tính autocomplete
của đầu vào
. Chrome trên Android, Windows và Mac có thể mang lại trải nghiệm tương tự
bằng cách sử dụng API WebOTP.
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 đều được thiết kế để ngăn chặn lừa đảo bằng cách đưa miền trong 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ề API WebOTP và autocomplete="one-time-code"
,
hãy tham khảo các phương pháp hay nhất về biểu mẫu OTP qua SMS.
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/Szaf3C0hfjLNkTWAVf9B.png?authuser=0000&hl=vi)
FIDO với WebAuthn
FIDO với WebAuthn sử dụng trình xác thực phần cứng để tạo khoá công khai thuật toán mật mã và chứng minh quyền sở hữu. Khi điện thoại thông minh được sử dụng làm trình xác thực, bạn có thể kết hợp phương thức này 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 bước xác thực hai yếu tố xác thực. Trong trường hợp này, chỉ chữ ký và chỉ báo thành công từ quy trình xác thực bằng sinh trắc học sẽ được gửi đến máy chủ nên không có rủi ro hành vi đánh cắp dữ liệu sinh trắc học.
Sơ đồ dưới đây minh hoạ cấu hình của máy chủ-ứng dụng cho FIDO. Chiến lược phát hành đĩa đơn trình xác thực ứng dụng khách sẽ xác thực người dùng bằng sinh trắc học và ký bằng cách sử dụng tiêu chuẩn mã hoá khoá công khai. Khoá riêng tư được dùng để tạo chữ ký được lưu trữ an toàn trong một TEE (Môi trường thực thi đáng tin cậy) hoặc ở vị trí tương tự. Nhà cung cấp dịch vụ sử dụng FIDO được gọi là RP (bên tin cậy).
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/PkFYWnOZABjPu7Zc7rXN.png?authuser=0000&hl=vi)
Sau khi người dùng thực hiện quy trình xác thực (thường là bằng việc quét sinh trắc học hoặc 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 bên bị hạn chế.
Sau đó, trang web của 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 quá trình xác thực.
Để biết thêm thông tin, hãy đọc hướng dẫn xác thực của Liên minh FIDO.
Mức phân bổ ngân sách tối thiểu cho Yahoo! JAPAN 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 sử dụng trên hầu hết mọi thiết bị, khiến đây là một để quảng bá xác thực không cần mật khẩu.
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/iq0dODcbp3WcPUGTwHkl.png?authuser=0000&hl=vi)
Mức phân bổ ngân sách tối thiểu cho Yahoo! JAPAN khuyến nghị người dùng đăng ký FIDO bằng WebAuthn nếu họ đã chưa được xác thực thông qua các phương tiện khác. Khi người dùng cần đăng nhập với cùng một thiết bị, nên họ 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 tính năng xác thực FIDO với tất cả thiết bị mà họ dùng để đăng nhập Chiến dịch trên Yahoo! NHẬT BẢN.
Khuyến khích phương thức xác thực không cần mật khẩu và quan tâm đến những người dùng chuyển dần sang mật khẩu, chúng tôi cung cấp nhiều phương tiện xác thực. Điều này có nghĩa là mỗi người dùng có thể có cài đặt phương pháp xác thực và phương pháp xác thực mà chúng có thể sử dụng có thể khác nhau tuỳ theo trình duyệt. Chúng tôi tin rằng trải nghiệm sẽ tốt hơn nếu người dùng đăng nhập bằng cùng một phương pháp xác thực mỗi lần.
Để đáp ứng các yêu cầu này, bạn cần phải theo dõi quá trình xác thực trước đó và liên kết thông tin này đến máy khách bằng cách lưu trữ thông tin dưới dạng cookie, v.v. Sau đó, chúng tôi có thể phân tích các trình duyệt và ứng dụng khác nhau dùng để xác thực. Người dùng được yêu cầu cung cấp thông tin thích hợp dựa trên cài đặt của người dùng, thì việc xác thực trước đó các phương pháp được sử dụng và mức độ 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! JAPAN yêu cầu người dùng thiết lập một phương thức xác thực thay thế và sau đó vô hiệu hoá mật khẩu để không ai sử dụng được. Ngoài việc thiết lập thiết lập phương thức xác thực thay thế, tắt phương thức xác thực bằng mật khẩu (do đó khiến người dùng không thể đăng nhập chỉ bằng mật khẩu) tấn công dựa trên danh sách.
Chúng tôi đã thực hiện các bước sau đây để khuyến khích người dùng vô hiệu hoá 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à vô hiệu hoá mật khẩu trong các tình huống thường xuyên xác thực.
- Khuyến khích người dùng vô hiệu hoá mật khẩu của họ trước khi dùng các dịch vụ có mức độ rủi ro cao, chẳng hạn như thanh toán thương mại điện tử.
Nếu người dùng quên mật khẩu, họ có thể tiến hành quy trình khôi phục tài khoản. Trước đây nhưng điều 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 xác thự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 sử dụng 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. Người dùng là trên hết bạn phải đăng ký bằng phương thức xác thực qua SMS. Sau khi họ đăng nhập, chúng tôi hãy 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 theo từng thiết bị nên bạn có thể gặp khó khăn khi khôi phục tài khoản, nếu thiết bị không hoạt động được. 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 hoạt động xác thực không cần mật khẩu
Mật khẩu dựa vào bộ nhớ của con người và độc lập với 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 phụ thuộc vào thiết bị. Điều này đặt ra một số thách thức.
Khi bạn sử dụng nhiều thiết bị, sẽ có một số vấn đề liên quan đến khả năng hữu 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 để nhận tin nhắn SMS đến. Điều này có thể bất tiện vì yêu cầu điện thoại của người dùng phải sẵn sàng và dễ truy cập bất kỳ 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 thiết bị chưa đăng ký. Bạn phải hoàn tất quy trình đăng ký cho từng thiết bị mà trẻ định sử dụng.
Quy trình xác thực FIDO gắn liền với các thiết bị cụ thể nên phải luôn ở trong quyền sở hữu và chủ động của người dùng.
- Nếu hợp đồng dịch vụ bị huỷ thì bạn sẽ không thể tiếp tục gửi Tin nhắn SMS đến số điện thoại đã đăng ký.
- FIDO lưu trữ khoá riêng tư trên một thiết bị cụ thể. Nếu thiết bị thất lạc, những các phím không sử dụng được.
Mức phân bổ ngân sách tối thiểu cho Yahoo! JAPAN đang áp dụng 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 xác thực. Thao tác này cung cấp quyền truy cập thay thế vào tài khoản khi thiết bị đều bị mất. Vì các khoá FIDO phụ thuộc vào thiết bị, do đó, 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 để vượt qua quy trình xác minh qua SMS các mã 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 nữa khi khiến phương thức xác thực không sử dụng mật khẩu trở nên phổ biến hơn.
Quảng bá phương pháp 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! JAPAN đã triển khai những sáng kiến không dùng mật khẩu này từ năm 2015. Điều 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, tiếp đến là sự ra mắt của phương pháp xác thực qua SMS, việc huỷ kích hoạt mật khẩu tính năng 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 đã vô hiệu hoá mật khẩu và sử dụng phương thức xác thực không phải mật khẩu. Mức phân bổ ngân sách tối thiểu cho Yahoo! NHẬT BẢN hỗ trợ cho FIDO bắt đầu với Chrome trên Android và hiện có hơn 10 triệu người dùng đã thiết lập phương thức xác thực FIDO.
Nhờ có Yahoo! Các sáng kiến của JAPAN, tỷ lệ phần trăm câu hỏi liên quan đến ID đăng nhập hoặc mật khẩu bị quên đã giảm 25% so với khi số lượng câu hỏi như vậy đạt đến mức cao nhất và chúng tôi cũng có thể xác nhận rằng truy cập trái phép đã bị từ chối do là mức tăng số lượng tài khoản không sử dụng mật khẩu.
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! NHẬT BẢN nhận thấy FIDO có tỷ lệ chuyển đổi (TLCĐ) cao hơn so với SMS xác thực.
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 với 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 phương thức xác thực qua SMS, đồng thời tốc độ trung bình và
trung bình. Đối với mật khẩu, một số nhóm có
thời gian xác thực và chúng tôi nghi ngờ rằng điều này là do
autocomplete="current-password"
.
![Biểu đồ so sánh thời gian xác thực mật khẩu, SMS và FIDO.](https://web.dev/static/case-studies/yahoo-japan-identity/image/graph-comparison-authent-4d76bf7a092f7.png?authuser=0000&hl=vi)
Khó khăn lớn nhất để cung cấp tài khoản không cần mật khẩu không phải là việc bổ sung phương thức xác thực, nhưng 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 dùng mật khẩu không thân thiện với người dùng, sẽ không hề 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 tôi phải cải thiện khả năng hữu dụng, nên sẽ cần có những điểm cải tiến riêng cho mỗi dịch vụ.
Kết luận
Việc xác thực bằng mật khẩu rất rủi ro về mặt bảo mật đồng thời cũng đặt ra về mặt khả năng hữu dụng. Giờ đây, khi các công nghệ hỗ trợ thì phương thức xác thực không sử dụng mật khẩu (chẳng hạn như API WebOTP và FIDO) hiện được áp dụng rộng rãi hơn sẵn sàng, đã đến lúc bắt đầu nỗ lực hướng tới 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ó tác dụng rõ ràng đối với cả khả năng hữu dụng và 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 chuyển sang 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 đối với phương pháp xác thực không cần mật khẩu.
Ảnh chụp của olieman.eth trên Unsplash