chrome.platformKeys

설명

chrome.platformKeys API를 사용하여 플랫폼에서 관리하는 클라이언트 인증서에 액세스합니다. 사용자 또는 정책이 권한을 부여하면 확장 프로그램이 맞춤 인증 프로토콜에서 이러한 인증서를 사용할 수 있습니다. 예: 이렇게 하면 서드 파티 VPN에서 플랫폼 관리 인증서를 사용할 수 있습니다 (chrome.vpnProvider 참고).

권한

platformKeys

가용성

Chrome 45 이상 에서 확인하세요. ChromeOS만 해당

유형

ClientCertificateRequest

속성

  • certificateAuthorities

    ArrayBuffer[]

    서버에서 허용하는 인증 기관의 고유 이름 목록입니다. 각 항목은 DER로 인코딩된 X.509 DistinguishedName이어야 합니다.

  • certificateTypes

    이 입력란은 요청된 인증서 유형의 목록으로, 서버의 환경설정에 따라 정렬됩니다. 이 목록에 포함된 유형의 인증서만 가져옵니다. 그러나 certificateTypes가 빈 목록인 경우 모든 유형의 인증서가 반환됩니다.

ClientCertificateType

열거형

'rsaSign'

'ecdsaSign'

Match

속성

  • 증명서

    배열 버퍼

    X.509 인증서의 DER 인코딩입니다.

  • keyAlgorithm

    객체

    인증된 키의 KeyAlgorithm입니다. 여기에는 인증서 키에 고유한 알고리즘 매개변수가 포함됩니다 (예: 키 길이). sign 함수에 사용되는 해시 함수와 같은 다른 매개변수는 포함되지 않습니다.

SelectDetails

속성

  • clientCerts

    ArrayBuffer[] 선택사항

    지정하면 selectClientCertificates가 이 목록에서 작동합니다. 그렇지 않으면 이 확장 프로그램에서 사용할 수 있는 플랫폼의 인증서 저장소에서 모든 인증서 목록을 가져옵니다. 확장 프로그램에 권한이 없거나 요청과 일치하지 않는 항목은 삭제됩니다.

  • 양방향

    부울

    true인 경우 사용자에게 필터링된 목록이 표시되어 인증서를 수동으로 선택하고 확장 프로그램에 인증서 및 키에 대한 액세스 권한을 부여합니다. 선택한 인증서만 반환됩니다. false인 경우 확장 프로그램에 액세스 권한이 부여된 모든 인증서로 목록이 자동 또는 수동으로 축소됩니다.

  • 이 요청과 일치하는 인증서만 반환됩니다.

VerificationDetails

속성

  • hostname

    문자열

    인증서를 확인할 서버의 호스트 이름입니다. 예: serverCertificateChain를 제공한 서버입니다.

  • serverCertificateChain

    ArrayBuffer[]

    각 체인 항목은 X.509 인증서의 DER 인코딩이어야 하고, 첫 번째 항목은 서버 인증서여야 하며, 각 항목은 이전 항목을 인증해야 합니다.

VerificationResult

속성

  • debug_errors

    문자열[]

    트러스트 확인에 실패한 경우 이 배열에는 기본 네트워크 계층에서 보고한 오류가 포함됩니다. 그렇지 않으면 이 배열은 비어 있습니다.

    참고: 이 목록은 디버깅용이며 관련 오류 중 일부를 포함하지 않을 수도 있습니다. 반환된 오류는 이 API의 향후 버전에서 변경될 수 있으며 이후 버전 또는 이전 버전과의 호환성이 보장되지 않습니다.

  • 신뢰할 수 있음

    부울

    트러스트 검증의 결과: 주어진 검증 세부정보에 대해 트러스트를 설정할 수 있으면 true이고 어떤 이유로든 트러스트가 거부되면 false입니다.

메서드

getKeyPair()

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)

platformKeys.subtleCrypto와 함께 사용할 certificate 키 쌍을 callback에 전달합니다.

