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! Các dịch vụ tại Nhật Bản hằng 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 tài khoản bị mất quyền truy cập. 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.
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 sử dụng mật khẩu.
Tại sao không dùng mật khẩu?
Dưới dạng 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, nên có rủi ro 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à các cuộc tấn công danh sách mật khẩu và lừa đảo giả mạo. Một trong những lý do khiến các cuộc tấn công danh sách mật khẩu 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 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 cách chính để đăng nhập
Người dùng thường quên mật khẩu của họ, việc này chiếm phần lớn các câu hỏi liên quan đến mật khẩu. Ngoài ra, chúng tôi cũng nhận được yêu cầu hỗ trợ của những người dùng quên tên đăng nhập và mật khẩu. Lúc 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.
Bằng cách chuyển sang phương thức đăng nhập không cần mật khẩu, Yahoo! JAPAN hướng đến không chỉ cải thiện khả năng bảo mật mà còn cả khả năng 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 quy trình xác thực người dùng sẽ giúp giảm thiệt hại từ các cuộc tấn công dựa trên danh sách và từ góc độ khả năng hữu dụng, việc cung cấp một phương thức xác thực không dựa vào việc ghi nhớ mật khẩu sẽ 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.
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 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 phương thức xác thực không cần mật khẩu. Phương thức này có thể được chia thành 3 loại chính:
- Cung cấp phương thức xác thực thay thế cho mật khẩu.
- Đang huỷ kích hoạ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, còn tính năng đăng ký không cần mật khẩu là dành cho người dùng mới.
1. Cung cấp 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 phương thức 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 qua email, 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 qua 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 6 chữ số thông qua SMS. Sau khi nhận được tin nhắn SMS, người dùng có thể nhập mã xác thực trong ứ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 tính năng đề xuất bằng cách chỉ định "one-time-code" (mã một lần) trong thuộc tính autocomplete
của phần tử đầ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 thức 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ỉ đưa ra nội dung đề xuất cho miền đã chỉ định.
Để biết thêm thông tin về API WebOTP và autocomplete="one-time-code"
, hãy xem các phương pháp hay nhất về biểu mẫu OTP qua tin nhắn SMS.
FIDO với WebAuthn
FIDO với WebAuthn sử dụng trình xác thực phần cứng để tạo một cặp khoá công khai và chứng minh quyền sở hữu. Khi điện thoại thông minh được dùng làm trình xác thực, bạn có thể kết hợp điện thoại thông minh với phương thức xác thực sinh trắc học (chẳng hạn như cảm biến vân tay hoặc 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ỉ chữ ký và chỉ báo thành công từ quy trình xác thực sinh trắc học mới được gửi đến máy chủ, vì vậy, không có rủi ro nào về việc đánh cắp dữ liệu sinh trắc học.
Sơ đồ sau đây cho thấy cấu hình máy chủ-ứng dụng khách cho FIDO. Trình xác thực ứng dụng xác thực người dùng bằng dữ liệu sinh trắc học và ký kết quả bằng phương thức mã hoá khoá công khai. Khoá riêng tư 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 phụ thuộc).
Để biết thêm thông tin, hãy đọc nguyên tắc 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ị, nhờ đó, đây là một lựa chọn phù hợp để thúc đẩy 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! JAPAN khuyến nghị người dùng đăng ký FIDO bằng WebAuthn nếu họ chưa xác thực qua 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 tính năng 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 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 đang chuyển đổi sang không sử dụng mật khẩu, chúng tôi cung cấp nhiều phương thức xác thực. Tức 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 tuỳ theo trình duyệt. Chúng tôi tin rằng sẽ mang lại trải nghiệm tốt hơn nếu người dùng đăng nhập bằng cùng một phương thức xác thực mỗi lần.
Để đáp ứng các 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 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ách sử dụng các trình duyệt và ứng dụng khác nhau để xác thực. Người dùng được yêu cầu cung cấp thông tin xác thực phù 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 trước đó đã sử dụng và cấp độ xác thực tối thiểu cần thiết.
2. Tắ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ế rồi tắt 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 phương thức xác thực bằng mật khẩu (do đó, người dùng 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 trong các tình huống cần xác thực thường xuyên.
- Nhắc người dùng vô hiệu hoá mật khẩu trước khi sử dụng các dịch vụ có mức độ rủi ro cao, chẳng hạn như thanh toán qua nền tảng 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, bạn phải đặt lại mật khẩu để thực hiện việc này. 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, người dùng nên thiết lập phương thức xác thực FIDO.
Vì FIDO là chế độ cài đặt cho mỗi 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. Do đó, chúng tôi yêu cầu người dùng phải đăng ký số điện thoại, 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 cần 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 sử dụng nhiều thiết bị, 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 để xem tin nhắn SMS đến. Điều này có thể bất tiện vì người dùng phải có sẵn điện thoại và dễ dàng truy cập 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ý. 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.
Phương thức xác thực FIDO được liên kết với các thiết bị cụ thể, yêu cầu các thiết bị này vẫn thuộc quyền sở hữu và đang hoạt động của người dù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, bạn sẽ không thể sử dụng các khoá đó.
Mức phân bổ ngân sách tối thiểu cho Yahoo! JAPAN đ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 cung cấp quyền truy cập thay thế vào tài khoản khi thiết bị bị mất. Vì khoá FIDO phụ thuộc vào thiết bị, 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 qua 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 cần mật khẩu
Mức phân bổ ngân sách tối thiểu cho Yahoo! JAPAN đã bắt đầu triển khai các 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 chứng chỉ 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 qua SMS, tính năng vô hiệu hoá 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 đang 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! Hoạt động hỗ trợ FIDO của Nhật Bản bắt đầu từ Chrome trên Android và hiện đã có hơn 10 triệu người dùng thiết lập tính năng xác thực FIDO.
Do Yahoo! JAPAN, tỷ lệ phần trăm các yêu cầu liên quan đến việc quên tên đăng nhập hoặc mật khẩu đã giảm 25% so với thời điểm số lượng yêu cầu như vậy ở mức cao nhất. Chúng tôi cũng có thể xác nhận rằng số lượ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ì rất dễ thiết lập nên FIDO có tỷ lệ chuyển đổi đặc biệt cao. Trên thực tế, Yahoo! JAPAN nhận thấy rằng FIDO có CVR cao hơn so với phương thức xác thực qua tin nhắn SMS.
25 %
Giảm số 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 phương thức xác thực qua SMS, cũng như thời gian xác thực trung bình và trung bình 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 phương thức xác thực, mà là mở rộng 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 khả năng 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. Vì vậy, mỗi dịch vụ sẽ phải có những điểm cải tiến riêng.
Kết luận
Phương thức xác thực bằng mật khẩu tiềm ẩn nhiều rủi ro về bảo mật và cũng gây ra thách thức về khả năng hữu dụng. Giờ đây, các công nghệ hỗ trợ xác thực không dùng 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ắt đầu hướng tới xác thực không dùng mật khẩu.
Tại Yahoo! JAPAN, việc áp dụng phương pháp này đã có tác động rõ ràng đến cả khả năng hữu 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 thêm nhiều người dùng 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 đối với các phương thức xác thực không cần mật khẩu.
Ảnh chụp của olieman.eth trên Unsplash