← Quay lại blog

Passkey / Mật khẩu / Xác thực

Mật khẩu và passkey: Cách đăng nhập hiện đại thực sự hoạt động

PetexSpace

Một mật khẩu và một passkey có thể xuất hiện trên cùng một màn hình đăng nhập, nhưng chúng dựa vào các mô hình bảo mật khác nhau. Mật khẩu là một bí mật có thể tái sử dụng mà bạn biết và gửi đến một dịch vụ. Một passkey sử dụng mật mã khóa công khai: một khóa riêng giữ bởi nhà cung cấp passkey của bạn, trong khi dịch vụ lưu trữ khóa công khai tương ứng. Việc đăng nhập chứng minh quyền kiểm soát khóa riêng mà không tiết lộ nó.

Sự khác biệt đó loại bỏ một số vấn đề phổ biến về mật khẩu, nhưng nó không làm cho phần còn lại của tài khoản trở nên bất khả xâm phạm. An ninh thiết bị, khả năng khôi phục từ nhà cung cấp passkey, việc triển khai ứng dụng, và phục hồi tài khoản vẫn quan trọng. So sánh hữu ích vì vậy không phải là mật khẩu xấu, passkey hoàn hảo. Mà là những tấn công nào mỗi thiết kế ngăn chặn và những trách nhiệm nào vẫn còn tồn tại.

Cách đăng nhập bằng mật khẩu hoạt động

Khi bạn tạo một mật khẩu, một dịch vụ được thiết kế đúng cách không cần phải lưu trữ mật khẩu gốc. Nó lưu trữ một kết quả được tạo ra từ một quá trình băm mật khẩu với một chuỗi muối duy nhất. Khi đăng nhập, dịch vụ sẽ xử lý mật khẩu bạn nhập và so sánh kết quả. Tuy nhiên, nếu một kẻ tấn công lừa bạn nhập mật khẩu trên một trang web giả mạo, kẻ tấn công sẽ nhận được bí mật có thể sử dụng lại và có thể thử nó trên dịch vụ thực tế.

Tái sử dụng làm tổn hại lan rộng. Nếu cùng một mật khẩu bảo vệ nhiều tài khoản, một thông tin đăng nhập bị lộ có thể được thử ở nơi khác thông qua việc nhồi nhét thông tin đăng nhập. Mật khẩu duy nhất được tạo và lưu trữ bởi trình quản lý mật khẩu sẽ hạn chế sự lan rộng đó. Xác thực đa yếu tố thêm một rào cản khác, mặc dù các mã mà người dùng có thể nhập vào trang phishing cũng có thể bị kẻ tấn công truyền tiếp.

Một passkey chứa gì

Passkey là một thông tin đăng nhập FIDO liên kết với một tài khoản tại một trang web hoặc ứng dụng cụ thể. Trong quá trình tạo, thiết bị xác thực tạo ra một cặp khóa mã hóa. Khóa công khai được đăng ký với dịch vụ. Khóa riêng tư được bảo vệ bởi nhà cung cấp passkey trên thiết bị, khóa bảo mật, trình quản lý thông tin đăng nhập hệ điều hành, hoặc trình quản lý bên thứ ba tương thích.

Mở khóa thiết bị bằng mã PIN, dấu vân tay, nhận diện khuôn mặt hoặc mẫu hình cho phép sử dụng khóa riêng tư. Kiểm tra sinh trắc học thường diễn ra tại chỗ; dịch vụ nhận bằng chứng mã hóa, không phải dữ liệu dấu vân tay hoặc khuôn mặt. Tổng quan passkey của Liên minh FIDO mô tả passkey như các thông tin đăng nhập FIDO đa nền tảng được sử dụng thông qua cùng một hành động mở khóa thiết bị.

Device creating a key pair while keeping one key inside and sending the public key to a service
When a passkey is created, the service stores a public key. The corresponding private key remains with the passkey provider.

Cách thức đăng nhập passkey hoạt động

  1. Dịch vụ gửi một thử thách mật mã mới đến trình duyệt hoặc ứng dụng.
  2. Người xác thực xác nhận rằng yêu cầu thuộc về dịch vụ đã đăng ký và yêu cầu sự đồng ý của người dùng hoặc xác minh thiết bị khi cần thiết.
  3. Khóa riêng ký thử thách tại chỗ.
  4. Dịch vụ xác minh chữ ký bằng khóa công khai mà nó đã lưu trữ.
  5. Thử thách mới ngăn chặn việc sử dụng phản hồi cũ cho lần đăng nhập mới.

