chrome.platformKeys

Açıklama

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

İzinler

platformKeys

Kullanılabilirlik

Yalnızca Chrome 45 ve üstü ChromeOS

Türler

ClientCertificateRequest

Özellikler

  • certificateAuthorities

    ArrayBuffer[]

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

  • certificateTypes

    Bu alanda, istenen sertifika türlerinin, sunucunun tercihine göre sıralanmış bir listesi yer alır. Yalnızca bu listede yer alan bir türdeki sertifikalar alınır. Ancak, certificateTypes boş listeyse her türden sertifika döndürülür.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Özellikler

  • sertifika

    ArrayBuffer

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

  • keyAlgorithm

    nesne

    Onaylı anahtarın KeyAlgorithm öğesi. Sertifika anahtarında mevcut olan 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ı

    Verilmişse, selectClientCertificates bu liste üzerinde çalışır. Aksi takdirde, platformun sertifika depolarından bu uzantılar tarafından kullanılabilen 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ğru değerine ayarlanırsa filtrelenmiş liste, manuel olarak bir sertifika seçmesi için kullanıcıya sunulur ve böylece sertifikaya ve anahtarlara uzantı erişimi verir. Yalnızca seçilen sertifikalar döndürülecek. Yanlış değerine ayarlanırsa liste, uzantının erişmesine izin verilen tüm sertifikaları (otomatik veya manuel) içerecek şekilde düşürülür.

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

VerificationDetails

Özellikler

  • hostname

    dize

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

  • serverCertificateChain

    ArrayBuffer[]

    Her bir zincir girişi, bir X.509 sertifikasının DER kodlaması olmalıdır; ilk giriş, sunucu sertifikası olmalıdır ve her bir giriş, kendisinden önce gelen girişi onaylamalıdır.

VerificationResult

Özellikler

  • debug_errors

    dize[]

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

    Not: Bu liste yalnızca hata ayıklama amaçlıdır ve ilgili tüm hataları içermeyebilir. Döndürülen hatalar, bu API'nin gelecekteki sürümlerinde değişebilir ve ileriye veya geriye dönük uyumluluğa sahip oldukları garanti edilmez.

  • güvenilir

    boolean

    Güven doğrulamasının sonucu: Belirtilen doğrulama ayrıntıları için güven sağlanabilirse true (doğru), herhangi bir nedenle güven reddedilirse false (yanlış) değerini alır.

Yöntemler

getKeyPair()

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

platformKeys.subtleCrypto ile kullanım için certificate anahtar çiftini callback öğesine geçirir.

Parametreler

  • sertifika

    ArrayBuffer

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

  • Parametreler

    nesne

    Anahtarın kendisi tarafından sabitlenen parametrelere ek olarak imza/karma algoritması parametrelerini belirler. Aynı parametreler WebCrypto'nun importKey işlevi tarafından da kabul edilir; ör. bir RSASSA-PKCS1-v1_5 anahtarı için RsaHashedImportParams ve EC anahtarı için EcKeyImportParams. Ayrıca, RSASSA-PKCS1-v1_5 anahtarlarında, 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" } }). Ardından imza işlevi PKCS#1 v1.5 dolgusunu uygular ancak verilen verilere karma oluşturma işlemi uygulamaz.

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

  • geri çağırma

    işlev

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

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

    • publicKey

      nesne

    • privateKey

      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,
)

publicKeySpkiDer tarafından tanımlanan anahtar çiftini, platformKeys.subtleCrypto ile kullanım için callback öğesine geçirir.

Parametreler

  • publicKeySpkiDer

    ArrayBuffer

    Ör. WebCrypto'nun ExportKey işlevini format="spki" ile çağırarak elde edilen, DER kodlamalı X.509 SubjectPublicKeyInfo.

  • Parametreler

    nesne

    Anahtarın kendisi tarafından sabitlenenlere ek olarak imza ve karma algoritması parametreleri sağlar. Aynı parametreler WebCrypto'nun importKey işlevi tarafından da kabul edilir (ör. bir RSASSA-PKCS1-v1_5 anahtarı için RsaHashedImportParams). RSASSA-PKCS1-v1_5 anahtarları için { "hash": { "name": string } } adlı bir "hash" parametresi de iletmemiz gerekir. "Karma" parametresi, bir işaretten önce özet işleminde kullanılacak karma oluşturma algoritmasının adını temsil eder. Karma adı olarak "none" değerinin iletilmesi mümkündür. Bu durumda, sign işlevi PKCS#1 v1.5 dolgusunu uygular ve verilen verilere karma oluşturma işlemi uygulamaz.

    Şu anda bu yöntem, "none", "SHA-1", "SHA-256", "SHA-384" ve "SHA-512" karma algoritmalarından biriyle birlikte adlandırılmış eğri P-256 ve "RSASSA-PKCS1-v1_5" algoritmasına sahip "ECDSA" algoritmasını desteklemektedir.

  • geri çağırma

    işlev

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

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

    • publicKey

      nesne

    • privateKey

      isteğe bağlı

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

selectClientCertificates()

Söz
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

Bu yöntem, istemci sertifikalarının listesinden platform tarafından bilinen, request ile eşleşir ve uzantının sertifikaya ve onun özel anahtarına erişim izni olanlarla eşleşir. interactive değeri doğruysa kullanıcıya, eşleşen sertifikalar arasından seçim yapabileceği ve sertifikaya uzantı erişimi verebileceği bir iletişim kutusu gösterilir. Seçilen/filtrelenen istemci sertifikaları callback hizmetine geçirilecek.

Parametreler

  • ayrıntılar
  • geri çağırma

    Functions (isteğe bağlı)

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

    (matches: Match[])=>void

    • eşleşiyor

      İstekle eşleşen, uzantının izninin olduğu ve interactive doğruysa kullanıcı tarafından seçilen sertifikaların listesi.

İlerlemeler

  • Promise<Match[]>

    Chrome 121 ve sonraki sürümler

    Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Bu uzantıda kullanılabilen istemci sertifikalarının anahtarlarında şifreleme işlemlerine izin veren WebCrypto SubtleCrypto uygulaması.

İlerlemeler

  • nesne|tanımsız

verifyTLSServerCertificate()

Söz
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

Platformun güven ayarlarına göre details.hostname için details.serverCertificateChain uygulamasına güvenilip güvenilemeyeceğini kontrol eder. Not: Güven doğrulamasının gerçek davranışı tam olarak belirtilmemiştir ve ileride değişebilir. API uygulaması, sertifika geçerlilik sonunu doğrular, sertifika yolunu doğrular ve bilinen bir CA tarafından güveni kontrol eder. Uygulamanın EKU serverAuth'a uygun olması ve konu alternatif adlarını desteklemesi gerekir.

Parametreler

İlerlemeler

  • Chrome 121 ve sonraki sürümler

    Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.