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 de toestemming verleent, kan een extensie een dergelijk certificaat gebruiken in zijn aangepaste authenticatieprotocol. Dit maakt bijvoorbeeld het gebruik van platformbeheerde certificaten in VPN's van derden mogelijk (zie chrome.vpnProvider ).

Machtigingen

platformKeys

Beschikbaarheid

AlleenChrome 45+ ChromeOS

Soorten

ClientCertificateRequest

Eigenschappen

  • certificaatAutoriteiten

    ArrayBuffer[]

    Lijst met onderscheidende namen van certificeringsinstanties die door de server zijn toegestaan. Elke invoer moet een DER-gecodeerde X.509 DistinguishedName zijn.

  • certificaatTypen

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

ClientCertificateType

Enum

"rsaSign"

"ecdsaTeken"

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 inbegrepen.

SelectDetails

Eigenschappen

  • klantCerts

    ArrayBuffer[] optioneel

    Indien opgegeven, werkt de selectClientCertificates op deze lijst. Anders wordt de lijst opgehaald met alle certificaten uit de certificaatarchieven van het platform die beschikbaar zijn voor deze extensies. Inzendingen waar de extensie geen toestemming voor heeft of die niet overeenkomen met het verzoek, worden verwijderd.

  • interactieve

    Booleaans

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

  • Alleen certificaten die aan dit verzoek 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[]

    Elke keteninvoer moet de DER-codering van een X.509-certificaat zijn, de eerste invoer moet het servercertificaat zijn en elke invoer moet de voorafgaande invoer certificeren.

VerificationResult

Eigenschappen

  • debug_fouten

    snaar[]

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

    Opmerking: deze lijst is alleen bedoeld voor foutopsporing en bevat mogelijk niet alle relevante fouten. De geretourneerde fouten kunnen veranderen in toekomstige herzieningen van deze API en zijn niet gegarandeerd voorwaarts of achterwaarts compatibel.

  • vertrouwd

    Booleaans

    Het resultaat van de vertrouwensverificatie: waar als het vertrouwen voor de gegeven verificatiedetails kan worden gevestigd en onwaar als het vertrouwen om welke reden dan ook wordt afgewezen.

Methoden

getKeyPair()

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

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

Parameters

  • certificaat

    ArrayBuffer

    Het certificaat van een Match dat wordt geretourneerd door selectClientCertificates .

  • parameters

    voorwerp

    Bepaalt handtekening-/hash-algoritmeparameters als aanvulling op 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 EC-sleutel. Bovendien 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 tekenfunctie past dan PKCS#1 v1.5-opvulling toe, maar hasht de gegeven gegevens niet.

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

  • terugbellen

    functie

    De callback parameter ziet er als volgt uit:

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

    • openbare 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,
)

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

Parameters

  • publicKeySpkiDer

    ArrayBuffer

    Een DER-gecodeerde X.509 SubjectPublicKeyInfo, bijvoorbeeld verkregen 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 "hash"-parameter { "hash": { "name": string } } doorgeven. De parameter "hash" vertegenwoordigt de naam van het hash-algoritme dat moet worden gebruikt in de digest-bewerking vóór een teken. Het is mogelijk om "none" door te geven als de hashnaam, in welk geval de tekenfunctie PKCS#1 v1.5-opvulling zal toepassen en de gegeven gegevens niet zal hashen.

    Momenteel ondersteunt deze methode het "ECDSA"-algoritme met 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 parameter ziet er als volgt uit:

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

    • openbare sleutel

      voorwerp

    • privésleutel

      object optioneel

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

selectClientCertificates()

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

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

Parameters

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (matches: Match[]) => void

    • wedstrijden

      De lijst met certificaten die overeenkomen met het verzoek, waarvoor de extensie toestemming heeft en, als interactive waar is, die door de gebruiker zijn geselecteerd.

Retouren

  • Beloof< Match []>

    Chroom 121+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

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

Retouren

  • voorwerp | ongedefinieerd

verifyTLSServerCertificate()

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

Controleert of details.serverCertificateChain kan worden vertrouwd 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 verifieert de vervaldatum van het certificaat, valideert het certificeringspad en controleert het vertrouwen van een bekende CA. De implementatie wordt verondersteld de EKU-serverAuth te respecteren en alternatieve onderwerpnamen te ondersteunen.

Parameters

Retouren

  • Chroom 121+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.