Giới thiệu bản dùng thử theo nguyên gốc Digital Credentials API

Ngày xuất bản: 4 tháng 9 năm 2024, Ngày cập nhật gần đây nhất: 16 tháng 10 năm 2024

Bản dùng thử theo nguyên gốc cho API Thông tin xác thực kỹ thuật số sẽ bắt đầu từ Chrome 128. Digital Credentials API là một API nền tảng web mới cho phép các trang web yêu cầu một cách chọn lọc thông tin có thể xác minh về người dùng thông qua thông tin xác thực kỹ thuật số, chẳng hạn như giấy phép lái xe hoặc thẻ căn cước công dân được lưu trữ trong ví điện tử.

Thông tin khái quát

Danh tính kỹ thuật số trong thế giới thực đang trở thành hiện thực khi nhiều pháp nhân công và tư bắt đầu phát hành thông tin xác thực kỹ thuật số liên kết với thiết bị. Ví dụ: giờ đây, bạn có thể cấp giấy phép lái xe và giấy tờ tuỳ thân dạng kỹ thuật số ở một số tiểu bang của Hoa Kỳ (chẳng hạn như Arizona, California, Colorado, Georgia và Maryland) cho các ứng dụng ví điện tử như Google Wallet trên thiết bị di động. Các quy định liên quan đến việc chấp nhận thông tin xác thực kỹ thuật số cho một số quy trình xác minh trực tuyến cũng đang xuất hiện, ví dụ: eIDAS 2.0.

Giấy phép lái xe trên thiết bị di động trong Google Wallet
Giấy phép lái xe thiết bị di động trong Google Wallet.

Các tính năng của chứng chỉ kỹ thuật số phụ thuộc vào định dạng của chứng chỉ đó, mặc dù chúng thường bao gồm:

  • Bảo mật và quyền riêng tư nâng cao: Việc sử dụng phương thức mã hoá nâng cao và phương pháp xác thực mạnh mẽ giúp bảo vệ dữ liệu nhạy cảm và đảm bảo hoạt động truy cập an toàn. Ví dụ: việc hiển thị thông tin xác thực thường được bảo vệ sau khi xác thực người dùng thông qua ứng dụng ví.
  • Tiết lộ có chọn lọc: Bên phụ thuộc (RP) có thể yêu cầu một số thông tin từ thông tin xác thực, cho phép người dùng giới hạn dữ liệu được chia sẻ ở mức cần thiết cho trường hợp sử dụng. Ví dụ: bạn có thể chia sẻ thông tin về việc người dùng có trên 18 tuổi hay không mà không tiết lộ ngày sinh của người dùng.
  • Khả năng tương tác: Chứng chỉ danh tính phải tuân thủ các tiêu chuẩn quốc tế, cho phép tương thích giữa các hệ thống và quốc gia khác nhau, tạo điều kiện cho việc chấp nhận xuyên biên giới.
  • Khả năng xác minh: Dữ liệu thông tin xác thực được chia sẻ được bên phát hành ký bằng chữ ký số; RP có thể xác minh chữ ký này để xác minh tính xác thực của dữ liệu.

Do tính chất có thể xác minh của thông tin xác thực kỹ thuật số, nên thông tin này có thể hỗ trợ các trường hợp sử dụng như:

  • Xác minh độ tuổi: Yêu cầu cung cấp độ tuổi để xác minh độ tuổi của một người trước khi phân phát nội dung bị giới hạn độ tuổi hoặc mua các mặt hàng bị giới hạn độ tuổi.
  • Xác minh danh tính: Yêu cầu tên và địa chỉ để xác minh danh tính của một người nhằm tuân thủ pháp luật hoặc phòng chống gian lận.
  • Kiểm tra đặc quyền lái xe: Xác minh xem một người có đủ điều kiện lái xe hay không (ví dụ: khi thuê xe ô tô).

Khi các trang web bắt đầu giao tiếp trực tiếp với các ứng dụng ví di động (chẳng hạn như bằng cách sử dụng giao thức URL tuỳ chỉnh) để yêu cầu thông tin xác thực kỹ thuật số cho nhiều trường hợp sử dụng, trình duyệt sẽ có cơ hội giúp hoạt động tương tác này an toàn hơn, chống lại hành vi lạm dụng và dễ sử dụng hơn thông qua một API được xây dựng cho mục đích cụ thể.

Ra mắt API Thông tin xác thực kỹ thuật số

Digital Credentials API là một API mới trên nền tảng web cho phép các trang web bên bị hạn chế (RP) yêu cầu trình bày thông tin xác thực kỹ thuật số qua các ứng dụng ví. API này có trong Chrome dưới dạng bản dùng thử theo nguyên gốc kể từ Chrome 128.

