chrome.platformKeys

Açıklama

Platform tarafından yönetilen istemci sertifikalarına erişmek için chrome.platformKeys API'sini kullanın. Kullanıcı veya politika izni verirse uzantı, özel kimlik doğrulama protokolünde bu tür bir sertifika kullanabilir. Örneğin, bu ayar üçüncü taraf VPN'lerde platform tarafından yönetilen sertifikaların kullanılmasına olanak tanır (chrome.vpnProvider'a bakın).

İzinler

platformKeys

Kullanılabilirlik

Chrome 45 ve sonraki sürümler Yalnızca ChromeOS

Türler

ClientCertificateRequest

Özellikler

  • certificateAuthorities

    ArrayBuffer[]

    Sunucu tarafından izin verilen sertifika yetkililerinin ayırt edici adlarının listesi. Her giriş, DER kodlu bir X.509 DistinguishedName olmalıdır.

  • certificateTypes

    Bu alan, istenen sertifika türlerinin sunucunun tercih sırasına göre sıralanmış listesidir. Yalnızca bu listede yer alan türdeki sertifikalar alınır. Ancak certificateTypes boş liste ise herhangi bir türdeki sertifikalar döndürülür.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Özellikler

  • sertifika

    ArrayBuffer

    X.509 sertifikasının DER kodlaması.

  • keyAlgorithm

    nesne

    Sertifikalı anahtarın KeyAlgorithm'u. Bu, sertifikanın anahtarına özgü algoritma parametrelerini (ör. anahtar uzunluğu) içerir. İmza işlevi tarafından kullanılan karma işlevi gibi diğer parametreler dahil edilmez.

SelectDetails

Özellikler

  • clientCerts

    ArrayBuffer[] isteğe bağlı

    Verildiyse selectClientCertificates bu listede çalışır. Aksi takdirde, bu uzantıların kullanabileceği platformun sertifika depolarındaki tüm sertifikaların listesini alır. Uzantının izni olmayan veya istekle eşleşmeyen girişler kaldırılır.

  • interactive

    boolean

    Doğruysa filtrelenmiş liste kullanıcıya sunulur. Kullanıcı, sertifikaları manuel olarak seçerek uzantıya sertifikalara ve anahtarlara erişim izni verir. Yalnızca seçilen sertifikalar döndürülür. Yanlışsa liste, uzantının erişim izni aldığı (otomatik olarak veya manuel olarak) tüm sertifikelerle sınırlandırılır.

  • Yalnızca bu istekle eşleşen sertifikalar döndürülür.

VerificationDetails

Özellikler

  • ana makine adı

    dize

    Sertifikanın doğrulanacağı sunucunun ana makine adı (ör. serverCertificateChain sertifikasını sunan sunucu).

  • serverCertificateChain

    ArrayBuffer[]

    Her zincir girişi, bir X.509 sertifikasının DER kodlaması olmalıdır. İlk giriş, sunucu sertifikası olmalı ve her giriş, kendisinden önceki girişi onaylamalıdır.

VerificationResult

Özellikler

  • debug_errors

    dize[]

    Güven doğrulama başarısız olursa bu dizi, temel ağ katmanı tarafından bildirilen hataları içerir. Aksi takdirde bu dizi boştur.

    Not: Bu liste yalnızca hata ayıklama amacıyla hazırlanmıştır ve ilgili tüm hataları içermeyebilir. Döndürülen hatalar, bu API'nin gelecekteki düzeltmelerinde değişebilir ve ileriye veya geriye dönük uyumlulukları garanti edilmez.

  • güvenilir

    boolean

    Güven doğrulamasının sonucu: Belirli doğrulama ayrıntıları için güven oluşturulabiliyorsa doğru, herhangi bir nedenle güven reddedilirse yanlış.

Yöntemler

getKeyPair()

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

certificate anahtar çiftini platformKeys.subtleCrypto ile kullanılmak üzere callback'e iletir.

Parametreler

  • sertifika

    ArrayBuffer

    selectClientCertificates tarafından döndürülen Match sertifikası.

  • parametreler

    nesne

    Anahtarın kendisi tarafından sabitlenen parametrelere ek olarak imza/karma algoritması parametrelerini belirler. WebCrypto'nun importKey işleviyle aynı parametreler kabul edilir. Örneğin, RSASSA-PKCS1-v1_5 anahtarı için RsaHashedImportParams, EC anahtarı için EcKeyImportParams. Ayrıca, RSASSA-PKCS1-v1_5 anahtarları için karma oluşturma algoritması adı parametresi şu değerlerden biriyle belirtilebilir: "none", "SHA-1", "SHA-256", "SHA-384" veya "SHA-512", ör. {"hash": { "name": "none" } }. İmzalama işlevi daha sonra PKCS#1 v1.5 dolgusunu uygular ancak verilen verileri karma oluşturmaz.

    Şu anda bu yöntem yalnızca "RSASSA-PKCS1-v1_5" ve "ECDSA" algoritmalarını desteklemektedir.

  • callback

    işlev

    callback parametresi şu şekilde görünür:

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

    • publicKey

      nesne

    • privateKey

      object isteğe bağlı

      Bu uzantının erişimi yoksa null olabilir.

getKeyPairBySpki()

Chrome 85 ve sonraki sürümler
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

publicKeySpkiDer tarafından tanımlanan anahtar çiftini platformKeys.subtleCrypto ile kullanım için callback'e iletir.

Parametreler

  • publicKeySpkiDer

    ArrayBuffer

    Örneğin, WebCrypto'nun exportKey işlevi format="spki" ile çağrılarak elde edilen DER kodlamalı bir X.509 SubjectPublicKeyInfo.

  • parametreler

    nesne

    Anahtarın kendisi tarafından sabitlenenlere ek olarak imza ve karma algoritması parametreleri sağlar. WebCrypto'nun importKey işleviyle aynı parametreler kabul edilir. Örneğin, RSASSA-PKCS1-v1_5 anahtarı için RsaHashedImportParams. RSASSA-PKCS1-v1_5 anahtarları için "hash" parametresini de iletmemiz gerekir { "hash": { "name": string } }. "Karma" parametresi, imzadan önce özet işleminde kullanılacak karma algoritmasının adını temsil eder. Karma adı olarak "none" iletilebilir. Bu durumda imza işlevi PKCS#1 v1.5 dolgusu uygular ancak verilen verileri karmalamaz.

    Bu yöntem şu anda, "ECDSA" algoritmasını (adlandırılmış eğri P-256 ile) ve "RSASSA-PKCS1-v1_5" algoritmasını (karma oluşturma algoritmalarından biri olan "none", "SHA-1", "SHA-256", "SHA-384" ve "SHA-512" ile) desteklemektedir.

  • callback

    işlev

    callback parametresi şu şekilde görünür:

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

    • publicKey

      nesne

    • privateKey

      object isteğe bağlı

      Bu uzantının erişimi yoksa null olabilir.

selectClientCertificates()

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

Bu yöntem, platform tarafından bilinen, request ile eşleşen ve uzantının sertifikaya ve özel anahtarına erişme izni olan istemci sertifikalarını bir listeden filtreler. interactive doğruysa kullanıcıya, eşleşen sertifikalar arasından seçim yapabileceği ve uzantıya sertifikaya erişim izni verebileceği bir iletişim kutusu gösterilir. Seçilen/filtrelenen istemci sertifikaları callback'ya iletilir.

Parametreler

İadeler

  • Promise<Match[]>

    Chrome 121 ve sonraki sürümler

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Bu uzantının kullanabildiği istemci sertifikası anahtarlarında kripto işlemleri yapılmasına olanak tanıyan WebCrypto'nun SubtleCrypto uygulaması.

İadeler

  • object | undefined

verifyTLSServerCertificate()

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

Platformun güven ayarlarını kullanarak details.serverCertificateChain için details.hostname güvenilir olup olmadığını kontrol eder. Not: Güven doğrulamasının gerçek davranışı tam olarak belirtilmemiştir ve gelecekte değişebilir. API uygulaması, sertifikanın geçerlilik bitiş tarihini doğrular, sertifika yolunu onaylar ve bilinen bir CA tarafından güveni kontrol eder. Uygulama, EKU serverAuth'a uymalı ve özne alternatif adlarını desteklemelidir.

Parametreler

İadeler