Mô tả
Sử dụng API chrome.platformKeys
để truy cập vào các chứng chỉ ứng dụng 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 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 các 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 riêng biệt của các tổ chức phát hành chứng chỉ mà máy chủ cho phép. Mỗi mục phải là một X.509 DistinguishedName được mã hoá 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ủ. Hệ thống sẽ chỉ truy xuất những chứng chỉ thuộc loại có trong danh sách này. Tuy nhiên, nếu
certificateTypes
là danh sách trống, thì hệ thống sẽ trả về các chứng chỉ thuộc mọi loại.
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
Thuộc tính
-
chứng chỉ
ArrayBuffer
Mã hoá DER của chứng chỉ X.509.
-
keyAlgorithm
đối tượng
KeyAlgorithm của khoá được chứng nhận. Thông tin này chứa các tham số thuật toán vốn có trong 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 sẽ 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 trên danh sách này. Nếu không, hãy lấy danh sách tất cả các chứng chỉ từ các kho lưu trữ chứng chỉ của nền tảng có sẵn cho tiện ích này. Những mục mà tiện ích không có quyền truy cập hoặc không khớp với yêu cầu sẽ bị xoá. -
tương tác
boolean
Nếu đúng, danh sách đã lọc sẽ được trình bày cho người dùng để chọn chứng chỉ theo cách thủ công, nhờ đó cấp cho tiện ích quyền truy cập vào(các) chứng chỉ và(các) khoá. Chỉ(các) chứng chỉ đã chọn mới được trả về. Nếu 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 (tự động hoặc theo cách thủ công).
-
request
Hệ thống sẽ chỉ trả về những chứng chỉ khớp với yêu cầu này.
VerificationDetails
Thuộc tính
-
hostname
chuỗi
Tên máy chủ của máy chủ để xác minh chứng chỉ, ví dụ: máy chủ đã trình bày
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
string[]
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 do 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ành cho mục đích gỡ lỗi và có thể không chứa tất cả các lỗi có liên quan. Các lỗi được trả về có thể thay đổi trong các bản sửa đổi trong tương lai của API này và không đảm bảo khả năng tương thích tiến hoặc tương thích ngược.
-
đáng tin cậy
boolean
Kết quả của quy trình xác minh độ tin cậy: đúng nếu có thể xác lập độ tin cậy cho thông tin xác minh đã cho và sai nếu độ tin cậy bị từ chối vì bất kỳ lý do nào.
Phương thức
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
Truyền cặp khoá của certificate
để sử dụng với platformKeys.subtleCrypto
đến callback
.
Thông số
-
chứng chỉ
ArrayBuffer
Chứng chỉ của
Match
doselectClientCertificates
trả về. -
tham số
đối tượng
Xác định các tham số thuật toán chữ ký/hàm băm ngoài các tham số do chính khoá cố định. Các tham số tương tự được chấp nhận như hàm importKey của WebCrypto, ví dụ:
RsaHashedImportParams
cho khoá RSASSA-PKCS1-v1_5 vàEcKeyImportParams
cho khoá EC. Ngoài ra, đối với các 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 phiên bản 1.5 nhưng không băm dữ liệu đã cho.Hiện tại, phương thức này chỉ hỗ trợ các thuật toán "RSASSA-PKCS1-v1_5" và "ECDSA".
-
callback
hàm
Tham số
callback
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 thông tin đó.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Truyền cặp khoá do publicKeySpkiDer
xác định để sử dụng với platformKeys.subtleCrypto
đến callback
.
Thông số
-
publicKeySpkiDer
ArrayBuffer
SubjectPublicKeyInfo X.509 được mã hoá theo DER, chẳng hạn như nhận được 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ố được cố định theo chính khoá. Các tham số tương tự được chấp nhận như hàm importKey của WebCrypto, 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 tham số "hash"{ "hash": { "name": string } }
. Tham số "hash" biểu thị 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 khi ký. Bạn có thể truyền "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 phiên bản 1.5 nhưng không băm dữ liệu đã cho.Hiện tại, phương thức này hỗ trợ thuật toán "ECDSA" có đường cong được đặt tên là P-256 và thuật toán "RSASSA-PKCS1-v1_5" có một trong các thuật toán băm "none", "SHA-1", "SHA-256", "SHA-384" và "SHA-512".
-
callback
hàm
Tham số
callback
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 thông tin đó.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
): Promise<Match[]>
Phương thức này lọc từ danh sách chứng chỉ máy khách những chứng chỉ 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ỉ và khoá riêng tư của chứng chỉ. Nếu interactive
là true, người dùng sẽ thấy một hộp thoại nơi 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ỉ. Các chứng chỉ máy khách đã chọn/được lọc sẽ được chuyển đến callback
.
Thông số
-
chi tiết
Giá trị trả về
-
Promise<Match[]>
Chrome 121 trở lên
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
Một cách triển khai SubtleCrypto của WebCrypto cho phép các thao tác mã hoá trên khoá của chứng chỉ máy khách mà tiện ích này có thể truy cập.
Giá trị trả về
-
đối tượng | không xác định
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
): Promise<VerificationResult>
Kiểm tra xem details.serverCertificateChain
có thể được 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 quy trình xác minh độ tin cậy chưa được chỉ định đầy đủ và có thể thay đổi trong tương lai. Việc 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. Quá trình triển khai này phải tuân thủ EKU serverAuth và hỗ trợ tên thay thế của chủ đề.
Thông số
-
chi tiết
Giá trị trả về
-
Promise<VerificationResult>
Chrome 121 trở lên