chrome.platformKeys

Beschreibung

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

Berechtigungen

platformKeys

Verfügbarkeit

Chrome 45 und höher 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 ist eine Liste der angeforderten Zertifikatstypen, sortiert nach der Präferenz des Servers. Es werden nur Zertifikate eines Typs abgerufen, der in dieser Liste enthalten ist. Wenn certificateTypes jedoch die leere Liste ist, werden Zertifikate aller Typen 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. Es enthält Algorithmusparameter, die dem Schlüssel des Zertifikats innewohnen (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

    Falls angegeben, wird selectClientCertificates auf diese Liste angewendet. Andernfalls wird die Liste aller Zertifikate aus den Zertifikatspeichern der Plattform abgerufen, die für diese Erweiterungen verfügbar sind. Einträge, für die die Erweiterung keine Berechtigung hat oder die nicht der Anfrage entsprechen, werden entfernt.

  • interactive

    boolean

    Ist der Wert „true“, wird dem Nutzer die gefilterte Liste angezeigt, damit er manuell ein Zertifikat auswählen und der Erweiterung so Zugriff auf die Zertifikate und Schlüssel gewähren kann. Es werden nur die ausgewählten Zertifikate zurückgegeben. Wenn „is“ auf „false“ gesetzt ist, wird die Liste auf alle Zertifikate reduziert, auf die die Erweiterung Zugriff hat (automatisch oder manuell).

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

VerificationDetails

Attribute

  • Hostname

    String

    Der Hostname des Servers, für den das Zertifikat überprüft werden soll, z.B. der Server, der serverCertificateChain präsentiert 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 vorherigen Eintrag zertifizieren.

VerificationResult

Attribute

  • debug_errors

    String[]

    Wenn die Vertrauensüberprüfung 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 Revisionen dieser API ändern und sind nicht garantiert vorwärts- oder rückwärtskompatibel.

  • vertrauenswürdig

    boolean

    Das Ergebnis der Vertrauensüberprüfung: „true“, wenn Vertrauen für die angegebenen Überprüfungsdetails hergestellt werden konnte, und „false“, wenn Vertrauen aus irgendeinem Grund abgelehnt wird.

Methoden

getKeyPair()

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

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

Parameter

  • Zertifikat

    ArrayBuffer

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

  • Parameter

    Objekt

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

    Derzeit werden mit dieser Methode nur die Algorithmen „RSASSA-PKCS1-v1_5“ und „ECDSA“ unterstützt.

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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

    • publicKey

      Objekt

    • privateKey

      object optional

      Möglicherweise null, wenn diese Erweiterung keinen Zugriff darauf hat.

getKeyPairBySpki()

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

Übergibt das durch publicKeySpkiDer identifizierte Schlüsselpaar zur Verwendung mit platformKeys.subtleCrypto an callback.

Parameter

  • publicKeySpkiDer

    ArrayBuffer

    Eine DER-codierte X.509-SubjectPublicKeyInfo, die z.B. durch Aufrufen der WebCrypto-Funktion „exportKey“ mit „format=spki“ abgerufen wird.

  • Parameter

    Objekt

    Stellt zusätzlich zu den durch den Schlüssel selbst festgelegten Parametern Signatur- und Hash-Algorithmusparameter bereit. Es werden dieselben Parameter wie von der importKey-Funktion von WebCrypto akzeptiert, z.B. RsaHashedImportParams für einen RSASSA-PKCS1-v1_5-Schlüssel. Für RSASSA-PKCS1-v1_5-Schlüssel muss auch ein „hash“-Parameter { "hash": { "name": string } } übergeben werden. Der Parameter „hash“ steht für den Namen des Hash-Algorithmus, der im Digest-Vorgang vor einem Sign verwendet werden soll. Es ist möglich, „none“ als Hash-Namen zu übergeben. In diesem Fall wird die PKCS#1 v1.5-Auffüllung auf die Signatur angewendet, die angegebenen Daten werden aber nicht gehasht.

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

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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

    • publicKey

      Objekt

    • privateKey

      object optional

      Möglicherweise null, wenn diese Erweiterung keinen Zugriff darauf hat.

selectClientCertificates()

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

Mit dieser Methode werden aus einer Liste von Clientzertifikaten diejenigen herausgefiltert, 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 passende Zertifikate auswählen und der Erweiterung Zugriff auf das Zertifikat gewähren kann. Die ausgewählten/gefilterten Clientzertifikate werden an callback übergeben.

Parameter

Ausgabe

  • Promise<Match[]>

    Chrome 121 und höher

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

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.

Ausgabe

  • object | undefined

verifyTLSServerCertificate()

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

Prüft, ob details.serverCertificateChain gemäß den Vertrauenseinstellungen der Plattform für details.hostname vertrauenswürdig ist. Hinweis: Das tatsächliche Verhalten der Vertrauensüberprüfung ist nicht vollständig spezifiziert und kann sich in Zukunft ändern. Die API-Implementierung prüft den Ablauf des Zertifikats, validiert den Zertifizierungspfad und prüft das Vertrauen durch eine bekannte Zertifizierungsstelle. Die Implementierung soll die erweiterte Schlüsselverwendung „serverAuth“ berücksichtigen und alternative Antragstellernamen unterstützen.

Parameter

Ausgabe