chrome.platformKeys

Descrizione

Utilizza l'API chrome.platformKeys per accedere ai certificati client gestiti dalla piattaforma. Se l'utente o il criterio concedono l'autorizzazione, un'estensione può usare tale certificato nel proprio protocollo di autenticazione personalizzato. Ad esempio, è possibile utilizzare certificati gestiti dalla piattaforma in VPN di terze parti (vedi chrome.vpnProvider).

Autorizzazioni

platformKeys

Disponibilità

Chrome 45 e versioni successive Solo ChromeOS

Tipi

ClientCertificateRequest

Proprietà

  • certificateAuthorities

    ArrayBuffer[]

    Elenco di nomi distinti di autorità di certificazione consentite dal server. Ogni voce deve essere un DN X.509 con codifica DER.

  • certificateTypes

    Questo campo è un elenco dei tipi di certificati richiesti, ordinati in base alle preferenze del server. Verranno recuperati solo i certificati del tipo contenuto in questo elenco. Se certificateTypes è l'elenco vuoto, tuttavia, verranno restituiti certificati di qualsiasi tipo.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Proprietà

  • certificato

    ArrayBuffer

    La codifica DER di un certificato X.509.

  • keyAlgorithm

    oggetto

    L'KeyAlgorithm della chiave certificata. Contiene parametri dell'algoritmo intrinseci alla chiave del certificato (ad es. la lunghezza della chiave). Non sono inclusi altri parametri come la funzione hash utilizzata dalla funzione sign.

SelectDetails

Proprietà

  • clientCerts

    ArrayBuffer[] facoltativo

    Se fornito, selectClientCertificates opera in base a questo elenco. In caso contrario, ottiene l'elenco di tutti i certificati disponibili per questa estensione dagli archivi di certificati della piattaforma. Le voci per le quali l'estensione non ha l'autorizzazione o che non corrispondono alla richiesta vengono rimosse.

  • interactive

    boolean

    Se il valore è true, l'elenco filtrato viene proposto all'utente di selezionare manualmente un certificato e concedere così all'estensione l'accesso ai certificati e alle chiavi. Verranno restituiti solo i certificati selezionati. Se è false, l'elenco viene ridotto a tutti i certificati a cui è stato concesso l'accesso all'estensione (automaticamente o manualmente).

  • Verranno restituiti solo i certificati che corrispondono a questa richiesta.

VerificationDetails

Proprietà

  • nome host

    stringa

    Il nome host del server per il quale verificare il certificato, ad esempio il server che ha presentato serverCertificateChain.

  • serverCertificateChain

    ArrayBuffer[]

    Ogni voce della catena deve utilizzare la codifica DER di un certificato X.509, la prima voce deve essere il certificato del server e ogni voce deve certificare la voce che la precede.

VerificationResult

Proprietà

  • debug_errors

    stringa[]

    Se la verifica dell'attendibilità non va a buon fine, questo array contiene gli errori segnalati dal livello di rete sottostante. In caso contrario, questo array è vuoto.

    Nota:questo elenco è destinato esclusivamente al debug e potrebbe non contenere tutti gli errori pertinenti. Gli errori restituiti potrebbero cambiare nelle revisioni future di questa API e non ne è garantito che siano compatibili con le versioni precedenti o successive.

  • attendibile

    boolean

    Il risultato della verifica dell'attendibilità: true se i dettagli della verifica indicati è stato stabilito e falso se il trust è rifiutato per qualsiasi motivo.

Metodi

getKeyPair()

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

Trasmette a callback la coppia di chiavi di certificate per l'utilizzo con platformKeys.subtleCrypto.

