chrome.platformKeys

Nội dung mô tả

Hãy dùng API chrome.platformKeys để truy cập các chứng chỉ ứng dụng khách do nền tảng quản lý. Nếu người dùng hoặc chính sách cấp quyền này, thì tiện ích có thể sử dụng chứng chỉ đó trong giao thức xác thực tuỳ chỉnh của tiện ích. Ví dụ: việc này cho phép sử dụng chứng chỉ do nền tảng quản lý trong VPN của bên thứ ba (xem chrome.vpnProvider).

Quyền

platformKeys

Phạm vi cung cấp

Chrome 45 trở lên Chỉ dành cho ChromeOS

Loại

ClientCertificateRequest

Thuộc tính

  • certificateAuthorities

    ArrayBuffer[]

    Danh sách tên phân biệt của tổ chức phát hành chứng chỉ mà máy chủ cho phép. Mỗi mục nhập phải là một tên phân biệt X.509 được mã hoá theo DER.

  • certificateTypes

    Trường này là danh sách các loại chứng chỉ được yêu cầu, được sắp xếp theo thứ tự ưu tiên của máy chủ. Chỉ các chứng chỉ thuộc loại có trong danh sách này mới được truy xuất. Tuy nhiên, nếu certificateTypes là danh sách trống, các chứng chỉ thuộc bất kỳ loại nào sẽ được trả về.

ClientCertificateType

Liệt kê

"rsaSign"

"ecdsaSign"

Match

Thuộc tính

  • chứng nhận

    ArrayBuffer

    Mã hoá DER của chứng chỉ X.509.

  • keyAlgorithm

    đối tượng

    KeyAlgorithmcủa khoá được chứng nhận. Mã này chứa các tham số thuật toán vốn có cho khoá của chứng chỉ (ví dụ: độ dài khoá). Các tham số khác như hàm băm mà hàm ký sử dụng không được đưa vào.

SelectDetails

Thuộc tính

  • clientCerts

    ArrayBuffer[] không bắt buộc

    Nếu được cung cấp, selectClientCertificates sẽ hoạt động trong danh sách này. Nếu không, hãy lấy danh sách tất cả chứng chỉ từ kho chứng chỉ của nền tảng cung cấp cho các tiện ích này. Các mục nhập mà tiện ích không có quyền hoặc không khớp với yêu cầu sẽ bị xóa.

  • có tính tương tác

    boolean

    Nếu đúng, danh sách đã lọc sẽ hiển thị cho người dùng để chọn chứng chỉ theo cách thủ công và do đó cấp quyền truy cập cho tiện ích vào (các) chứng chỉ và khoá. Hệ thống sẽ chỉ trả lại(những) chứng chỉ đã chọn. Nếu giá trị là false, danh sách sẽ giảm xuống còn tất cả chứng chỉ mà tiện ích đã được cấp quyền truy cập (theo cách tự động hoặc thủ công).

  • Chỉ những chứng chỉ phù hợp với yêu cầu này mới được trả lại.

VerificationDetails

Thuộc tính

  • hostname

    string

    Tên máy chủ để xác minh chứng chỉ, ví dụ: máy chủ hiển thị serverCertificateChain.

  • serverCertificateChain

    ArrayBuffer[]

    Mỗi mục nhập trong chuỗi phải là mã hoá DER của chứng chỉ X.509, mục nhập đầu tiên phải là chứng chỉ máy chủ và mỗi mục nhập phải chứng nhận mục nhập trước mục nhập đó.

VerificationResult

Thuộc tính

  • debug_errors

    chuỗi[]

    Nếu xác minh tin cậy không thành công, mảng này chứa các lỗi được báo cáo bởi lớp mạng cơ bản. Nếu không, mảng này sẽ trống.

    Lưu ý: Danh sách này chỉ dùng để gỡ lỗi và có thể không chứa mọi lỗi liên quan. Các lỗi được trả về có thể thay đổi trong những bản sửa đổi sau này của API này và không được đảm bảo là có khả năng tương thích chuyển tiếp hoặc ngược.

  • đáng tin cậy

    boolean

    Kết quả của quá trình xác minh mức độ tin cậy: true nếu mức độ tin cậy đối với thông tin xác minh đã cung cấp có thể được thiết lập và false nếu tin cậy bị từ chối vì bất kỳ lý do gì.

Phương thức

getKeyPair()

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)

Truyền cặp khoá của certificate để sử dụng bằng platformKeys.subtleCrypto sang callback.

