Xác thực FIDO với mật khẩu

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Giới thiệu

Tiêu chuẩn xác thực FIDO (FastIDentity Online) xác định một cơ chế xác thực nhanh và an toàn để người dùng truy cập vào các trang web và ứng dụng.

Liên minh FIDO (với sự đại diện của một số tổ chức) phát triển các thông số kỹ thuật mở và có thể mở rộng. Nhờ đó, mọi người có thể truy cập vào các trang web và ứng dụng thông qua một giao thức chung. Điều này có nghĩa là bất kỳ công ty nào cũng có thể sử dụng tiêu chuẩn FIDO để triển khai các công nghệ, chẳng hạn như mật mã, để xác thực an toàn.

Khoá là thông tin đăng nhập FIDO, liên kết với một nguồn gốc (trang web hoặc ứng dụng) và một thiết bị vật lý. Mật khẩu cho phép người dùng xác thực mà không cần phải nhập tên người dùng, mật khẩu hoặc cung cấp bất kỳ yếu tố xác thực bổ sung nào. Công nghệ này sử dụng cơ chế xác thực chính là thay thế mật khẩu.

Tại sao việc xác thực bảo mật lại quan trọng?

Mật khẩu đã được dùng để xác thực trong quá trình tính toán trong nhiều thập kỷ. Tuy nhiên, xác thực dựa trên mật khẩu không phải là lựa chọn an toàn nhất để xác thực, vì cơ sở dữ liệu có thể bị xâm phạm và mật khẩu có thể bị lừa đảo.

Nhiều người dùng đăng nhập vào các trang web khác nhau bằng cùng một mật khẩu. Điều này có nghĩa là khi một trang web bị xâm phạm, mọi tài khoản khác sử dụng cùng một mật khẩu sẽ gặp rủi ro. Vì vậy, ngay cả khi bạn đã xây dựng một hệ thống mật khẩu an toàn, thì mọi người vẫn gặp rủi ro khi mật khẩu là biện pháp bảo vệ duy nhất của họ.

Một số trang web và ứng dụng yêu cầu xác minh hai bước bằng cách yêu cầu thông tin xác thực thứ hai được gửi qua SMS, email, ứng dụng, v.v. Mặc dù cách này bảo mật hơn so với chỉ sử dụng mật khẩu, phương thức xác minh hai bước này vẫn dễ bị lừa đảo, bởi vì người dùng có thể bị thuyết phục để nhập chi tiết xác minh hai bước vào một trang web độc hại.

FIDO tạo ra tính bảo mật mạnh hơn như thế nào?

Phương thức xác thực dựa trên FIDO sẽ loại bỏ nhiều vấn đề bắt nguồn từ quy trình xác thực dựa trên mật khẩu, và khỏi việc xác thực sử dụng các bước thứ hai truyền thống. Cụ thể, bạn nên làm như sau:

  • Tính năng xác thực FIDO sử dụng phương thức mã hóa khóa công khai.
  • FIDO giúp đảm bảo rằng thông tin đăng nhập không được chia sẻ với các bên có hại hoặc các bên không sở hữu thông tin đăng nhập đó

Phương thức mã hóa khóa công khai giúp giảm nguy cơ bị rò rỉ dữ liệu từ các cơ sở dữ liệu vi phạm. Người dùng đăng ký một nguồn gốc (một trang web hoặc ứng dụng) để tạo một cặp khóa riêng tư công khai trên trình xác thực của người dùng (một thiết bị thực). Khóa công khai của người dùng được máy chủ của nơi lưu trữ nguồn, Kẻ tấn công không thể lấy khóa cá nhân của người dùng từ dữ liệu lưu trữ trên máy chủ, là điều bắt buộc để hoàn tất xác thực.

Với FIDO, người dùng không chịu trách nhiệm xác nhận rằng trang web hoặc ứng dụng thực sự là người mà họ nói. Hơn nữa, người dùng không chịu trách nhiệm đảm bảo thông tin đăng nhập không được sử dụng ở các vị trí không phù hợp. FIDO liên kết từng thông tin đăng nhập với một nguồn gốc cụ thể, nghĩa là thiết bị (không phải con người) chịu trách nhiệm xác định chính xác trang web hoặc ứng dụng.

Ví dụ: giả sử người dùng đang cố đăng nhập vào example.com. Nếu người dùng yêu cầu thông tin đăng nhập do example.com sở hữu vào phishing-example.com, trình xác thực sẽ từ chối yêu cầu, từ đó bảo vệ người dùng. Quy trình xác thực khiến các trang web hoặc ứng dụng lừa đảo khó có được quyền xác minh dành cho các nguồn gốc khác.

