Mật khẩu là mắt xích yếu nhất trong bảo mật tài khoản. Chúng có thể bị lừa đảo, rò rỉ, sử dụng lại hoặc quên. Đó là lý do tại sao chúng tôi đã thêm hỗ trợ cho WebAuthn passkeys - một phương thức xác thực không cần mật khẩu, chống lừa đảo, vừa an toàn hơn vừa tiện lợi hơn.
Passkeys là gì?
Passkeys là thông tin xác thực mật mã được lưu trữ trên thiết bị của bạn (điện thoại, laptop, khóa bảo mật) thay thế mật khẩu để xác thực. Chúng sử dụng tiêu chuẩn WebAuthn (một phần của FIDO2) và cung cấp nhiều ưu điểm:
- Chống lừa đảo - Passkeys được liên kết với tên miền của trang web, vì vậy không thể sử dụng trên các trang web giả mạo
- Không có bí mật để rò rỉ - Chỉ có khóa công khai được lưu trữ trên máy chủ
- Liên kết với thiết bị - Khóa riêng tư không bao giờ rời khỏi thiết bị của bạn
- Bảo vệ sinh trắc học - Thường được bảo vệ bởi Face ID, Touch ID hoặc Windows Hello
- Đồng bộ xuyên thiết bị - Các nền tảng hiện đại đồng bộ passkeys qua các thiết bị thông qua tài khoản iCloud, Google hoặc Microsoft
Triển khai của chúng tôi
Chúng tôi đã tích hợp hỗ trợ WebAuthn passkey vào ngăn xếp xác thực django-allauth hiện có, cung cấp cả điểm cuối API web và di động.
Luồng đăng ký
Khi người dùng đăng ký một passkey mới, luồng hoạt động như sau:
- Client yêu cầu tùy chọn đăng ký từ máy chủ
- Máy chủ tạo thử thách với thông tin người dùng và bên tin cậy
- API WebAuthn của trình duyệt nhắc người dùng (sinh trắc học hoặc khóa bảo mật)
- Client gửi thông tin xác thực trở lại máy chủ
- Máy chủ xác minh và lưu trữ khóa công khai
| |
Luồng xác thực
Đối với xác thực hai yếu tố sử dụng passkey:
- Người dùng hoàn thành xác thực chính (tên người dùng/mật khẩu hoặc đăng nhập xã hội)
- Máy chủ trả về thử thách để xác minh WebAuthn
- Trình duyệt nhắc cho passkey (chạm sinh trắc học)
- Thông tin xác thực được xác minh so với khóa công khai đã lưu
- Người dùng được xác thực đầy đủ
| |
Quản lý Passkey
Người dùng có thể quản lý các passkeys đã đăng ký:
- Liệt kê tất cả passkeys với ngày đăng ký và lần sử dụng cuối
- Đổi tên passkeys để nhận dạng dễ dàng hơn (ví dụ: “iPhone”, “MacBook”)
- Xóa passkeys (với bảo vệ chống xóa authenticator cuối cùng)
| |
Các điểm cuối API
REST API của chúng tôi cung cấp hỗ trợ WebAuthn đầy đủ cho ứng dụng di động:
| Điểm cuối | Phương thức | Mô tả |
|---|---|---|
/api/webauthn/register/options/ | GET | Lấy thử thách đăng ký |
/api/webauthn/register/complete/ | POST | Hoàn thành đăng ký |
/api/webauthn/authenticate/options/ | GET | Lấy thử thách xác thực |
/api/webauthn/verify/ | POST | Xác minh thông tin xác thực cho 2FA |
/api/webauthn/ | GET | Liệt kê passkeys đã đăng ký |
/api/webauthn/<id>/ | PATCH | Đổi tên passkey |
/api/webauthn/<id>/ | DELETE | Xóa passkey |
Cân nhắc bảo mật
Mã khôi phục
Khi người dùng đăng ký authenticator đầu tiên (passkey hoặc TOTP), chúng tôi tự động tạo mã khôi phục. Các mã sử dụng một lần này có thể được sử dụng nếu tất cả các phương thức xác thực khác không khả dụng:
| |
Ngăn chặn khóa tài khoản
Người dùng không thể xóa passkey cuối cùng nếu điều đó khiến họ không có bất kỳ phương thức xác thực hai yếu tố nào:
| |
Giám sát
Chúng tôi theo dõi việc sử dụng passkey thông qua số liệu Datadog để giám sát bảo mật:
| |
Hỗ trợ trình duyệt
WebAuthn được hỗ trợ trong tất cả các trình duyệt hiện đại:
- Chrome 67+
- Firefox 60+
- Safari 13+
- Edge 79+
- Mobile Chrome, Safari, Firefox
Đối với các trình duyệt cũ hơn, người dùng vẫn có thể sử dụng TOTP (ứng dụng authenticator) hoặc mã khôi phục.
Trải nghiệm người dùng
Thêm passkey chỉ mất vài giây:
- Đi đến Cài đặt → Bảo mật → Xác thực hai yếu tố
- Nhấp Thêm Passkey
- Đặt tên thiết bị của bạn (ví dụ: “iPhone 15”)
- Xác thực với Face ID / Touch ID / Windows Hello
- Xong! Passkey của bạn đã được đăng ký
Các lần đăng nhập trong tương lai chỉ yêu cầu xác nhận sinh trắc học - không cần gõ mật khẩu hoặc sao chép mã từ ứng dụng authenticator.
Tại sao chúng tôi chọn Passkeys
| Phương thức | Rủi ro lừa đảo | Trải nghiệm người dùng | Khôi phục |
|---|---|---|---|
| Mật khẩu | Cao | Kém (quên, yếu) | Đặt lại email |
| SMS 2FA | Trung bình (SIM swap) | Tạm được | Số điện thoại |
| Ứng dụng TOTP | Thấp | Nhập mã thủ công | Khóa dự phòng |
| Passkeys | Rất thấp | Xuất sắc | Mã khôi phục |
Passkeys đại diện cho tương lai của xác thực. Chúng đã được hỗ trợ bởi các nền tảng Apple, Google và Microsoft, làm cho chúng có thể tiếp cận được với gần như tất cả người dùng của chúng tôi.
Sẵn sàng không dùng mật khẩu? Bật passkeys trong cài đặt bảo mật của bạn!
