chrome.platformKeys

Beschreibung

Verwenden Sie die chrome.platformKeys API, um auf von der Plattform verwaltete Clientzertifikate zuzugreifen. Wenn der Nutzer oder die Richtlinie die Berechtigung erteilt, kann eine Erweiterung ein solches Zertifikat in ihrem benutzerdefinierten Authentifizierungsprotokoll verwenden. Beispiel: Dadurch können von der Plattform verwaltete Zertifikate in Drittanbieter-VPNs verwendet werden (siehe chrome.vpnProvider).

Berechtigungen

platformKeys

Verfügbarkeit

Chrome (ab Version 45) Nur ChromeOS

Typen

ClientCertificateRequest

Attribute

  • certificateAuthorities

    ArrayBuffer[]

    Liste der Distinguished Names von Zertifizierungsstellen, die vom Server zugelassen werden. Jeder Eintrag muss ein DER-codierter X.509 DistinguishedName sein.

  • certificateTypes

    Dieses Feld enthält eine Liste der angeforderten Zertifikatstypen, sortiert in der Reihenfolge der Servereinstellungen. Nur Zertifikate eines Typs, der in dieser Liste enthalten ist, werden abgerufen. Wenn certificateTypes jedoch die leere Liste ist, werden Zertifikate jeden Typs zurückgegeben.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Attribute

  • Zertifikat

    ArrayBuffer

    Die DER-Codierung eines X.509-Zertifikats

  • keyAlgorithm

    Objekt

    Der KeyAlgorithm des zertifizierten Schlüssels. Enthält Algorithmusparameter, die dem Schlüssel des Zertifikats inhärent sind (z.B. die Schlüssellänge). Andere Parameter wie die von der Sign-Funktion verwendete Hash-Funktion sind nicht enthalten.

SelectDetails

Attribute

  • clientCerts

    ArrayBuffer[] optional

    Wenn angegeben, wird die selectClientCertificates auf der Grundlage dieser Liste ausgeführt. Andernfalls wird eine Liste aller Zertifikate aus den Zertifikatsspeichern der Plattform abgerufen, die für diese Erweiterungen verfügbar sind. Einträge, für die die Erweiterung keine Berechtigung hat oder die nicht mit der Anfrage übereinstimmen, werden entfernt.

  • interactive

    boolean

    Ist dieser Wert auf „true“ gesetzt, wird dem Nutzer die gefilterte Liste angezeigt, damit er manuell ein Zertifikat auswählen kann. Dadurch erhält die Erweiterung Zugriff auf die Zertifikate und Schlüssel. Nur die ausgewählten Zertifikate werden zurückgegeben. Bei „false“ wird die Liste auf alle Zertifikate reduziert, auf die die Erweiterung automatisch oder manuell Zugriff erhalten hat.

  • Es werden nur Zertifikate zurückgegeben, die mit dieser Anfrage übereinstimmen.

VerificationDetails

Attribute

  • Hostname

    String

    Der Hostname des Servers, für den das Zertifikat bestätigt werden soll, z.B. dem Server, der serverCertificateChain bereitgestellt hat.

  • serverCertificateChain

    ArrayBuffer[]

    Jeder Ketteneintrag muss die DER-Codierung eines X.509-Zertifikats sein, der erste Eintrag muss das Serverzertifikat sein und jeder Eintrag muss den ihm vorangehenden Eintrag zertifizieren.

VerificationResult

Attribute

  • debug_errors

    String[]

    Wenn die Überprüfung der Vertrauensstellung fehlgeschlagen ist, enthält dieses Array die von der zugrunde liegenden Netzwerkschicht gemeldeten Fehler. Andernfalls ist dieses Array leer.

    Hinweis:Diese Liste dient nur zur Fehlerbehebung und enthält möglicherweise nicht alle relevanten Fehler. Die zurückgegebenen Fehler können sich in zukünftigen Versionen dieser API ändern. Es ist nicht garantiert, dass sie rückwärts- oder rückwärtskompatibel sind.

  • vertrauenswürdig

    boolean

    Das Ergebnis der Vertrauensüberprüfung: „true“, wenn die gegebenen Bestätigungsdetails eine Vertrauensstellung ergeben, und „false“, wenn das Vertrauen aus irgendeinem Grund abgelehnt wird.

Methoden

getKeyPair()

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

Übergibt das Schlüsselpaar certificate zur Verwendung mit platformKeys.subtleCrypto an callback.