Nhìn chung, FIDO và mã xác nhận cho phép bạn triển khai quy trình xác thực mạnh hơn, vẫn có thể sử dụng được và dễ dàng cho hầu hết người dùng.

Bản trình diễn

Mật khẩu là gì?

Khóa mật khẩu là một thông tin xác thực kỹ thuật số tuân thủ các tiêu chuẩn FIDO và W3C Web Authentication (WebAuthn). Tương tự như mật khẩu, các trang web và ứng dụng có thể yêu cầu người dùng tạo một mật khẩu để truy cập vào tài khoản của họ.

Mật khẩu dựa vào việc mở khóa một thiết bị để xác minh danh tính của người dùng. Bạn có thể thực hiện việc này bằng cảm biến sinh trắc học (chẳng hạn như vân tay số hoặc nhận dạng khuôn mặt), mã PIN hoặc hình mở khóa. Trước tiên, người dùng phải đăng ký với nguồn gốc để tạo thông tin mật (một cặp khóa riêng tư công khai).

Khi quay lại trang web hoặc ứng dụng để đăng nhập, người dùng có thể thực hiện các bước sau:

  1. Chuyển đến ứng dụng.
  2. Nhấp vào Đăng nhập.
  3. Chọn mật khẩu của họ.
  4. Mở khóa thiết bị để hoàn tất đăng nhập.

Trình xác thực tạo một chữ ký bằng cách sử dụng khóa riêng tư. Chữ ký này được sử dụng để xác minh thông tin đăng nhập giữa nguồn gốc và trình xác thực, bằng cách sử dụng khóa công khai và không tiết lộ khóa riêng tư.

Người dùng có thể đăng nhập vào các dịch vụ trên bất kỳ thiết bị nào với sự trợ giúp của mật mã, bất kể nơi lưu trữ mật mã. Ví dụ: một mật khẩu được lưu trữ trên điện thoại di động có thể được dùng để đăng nhập vào một trang web trên một máy tính xách tay riêng biệt.

Mật khẩu hoạt động như thế nào?

Mật khẩu được tạo và đồng bộ hóa thông qua hệ điều hành. Một số hệ điều hành có thể cho phép tự động đồng bộ hóa mật khẩu giữa các thiết bị của người dùng, chẳng hạn như điện thoại Android và thiết bị ChromeOS được đăng nhập vào cùng một Tài khoản Google.

Mặc dù mật khẩu có liên quan đến hệ điều hành, nhưng người dùng có thể sử dụng mã xác nhận từ điện thoại của họ khi đăng nhập vào máy tính xách tay. Vì mật khẩu được xây dựng với tiêu chuẩn FIDO và W3C, nên tất cả các trình duyệt đều có thể áp dụng chúng. Ví dụ: một người dùng truy cập site.example trên Chromebook của họ. Người dùng này trước đây đã đăng nhập vào site.example trên thiết bị iOS của họ. Người dùng sẽ được nhắc xác nhận danh tính của họ trên thiết bị iOS. Thông thường, site.example sẽ tạo một mật khẩu mới cho Chromebook của người dùng để để đăng nhập trong tương lai, điện thoại sẽ không cần thiết nữa.

Mật khẩu được mã hóa hai đầu, có nghĩa là mặc dù Google có trách nhiệm đồng bộ hóa mật khẩu với các thiết bị Android khác nhau, nhưng Google không thể đọc mật mã hoặc nhận biết dữ liệu đó.

Quy trình xác thực

Một hình ảnh minh họa giao diện của cửa sổ xác thực.

Để triển khai mã xác nhận trên một trang web hoặc ứng dụng, điều quan trọng là bạn phải tự làm quen với những điều sau:

  • Mã xác thực là các thiết bị thực do người dùng sở hữu, có thể giữ mã xác nhận của người dùng và có thể xác định người dùng.
  • Bên liên quan là trang web hoặc ứng dụng của bạn, bao gồm một ứng dụng giao diện người dùng và máy chủ giao diện người dùng.

Ví dụ: giả sử người dùng muốn mua một đôi giày từ một cửa hàng ở shoes.example (bên phụ thuộc). Người dùng đã đăng ký tài khoản trên shoes.example bằng điện thoại Android có cảm biến sinh trắc học. Người dùng đăng nhập vào shoes.example trên thiết bị Android bằng cách mở khóa thiết bị. Sau đó, shoes.example xác minh thông tin đăng nhập đã ký bằng mật mã của người dùng để xác thực khóa công khai đã biết để người dùng đó xác nhận danh tính của người dùng là chính xác.

Trình xác thực