매개변수

  • 증명서

    배열 버퍼

    selectClientCertificates에서 반환한 Match의 인증서입니다.

  • 매개변수

    객체

    키 자체로 고정된 매개변수에 따라 서명/해시 알고리즘 매개변수를 추가로 결정합니다. WebCrypto의 importKey 함수와 동일한 매개변수가 허용됩니다. 예: RSASSA-PKCS1-v1_5 키의 경우 RsaHashedImportParams, EC 키의 경우 EcKeyImportParams입니다. 또한 RSASSA-PKCS1-v1_5 키의 경우 해싱 알고리즘 이름 매개변수를 'none', 'SHA-1', 'SHA-256', 'SHA-384' 또는 'SHA-512' 중 하나로 지정할 수 있습니다. {"hash": { "name": "none" } } 그러면 sign 함수가 PKCS#1 v1.5 패딩을 적용하지만 지정된 데이터를 해싱하지는 않습니다.

    현재 이 메서드는 'RSASSA-PKCS1-v1_5'만 지원합니다. 및 'ECDSA' 사용할 수 있습니다.

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (publicKey: object, privateKey?: object) => void

    • publicKey

      객체

    • privateKey

      객체(선택사항)

      이 확장 프로그램에서 액세스할 수 없는 경우 null일 수 있습니다.

getKeyPairBySpki()

Chrome 85 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)

platformKeys.subtleCrypto와 함께 사용하도록 publicKeySpkiDer로 식별된 키 쌍을 callback에 전달합니다.

매개변수

  • publicKeySpkiDer

    배열 버퍼

    DER로 인코딩된 X.509 SubjectPublicKeyInfo입니다. 예를 들어 format="spki"로 WebCrypto의 exportKey 함수를 호출하여 가져옵니다.

  • 매개변수

    객체

    키 자체로 수정된 매개변수 외에 서명 및 해시 알고리즘 매개변수를 제공합니다. WebCrypto의 importKey 함수와 동일한 매개변수가 허용됩니다. 예: RSASSA-PKCS1-v1_5 키의 경우 RsaHashedImportParams RSASSA-PKCS1-v1_5 키의 경우 'hash'도 전달해야 합니다. 매개변수 { "hash": { "name": string } } '해시' 매개변수는 부호 앞의 다이제스트 작업에서 사용할 해싱 알고리즘의 이름을 나타냅니다. 'none'을 전달할 수도 있습니다. 를 해시 이름으로 사용합니다. 이 경우, 부호 함수는 PKCS#1 v1.5 패딩을 적용하지만 지정된 데이터는 해싱하지 않습니다.

    현재 이 메서드는 'ECDSA' 이름이 지정된 곡선 P-256 및 'RSASSA-PKCS1-v1_5'가 있는 알고리즘 해싱 알고리즘 'none', 'SHA-1', 'SHA-256', 'SHA-384' 및 'SHA-512' 중 하나로 포함됩니다.

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (publicKey: object, privateKey?: object) => void

    • publicKey

      객체

    • privateKey

      객체(선택사항)

      이 확장 프로그램에서 액세스할 수 없는 경우 null일 수 있습니다.

selectClientCertificates()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

이 메서드는 클라이언트 인증서 목록에서 플랫폼에 알려진 인증서, request와 일치하고 확장 프로그램에 인증서 및 비공개 키에 대한 액세스 권한이 있는 인증서를 필터링합니다. interactive이 true인 경우 사용자에게 일치하는 인증서 중에서 선택하고 확장 프로그램에 인증서 액세스 권한을 부여할 수 있는 대화상자가 표시됩니다. 선택/필터링된 클라이언트 인증서가 callback에 전달됩니다.

매개변수

  • 세부정보
  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (matches: Match[]) => void

    • 일치

      요청과 일치하고 확장 프로그램에 대한 권한이 있으며 interactive가 true인 경우 사용자가 선택한 인증서 목록입니다.

반환 값

  • 프로미스<Match[]>

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

이 확장 프로그램에서 사용할 수 있는 클라이언트 인증서 키에 대한 암호화 작업을 허용하는 WebCrypto의 SubtleCrypto 구현입니다.

반환 값

  • object | 정의되지 않음

verifyTLSServerCertificate()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

플랫폼의 신뢰 설정에 따라 details.hostnamedetails.serverCertificateChain을 신뢰할 수 있는지 확인합니다. 참고: 트러스트 확인의 실제 동작은 완전히 지정되지 않았으며 향후 변경될 수 있습니다. API 구현은 인증서 만료를 확인하고, 인증 경로를 검증하며, 알려진 CA의 신뢰를 확인합니다. 구현은 EKU serverAuth를 준수하고 주체 대체 이름을 지원해야 합니다.

매개변수

반환 값

  • Promise&lt;VerificationResult&gt;

    Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.