See also translations.
Copyright © 2025 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
이 문서는 W3C Securing Verifiable Credentials using JOSE and COSE의 한국어 번역본입니다.
이 문서에 오역 및 오타를 포함할 수 있습니다.
영어 원문만이 공식적이고 규범적인 효력을 가지고 있습니다.
문의나 개선사항은
깃헙 링크나
lukas.j.han@gmail.com로
연락주시기 바랍니다.
원문작성일: 2025-05-15
최초번역일: 2026-07-17
최종수정일: 2026-07-18
이 규격은 검증가능한 크리덴셜 데이터 모델 [VC-DATA-MODEL-2.0]을 따르는 크리덴셜과 프레젠테이션을 JSON Object Signing and Encryption (JOSE), Selective Disclosure for JWTs [SD-JWT], CBOR Object Signing and Encryption (COSE) [RFC9052]으로 보안하는 방법을 정의한다. 이를 통해 검증가능한 크리덴셜 데이터 모델 [VC-DATA-MODEL-2.0]을 널리 채택된 서명 및 암호화 표준으로 구현할 수 있다.
이 절은 발행 시점의 이 문서의 상태를 기술한다. 현재 W3C 발행물 목록과 이 기술 보고서의 최신 개정판은 https://www.w3.org/TR/ 의 W3C 표준 및 초안 색인에서 확인할 수 있다.
워킹 그룹은 이 규격에 대한 구현 피드백을 적극적으로 구하고 있다. 후보 권고안 (Candidate Recommendation) 단계를 벗어나기 위해, 워킹 그룹은 이 규격의 각 필수 기능에 대해 최소 두 개의 독립적인 구현을 요건으로 설정하였다. 적합성 테스트 절차에 대한 자세한 내용은 구현 보고서에 나열된 테스트 스위트를 참고한다.
이 문서는 Verifiable Credentials Working Group이 권고안 트랙(Recommendation track)을 사용하여 권고안(Recommendation)으로 발행하였다.
W3C는 이 규격을 웹의 표준으로 널리 배포할 것을 권장한다.
W3C 권고안이란 폭넓은 합의 형성을 거쳐 W3C와 그 회원사가 승인하고, 워킹 그룹 구성원들이 구현에 대해 로열티 없는 라이선스를 제공하기로 약속한 규격이다.
이 문서는 W3C 특허 정책(Patent Policy) 아래 운영되는 그룹이 작성하였다. W3C는 그 그룹의 산출물과 관련하여 이루어진 특허 공개의 공개 목록을 유지한다. 그 페이지에는 특허를 공개하는 방법에 대한 안내도 포함되어 있다. 필수 청구항(Essential Claim)을 포함한다고 믿는 특허를 실제로 알고 있는 개인은 W3C 특허 정책 6절에 따라 그 정보를 공개해야 한다.
이 문서는 2023년 11월 3일자 W3C 프로세스 문서(Process Document)의 적용을 받는다.
이 규격은 [VC-DATA-MODEL-2.0]에 기술된 검증가능한 크리덴셜과 검증가능한 프레젠테이션을 표현하는 미디어 타입을, IETF의 JOSE, OAuth, COSE 워킹 그룹이 정의한 방식을 사용하여 보안하는 방법을 정의한다. 여기에는 JSON Web Signature(JWS) [RFC7515], Selective Disclosure for JWTs [SD-JWT], CBOR Object Signing and Encryption(COSE) [RFC9052]가 포함된다. 이 규격은 콘텐츠 타입 [RFC6838]을 사용하여 [VC-DATA-MODEL-2.0]을 따르는 비보안 문서의 데이터 타입과 [VC-DATA-MODEL-2.0]을 따르는 보안 문서의 데이터 타입을 구별한다.
JSON Web Signature(JWS) [RFC7515]는 JSON 기반 데이터 구조를 사용하여 JSON 문서를 포함한 문서에 디지털 서명을 하는 표준 수단을 정의한다. 이는 문서에 담긴 정보의 무결성, 진위성, 부인 방지를 보장하는 수단을 제공한다. Selective Disclosure for JWTs(SD-JWT) [SD-JWT]는 JWS를 기반으로 하며, 문서 요소의 선택적 공개를 가능하게 하는 메커니즘도 추가로 제공한다. 이러한 속성 덕분에 JWS와 SD-JWT는 [VC-DATA-MODEL-2.0]을 따르는 문서를 보안하는 데 특히 적합하다.
CBOR Object Signing and Encryption(COSE) [RFC9052]는 Concise Binary Object Representation(CBOR) [RFC8949]을 사용하여 디지털 서명된 데이터 구조를 표현하는 표준 수단을 정의한다. JWS와 마찬가지로 COSE는 정보의 무결성, 진위성, 기밀성을 보호하는 표준화된 방법을 제공한다. COSE는 유연하고 확장가능한 암호 옵션 집합을 제공하여, 서명과 암호화에 다양한 알고리즘을 사용할 수 있게 한다.
COSE는 서명과 암호화라는 두 가지 주요 연산을 지원한다. 서명의 경우, COSE는 RSA, ECDSA, EdDSA 등 다양한 알고리즘을 사용하여 CBOR 데이터에 대한 디지털 서명을 생성할 수 있게 한다. 이러한 서명은 데이터 무결성과 진위성을 보증한다. COSE는 암호화도 지원하여, 대칭 또는 비대칭 암호화 알고리즘으로 CBOR 데이터를 암호화함으로써 기밀성을 확보할 수 있게 한다.
비규범적이라고 표시된 절뿐 아니라, 이 규격의 모든 저작 지침, 다이어그램, 예시, 참고(note)도 비규범적이다. 이 규격의 그 밖의 모든 것은 규범적이다.
이 문서의 핵심 단어 MAY, MUST, MUST NOT, NOT RECOMMENDED, RECOMMENDED, SHOULD, SHOULD NOT는 여기에 표시된 것처럼 모두 대문자로 나타날 때에만 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석된다.
적합 JWS 문서(conforming JWS document)란 3.1 JOSE 사용 절의 모든 "MUST" 진술을 준수하는 문서이다.
적합 JWS 발급자 구현(conforming JWS issuer implementation)은 적합 JWS 문서를 생성하며, 3.1 JOSE 사용 절에 기술된 대로 이를 보안해야 한다.
적합 JWS 검증자 구현(conforming JWS verifier implementation)은 3.1 JOSE 사용 절에 기술된 대로 적합 JWS 문서를 검증한다.
적합 SD-JWT 문서(conforming SD-JWT document)란 3.2 SD-JWT 사용 절의 모든 "MUST" 진술을 준수하는 문서이다.
적합 SD-JWT 발급자 구현(conforming SD-JWT issuer implementation)은 적합 SD-JWT 문서를 생성하며, 3.2 SD-JWT 사용 절에 기술된 대로 이를 보안해야 한다.
적합 SD-JWT 검증자 구현(conforming SD-JWT verifier implementation)은 3.2 SD-JWT 사용 절에 기술된 대로 적합 SD-JWT 문서를 검증한다.
적합 COSE 문서(conforming COSE document)란 3.3 COSE 사용 절의 모든 "MUST" 진술을 준수하는 문서이다.
적합 COSE 발급자 구현(conforming COSE issuer implementation)은 적합 COSE 문서를 생성하며, 3.3 COSE 사용 절에 기술된 대로 이를 보안해야 한다.
적합 COSE 검증자 구현(conforming COSE verifier implementation)은 3.3 COSE 사용 절에 기술된 대로 적합 COSE 문서를 검증한다.
검증가능한 크리덴셜 데이터 모델 v2.0은
enveloping proof 적용을 통해 JSON 및 CBOR 클레임을
보안하기 위해 이 규격이 취하는 접근 방식을 기술한다.
이 규격은 다양한 enveloping proof 메커니즘을 사용하여 서로 다른
데이터 구조를 보안하는 방법을 정의한다:
검증가능한 크리덴셜의 맥락에서:
모든 경우에 검증가능한 크리덴셜 또는 프레젠테이션의 기저 데이터 모델은 [VC-DATA-MODEL-2.0]과 일관되게 유지되지만, 인코딩과 보안 메커니즘은 다르다.
보안 메커니즘의 규범적 진술은
application/vc+jwt와
application/vp+jwt,
application/vc+sd-jwt와
application/vp+sd-jwt,
application/vc+cose와
application/vp+cose의 보안에 적용된다.
JSON Web Token 구현자는 Implementation Requirements를 검토할 것을 권고받는다.
JWT의 발급자, 보유자, 검증자는 [VC-DATA-MODEL-2.0]을
보안하기 위해 JSON Web Token을 사용할 때
"alg": "none" JSON Web Token 헤더 파라미터 설정의 효과를
이해해야 한다. [VC-DATA-MODEL-2.0]의
콘텐츠 타입이 JSON Web Token을 사용하여 보안될 때,
"alg": "none" 헤더 파라미터 설정은
JWT Claims Set으로 인코딩된 검증가능한 크리덴셜 또는 검증가능한
프레젠테이션이 무결성 보호를 갖지 않음을 알리는 데 사용된다.
발급자, 보유자, 검증자는 무결성 보호가 없는 모든 JWT Claims Set을 무시해야 한다.
JWT Claim Name vc와 vp는
검증가능한 크리덴셜 또는 검증가능한 프레젠테이션을 구성하는
어떤 JWT Claims Set에도 존재해서는 안 된다.
이 규격은 IETF 초안 [SD-JWT]에 정의된 Selective Disclosure for JWTs(SD-JWT)를 사용한다. 구현자는 SD-JWT 형식과 처리 요구사항의 전체 세부사항에 대해 이 초안을 참조하는 것이 좋다.
이 절은 이 규격에서 사용하는 용어를 정의한다. 이 용어들이 이 규격에 등장할 때마다 그 용어로의 링크가 포함된다.
이 절은 JOSE, SD-JWT, COSE를 사용하여 [VC-DATA-MODEL-2.0]을 따르는 문서를 보안하는 방법을 개괄한다.
[VC-DATA-MODEL-2.0]을 따르는 문서와 그와 관련된 미디어 타입은 링크드 데이터를 기술하기 위한 확장가능한 형식인 JSON-LD에 의존한다. JSON-LD Relationship to RDF를 참고한다.
이 접근 방식의 이점은, 어떤 매핑이나 변환 없이도 페이로드를 [VC-DATA-MODEL-2.0]에 직접 부합하도록 만들 수 있으면서, 동시에 JOSE, SD-JWT, COSE의 맥락에서 이해되는 등록된 헤더 파라미터와 클레임을 지원한다는 점이다.
검증가능한 크리덴셜과 검증가능한 프레젠테이션을 다른 종류의 보안된 JSON 또는 CBOR와 구별하기 위해 미디어 타입을 사용하는 것이 권장된다.
더 일반적인 미디어 타입(또는 상위 타입) 대신, 사용 가능한 가장 구체적인
미디어 타입(또는 하위 타입)을 사용하는 것이 좋다. 예를 들어,
보안된 봉투 형식을 훨씬 더 잘 식별하는 더 구체적인 미디어 타입이 없는 한,
일반적인 application/sd-jwt보다는
application/vc+sd-jwt를 사용하는 것이 좋다.
구현이 어떤 미디어 타입을 사용해야 할지 모르는 경우, 이 규격에 정의된 미디어 타입을 사용해야 한다.
이 절은 JOSE를 사용하여 [VC-DATA-MODEL-2.0]을 따르는 검증가능한 크리덴셜을 보안하는 방법을 상세히 설명한다.
적합 JWS 발급자 구현은 이 미디어 타입을 보안하기 위해 [RFC7515]를 사용해야 한다. 보안되지 않은 검증가능한 크리덴셜이 인코딩되지 않은 JWS 페이로드이다.
typ 헤더 파라미터는 vc+jwt인 것이 좋다.
존재하는 경우, cty 헤더 파라미터는
vc인 것이 좋다.
cty 헤더 파라미터 값은 vc+jwt를 사용할 때 서로 다른
유형의 보안된 콘텐츠를 구별하는 데 사용할 수 있다.
content type 헤더 파라미터는 선택 사항이며, 사용 가능한 경우
application/vc보다 더 구체적인 미디어 타입을 표현하는 데 사용할 수 있다.
typ과 cty의 사용에 관한 추가 세부사항은
Registered Header Parameter Names를 참고한다.
적합 JWS 검증자 구현은 이 미디어 타입을 사용하는 적합 JWS 문서를 검증하기 위해 [RFC7515]를 사용해야 한다.
보안되지 않은 채널로 전송할 때 보안된 검증가능한 크리덴셜을 암호화하기 위해, 구현자는 [RFC7519]의 Nested JWTs 설명에 따라 보안된 검증가능한 크리덴셜을 JWE의 평문 페이로드로 중첩하여 JSON Web Encryption(JWE) [RFC7516]을 사용할 수 있다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential", "ExamplePersonCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
},
"alumniOf": {
"name": "Example University"
}
},
"credentialSchema": [{
"id": "https://example.org/examples/degree.json",
"type": "JsonSchema"
},
{
"id": "https://example.org/examples/alumni.json",
"type": "JsonSchema"
}]
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential",
"ExamplePersonCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
},
"alumniOf": {
"name": "Example University"
}
},
"credentialSchema": [
{
"id": "https://example.org/examples/degree.json",
"type": "JsonSchema"
},
{
"id": "https://example.org/examples/alumni.json",
"type": "JsonSchema"
}
]
}
application/vc+jwt
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
이 절은 JOSE를 사용하여 [VC-DATA-MODEL-2.0]을 따르는 검증가능한 프레젠테이션을 보안하는 방법을 상세히 설명한다.
적합 JWS 발급자 구현은 이 미디어 타입을 보안하기 위해 [RFC7515]를 사용해야 한다. 보안되지 않은 검증가능한 프레젠테이션이 인코딩되지 않은 JWS 페이로드이다.
typ 헤더 파라미터는 vp+jwt인 것이 좋다.
존재하는 경우, cty 헤더 파라미터는
vp인 것이 좋다.
cty 헤더 파라미터 값은 vp+jwt를 사용할 때 서로 다른
유형의 보안된 콘텐츠를 구별하는 데 사용할 수 있다.
content type 헤더 파라미터는 선택 사항이며, 사용 가능한 경우
application/vc보다 더 구체적인 미디어 타입을 표현하는 데 사용할 수 있다.
typ과 cty의 사용에 관한 추가 세부사항은
Registered Header Parameter Names를 참고한다.
적합 JWS 검증자 구현은 이 미디어 타입을 사용하는 적합 JWS 문서를 검증하기 위해 [RFC7515]를 사용해야 한다.
검증가능한 프레젠테이션 안에서 보안되는 검증가능한 크리덴셜은 [VC-DATA-MODEL-2.0]에 정의된 Enveloped Verifiable Credential 타입을 사용해야 한다.
검증가능한 프레젠테이션 안의 검증가능한 프레젠테이션은 [VC-DATA-MODEL-2.0]에 정의된 Enveloped Verifiable Presentation 타입을 사용해야 한다.
검증가능한 프레젠테이션 안의 크리덴셜은 보안되어야 한다. 이 경우, 이 크리덴셜들은 JWS를 사용하여 보안된다.
보안되지 않은 채널로 전송할 때 보안된 검증가능한 프레젠테이션을 암호화하기 위해, 구현자는 [RFC7519]의 Nested JWTs 설명에 따라 보안된 검증가능한 프레젠테이션을 JWE의 평문 페이로드로 중첩하여 JSON Web Encryption(JWE) [RFC7516]을 사용할 수 있다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [{
"@context": ["https://www.w3.org/ns/credentials/v2"],
"type": ["EnvelopedVerifiableCredential"],
"id": "data:application/vc+jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMzODQifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzE4NzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZUFsdW1uaUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL2V4YW1wbGUub3JnL2V4YW1wbGVzL2RlZ3JlZS5qc29uIiwidHlwZSI6Ikpzb25TY2hlbWEifSwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6ZXhhbXBsZToxMjMiLCJkZWdyZWUiOnsidHlwZSI6IkJhY2hlbG9yRGVncmVlIiwibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMifX19.d2k4O3FytQJf83kLh-HsXuPvh6yeOlhJELVo5TF71gu7elslQyOf2ZItAXrtbXF4Kz9WivNdztOayz4VUQ0Mwa8yCDZkP9B2pH-9S_tcAFxeoeJ6Z4XnFuL_DOfkR1fP"
}]
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vp
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMzODQifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzE4NzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZUFsdW1uaUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL2V4YW1wbGUub3JnL2V4YW1wbGVzL2RlZ3JlZS5qc29uIiwidHlwZSI6Ikpzb25TY2hlbWEifSwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6ZXhhbXBsZToxMjMiLCJkZWdyZWUiOnsidHlwZSI6IkJhY2hlbG9yRGVncmVlIiwibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMifX19.d2k4O3FytQJf83kLh-HsXuPvh6yeOlhJELVo5TF71gu7elslQyOf2ZItAXrtbXF4Kz9WivNdztOayz4VUQ0Mwa8yCDZkP9B2pH-9S_tcAFxeoeJ6Z4XnFuL_DOfkR1fP;data:application/vc+jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMzODQifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzE4NzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZUFsdW1uaUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL2V4YW1wbGUub3JnL2V4YW1wbGVzL2RlZ3JlZS5qc29uIiwidHlwZSI6Ikpzb25TY2hlbWEifSwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6ZXhhbXBsZToxMjMiLCJkZWdyZWUiOnsidHlwZSI6IkJhY2hlbG9yRGVncmVlIiwibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMifX19.d2k4O3FytQJf83kLh-HsXuPvh6yeOlhJELVo5TF71gu7elslQyOf2ZItAXrtbXF4Kz9WivNdztOayz4VUQ0Mwa8yCDZkP9B2pH-9S_tcAFxeoeJ6Z4XnFuL_DOfkR1fP",
"type": "EnvelopedVerifiableCredential"
}
]
}
application/vp+jwt
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "EnvelopedVerifiablePresentation",
"id": "data:application/vp+jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwidHlwZSI6IlZlcmlmaWFibGVQcmVzZW50YXRpb24iLCJ2ZXJpZmlhYmxlQ3JlZGVudGlhbCI6W3siQGNvbnRleHQiOiJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJpZCI6ImRhdGE6YXBwbGljYXRpb24vdmMrand0LGV5SnJhV1FpT2lKRmVFaHJRazFYT1dadFltdDJWakkyTm0xU2NIVlFNbk5WV1Y5T1gwVlhTVTR4YkdGd1ZYcFBPSEp2SWl3aVlXeG5Jam9pUlZNek9EUWlmUS5leUpBWTI5dWRHVjRkQ0k2V3lKb2RIUndjem92TDNkM2R5NTNNeTV2Y21jdmJuTXZZM0psWkdWdWRHbGhiSE12ZGpJaUxDSm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3Zibk12WTNKbFpHVnVkR2xoYkhNdlpYaGhiWEJzWlhNdmRqSWlYU3dpYVdRaU9pSm9kSFJ3T2k4dmRXNXBkbVZ5YzJsMGVTNWxlR0Z0Y0d4bEwyTnlaV1JsYm5ScFlXeHpMekU0TnpJaUxDSjBlWEJsSWpwYklsWmxjbWxtYVdGaWJHVkRjbVZrWlc1MGFXRnNJaXdpUlhoaGJYQnNaVUZzZFcxdWFVTnlaV1JsYm5ScFlXd2lYU3dpYVhOemRXVnlJam9pYUhSMGNITTZMeTkxYm1sMlpYSnphWFI1TG1WNFlXMXdiR1V2YVhOemRXVnljeTgxTmpVd05Ea2lMQ0oyWVd4cFpFWnliMjBpT2lJeU1ERXdMVEF4TFRBeFZERTVPakl6T2pJMFdpSXNJbU55WldSbGJuUnBZV3hUWTJobGJXRWlPbnNpYVdRaU9pSm9kSFJ3Y3pvdkwyVjRZVzF3YkdVdWIzSm5MMlY0WVcxd2JHVnpMMlJsWjNKbFpTNXFjMjl1SWl3aWRIbHdaU0k2SWtwemIyNVRZMmhsYldFaWZTd2lZM0psWkdWdWRHbGhiRk4xWW1wbFkzUWlPbnNpYVdRaU9pSmthV1E2WlhoaGJYQnNaVG94TWpNaUxDSmtaV2R5WldVaU9uc2lkSGx3WlNJNklrSmhZMmhsYkc5eVJHVm5jbVZsSWl3aWJtRnRaU0k2SWtKaFkyaGxiRzl5SUc5bUlGTmphV1Z1WTJVZ1lXNWtJRUZ5ZEhNaWZYMTkuZDJrNE8zRnl0UUpmODNrTGgtSHNYdVB2aDZ5ZU9saEpFTFZvNVRGNzFndTdlbHNsUXlPZjJaSXRBWHJ0YlhGNEt6OVdpdk5kenRPYXl6NFZVUTBNd2E4eUNEWmtQOUIycEgtOVNfdGNBRnhlb2VKNlo0WG5GdUxfRE9ma1IxZlA7ZGF0YTphcHBsaWNhdGlvbi92Yytqd3QsZXlKcmFXUWlPaUpGZUVoclFrMVhPV1p0WW10MlZqSTJObTFTY0hWUU1uTlZXVjlPWDBWWFNVNHhiR0Z3VlhwUE9ISnZJaXdpWVd4bklqb2lSVk16T0RRaWZRLmV5SkFZMjl1ZEdWNGRDSTZXeUpvZEhSd2N6b3ZMM2QzZHk1M015NXZjbWN2Ym5NdlkzSmxaR1Z1ZEdsaGJITXZkaklpTENKb2RIUndjem92TDNkM2R5NTNNeTV2Y21jdmJuTXZZM0psWkdWdWRHbGhiSE12WlhoaGJYQnNaWE12ZGpJaVhTd2lhV1FpT2lKb2RIUndPaTh2ZFc1cGRtVnljMmwwZVM1bGVHRnRjR3hsTDJOeVpXUmxiblJwWVd4ekx6RTROeklpTENKMGVYQmxJanBiSWxabGNtbG1hV0ZpYkdWRGNtVmtaVzUwYVdGc0lpd2lSWGhoYlhCc1pVRnNkVzF1YVVOeVpXUmxiblJwWVd3aVhTd2lhWE56ZFdWeUlqb2lhSFIwY0hNNkx5OTFibWwyWlhKemFYUjVMbVY0WVcxd2JHVXZhWE56ZFdWeWN5ODFOalV3TkRraUxDSjJZV3hwWkVaeWIyMGlPaUl5TURFd0xUQXhMVEF4VkRFNU9qSXpPakkwV2lJc0ltTnlaV1JsYm5ScFlXeFRZMmhsYldFaU9uc2lhV1FpT2lKb2RIUndjem92TDJWNFlXMXdiR1V1YjNKbkwyVjRZVzF3YkdWekwyUmxaM0psWlM1cWMyOXVJaXdpZEhsd1pTSTZJa3B6YjI1VFkyaGxiV0VpZlN3aVkzSmxaR1Z1ZEdsaGJGTjFZbXBsWTNRaU9uc2lhV1FpT2lKa2FXUTZaWGhoYlhCc1pUb3hNak1pTENKa1pXZHlaV1VpT25zaWRIbHdaU0k2SWtKaFkyaGxiRzl5UkdWbmNtVmxJaXdpYm1GdFpTSTZJa0poWTJobGJHOXlJRzltSUZOamFXVnVZMlVnWVc1a0lFRnlkSE1pZlgxOS5kMms0TzNGeXRRSmY4M2tMaC1Ic1h1UHZoNnllT2xoSkVMVm81VEY3MWd1N2Vsc2xReU9mMlpJdEFYcnRiWEY0S3o5V2l2TmR6dE9heXo0VlVRME13YTh5Q0Raa1A5QjJwSC05U190Y0FGeGVvZUo2WjRYbkZ1TF9ET2ZrUjFmUCIsInR5cGUiOiJFbnZlbG9wZWRWZXJpZmlhYmxlQ3JlZGVudGlhbCJ9XX0.DiZfXw5jTXeDBobq5ZdcL3S3o8mioZJlqo3iHDtLcEww5L_n2ZJfAJU-a-SmqvMYM--7w4CmeOfq890UGsg_aQ"
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vp
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "EnvelopedVerifiablePresentation",
"id": "data:application/vp+jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwidHlwZSI6IlZlcmlmaWFibGVQcmVzZW50YXRpb24iLCJ2ZXJpZmlhYmxlQ3JlZGVudGlhbCI6W3siQGNvbnRleHQiOiJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJpZCI6ImRhdGE6YXBwbGljYXRpb24vdmMrand0LGV5SnJhV1FpT2lKRmVFaHJRazFYT1dadFltdDJWakkyTm0xU2NIVlFNbk5WV1Y5T1gwVlhTVTR4YkdGd1ZYcFBPSEp2SWl3aVlXeG5Jam9pUlZNek9EUWlmUS5leUpBWTI5dWRHVjRkQ0k2V3lKb2RIUndjem92TDNkM2R5NTNNeTV2Y21jdmJuTXZZM0psWkdWdWRHbGhiSE12ZGpJaUxDSm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3Zibk12WTNKbFpHVnVkR2xoYkhNdlpYaGhiWEJzWlhNdmRqSWlYU3dpYVdRaU9pSm9kSFJ3T2k4dmRXNXBkbVZ5YzJsMGVTNWxlR0Z0Y0d4bEwyTnlaV1JsYm5ScFlXeHpMekU0TnpJaUxDSjBlWEJsSWpwYklsWmxjbWxtYVdGaWJHVkRjbVZrWlc1MGFXRnNJaXdpUlhoaGJYQnNaVUZzZFcxdWFVTnlaV1JsYm5ScFlXd2lYU3dpYVhOemRXVnlJam9pYUhSMGNITTZMeTkxYm1sMlpYSnphWFI1TG1WNFlXMXdiR1V2YVhOemRXVnljeTgxTmpVd05Ea2lMQ0oyWVd4cFpFWnliMjBpT2lJeU1ERXdMVEF4TFRBeFZERTVPakl6T2pJMFdpSXNJbU55WldSbGJuUnBZV3hUWTJobGJXRWlPbnNpYVdRaU9pSm9kSFJ3Y3pvdkwyVjRZVzF3YkdVdWIzSm5MMlY0WVcxd2JHVnpMMlJsWjNKbFpTNXFjMjl1SWl3aWRIbHdaU0k2SWtwemIyNVRZMmhsYldFaWZTd2lZM0psWkdWdWRHbGhiRk4xWW1wbFkzUWlPbnNpYVdRaU9pSmthV1E2WlhoaGJYQnNaVG94TWpNaUxDSmtaV2R5WldVaU9uc2lkSGx3WlNJNklrSmhZMmhsYkc5eVJHVm5jbVZsSWl3aWJtRnRaU0k2SWtKaFkyaGxiRzl5SUc5bUlGTmphV1Z1WTJVZ1lXNWtJRUZ5ZEhNaWZYMTkuZDJrNE8zRnl0UUpmODNrTGgtSHNYdVB2aDZ5ZU9saEpFTFZvNVRGNzFndTdlbHNsUXlPZjJaSXRBWHJ0YlhGNEt6OVdpdk5kenRPYXl6NFZVUTBNd2E4eUNEWmtQOUIycEgtOVNfdGNBRnhlb2VKNlo0WG5GdUxfRE9ma1IxZlA7ZGF0YTphcHBsaWNhdGlvbi92Yytqd3QsZXlKcmFXUWlPaUpGZUVoclFrMVhPV1p0WW10MlZqSTJObTFTY0hWUU1uTlZXVjlPWDBWWFNVNHhiR0Z3VlhwUE9ISnZJaXdpWVd4bklqb2lSVk16T0RRaWZRLmV5SkFZMjl1ZEdWNGRDSTZXeUpvZEhSd2N6b3ZMM2QzZHk1M015NXZjbWN2Ym5NdlkzSmxaR1Z1ZEdsaGJITXZkaklpTENKb2RIUndjem92TDNkM2R5NTNNeTV2Y21jdmJuTXZZM0psWkdWdWRHbGhiSE12WlhoaGJYQnNaWE12ZGpJaVhTd2lhV1FpT2lKb2RIUndPaTh2ZFc1cGRtVnljMmwwZVM1bGVHRnRjR3hsTDJOeVpXUmxiblJwWVd4ekx6RTROeklpTENKMGVYQmxJanBiSWxabGNtbG1hV0ZpYkdWRGNtVmtaVzUwYVdGc0lpd2lSWGhoYlhCc1pVRnNkVzF1YVVOeVpXUmxiblJwWVd3aVhTd2lhWE56ZFdWeUlqb2lhSFIwY0hNNkx5OTFibWwyWlhKemFYUjVMbVY0WVcxd2JHVXZhWE56ZFdWeWN5ODFOalV3TkRraUxDSjJZV3hwWkVaeWIyMGlPaUl5TURFd0xUQXhMVEF4VkRFNU9qSXpPakkwV2lJc0ltTnlaV1JsYm5ScFlXeFRZMmhsYldFaU9uc2lhV1FpT2lKb2RIUndjem92TDJWNFlXMXdiR1V1YjNKbkwyVjRZVzF3YkdWekwyUmxaM0psWlM1cWMyOXVJaXdpZEhsd1pTSTZJa3B6YjI1VFkyaGxiV0VpZlN3aVkzSmxaR1Z1ZEdsaGJGTjFZbXBsWTNRaU9uc2lhV1FpT2lKa2FXUTZaWGhoYlhCc1pUb3hNak1pTENKa1pXZHlaV1VpT25zaWRIbHdaU0k2SWtKaFkyaGxiRzl5UkdWbmNtVmxJaXdpYm1GdFpTSTZJa0poWTJobGJHOXlJRzltSUZOamFXVnVZMlVnWVc1a0lFRnlkSE1pZlgxOS5kMms0TzNGeXRRSmY4M2tMaC1Ic1h1UHZoNnllT2xoSkVMVm81VEY3MWd1N2Vsc2xReU9mMlpJdEFYcnRiWEY0S3o5V2l2TmR6dE9heXo0VlVRME13YTh5Q0Raa1A5QjJwSC05U190Y0FGeGVvZUo2WjRYbkZ1TF9ET2ZrUjFmUCIsInR5cGUiOiJFbnZlbG9wZWRWZXJpZmlhYmxlQ3JlZGVudGlhbCJ9XX0.DiZfXw5jTXeDBobq5ZdcL3S3o8mioZJlqo3iHDtLcEww5L_n2ZJfAJU-a-SmqvMYM--7w4CmeOfq890UGsg_aQ"
}
application/vp+jwt
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
구현은 JWS compact serialization을 지원해야 한다. JWS JSON serialization의 사용은 권장되지 않는다.
이 부분은 비규범적입니다.
JOSE Header 또는 JWT Claims Set에 존재하는 경우, IANA JSON Web Token Claims 레지스트리 또는 IANA JSON Web Signature and Encryption Header Parameters 레지스트리에 등록된 멤버는 해당 레지스트리에서 참조하는 규격에 정의된 대로 해석된다.
Registered Header Parameter Names, JOSE Header, Replicating Claims as Header Parameters의 규범적 진술은 크리덴셜과 프레젠테이션의 보안에 적용된다.
인코딩되지 않은 JOSE Header는 JSON-LD(application/ld+json)가 아니라
JSON(application/json)이다.
[VC-DATA-MODEL-2.0]에 정의된 멤버와 혼동될 수 있는
클레임과 헤더 파라미터를 식별하기 위해 IANA
JSON Web Token Claims
레지스트리와 IANA
JSON Web Signature and Encryption Header Parameters
레지스트리를 사용하는 것이 권장된다.
여기에는 iss,
kid, alg, iat,
exp, cnf 등이 포함되지만 이에 국한되지 않는다.
iat(Issued At) 및/또는
exp(Expiration Time) JWT 클레임이 존재하는 경우, 이들은
각각 서명의 발급 시각과 만료 시각을 나타낸다.
이는 Validity Period에 정의된
validFrom과 validUntil 속성과 다르며, 후자는
보안되는 데이터의 유효성을 나타낸다는 점에 유의한다.
서명에 미래 날짜를 지정하려는 것은 거의 의미가 없으므로,
nbf(Not Before) 클레임의 사용은 권장되지 않는다.
이 규격이 제공하는 클레임과 보안은 [VC-DATA-MODEL-2.0]이 제공하는 보안 대상 데이터 및 의미론과 독립적이다. 이는 이 규격의 보안 기능이 데이터 무결성과 진위성을 보장하더라도, 클레임 데이터의 해석을 강제하지는 않음을 의미한다.
구현자는 클레임과 속성 쌍이 동일한 개념적 엔티티를 가리킬 때, 특히
iss와 issuer, jti와 id,
sub와 credentialSubject.id 같은 쌍의 경우,
JWT 클레임을 검증가능한 크리덴셜 속성 값과 충돌하는 값으로
설정하는 것을 피하는 것이 좋다.
예를 들어, JWK 클레임 iss는 검증가능한 크리덴셜 속성
issuer의 값과 충돌하는 값으로 설정해서는 안 된다.
JWT Claim Name vc와 vp는 존재해서는 안 된다.
추가 멤버가 헤더 파라미터와 클레임으로 존재할 수 있다. 이해되지 않는 경우, 그것들은 무시되어야 한다.
이 절은 JOSE를 사용하여 [VC-DATA-MODEL-2.0]을 따르는 검증가능한 크리덴셜을 보안하는 방법을 상세히 설명한다.
적합 SD-JWT 발급자 구현은 이 미디어 타입을 보안하기 위해 [SD-JWT]를 사용해야 한다. 보안되지 않은 검증가능한 크리덴셜이 입력 JWT Claims Set이다. 그런 다음 발급자는 SD-JWT issuance instructions에 따라 입력 JWT Claims Set(즉, 보안되지 않은 검증가능한 크리덴셜)을 [SD-JWT] 페이로드로 변환한다.
typ 헤더 파라미터는 vc+sd-jwt인 것이 좋다.
존재하는 경우, cty 헤더 파라미터는 vc인 것이 좋다.
cty 헤더 파라미터 값은 vc+sd-jwt를 사용할 때 서로 다른
유형의 보안된 콘텐츠를 구별하는 데 사용할 수 있다.
content type 헤더 파라미터는 선택 사항이며, 사용 가능한 경우
application/vc보다 더 구체적인 미디어 타입을 표현하는 데 사용할 수 있다.
typ과 cty의 사용에 관한 추가 세부사항은
Registered Header Parameter Names를 참고한다.
적합 SD-JWT 검증자 구현은 이 미디어 타입을 사용하는 적합 JWS 문서를 검증하기 위해 [SD-JWT]를 사용해야 한다.
검증가능한 크리덴셜을 [SD-JWT]로 보안할 때,
구현자는 크리덴셜의 유효성 검사와 검증에 필요한 속성이 선택적으로
공개 가능하지 않도록 보장하는 것이 좋다(즉, 그러한 속성은
공개되는 것이 좋다).
이러한 속성에는
@context,
type,
credentialStatus,
credentialSchema,
relatedResource 등이 포함될 수 있으나 이에 국한되지 않는다.
보안되지 않은 채널로 전송할 때 보안된 검증가능한 크리덴셜을 암호화하기 위해, 구현자는 [SD-JWT]의 11.2절 지침에 따라 보안된 검증가능한 크리덴셜을 JWE의 평문 페이로드로 중첩하여 JSON Web Encryption(JWE) [RFC7516]을 사용할 수 있다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential", "ExamplePersonCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
},
"alumniOf": {
"name": "Example University"
}
},
"credentialSchema": [{
"id": "https://example.org/examples/degree.json",
"type": "JsonSchema"
},
{
"id": "https://example.org/examples/alumni.json",
"type": "JsonSchema"
}]
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745594772,
"exp": 1746804372,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"GQ0vkeEFgdVZLLtHYa7OJFjBkIyTFTj7JP1_Zgoxiz8"
]
},
"alumniOf": {
"name": "Example University"
},
"_sd": [
"QG8WcvFiqPJpOXUAOZrykaX1hSEhJDp6qQMdXb92OG4"
]
},
"credentialSchema": [
{
"_sd": [
"7KiNHCEHEcGrclLNkkuMvGsIewfBiUN0BVfp5c55Lio",
"q02YMzuiD_ncCAyKW8CLLmxfwdjUBoj-mmaa5RUN5eU"
]
},
{
"_sd": [
"Gddvot-e67xiQwBBr0aeqP8cg1t3AfLpEPu0L-JnlPE",
"yCCmNODhJGwjC2OR4WkoWG3bkU5_Aab3wp14C3cJ0hg"
]
}
],
"_sd": [
"Gag8nHrV4HlyKC-JZoJMeuMceJ5p5Sgh9Sed7d_asog",
"piwDQm0MGR9LCfGFyPwlHPb0Ovi3NZANqyFB6_bD14c"
]
}
SHA-256 Hash: Gag8nHrV4HlyKC-JZoJMeuMceJ5p5Sgh9Sed7d_asog
Disclosure(s): WyJGOEprZFJiT3hDbUM3UU9GbjZSX0F3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents: [
"F8JkdRbOxCmC7QOFn6R_Aw",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash: piwDQm0MGR9LCfGFyPwlHPb0Ovi3NZANqyFB6_bD14c
Disclosure(s): WyI4d0NOVnpjcHRyZnVlQ3ZkX1ByVnpRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIiwgIkV4YW1wbGVQZXJzb25DcmVkZW50aWFsIl1d
Contents: [
"8wCNVzcptrfueCvd_PrVzQ",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential",
"ExamplePersonCredential"
]
]
SHA-256 Hash: QG8WcvFiqPJpOXUAOZrykaX1hSEhJDp6qQMdXb92OG4
Disclosure(s): WyIwcEYzMVBUem9oRnNnZW1qXzNMb2tBIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents: [
"0pF31PTzohFsgemj_3LokA",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash: GQ0vkeEFgdVZLLtHYa7OJFjBkIyTFTj7JP1_Zgoxiz8
Disclosure(s): WyJMaU9qeGZZTU9uOTVUcEhnRnp0SGZ3IiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents: [
"LiOjxfYMOn95TpHgFztHfw",
"type",
"ExampleBachelorDegree"
]
SHA-256 Hash: q02YMzuiD_ncCAyKW8CLLmxfwdjUBoj-mmaa5RUN5eU
Disclosure(s): WyJBTlUta1NPWGoxZWg3NHlUcC0xcjNnIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ
Contents: [
"ANU-kSOXj1eh74yTp-1r3g",
"id",
"https://example.org/examples/degree.json"
]
SHA-256 Hash: 7KiNHCEHEcGrclLNkkuMvGsIewfBiUN0BVfp5c55Lio
Disclosure(s): WyJhcXRSLU93Wk0xWjh0eTFIbzBwa3BRIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd
Contents: [
"aqtR-OwZM1Z8ty1Ho0pkpQ",
"type",
"JsonSchema"
]
SHA-256 Hash: Gddvot-e67xiQwBBr0aeqP8cg1t3AfLpEPu0L-JnlPE
Disclosure(s): WyJIdE91TkllQ2FaN0ZQY0lpQ3RoRS1nIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvYWx1bW5pLmpzb24iXQ
Contents: [
"HtOuNIeCaZ7FPcIiCthE-g",
"id",
"https://example.org/examples/alumni.json"
]
SHA-256 Hash: yCCmNODhJGwjC2OR4WkoWG3bkU5_Aab3wp14C3cJ0hg
Disclosure(s): WyJKZWpaYy1JY0JvNjNJcUZiUWVpY19nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd
Contents: [
"JejZc-IcBo63IqFbQeic_g",
"type",
"JsonSchema"
]
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
이 절은 [SD-JWT]를 사용하여 [VC-DATA-MODEL-2.0]을 따르는 검증가능한 프레젠테이션을 보안하는 방법을 상세히 설명한다.
적합 SD-JWT 발급자 구현은 이 미디어 타입을 보안하기 위해 [SD-JWT]를 사용해야 한다. 보안되지 않은 검증가능한 프레젠테이션이 인코딩되지 않은 [SD-JWT] 페이로드이다.
typ 헤더 파라미터는 vp+sd-jwt인 것이 좋다.
존재하는 경우, cty 헤더 파라미터는 vp인 것이 좋다.
cty 헤더 파라미터 값은 vp+sd-jwt를 사용할 때 서로 다른
유형의 보안된 콘텐츠를 구별하는 데 사용할 수 있다.
content type 헤더 파라미터는 선택 사항이며, 사용 가능한 경우
application/vc보다 더 구체적인 미디어 타입을 표현하는 데 사용할 수 있다.
typ과 cty의 사용에 관한 추가 세부사항은
Registered Header Parameter Names를 참고한다.
적합 SD-JWT 검증자 구현은 이 미디어 타입을 사용하는 적합 JWS 문서를 검증하기 위해 [SD-JWT]를 사용해야 한다.
검증가능한 프레젠테이션 안에서 보안되는 검증가능한 크리덴셜은 [VC-DATA-MODEL-2.0]에 정의된 Enveloped Verifiable Credential 타입을 사용해야 한다.
검증가능한 프레젠테이션 안의 검증가능한 프레젠테이션은 [VC-DATA-MODEL-2.0]에 정의된 Enveloped Verifiable Presentation 타입을 사용해야 한다.
검증가능한 프레젠테이션 안의 크리덴셜은 보안되어야 한다. 이 경우, 이 크리덴셜들은 SD-JWT를 사용하여 보안된다.
검증가능한 프레젠테이션을 [SD-JWT]로 보안할 때
구현자는 크리덴셜의 유효성 검사와 검증에 필요한 속성이 선택적으로
공개 가능하지 않도록 보장하는 것이 좋다(즉, 그러한 속성은
공개되는 것이 좋다).
이러한 속성에는
@context,
type,
credentialStatus,
credentialSchema,
relatedResource 등이 포함될 수 있으나 이에 국한되지 않는다.
보안되지 않은 채널로 전송할 때 보안된 검증가능한 프레젠테이션을 암호화하기 위해, 구현자는 [SD-JWT]의 11.2절 지침에 따라 보안된 검증가능한 프레젠테이션을 JWE의 평문 페이로드로 중첩하여 JSON Web Encryption(JWE) [RFC7516]을 사용할 수 있다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [{
"@context": "https://www.w3.org/ns/credentials/v2",
"type": "EnvelopedVerifiableCredential",
"id": "data:application/vc+sd-jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ.eyJfc2RfYWxnIjoic2hhLTI1NiIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFNjaGVtYSI6eyJfc2QiOlsiNjVFLVZZbmE3UE5mSGVsUDN6THFwcE5ERXhSLWhjWkhSTnlxN2U0ZVdabyIsIjhJbEwtUGx4Ukt3S0hLaTMtTXhXMjM4d0FkTmQ0NHdabC1iY3NBc2JIQjAiXX0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJMVXhqcWtsWS1hdDVSVmFoSXpxM3NJZ015dkdwVDlwdlUwdTRyU2ktMXl3Il19LCJfc2QiOlsiVmxZLW50ZklPOUI5RGRsUWp5U2REMldoVWI0bjc3Zl9HWDZ2U1dLQWpCNCJdfSwiX3NkIjpbIi1iREZ4Um94UUVlcEdjZFl6a250aTVGWXBsUTU5N0djaEdUTGVtLVJSY1UiLCJfREFVZ0xrTF9zVkVtLTBvcE8zaWhpeVFhS0ZzT08xUl9ONk1CUmprOWhFIl19.Kc083RKbBxc3Vr5qR3iEEPp3dKxTa6sPaWNsqtkIw8TvMRf9EZL2ajtgkWSBYzyzOzawOrCXryyp4rMTyI9vfA ~WyJiQ1RTaU9HNUo1VXhPY1QwUlNfd01nIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJTclNWMS01SjR6cWhOU3N3STIwaHdRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJKX294dDhtUGUtaDl4MkQzc29uT1N3IiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ~WyJDMlpWektmZ185RUh1ajB2S1ExdWJnIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJ6Szd5QlFPbFhfX2Q0X0VoYUc0Y0pRIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd~WyJ6b1pzRzMzeXBMeVRGMm9aS3ZmMVFnIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ~"
}]
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745594772,
"exp": 1746804372,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"verifiableCredential": [
{
"@context": "https://www.w3.org/ns/credentials/v2",
"_sd": [
"-TVRU6yQRkVF-5q086cXufxFu8vp4AZJO-h_U8zyF_Q",
"agL1w9EKxK0l6qVKx79DkuyGFh2szgHG9Rf0kG_2nug"
]
}
],
"_sd": [
"RzTr8zM0p1-0rwhLws02_I30D8G6kpDPFlOFgag0ya0"
]
}
SHA-256 Hash: RzTr8zM0p1-0rwhLws02_I30D8G6kpDPFlOFgag0ya0
Disclosure(s): WyIwempCdDNBa0VRd0tJbllMNmhvX0lBIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd
Contents: [
"0zjBt3AkEQwKInYL6ho_IA",
"type",
"VerifiablePresentation"
]
SHA-256 Hash: agL1w9EKxK0l6qVKx79DkuyGFh2szgHG9Rf0kG_2nug
Disclosure(s): WyJHRXRVYzJuSS1Qd2xMYVhZM19Wd2p3IiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
Contents: [
"GEtUc2nI-PwlLaXY3_Vwjw",
"type",
"EnvelopedVerifiableCredential"
]
SHA-256 Hash: -TVRU6yQRkVF-5q086cXufxFu8vp4AZJO-h_U8zyF_Q
Disclosure(s): WyJRenl4OTJ5azNZQ2tyZmdRejZQVHVnIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrc2Qtand0LCBleUpyYVdRaU9pSkZlRWhyUWsxWE9XWnRZbXQyVmpJMk5tMVNjSFZRTW5OVldWOU9YMFZYU1U0eGJHRndWWHBQT0hKdklpd2lZV3huSWpvaVJWTXlOVFlpZlEuZXlKZmMyUmZZV3huSWpvaWMyaGhMVEkxTmlJc0lrQmpiMjUwWlhoMElqcGJJbWgwZEhCek9pOHZkM2QzTG5jekxtOXlaeTl1Y3k5amNtVmtaVzUwYVdGc2N5OTJNaUlzSW1oMGRIQnpPaTh2ZDNkM0xuY3pMbTl5Wnk5dWN5OWpjbVZrWlc1MGFXRnNjeTlsZUdGdGNHeGxjeTkyTWlKZExDSnBjM04xWlhJaU9pSm9kSFJ3Y3pvdkwzVnVhWFpsY25OcGRIa3VaWGhoYlhCc1pTOXBjM04xWlhKekx6VTJOVEEwT1NJc0luWmhiR2xrUm5KdmJTSTZJakl3TVRBdE1ERXRNREZVTVRrNk1qTTZNalJhSWl3aVkzSmxaR1Z1ZEdsaGJGTmphR1Z0WVNJNmV5SmZjMlFpT2xzaU5qVkZMVlpaYm1FM1VFNW1TR1ZzVURONlRIRndjRTVFUlhoU0xXaGpXa2hTVG5seE4yVTBaVmRhYnlJc0lqaEpiRXd0VUd4NFVrdDNTMGhMYVRNdFRYaFhNak00ZDBGa1RtUTBOSGRhYkMxaVkzTkJjMkpJUWpBaVhYMHNJbU55WldSbGJuUnBZV3hUZFdKcVpXTjBJanA3SW1SbFozSmxaU0k2ZXlKdVlXMWxJam9pUW1GamFHVnNiM0lnYjJZZ1UyTnBaVzVqWlNCaGJtUWdRWEowY3lJc0lsOXpaQ0k2V3lKTVZYaHFjV3RzV1MxaGREVlNWbUZvU1hweE0zTkpaMDE1ZGtkd1ZEbHdkbFV3ZFRSeVUya3RNWGwzSWwxOUxDSmZjMlFpT2xzaVZteFpMVzUwWmtsUE9VSTVSR1JzVVdwNVUyUkVNbGRvVldJMGJqYzNabDlIV0RaMlUxZExRV3BDTkNKZGZTd2lYM05rSWpwYklpMWlSRVo0VW05NFVVVmxjRWRqWkZsNmEyNTBhVFZHV1hCc1VUVTVOMGRqYUVkVVRHVnRMVkpTWTFVaUxDSmZSRUZWWjB4clRGOXpWa1Z0TFRCdmNFOHphV2hwZVZGaFMwWnpUMDh4VWw5T05rMUNVbXByT1doRklsMTkuS2MwODNSS2JCeGMzVnI1cVIzaUVFUHAzZEt4VGE2c1BhV05zcXRrSXc4VHZNUmY5RVpMMmFqdGdrV1NCWXp5ek96YXdPckNYcnl5cDRyTVR5STl2ZkEgfld5SmlRMVJUYVU5SE5VbzFWWGhQWTFRd1VsTmZkMDFuSWl3Z0ltbGtJaXdnSW1oMGRIQTZMeTkxYm1sMlpYSnphWFI1TG1WNFlXMXdiR1V2WTNKbFpHVnVkR2xoYkhNdk1UZzNNaUpkfld5SlRjbE5XTVMwMVNqUjZjV2hPVTNOM1NUSXdhSGRSSWl3Z0luUjVjR1VpTENCYklsWmxjbWxtYVdGaWJHVkRjbVZrWlc1MGFXRnNJaXdnSWtWNFlXMXdiR1ZCYkhWdGJtbERjbVZrWlc1MGFXRnNJbDFkfld5SktYMjk0ZERodFVHVXRhRGw0TWtRemMyOXVUMU4zSWl3Z0ltbGtJaXdnSW1oMGRIQnpPaTh2WlhoaGJYQnNaUzV2Y21jdlpYaGhiWEJzWlhNdlpHVm5jbVZsTG1wemIyNGlYUX5XeUpETWxwV2VrdG1aMTg1UlVoMWFqQjJTMUV4ZFdKbklpd2dJblI1Y0dVaUxDQWlTbk52YmxOamFHVnRZU0pkfld5SjZTemQ1UWxGUGJGaGZYMlEwWDBWb1lVYzBZMHBSSWl3Z0ltbGtJaXdnSW1ScFpEcGxlR0Z0Y0d4bE9qRXlNeUpkfld5SjZiMXB6UnpNemVYQk1lVlJHTW05YVMzWm1NVkZuSWl3Z0luUjVjR1VpTENBaVFtRmphR1ZzYjNKRVpXZHlaV1VpWFF-Il0
Contents: [
"Qzyx92yk3YCkrfgQz6PTug",
"id",
"data:application/vc+sd-jwt, eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ.eyJfc2RfYWxnIjoic2hhLTI1NiIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFNjaGVtYSI6eyJfc2QiOlsiNjVFLVZZbmE3UE5mSGVsUDN6THFwcE5ERXhSLWhjWkhSTnlxN2U0ZVdabyIsIjhJbEwtUGx4Ukt3S0hLaTMtTXhXMjM4d0FkTmQ0NHdabC1iY3NBc2JIQjAiXX0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJMVXhqcWtsWS1hdDVSVmFoSXpxM3NJZ015dkdwVDlwdlUwdTRyU2ktMXl3Il19LCJfc2QiOlsiVmxZLW50ZklPOUI5RGRsUWp5U2REMldoVWI0bjc3Zl9HWDZ2U1dLQWpCNCJdfSwiX3NkIjpbIi1iREZ4Um94UUVlcEdjZFl6a250aTVGWXBsUTU5N0djaEdUTGVtLVJSY1UiLCJfREFVZ0xrTF9zVkVtLTBvcE8zaWhpeVFhS0ZzT08xUl9ONk1CUmprOWhFIl19.Kc083RKbBxc3Vr5qR3iEEPp3dKxTa6sPaWNsqtkIw8TvMRf9EZL2ajtgkWSBYzyzOzawOrCXryyp4rMTyI9vfA ~WyJiQ1RTaU9HNUo1VXhPY1QwUlNfd01nIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJTclNWMS01SjR6cWhOU3N3STIwaHdRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJKX294dDhtUGUtaDl4MkQzc29uT1N3IiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ~WyJDMlpWektmZ185RUh1ajB2S1ExdWJnIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJ6Szd5QlFPbFhfX2Q0X0VoYUc0Y0pRIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd~WyJ6b1pzRzMzeXBMeVRGMm9aS3ZmMVFnIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ~"
]
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "EnvelopedVerifiablePresentation",
"id": "data:application/vp+sd-jwt,eyJhbGciOiJFUzM4NCIsImtpZCI6IlVRTV9fblE0UzZCTzhuUTRuT05YeHB4aHRob3lOeGI1M0xZZ1l6LTJBQnMiLCJ0eXAiOiJ2cCtsZCtqc29uK3NkLWp3dCIsImN0eSI6InZwK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlt7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiYWx1bW5pT2YiOnsibmFtZSI6IkV4YW1wbGUgVW5pdmVyc2l0eSIsIl9zZCI6WyJoek9LRzU2cDI5c1ByTGFDNUE4RndFdUczVU05dUlZU1p1cU9YczJlVGJBIl19LCJfc2QiOlsiWVdXVmVDRndxQmk4WDBqSF9jV0NWWU16STNhOHBjTEVYRWZicFNSQVlndyJdfSwiX3NkIjpbIjJJZjhhaUs4REZwVWJ4dEc1cGMwel9SaFJzbm1ybGFRMEhzcTk4WFNyYWsiLCJUeDZ4ZWZMVUdUZUpfYWtVUFdGeHNvbUhobGtWVnpfNzVoaVZ6eWpyYmVzIl19XSwiX3NkIjpbIjd2anl0VVN3ZEJ0MXQ5RktlOVFfS3JIRXhFWGxrTEFaTzBKM0Jpd200dlkiXSwiX3NkX2FsZyI6InNoYS0yNTYiLCJpYXQiOjE3MDY1NjI4NDksImV4cCI6MTczODE4NTI0OSwiY25mIjp7Imp3ayI6eyJrdHkiOiJFQyIsImNydiI6IlAtMzg0IiwiYWxnIjoiRVMzODQiLCJ4IjoidWtEd1U2ZzlQUVRFUWhYaEgyckRZNndMQlg3UHFlUjZBcGlhVHBEUXowcl8tdDl6UXNxem54Z0hEcE5oekZlQyIsInkiOiJMQnhVYnBVdFNGMVVKVTVpYnJIdkpINjBUSG5YMk1xa0xHZGltU1l0UGR4RlkxOEdhcldiS3FZV0djUkZHVE9BIn19fQ.kYD63YtBNYnLUTw6Szf1vs_Ug3UBXhPwCyqpNmPnPDa3rXZQhQLdB1BgaoO8zgQ-c3B41fxaXMnLHYV9-B20uboSpJP0B-2Vre917eQt1cSDswDGA_Ytvn4BSqYVBB2J~WyJFMkFsRzhsY2p0QVFrcllIbjlIbnVRIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd~WyI5NldYMDRneno4cVZzOVZLU2wwYTVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJaekU2VFVaamtHMW1DWXBKMEhnc0l3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyItQ3NsS25GZGFYb2JiQWsyU0JBVGR3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJuRm1OWl9IczB3WWNoOFdkeTdnQUNRIiwgImlkIiwgImRpZDpleGFtcGxlOmMyNzZlMTJlYzIxZWJmZWIxZjcxMmViYzZmMSJd~"
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745594772,
"exp": 1746804372,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"_sd": [
"3hRg373aTHUnR4ock2CASa3xwiiWe8eURwV5MFTP7vQ",
"Wobxt7GgUmEZJhBIdi2oSrh3xhKjjNWkDgskx3DI6kg"
]
}
SHA-256 Hash: 3hRg373aTHUnR4ock2CASa3xwiiWe8eURwV5MFTP7vQ
Disclosure(s): WyJZM3JRNVNkUFd3YW5ieTRlMGhMSDF3IiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd
Contents: [
"Y3rQ5SdPWwanby4e0hLH1w",
"type",
"EnvelopedVerifiablePresentation"
]
SHA-256 Hash: Wobxt7GgUmEZJhBIdi2oSrh3xhKjjNWkDgskx3DI6kg
Disclosure(s): WyJFUWRUZEprS3Fjd3RrMkVVMUxkOTZnIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdnArc2Qtand0LCBleUpoYkdjaU9pSkZVek00TkNJc0ltdHBaQ0k2SWxWUlRWOWZibEUwVXpaQ1R6aHVVVFJ1VDA1WWVIQjRhSFJvYjNsT2VHSTFNMHhaWjFsNkxUSkJRbk1pTENKMGVYQWlPaUoyY0N0c1pDdHFjMjl1SzNOa0xXcDNkQ0lzSW1OMGVTSTZJblp3SzJ4a0sycHpiMjRpZlEuZXlKQVkyOXVkR1Y0ZENJNld5Sm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3Zibk12WTNKbFpHVnVkR2xoYkhNdmRqSWlMQ0pvZEhSd2N6b3ZMM2QzZHk1M015NXZjbWN2Ym5NdlkzSmxaR1Z1ZEdsaGJITXZaWGhoYlhCc1pYTXZkaklpWFN3aWRtVnlhV1pwWVdKc1pVTnlaV1JsYm5ScFlXd2lPbHQ3SWtCamIyNTBaWGgwSWpwYkltaDBkSEJ6T2k4dmQzZDNMbmN6TG05eVp5OXVjeTlqY21Wa1pXNTBhV0ZzY3k5Mk1pSXNJbWgwZEhCek9pOHZkM2QzTG5jekxtOXlaeTl1Y3k5amNtVmtaVzUwYVdGc2N5OWxlR0Z0Y0d4bGN5OTJNaUpkTENKcGMzTjFaWElpT2lKb2RIUndjem92TDNWdWFYWmxjbk5wZEhrdVpYaGhiWEJzWlM5cGMzTjFaWEp6THpVMk5UQTBPU0lzSW5aaGJHbGtSbkp2YlNJNklqSXdNVEF0TURFdE1ERlVNVGs2TWpNNk1qUmFJaXdpWTNKbFpHVnVkR2xoYkZOMVltcGxZM1FpT25zaVlXeDFiVzVwVDJZaU9uc2libUZ0WlNJNklrVjRZVzF3YkdVZ1ZXNXBkbVZ5YzJsMGVTSXNJbDl6WkNJNld5Sm9lazlMUnpVMmNESTVjMUJ5VEdGRE5VRTRSbmRGZFVjelZVMDVkVWxaVTFwMWNVOVljekpsVkdKQklsMTlMQ0pmYzJRaU9sc2lXVmRYVm1WRFJuZHhRbWs0V0RCcVNGOWpWME5XV1UxNlNUTmhPSEJqVEVWWVJXWmljRk5TUVZsbmR5SmRmU3dpWDNOa0lqcGJJakpKWmpoaGFVczRSRVp3VldKNGRFYzFjR013ZWw5U2FGSnpibTF5YkdGUk1FaHpjVGs0V0ZOeVlXc2lMQ0pVZURaNFpXWk1WVWRVWlVwZllXdFZVRmRHZUhOdmJVaG9iR3RXVm5wZk56Vm9hVlo2ZVdweVltVnpJbDE5WFN3aVgzTmtJanBiSWpkMmFubDBWVk4zWkVKME1YUTVSa3RsT1ZGZlMzSklSWGhGV0d4clRFRmFUekJLTTBKcGQyMDBkbGtpWFN3aVgzTmtYMkZzWnlJNkluTm9ZUzB5TlRZaUxDSnBZWFFpT2pFM01EWTFOakk0TkRrc0ltVjRjQ0k2TVRjek9ERTROVEkwT1N3aVkyNW1JanA3SW1wM2F5STZleUpyZEhraU9pSkZReUlzSW1OeWRpSTZJbEF0TXpnMElpd2lZV3huSWpvaVJWTXpPRFFpTENKNElqb2lkV3RFZDFVMlp6bFFVVlJGVVdoWWFFZ3lja1JaTm5kTVFsZzNVSEZsVWpaQmNHbGhWSEJFVVhvd2NsOHRkRGw2VVhOeGVtNTRaMGhFY0U1b2VrWmxReUlzSW5raU9pSk1RbmhWWW5CVmRGTkdNVlZLVlRWcFluSklka3BJTmpCVVNHNVlNazF4YTB4SFpHbHRVMWwwVUdSNFJsa3hPRWRoY2xkaVMzRlpWMGRqVWtaSFZFOUJJbjE5ZlEua1lENjNZdEJOWW5MVVR3NlN6ZjF2c19VZzNVQlhoUHdDeXFwTm1QblBEYTNyWFpRaFFMZEIxQmdhb084emdRLWMzQjQxZnhhWE1uTEhZVjktQjIwdWJvU3BKUDBCLTJWcmU5MTdlUXQxY1NEc3dER0FfWXR2bjRCU3FZVkJCMkp-V3lKRk1rRnNSemhzWTJwMFFWRnJjbGxJYmpsSWJuVlJJaXdnSW5SNWNHVWlMQ0FpVm1WeWFXWnBZV0pzWlZCeVpYTmxiblJoZEdsdmJpSmR-V3lJNU5sZFlNRFJuZW5vNGNWWnpPVlpMVTJ3d1lUVm5JaXdnSW1sa0lpd2dJbWgwZEhBNkx5OTFibWwyWlhKemFYUjVMbVY0WVcxd2JHVXZZM0psWkdWdWRHbGhiSE12TVRnM01pSmR-V3lKYWVrVTJWRlZhYW10SE1XMURXWEJLTUVobmMwbDNJaXdnSW5SNWNHVWlMQ0JiSWxabGNtbG1hV0ZpYkdWRGNtVmtaVzUwYVdGc0lpd2dJa1Y0WVcxd2JHVkJiSFZ0Ym1sRGNtVmtaVzUwYVdGc0lsMWR-V3lJdFEzTnNTMjVHWkdGWWIySmlRV3N5VTBKQlZHUjNJaXdnSW1sa0lpd2dJbVJwWkRwbGVHRnRjR3hsT21WaVptVmlNV1kzTVRKbFltTTJaakZqTWpjMlpURXlaV015TVNKZH5XeUp1Um0xT1dsOUljekIzV1dOb09GZGtlVGRuUVVOUklpd2dJbWxrSWl3Z0ltUnBaRHBsZUdGdGNHeGxPbU15TnpabE1USmxZekl4WldKbVpXSXhaamN4TW1WaVl6Wm1NU0pkfiJd
Contents: [
"EQdTdJkKqcwtk2EU1Ld96g",
"id",
"data:application/vp+sd-jwt, eyJhbGciOiJFUzM4NCIsImtpZCI6IlVRTV9fblE0UzZCTzhuUTRuT05YeHB4aHRob3lOeGI1M0xZZ1l6LTJBQnMiLCJ0eXAiOiJ2cCtsZCtqc29uK3NkLWp3dCIsImN0eSI6InZwK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlt7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiYWx1bW5pT2YiOnsibmFtZSI6IkV4YW1wbGUgVW5pdmVyc2l0eSIsIl9zZCI6WyJoek9LRzU2cDI5c1ByTGFDNUE4RndFdUczVU05dUlZU1p1cU9YczJlVGJBIl19LCJfc2QiOlsiWVdXVmVDRndxQmk4WDBqSF9jV0NWWU16STNhOHBjTEVYRWZicFNSQVlndyJdfSwiX3NkIjpbIjJJZjhhaUs4REZwVWJ4dEc1cGMwel9SaFJzbm1ybGFRMEhzcTk4WFNyYWsiLCJUeDZ4ZWZMVUdUZUpfYWtVUFdGeHNvbUhobGtWVnpfNzVoaVZ6eWpyYmVzIl19XSwiX3NkIjpbIjd2anl0VVN3ZEJ0MXQ5RktlOVFfS3JIRXhFWGxrTEFaTzBKM0Jpd200dlkiXSwiX3NkX2FsZyI6InNoYS0yNTYiLCJpYXQiOjE3MDY1NjI4NDksImV4cCI6MTczODE4NTI0OSwiY25mIjp7Imp3ayI6eyJrdHkiOiJFQyIsImNydiI6IlAtMzg0IiwiYWxnIjoiRVMzODQiLCJ4IjoidWtEd1U2ZzlQUVRFUWhYaEgyckRZNndMQlg3UHFlUjZBcGlhVHBEUXowcl8tdDl6UXNxem54Z0hEcE5oekZlQyIsInkiOiJMQnhVYnBVdFNGMVVKVTVpYnJIdkpINjBUSG5YMk1xa0xHZGltU1l0UGR4RlkxOEdhcldiS3FZV0djUkZHVE9BIn19fQ.kYD63YtBNYnLUTw6Szf1vs_Ug3UBXhPwCyqpNmPnPDa3rXZQhQLdB1BgaoO8zgQ-c3B41fxaXMnLHYV9-B20uboSpJP0B-2Vre917eQt1cSDswDGA_Ytvn4BSqYVBB2J~WyJFMkFsRzhsY2p0QVFrcllIbjlIbnVRIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd~WyI5NldYMDRneno4cVZzOVZLU2wwYTVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJaekU2VFVaamtHMW1DWXBKMEhnc0l3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyItQ3NsS25GZGFYb2JiQWsyU0JBVGR3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJuRm1OWl9IczB3WWNoOFdkeTdnQUNRIiwgImlkIiwgImRpZDpleGFtcGxlOmMyNzZlMTJlYzIxZWJmZWIxZjcxMmViYzZmMSJd~"
]
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
구현은 compact serialization
(application/sd-jwt)을 지원해야 하고 JSON
serialization(application/sd-jwt+json)을 지원할 수 있다.
JSON serialization을 사용하는 경우, 추가적인 JSON 멤버가 일관되게 이해되도록
프로파일을 정의하는 것이 권장된다.
COSE [RFC9052]는 CBOR [RFC8949]을 사용하여 정보를 인코딩하고 보안하는 일반적인 접근 방식이다. 검증가능한 크리덴셜은 COSE [RFC9052]를 사용하여 보안될 수 있으며, 이 절에서 설명하는 대로 콘텐츠 타입을 사용하여 식별되는 것이 좋다.
이 절은 COSE를 사용하여 [VC-DATA-MODEL-2.0]을 따르는 검증가능한 크리덴셜을 보안하는 방법을 상세히 설명한다.
적합 COSE 발급자 구현은 이 미디어 타입을 보안하기 위해 [RFC9052]에 명시된 대로 COSE_Sign1을 사용해야 한다. 보안되지 않은 검증가능한 크리덴셜이 인코딩되지 않은 COSE_Sign1 페이로드이다.
COSE "typ" (type) Header Parameter에
기술된 typ (16) 헤더 파라미터는
application/vc+cose인 것이 좋다.
content type (3) 헤더 파라미터는 application/vc인 것이 좋다.
content type (3) 헤더 파라미터는 선택 사항이며, 사용 가능한 경우
application/vc보다 더 구체적인 미디어 타입을 표현하는 데 사용할 수 있다.
추가 세부사항은 Common COSE Header Parameters를
참고한다.
적합 COSE 검증자 구현은 이 미디어 타입을 사용하는 적합 COSE 문서를 검증하기 위해 [RFC9052]에 명시된 대로 COSE_Sign1을 사용해야 한다.
COSE로 보안된 검증가능한 크리덴셜을 검증가능한 프레젠테이션에 Enveloped Verifiable Credentials로 포함할 때, 그 크리덴셜은 [RFC2397]에 명시된 대로 base64를 사용하여 인코딩되어야 한다.
보안되지 않은 채널로 전송할 때 보안된 검증가능한 크리덴셜을 암호화하기 위해, 구현자는 [RFC9052]의 5절에 정의된 COSE 암호화를 사용하여, 보안된 검증가능한 크리덴셜을 암호화된 COSE 객체의 평문 페이로드로 중첩할 수 있다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential", "ExamplePersonCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
},
"alumniOf": {
"name": "Example University"
}
},
"credentialSchema": [{
"id": "https://example.org/examples/degree.json",
"type": "JsonSchema"
},
{
"id": "https://example.org/examples/alumni.json",
"type": "JsonSchema"
}]
}{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential",
"ExamplePersonCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
},
"alumniOf": {
"name": "Example University"
}
},
"credentialSchema": [
{
"id": "https://example.org/examples/degree.json",
"type": "JsonSchema"
},
{
"id": "https://example.org/examples/alumni.json",
"type": "JsonSchema"
}
]
}
application/vc+cose
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
이 절은 COSE를 사용하여 [VC-DATA-MODEL-2.0]을 따르는 검증가능한 프레젠테이션을 보안하는 방법을 상세히 설명한다.
적합 COSE 발급자 구현은 이 미디어 타입을 보안하기 위해 [RFC9052]에 명시된 대로 COSE_Sign1을 사용해야 한다. 보안되지 않은 검증가능한 프레젠테이션이 인코딩되지 않은 COSE_Sign1 페이로드이다.
COSE "typ" (type) Header Parameter에
기술된 typ (16) 헤더 파라미터는
application/vp+cose인 것이 좋다.
content type (3) 헤더 파라미터는 application/vp인 것이 좋다.
content type (3) 헤더 파라미터는 선택 사항이며, 사용 가능한 경우
application/vp보다 더 구체적인 미디어 타입을 표현하는 데 사용할 수 있다.
추가 세부사항은 Common COSE Header Parameters를
참고한다.
적합 COSE 검증자 구현은 이 미디어 타입을 사용하는 적합 COSE 문서를 검증하기 위해 [RFC9052]에 명시된 대로 COSE_Sign1을 사용해야 한다.
검증가능한 프레젠테이션 안에서 보안되는 검증가능한 크리덴셜은 [VC-DATA-MODEL-2.0]에 정의된 Enveloped Verifiable Credential 타입을 사용해야 한다.
검증가능한 프레젠테이션 안의 검증가능한 프레젠테이션은 [VC-DATA-MODEL-2.0]에 정의된 Enveloped Verifiable Presentation 타입을 사용해야 한다.
검증가능한 프레젠테이션 안의 크리덴셜은 보안되어야 한다. 이 경우, 이 크리덴셜들은 COSE를 사용하여 보안된다.
보안되지 않은 채널로 전송할 때 보안된 검증가능한 프레젠테이션을 암호화하기 위해, 구현자는 [RFC9052]의 5절에 정의된 COSE 암호화를 사용하여, 보안된 검증가능한 프레젠테이션을 암호화된 COSE 객체의 평문 페이로드로 중첩할 수 있다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [{
"@context": "https://www.w3.org/ns/credentials/v2",
"type": "EnvelopedVerifiableCredential",
"id": "data:application/vc+sd-jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ.eyJfc2RfYWxnIjoic2hhLTI1NiIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFNjaGVtYSI6eyJfc2QiOlsiNWJBeDMteHBmQWxVS0ZJOXNuM2hWQ21wR2trcUlzWmMzLUxiMzNmWmpiayIsIlpjQXZIMDhsdEJySUpmSWh0OF9tS1BfYzNscG5YMWNHclltVG8wZ1lCeTgiXX0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJST1Q3MUl0dTNMNlVXWFVqby1oWVdJQjY3bHVPTkVEUlNCaGxEVENxVU9RIl19LCJfc2QiOlsiTUVuZXNnMlhPUk5jY3NCTWVaXzE2MDJneTQwUi00WUJ2VlIweFE4b0Y4YyJdfSwiX3NkIjpbIkVlc2Jiay1mcGZwd2ZMOXdOczFxcjZ0aU43ZnEtSXQzWVM2V3ZCbl9iWG8iLCJab1I1ZGRhckdtZk15NEhuV0xVak5URnFURjNYRjZpdFBnZnlGQkhVX3FVIl19.gw3paxbkLjpi8CTsyRpXKbC7tpVa0q2sWKSD-_dcbuZ1LpZV3oQ8Ifzcm2bE8RY3fmJgbuyA9gbPL3sQBaTzkg ~WyJSeUQxVlB4VHBvbmtPeXZpczkta293IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJfVjd1eTd3ay1RM3VZd2ZpZ0NvWUVBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJhazdqMTlnYVMtRDJLX2hzY3RVZGNRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ~WyJUTjBXaXVZRkhXWkV2ZDZIQUJHQS1nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJVMnBzMkxYVERVbVh3MDcxRVBmRUpnIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd~WyJsQ042eTNEaTNDUk9VX3JuXzRENWRnIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ~"
}]
}{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+sd-jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ.eyJfc2RfYWxnIjoic2hhLTI1NiIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFNjaGVtYSI6eyJfc2QiOlsiNWJBeDMteHBmQWxVS0ZJOXNuM2hWQ21wR2trcUlzWmMzLUxiMzNmWmpiayIsIlpjQXZIMDhsdEJySUpmSWh0OF9tS1BfYzNscG5YMWNHclltVG8wZ1lCeTgiXX0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJST1Q3MUl0dTNMNlVXWFVqby1oWVdJQjY3bHVPTkVEUlNCaGxEVENxVU9RIl19LCJfc2QiOlsiTUVuZXNnMlhPUk5jY3NCTWVaXzE2MDJneTQwUi00WUJ2VlIweFE4b0Y4YyJdfSwiX3NkIjpbIkVlc2Jiay1mcGZwd2ZMOXdOczFxcjZ0aU43ZnEtSXQzWVM2V3ZCbl9iWG8iLCJab1I1ZGRhckdtZk15NEhuV0xVak5URnFURjNYRjZpdFBnZnlGQkhVX3FVIl19.gw3paxbkLjpi8CTsyRpXKbC7tpVa0q2sWKSD-_dcbuZ1LpZV3oQ8Ifzcm2bE8RY3fmJgbuyA9gbPL3sQBaTzkg ~WyJSeUQxVlB4VHBvbmtPeXZpczkta293IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJfVjd1eTd3ay1RM3VZd2ZpZ0NvWUVBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJhazdqMTlnYVMtRDJLX2hzY3RVZGNRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ~WyJUTjBXaXVZRkhXWkV2ZDZIQUJHQS1nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJVMnBzMkxYVERVbVh3MDcxRVBmRUpnIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd~WyJsQ042eTNEaTNDUk9VX3JuXzRENWRnIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ~;data:application/vc+sd-jwt,eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ.eyJfc2RfYWxnIjoic2hhLTI1NiIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFNjaGVtYSI6eyJfc2QiOlsiNWJBeDMteHBmQWxVS0ZJOXNuM2hWQ21wR2trcUlzWmMzLUxiMzNmWmpiayIsIlpjQXZIMDhsdEJySUpmSWh0OF9tS1BfYzNscG5YMWNHclltVG8wZ1lCeTgiXX0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJST1Q3MUl0dTNMNlVXWFVqby1oWVdJQjY3bHVPTkVEUlNCaGxEVENxVU9RIl19LCJfc2QiOlsiTUVuZXNnMlhPUk5jY3NCTWVaXzE2MDJneTQwUi00WUJ2VlIweFE4b0Y4YyJdfSwiX3NkIjpbIkVlc2Jiay1mcGZwd2ZMOXdOczFxcjZ0aU43ZnEtSXQzWVM2V3ZCbl9iWG8iLCJab1I1ZGRhckdtZk15NEhuV0xVak5URnFURjNYRjZpdFBnZnlGQkhVX3FVIl19.gw3paxbkLjpi8CTsyRpXKbC7tpVa0q2sWKSD-_dcbuZ1LpZV3oQ8Ifzcm2bE8RY3fmJgbuyA9gbPL3sQBaTzkg ~WyJSeUQxVlB4VHBvbmtPeXZpczkta293IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJfVjd1eTd3ay1RM3VZd2ZpZ0NvWUVBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJhazdqMTlnYVMtRDJLX2hzY3RVZGNRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ~WyJUTjBXaXVZRkhXWkV2ZDZIQUJHQS1nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJVMnBzMkxYVERVbVh3MDcxRVBmRUpnIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd~WyJsQ042eTNEaTNDUk9VX3JuXzRENWRnIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ~",
"type": "EnvelopedVerifiableCredential"
}
]
}
application/vp+cose
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "EnvelopedVerifiablePresentation",
"id": "data:application/vp+sd-jwt,eyJhbGciOiJFUzM4NCIsImtpZCI6IlVRTV9fblE0UzZCTzhuUTRuT05YeHB4aHRob3lOeGI1M0xZZ1l6LTJBQnMiLCJ0eXAiOiJ2cCtsZCtqc29uK3NkLWp3dCIsImN0eSI6InZwK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlt7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiYWx1bW5pT2YiOnsibmFtZSI6IkV4YW1wbGUgVW5pdmVyc2l0eSIsIl9zZCI6WyJoek9LRzU2cDI5c1ByTGFDNUE4RndFdUczVU05dUlZU1p1cU9YczJlVGJBIl19LCJfc2QiOlsiWVdXVmVDRndxQmk4WDBqSF9jV0NWWU16STNhOHBjTEVYRWZicFNSQVlndyJdfSwiX3NkIjpbIjJJZjhhaUs4REZwVWJ4dEc1cGMwel9SaFJzbm1ybGFRMEhzcTk4WFNyYWsiLCJUeDZ4ZWZMVUdUZUpfYWtVUFdGeHNvbUhobGtWVnpfNzVoaVZ6eWpyYmVzIl19XSwiX3NkIjpbIjd2anl0VVN3ZEJ0MXQ5RktlOVFfS3JIRXhFWGxrTEFaTzBKM0Jpd200dlkiXSwiX3NkX2FsZyI6InNoYS0yNTYiLCJpYXQiOjE3MDY1NjI4NDksImV4cCI6MTczODE4NTI0OSwiY25mIjp7Imp3ayI6eyJrdHkiOiJFQyIsImNydiI6IlAtMzg0IiwiYWxnIjoiRVMzODQiLCJ4IjoidWtEd1U2ZzlQUVRFUWhYaEgyckRZNndMQlg3UHFlUjZBcGlhVHBEUXowcl8tdDl6UXNxem54Z0hEcE5oekZlQyIsInkiOiJMQnhVYnBVdFNGMVVKVTVpYnJIdkpINjBUSG5YMk1xa0xHZGltU1l0UGR4RlkxOEdhcldiS3FZV0djUkZHVE9BIn19fQ.kYD63YtBNYnLUTw6Szf1vs_Ug3UBXhPwCyqpNmPnPDa3rXZQhQLdB1BgaoO8zgQ-c3B41fxaXMnLHYV9-B20uboSpJP0B-2Vre917eQt1cSDswDGA_Ytvn4BSqYVBB2J~WyJFMkFsRzhsY2p0QVFrcllIbjlIbnVRIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd~WyI5NldYMDRneno4cVZzOVZLU2wwYTVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJaekU2VFVaamtHMW1DWXBKMEhnc0l3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyItQ3NsS25GZGFYb2JiQWsyU0JBVGR3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJuRm1OWl9IczB3WWNoOFdkeTdnQUNRIiwgImlkIiwgImRpZDpleGFtcGxlOmMyNzZlMTJlYzIxZWJmZWIxZjcxMmViYzZmMSJd~"
}{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "EnvelopedVerifiablePresentation",
"id": "data:application/vp+sd-jwt,eyJhbGciOiJFUzM4NCIsImtpZCI6IlVRTV9fblE0UzZCTzhuUTRuT05YeHB4aHRob3lOeGI1M0xZZ1l6LTJBQnMiLCJ0eXAiOiJ2cCtsZCtqc29uK3NkLWp3dCIsImN0eSI6InZwK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlt7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiYWx1bW5pT2YiOnsibmFtZSI6IkV4YW1wbGUgVW5pdmVyc2l0eSIsIl9zZCI6WyJoek9LRzU2cDI5c1ByTGFDNUE4RndFdUczVU05dUlZU1p1cU9YczJlVGJBIl19LCJfc2QiOlsiWVdXVmVDRndxQmk4WDBqSF9jV0NWWU16STNhOHBjTEVYRWZicFNSQVlndyJdfSwiX3NkIjpbIjJJZjhhaUs4REZwVWJ4dEc1cGMwel9SaFJzbm1ybGFRMEhzcTk4WFNyYWsiLCJUeDZ4ZWZMVUdUZUpfYWtVUFdGeHNvbUhobGtWVnpfNzVoaVZ6eWpyYmVzIl19XSwiX3NkIjpbIjd2anl0VVN3ZEJ0MXQ5RktlOVFfS3JIRXhFWGxrTEFaTzBKM0Jpd200dlkiXSwiX3NkX2FsZyI6InNoYS0yNTYiLCJpYXQiOjE3MDY1NjI4NDksImV4cCI6MTczODE4NTI0OSwiY25mIjp7Imp3ayI6eyJrdHkiOiJFQyIsImNydiI6IlAtMzg0IiwiYWxnIjoiRVMzODQiLCJ4IjoidWtEd1U2ZzlQUVRFUWhYaEgyckRZNndMQlg3UHFlUjZBcGlhVHBEUXowcl8tdDl6UXNxem54Z0hEcE5oekZlQyIsInkiOiJMQnhVYnBVdFNGMVVKVTVpYnJIdkpINjBUSG5YMk1xa0xHZGltU1l0UGR4RlkxOEdhcldiS3FZV0djUkZHVE9BIn19fQ.kYD63YtBNYnLUTw6Szf1vs_Ug3UBXhPwCyqpNmPnPDa3rXZQhQLdB1BgaoO8zgQ-c3B41fxaXMnLHYV9-B20uboSpJP0B-2Vre917eQt1cSDswDGA_Ytvn4BSqYVBB2J~WyJFMkFsRzhsY2p0QVFrcllIbjlIbnVRIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd~WyI5NldYMDRneno4cVZzOVZLU2wwYTVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJaekU2VFVaamtHMW1DWXBKMEhnc0l3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyItQ3NsS25GZGFYb2JiQWsyU0JBVGR3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJuRm1OWl9IczB3WWNoOFdkeTdnQUNRIiwgImlkIiwgImRpZDpleGFtcGxlOmMyNzZlMTJlYzIxZWJmZWIxZjcxMmViYzZmMSJd~"
}
application/vp+cose
이 예시에 대한 자세한 내용은 검증가능한 크리덴셜 데이터 모델 v2.0을 참고한다.
COSE Header에 존재하거나 CWT Claims로 존재하는 경우, IANA CBOR Web Token (CWT) Claims 레지스트리 또는 IANA COSE Header Parameters 레지스트리에 등록된 멤버는 해당 레지스트리에서 참조하는 규격에 정의된 대로 해석된다. CBOR Web Token (CWT) [RFC8392] Claims는 I-D.ietf-cose-cwt-claims-in-headers에 명시된 대로 COSE 헤더 파라미터에 포함될 수 있다.
Header Parameters, Claims, CBOR Web Token (CWT) Claims in COSE Headers의 규범적 진술은 크리덴셜과 프레젠테이션의 보안에 적용된다.
[VC-DATA-MODEL-2.0]에 정의된 멤버와 혼동될 수 있는
클레임과 헤더 파라미터를 식별하기 위해 IANA
CBOR Web Token Claims
레지스트리와 IANA
COSE Header Parameters
레지스트리를 사용하는 것이 권장된다.
여기에는 iss,
kid, alg, iat,
exp, cnf 등이 포함되지만 이에 국한되지 않는다.
iat(Issued At) 및/또는
exp(Expiration Time) CWT 클레임이 존재하는 경우, 이들은
각각 서명의 발급 시각과 만료 시각을 나타낸다.
이는 Validity Period에
정의된 validFrom과 validUntil 속성과 다르며,
후자는 보안되는 데이터의 유효성을 나타낸다는 점에 유의한다.
서명에 미래 날짜를 지정하려는 것은 거의 의미가 없으므로,
nbf(Not Before) 클레임의 사용은 권장되지 않는다.
추가 멤버가 헤더 파라미터와 클레임으로 존재할 수 있다. 이해되지 않는 경우, 그것들은 무시되어야 한다.
검증 과정을 완료하기 위해, 검증자는 크리덴셜을 보안하는 데 사용된 암호 키를 획득해야 한다.
발급자와 보유자의 검증 키를 탐색하는 여러 가지 방법이 있다.
이러한 JOSE 헤더 파라미터와 JWT 클레임은 검증자가 검증 키를 탐색하는 데 사용할 수 있다.
kid가
JOSE Header 또는
COSE Header에 존재하는 경우,
검증자는
RFC7515에 정의된
검증 과정을 수행할 때
이 파라미터를 검증가능한 크리덴셜을 보안하는 데 어떤 키가
사용되었는지 나타내는 힌트로 사용할 수 있다.
iss가
JOSE Header,
JWT Claims,
또는 COSE Header에 존재하는 경우,
검증자는
이 파라미터를 사용하여
검증 과정에서 사용할
JSON Web Key를 획득할 수 있다.
issuer
속성의 값은 문자열이거나 객체일 수 있다.
issuer 값이 문자열인 경우, iss 값이 존재한다면
issuer 값과 일치해야 한다.
issuer 값이 id 값을 가진 객체인 경우,
iss 값이 존재한다면 issuer.id 값과 일치해야 한다.
kid도
JOSE Header에 존재하는 경우,
사용된 특정 키를 구별하는 데 사용된다.
cnf가
JOSE Header,
JWT Claims,
또는 COSE Header에 존재하는 경우,
검증자는
검증 과정에서 사용하기 위해
[RFC7800] 또는 [RFC8747]에 기술된 방식으로
소유 증명(proof-of-possession) 키를 식별하는 데 이 파라미터를 사용할 수 있다.
검증가능한 프레젠테이션 안에서 검증자가 검증할 수 있는 검증가능한 크리덴셜에서 보유자에 대한 암호적 바인딩을 확립하기 위해, 보유자가 발급자에게 제공하는 소유 증명 키를 사용하는 것이 권장된다.
이 규격과 함께 제어 식별자 문서를 사용할 때, 다음 요구사항이 적용된다.
검증 방법의 type 속성의 값은
JsonWebKey여야 한다.
검증 자료는 JsonWebKey의 publicKeyJwk
속성에 표현되어야 한다.
이 키 자료는 kid나 iss 같은 JOSE 또는 COSE 메시지
봉투의 힌트를 기반으로 검색된다.
이 글을 작성하는 시점에, DID URL이나 제어 식별자 문서로부터
JWK 형식의 공개키를 검색하는 표준 방법은 없다.
iss가 없고 issuer가 [URL]로 식별되는 경우, kid는 제어 식별자 문서 또는 DID Document에 나열된 검증 방법에 대한 절대 [URL]이어야 한다.
[URL] 식별자를 사용할 때, kid는
[RFC7638]에 정의된 JWK Thumbprint URI를 포함하는
절대 [URL]인 것이 권장된다.
예를 들어:
https://vendor.example/issuers/42/keys/urn:ietf:params:oauth:jwk-thumbprint:sha-256:NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs
{
"issuer": {
"id": "https://university.example/issuers/565049"
}
// ...
}
{
"alg": "ES384",
"kid": "https://university.example/issuers/565049#key-123
}
holder가 [URL]로 식별되고 iss가 없는 경우, kid는 제어 식별자 문서에 나열된 검증 방법에 대한 절대 [URL]이어야 한다.
{
"holder": {
"id": "https://university.example/issuers/565049"
}
// ...
}
{
"alg": "ES384",
"kid": "https://university.example/issuers/565049#key-123
}
이 규격은 다양한 키 탐색 프로토콜과 함께 사용될 수 있다. 따라서 검증 키의 탐색은 4. 키 탐색에서 설명하며, 검증 과정을 시작하기 전에 성공한 것으로 가정한다.
일반적인 원칙으로, 검증자는 신뢰할 수 없는 데이터의 처리를 최소화하도록 노력하는 것이 좋다. 여기에는 키 탐색 절차의 일부로서 protected header, unprotected header, 또는 페이로드에 대한 처리를 최소화하는 것이 포함된다.
검증이 성공한 후에는, 5.4 유효성 검사 절에 설명된 대로 추가 유효성 검사가 수행되는 것이 좋다
다음 알고리즘의 출력은 다음과 같다:
status: 검증 결과를 나타내는 불리언으로,
성공이면 true, 실패면 false이다.
document: [VC-DATA-MODEL-2.0]을 따르는 문서
mediaType: vc 또는 vp
이 알고리즘의 입력은 다음과 같다:
inputMediaType: vc+jwt 또는 vp+jwt
inputDocument: JWT [RFC7519]로 보안된 검증가능한 크리덴셜
JWT [RFC7519]로 보안된 검증가능한 크리덴셜 또는 프레젠테이션을 수신하면, 보유자 또는 검증자는 이 알고리즘을 따른다:
status를 true로 설정한다
mediaType을 vc 또는 vp로 설정한다
document를 디코딩된 JWS 페이로드로 설정한다.
status를 false로 설정한다
document를 null로 설정한다
mediaType을 null로 설정한다
이 알고리즘의 입력은 다음과 같다:
inputMediaType: vc+sd-jwt
inputDocument: [SD-JWT]로 보안된 검증가능한 크리덴셜
[SD-JWT]로 보안된 검증가능한 크리덴셜 또는 프레젠테이션을 수신하면, 보유자 또는 검증자는 이 알고리즘을 따른다:
status를 true로 설정한다
mediaType을 vc로 설정한다
document를
JWT Claims Set으로 설정한다.
(JWT Claims Set에서 SD-JWT 페이로드로의 전환 예시는
SD-JWT examples를
참고한다.)
status를 false로 설정한다
document를 null로 설정한다
mediaType을 null로 설정한다
이 알고리즘의 입력은 다음과 같다:
inputMediaType: vc+cose 또는
vp+cose
inputDocument: CBOR Object Signing and Encryption (COSE): Structures and Process로 보안된
검증가능한 크리덴셜 또는
검증가능한 프레젠테이션
[RFC9052]로 보안된 검증가능한 크리덴셜 또는 프레젠테이션을 수신하면, 보유자 또는 검증자는 이 알고리즘을 따른다:
status를 true로 설정한다
mediaType을 vc 또는 vp로 설정한다
document를 디코딩된 COSE_Sign1 페이로드로 설정한다.
status를 false로 설정한다
document를 null로 설정한다
mediaType을 null로 설정한다
typ에 대해 기대되는 모든 클레임이 존재해야 한다.
이해되는 모든 클레임은 검증자의 유효성 검사 정책에 따라
평가되어야 한다.
이해되지 않는 모든 클레임은 무시되어야 한다.
검증에서 반환된 검증된 document는
검증가능한 크리덴셜 데이터 모델 v2.0에 설명된 대로
올바른 형식의 compact JSON-LD 문서여야 한다.
credentialSchema 같은 스키마 확장 메커니즘은
확인되는 것이 좋다.
확장 메커니즘 type이 이해되지 않으면,
이 속성은 무시되어야 한다.
credentialStatus 같은 상태 확장 메커니즘은
확인되는 것이 좋다.
확장 메커니즘 type이 이해되지 않으면,
이 속성은 무시되어야 한다.
검증자의 유효성 검사 정책, 크리덴셜의 유형, 그리고 보안 메커니즘의 유형에 따라, 추가 유효성 검사가 적용될 수 있다. 예를 들어, 여러 크리덴셜 간의 의존성, 여러 크리덴셜과 관련된 순서 또는 타이밍 정보, 그리고/또는 여러 프레젠테이션은 그렇지 않으면 유효한 크리덴셜 또는 프레젠테이션을 무효로 간주되게 할 수 있다.
이 부분은 비규범적입니다.
이 규격은 검증가능한 크리덴셜 데이터 모델을
따르는 페이로드를 가진 JSON Web Token (JWT)를
식별하기 위해 특별히 application/vc+jwt
미디어 타입을 등록한다.
| 타입 이름: | application |
| 서브타입 이름: | vc+jwt |
| 필수 매개변수: | 없음 |
| 선택 매개변수: | 없음 |
| 인코딩 고려사항: |
바이너리; application/jwt 값은 마침표('.')로 구분된
일련의 base64url로 인코딩된 값(그중 일부는 빈 문자열일 수 있음)이다.
|
| 보안 고려사항: | |
| 상호운용성 고려사항: |
이 규격에 정의된 대로. |
| 발행된 규격: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어를 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 따르는 W3C 검증가능한 크리덴셜 발급자, 보유자, 검증자 소프트웨어가 이 미디어 타입을 사용할 애플리케이션에 속한다. 적합 애플리케이션 유형은 여기와 여기에 설명되어 있다. |
| 사용 제한: | 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 의도된 용도: | COMMON |
| 변경 관리자: | W3C Verifiable Credentials Working Group public-vc-wg@w3.org |
이 규격은
검증가능한 크리덴셜 데이터 모델의 검증가능한 프레젠테이션 정의를
따르는 페이로드를 가진 JSON Web Token (JWT)를
식별하기 위해 특별히 application/vp+jwt
미디어 타입을 등록한다.
| 타입 이름: | application |
| 서브타입 이름: | vp+jwt |
| 필수 매개변수: | 없음 |
| 선택 매개변수: | 없음 |
| 인코딩 고려사항: |
바이너리; application/jwt 값은 마침표('.')로 구분된
일련의 base64url로 인코딩된 값(그중 일부는 빈 문자열일 수 있음)이다.
|
| 보안 고려사항: | |
| 상호운용성 고려사항: |
이 규격에 정의된 대로. |
| 발행된 규격: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어를 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 따르는 W3C 검증가능한 크리덴셜 발급자, 보유자, 검증자 소프트웨어가 이 미디어 타입을 사용할 애플리케이션에 속한다. 적합 애플리케이션 유형은 여기와 여기에 설명되어 있다. |
| 사용 제한: | 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 의도된 용도: | COMMON |
| 변경 관리자: | W3C Verifiable Credentials Working Group public-vc-wg@w3.org |
이 규격은 검증가능한 크리덴셜 데이터 모델을
따르는 페이로드를 가진 Selective Disclosure for JWTs (SD-JWT)를
식별하기 위해 특별히 application/vc+sd-jwt
미디어 타입을 등록한다.
| 타입 이름: | application |
| 서브타입 이름: | vc+sd-jwt |
| 필수 매개변수: | 없음 |
| 선택 매개변수: | 없음 |
| 인코딩 고려사항: |
바이너리; application/sd-jwt 값은 마침표('.')와 물결표('~')
문자로 구분된 일련의 base64url로 인코딩된 값(그중 일부는 빈 문자열일 수 있음)이다.
|
| 보안 고려사항: |
이 규격에 정의된 대로. Selective Disclosure for JWTs (SD-JWT)의 보안 고려사항도 참고한다. |
| 상호운용성 고려사항: |
이 규격에 정의된 대로. |
| 발행된 규격: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어를 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 따르는 W3C 검증가능한 크리덴셜 발급자, 보유자, 검증자 소프트웨어가 이 미디어 타입을 사용할 애플리케이션에 속한다. 적합 애플리케이션 유형은 여기와 여기에 설명되어 있다. |
| 사용 제한: | 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 의도된 용도: | COMMON |
| 변경 관리자: | W3C Verifiable Credentials Working Group public-vc-wg@w3.org |
이 규격은
검증가능한 크리덴셜 데이터 모델의 검증가능한 프레젠테이션 정의를
따르는 페이로드를 가진 Selective Disclosure for JWTs (SD-JWT)를
식별하기 위해 특별히 application/vp+sd-jwt
미디어 타입을 등록한다.
| 타입 이름: | application |
| 서브타입 이름: | vp+sd-jwt |
| 필수 매개변수: | 없음 |
| 선택 매개변수: | 없음 |
| 인코딩 고려사항: |
바이너리; application/sd-jwt 값은 마침표('.')와 물결표('~')
문자로 구분된 일련의 base64url로 인코딩된 값(그중 일부는 빈 문자열일 수 있음)이다.
|
| 보안 고려사항: |
이 규격에 정의된 대로. Selective Disclosure for JWTs (SD-JWT)의 보안 고려사항도 참고한다. |
| 상호운용성 고려사항: |
이 규격에 정의된 대로. |
| 발행된 규격: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어를 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 따르는 W3C 검증가능한 크리덴셜 발급자, 보유자, 검증자 소프트웨어가 이 미디어 타입을 사용할 애플리케이션에 속한다. 적합 애플리케이션 유형은 여기와 여기에 설명되어 있다. |
| 사용 제한: | 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 의도된 용도: | COMMON |
| 변경 관리자: | W3C Verifiable Credentials Working Group public-vc-wg@w3.org |
이 규격은 검증가능한 크리덴셜 데이터 모델을
따르는 페이로드를 가진 COSE 객체 [RFC9052]를
식별하기 위해 특별히 application/vc+cose
미디어 타입을 등록한다.
| 타입 이름: | application |
| 서브타입 이름: | vc+cose |
| 필수 매개변수: | 없음 |
| 선택 매개변수: | 없음 |
| 인코딩 고려사항: | 바이너리(CBOR) |
| 보안 고려사항: | |
| 상호운용성 고려사항: |
이 규격에 정의된 대로. |
| 발행된 규격: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어를 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 따르는 W3C 검증가능한 크리덴셜 발급자, 보유자, 검증자 소프트웨어가 이 미디어 타입을 사용할 애플리케이션에 속한다. 적합 애플리케이션 유형은 여기와 여기에 설명되어 있다. |
| 사용 제한: | 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 의도된 용도: | COMMON |
| 변경 관리자: | W3C Verifiable Credentials Working Group public-vc-wg@w3.org |
이 규격은
검증가능한 크리덴셜 데이터 모델의 검증가능한 프레젠테이션 정의를
따르는 페이로드를 가진 COSE 객체 [RFC9052]를
식별하기 위해 특별히 application/vp+cose
미디어 타입을 등록한다.
| 타입 이름: | application |
| 서브타입 이름: | vp+cose |
| 필수 매개변수: | 없음 |
| 선택 매개변수: | 없음 |
| 인코딩 고려사항: | 바이너리(CBOR) |
| 보안 고려사항: | |
| 상호운용성 고려사항: |
이 규격에 정의된 대로. |
| 발행된 규격: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어를 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 따르는 W3C 검증가능한 크리덴셜 발급자, 보유자, 검증자 소프트웨어가 이 미디어 타입을 사용할 애플리케이션에 속한다. 적합 애플리케이션 유형은 여기와 여기에 설명되어 있다. |
| 사용 제한: | 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 의도된 용도: | COMMON |
| 변경 관리자: | W3C Verifiable Credentials Working Group public-vc-wg@w3.org |
이 부분은 비규범적입니다.
검증가능한 크리덴셜은 조직과 개인의 프라이버시와 보안을 보장하기 위해 보호가 필요한 민감한 정보를 포함하는 경우가 많다. 이 절은 구현자와 사용자에게 관련된 몇 가지 프라이버시 고려사항을 개괄한다.
구현자는 [VC-DATA-MODEL-2.0]에서 언급된 모든 프라이버시 고려사항에 유의하고 준수할 것을 권고받는다.
구현자는 프라이버시 지침을 위해 JWT 규격의 Privacy Consideration 절과 NIST Special Publication 800-122 [[SP-800-122] "Guide to Protecting the Confidentiality of Personally Identifiable Information (PII)"도 참조할 것을 권고받는다.
[VC-DATA-MODEL-2.0]의 프라이버시 권고사항에 더하여, 다음 고려사항이 제시된다:
데이터 최소화: 검증가능한 크리덴셜이 의도된 목적을 달성하는 데 필요한 최소한의 데이터만 포함하는 것이 모범 사례로 간주된다. 이는 불필요하게 공유되거나 저장되는 민감한 정보의 양을 제한하는 데 도움이 된다.
충분한 정보에 근거한 동의: 개인이 자신의 데이터가 어떻게 사용될지 충분히 알고, 자신의 데이터 사용에 동의하거나 거부할 수 있는 능력을 제공받는 것이 모범 사례로 간주된다. 이는 개인이 자신의 개인정보에 대한 통제권을 유지하도록 보장하는 데 도움이 된다.
데이터 보호: 무단 접근, 수정, 공개를 방지하기 위해 강력한 암호화와 기타 보안 조치를 사용하여 검증가능한 크리덴셜을 보호하는 것이 모범 사례로 간주된다.
이러한 고려사항이 전부는 아니며, 구현자와 사용자는 이 규격을 사용하여 구현된 검증가능한 크리덴셜의 프라이버시와 보안을 보장하기 위해 추가적인 프라이버시 자료와 모범 사례를 참고할 것을 권고받는다.
이 절은 이 규격의 구현자와 사용자를 위한 보안 고려사항을 개괄한다. JOSE 또는 COSE를 사용하여 구현할 때 검증가능한 크리덴셜의 보안과 무결성을 보장하기 위해 이러한 요소들을 신중하게 고려하는 것이 중요하다.
이 규격을 구현할 때, 광범위한 암호 응용에 관련된 모든 보안 문제를 다루는 것이 필수적이다. 여기에는 특히 사용자의 비대칭 개인키와 대칭 비밀키를 보호하는 것과 다양한 공격에 대한 대응책을 마련하는 것이 포함된다. 이러한 문제를 적절히 다루지 못하면 검증가능한 크리덴셜의 보안과 무결성이 손상되어, 민감한 정보에 대한 무단 접근, 수정, 공개로 이어질 수 있다.
구현자는 키와 기타 민감한 데이터의 안전한 처리를 보장하기 위해 모범 사례와 확립된 암호 표준을 따를 것을 권고받는다. 또한, 취약점이나 위협을 식별하고 해결하기 위해 정기적인 보안 평가와 감사를 수행할 것을 권고받는다.
[RFC7515]와 [RFC7519]에 개괄된 모든 보안 고려사항을 따른다.
JSON-LD를 활용할 때, 컨텍스트의 원격 검색과 관련하여 각별히 주의하고 [JSON-LD11]에 언급된 추가 보안 고려사항을 따른다.
[RFC7515]에서 언급했듯이, JSON [RFC7159]을 활용할 때 엄격한 유효성 검사는 보안 요구사항이다. 잘못된 형식의 JSON을 수신하면 생산자의 의도를 신뢰성 있게 해석하는 것이 불가능할 수 있으며, 이는 모호하거나 악용 가능한 상황으로 이어질 수 있다. 이러한 위험을 방지하기 위해, 모든 입력 데이터의 구문을 엄격하게 검증하는 JSON 파서를 사용하는 것이 필수적이다. [RFC7159]에 정의된 JSON-text 구문을 따르지 않는 모든 JSON 입력은 JSON 파서에 의해 전체가 거부되는 것이 필수적이다. 잘못된 입력을 거부하지 못하면 검증가능한 크리덴셜의 보안과 무결성이 손상될 수 있다.
이 규격을 구현할 때, 기술 구현자가 다양한 접근성 요소를 고려하는 것이 매우 중요하다. 접근성 문제를 무시하면 상당수의 사람들이 정보를 사용할 수 없게 된다. 능력에 관계없이 모든 개인에게 동등한 접근을 보장하기 위해, Web Content Accessibility Guidelines(WCAG 2.1) [WCAG21] 같은 접근성 지침과 표준을 준수하는 것이 필수적이다. 이는 암호화가 관련된 시스템을 구축할 때 더욱 중요해지는데, 이러한 시스템은 역사적으로 보조 기술에 어려움을 제기해 왔기 때문이다.
구현자는 [VC-DATA-MODEL-2.0]에서 언급된 모든 접근성 고려사항에 유의하고 준수할 것을 권고받는다.
이 부분은 비규범적입니다.
{
"id": "https://vendor.example",
}
{
"id": "https://university.example/issuers/565049",
"verificationMethod": [{
"id": "https://university.example/issuers/565049#key-123",
"type": "JsonWebKey",
"controller": "https://university.example/issuers/565049",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-384",
"alg": "ES384",
"x": "PxgAmVYOQvSNcMYL2tOzoLwSWn4Ta3tIMPEUKR8pxeb-gmR11-DyKHBoIiY-2LhM",
"y": "BZEBTkImVdpwvxR9THIRw16eblnj5-tZa7m-ww5uVd4kyPJNRoWUn2aT9ZuarAe-"
}
}]
}
{
"id": "https://university.example/issuers/565049",
"verificationMethod": [{
"id": "https://university.example/issuers/565049#key-123",
"type": "JsonWebKey",
"controller": "https://university.example/issuers/565049",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-384",
"alg": "ES384",
"x": "PxgAmVYOQvSNcMYL2tOzoLwSWn4Ta3tIMPEUKR8pxeb-gmR11-DyKHBoIiY-2LhM",
"y": "BZEBTkImVdpwvxR9THIRw16eblnj5-tZa7m-ww5uVd4kyPJNRoWUn2aT9ZuarAe-"
}
}],
"authentication": ["https://university.example/issuers/565049#key-123"],
"assertionMethod": ["https://university.example/issuers/565049#key-123"]
}
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/jwk/v1",
{
"@vocab": "https://vendor.example#"
}
],
"id": "did:web:vendor.example",
"alsoKnownAs": ["https://vendor.example",
"did:jwk:eyJraWQiOiJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6andrLXRodW1icHJpbnQ6c2hhLTI1NjpGZk1iek9qTW1RNGVmVDZrdndUSUpqZWxUcWpsMHhqRUlXUTJxb2JzUk1NIiwia3R5IjoiT0tQIiwiY3J2IjoiRWQyNTUxOSIsImFsZyI6IkVkRFNBIiwieCI6IkFOUmpIX3p4Y0tCeHNqUlBVdHpSYnA3RlNWTEtKWFE5QVBYOU1QMWo3azQifQ"
],
"verificationMethod": [{
"id": "#urn:ietf:params:oauth:jwk-thumbprint:sha-256:NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs",
"type": "JsonWebKey",
"controller": "did:web:vendor.example",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-521",
"alg": "ES512",
"x": "AFTyMw-fIYJNg6fBVJvOPOsLxmnNj8HgqMChyRL0swLaefVAc7wrWZ8okQJqMmvv03JRUp277meQZM3JcvXFkH1v",
"y": "ALn96CrD88b4TClmkl1sk0xk2FgAIda97ZF8TUOjbeWSzbKnN2KB6pqlpbuJ2xIRXvsn5BWQVlAT2JGpGwDNMyV1"
}
}, {
"id": "#z6MkhEdpG12jyQegrr62ACRmNY8gc531W2j9Xo39cHphuCEH",
"type": "JsonWebKey2020",
"controller": "https://vendor.example",
"publicKeyJwk": {
"kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:FfMbzOjMmQ4efT6kvwTIJjelTqjl0xjEIWQ2qobsRMM",
"kty": "OKP",
"crv": "Ed25519",
"alg": "EdDSA",
"x": "ANRjH_zxcKBxsjRPUtzRbp7FSVLKJXQ9APX9MP1j7k4"
}
}, {
"id": "#subject-authentication",
"type": "JsonWebKey",
"controller": "did:web:vendor.example",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-384",
"alg": "ES384",
"x": "PxgAmVYOQvSNcMYL2tOzoLwSWn4Ta3tIMPEUKR8pxeb-gmR11-DyKHBoIiY-2LhM",
"y": "BZEBTkImVdpwvxR9THIRw16eblnj5-tZa7m-ww5uVd4kyPJNRoWUn2aT9ZuarAe-"
}
}, {
"id": "#credential-issuance",
"type": "JsonWebKey",
"controller": "did:web:vendor.example",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-256",
"alg": "ES256",
"x": "MYvnaI87pfrn3FpTqW-yNiFcF1K7fedJiqapm20_q7c",
"y": "9YEbT6Tyuc7xp9yRvhOUVKK_NIHkn5HpK9ZMgvK5pVw"
}
}, {
"id": "#key-agreement",
"type": "JsonWebKey",
"controller": "did:web:vendor.example",
"publicKeyJwk": {
"kty": "OKP",
"crv": "X25519",
"alg": "ECDH-ES+A128KW",
"x": "qLZkSTbstvMWPTivmiQglEFWG2Ff7gNDVoVisdZTr1I"
}
}],
"authentication": ["#subject-authentication"],
"assertionMethod": ["#credential-issuance"]
}
{
"@context": ["https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://contoso.example/credentials/23894672394",
"type": ["VerifiableCredential", "K9UnitCredential"],
"issuer": {
"id": "https://contoso.example"
},
"validFrom": "2015-04-16T05:11:32.432Z",
"credentialStatus": {
"id": "https://contoso.example/credentials/status/4#273762",
"type": "StatusList2021Entry",
"statusPurpose": "revocation",
"statusListIndex": "273762",
"statusListCredential": "https://contoso.example/credentials/status/4"
},
"credentialSubject": [{
"id": "did:example:1312387641",
"type": "Person"
}, {
"id": "did:example:63888231",
"type": "Dog"
}]
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://contoso.example/credentials/23894672394",
"type": [
"VerifiableCredential",
"K9UnitCredential"
],
"issuer": {
"id": "https://contoso.example"
},
"validFrom": "2015-04-16T05:11:32.432Z",
"credentialStatus": {
"id": "https://contoso.example/credentials/status/4#273762",
"type": "StatusList2021Entry",
"statusPurpose": "revocation",
"statusListIndex": "273762",
"statusListCredential": "https://contoso.example/credentials/status/4"
},
"credentialSubject": [
{
"id": "did:example:1312387641",
"type": "Person"
},
{
"id": "did:example:63888231",
"type": "Dog"
}
]
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://contoso.example/credentials/23894672394",
"type": [
"VerifiableCredential",
"K9UnitCredential"
],
"issuer": {
"id": "https://contoso.example"
},
"validFrom": "2015-04-16T05:11:32.432Z",
"credentialStatus": {
"id": "https://contoso.example/credentials/status/4#273762",
"type": "StatusList2021Entry",
"statusPurpose": "revocation",
"statusListIndex": "273762",
"statusListCredential": "https://contoso.example/credentials/status/4"
},
"credentialSubject": [
{
"id": "did:example:1312387641",
"type": "Person"
},
{
"id": "did:example:63888231",
"type": "Dog"
}
]
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745594772,
"exp": 1746804372,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": {
"_sd": [
"mSg0kZC77X6jUVHq2IIYNygSlXKKVzTSdhFWoNYyxOA"
]
},
"validFrom": "2015-04-16T05:11:32.432Z",
"credentialStatus": {
"statusPurpose": "revocation",
"statusListIndex": "273762",
"statusListCredential": "https://contoso.example/credentials/status/4",
"_sd": [
"mv6Cexu-fwPdLVo5ZYH7ycS8mFGTQVMxThp2nwECBT4",
"tQantX-hhSpOANOV-1xKF_GRof5Lnm6JbPKqboLt7RA"
]
},
"credentialSubject": [
{
"_sd": [
"SMxFrlOcsuPyVN5LRBbVTLZ6xMQqaUBNBS67kL_Xd_w",
"VGN44u5sVQgncEIfgELJeZR9bpeTGc8ZAcMmV6MQttg"
]
},
{
"_sd": [
"MBe_7HKj0-P2Zfttw5vYdJ0xUe3xtpi2widbSnw_ZOg",
"ec1yUY0C75J7pgyMzO5Dw90pDUr3fX7Z8Gt8wUAIYzI"
]
}
],
"_sd": [
"FIWgy39UzzZ5_aOKV3po6EyjXmBN9c8oIQ2jKe_Ftb0",
"FmDcdemIspdmQMMeuS-4N4J5wCFobBBuiuUelGsWMvU"
]
}
SHA-256 Hash: FIWgy39UzzZ5_aOKV3po6EyjXmBN9c8oIQ2jKe_Ftb0
Disclosure(s): WyI0SWQ0aFVoUzMxQThXelBRTlhPUWJBIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2NyZWRlbnRpYWxzLzIzODk0NjcyMzk0Il0
Contents: [
"4Id4hUhS31A8WzPQNXOQbA",
"id",
"https://contoso.example/credentials/23894672394"
]
SHA-256 Hash: FmDcdemIspdmQMMeuS-4N4J5wCFobBBuiuUelGsWMvU
Disclosure(s): WyJJSFNyZnVZR0YtcWk5OXcySWJkYUJBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIks5VW5pdENyZWRlbnRpYWwiXV0
Contents: [
"IHSrfuYGF-qi99w2IbdaBA",
"type",
[
"VerifiableCredential",
"K9UnitCredential"
]
]
SHA-256 Hash: mSg0kZC77X6jUVHq2IIYNygSlXKKVzTSdhFWoNYyxOA
Disclosure(s): WyJDeEpTQmlKeDVtdVgzZkhSRmZDYlBRIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlIl0
Contents: [
"CxJSBiJx5muX3fHRFfCbPQ",
"id",
"https://contoso.example"
]
SHA-256 Hash: mv6Cexu-fwPdLVo5ZYH7ycS8mFGTQVMxThp2nwECBT4
Disclosure(s): WyJuQVhZQ29yTUNGaGRJMDhZNzh5ckNBIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2NyZWRlbnRpYWxzL3N0YXR1cy80IzI3Mzc2MiJd
Contents: [
"nAXYCorMCFhdI08Y78yrCA",
"id",
"https://contoso.example/credentials/status/4#273762"
]
SHA-256 Hash: tQantX-hhSpOANOV-1xKF_GRof5Lnm6JbPKqboLt7RA
Disclosure(s): WyI1aUJCSmdual9pMkpQZHdRTTVzRlh3IiwgInR5cGUiLCAiU3RhdHVzTGlzdDIwMjFFbnRyeSJd
Contents: [
"5iBBJgnj_i2JPdwQM5sFXw",
"type",
"StatusList2021Entry"
]
SHA-256 Hash: SMxFrlOcsuPyVN5LRBbVTLZ6xMQqaUBNBS67kL_Xd_w
Disclosure(s): WyJBNzFORTByODBmN3ZCVkNrcmU0N01BIiwgImlkIiwgImRpZDpleGFtcGxlOjEzMTIzODc2NDEiXQ
Contents: [
"A71NE0r80f7vBVCkre47MA",
"id",
"did:example:1312387641"
]
SHA-256 Hash: VGN44u5sVQgncEIfgELJeZR9bpeTGc8ZAcMmV6MQttg
Disclosure(s): WyJHaFg4N1lJMzg0cjV5b0hXOENTOEJ3IiwgInR5cGUiLCAiUGVyc29uIl0
Contents: [
"GhX87YI384r5yoHW8CS8Bw",
"type",
"Person"
]
SHA-256 Hash: MBe_7HKj0-P2Zfttw5vYdJ0xUe3xtpi2widbSnw_ZOg
Disclosure(s): WyJhQWxrLVhrQ0RCaFItN1Z5NnBXZmNnIiwgImlkIiwgImRpZDpleGFtcGxlOjYzODg4MjMxIl0
Contents: [
"aAlk-XkCDBhR-7Vy6pWfcg",
"id",
"did:example:63888231"
]
SHA-256 Hash: ec1yUY0C75J7pgyMzO5Dw90pDUr3fX7Z8Gt8wUAIYzI
Disclosure(s): WyJzLTFSWGdUWVVQWGJNZ2JLMHVaX0NRIiwgInR5cGUiLCAiRG9nIl0
Contents: [
"s-1RXgTYUPXbMgbK0uZ_CQ",
"type",
"Dog"
]
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://contoso.example/credentials/35327255",
"type": ["VerifiableCredential", "KYCExample"],
"issuer": "did:web:contoso.example",
"validFrom": "2019-05-25T03:10:16.992Z",
"validUntil": "2027-05-25T03:10:16.992Z",
"credentialSchema": {
"id": "https://contoso.example/bafybeigdyr...lqabf3oclgtqy55fbzdi",
"type": "JsonSchema"
},
"credentialSubject": {
"id": "did:example:1231588",
"type": "Person"
}
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://contoso.example/credentials/35327255",
"type": [
"VerifiableCredential",
"KYCExample"
],
"issuer": "did:web:contoso.example",
"validFrom": "2019-05-25T03:10:16.992Z",
"validUntil": "2027-05-25T03:10:16.992Z",
"credentialSchema": {
"id": "https://contoso.example/bafybeigdyr...lqabf3oclgtqy55fbzdi",
"type": "JsonSchema"
},
"credentialSubject": {
"id": "did:example:1231588",
"type": "Person"
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://contoso.example/credentials/35327255",
"type": [
"VerifiableCredential",
"KYCExample"
],
"issuer": "did:web:contoso.example",
"validFrom": "2019-05-25T03:10:16.992Z",
"validUntil": "2027-05-25T03:10:16.992Z",
"credentialSchema": {
"id": "https://contoso.example/bafybeigdyr...lqabf3oclgtqy55fbzdi",
"type": "JsonSchema"
},
"credentialSubject": {
"id": "did:example:1231588",
"type": "Person"
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745594772,
"exp": 1746804372,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "did:web:contoso.example",
"validFrom": "2019-05-25T03:10:16.992Z",
"validUntil": "2027-05-25T03:10:16.992Z",
"credentialSchema": {
"_sd": [
"HiarZUG7NVHeTxMJfLFGQN-3vmfd7jUCzwmw4XbwaB4",
"KSy9JTiccPPppo7knU4ZSqqjZno35Rz-9RNN0Y5Epng"
]
},
"credentialSubject": {
"_sd": [
"Avjemz7SrlBIOpXTokISYN4iV6EHCmKL4GJM_9OjPrg",
"aeS0kUTFAjvoIPPITgB_Bp88voe3fnHqrCvx-CJrH18"
]
},
"_sd": [
"1ji_39ienphXEsrOKxpudg40AAB-iQ9GC8BDsPq2V1g",
"UE9R6ktpnWU0rkf7qpFhOVa14gc7H78we9wQ_lE1IWs"
]
}
SHA-256 Hash: 1ji_39ienphXEsrOKxpudg40AAB-iQ9GC8BDsPq2V1g
Disclosure(s): WyIxZ3Mxd3lXd002RC1tVWl3U1pnYjJBIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2NyZWRlbnRpYWxzLzM1MzI3MjU1Il0
Contents: [
"1gs1wyWwM6D-mUiwSZgb2A",
"id",
"https://contoso.example/credentials/35327255"
]
SHA-256 Hash: UE9R6ktpnWU0rkf7qpFhOVa14gc7H78we9wQ_lE1IWs
Disclosure(s): WyJNLWlDZmZjZGdod1BFSXV2Wk9NODh3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIktZQ0V4YW1wbGUiXV0
Contents: [
"M-iCffcdghwPEIuvZOM88w",
"type",
[
"VerifiableCredential",
"KYCExample"
]
]
SHA-256 Hash: HiarZUG7NVHeTxMJfLFGQN-3vmfd7jUCzwmw4XbwaB4
Disclosure(s): WyJ6TV9PQXNIMV9WMXBpZV9fU09QX3BBIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2JhZnliZWlnZHlyLi4ubHFhYmYzb2NsZ3RxeTU1ZmJ6ZGkiXQ
Contents: [
"zM_OAsH1_V1pie__SOP_pA",
"id",
"https://contoso.example/bafybeigdyr...lqabf3oclgtqy55fbzdi"
]
SHA-256 Hash: KSy9JTiccPPppo7knU4ZSqqjZno35Rz-9RNN0Y5Epng
Disclosure(s): WyJnNzFUcFFIbHNoQUZjX2FhNDlTaWZ3IiwgInR5cGUiLCAiSnNvblNjaGVtYSJd
Contents: [
"g71TpQHlshAFc_aa49Sifw",
"type",
"JsonSchema"
]
SHA-256 Hash: aeS0kUTFAjvoIPPITgB_Bp88voe3fnHqrCvx-CJrH18
Disclosure(s): WyJ1cUZTLWZobTBkaWlTa1BjYVlFMXhRIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMzE1ODgiXQ
Contents: [
"uqFS-fhm0diiSkPcaYE1xQ",
"id",
"did:example:1231588"
]
SHA-256 Hash: Avjemz7SrlBIOpXTokISYN4iV6EHCmKL4GJM_9OjPrg
Disclosure(s): WyJsRU5IX0ZBc253eVJkYnFSSHBkT2l3IiwgInR5cGUiLCAiUGVyc29uIl0
Contents: [
"lENH_FAsnwyRdbqRHpdOiw",
"type",
"Person"
]
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+cose;base64,0oREo...+Q==",
"type": "EnvelopedVerifiableCredential"
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+jwt,eyVjV...RMjU",
"type": "EnvelopedVerifiableCredential"
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+sd-jwt,eyVjV...RMjU~",
"type": "EnvelopedVerifiableCredential"
}
]
}{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vp
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+cose;base64url,YmFzZTY0LDBvUkVvLi4uK1E9PQ",
"type": "EnvelopedVerifiableCredential"
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+jwt,eyVjV...RMjU;data:application/vc+jwt,eyVjV...RMjU",
"type": "EnvelopedVerifiableCredential"
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+sd-jwt,eyVjV...RMjU~;data:application/vc+sd-jwt,eyVjV...RMjU~",
"type": "EnvelopedVerifiableCredential"
}
]
}
application/vp+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+cose;base64url,WW1GelpUWTBMREJ2VWtWdkxpNHVLMUU5UFE",
"type": "EnvelopedVerifiableCredential"
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+jwt,eyVjV...RMjU;data:application/vc+jwt,eyVjV...RMjU",
"type": "EnvelopedVerifiableCredential"
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+sd-jwt,eyVjV...RMjU~;data:application/vc+sd-jwt,eyVjV...RMjU~",
"type": "EnvelopedVerifiableCredential"
}
]
}
application/vp+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745594772,
"exp": 1746804372,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"verifiableCredential": [
{
"@context": "https://www.w3.org/ns/credentials/v2",
"_sd": [
"CW2sXDKUu2YCe4lo7rSzZSFkXa4o1O_SCaeRpeLfPUg",
"fhZRx7eevF5oXWIu8xpQj5uCx7mUZv_mp-NKzZr73Fw"
]
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"_sd": [
"0h_3c2osegluPgLPPn0TyOg4NRVEaPvt234AAe5sn6k",
"OHlxR563LCa18rwLn5v9EbLLfAws7tF_ooZ3vefTpzw"
]
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"_sd": [
"bezi7IrI9D8g67Eikwm2Bh65iI-LeoB_S95tn6gDZyM",
"hZg6ZqBX8tUj34ieLgSC7J0b5JE7sXhnS2ox9zCMFLc"
]
}
],
"_sd": [
"x6Y6p1pZGnW1zhvzF9bWTlYyEJOrL7y5k2HeRJaXGIo"
]
}
SHA-256 Hash: x6Y6p1pZGnW1zhvzF9bWTlYyEJOrL7y5k2HeRJaXGIo
Disclosure(s): WyJVRExLMVB5MXRhbi1fT2NSV2VxWkFRIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd
Contents: [
"UDLK1Py1tan-_OcRWeqZAQ",
"type",
"VerifiablePresentation"
]
SHA-256 Hash: fhZRx7eevF5oXWIu8xpQj5uCx7mUZv_mp-NKzZr73Fw
Disclosure(s): WyJKazJ5OTZlcTB6QXlDbGttd0luQ3lBIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrY29zZTtiYXNlNjR1cmwsIFdXMUdlbHBVV1RCTVJFSjJWV3RXZGt4cE5IVkxNVVU1VUZFIl0
Contents: [
"Jk2y96eq0zAyClkmwInCyA",
"id",
"data:application/vc+cose;base64url, WW1GelpUWTBMREJ2VWtWdkxpNHVLMUU5UFE"
]
SHA-256 Hash: CW2sXDKUu2YCe4lo7rSzZSFkXa4o1O_SCaeRpeLfPUg
Disclosure(s): WyJCSDVfaGZ0SHFXR1pNd2puNFJWc0J3IiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
Contents: [
"BH5_hftHqWGZMwjn4RVsBw",
"type",
"EnvelopedVerifiableCredential"
]
SHA-256 Hash: OHlxR563LCa18rwLn5v9EbLLfAws7tF_ooZ3vefTpzw
Disclosure(s): WyJWVFVsV01mbWV3Wlg5NDVyc1J5Uk9BIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrand0LCBleVZqVi4uLlJNalU7ZGF0YTphcHBsaWNhdGlvbi92Yytqd3QsIGV5VmpWLi4uUk1qVSJd
Contents: [
"VTUlWMfmewZX945rsRyROA",
"id",
"data:application/vc+jwt, eyVjV...RMjU;data:application/vc+jwt, eyVjV...RMjU"
]
SHA-256 Hash: 0h_3c2osegluPgLPPn0TyOg4NRVEaPvt234AAe5sn6k
Disclosure(s): WyJ6QVA2UUJDdVN2ZVhuSWg3RUVQeml3IiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
Contents: [
"zAP6QBCuSveXnIh7EEPziw",
"type",
"EnvelopedVerifiableCredential"
]
SHA-256 Hash: bezi7IrI9D8g67Eikwm2Bh65iI-LeoB_S95tn6gDZyM
Disclosure(s): WyJ0eF85eXpwQzlrRE82dkZsLVFyT0lBIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrc2Qtand0LCBleVZqVi4uLlJNalV-O2RhdGE6YXBwbGljYXRpb24vdmMrc2Qtand0LCBleVZqVi4uLlJNalV-Il0
Contents: [
"tx_9yzpC9kDO6vFl-QrOIA",
"id",
"data:application/vc+sd-jwt, eyVjV...RMjU~;data:application/vc+sd-jwt, eyVjV...RMjU~"
]
SHA-256 Hash: hZg6ZqBX8tUj34ieLgSC7J0b5JE7sXhnS2ox9zCMFLc
Disclosure(s): WyJMWVdtZW5EVWQ2WDduSjNtMnY4d0R3IiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
Contents: [
"LYWmenDUd6X7nJ3m2v8wDw",
"type",
"EnvelopedVerifiableCredential"
]
data:application/vc+sd-jwt,eyJhbGciOiJFUzM4NCIsImtpZCI6IlNJM1JITm91aDhvODFOT09OUFFVQUw3RWdaLWtJNl94ajlvUkV2WDF4T3ciLCJ0eXAiOiJ2YytsZCtqc29uK3NkLWp3dCIsImN0eSI6InZjK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiX3NkIjpbIkU3dU1sSWFyS29iYXJTdEZGRjctZm5qaV9sQVdnM3BGMkV5dVc4dWFYakUiLCJYelRaSVgyNGdDSWxSQVFHclFoNU5FRm1XWkQtZ3Z3dkIybzB5Y0FwNFZzIl19LCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsiT3oxUEZIMG0tWk9TdEhwUVZyeGlmVlpKRzhvNmlQQmNnLVZ2SXQwd2plcyJdfSwiX3NkIjpbIkVZQ1daMTZZMHB5X1VNNzRHU3NVYU9zT19mdDExTlVSaFFUTS1TT1lFTVEiXX0sIl9zZCI6WyJqT055NnZUbGNvVlAzM25oSTdERGN3ekVka3d2R3VVRXlLUjdrWEVLd3VVIiwid21BdHpwc0dRbDJveS1PY2JrSEVZcE8xb3BoX3VYcWVWVTRKekF0aFFibyJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6Imh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2lzc3VlcnMvNTY1MDQ5IiwiaWF0IjoxNjk3Mjg5OTk2LCJleHAiOjE3Mjg5MTIzOTYsImNuZiI6eyJqd2siOnsia3R5IjoiRUMiLCJjcnYiOiJQLTM4NCIsImFsZyI6IkVTMzg0IiwieCI6InZFdV84WGxZT0ZFU2hTcVRpZ2JSYWduZ0ZGM1p5U0xrclNHekh3azFBT1loanhlazVhV21HY2UwZU05S0pWOEIiLCJ5IjoiRUpNY2czWXBzUTB3M2RLNHlVa25QczE1Z0lsY2Yyay03dzFKLTNlYlBiOERENmQtUkhBeGUwMDkzSWpfdTRCOSJ9fX0.rYzbxb6j1dwop8_s491iArVVJNm6A6C3b742gOm_qYO3zdkyQU4_VxxOSJ8ECcmWj2r5KyiCNC1ojfO4Yms-zBsjt7PoMYpYWBplsqXpiIvnehmM7D0eOLi40uHXki0X~WyJSWTg1YTZNMmEwX3VDWlFTVGZmTFdRIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJMeG5GYTBXVm8wRUluVy1QdS1fd1dRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJUQVdrakpCaVpxdC1rVU54X1EweUJBIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ~WyJTd2xuZFpPZzZEZ1ZERFp5X0RvYVFBIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJuSnJlU3E1Nzg3RGZMSDJCbU03cXFRIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd~WyIxMjNNd3hNcHRiek02YUk2aW03ME1RIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ~
data:application/vp+sd-jwt,eyJhbGciOiJFUzM4NCIsImtpZCI6IlNJM1JITm91aDhvODFOT09OUFFVQUw3RWdaLWtJNl94ajlvUkV2WDF4T3ciLCJ0eXAiOiJ2YytsZCtqc29uK3NkLWp3dCIsImN0eSI6InZjK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiX3NkIjpbIkU3dU1sSWFyS29iYXJTdEZGRjctZm5qaV9sQVdnM3BGMkV5dVc4dWFYakUiLCJYelRaSVgyNGdDSWxSQVFHclFoNU5FRm1XWkQtZ3Z3dkIybzB5Y0FwNFZzIl19LCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsiT3oxUEZIMG0tWk9TdEhwUVZyeGlmVlpKRzhvNmlQQmNnLVZ2SXQwd2plcyJdfSwiX3NkIjpbIkVZQ1daMTZZMHB5X1VNNzRHU3NVYU9zT19mdDExTlVSaFFUTS1TT1lFTVEiXX0sIl9zZCI6WyJqT055NnZUbGNvVlAzM25oSTdERGN3ekVka3d2R3VVRXlLUjdrWEVLd3VVIiwid21BdHpwc0dRbDJveS1PY2JrSEVZcE8xb3BoX3VYcWVWVTRKekF0aFFibyJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6Imh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2lzc3VlcnMvNTY1MDQ5IiwiaWF0IjoxNjk3Mjg5OTk2LCJleHAiOjE3Mjg5MTIzOTYsImNuZiI6eyJqd2siOnsia3R5IjoiRUMiLCJjcnYiOiJQLTM4NCIsImFsZyI6IkVTMzg0IiwieCI6InZFdV84WGxZT0ZFU2hTcVRpZ2JSYWduZ0ZGM1p5U0xrclNHekh3azFBT1loanhlazVhV21HY2UwZU05S0pWOEIiLCJ5IjoiRUpNY2czWXBzUTB3M2RLNHlVa25QczE1Z0lsY2Yyay03dzFKLTNlYlBiOERENmQtUkhBeGUwMDkzSWpfdTRCOSJ9fX0.rYzbxb6j1dwop8_s491iArVVJNm6A6C3b742gOm_qYO3zdkyQU4_VxxOSJ8ECcmWj2r5KyiCNC1ojfO4Yms-zBsjt7PoMYpYWBplsqXpiIvnehmM7D0eOLi40uHXki0X~WyJTd2xuZFpPZzZEZ1ZERFp5X0RvYVFBIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyIxMjNNd3hNcHRiek02YUk2aW03ME1RIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ~WyJMeG5GYTBXVm8wRUluVy1QdS1fd1dRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJSWTg1YTZNMmEwX3VDWlFTVGZmTFdRIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~eyJhbGciOiJFUzM4NCIsInR5cCI6ImtiK2p3dCJ9.eyJub25jZSI6IkVmeTROTFJPX3ZvSkszdDIzcUNfQlEiLCJhdWQiOiJodHRwczovL3ZlcmlmaWVyLmV4YW1wbGUiLCJpYXQiOjE2OTcyODk5OTZ9.6G-1nVcrDKFzR6BdbcFHcbtassEb8NZ7ZavTYz3SJ-e4pXleXs0tNcCkUCwMI70gsuOY0AXzeDPbHjp5GKyLDVuNWgWCt3Wo2VSaCwUkyfLyvhkCsmkF9kvFhMIOhp1i~
data:application/vp+cose;base64,0oREoQE4IqBZDSJ7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJ0eXBlIjoiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6Imh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImlkIjoiZGF0YTphcHBsaWNhdGlvbi92Yy1sZCtzZC1qd3QsZXlKcmFXUWlPaUpGZUVoclFrMVhPV1p0WW10MlZqSTJObTFTY0hWUU1uTlZXVjlPWDBWWFNVNHhiR0Z3VlhwUE9ISnZJaXdpWVd4bklqb2lSVk15TlRZaWZRLmV5SmZjMlJmWVd4bklqb2ljMmhoTFRJMU5pSXNJa0JqYjI1MFpYaDBJanBiSW1oMGRIQnpPaTh2ZDNkM0xuY3pMbTl5Wnk5dWN5OWpjbVZrWlc1MGFXRnNjeTkyTWlJc0ltaDBkSEJ6T2k4dmQzZDNMbmN6TG05eVp5OXVjeTlqY21Wa1pXNTBhV0ZzY3k5bGVHRnRjR3hsY3k5Mk1pSmRMQ0pwYzNOMVpYSWlPaUpvZEhSd2N6b3ZMM1Z1YVhabGNuTnBkSGt1WlhoaGJYQnNaUzlwYzNOMVpYSnpMelUyTlRBME9TSXNJblpoYkdsa1JuSnZiU0k2SWpJd01UQXRNREV0TURGVU1UazZNak02TWpSYUlpd2lZM0psWkdWdWRHbGhiRk5qYUdWdFlTSTZleUpmYzJRaU9sc2lOV0pCZURNdGVIQm1RV3hWUzBaSk9YTnVNMmhXUTIxd1IydHJjVWx6V21NekxVeGlNek5tV21waWF5SXNJbHBqUVhaSU1EaHNkRUp5U1VwbVNXaDBPRjl0UzFCZll6TnNjRzVZTVdOSGNsbHRWRzh3WjFsQ2VUZ2lYWDBzSW1OeVpXUmxiblJwWVd4VGRXSnFaV04wSWpwN0ltUmxaM0psWlNJNmV5SnVZVzFsSWpvaVFtRmphR1ZzYjNJZ2IyWWdVMk5wWlc1alpTQmhibVFnUVhKMGN5SXNJbDl6WkNJNld5SlNUMVEzTVVsMGRUTk1ObFZYV0ZWcWJ5MW9XVmRKUWpZM2JIVlBUa1ZFVWxOQ2FHeEVWRU54VlU5UklsMTlMQ0pmYzJRaU9sc2lUVVZ1WlhObk1saFBVazVqWTNOQ1RXVmFYekUyTURKbmVUUXdVaTAwV1VKMlZsSXdlRkU0YjBZNFl5SmRmU3dpWDNOa0lqcGJJa1ZsYzJKaWF5MW1jR1p3ZDJaTU9YZE9jekZ4Y2paMGFVNDNabkV0U1hReldWTTJWM1pDYmw5aVdHOGlMQ0phYjFJMVpHUmhja2R0WmsxNU5FaHVWMHhWYWs1VVJuRlVSak5ZUmpacGRGQm5abmxHUWtoVlgzRlZJbDE5Lmd3M3BheGJrTGpwaThDVHN5UnBYS2JDN3RwVmEwcTJzV0tTRC1fZGNidVoxTHBaVjNvUThJZnpjbTJiRThSWTNmbUpnYnV5QTlnYlBMM3NRQmFUemtnIH5XeUpTZVVReFZsQjRWSEJ2Ym10UGVYWnBjemt0YTI5M0lpd2dJbWxrSWl3Z0ltaDBkSEE2THk5MWJtbDJaWEp6YVhSNUxtVjRZVzF3YkdVdlkzSmxaR1Z1ZEdsaGJITXZNVGczTWlKZH5XeUpmVmpkMWVUZDNheTFSTTNWWmQyWnBaME52V1VWQklpd2dJblI1Y0dVaUxDQmJJbFpsY21sbWFXRmliR1ZEY21Wa1pXNTBhV0ZzSWl3Z0lrVjRZVzF3YkdWQmJIVnRibWxEY21Wa1pXNTBhV0ZzSWwxZH5XeUpoYXpkcU1UbG5ZVk10UkRKTFgyaHpZM1JWWkdOUklpd2dJbWxrSWl3Z0ltaDBkSEJ6T2k4dlpYaGhiWEJzWlM1dmNtY3ZaWGhoYlhCc1pYTXZaR1ZuY21WbExtcHpiMjRpWFF+V3lKVVRqQlhhWFZaUmtoWFdrVjJaRFpJUVVKSFFTMW5JaXdnSW5SNWNHVWlMQ0FpU25OdmJsTmphR1Z0WVNKZH5XeUpWTW5Cek1reFlWRVJWYlZoM01EY3hSVkJtUlVwbklpd2dJbWxrSWl3Z0ltUnBaRHBsZUdGdGNHeGxPakV5TXlKZH5XeUpzUTA0MmVUTkVhVE5EVWs5VlgzSnVYelJFTldSbklpd2dJblI1Y0dVaUxDQWlRbUZqYUdWc2IzSkVaV2R5WldVaVhRfjtkYXRhOmFwcGxpY2F0aW9uL3ZjLWxkK3NkLWp3dCxleUpyYVdRaU9pSkZlRWhyUWsxWE9XWnRZbXQyVmpJMk5tMVNjSFZRTW5OVldWOU9YMFZYU1U0eGJHRndWWHBQT0hKdklpd2lZV3huSWpvaVJWTXlOVFlpZlEuZXlKZmMyUmZZV3huSWpvaWMyaGhMVEkxTmlJc0lrQmpiMjUwWlhoMElqcGJJbWgwZEhCek9pOHZkM2QzTG5jekxtOXlaeTl1Y3k5amNtVmtaVzUwYVdGc2N5OTJNaUlzSW1oMGRIQnpPaTh2ZDNkM0xuY3pMbTl5Wnk5dWN5OWpjbVZrWlc1MGFXRnNjeTlsZUdGdGNHeGxjeTkyTWlKZExDSnBjM04xWlhJaU9pSm9kSFJ3Y3pvdkwzVnVhWFpsY25OcGRIa3VaWGhoYlhCc1pTOXBjM04xWlhKekx6VTJOVEEwT1NJc0luWmhiR2xrUm5KdmJTSTZJakl3TVRBdE1ERXRNREZVTVRrNk1qTTZNalJhSWl3aVkzSmxaR1Z1ZEdsaGJGTmphR1Z0WVNJNmV5SmZjMlFpT2xzaU5XSkJlRE10ZUhCbVFXeFZTMFpKT1hOdU0yaFdRMjF3UjJ0cmNVbHpXbU16TFV4aU16Tm1XbXBpYXlJc0lscGpRWFpJTURoc2RFSnlTVXBtU1doME9GOXRTMUJmWXpOc2NHNVlNV05IY2xsdFZHOHdaMWxDZVRnaVhYMHNJbU55WldSbGJuUnBZV3hUZFdKcVpXTjBJanA3SW1SbFozSmxaU0k2ZXlKdVlXMWxJam9pUW1GamFHVnNiM0lnYjJZZ1UyTnBaVzVqWlNCaGJtUWdRWEowY3lJc0lsOXpaQ0k2V3lKU1QxUTNNVWwwZFROTU5sVlhXRlZxYnkxb1dWZEpRalkzYkhWUFRrVkVVbE5DYUd4RVZFTnhWVTlSSWwxOUxDSmZjMlFpT2xzaVRVVnVaWE5uTWxoUFVrNWpZM05DVFdWYVh6RTJNREpuZVRRd1VpMDBXVUoyVmxJd2VGRTRiMFk0WXlKZGZTd2lYM05rSWpwYklrVmxjMkppYXkxbWNHWndkMlpNT1hkT2N6RnhjalowYVU0M1puRXRTWFF6V1ZNMlYzWkNibDlpV0c4aUxDSmFiMUkxWkdSaGNrZHRaazE1TkVodVYweFZhazVVUm5GVVJqTllSalpwZEZCblpubEdRa2hWWDNGVklsMTkuZ3czcGF4YmtManBpOENUc3lScFhLYkM3dHBWYTBxMnNXS1NELV9kY2J1WjFMcFpWM29ROElmemNtMmJFOFJZM2ZtSmdidXlBOWdiUEwzc1FCYVR6a2cgfld5SlNlVVF4VmxCNFZIQnZibXRQZVhacGN6a3RhMjkzSWl3Z0ltbGtJaXdnSW1oMGRIQTZMeTkxYm1sMlpYSnphWFI1TG1WNFlXMXdiR1V2WTNKbFpHVnVkR2xoYkhNdk1UZzNNaUpkfld5SmZWamQxZVRkM2F5MVJNM1ZaZDJacFowTnZXVVZCSWl3Z0luUjVjR1VpTENCYklsWmxjbWxtYVdGaWJHVkRjbVZrWlc1MGFXRnNJaXdnSWtWNFlXMXdiR1ZCYkhWdGJtbERjbVZrWlc1MGFXRnNJbDFkfld5SmhhemRxTVRsbllWTXRSREpMWDJoelkzUlZaR05SSWl3Z0ltbGtJaXdnSW1oMGRIQnpPaTh2WlhoaGJYQnNaUzV2Y21jdlpYaGhiWEJzWlhNdlpHVm5jbVZsTG1wemIyNGlYUX5XeUpVVGpCWGFYVlpSa2hYV2tWMlpEWklRVUpIUVMxbklpd2dJblI1Y0dVaUxDQWlTbk52YmxOamFHVnRZU0pkfld5SlZNbkJ6TWt4WVZFUlZiVmgzTURjeFJWQm1SVXBuSWl3Z0ltbGtJaXdnSW1ScFpEcGxlR0Z0Y0d4bE9qRXlNeUpkfld5SnNRMDQyZVRORWFUTkRVazlWWDNKdVh6UkVOV1JuSWl3Z0luUjVjR1VpTENBaVFtRmphR1ZzYjNKRVpXZHlaV1VpWFF+IiwidHlwZSI6IkVudmVsb3BlZFZlcmlmaWFibGVDcmVkZW50aWFsIn1dfVhA4c9H+cu0VfS8NsItpzbB1mpvjP5y2DCxTCW+bY6/4SNPCaeP+uR+JRpJ+GzVNz7/W7ZlHoXguhgBBjWhlnhh+Q==
이 예시들은 CBOR Diagnostic Notation에 의존한다. 실제 모든 교환은 항상 바이너리 형식으로 이루어진다는 점을 기억한다.
{ / Protected /
1: -35, / Algorithm /
3: application/vc, / Content type /
4: h'177f12cb...1933d554', / Key identifier /
15: { / CWT Claims /
1: urn:example:123, / Issuer /
2: urn:example:456, / Subject /
},
}
{ / Protected /
1: -35, / Algorithm /
3: application/vp, / Content type /
4: h'177f12cb...1933d554', / Key identifier /
15: { / CWT Claims /
1: urn:example:123, / Issuer /
2: urn:example:456, / Subject /
},
}
18( / COSE Sign 1 /
[
h'a4013822...3a343536', / Protected Header /
{} / Unprotected Header /
h'0fbe22a0...3a009118', / Attached payload /
h'09772c7f...5c4e736f' / Signature /
]
)
페이로드는 보안 메커니즘에 설명된 대로 크리덴셜 또는 프레젠테이션일 수 있다.
이 부분은 비규범적입니다.
This section describes substantive changes that have been made to this specification.
Changes since the First Candidate Recommendation:
cty header parameter.
nbf (Not Before) claim is NOT RECOMMENDED.
이 부분은 비규범적입니다.
The Working Group thanks Orie Steele for his substantive intellectual and content contributions to this specification. It wouldn't be the same without them.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: