chrome.platformtoetsen

Beschrijving

Gebruik de chrome.platformKeys API om toegang te krijgen tot clientcertificaten die door het platform worden beheerd. Als de gebruiker of het beleid hiervoor toestemming geeft, kan een extensie een dergelijk certificaat gebruiken in zijn eigen authenticatieprotocol. Dit maakt bijvoorbeeld het gebruik van door het platform beheerde certificaten in VPN's van derden mogelijk (zie chrome.vpnProvider ).

Machtigingen

platformKeys

Beschikbaarheid

Chrome 45+ Alleen ChromeOS

Typen

ClientCertificateRequest

Eigenschappen

  • certificaatautoriteiten

    ArrayBuffer[]

    Lijst met DN-namen van certificeringsinstanties die door de server zijn toegestaan. Elk item moet een DER-gecodeerde X.509 DistinguishedName zijn.

  • certificaattypen

    Dit veld bevat een lijst met de aangevraagde certificaattypen, gesorteerd op basis van de voorkeur van de server. Alleen certificaten van een type dat in deze lijst voorkomt, worden opgehaald. Als certificateTypes echter een lege lijst is, worden certificaten van elk type geretourneerd.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Eigenschappen

  • certificaat

    ArrayBuffer

    De DER-codering van een X.509-certificaat.

  • sleutelalgoritme

    voorwerp

    Het sleutelalgoritme van de gecertificeerde sleutel. Dit bevat algoritmeparameters die inherent zijn aan de sleutel van het certificaat (bijvoorbeeld de sleutellengte). Andere parameters, zoals de hashfunctie die door de tekenfunctie wordt gebruikt, zijn niet opgenomen.

SelectDetails

Eigenschappen

  • clientCerts

    ArrayBuffer[] optioneel

    Indien opgegeven, werkt selectClientCertificates op deze lijst. Anders wordt de lijst met alle certificaten uit de certificaatopslag van het platform opgehaald die beschikbaar zijn voor deze extensies. Vermeldingen waarvoor de extensie geen toestemming heeft of die niet aan de aanvraag voldoen, worden verwijderd.

  • interactieve

    Booleaanse

    Indien true, wordt de gefilterde lijst aan de gebruiker gepresenteerd om handmatig een certificaat te selecteren en daarmee de extensie toegang te verlenen tot het/de certificaat(en) en de sleutel(s). Alleen de geselecteerde certificaten worden geretourneerd. Indien false, wordt de lijst gereduceerd tot alle certificaten waartoe de extensie toegang heeft gekregen (automatisch of handmatig).

  • Alleen certificaten die aan deze aanvraag voldoen, worden geretourneerd.

VerificationDetails

Eigenschappen

  • hostnaam

    snaar

    De hostnaam van de server waarvoor het certificaat moet worden geverifieerd, bijvoorbeeld de server die de serverCertificateChain heeft gepresenteerd.

  • serverCertificateChain

    ArrayBuffer[]

    Elk ketenitem moet de DER-codering van een X.509-certificaat zijn, het eerste item moet het servercertificaat zijn en elk item moet het voorgaande item certificeren.

VerificationResult

Eigenschappen

  • debug_fouten

    snaar[]

    Als de vertrouwensverificatie mislukt, bevat deze array de fouten die door de onderliggende netwerklaag zijn gerapporteerd. Anders is deze array leeg.

    Let op: Deze lijst is alleen bedoeld voor foutopsporing en bevat mogelijk niet alle relevante fouten. De geretourneerde fouten kunnen in toekomstige revisies van deze API veranderen en er is geen garantie dat ze voorwaarts of achterwaarts compatibel zijn.

  • vertrouwd

    Booleaanse

    Het resultaat van de vertrouwensverificatie: true als het vertrouwen voor de opgegeven verificatiedetails kon worden vastgesteld en false als het vertrouwen om welke reden dan ook wordt afgewezen.

Methoden

getKeyPair()

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

Geeft het sleutelpaar van het certificate door voor gebruik met platformKeys.subtleCrypto aan callback .

