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
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.
-
istek
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 birMatch
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çinEcKeyImportParams
. 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.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()
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
İlerlemeler
-
Promise<Match[]>
Chrome 121 ve sonraki sürümlerVaatler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırmaları kullanması gerekir.
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ımlanmamış
verifyTLSServerCertificate()
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
-
ayrıntılar
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(result: VerificationResult) => void
-
sonuç
-
İlerlemeler
-
Promise<VerificationResult>
Chrome 121 ve sonraki sürümlerVaatler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırmaları kullanması gerekir.