Web Authentication là gì?
Là một API cho phép các ứng dụng web tạo và sử dụng thông tin xác thực mạnh mẽ, được xác thực, có phạm vi, dựa trên public-key nhằm mục đích xác thực người dùng một cách mạnh mẽ. Thông tin xác thực public-key được tạo và lữu trữ bới trình xác thực WebAuthn theo yêu cầu của bên tin cậy WebAuthn, và tùy thuộc vào sử đồng ý của người dùng. Sau đó thông tin xác thực public-key có thể được tuy cập bởi bên tin cậy (Relying Party) đó. Phạm vi được thực thi bằng các tuân thủ tác nhân người dùng (User Agents) và người xác thực (Authenticator). Ngoài ra, quyền riêng tư giữa các bên tin cậy được duy trì. Tức là các bên tin cậy không thể phát hiện bất kỳ thuộc tính nào, hoặc thậm chí sự tồn tại của thông tin xác thực nằm trong phạm vi của bên tin cậy khác. Tức là thông tin được lưu trữ trong WebAuthn bởi trang web example.com thì chỉ có example.com mới có thể truy cập được, còn example1.com không thể phát hiện và truy cập vào public-key này
Các bên tin cậy sử dụng WebAuthn API trong hai thời gian riêng biệt nhưng có liên quan đến nhau, liên quan đến người dùng.
Đầu tiên là Đăng ký, trong đó thông tin xác thực public-key được tạo trên trình xác thực và nằm trong phạm vi bên tin cậy có tài khoản của người dùng hiện tại (Tài khoản có thể đã tồn tại hoặc có thể được tạo tại thời điểm này).
Thứ 2 là xác thực, trong đó bên tin cậy được cung cấp Xác nhận xác thực chứng minh sự hiện diện và đồng ý của người dùng đã đăng ký thông tin khóa xác thực public-key.
WebAuthn là một API mở rộng bao gồm PublicKeyCredential API quản lý thông tin xác thực (Credential Management API) và cơ sở hạ tầng cho phép sử dụng những thông tin xác thực đó với 2 funtion navigator.credentials.create()
- Được sử dụng trong quá trình Đăng ký và navigator.credentials.get()
được sử dụng trong quá trình xác thực
Nói chung, các trình xác thực tương thích sẽ bảo vệ thông tin xác thực public-key, và tương tác với User-Agent để triển khai WebAuthn API. Có thể triển khai các trình xác thực tương thích trong việc thực thi phần mềm:
- on a general-purpose computing device (Máy tính, điện thoại),
- on an on-device Secure Execution Environment, Trusted Platform Module (TPM), or a Secure Element (SE) (EX: Android, iOS),
- off device (EX: USB, NFC, ...).
Trình xác thực được triển khai trên thiết bị được gọi là trình xác thực nền tảng (platform authenticators). Trình xác thực được triển khai ngoài thiết bị (roaming authenticators) có thể được truy cập qua một phương tiện truyền tải như USB, Bluetooth hoặc NFC.