Parametri

  • certificato

    ArrayBuffer

    Il certificato di una Match restituito da selectClientCertificates.

  • Parametri

    oggetto

    Determina i parametri dell'algoritmo di firma/hash in aggiunta ai parametri stabiliti dalla chiave stessa. Sono accettati gli stessi parametri della funzione importKey di WebCrypto, ad esempio RsaHashedImportParams per una chiave RSASSA-PKCS1-v1_5 e EcKeyImportParams per chiave EC. Inoltre, per le chiavi RSASSA-PKCS1-v1_5, il parametro del nome dell'algoritmo di hashing può essere specificato con uno dei seguenti valori: "none", "SHA-1", "SHA-256", "SHA-384" o "SHA-512", ad esempio {"hash": { "name": "none" } }. La funzione sign applicherà quindi la spaziatura interna PKCS#1 v1.5 ma non eseguirà l'hashing dei dati specificati.

    Attualmente, questo metodo supporta solo gli algoritmi "RSASSA-PKCS1-v1_5" ed "ECDSA".

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

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

    • publicKey

      oggetto

    • privateKey

      oggetto facoltativo

      Il valore potrebbe essere null se questa estensione non ha accesso all'estensione.

getKeyPairBySpki()

Chrome 85 e versioni successive
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)

Trasmette a callback la coppia di chiavi identificata da publicKeySpkiDer per l'utilizzo con platformKeys.subtleCrypto.

Parametri

  • publicKeySpkiDer

    ArrayBuffer

    Un X.509 SubjectPublicKeyInfo con codifica DER, ottenuto ad esempio chiamando la funzione esportazioneKey di WebCrypto con formato="spki".

  • Parametri

    oggetto

    Fornisce i parametri dell'algoritmo di firma e dell'algoritmo di hash, oltre a quelli fissati dalla chiave stessa. Sono accettati gli stessi parametri della funzione importKey di WebCrypto, ad esempio RsaHashedImportParams per una chiave RSASSA-PKCS1-v1_5. Per le chiavi RSASSA-PKCS1-v1_5, dobbiamo passare anche un parametro "hash" { "hash": { "name": string } }. Il parametro "hash" rappresenta il nome dell'algoritmo di hashing da utilizzare nell'operazione digest prima di un segno. È possibile passare "nessuno" come nome hash, nel qual caso la funzione sign applicherà la spaziatura interna PKCS#1 v1.5 e non eseguirà l'hashing dei dati dati.

    Attualmente, questo metodo supporta l'algoritmo "ECDSA" con la curva denominata P-256 e l'algoritmo "RSASSA-PKCS1-v1_5" con uno degli algoritmi di hashing "nessuno", "SHA-1", "SHA-256", "SHA-384" e "SHA-512".

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

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

    • publicKey

      oggetto

    • privateKey

      oggetto facoltativo

      Il valore potrebbe essere null se questa estensione non ha accesso all'estensione.

selectClientCertificates()

Promessa
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

Questo metodo filtra da un elenco di certificati client quelli noti alla piattaforma che corrispondono a request e per i quali l'estensione è autorizzata ad accedere al certificato e alla relativa chiave privata. Se il criterio interactive è true, all'utente viene visualizzata una finestra di dialogo in cui può scegliere tra i certificati corrispondenti e concedere all'estensione l'accesso al certificato. I certificati client selezionati/filtrati verranno passati a callback.

Parametri

  • dettagli
  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (matches: Match[])=>void

    • corrisponde a

      L'elenco dei certificati che corrispondono alla richiesta per i quali l'estensione è autorizzata e, se interactive è true, che sono stati selezionati dall'utente.

Ritorni

  • Promise<Match[]>

    Chrome 121 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Un'implementazione di SubtleCrypto di WebCrypto che consente operazioni di crittografia sulle chiavi dei certificati client disponibili per questa estensione.

Ritorni

  • oggetto|non definito

verifyTLSServerCertificate()

Promessa
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

Controlla se details.serverCertificateChain può essere considerato attendibile per details.hostname in base alle impostazioni di attendibilità della piattaforma. Nota: il comportamento effettivo della verifica di attendibilità non è completamente specificato e potrebbe cambiare in futuro. L'implementazione dell'API verifica la scadenza del certificato, convalida il percorso di certificazione e verifica l'attendibilità di una CA nota. L'implementazione deve rispettare il serverAuth EKU e supportare nomi alternativi degli oggetti.

Parametri

Ritorni

  • Chrome 121 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.