Parameters

  • certificaat

    ArrayBuffer

    Het certificaat van een Match dat is geretourneerd door selectClientCertificates .

  • parameters

    voorwerp

    Bepaalt parameters voor handtekening/hash-algoritmen, naast de parameters die door de sleutel zelf zijn vastgelegd. Dezelfde parameters worden geaccepteerd als door de importKey- functie van WebCrypto, bijvoorbeeld RsaHashedImportParams voor een RSASSA-PKCS1-v1_5-sleutel en EcKeyImportParams voor een EC-sleutel. Daarnaast kan voor RSASSA-PKCS1-v1_5-sleutels de hash-algoritmenaamparameter worden opgegeven met een van de volgende waarden: "none", "SHA-1", "SHA-256", "SHA-384" of "SHA-512", bijvoorbeeld {"hash": { "name": "none" } } . De sign-functie past dan PKCS#1 v1.5-padding toe, maar hasht de gegeven gegevens niet.

    Momenteel ondersteunt deze methode alleen de algoritmen "RSASSA-PKCS1-v1_5" en "ECDSA".

  • terugbellen

    functie

    De callback ziet er als volgt uit:

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

    • publieke sleutel

      voorwerp

    • privésleutel

      object optioneel

      Kan null zijn als deze extensie er geen toegang toe heeft.

getKeyPairBySpki()

Chroom 85+
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

Geeft het sleutelpaar dat door publicKeySpkiDer is geïdentificeerd voor gebruik met platformKeys.subtleCrypto door aan callback .

Parameters

  • publicKeySpkiDer

    ArrayBuffer

    Een DER-gecodeerde X.509 SubjectPublicKeyInfo, verkregen bijvoorbeeld door de exportKey-functie van WebCrypto aan te roepen met format="spki".

  • parameters

    voorwerp

    Biedt handtekening- en hash-algoritmeparameters, naast de parameters die door de sleutel zelf zijn vastgelegd. Dezelfde parameters worden geaccepteerd als door de importKey- functie van WebCrypto, bijvoorbeeld RsaHashedImportParams voor een RSASSA-PKCS1-v1_5-sleutel. Voor RSASSA-PKCS1-v1_5-sleutels moeten we ook een hashparameter doorgeven { "hash": { "name": string } } . De hashparameter vertegenwoordigt de naam van het hash-algoritme dat in de digest-bewerking moet worden gebruikt vóór een sign. Het is mogelijk om "none" als hashnaam door te geven. In dat geval past de sign-functie PKCS#1 v1.5-padding toe, maar hasht de opgegeven gegevens niet.

    Momenteel ondersteunt deze methode het "ECDSA"-algoritme met de benoemde curve P-256 en het "RSASSA-PKCS1-v1_5"-algoritme met een van de hash-algoritmen "none", "SHA-1", "SHA-256", "SHA-384" en "SHA-512".

  • terugbellen

    functie

    De callback ziet er als volgt uit:

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

    • publieke sleutel

      voorwerp

    • privésleutel

      object optioneel

      Kan null zijn als deze extensie er geen toegang toe heeft.

selectClientCertificates()

chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
)
: Promise<Match[]>

Deze methode filtert uit een lijst met clientcertificaten de certificaten die bekend zijn bij het platform, overeenkomen met request en waarvoor de extensie toegang heeft tot het certificaat en de bijbehorende privésleutel. Als interactive is ingesteld op 'true', krijgt de gebruiker een dialoogvenster te zien waarin hij of zij een overeenkomende certificaten kan selecteren en de extensie toegang tot het certificaat kan verlenen. De geselecteerde/gefilterde clientcertificaten worden doorgegeven aan callback .

Parameters

Retourneren

  • Belofte< Match []>

    Chroom 121+

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Een implementatie van SubtleCrypto van WebCrypto die cryptobewerkingen mogelijk maakt op sleutels van clientcertificaten die beschikbaar zijn voor deze extensie.

Retourneren

  • object | ongedefinieerd

verifyTLSServerCertificate()

chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
)
: Promise<VerificationResult>

Controleert of details.serverCertificateChain vertrouwd kan worden voor details.hostname volgens de vertrouwensinstellingen van het platform. Opmerking: Het daadwerkelijke gedrag van de vertrouwensverificatie is niet volledig gespecificeerd en kan in de toekomst veranderen. De API-implementatie controleert de vervaldatum van certificaten, valideert het certificeringspad en controleert het vertrouwen van een bekende CA. De implementatie moet de EKU serverAuth respecteren en alternatieve onderwerpnamen ondersteunen.

Parameters

Retourneren