chrome.enterprise.platformKeys

Açıklama

Bu anahtarlar için anahtar oluşturmak ve sertifikaları yüklemek için chrome.enterprise.platformKeys API'yi kullanın. Sertifikalar platform tarafından yönetilecek ve TLS kimlik doğrulaması, ağ erişimi veya chrome.platformKeys üzerinden başka bir uzantı tarafından kullanılabilir.

İzinler

enterprise.platformKeys

Kullanılabilirlik

Yalnızca ChromeOS Politika gerektirir

Kavramlar ve kullanım

Genellikle bu API, bir istemci sertifikası kaydettirmek için aşağıdaki adımları uygular:

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

  • "user" değerine eşit id içeren Jetonu bulun. Bu Jetonu daha sonra kullanın.

  • generateKey() Token yöntemini (SubtleCrypto'da tanımlanır) kullanarak bir anahtar çifti oluşturun. Bu işlem herkese açık kullanıcı adını anahtara döndürür.

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

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

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

  • Alınan sertifikalar için [enterprise.platformKeys.importCertificate()"[3]

Sertifika isteğinin oluşturulması ve gönderilmesi hariç önemli API etkileşimini gösteren bir örneği burada 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 tarafından yayınlanan bir sorgulama.

  • registerKey

    RegisterKeyOptions isteğe bağlı

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

  • kapsam

    Hangi Kurumsal Anahtarın zorlanması gerektiği.

RegisterKeyOptions

Chrome 110 ve sonraki sürümler

Özellikler

  • algoritma

    Kayıtlı anahtarın hangi algoritmayı kullanması gerektiği.

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

    Bunu Token benzersiz olarak tanımlar.

    Statik kimlikler sırasıyla platformun kullanıcıya özel ve sistem genelinde donanım jetonunu ("user" ve "system") ifade eder. Diğer jetonlar (diğer tanımlayıcılarla) 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ım destekli. Anahtarların korunması ve dolayısıyla çıkartılamayan özelliklerin uygulanması yazılımda gerçekleştirilir. Bu nedenle anahtarlar, donanım destekli anahtarlara göre daha az korunur.

    Yalnızca modulusLength ile 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 tarafından desteklenir.

    Yalnızca 2048'e kadar modulusLength içeren, çı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 ile benzerdir ancak kayıtlı bir anahtarın algoritmasının belirlenmesine olanak tanır. Donanım destekli Kurumsal Makine Anahtarını zorlar ve uzaktan onay protokolünün parçası olarak yanıt yayınlar. Yalnızca Chrome OS'te ve hem sorgulamada hem de yanıtları doğrulayan Verified Access Web API ile birlikte kullanışlıdır.

Verified Access Web API'nin başarıyla doğrulanması, mevcut cihazın geçerli bir Chrome OS cihazı olduğuna, mevcut cihazın doğrulama sırasında belirtilen alan adı tarafından yönetildiğine, oturum açmış geçerli kullanıcının doğrulama sırasında belirtilen alan adı tarafından yönetildiğine ve geçerli cihaz durumunun kurumsal cihaz politikasına uygun olduğuna dair güçlü bir sinyaldir. Örneğin, bir politikada cihazın geliştirici modunda olmaması gerektiği belirtilebilir. Doğrulama tarafından yayınlanan cihaz kimlikleri, mevcut cihazın donanımına sıkı bir şekilde bağlıdır. "user" Kapsamı belirtilirse kimlik de 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 cihaz politikasına göre arayan için açıkça etkinleştirilmemişse başarısız olur. Talep edilen anahtar, "system" veya "user" jetonunda yer almıyor ve başka hiçbir API'ye bu anahtara erişilemiyor.

Parametreler

  • seçenekler

    ChallengeKeyOptions içinde 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+ Chrome 110'dan itibaren kullanımdan kaldırıldı
chrome.enterprise.platformKeys.challengeMachineKey(
  challenge: ArrayBuffer,
  registerKey?: boolean,
  callback: function,
)

Bunun yerine challengeKey alanını kullanın.

Donanım destekli Kurumsal Makine Anahtarını zorlar ve uzaktan onay protokolünün parçası olarak yanıt yayınlar. Yalnızca Chrome OS'te ve hem sorgulamada hem de yanıtları doğrulayan Verified Access Web API ile birlikte kullanışlıdır. Verified Access Web API tarafından yapılan doğrulama işleminin başarılı olması, aşağıdakilerin tümünün güçlü bir işaretidir: * Geçerli cihaz geçerli bir Chrome OS cihazıdır. * Geçerli cihaz, doğrulama sırasında belirtilen alan adı tarafından yönetiliyor. * Oturum açmış geçerli kullanıcı, doğrulama sırasında belirtilen alan adı tarafından yönetilir. * Cihazın geçerli durumu kurumsal cihaz politikasına uygun olmalıdır. Örneğin, bir politikada cihazın geliştirici modunda olmaması gerektiği belirtilebilir. * Doğrulama tarafından yayınlanan cihaz kimlikleri, mevcut cihazın donanımına sıkı bir şekilde 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ına göre arayan için açıkça etkinleştirilmemişse başarısız olur. Kurumsal Makine Anahtarı, "system" jetonunda yer almaz ve diğer API'ler tarafından erişilemez.

Parametreler

  • meydan okuma

    ArrayBuffer

    Verified Access Web API tarafından yayınlanan bir sorgulama.

  • 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ünden vazgeçir. Bu anahtar daha sonra bir sertifikayla ilişkilendirilebilir ve diğer imzalama anahtarları gibi kullanılabilir. Bu anahtar 2048 bit RSA'dır. Bu işleve yapılacak 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+ Chrome 110'dan itibaren kullanımdan kaldırıldı
chrome.enterprise.platformKeys.challengeUserKey(
  challenge: ArrayBuffer,
  registerKey: boolean,
  callback: function,
)

Bunun yerine challengeKey alanını kullanın.

Donanım destekli Kurumsal Kullanıcı Anahtarını zorlar ve uzaktan onay protokolünün parçası olarak yanıt yayınlar. Yalnızca Chrome OS'te ve hem sorgulamada hem de yanıtları doğrulayan Verified Access Web API ile birlikte kullanışlıdır. Verified Access Web API tarafından yapılan doğrulama işleminin başarılı olması, aşağıdakilerin tümünün güçlü bir işaretidir: * Geçerli cihaz geçerli bir Chrome OS cihazıdır. * Geçerli cihaz, doğrulama sırasında belirtilen alan adı tarafından yönetiliyor. * Oturum açmış geçerli kullanıcı, doğrulama sırasında belirtilen alan adı tarafından yönetilir. * Cihazın geçerli durumu kurumsal kullanıcı politikasına uygun olmalıdır. Örneğin, bir politikada cihazın geliştirici modunda olmaması gerektiği belirtilebilir. * Doğrulama tarafından yayınlanan ortak anahtar, geçerli cihazın donanımına ve o anda oturum açmış 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 yer almaz ve diğer API'ler tarafından erişilemez.

Parametreler

  • meydan okuma

    ArrayBuffer

    Verified Access Web API tarafından yayınlanan bir sorgulama.

  • registerKey

    boolean

    Ayarlanırsa geçerli Enterprise Kullanıcı Anahtarı, "user" jetonuyla kaydedilir ve Kurumsal Kullanıcı Anahtarı rolünden çıkar. Bu anahtar daha sonra bir sertifikayla ilişkilendirilebilir ve diğer imzalama anahtarları gibi kullanılabilir. Bu anahtar 2048 bit RSA'dır. Bu işleve yapılacak sonraki çağrılar yeni bir Kurumsal Kullanıcı Anahtarı oluşturacaktır.

  • 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ılabilen tüm istemci sertifikalarının listesini döndürür. Belirli bir kimlik doğrulama işleminde kullanılabilecek istemci sertifikalarının varlığını ve geçerlilik bitiş tarihini 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 X.509 sertifikasının DER kodlamasına sahip 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" jetonunu içerir. Sistem genelinde bir TPM jetonu varsa döndürülen listede id "system" ile sistem genelindeki jetonu da içerir. Sistem genelindeki jeton bu cihazdaki tüm oturumlar için aynı olacaktır (ör. Chromebook'taki 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,
)

Onaylı anahtar bu jetonda zaten depolanmışsa certificate öğesini verilen jetona içe aktarır. Başarılı bir sertifikasyon isteğinden sonra, alınan sertifikayı depolamak ve kimlik doğrulama için işletim sistemi ve tarayıcı tarafından kullanılabilir hale getirmek için bu işlev kullanılmalıdır.

Parametreler

  • tokenId

    dize

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

  • sertifika

    ArrayBuffer

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

  • geri çağırma

    Functions (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 certificate varsa bunu kaldırır. Kimlik doğrulama sırasında dikkate alınmamaları ve sertifika seçimini karıştırmaması için eski sertifikaları kaldırmak için kullanılmalıdır. Sertifika deposundaki depolama alanında yer açmak için kullanılmalıdır.

Parametreler

  • tokenId

    dize

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

  • sertifika

    ArrayBuffer

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

  • geri çağırma

    Functions (isteğe bağlı)

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

    ()=>void