Parameter

  • Zertifikat

    ArrayBuffer

    Das Zertifikat eines Match, das von selectClientCertificates zurückgegeben wurde.

  • Parameter

    Objekt

    Bestimmt Signatur-/Hash-Algorithmusparameter zusätzlich zu den Parametern, die durch den Schlüssel selbst festgelegt werden. Dieselben Parameter werden von der Funktion importKey von WebCrypto akzeptiert, z.B. RsaHashedImportParams für einen RSASSA-PKCS1-v1_5-Schlüssel und EcKeyImportParams für einen EC-Schlüssel. Außerdem kann für RSASSA-PKCS1-v1_5-Schlüssel der Namensparameter des Hash-Algorithmus mit einem der folgenden Werte angegeben werden: „none“, „SHA-1“, „SHA-256“, „SHA-384“ oder „SHA-512“. Beispiel: {"hash": { "name": "none" } } Die Signierfunktion wendet dann PKCS#1 v1.5-Padding an, aber hasht die angegebenen Daten nicht.

    Derzeit unterstützt diese Methode nur den Typ „RSASSA-PKCS1-v1_5“ und „ECDSA“ Algorithmen.

  • callback

    Funktion

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

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

    • publicKey

      Objekt

    • privateKey

      Objekt optional

      Könnte null sein, wenn diese Erweiterung keinen Zugriff darauf hat.

getKeyPairBySpki()

Chrome (ab Version 85)
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)

Übergibt das von publicKeySpkiDer angegebene Schlüsselpaar zur Verwendung mit platformKeys.subtleCrypto an callback.

Parameter

  • publicKeySpkiDer

    ArrayBuffer

    Eine DER-verschlüsselte X.509 SubjectPublicKeyInfo, die z. B. abgerufen wird. indem Sie die Funktion exportKey von WebCrypto mit format="spki" aufrufen.

  • Parameter

    Objekt

    Stellt Signatur- und Hash-Algorithmusparameter zusätzlich zu denen bereit, die durch den Schlüssel selbst festgelegt werden. Dieselben Parameter werden von der Funktion importKey von WebCrypto akzeptiert, z.B. RsaHashedImportParams für einen RSASSA-PKCS1-v1_5-Schlüssel. Für RSASSA-PKCS1-v1_5-Schlüssel müssen wir auch einen „Hash“ übergeben. Parameter { "hash": { "name": string } }. Der „Hash“-Wert -Parameter steht für den Namen des Hash-Algorithmus, der im Digest-Vorgang vor einem Vorzeichen verwendet werden soll. Es ist möglich, „keine“ als Hash-Namen ein. In diesem Fall wendet die Signierfunktion das PKCS#1-Padding von Version 1.5 an und hasht die angegebenen Daten nicht.

    Derzeit unterstützt diese Methode die Methode „ECDSA“. mit der benannten Kurve P-256 und „RSASSA-PKCS1-v1_5“. mit einem der Hash-Algorithmen „none“, „SHA-1“, „SHA-256“, „SHA-384“ oder „SHA-512“.

  • callback

    Funktion

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

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

    • publicKey

      Objekt

    • privateKey

      Objekt optional

      Könnte null sein, wenn diese Erweiterung keinen Zugriff darauf hat.

selectClientCertificates()

<ph type="x-smartling-placeholder"></ph> Versprechen
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

Mit dieser Methode werden aus einer Liste von Clientzertifikaten diejenigen gefiltert, die der Plattform bekannt sind, mit request übereinstimmen und für die die Erweiterung die Berechtigung hat, auf das Zertifikat und seinen privaten Schlüssel zuzugreifen. Wenn interactive auf „true“ gesetzt ist, wird dem Nutzer ein Dialogfeld angezeigt, in dem er aus übereinstimmenden Zertifikaten auswählen und der Erweiterung Zugriff auf das Zertifikat gewähren kann. Die ausgewählten/gefilterten Clientzertifikate werden an callback übergeben.

Parameter

  • Details
  • callback

    Funktion optional

    Der Parameter callback sieht so aus: <ph type="x-smartling-placeholder"></ph>

    (matches: Match[]) => void

    • stimmt überein mit

      Die Liste der Zertifikate, die der Anfrage entsprechen, für die die Erweiterung eine Berechtigung hat und die vom Nutzer ausgewählt wurden, wenn interactive „true“ ist.

Gibt Folgendes zurück:

  • Promise<Übereinstimmung[]>

    Chrome 121 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Eine Implementierung von SubtleCrypto von WebCrypto, die kryptografische Vorgänge für Schlüssel von Clientzertifikaten ermöglicht, die für diese Erweiterung verfügbar sind.

Gibt Folgendes zurück:

  • object | nicht definiert

verifyTLSServerCertificate()

<ph type="x-smartling-placeholder"></ph> Versprechen
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

Prüft, ob details.serverCertificateChain für details.hostname gemäß den Vertrauenseinstellungen der Plattform als vertrauenswürdig eingestuft werden kann. Hinweis: Das tatsächliche Verhalten der Vertrauensprüfung ist nicht vollständig spezifiziert und kann sich in Zukunft ändern. Die API-Implementierung überprüft den Ablauf des Zertifikats, validiert den Zertifizierungspfad und prüft, ob eine bekannte Zertifizierungsstelle vertrauenswürdig ist. Die Implementierung sollte die EKU serverAuth berücksichtigen und alternative Antragstellernamen unterstützen.

Parameter

Gibt Folgendes zurück:

  • Promise&lt;VerificationResult&gt;

    Chrome 121 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.