설명
chrome.platformKeys
API를 사용하여 플랫폼에서 관리하는 클라이언트 인증서에 액세스합니다. 사용자 또는 정책이 권한을 부여하면 확장 프로그램이 맞춤 인증 프로토콜에서 이러한 인증서를 사용할 수 있습니다. 예: 이렇게 하면 서드 파티 VPN에서 플랫폼 관리 인증서를 사용할 수 있습니다 (chrome.vpnProvider 참고).
권한
platformKeys
가용성
유형
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.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()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
이 메서드는 클라이언트 인증서 목록에서 플랫폼에 알려진 인증서, request
와 일치하고 확장 프로그램에 인증서 및 비공개 키에 대한 액세스 권한이 있는 인증서를 필터링합니다. interactive
이 true인 경우 사용자에게 일치하는 인증서 중에서 선택하고 확장 프로그램에 인증서 액세스 권한을 부여할 수 있는 대화상자가 표시됩니다. 선택/필터링된 클라이언트 인증서가 callback
에 전달됩니다.
매개변수
반환 값
-
프로미스<Match[]>
Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
이 확장 프로그램에서 사용할 수 있는 클라이언트 인증서 키에 대한 암호화 작업을 허용하는 WebCrypto의 SubtleCrypto 구현입니다.
반환 값
-
object | 정의되지 않음
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
플랫폼의 신뢰 설정에 따라 details.hostname
의 details.serverCertificateChain
을 신뢰할 수 있는지 확인합니다. 참고: 트러스트 확인의 실제 동작은 완전히 지정되지 않았으며 향후 변경될 수 있습니다. API 구현은 인증서 만료를 확인하고, 인증 경로를 검증하며, 알려진 CA의 신뢰를 확인합니다. 구현은 EKU serverAuth를 준수하고 주체 대체 이름을 지원해야 합니다.
매개변수
-
세부정보
-
콜백
함수 선택사항
callback
매개변수는 다음과 같습니다.(result: VerificationResult) => void
반환 값
-
Promise<VerificationResult>
Chrome 121 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.