Mô tả
Sử dụng API chrome.platformKeys
để truy cập vào các chứng chỉ máy 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, thì tiện ích có thể sử dụng một chứng chỉ đó trong giao thức xác thực tuỳ chỉnh. Ví dụ: điều 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
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ỉ được máy chủ cho phép. Mỗi mục nhập phải là một X.509 analyzeedName đượ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ự lựa chọn ư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, thì hệ thống sẽ trả về chứng chỉ thuộc bất kỳ loại nào.
ClientCertificateType
Enum
"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
KeyAlgorithm của khoá được chứng nhận. Đối tượng này chứa các tham số thuật toán vốn có của 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 bao gồm.
SelectDetails
Thuộc tính
-
clientCerts
ArrayBuffer[] không bắt buộc
Nếu được cung cấp,
selectClientCertificates
sẽ hoạt động trên danh sách này. Nếu không, lấy danh sách tất cả chứng chỉ từ kho lưu trữ chứng chỉ của nền tảng có sẵn cho tiện ích này. Các mục nhập mà tiện ích không có quyền hoặc không phù hợp với yêu cầu sẽ bị xoá. -
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 tiện ích vào (các) chứng chỉ và khoá. Hệ thống sẽ chỉ trả về(các) chứng chỉ đã chọn. Nếu đặt là false, danh sách sẽ giảm xuống còn tất cả cá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).
-
request
Hệ thống chỉ trả về các chứng chỉ khớp với yêu cầu này.
VerificationDetails
Thuộc tính
-
hostname
string
Tên máy chủ của máy chủ cần xác minh chứng chỉ, ví dụ: máy chủ hiển thị
serverCertificateChain
. -
serverCertificateChain
ArrayBuffer[]
Mỗi mục nhập 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 đó.
VerificationResult
Thuộc tính
-
debug_errors
chuỗi[]
Nếu quá trình xác minh tin cậy không thành công, mảng này sẽ chứa các lỗi được lớp mạng cơ bản báo cáo. 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 tất cả lỗi có liên quan. Lỗi được trả về có thể thay đổi trong các bản sửa đổi sau này của API này và không được đảm bảo là tương thích chuyển tiếp hay tương thích ngược.
-
đáng tin cậy
boolean
Kết quả của quá trình xác minh độ tin cậy: true nếu độ tin cậy đối với các chi tiết xác minh đã cho 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á certificate
để sử dụng với platformKeys.subtleCrypto
đến callback
.
Tham số
-
chứng nhận
ArrayBuffer
Chứng chỉ của
Match
doselectClientCertificates
trả về. -
thông số
đối tượng
Xác định tham số thuật toán chữ ký/băm bổ sung cho các tham số do chính khoá cố định. Các tham số giống như các tham số được hàm importKey của WebCrypto chấp nhận, ví dụ:
RsaHashedImportParams
cho khoá 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 thức này chỉ hỗ trợ "RSASSA-PKCS1-v1_5" và "ECDSA" các thuật toán.
-
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.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
Truyền cặp khoá do publicKeySpkiDer
xác định để sử dụng với platformKeys.subtleCrypto
sang callback
.
Tham số
-
publicKeySpkiDer
ArrayBuffer
X.509 SubjectPublicKeyInfo được mã hoá theo DER, thu được, ví dụ: bằng cách gọi hàm exportKey của WebCrypto với định dạng="spki".
-
thông số
đối tượng
Cung cấp các tham số thuật toán chữ ký và hàm băm, ngoài các tham số do khoá tự cố định. Các tham số giống như các tham số được hàm importKey của WebCrypto chấp nhận, ví dụ:
RsaHashedImportParams
cho khoá RSASSA-PKCS1-v1_5. Đối với các khoá RSASSA-PKCS1-v1_5, chúng ta cũng cần truyền một "băm" tham số{ "hash": { "name": string } }
. "Hàm băm" biểu thị tên của thuật toán băm được dùng trong thao tác chuỗi đại diện trước khi ký một dấu. Có thể chuyển giá trị "none" làm tên hàm băm, trong trường hợp này, hàm ký sẽ áp dụng khoảng đệm PKCS#1 v1.5 và không băm dữ liệu đã cho.Hiện tại, phương thức này hỗ trợ "ECDSA" thuật toán với đường cong được đặt tên P-256 và "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.
-
selectClientCertificates()
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 (các chứng chỉ ứng dụng được nền tảng biết đến), so khớp request
và tiện ích có quyền truy cập vào chứng chỉ và 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 trong đó họ có thể chọn trong số các chứng chỉ phù hợp và cấp cho tiện ích quyền truy cập vào chứng chỉ này. Các chứng chỉ ứng dụng đã chọn/được lọc sẽ được chuyển tới callback
.
Tham số
Giá trị trả về
-
Cam kết<Match[]>
Chrome 121 trở lênLời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp cho 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. Chiến lược phát hành đĩa đơn Promise phân giải cùng loại được truyền đến lệnh gọi lại.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Việc triển khai SubtleCrypto của WebCrypto, cho phép các hoạt động mã hoá trên các khoá của chứng chỉ ứng dụng khách có sẵn cho tiện ích này.
Giá trị trả về
-
object | chưa xác định
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
Kiểm tra xem details.serverCertificateChain
có thể là đá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 ý: Hành vi thực tế của quá trình xác minh tin cậy chưa được chỉ định đầy đủ và có thể thay đổi trong tương lai. Quy trình triển khai API 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. Quá trình triển khai cần tuân thủ EKU serverAuth và hỗ trợ các tên thay thế của chủ đề.
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:(result: VerificationResult) => void
-
kết quả
-
Giá trị trả về
-
Promise<VerificationResult>
Chrome 121 trở lênLời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp cho 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. Chiến lược phát hành đĩa đơn Promise phân giải cùng loại được truyền đến lệnh gọi lại.