Authenticator là các thiết bị tuân thủ FIDO. Phương thức này được dùng để xác nhận danh tính của người dùng. Phiên bản này bao gồm các thiết bị chuyên dụng (khóa bảo mật FIDO), điện thoại di động và các máy tính khác đáp ứng những yêu cầu về trình xác thực. Authenticator thực hiện các thao tác mã hóa được mô tả trong tiêu chuẩn FIDO và WebAuthn.

Thiết bị có hai vai trò là để đăng ký và xác thực:

  • Khi người dùng đăng ký với một bên phụ thuộc, thiết bị sẽ tạo một cặp khóa riêng tư công khai. Chỉ số này bao gồm cả điện thoại và máy tính của người dùng.
  • Sau này, khi người dùng đăng nhập vào bên dựa, thiết bị này sẽ tạo một chữ ký bằng cách sử dụng khóa riêng tư.

Cả hai thao tác đều được thực hiện khi người dùng chứng minh rằng họ sở hữu các trình xác thực. Cặp khóa này được đăng ký với một nguồn gốc cụ thể và chỉ có thể sử dụng cho nguồn gốc chính xác đó. Nếu người dùng truy cập trang web lừa đảo, thông tin đăng nhập sẽ không hiển thị.

Thiết bị tuân thủ FIDO

Các trình xác thực phổ biến nhất là:

  • Trình xác thực nền tảng: các trình này được tích hợp vào điện thoại thông minh và máy tính. Trình xác thực nền tảng sử dụng một cảm biến sinh trắc học (chẳng hạn như cảm biến vân tay hoặc máy ảnh có công nghệ nhận dạng khuôn mặt), mã PIN hoặc hình mở khóa. Vì quá trình tương tác xác thực hoàn tất bằng cách mở khóa thiết bị, điều này chứng minh rằng chỉ cần một bước duy nhất là cả người dùng đã có quyền sở hữu thiết bị và có thể xác nhận danh tính của mình bằng hệ thống nhận dạng sinh trắc học độc đáo.
  • Khóa bảo mật: đây thường là các thiết bị USB có nút để nhấn để xác thực. Khi được sử dụng với mật khẩu, khóa bảo mật có thể cung cấp yếu tố sở hữu cho xác thực hai yếu tố. Ví dụ phổ biến nhất là Khóa bảo mật Titan hoặc YubiKey.

Giao diện người dùng

Các ứng dụng sử dụng các API phía máy khách, chẳng hạn như WebAuthnFIDO2 cho Android, để tạo và xác minh thông tin đăng nhập của người dùng bằng trình xác thực.

Ứng dụng vượt qua một thử thách mã hóa, do máy chủ phụ trợ tạo ra, để xác thực. Ứng dụng gửi phản hồi của trình xác thực đến máy chủ để xác thực. Hành động này sẽ thực hiện hành động dựa trên việc xác thực đó.

Hệ thống định giá

Máy chủ lưu trữ thông tin đăng nhập và thông tin đăng nhập khoá công khai của người dùng.

Khi đăng ký và xác thực, máy chủ tạo một thử thách mã hóa. Thử thách này sẽ xác minh rằng chữ ký do trình xác thực cấp, xác nhận xem người dùng là người mà họ tuyên bố.

Câu hỏi thường gặp

Ai hỗ trợ mật khẩu?

Vì mật khẩu dựa trên các tiêu chuẩn FIDO, nên chúng hoạt động trên Android và Chrome, cùng với nhiều nền tảng và trình duyệt phổ biến khác như Microsoft Windows, Microsoft Edge, MacOS, iOS và Safari.

Hãy tham khảo tài liệu do các nền tảng này cung cấp để xác nhận trạng thái có sẵn hiện tại.

Trên Android, chúng tôi dự định cung cấp dịch vụ hỗ trợ mật khẩu cho các nhà phát triển vào cuối năm 2022.

Điều gì xảy ra nếu người dùng mất thiết bị?

Mật khẩu được tạo trên Android được sao lưu và đồng bộ hóa với các thiết bị Android đã đăng nhập vào cùng một Tài khoản Google, giống như cách mật khẩu được sao lưu vào trình quản lý mật khẩu.

Điều đó có nghĩa là người dùng sẽ đi cùng với mật khẩu khi họ thay thế thiết bị của mình. Để đăng nhập vào các ứng dụng trên một chiếc điện thoại mới, tất cả những người dùng cần làm là mở khóa điện thoại của họ.

Người dùng có thể sử dụng mã xác nhận trên điện thoại của họ để đăng nhập trên thiết bị của bạn bè không?

Có. Người dùng có thể thiết lập đường liên kết &một lần; giữa điện thoại của họ và thiết bị của người khác nhằm mục đích đăng nhập.

Các bước tiếp theo

Tham gia lớp học lập trình:

Tìm hiểu thêm về:

Nhận thông tin cập nhật: