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
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.
-
istek
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ülenMatch
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ç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ş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.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,
callback?: function,
): 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ümlerPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
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,
callback?: function,
): 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
-
ayrıntılar
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: VerificationResult) => void
-
sonuç
-
İadeler
-
Promise<VerificationResult>
Chrome 121 ve sonraki sürümlerPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.