𝗣𝗮𝘀𝘀𝗸𝗲𝘆𝘀 𝘃𝗮̀𝗼 𝗻𝗮̆𝗺 𝟮𝟬𝟮𝟲: 𝗛𝘂̛𝗼̛́𝗻𝗴 𝗱𝗮̃𝗻 𝗸𝘆̃ 𝘁𝗵𝘂𝘢̣̂𝘁 𝘁𝗵𝘂̣̂𝗰 𝘁𝗲̂́

Mật khẩu đã lỗi thời. Chúng dựa trên các bí mật dùng chung. Nếu một máy chủ lưu trữ mật khẩu, bạn đang làm tăng gấp đôi bề mặt tấn công của mình.

Dữ liệu cho thấy rủi ro là rất lớn. Thông tin đăng nhập bị đánh cắp là nguyên nhân gây ra hầu hết các vụ vi phạm dữ liệu. Các loại mã độc đánh cắp thông tin (infostealer malware) thu thập hàng triệu mật khẩu mỗi năm. Ngay cả 2FA cũng có những lỗ hổng. Mã SMS đối mặt với tình trạng tráo SIM (SIM swapping). Các mã TOTP đối mặt với tấn công giả mạo (phishing) thời gian thực.

Passkeys thay đổi điều này. Chúng sử dụng mã hóa khóa công khai thông qua WebAuthn và FIDO2.

Cách thức hoạt động: • Thiết bị của bạn tạo ra một cặp khóa công khai-riêng tư. • Khóa riêng tư được lưu trữ trong phần cứng của bạn. • Máy chủ chỉ nhận được khóa công khai. • Trong quá trình đăng nhập, thiết bị của bạn sẽ ký một thử thách (challenge) ngẫu nhiên. • Không có bí mật nào được truyền qua mạng.

Điều này ngăn chặn tấn công giả mạo vì passkeys được liên kết với tên miền cụ thể của bạn. Một passkey dành cho trang web của bạn sẽ không hoạt động trên một trang web giả mạo.

Cách triển khai chúng: Đừng tự viết mã WebAuthn thuần túy. Nó rất dễ bị lỗi. Hãy sử dụng SimpleWebAuthn cho TypeScript và Node.js. Nó sẽ xử lý các phép toán phức tạp thay cho bạn.

Cài đặt: npm install @simplewebauthn/server @simplewebauthn/browser

Các sai lầm phổ biến cần tránh: • Tái sử dụng các thử thách (challenges). Các thử thách phải là loại chỉ sử dụng một lần và do máy chủ tạo ra. • Bỏ qua bộ đếm (counters). Luôn cập nhật bộ đếm thông tin xác thực để phát hiện các khóa bị sao chép. • Quên mất việc khôi phục. Nếu người dùng mất thiết bị, họ sẽ mất luôn tài khoản. Hãy xây dựng lộ trình khôi phục trước tiên. • Trải nghiệm người dùng (UX) kém. Các luồng tương tác giữa các thiết bị (cross-device) thường có tỷ lệ hoàn tất thấp hơn. Hãy duy trì một phương thức dự phòng trong quá trình chuyển đổi.

Chiến lược chuyển đổi:

  • Giai đoạn 1: Cung cấp passkeys dưới dạng tùy chọn (opt-in) sau khi đăng nhập bằng mật khẩu.
  • Giai đoạn 2: Biến passkeys thành phương thức chính sau khi hầu hết người dùng đã áp dụng chúng.
  • Giai đoạn 3: Yêu cầu passkeys cho tất cả các lượt đăng ký mới.

Ngành công nghiệp đã chuyển mình. Google báo cáo tỷ lệ tài khoản bị xâm nhập thấp hơn nhiều khi sử dụng passkeys. Các nền tảng lớn như Amazon và TikTok đều đang sử dụng chúng. Nếu bạn không hỗ trợ chúng, bạn đang tụt hậu.

Source: https://dev.to/moksh/passkeys-in-2026-a-practical-engineering-guide-to-passwordless-auth-15pj