API này không phụ thuộc vào giao thức, cho phép RP chỉ định một giao thức dựa trên các yêu cầu của họ. Khi một RP đưa ra yêu cầu, trình duyệt sẽ gửi yêu cầu đó đến hệ điều hành di động để tìm thông tin xác thực phù hợp trong các ứng dụng ví đã cài đặt. Nếu tìm thấy, hệ điều hành di động sẽ nhắc người dùng chọn một ví và gửi yêu cầu đến ví mà người dùng đã chọn. Sau khi xác thực cục bộ, ví sẽ trả về một phản hồi chứa dữ liệu thông tin xác thực được yêu cầu.

Sơ đồ liên lạc giữa trình duyệt, ví và bên đáng tin cậy.

Trước tiên, Chrome sẽ hỗ trợ API trong Chrome trên Android để yêu cầu thông tin xác thực từ các ứng dụng ví trên cùng một thiết bị. Trong tương lai, chúng tôi dự định hỗ trợ Chrome phiên bản máy tính để yêu cầu thông tin xác thực trên nhiều thiết bị từ một thiết bị di động khác.

Khi ra mắt, Google Wallet sẽ tích hợp với API thông tin xác thực kỹ thuật số, cho phép các doanh nghiệp và tổ chức được chọn bắt đầu yêu cầu người dùng xuất trình giấy tờ tuỳ thân trực tuyến, thông qua Chrome trên Android và xác minh tính xác thực của dữ liệu được truyền bằng cách kiểm tra chữ ký mật mã. Để tham gia, hãy điền vào biểu mẫu này để bày tỏ sự quan tâm đến việc chấp nhận giấy tờ tuỳ thân điện tử từ Google Wallet.

Tài khoản Google cũng sẽ sớm sử dụng API này để xác minh ngày sinh của một số người dùng. Người dùng cư trú tại một tiểu bang được hỗ trợ ở Hoa Kỳ sẽ có thể sử dụng giấy tờ tuỳ thân hoặc giấy phép lái xe do tiểu bang cấp được cung cấp trong các ứng dụng ví hiện có (bao gồm cả Google Wallet) để chỉ chia sẻ thông tin ngày sinh với Google mà không cần chia sẻ thông tin chi tiết khác về danh tính của họ. Điều này cho phép người dùng chứng minh với Google theo cách bảo đảm quyền riêng tư rằng họ đáp ứng các yêu cầu về độ tuổi liên quan đến tài khoản.

Dùng thử

Yêu cầu:

  • Dịch vụ Google Play phiên bản 23.40 trở lên
  • Chrome 128 trở lên
  • Bật cờ tại chrome://flags#web-identity-digital-credentials

Để dùng thử API Thông tin xác thực kỹ thuật số, hãy làm theo hướng dẫn sau:

  1. Cài đặt ứng dụng ví minh hoạ theo hướng dẫn.
  2. Chạy ứng dụng IC Wallet (Ví điện tử của IC) và cấp giấy phép lái xe trên thiết bị di động (mDL) minh hoạ.
    • Nhấn vào nút trình đơn rồi chọn Thêm tài liệu tự ký.
  3. Truy cập vào https://digital-credentials.dev bằng Chrome 128 trở lên.
  4. Nhấn vào Yêu cầu thông tin xác thực (OpenID4VP).

Hãy xem bản minh hoạ sử dụng https://digital-credentials.dev, một trang web thử nghiệm để nhà phát triển tạo yêu cầu thông tin xác thực cho nhiều thuộc tính:

Sau đây là cách hoạt động của bản minh hoạ theo từng bước:

1. Người dùng sẽ được chuyển đến trang web của bên phụ thuộc và được yêu cầu cung cấp họ, tên đã xác minh và giấy tờ chứng minh độ tuổi trên 21.
2. Trình duyệt xác nhận xem người dùng có ý định chia sẻ thông tin xác thực kỹ thuật số nào với trang web này hay không.
3. Hệ điều hành hiển thị thông tin đang được yêu cầu và thông tin đăng nhập đủ điều kiện có thể khớp với yêu cầu để người dùng chọn và hoàn tất yêu cầu.
4. Ví xác thực người dùng cục bộ bằng tính năng mở khoá màn hình.

5. Giờ đây, thông tin xác thực kỹ thuật số được yêu cầu sẽ được chuyển đến trang web của bên phụ thuộc.

Cách hoạt động của API này