Tham số

  • chứng nhận

    ArrayBuffer

    Chứng chỉ của Match được selectClientCertificates trả về.

  • tham số

    đối tượng

    Xác định các tham số thuật toán chữ ký/hàm băm cùng với các tham số do chính khoá cố định. Các tham số tương tự cũng được chấp nhận bởi hàm importKey của WebCrypto, ví dụ: RsaHashedImportParams cho khóa RSASSA-PKCS1-v1_5 và EcKeyImportParams cho khoá EC. Ngoài ra, đối với khoá RSASSA-PKCS1-v1_5, bạn có thể chỉ định tham số tên thuật toán băm bằng một trong các giá trị sau: "none", "SHA-1", "SHA-256", "SHA-384" hoặc "SHA-512", ví dụ: {"hash": { "name": "none" } }). Sau đó, hàm ký sẽ áp dụng khoảng đệm PKCS#1 v1.5 nhưng không băm dữ liệu đã cho.

    Hiện tại, phương pháp này chỉ hỗ trợ thuật toán "RSASSA-PKCS1-v1_5" và "ECDSA".

  • số gọi lại

    hàm

    Tham số callback sẽ có dạng như sau:

    (publicKey: object,privateKey?: object)=>void

    • publicKey

      đối tượng

    • privateKey

      đối tượng không bắt buộc

      Có thể là null nếu tiện ích này không có quyền truy cập vào nó.

getKeyPairBySpki()

Chrome 85 trở lên
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)

Truyền cặp khoá do publicKeySpkiDer xác định để sử dụng bằng platformKeys.subtleCrypto sang callback.

Tham số

  • publicKeySpkiDer

    ArrayBuffer

    Một SubjectPublicKeyInfo được mã hoá bằng DER, lấy được ví dụ: bằng cách gọi hàm exportKey của WebCrypto với format="spki".

  • tham số

    đối tượng

    Cung cấp các tham số thuật toán băm và chữ ký, ngoài những tham số do chính khoá cố định. Các tham số tương tự được chấp nhận bởi hàm importKey của WebCrypto, ví dụ: RsaHashedImportParams cho khóa RSASSA-PKCS1-v1_5. Đối với khoá RSASSA-PKCS1-v1_5, chúng ta cũng cần truyền tham số "hash" { "hash": { "name": string } }. Tham số "hash" cho biết tên của thuật toán băm sẽ được dùng trong thao tác chuỗi đại diện trước một dấu. Có thể chuyển "none" làm tên băm, trong trường hợp đó, hàm sign sẽ áp dụng khoảng đệm PKCS#1 v1.5 và nhưng không băm dữ liệu đã cho.

    Hiện tại, phương pháp này hỗ trợ thuật toán "ECDSA" với đường cong có tên P-256 và thuật toán "RSASSA-PKCS1-v1_5" với một trong các thuật toán băm "none", "SHA-1", "SHA-256", "SHA-384" và "SHA-512".

  • số gọi lại

    hàm

    Tham số callback sẽ có dạng như sau:

    (publicKey: object,privateKey?: object)=>void

    • publicKey

      đối tượng

    • privateKey

      đối tượng không bắt buộc

      Có thể là null nếu tiện ích này không có quyền truy cập vào nó.

selectClientCertificates()

Cam kết
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

Phương thức này lọc khỏi danh sách chứng chỉ ứng dụng mà nền tảng đã biết, khớp với request và tiện ích có quyền truy cập vào chứng chỉ cũng như khoá riêng tư của chứng chỉ đó. Nếu interactive đúng, người dùng sẽ thấy một hộp thoại để chọn trong số các chứng chỉ phù hợp và cấp quyền truy cập vào chứng chỉ đó cho tiện ích. Các chứng chỉ ứng dụng khách đã chọn/được lọc sẽ được chuyển tới callback.

Tham số

  • chi tiết
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    (matches: Match[])=>void

    • khớp với

      Danh sách chứng chỉ khớp với yêu cầu mà tiện ích có quyền và do người dùng chọn (nếu interactive là true).

Giá trị trả về

  • Promise<Match[]>

    Chrome 121 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Triển khai SubtleCrypto của WebCrypto cho phép hoạt động mã hóa trên các khóa của chứng chỉ ứng dụng mà tiện ích này có thể sử dụng.

Giá trị trả về

  • đối tượng|không xác định

verifyTLSServerCertificate()

Cam kết
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

Kiểm tra xem details.serverCertificateChain có thể đáng tin cậy cho details.hostname hay không theo chế độ cài đặt tin cậy của nền tảng. Lưu ý: Hoạt động thực tế của quy trình xác minh niềm tin chưa được chỉ định đầy đủ và có thể thay đổi trong tương lai. Quá trình triển khai API sẽ xác minh thời hạn của chứng chỉ, xác thực đường dẫn chứng nhận và kiểm tra độ tin cậy của một CA đã biết. Việc triển khai được yêu cầu phải tuân thủ EKU serverAuth và hỗ trợ tên thay thế của chủ thể.

Tham số

Giá trị trả về

  • Chrome 121 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.