chrome.platformKeys

.

Opis

Użyj interfejsu API chrome.platformKeys, aby uzyskać dostęp do certyfikatów klienta zarządzanych przez platformę. Jeśli użytkownik lub zasada przyzna takie uprawnienia, rozszerzenie może używać takiego certyfikatu w swoim własnym protokole uwierzytelniania. Na przykład: umożliwia używanie certyfikatów zarządzanych przez platformę w sieciach VPN innych firm (zobacz chrome.vpnProvider).

Uprawnienia

platformKeys

Dostępność

Chrome w wersji 45 lub nowszej Tylko ChromeOS

Typy

ClientCertificateRequest

Właściwości

  • certificateAuthorities

    ArrayBuffer[]

    Lista wyróżnionych nazw urzędów certyfikacji dozwolonych przez serwer. Każdy wpis musi być nazwą wyróżniającą X.509 zakodowaną w formacie DER.

  • certificateTypes

    To pole zawiera listę typów żądanych certyfikatów, posortowaną w kolejności według preferencji serwera. Zostaną pobrane tylko certyfikaty typów znajdujących się na tej liście. Jeśli jednak certificateTypes jest pustą listą, zwracane są certyfikaty dowolnego typu.

ClientCertificateType

Typ wyliczeniowy

"rsaSign"

"ecdsaSign"

Match

Właściwości

  • certyfikat

    SlateBuffer

    Kodowanie DER certyfikatu X.509.

  • keyAlgorithm

    Obiekt

    KeyAlgorithm certyfikowanego klucza. Zawiera parametry algorytmu właściwe dla klucza certyfikatu (np. długość klucza). Inne parametry, np. funkcja skrótu używana przez funkcję znaku, nie są uwzględniane.

SelectDetails

Właściwości

  • clientCerts

    ArrayBuffer[] opcjonalny

    Jeśli jest podana, na tej liście działa selectClientCertificates. W przeciwnym razie uzyskuje listę wszystkich certyfikatów z magazynów certyfikatów platformy dostępnych dla tego rozszerzenia. Wpisy, do których rozszerzenie nie ma uprawnień lub które nie pasują do żądania, są usuwane.

  • interaktywny

    wartość logiczna

    Jeśli zasada ma wartość „prawda”, użytkownikowi jest przedstawiana lista filtrowana, aby ręcznie wybrać certyfikat i tym samym przyznać rozszerzeniu dostęp do certyfikatów i kluczy. Zwrócone zostaną tylko wybrane certyfikaty. Jeśli ma wartość false (fałsz), lista jest zmniejszona do wszystkich certyfikatów, do których rozszerzenie ma dostęp (automatycznie lub ręcznie).

  • Zwrócone zostaną tylko certyfikaty pasujące do tego żądania.

VerificationDetails

Właściwości

  • nazwa hosta

    ciąg znaków

    Nazwa hosta serwera, dla którego ma zostać zweryfikowany certyfikat, np. serwer, który przedstawił serverCertificateChain.

  • serverCertificateChain

    ArrayBuffer[]

    Każdy wpis w łańcuchu musi być kodowaniem DER certyfikatu X.509, pierwszym wpisem musi być certyfikat serwera, a każdy z nich musi potwierdzać poprzedzający wpis.

VerificationResult

Właściwości

  • debug_errors

    ciąg znaków[]

    Jeśli weryfikacja zaufania się nie udała, ta tablica zawiera błędy zgłoszone przez bazową warstwę sieciową. W przeciwnym razie tablica jest pusta.

    Uwaga: ta lista jest przeznaczona tylko do debugowania i może nie zawierać wszystkich istotnych błędów. Zwrócone błędy mogą ulec zmianie w kolejnych wersjach tego interfejsu API i nie ma gwarancji, że będą one zgodne zarówno w przód, jak i w tył.

  • zaufany

    wartość logiczna

    Wynik weryfikacji zaufania: „true”, jeśli można ustanowić zaufanie dla podanych szczegółów weryfikacji, oraz „false”, jeśli z jakiegokolwiek powodu zaufanie zostało odrzucone.

Metody

getKeyPair()

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

Przekazuje parę kluczy certificate na potrzeby użycia z platformKeys.subtleCrypto do callback.