API Thông tin xác thực số được xây dựng dựa trên nền tảng của API Quản lý thông tin xác thực, nhưng từ một giao diện API độc lập: navigator.identity. Bằng cách gọi navigator.identity.get(), trang web có thể yêu cầu thông tin xác thực kỹ thuật số được lưu trữ trên ứng dụng ví di động. .

// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
  signal: controller.signal,
  digital: {
    providers: [{
      protocol: "openid4vp",
      request: {
        response_type: "vp_token",
        nonce: "n-0S6_WzA2Mj",
        client_metadata: {...},
        presentation_definition: {...}
      }
    }],
  }
});

Giao diện API cơ bản tương tự như navigator.credentials.get(), ngoại trừ việc chỉ chấp nhận loại thông tin xác thực "digital". Trong loại thông tin xác thực kỹ thuật số, hãy thêm mảng providers chứa IdentityRequestProvider với các tham số cơ bản sau:

Ví dụ về tải trọng cho loại thông tin xác thực kỹ thuật số bằng OID4VP:

{
  protocol: 'openid4vp',
  request: {
    response_type: 'vp_token',
    nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
    client_metadata: {},
    presentation_definition: {
      id: 'mDL-request-demo',
      input_descriptors: [{
        id: "org.iso.18013.5.1.mDL",
        format: {
          mso_mdoc: {
            alg: ["ES256"]
          }
        },
        constraints: {
          limit_disclosure: "required",
          fields: [
            {
              path: ["$['org.iso.18013.5.1']['family_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['given_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['age_over_21']"],
              intent_to_retain: false
            }
          ]
        }
      }],
    }
  }
}

Với yêu cầu này, những ví có mDL trên thiết bị sẽ cung cấp một bộ thông tin xác thực có thể xác minh chứa:

  • Họ của người dùng.
  • Tên của người dùng.
  • Giá trị boolean cho biết người dùng đã trên 21 tuổi hay chưa.

Dưới đây là ví dụ về tải trọng phản hồi:

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

Trong ví dụ này, thông tin xác thực được yêu cầu bằng giao thức "openid4vp" và phản hồi chứa "vp_token" trong thuộc tính data. Vui lòng xem thông số kỹ thuật OpenID for Verifiable Presentation (OID4VP) for the W3C Digital Credentials API (OpenID cho bản trình bày có thể xác minh (OID4VP) cho API thông tin xác thực kỹ thuật số của W3C) để tìm hiểu cách phân tích cú pháp phản hồi và xác minh thông tin xác thực.

API Thông tin xác thực kỹ thuật số được hỗ trợ trên Chrome trên Android dưới dạng bản dùng thử theo nguyên gốc. Chrome trên máy tính và iOS hiện không hỗ trợ tính năng này. Đối với các công cụ trình duyệt khác, các cuộc trò chuyện đang diễn ra đang được hỗ trợ thông qua Nhóm cộng đồng của Chương trình ươm tạo web W3C.

Tham gia thử nghiệm về nguồn gốc

Để phát triển, bạn có thể bật API Thông tin xác thực kỹ thuật số trên máy bằng cách bật cờ Chrome chrome://flags#web-identity-digital-credentials trong Chrome 128 trở lên.

Tính năng này cũng được cung cấp dưới dạng bản dùng thử theo nguyên gốc. Bản dùng thử theo nguyên gốc cho phép bạn dùng thử các tính năng mới và đưa ra ý kiến phản hồi về khả năng hữu dụng, tính thực tế và hiệu quả của các tính năng đó cho cộng đồng tiêu chuẩn web. Để biết thêm thông tin, hãy xem bài viết Bắt đầu thử nghiệm nguồn gốc. Để đăng ký sử dụng bản dùng thử này hoặc một bản dùng thử khác theo nguyên gốc, hãy truy cập vào trang đăng ký.

  1. Yêu cầu mã thông báo cho nguồn gốc của bạn.
  2. Thêm mã thông báo vào các trang của bạn. Có hai cách để thực hiện việc đó:
    • Thêm thẻ origin-trial <meta> vào đầu mỗi trang. Ví dụ: mã này có thể có dạng như sau: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Nếu có thể định cấu hình máy chủ, bạn cũng có thể thêm mã thông báo bằng tiêu đề HTTP Origin-Trial. Tiêu đề phản hồi thu được sẽ có dạng như sau:Origin-Trial: TOKEN_GOES_HERE.

Chia sẻ ý kiến phản hồi

Nếu bạn có ý kiến phản hồi về API Thông tin xác thực kỹ thuật số, hãy gửi ý kiến đó đến công cụ theo dõi lỗi Chromium chuyên dụng.