chrome.enterprise.platformKeys

Açıklama

chrome.enterprise.platformKeys API'yi kullanarak bu anahtarlar için anahtar oluşturun ve sertifikaları yükleyin. Sertifikalar platform tarafından yönetilir ve TLS kimlik doğrulaması, ağ erişimi veya chrome.platformKeys aracılığıyla başka bir uzantı tarafından kullanılabilir.

İzinler

enterprise.platformKeys

Kullanılabilirlik

Yalnızca ChromeOS Politika gerektirir

Kavramlar ve kullanım

Bir istemci sertifikası kaydetmek için bu API'nin tipik kullanımı aşağıdaki adımları izler:

  • Kullanılabilir tüm jetonları enterprise.platformKeys.getTokens() kullanarak alın.

  • "user" değerine eşit id içeren jetonu bulun. Daha sonra bu jetonu kullanın.

  • generateKey() Token yöntemini (SubtleCrypto'da tanımlanır) kullanarak bir anahtar çifti oluşturun. Bu işlem, tutma yerini anahtara döndürür.

  • exportKey() Jetonu yöntemini (SubtleCrypto'da tanımlanır) kullanarak ortak anahtarı dışa aktarın.

  • sign() Jetonu yöntemini (SubtleCrypto'da tanımlanır) kullanarak sertifika isteği verilerinin imzasını oluşturun.

  • Sertifika isteğini tamamlayın ve sertifika yetkilisine gönderin.

  • Sertifika alınmışsa [enterprise.platformKeys.importCertificate()`[3] kullanarak sertifikayı içe aktarın

Sertifika isteğinin oluşturulması ve gönderilmesi dışındaki ana API etkileşimini gösteren bir örneği aşağıda bulabilirsiniz:

function getUserToken(callback) {
  chrome.enterprise.platformKeys.getTokens(function(tokens) {
    for (var i = 0; i < tokens.length; i++) {
      if (tokens[i].id == "user") {
        callback(tokens[i]);
        return;
      }
    }
    callback(undefined);
  });
}

function generateAndSign(userToken) {
  var data = new Uint8Array([0, 5, 1, 2, 3, 4, 5, 6]);
  var algorithm = {
    name: "RSASSA-PKCS1-v1_5",
    // RsaHashedKeyGenParams
    modulusLength: 2048,
    publicExponent:
        new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537
    hash: {
      name: "SHA-256",
    }
  };
  var cachedKeyPair;
  userToken.subtleCrypto.generateKey(algorithm, false, ["sign"])
    .then(function(keyPair) {
            cachedKeyPair = keyPair;
            return userToken.subtleCrypto.exportKey("spki", keyPair.publicKey);
          },
          console.log.bind(console))
    .then(function(publicKeySpki) {
            // Build the Certification Request using the public key.
            return userToken.subtleCrypto.sign(
                {name : "RSASSA-PKCS1-v1_5"}, cachedKeyPair.privateKey, data);
          },
          console.log.bind(console))
    .then(function(signature) {
              // Complete the Certification Request with |signature|.
              // Send out the request to the CA, calling back
              // onClientCertificateReceived.
          },
          console.log.bind(console));
}

function onClientCertificateReceived(userToken, certificate) {
  chrome.enterprise.platformKeys.importCertificate(userToken.id, certificate);
}

getUserToken(generateAndSign);

Türler

Algorithm

Chrome 110 ve sonraki sürümler

Oluşturulacak anahtarın türü.

Enum

"RSA"

"ECDSA"

ChallengeKeyOptions

Chrome 110 ve sonraki sürümler

Özellikler

  • meydan okuma

    ArrayBuffer

    Verified Access Web API'nin bildirdiği meydan okuma.

  • registerKey

    RegisterKeyOptions isteğe bağlı

    Varsa sorgulama anahtarı, belirtilen scope jetonuyla kaydedilir. Daha sonra bu anahtar bir sertifikayla ilişkilendirilebilir ve diğer imzalama anahtarları gibi kullanılabilir. Bu işleve yapılan sonraki çağrılar, belirtilen scope içinde yeni bir Enterprise Anahtarı oluşturur.

  • kapsam

    Hangi Kurumsal Anahtarın zorlanacağı.

RegisterKeyOptions

Chrome 110 ve sonraki sürümler

Özellikler

  • algoritma

    Kayıtlı anahtarın kullanması gereken algoritma.

Scope

Chrome 110 ve sonraki sürümler

Kurumsal Kullanıcı Anahtarı'nın mı yoksa Kurumsal Makine Anahtarı'nın mı kullanılacağı.

Enum

Token

Özellikler

  • id

    dize

    Bu Token öğesini benzersiz olarak tanımlar.

    Statik kimlikler, sırasıyla platformun kullanıcıya özel ve sistem genelindeki donanım jetonunu ifade eden "user" ve "system" şeklindedir. Diğer tüm jetonlar (başka tanımlayıcılarla birlikte) enterprise.platformKeys.getTokens tarafından döndürülebilir.

  • softwareBackedSubtleCrypto

    SubtleCrypto

    Chrome 97 ve sonraki sürümler

    WebCrypto'nun SubtleCrypto arayüzünü uygular. Anahtar oluşturma da dahil olmak üzere şifreleme işlemleri yazılıma dayanır. Anahtarların korunması ve dolayısıyla çıkarılamayan özelliğin uygulanması yazılım içinde yapılır. Bu nedenle, anahtarlar donanım destekli anahtarlara göre daha az korunur.

    Yalnızca modulusLength 2048'e kadar çıkarılamayan RSASSA-PKCS1-V1_5 anahtarları oluşturulabilir. Her anahtar, verileri imzalamak için en fazla bir kez kullanılabilir.

    Belirli bir Token üzerinde oluşturulan anahtarlar başka jetonlarla veya window.crypto.subtle ile kullanılamaz. Aynı şekilde, window.crypto.subtle ile oluşturulan Key nesneleri de bu arayüzle kullanılamaz.

  • subtleCrypto

    SubtleCrypto

    WebCrypto'nun SubtleCrypto arayüzünü uygular. Anahtar oluşturma da dahil olmak üzere şifreleme işlemleri donanım destekli olur.

    Yalnızca modulusLength ile 2048'e kadar çıkarılamayan RSASSA-PKCS1-V1_5 anahtarları ve namedCurve P-256'ya sahip ECDSA anahtarları oluşturulabilir. Her anahtar, verileri imzalamak için en fazla bir kez kullanılabilir.

    Belirli bir Token üzerinde oluşturulan anahtarlar başka jetonlarla veya window.crypto.subtle ile kullanılamaz. Aynı şekilde, window.crypto.subtle ile oluşturulan Key nesneleri de bu arayüzle kullanılamaz.

Yöntemler

challengeKey()

Chrome 110 ve sonraki sürümler
chrome.enterprise.platformKeys.challengeKey(
  options: ChallengeKeyOptions,
  callback: function,
)

challengeMachineKey ve challengeUserKey'a benzer ancak kayıtlı bir anahtarın algoritmasının belirtilmesine olanak tanır. Donanım destekli bir Kurumsal Makine Anahtarı'na müdahale eder ve uzaktan onay protokolünün parçası olarak yanıtı yayar. Yalnızca Chrome OS'te ve hem giriş sorgulaması içeren hem de yanıtları doğrulayan Verified Access Web API ile birlikte kullanılabilir.

Verified Access Web API tarafından başarılı bir şekilde doğrulama, mevcut cihazın meşru bir Chrome OS cihaz olduğunu, geçerli cihazın doğrulama sırasında belirtilen alan adı tarafından yönetildiğini, oturum açmış mevcut kullanıcının doğrulama sırasında belirtilen alan adı tarafından yönetildiğini ve geçerli cihaz durumunun kurumsal cihaz politikasına uygun olduğunu gösteren güçlü bir sinyaldir. Örneğin, bir politika, cihazın geliştirici modunda olmaması gerektiğini belirtebilir. Doğrulamanın yayınladığı tüm cihaz kimlikleri, geçerli cihazın donanımına sıkıca bağlıdır. "user" Kapsamı belirtilirse kimlik, oturum açmış geçerli kullanıcıya da tam olarak bağlanır.

Bu işlev son derece kısıtlıdır ve geçerli cihaz yönetilmiyorsa, geçerli kullanıcı yönetilmiyorsa veya bu işlem kurumsal cihaz politikası tarafından arayan için açıkça etkinleştirilmemişse başarısız olur. Sorgulanan anahtar, "system" veya "user" jetonunda bulunmuyor ve başka bir API tarafından erişilebilir değil.

Parametreler

  • seçenekler

    ChallengeKeyOptions bölümünde tanımlanan alanları içeren nesne.

  • geri çağırma

    işlev

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

    (response: ArrayBuffer) => void

    • yanıt

      ArrayBuffer

      Meydan okuma yanıtı.

challengeMachineKey()

Chrome 50 ve sonraki sürümler Chrome 110'dan bu yana kullanımdan kaldırılmıştır
chrome.enterprise.platformKeys.challengeMachineKey(
  challenge: ArrayBuffer,
  registerKey?: boolean,
  callback: function,
)

Bunun yerine challengeKey alanını kullanın.

Donanım destekli bir Kurumsal Makine Anahtarı'na müdahale eder ve uzaktan onay protokolünün parçası olarak yanıtı yayar. Yalnızca Chrome OS'te ve hem giriş sorgulaması içeren hem de yanıtları doğrulayan Verified Access Web API ile birlikte kullanılabilir. Verified Access Web API'nin başarılı bir şekilde doğrulanması, aşağıdakilerin tamamının güçlü bir göstergesidir: * Geçerli cihaz meşru bir Chrome OS cihazıdır. * Mevcut cihaz, doğrulama sırasında belirtilen alan adı tarafından yönetiliyor. * Oturum açmış durumdaki kullanıcı, doğrulama sırasında belirtilen alan adı tarafından yönetilir. * Mevcut cihaz durumu, kurumsal cihaz politikasına uygun. Örneğin, bir politika, cihazın geliştirici modunda olmaması gerektiğini belirtebilir. * Doğrulamanın sunduğu tüm cihaz kimlikleri, mevcut cihazın donanımına sıkıca bağlıdır. Bu işlev son derece kısıtlıdır ve geçerli cihaz yönetilmiyorsa, geçerli kullanıcı yönetilmiyorsa veya bu işlem kurumsal cihaz politikası tarafından arayan için açıkça etkinleştirilmemişse başarısız olur. Kurumsal Makine Anahtarı, "system" jetonunda bulunmaz ve başka bir API tarafından erişilemez.

Parametreler

  • meydan okuma

    ArrayBuffer

    Verified Access Web API'nin bildirdiği meydan okuma.

  • registerKey

    boole isteğe bağlı

    Chrome 59 ve sonraki sürümler

    Ayarlanırsa mevcut Enterprise Makine Anahtarı, "system" jetonuyla kaydedilir ve Kurumsal Makine Anahtarı rolünü bırakır. Daha sonra bu anahtar bir sertifikayla ilişkilendirilebilir ve diğer imzalama anahtarları gibi kullanılabilir. Bu anahtar 2048 bit RSA'dır. Bu işleve yapılan sonraki çağrılar yeni bir Kurumsal Makine Anahtarı oluşturur.

  • geri çağırma

    işlev

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

    (response: ArrayBuffer) => void

    • yanıt

      ArrayBuffer

      Meydan okuma yanıtı.

challengeUserKey()

Chrome 50 ve sonraki sürümler Chrome 110'dan bu yana kullanımdan kaldırılmıştır
chrome.enterprise.platformKeys.challengeUserKey(
  challenge: ArrayBuffer,
  registerKey: boolean,
  callback: function,
)

Bunun yerine challengeKey alanını kullanın.

Donanım destekli bir Kurumsal Kullanıcı Anahtarı'na müdahale eder ve uzaktan onay protokolünün parçası olarak yanıtı yayar. Yalnızca Chrome OS'te ve hem giriş sorgulaması içeren hem de yanıtları doğrulayan Verified Access Web API ile birlikte kullanılabilir. Verified Access Web API'nin başarılı bir şekilde doğrulanması, aşağıdakilerin tamamının güçlü bir göstergesidir: * Geçerli cihaz meşru bir Chrome OS cihazıdır. * Mevcut cihaz, doğrulama sırasında belirtilen alan adı tarafından yönetiliyor. * Oturum açmış durumdaki kullanıcı, doğrulama sırasında belirtilen alan adı tarafından yönetilir. * Mevcut cihaz durumu, kurumsal kullanıcı politikasına uygun. Örneğin, bir politika, cihazın geliştirici modunda olmaması gerektiğini belirtebilir. * Doğrulamanın yayınladığı ortak anahtar, geçerli cihazın donanımına ve oturum açmış geçerli kullanıcıya bağlıdır. Bu işlev son derece kısıtlıdır ve geçerli cihaz yönetilmiyorsa, geçerli kullanıcı yönetilmiyorsa veya bu işlem kurumsal kullanıcı politikası tarafından arayan için açıkça etkinleştirilmemişse başarısız olur. Kurumsal Kullanıcı Anahtarı, "user" jetonunda bulunmaz ve başka bir API tarafından erişilemez.

Parametreler

  • meydan okuma

    ArrayBuffer

    Verified Access Web API'nin bildirdiği meydan okuma.

  • registerKey

    boolean

    Ayarlanırsa mevcut Enterprise Kullanıcı Anahtarı, "user" jetonuyla kaydedilir ve Kurumsal Kullanıcı Anahtarı rolünü iptal eder. Daha sonra bu anahtar bir sertifikayla ilişkilendirilebilir ve diğer imzalama anahtarları gibi kullanılabilir. Bu anahtar 2048 bit RSA'dır. Bu işleve yapılan sonraki çağrılar yeni bir Enterprise Kullanıcı Anahtarı oluşturur.

  • geri çağırma

    işlev

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

    (response: ArrayBuffer) => void

    • yanıt

      ArrayBuffer

      Meydan okuma yanıtı.

getCertificates()

chrome.enterprise.platformKeys.getCertificates(
  tokenId: string,
  callback: function,
)

Belirtilen jetondan kullanılabilir tüm istemci sertifikalarının listesini döndürür. Belirli bir kimlik doğrulamasında kullanılabilecek istemci sertifikalarının mevcut olup olmadığını ve geçerlilik süresinin sona erip ermediğini kontrol etmek için kullanılabilir.

Parametreler

  • tokenId

    dize

    getTokens tarafından döndürülen jetonun kimliği.

  • geri çağırma

    işlev

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

    (certificates: ArrayBuffer[]) => void

    • certificates

      ArrayBuffer[]

      Her biri bir X.509 sertifikasının DER kodlamasında olan sertifikaların listesi.

getTokens()

chrome.enterprise.platformKeys.getTokens(
  callback: function,
)

Kullanılabilir Jetonları döndürür. Normal bir kullanıcının oturumunda liste her zaman kullanıcının id "user" ile jetonunu içerir. Sistem genelinde bir TPM jetonu varsa döndürülen liste ayrıca id "system" ile birlikte sistem genelinde bir jeton da içerir. Sistem genelindeki jeton, bu cihazdaki tüm oturumlar için aynı olacaktır (ör. Chromebook şeklinde cihaz).

Parametreler

  • geri çağırma

    işlev

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

    (tokens: Token[]) => void

    • jetonlar

      Kullanılabilir jetonların listesi.

importCertificate()

chrome.enterprise.platformKeys.importCertificate(
  tokenId: string,
  certificate: ArrayBuffer,
  callback?: function,
)

Sertifikalı anahtar zaten bu jetonda depolanıyorsa certificate öğesini belirtilen jetona içe aktarır. Başarılı bir sertifika isteği sonrasında, bu işlev, alınan sertifikayı depolamak ve kimlik doğrulama için işletim sistemi ve tarayıcıda kullanılabilir hale getirmek amacıyla kullanılmalıdır.

Parametreler

  • tokenId

    dize

    getTokens tarafından döndürülen jetonun kimliği.

  • sertifika

    ArrayBuffer

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

  • geri çağırma

    işlev isteğe bağlı

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

    () => void

removeCertificate()

chrome.enterprise.platformKeys.removeCertificate(
  tokenId: string,
  certificate: ArrayBuffer,
  callback?: function,
)

Verilen jetondan (varsa) certificate öğesini kaldırır. Eski sertifikaların kimlik doğrulaması sırasında dikkate alınmaması ve sertifika seçimini karmaşık hale getirmemesi için bunları kaldırmak amacıyla kullanılmalıdır. Sertifika deposunda yer açmak için kullanılmalıdır.

Parametreler

  • tokenId

    dize

    getTokens tarafından döndürülen jetonun kimliği.

  • sertifika

    ArrayBuffer

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

  • geri çağırma

    işlev isteğe bağlı

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

    () => void