Parametry

  • certyfikat

    SlateBuffer

    Certyfikat Match zwrócony przez selectClientCertificates.

  • parametry

    Obiekt

    Określa parametry algorytmu podpisu i haszowania oprócz parametrów ustalonych przez sam klucz. Akceptowane są te same parametry, co funkcja importKey WebCrypto, np. RsaHashedImportParams dla klucza RSASSA-PKCS1-v1_5 i EcKeyImportParams dla klucza EC. Dodatkowo w przypadku kluczy RSASSA-PKCS1-v1_5 parametr nazwy algorytmu szyfrowania może być określony za pomocą jednej z tych wartości: „none”, „SHA-1”, „SHA-256”, „SHA-384” lub „SHA-512”, np. {"hash": { "name": "none" } } Funkcja podpisywania zastosuje dopełnienie w formacie PKCS#1 w wersji 1.5, ale nie zaszyfruje danych.

    Obecnie ta metoda obsługuje tylko format „RSASSA-PKCS1-v1_5” i „ECDSA” za pomocą algorytmów.

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • publicKey

      Obiekt

    • privateKey

      obiekt opcjonalny

      Jeśli to rozszerzenie nie ma do niego dostępu, może mieć wartość null.

getKeyPairBySpki()

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

Przekazuje parę kluczy identyfikowaną przez publicKeySpkiDer na potrzeby użycia z platformKeys.subtleCrypto do callback.

Parametry

  • publicKeySpkiDer

    SlateBuffer

    SubjectPublicKeyInfo z kodowaniem DER, uzyskany np. przez wywołanie funkcji ExportKey w WebCrypto z wartością format="spki".

  • parametry

    Obiekt

    Udostępnia parametry algorytmu podpisu i szyfrowania, a także parametry ustalone przez sam klucz. Akceptowane są te same parametry, co funkcja importKey WebCrypto, np. RsaHashedImportParams dla klucza RSASSA-PKCS1-v1_5. W przypadku kluczy RSASSA-PKCS1-v1_5 trzeba również przekazać „hash” { "hash": { "name": string } }. Wartość skrótu reprezentuje nazwę algorytmu szyfrowania, który ma być użyty w operacji skrótu przed znakiem. Można przekazać „brak” jako nazwę skrótu. W takim przypadku funkcja znaku zastosuje dopełnienie w formacie PKCS#1 w wersji 1.5, ale nie zaszyfruje danych.

    Obecnie ta metoda obsługuje „ECDSA” algorytm z krzywą o nazwie P-256 i „RSASSA-PKCS1-v1_5” z jednym z algorytmów haszujących „none”, „SHA-1”, „SHA-256”, „SHA-384” i „SHA-512”.

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • publicKey

      Obiekt

    • privateKey

      obiekt opcjonalny

      Jeśli to rozszerzenie nie ma do niego dostępu, może mieć wartość null.

selectClientCertificates()

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

Ta metoda odfiltrowuje z listy certyfikatów klienta te, które są znane platformie, pasują do atrybutu request i w przypadku których rozszerzenie ma uprawnienia dostępu do certyfikatu i jego klucza prywatnego. Jeśli interactive ma wartość prawda, użytkownikowi wyświetla się okno, w którym może wybrać jeden z pasujących certyfikatów i przyznać rozszerzeniu dostęp do certyfikatu. Wybrane/filtrowane certyfikaty klienta zostaną przekazane do: callback.

Parametry

  • szczegóły
  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    (matches: Match[]) => void

    • pasuje do

      Lista certyfikatów wybranych przez użytkownika, które pasują do żądania, do których rozszerzenie ma uprawnienia oraz, jeśli interactive ma wartość prawda.

Zwroty

  • Obietnica<dopasowanie[]>

    Chrome w wersji 121 lub nowszej .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Implementacja technologii SubtleCrypto firmy WebCrypto, która umożliwia wykonywanie operacji kryptograficznych na kluczach certyfikatów klienta dostępnych dla tego rozszerzenia.

Zwroty

  • object | nie zdefiniowano

verifyTLSServerCertificate()

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

Sprawdza, czy platforma details.serverCertificateChain może być godna zaufania w details.hostname zgodnie z ustawieniami zaufania platformy. Uwaga: rzeczywisty sposób weryfikacji zaufania nie jest w pełni doprecyzowany i w przyszłości może się zmienić. Implementacja interfejsu API weryfikuje datę ważności certyfikatu, weryfikuje ścieżkę certyfikacyjną oraz sprawdza zaufanie przez znany urząd certyfikacji. Implementacja powinna uwzględniać uwierzytelnianie EKU serverAuth i obsługiwać alternatywne nazwy podmiotów.

Parametry

Zwroty

  • Promise&lt;VerificationResult&gt;

    Chrome w wersji 121 lub nowszej .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.