chrome.platformKeys

Opis

Użyj interfejsu chrome.platformKeys API, aby uzyskać dostęp do certyfikatów klienta zarządzanych przez platformę. Jeśli użytkownik lub zasada przyzna te uprawnienia, rozszerzenie może używać takiego certyfikatu w swoim niestandardowym protokole uwierzytelniania. Pozwala to na przykład używać certyfikatów zarządzanych przez platformę w sieciach VPN innych firm (patrz chrome.vpnProvider).

Uprawnienia

platformKeys

Dostępność

Chrome 45 i nowsze wersje tylko ChromeOS

Typy

ClientCertificateRequest

Właściwości

  • certificateAuthorities

    TablicaBuffer[]

    Lista wyróżniających się nazw urzędów certyfikacji dozwolonych przez serwer. Każdy wpis musi być zakodowanym w formacie DER formatem X.509 DistinguishedName.

  • certificateTypes

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

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Właściwości

  • certyfikat

    ArrayBuffer

    Kodowanie DER certyfikatu X.509.

  • keyAlgorithm

    obiekt

    KeyAlgorithm certyfikowanego klucza. Zawiera on parametry algorytmu, które są nieodłącznym elementem klucza certyfikatu (np. długość klucza). Inne parametry, takie jak funkcja skrótu używana przez funkcję podpisu, nie są uwzględniane.

SelectDetails

Właściwości

  • clientCerts

    Tablica ArrayBuffer[] opcjonalna

    Jeśli została podana, selectClientCertificates działa na tej liście. W przeciwnym razie pobiera listę wszystkich certyfikatów z magazynów certyfikatów platformy, które są dostępne dla tego rozszerzenia. Wpisy, do których rozszerzenie nie ma uprawnień lub które nie są zgodne z żądaniem, zostaną usunięte.

  • interaktywny

    boolean

    Jeśli ma wartość true (prawda), odfiltrowana lista zostanie wyświetlona użytkownikowi, aby mógł ręcznie wybrać certyfikat, a 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 zostanie ograniczona 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

    string,

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

  • serverCertificateChain

    TablicaBuffer[]

    Każdy wpis w łańcuchu musi być kodowaniem DER certyfikatu X.509, pierwszy wpis musi być certyfikatem serwera, a każdy z nich musi poświadczać poprzedzający wpis.

VerificationResult

Właściwości

  • debug_errors

    string[]

    Jeśli weryfikacja zaufania się nie powiodła, tablica ta zawiera błędy zgłoszone przez 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ą się zmienić w kolejnych wersjach tego interfejsu API i nie ma gwarancji, że będą zgodne z poprzednią wersją ani wstecznie.

  • zaufane

    boolean

    Wynik weryfikacji zaufania: ma wartość „prawda”, jeśli można ustalić zaufanie dla danych do weryfikacji, lub „fałsz”, jeśli z jakiegokolwiek powodu zostanie ono odrzucone.

Metody

getKeyPair()

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

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

Parametry

  • certyfikat

    ArrayBuffer

    certyfikat Match zwrócony przez selectClientCertificates.

  • Parametry

    obiekt

    Określa parametry algorytmu podpisu/szyfrowania oprócz parametrów ustalonych przez sam klucz. Te same parametry są akceptowane przez funkcję 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żna określić za pomocą jednej z tych wartości: „none”, „SHA-1”, „SHA-256”, „SHA-384” lub „SHA-512”, np. {"hash": { "name": "none" } }. Funkcja znaku zastosuje następnie dopełnienie PKCS#1 w wersji 1.5, ale nie zaszyfruje podanych danych.

    Obecnie ta metoda obsługuje wyłącznie algorytmy „RSASSA-PKCS1-v1_5” i „ECDSA”.

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • publicKey

      obiekt

    • privateKey

      obiekt opcjonalnie

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

getKeyPairBySpki()

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

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

Parametry

  • publicKeySpkiDer

    ArrayBuffer

    SubjectPublicKeyInfo w formacie DER z kodowaniem DER, uzyskany np. przez wywołanie funkcji ExportKey programu WebCrypto z parametrem format="spki".

  • Parametry

    obiekt

    Zawiera parametry podpisu i algorytmu szyfrowania, oprócz tych ustalonych przez sam klucz. Te same parametry są akceptowane przez funkcję importKey WebCrypto, np. RsaHashedImportParams w przypadku klucza RSASSA-PKCS1-v1_5. W przypadku kluczy RSASSA-PKCS1-v1_5 trzeba też przekazać parametr „hash” { "hash": { "name": string } }. Parametr „hash” reprezentuje nazwę algorytmu szyfrowania, który ma być używany w operacji skrótu przed znakiem. Jako nazwę skrótu można przekazać „none” (brak). W takim przypadku funkcja znaku zastosuje dopełnienie PKCS#1 w wersji 1.5 i nie zaszyfruje podanych danych.

    Obecnie ta metoda obsługuje algorytm „ECDSA” z algorytmem krzywej nazwanej P-256 i „RSASSA-PKCS1-v1_5” z jednym z algorytmów haszowania: „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 opcjonalnie

      Jeśli to rozszerzenie nie ma do niego dostępu, może to być 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 request i w przypadku których rozszerzenie ma uprawnienia dostępu do certyfikatu i jego klucza prywatnego. Jeśli interactive ma wartość true (prawda), użytkownik zobaczy okno dialogowe, w którym będzie mógł 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 opcjonalnie

    Parametr callback wygląda tak:

    (matches: Match[])=>void

    • dopasowania

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

Akcje powrotne

  • Promise<Match[]>

    Chrome 121 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Implementacja pakietu SubtleCrypto firmy WebCrypto, która umożliwia operacje kryptograficzne na kluczach certyfikatów klienta, które są dostępne dla tego rozszerzenia.

Akcje powrotne

  • obiekt|nieokreślony

verifyTLSServerCertificate()

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

Sprawdza, czy details.serverCertificateChain może być zaufany dla details.hostname na podstawie ustawień zaufania platformy. Uwaga: rzeczywiste działanie weryfikacji zaufania nie jest w pełni określone i może się zmienić. Implementacja interfejsu API weryfikuje datę ważności certyfikatu, ścieżkę certyfikacji i zaufanie znanego urzędu certyfikacji. Implementacja powinna uwzględniać mechanizm serwera EKU ServerAuth i obsługiwać alternatywne nazwy podmiotów.

Parametry

Akcje powrotne

  • Chrome 121 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.