Cơ chế web được chuẩn hóa thông qua WebAuthn. Tiêu chuẩn Xác thực Web của W3C xác định thông tin đăng nhập được phạm vi hóa cho một bên phụ thuộc và được trung gian bởi trình duyệt và thiết bị xác thực. Liên kết nguồn gốc này là trung tâm của khả năng chống lừa đảo: một thông tin đăng nhập được đăng ký cho một dịch vụ sẽ không được cung cấp cho một miền giả mạo.

Legitimate origin completing a signed challenge while an imitation origin is rejected
A passkey is scoped to the legitimate service origin, which is why a look-alike phishing site cannot request the same credential.

Passkey cải thiện những gì

  • Không có mật khẩu nào có thể tái sử dụng được gửi trong quá trình đăng nhập.
  • Mỗi dịch vụ nhận được một thông tin đăng nhập khác nhau, loại bỏ việc tái sử dụng mật khẩu giữa các trang web.
  • Một trang lừa đảo trên nguồn khác không thể yêu cầu thông tin đăng nhập đã đăng ký với dịch vụ hợp pháp.
  • Một vi phạm máy chủ tiết lộ khóa công khai thay vì cơ sở dữ liệu mật khẩu có thể bị bẻ khóa và tái sử dụng.
  • Mở khóa thiết bị có thể thay thế việc ghi nhớ và nhập một bí mật phức tạp.

Passkey không tự giải quyết những gì

  • Thiết bị bị xâm phạm hoặc đã mở khóa vẫn có thể tiết lộ phiên hoạt động hoặc cho phép sử dụng thông tin đăng nhập.
  • Tiện ích mở rộng trình duyệt độc hại, lỗi ứng dụng và đánh cắp phiên tồn tại bên ngoài giao thức passkey.
  • Khôi phục tài khoản yếu có thể bỏ qua phương pháp đăng nhập mạnh.
  • Mất quyền truy cập vào mọi thiết bị và phương thức phục hồi vẫn có thể khiến người dùng bị khóa tài khoản.
  • Người dùng vẫn có thể bị lừa để cho phép một hành động có hại sau khi đăng nhập hợp pháp.

Hướng dẫn của FIDO nhấn mạnh rằng khả năng chống lừa đảo đầy đủ bao gồm cả việc đăng ký và phục hồi, không chỉ bước đăng nhập thông thường. Một dịch vụ cho phép kẻ tấn công đặt lại tài khoản thông qua phương thức dự phòng yếu chỉ di chuyển điểm yếu chứ không loại bỏ nó.

Một kế hoạch di chuyển thực tiễn

  1. Tạo passkey cho các dịch vụ quan trọng hỗ trợ chúng, sau đó xác nhận nơi passkey đó được lưu trữ và cách chúng đồng bộ hoặc gắn với thiết bị.
  2. Thêm nhiều đường dẫn phục hồi khi dịch vụ cho phép, chẳng hạn như thiết bị đáng tin cậy thứ hai hoặc khóa bảo mật phần cứng.
  3. Giữ mật khẩu riêng biệt trong trình quản lý mật khẩu cho các dịch vụ vẫn yêu cầu mật khẩu.
  4. Bật yếu tố thứ hai mạnh nhất có sẵn cho các tài khoản mật khẩu còn lại, ưu tiên các phương pháp chống lừa đảo khi có thể.
  5. Lưu mã khôi phục ngoại tuyến ở nơi bạn có thể truy cập nếu thiết bị chính của bạn không có sẵn.
  6. Xem lại các thiết bị cũ và các phiên đăng nhập đang hoạt động sau khi thay thế hoặc mất thiết bị.

Passkey là một cải tiến có ý nghĩa vì chúng thay đổi giao thức, không chỉ đơn thuần là hình thức của bí mật. Việc áp dụng sẽ vẫn còn pha trộn trong một thời gian, vì vậy hầu hết mọi người cần cả hai hệ thống: passkey nơi được hỗ trợ, và mật khẩu mạnh, duy nhất với bảo vệ đa yếu tố phù hợp ở tất cả các nơi khác.

Các tài liệu tham khảo chính

Liên minh FIDO: passkey. W3C: Thông số kỹ thuật Xác thực Web.