Descrição
Use a API chrome.platformKeys para acessar os certificados do cliente gerenciados pela plataforma. Se o usuário ou a política conceder a permissão, uma extensão poderá usar esse certificado no protocolo de autenticação personalizado. Por exemplo, isso permite o uso de certificados gerenciados pela plataforma em VPNs de terceiros (consulte chrome.vpnProvider).
Permissões
platformKeysDisponibilidade
Tipos
ClientCertificateRequest
Propriedades
-
certificateAuthorities
ArrayBuffer[]
Lista de nomes diferenciados de autoridades certificadoras permitidas pelo servidor. Cada entrada precisa ser um DistinguishedName X.509 codificado em DER.
-
certificateTypes
Esse campo é uma lista dos tipos de certificados solicitados, classificados em ordem de preferência do servidor. Somente os certificados de um tipo contido nessa lista serão recuperados. No entanto, se
certificateTypesfor uma lista vazia, os certificados de qualquer tipo serão retornados.
ClientCertificateType
Enumeração
"rsaSign"
"ecdsaSign"
Match
Propriedades
-
certificado
ArrayBuffer
A codificação DER de um certificado X.509.
-
keyAlgorithm
objeto
O KeyAlgorithm da chave certificada. Contém parâmetros de algoritmo inerentes à chave do certificado (por exemplo, o tamanho da chave). Outros parâmetros, como a função hash usada pela função de assinatura, não estão incluídos.
SelectDetails
Propriedades
-
clientCerts
ArrayBuffer[] opcional
Se fornecido, o
selectClientCertificatesopera nessa lista. Caso contrário, recebe a lista de todos os certificados dos repositórios de certificados da plataforma que estão disponíveis para essas extensões. As entradas para as quais a extensão não tem permissão ou que não correspondem à solicitação são removidas. -
interativo
booleano
Se for verdadeiro, a lista filtrada será apresentada ao usuário para que ele selecione manualmente um certificado, concedendo à extensão acesso aos certificados e às chaves. Somente os certificados selecionados serão retornados. Se for falso, a lista será reduzida a todos os certificados que a extensão tem permissão para acessar (de forma automática ou manual).
-
solicitação
Somente os certificados que corresponderem a essa solicitação serão retornados.
VerificationDetails
Propriedades
-
nome do host
string
O nome do host do servidor para verificar o certificado, por exemplo, o servidor que apresentou o
serverCertificateChain. -
serverCertificateChain
ArrayBuffer[]
Cada entrada da cadeia precisa ser a codificação DER de um certificado X.509, a primeira entrada precisa ser o certificado do servidor e cada entrada precisa certificar a entrada anterior.
VerificationResult
Propriedades
-
debug_errors
string[]
Se a verificação de confiança falhar, essa matriz vai conter os erros relatados pela camada de rede subjacente. Caso contrário, essa matriz estará vazia.
Observação: essa lista é destinada apenas à depuração e pode não conter todos os erros relevantes. Os erros retornados podem mudar em revisões futuras desta API e não têm garantia de compatibilidade com versões anteriores ou futuras.
-
confiável
booleano
O resultado da verificação de confiança: verdadeiro se a confiança para os detalhes de verificação fornecidos puder ser estabelecida e falso se a confiança for rejeitada por qualquer motivo.
Métodos
getKeyPair()
browser.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
Transmite o par de chaves de certificate para uso com platformKeys.subtleCrypto para callback.
Parâmetros
-
certificado
ArrayBuffer
O certificado de um
Matchretornado porselectClientCertificates. -
parâmetros
objeto
Determina os parâmetros do algoritmo de assinatura/hash, além dos parâmetros fixados pela própria chave. Os mesmos parâmetros são aceitos pela função importKey da WebCrypto, por exemplo,
RsaHashedImportParamspara uma chave RSASSA-PKCS1-v1_5 eEcKeyImportParamspara uma chave EC. Além disso, para chaves RSASSA-PKCS1-v1_5, o parâmetro de nome do algoritmo de hash pode ser especificado com um dos seguintes valores: "none", "SHA-1", "SHA-256", "SHA-384" ou "SHA-512", por exemplo,{"hash": { "name": "none" } }. A função de assinatura vai aplicar o preenchimento PKCS#1 v1.5, mas não vai gerar um hash dos dados fornecidos.No momento, esse método só é compatível com os algoritmos "RSASSA-PKCS1-v1_5" e "ECDSA".
-
callback
função
O parâmetro
callbacké semelhante a:(publicKey: object, privateKey?: object) => void
-
publicKey
objeto
-
privateKey
objeto optional
Pode ser
nullse a extensão não tiver acesso a ele.
-
getKeyPairBySpki()
browser.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Transmite o par de chaves identificado por publicKeySpkiDer para uso com platformKeys.subtleCrypto para callback.
Parâmetros
-
publicKeySpkiDer
ArrayBuffer
Um SubjectPublicKeyInfo X.509 codificado em DER, obtido, por exemplo, chamando a função exportKey do WebCrypto com format="spki".
-
parâmetros
objeto
Fornece parâmetros de algoritmo de assinatura e hash, além daqueles fixados pela própria chave. Os mesmos parâmetros são aceitos pela função importKey da WebCrypto, por exemplo,
RsaHashedImportParamspara uma chave RSASSA-PKCS1-v1_5. Para chaves RSASSA-PKCS1-v1_5, também precisamos transmitir um parâmetro "hash"{ "hash": { "name": string } }. O parâmetro "hash" representa o nome do algoritmo de hash a ser usado na operação de resumo antes de uma assinatura. É possível transmitir "none" como o nome do hash. Nesse caso, a função de assinatura vai aplicar o preenchimento PKCS#1 v1.5, mas não vai gerar o hash dos dados fornecidos.No momento, esse método é compatível com o algoritmo "ECDSA" com a curva nomeada P-256 e o algoritmo "RSASSA-PKCS1-v1_5" com um dos algoritmos de hash "none", "SHA-1", "SHA-256", "SHA-384" e "SHA-512".
-
callback
função
O parâmetro
callbacké semelhante a:(publicKey: object, privateKey?: object) => void
-
publicKey
objeto
-
privateKey
objeto optional
Pode ser
nullse a extensão não tiver acesso a ele.
-
selectClientCertificates()
browser.platformKeys.selectClientCertificates(
details: SelectDetails,
): Promise<Match[]>
Esse método filtra, de uma lista de certificados do cliente, aqueles que são conhecidos pela plataforma, correspondem a request e para os quais a extensão tem permissão de acesso ao certificado e à chave privada. Se interactive for verdadeiro, o usuário verá uma caixa de diálogo em que poderá selecionar um dos certificados correspondentes e conceder à extensão acesso a ele. Os certificados do cliente selecionados/filtrados serão transmitidos para o callback.
Parâmetros
-
detalhes
Retorna
-
Promise<Match[]>
Chrome 121+ browser.* desde o Chrome 148
subtleCrypto()
browser.platformKeys.subtleCrypto(): object | undefined
Uma implementação do SubtleCrypto do WebCrypto que permite operações de criptografia em chaves de certificados do cliente disponíveis para essa extensão.
Retorna
-
object | undefined
verifyTLSServerCertificate()
browser.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
): Promise<VerificationResult>
Verifica se details.serverCertificateChain é confiável para details.hostname de acordo com as configurações de confiança da plataforma. Observação: o comportamento real da verificação de confiança não é totalmente especificado e pode mudar no futuro. A implementação da API verifica a validade do certificado, valida o caminho de certificação e verifica a confiança de uma CA conhecida. A implementação precisa respeitar o EKU serverAuth e aceitar nomes alternativos do sujeito.
Parâmetros
-
detalhes
Retorna
-
Promise<VerificationResult>
Chrome 121+ browser.* desde o Chrome 148