Açıklama
Platform tarafından yönetilen istemci sertifikalarına erişmek için chrome.platformKeys API'sini kullanın. Kullanıcı veya politika izin verirse uzantı, özel kimlik doğrulama protokolünde bu tür bir sertifika kullanabilir. Örneğin, bu sayede üçüncü taraf VPN'lerde platform tarafından yönetilen sertifikalar kullanılabilir (chrome.vpnProvider sayfasına bakın).
İzinler
platformKeysKullanılabilirlik
Türler
ClientCertificateRequest
Özellikler
-
certificateAuthorities
ArrayBuffer[]
Sunucu tarafından izin verilen sertifika yetkililerinin ayırt edici adlarının listesi. Her giriş, DER ile kodlanmış bir X.509 DistinguishedName olmalıdır.
-
certificateTypes
Bu alan, istenen sertifika türlerinin sunucunun tercihine göre sıralandığı bir listedir. Yalnızca bu listede yer alan türdeki sertifikalar alınır. Ancak
certificateTypesboş bir listeyse her türden sertifika 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 değeri. 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ı
Belirtilirse
selectClientCertificatesbu listede çalışır. Aksi takdirde, platformun sertifika depolarından bu uzantıların kullanabileceği tüm sertifikaların listesini alır. Uzantının izni olmayan veya istekle eşleşmeyen girişler kaldırılır. -
etkileşimli
boole
Doğru olarak ayarlanırsa filtrelenmiş liste, kullanıcıya manuel olarak bir sertifika seçmesi için sunulur. Böylece uzantıya sertifikalara ve anahtarlara erişim izni verilir. Yalnızca seçilen sertifikalar döndürülür. Yanlış ise liste, uzantıya erişim izni verilen (otomatik veya manuel olarak) tüm sertifikalara indirgenir.
-
istek
Yalnızca bu istekle eşleşen sertifikalar döndürülür.
VerificationDetails
Özellikler
-
ana makine adı
dize
Sertifikası doğrulanacak sunucunun ana makine adı (ör.
serverCertificateChainsunan 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
string[]
Güven doğrulaması başarısız olursa 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 tüm alakalı hataları içermeyebilir. Döndürülen hatalar, bu API'nin gelecekteki düzeltmelerinde değişebilir ve ileriye veya geriye dönük uyumlu olacağı garanti edilmez.
-
güvenilir
boole
Güven doğrulamasının sonucu: Belirtilen doğrulama ayrıntıları için güven oluşturulabiliyorsa "true", güven herhangi bir nedenle reddedilirse "false" değerini döndürür.
Yöntemler
getKeyPair()
browser.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
platformKeys.subtleCrypto ile kullanılacak certificate anahtar çiftini callback hizmetine iletir.
Parametreler
-
sertifika
ArrayBuffer
selectClientCertificatestarafından döndürülenMatchsertifikası. -
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
RsaHashedImportParamsve EC anahtarı içinEcKeyImportParams. 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şturma işlemine tabi tutmaz.Şu anda bu yöntem yalnızca "RSASSA-PKCS1-v1_5" ve "ECDSA" algoritmalarını desteklemektedir.
-
callback
işlev
callbackparametresi şu şekilde görünür:(publicKey: object, privateKey?: object) => void
-
publicKey
nesne
-
privateKey
isteğe bağlı nesne
Bu uzantının erişimi yoksa
nullolabilir.
-
getKeyPairBySpki()
browser.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
publicKeySpkiDer tarafından tanımlanan anahtar çiftini platformKeys.subtleCrypto ile kullanılmak üzere callback hizmetine iletir.
Parametreler
-
publicKeySpkiDer
ArrayBuffer
Örneğin, WebCrypto'nun exportKey işlevini format="spki" ile çağırarak elde edilen, DER ile kodlanmış bir X.509 SubjectPublicKeyInfo.
-
parametreler
nesne
Anahtarın kendisi tarafından düzeltilenlere ek olarak imza ve karma algoritması parametreleri sağlar. WebCrypto'nun importKey işleviyle aynı parametreler kabul edilir (ör. RSASSA-PKCS1-v1_5 anahtarı için
RsaHashedImportParams). RSASSA-PKCS1-v1_5 anahtarları için bir "hash" parametresi{ "hash": { "name": string } }de iletmemiz gerekir. "hash" parametresi, imza öncesinde özet işleminde kullanılacak karma algoritmasının adını temsil eder. Karma adı olarak "none" (hiçbiri) değerini iletebilirsiniz. Bu durumda, imzalama işlevi PKCS#1 v1.5 dolgusunu uygular ancak verilen verileri karma oluşturmaz.Şu anda bu yöntem, adlandırılmış eğri P-256 ile "ECDSA" algoritmasını ve "none", "SHA-1", "SHA-256", "SHA-384" ve "SHA-512" karma algoritmalarından biriyle "RSASSA-PKCS1-v1_5" algoritmasını desteklemektedir.
-
callback
işlev
callbackparametresi şu şekilde görünür:(publicKey: object, privateKey?: object) => void
-
publicKey
nesne
-
privateKey
isteğe bağlı nesne
Bu uzantının erişimi yoksa
nullolabilir.
-
selectClientCertificates()
browser.platformKeys.selectClientCertificates(
details: SelectDetails,
): Promise<Match[]>
Bu yöntem, istemci sertifikaları listesinden platform tarafından bilinen, request ile eşleşen ve uzantının sertifikaya ve özel anahtarına erişim izni olan sertifikaları filtreler. interactive doğru değerine ayarlanırsa kullanıcıya, eşleşen sertifikalar arasından seçim yapabileceği ve uzantıya sertifika erişimi verebileceği bir iletişim kutusu gösterilir. Seçilen/filtrelenen istemci sertifikaları callback uygulamasına iletilir.
Parametreler
-
ayrıntılar
İadeler
-
Promise<Match[]>
Chrome 121 ve sonraki sürümler Chrome 148'den itibaren browser.*
subtleCrypto()
browser.platformKeys.subtleCrypto(): object | undefined
WebCrypto'nun SubtleCrypto uygulamasının bir uygulaması. Bu uzantının kullanabileceği istemci sertifikalarının anahtarları üzerinde kripto işlemlerine olanak tanır.
İadeler
-
object | undefined
verifyTLSServerCertificate()
browser.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
): Promise<VerificationResult>
Platformun güven ayarlarına göre details.serverCertificateChain için details.hostname sertifikasına güvenilip güvenilemeyeceğini 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 doğrular ve bilinen bir CA tarafından güveni kontrol eder. Uygulamanın, EKU serverAuth'a uyması ve konu alternatif adlarını desteklemesi gerekir.
Parametreler
-
ayrıntılar
İadeler
-
Promise<VerificationResult>
Chrome 121 ve sonraki sürümler Chrome 148'den itibaren browser.*