Tìm hiểu xem passkeys / WebAuthn có hoạt động và hoạt động như thế nào trong các chế độ ẩn danh hoặc duyệt web riêng tư của Chrome, Safari, Edge và Firefox.
Vincent
Created: August 8, 2025
Updated: August 8, 2025
See the original blog version in English here.
Our mission is to make the Internet a safer place and passkeys provide a superior solution to achieve that. That's why we want to keep you updated with the latest industry insights here.
Hành vi của Passkeys trên các Trình duyệt và Hệ điều hành khác nhau
3.1 Passkeys trên Windows 10 và Chế độ ẩn danh / Chế độ InPrivate của Edge
3.2 Passkeys trên Windows 11 và Chế độ ẩn danh / Chế độ InPrivate của Edge
3.3 Passkeys trên Android và Chế độ ẩn danh của Chrome / Chế độ InPrivate của Edge
Ngày càng có nhiều công ty triển khai passkeys vào trang web và ứng dụng của họ. Trong quá trình đó, nhiều nhà phát triển phần mềm và quản lý sản phẩm tự hỏi liệu passkeys có hoạt động trong chế độ ẩn danh hoặc duyệt web riêng tư hay không, vì điều này ảnh hưởng lớn đến trải nghiệm người dùng tổng thể.
Với bài viết này, chúng ta sẽ cùng nhau tìm câu trả lời cho các câu hỏi sau:
Kiến thức này đảm bảo trải nghiệm người dùng mượt mà trên các trình duyệt và hệ điều hành khác nhau, đưa ứng dụng của bạn lên vị trí hàng đầu về bảo mật và tiện lợi.
Recent Articles
🔑
Passkeys & WebAuthn PRF cho Mã hóa End-to-End (2025)
📖
WebAuthn pubKeyCredParams & credentialPublicKey: Tìm hiểu về CBOR & COSE
📖
Gợi ý về Thông tin xác thực Khóa công khai WebAuthn / Gợi ý User-Agent
📖
Giao thức (CXP) & Định dạng (CXF) Trao đổi Thông tin xác thực WebAuthn
🔑
Các Phương Pháp Đăng Nhập và Xác Thực Bằng Mã QR
Về cơ bản, passkeys là các khóa mã hóa được sử dụng để xác thực người dùng mà không cần mật khẩu truyền thống. Chúng cung cấp bảo mật nâng cao bằng cách loại bỏ các rủi ro liên quan đến việc đánh cắp mật khẩu và các cuộc tấn công phishing.
Thông thường, passkeys được lưu trữ an toàn ngay trên thiết bị, và chức năng của chúng vẫn nhất quán ngay cả trong chế độ ẩn danh hoặc riêng tư đối với hầu hết các hệ điều hành, ngoại trừ Windows 10 (xem bên dưới), miễn là thiết bị đó sẵn sàng cho passkey.
Chế độ ẩn danh hoặc riêng tư thường được sử dụng để duyệt web mà không để lại dấu vết. Tính năng này rất có giá trị đối với những người dùng ưu tiên sự riêng tư, và điều cần thiết là các phương thức xác thực, chẳng hạn như passkeys, phải hoạt động liền mạch trong các chế độ này.
Tuy nhiên, trong lịch sử phát triển của WebAuthn, đã có những cuộc thảo luận và cải tiến liên tục vì hành vi trước đây khá khó hiểu và không nhất quán giữa các hệ điều hành và trình duyệt (xem các cuộc thảo luận cũ và báo cáo lỗi này để tham khảo tại đây, tại đây và tại đây).
Hiểu rõ hành vi của passkeys trên các trình duyệt và hệ điều hành khác nhau giúp đảm bảo tính tương thích và trải nghiệm người dùng mượt mà.
Passkeys có hoạt động trong chế độ ẩn danh / duyệt web riêng tư không?
Windows 10 | Windows 11 | Android 14 | iOS 17.5 | macOS 14 | |
---|---|---|---|---|---|
Chrome | ❌ | ✅ (có thêm màn hình thông báo) | ✅ | ✅ | ✅ |
Edge | ❌ | ✅ (có thêm màn hình thông báo) | ✅ | ✅ | ✅ |
Safari | k/a | k/a | k/a | ✅ | ✅ |
Firefox | ✅ | ✅ | ✅ | ✅ | ✅ |
Trên Windows 10 (22H2), chúng tôi đã phát hiện ra ngoại lệ duy nhất khiến passkeys không hoạt động một cách đáng tin cậy và nhận được hai ảnh chụp màn hình sau đây khi cố gắng sử dụng một trình xác thực nền tảng (Windows Hello):
Thông báo lỗi passkey trong chế độ ẩn danh của Chrome trên Windows 10
Thông báo lỗi passkey trong chế độ InPrivate của Edge trên Windows 10
Khi chúng tôi chuyển sang chế độ duyệt web thông thường, mọi thứ hoạt động như mong đợi, vì vậy thông báo lỗi trong cửa sổ pop-up gây hiểu lầm.
Hơn nữa, nếu chúng tôi cố gắng sử dụng một trình xác thực đa nền tảng (ví dụ: khóa bảo mật phần cứng, như YubiKey, hoặc Xác thực chéo thiết bị qua mã QR / Bluetooth) thì nó lại hoạt động.
Khi tìm hiểu sâu hơn về vấn đề và thực thi hai lệnh sau trong bảng điều khiển của trình duyệt để xác định xem trình xác thực nền tảng (PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
) và Conditional UI (PublicKeyCredential.isConditionalMediationAvailable()
) có khả dụng hay không, chúng tôi đã có một phát hiện thú vị: promise đầu tiên trả về false
, trong khi promise thứ hai trả về true
, điều này không hợp lý, vì trình xác thực nền tảng là bắt buộc để Conditional UI hoạt động.
Bắt đầu từ Chrome 129 (và tương tự trên Edge, vốn dựa trên Chromium), PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
trả về true
ngay cả trong chế độ Ẩn danh / InPrivate trên Windows 10. Trước đây, giá trị này là false
trong chế độ ẩn danh. Mặc dù bây giờ trả về true
, trình xác thực nền tảng vẫn không khả dụng để tạo passkeys mới, gây ra luồng người dùng bị lỗi.
Dưới đây là bảng hiển thị các giá trị trả về của PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
trên Windows 10 trong các phiên bản và chế độ khác nhau của Chrome/Edge:
Trình duyệt/Phiên bản | Chế độ thường (W10) | Chế độ ẩn danh/riêng tư (W10) | Hành vi trên giao diện người dùng |
---|---|---|---|
Chrome ≤ 128 (trước thay đổi) | true | false | Không có trình xác thực nền tảng trong chế độ ẩn danh |
Chrome ≥ 129 | true | true | Yêu cầu khóa bảo mật thay vì trình xác thực nền tảng |
Edge ≤ 128 (trước thay đổi) | true | false | Không có trình xác thực nền tảng trong chế độ InPrivate |
Edge ≥ 129 | true | true | Yêu cầu khóa bảo mật thay vì trình xác thực nền tảng |
Hành vi quan sát được:
true
, trình xác thực nền tảng không xuất hiện để tạo passkey.Tác động của thay đổi:
Điều này thực sự làm hỏng luồng thêm passkeys vào trình xác thực nền tảng trong chế độ Ẩn danh/InPrivate. Việc điều chỉnh trong Chrome 129+ chủ yếu được thực hiện để kích hoạt chức năng đăng nhập bằng passkeys trong chế độ Ẩn danh. Các luồng đăng nhập sử dụng cùng một cơ chế phát hiện để kiểm tra hỗ trợ passkey (PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
), và thay đổi này đảm bảo rằng việc đăng nhập có thể diễn ra suôn sẻ. Tuy nhiên, hậu quả không mong muốn là trải nghiệm bị lỗi khi tạo passkeys bằng trình xác thực nền tảng trong các chế độ duyệt web riêng tư.
Thông tin chi tiết hơn về thay đổi này có thể được tìm thấy trong Đánh giá mã nguồn Chromium và thảo luận theo dõi vấn đề liên quan. Đối với các trang web muốn cung cấp hỗ trợ tối ưu cho passkeys, việc phát hiện chế độ ẩn danh hiện là cách duy nhất để giảm thiểu vấn đề này. Bằng cách xác định khi người dùng đang ở chế độ Ẩn danh/InPrivate trên Windows 10 với Chrome/Edge, các trang web có thể chủ động tránh cung cấp các tùy chọn trình xác thực nền tảng để tạo passkey.
Khi sử dụng Windows Hello làm trình xác thực nền tảng, một cửa sổ pop-up bảo mật xuất hiện trong quá trình tạo passkey ở chế độ ẩn danh (trên Chrome) / chế độ InPrivate (trên Edge), cảnh báo người dùng rằng passkey sẽ được lưu trữ và có thể sử dụng sau này ở chế độ không ẩn danh (hành vi này đã được thử nghiệm trên Windows 11 22H2). Xét một trong những trường hợp sử dụng của chế độ ẩn danh, nơi người dùng muốn tạo tài khoản mà không để lại bất kỳ dấu vết thông tin nào, cảnh báo này là hợp lý.
Trên Android và khi sử dụng chế độ ẩn danh (trên Chrome) / chế độ InPrivate (trên Edge), hành vi tương tự như trên Windows 11, vì có một cửa sổ pop-up thông tin hiện ra cho người dùng biết rằng passkey sẽ được lưu trong trình quản lý mật khẩu và bất kỳ ai có quyền truy cập vào trình quản lý mật khẩu cũng sẽ có quyền truy cập vào passkey.
Tóm lại, passkeys hoạt động đáng tin cậy trong các chế độ ẩn danh và riêng tư trên các trình duyệt và hệ điều hành lớn, với một số ngoại lệ cụ thể trên Windows 10 khi tạo passkeys. Bằng cách tận dụng các giải pháp của Corbado, các nhà phát triển có thể triển khai passkeys một cách hiệu quả, và các nhà quản lý sản phẩm có thể nâng cao trải nghiệm người dùng mà không ảnh hưởng đến bảo mật.
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents