Passkey là gì? Đăng nhập không mật khẩu với WebAuthn FIDO2

Passkey (khóa truy cập) đang trở thành tiêu chuẩn mới để thay thế mật khẩu truyền thống, mang lại trải nghiệm đăng nhập an toàn hơn và tiện lợi hơn nhờ chuẩn WebAuthnFIDO2. Thay vì nhớ hàng chục mật khẩu phức tạp, người dùng chỉ cần xác thực bằng vân tay, Face ID, PIN thiết bị hoặc security key vật lý — tất cả đều dựa trên mật mã học khóa công khai (public-key cryptography) chống giả mạo hiệu quả.

Passkey hoạt động như thế nào?

Khi đăng ký tài khoản, trình duyệt tạo một cặp khóa mật mã: khóa riêng (private key) lưu an toàn trong TPM/Secure Enclave của thiết bị, và khóa công khai (public key) gửi lên server. Mỗi lần đăng nhập, server gửi một thách thức (challenge) ngẫu nhiên, thiết bị ký thách thức đó bằng khóa riêng và gửi chữ ký về. Server xác thực chữ ký bằng khóa công khai — không bao giờ thấy khóa riêng, không thể bị lừa đảo (phishing) vì khóa riêng không rời thiết bị.

Giao diện Passkey trong Bitwarden hiển thị tùy chọn tạo khóa truy cập

WebAuthn và FIDO2: Hai trụ cột kỹ thuật

WebAuthn (Web Authentication) là API chuẩn W3C cho phép trình duyệt giao tiếp với authenticator (thiết bị xác thực) — hỗ trợ cả platform authenticator (Windows Hello, Touch ID, Face ID, Android Biometric) và roaming authenticator (YubiKey, Titan Security Key). FIDO2 là tập hợp chuẩn của FIDO Alliance bao gồm WebAuthn và CTAP (Client to Authenticator Protocol), định nghĩa cách client (trình duyệt/OS) liên lạc với authenticator ngoại vi qua USB/NFC/Bluetooth.

Sơ đồ mã hóa khóa công khai (public key cryptography) cơ bản

Lợi ích so với mật khẩu và 2FA truyền thống

  • Chống phishing tuyệt đối: Khóa riêng không bao giờ rời thiết bị, không thể bị đánh cắp qua trang web giả mạo.
  • Không cần nhớ mật khẩu: Xác thực bằng sinh trắc học hoặc PIN thiết bị — trải nghiệm mượt mà như mở khóa điện thoại.
  • Đồng bộ đa thiết bị: Passkey có thể đồng bộ qua iCloud Keychain (Apple), Google Password Manager (Android/Chrome), 1Password, Bitwarden — đăng nhập trên máy mới chỉ cần quét vân tay.
  • Không tái sử dụng credential: Mỗi trang web có cặp khóa riêng biệt, vi phạm dữ liệu trang A không ảnh hưởng trang B.
  • Tuân thủ quy định: Đáp ứng yêu cầu xác thực đa yếu tố (MFA) của GDPR, PSD2, NIST 800-63B.

Hỗ trợ hiện nay (2025)

Platform Hỗ trợ Passkey Đồng bộ
iOS/macOS (Safari, Chrome) Đầy đủ từ iOS 16/macOS Ventura iCloud Keychain
Android (Chrome, Brave) Đầy đủ từ Android 9+ Google Password Manager
Windows 10/11 (Edge, Chrome) Windows Hello (PIN, vân tay, Face) Microsoft account / 1Password
Linux (Chrome, Firefox) WebAuthn platform + security key 1Password, Bitwarden, Passkey manager

Hàng trăm dịch vụ lớn đã triển khai: Google, GitHub, Microsoft, Amazon, PayPal, eBay, Shopify, WhatsApp, TikTok, Nintendo, Sony PlayStation và nhiều ngân hàng Việt Nam (Vietcombank, Techcombank, VPBank qua ứng dụng di động).

Sơ đồ luồng hoạt động WebAuthn/FIDO2 từ tạo khóa đến xác thực

Triển khai Passkey cho developer

Backend cần lưu credential IDpublic key của từng user. Quy trình đăng ký (registration ceremony):

// 1. Server tạo challenge ngẫu nhiên
const challenge = crypto.getRandomValues(new Uint8Array(32));

// 2. Gọi navigator.credentials.create() ở frontend
const credential = await navigator.credentials.create({
  publicKey: {
    challenge,
    rp: { name: "MyApp", id: "myapp.com" },
    user: { id: userId, name: "[email protected]", displayName: "User" },
    pubKeyCredParams: [{ alg: -7, type: "public-key" }], // ES256
    authenticatorSelection: { 
      authenticatorAttachment: "platform", 
      requireResidentKey: true,
      userVerification: "preferred"
    },
    timeout: 60000,
    attestation: "none"
  }
});

// 3. Gửi credential.id (base64url) và credential.response.attestationObject
//    lên server để verify và lưu public key

Quy trình đăng nhập (authentication ceremony) tương tự dùng navigator.credentials.get() với allowCredentials chứa các credential ID đã lưu.

Thách thức và lưu ý triển khai

  • Account recovery: Nếu mất thiết bị và không có passkey đồng bộ, cần quy trình khôi phục (email/SMS OTP, security key dự phòng, support team).
  • Cross-platform: Passkey tạo trên iPhone (iCloud) không tự động dùng được trên Windows Chrome trừ khi đồng bộ qua 1Password/Bitwarden.
  • Enterprise: Quản trị IT cần chính sách cho phép/khóa passkey, hỗ trợ security key vật lý (YubiKey) cho nhân viên không dùng sinh trắc học.
  • Legacy system: Hệ thống cũ dùng mật khẩu cần migration song song (hybrid) — cho phép cả passkey và password trong giai đoạn chuyển đổi.

Kết luận

Passkey dựa trên WebAuthn/FIDO2 là bước tiến lớn nhất trong xác thực nhân loại từ khi ra mật khẩu. Nó loại bỏ hoàn toàn vector tấn công phishing, credential stuffing và brute-force, đồng thời mang lại trải nghiệm “đăng nhập một chạm” như mở khóa điện thoại. Developer và doanh nghiệp nên bắt đầu triển khai song song ngay hôm nay — người dùng sẽ cảm ơn vì không còn phải nhớ hay reset mật khẩu bao giờ nữa.

WebAuthn Guide, FIDO2 Specifications, Passkeys.dev – Implementation Resources

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Samsung Galaxy Ring: Vòng đeo thông minh theo dõi sức khỏe sau 1 tháng

Samsung Galaxy Ring chính thức ra mắt tại Việt Nam từ tháng 7/2024, đánh dấu bước tiến đầu tiên của hãng Korea vào thị trường smart ring — thiết bị…

Xem thêm

Wi-Fi 7 vs Wi-Fi 6E: Tốc độ, độ trễ, thiết bị hỗ trợ thực tế

Wi-Fi 7 vs Wi-Fi 6E là cuộc đua tiêu chuẩn không dây thế hệ mới. Wi-Fi 7 (802.11be) mang lại tốc độ 46 Gbps, độ trễ dưới 2ms, hỗ trợ…

Xem thêm

Thunderbolt 5: Cổng kết nối 120Gbps thay đổi workflow creator

Thunderbolt 5: Cổng kết nối 120Gbps thay đổi workflow creator Thunderbolt 5 ra mắt cuối 2023 mang băng thông 120Gbps (gấp 3 lần Thunderbolt 4), hỗ trợ PCIe Gen 4,…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất