다음도 참조하세요 번역.
Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
이 명세는 자격 증명과 프레젠테이션을 보호하는 방법을 정의하며, 해당 항목은 검증 가능한 자격 증명 데이터 모델 [VC-DATA-MODEL-2.0]을 준수하고, JSON 객체 서명 및 암호화 (JOSE), JWT의 선택적 공개 [SD-JWT], CBOR 객체 서명 및 암호화(COSE) [RFC9052]를 사용합니다. 이를 통해 검증 가능한 자격 증명 데이터 모델 [VC-DATA-MODEL-2.0]을 널리 채택된 서명 및 암호화 표준을 사용하여 구현할 수 있습니다.
이 절에서는 이 문서가 발행된 시점의 상태를 설명합니다. 현재 W3C 간행물 목록과 이 기술 보고서의 최신 개정판은 다음에서 확인하실 수 있습니다. W3C 표준 및 초안 색인.
이 문서는 검증 가능한 자격 증명 워킹 그룹에서 권고안으로 발행되었으며, 권고안 절차를 따랐습니다.
W3C는 이 명세를 웹을 위한 표준으로 널리 배포할 것을 권고합니다.
W3C 권고안은 광범위한 합의 형성을 거쳐 W3C와 그 회원사의 승인을 받고, 워킹 그룹 구성원이 구현에 대해 로열티 없는 라이선스 제공을 약속한 명세입니다.
이 문서를 작성한 그룹은 다음 정책에 따라 운영됩니다. W3C 특허 정책. W3C는 특허 공개 사항의 공개 목록을 해당 그룹의 결과물과 관련하여 유지합니다. 해당 페이지에는 특허 공개 방법에 관한 안내도 있습니다. 특허에 대한 실제 정보를 알고 있으며, 해당 특허에 필수 청구항이 포함되어 있다고 믿는 사람은 W3C 특허 정책 제6절에 따라 해당 정보를 공개해야 합니다.
이 문서에는 2025년 8월 18일자 W3C 프로세스 문서가 적용됩니다.
이 명세는 다음에 설명된 검증 가능한 자격 증명 및 검증 가능한 프레젠테이션을 표현하는 미디어 유형을 보호하는 방법을 정의합니다. [VC-DATA-MODEL-2.0]에 따라, IETF의 JOSE, OAuth 및 COSE 워킹 그룹에서 정의한 접근 방식을 사용합니다. 여기에는 JSON 웹 서명(JWS) [RFC7515], JWT의 선택적 공개 [SD-JWT], CBOR 객체 서명 및 암호화(COSE) [RFC9052]가 포함됩니다. 이 명세는 콘텐츠 유형 [RFC6838]을 사용하여 [VC-DATA-MODEL-2.0]을 준수하는 보호되지 않은 문서의 데이터 유형과 [VC-DATA-MODEL-2.0]을 준수하는 보호된 문서의 데이터 유형을 구별합니다.
JSON 웹 서명(JWS) [RFC7515]은 JSON 기반 데이터 구조를 사용하여 JSON 문서를 포함한 문서에 디지털 서명하는 표준 방법을 정의합니다. 이는 문서에 포함된 정보의 무결성, 진위성 및 부인 방지를 보장하는 수단을 제공합니다. JWT의 선택적 공개(SD-JWT) [SD-JWT]는 문서 요소를 선택적으로 공개할 수 있는 메커니즘도 제공하여 JWS를 확장합니다. 이러한 특성으로 인해 JWS와 SD-JWT는 [VC-DATA-MODEL-2.0]을 준수하는 문서를 보호하는 데 특히 적합합니다.
CBOR 객체 서명 및 암호화(COSE) [RFC9052]는 CBOR(간결한 이진 객체 표현) [RFC8949]를 사용하여 디지털 서명된 데이터 구조를 표현하는 표준 방법을 정의합니다. JWS와 마찬가지로 COSE는 정보의 무결성, 진위성 및 기밀성을 보호하는 표준화된 방법을 제공합니다. 다양한 암호화 알고리즘을 서명과 암호화에 사용할 수 있도록 유연하고 확장 가능한 암호화 옵션 집합을 제공합니다.
COSE는 서명과 암호화라는 두 가지 주요 작업을 지원합니다. 서명의 경우, COSE는 RSA, ECDSA, EdDSA 등의 다양한 알고리즘을 사용하여 CBOR 데이터에 대한 디지털 서명을 생성할 수 있습니다. 이러한 서명은 데이터의 무결성과 진위성을 보장합니다. COSE는 대칭 또는 비대칭 암호화 알고리즘으로 CBOR 데이터를 암호화하여 기밀성을 보장하는 기능도 지원합니다.
비규범적으로 표시된 절뿐 아니라 이 명세에 포함된 모든 작성 지침, 다이어그램, 예제 및 참고 사항은 비규범적입니다. 이 명세의 나머지 모든 내용은 규범적입니다.
이 문서에서 핵심 단어 MAY, MUST, MUST NOT, NOT RECOMMENDED, RECOMMENDED, SHOULD 및 SHOULD NOT은 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석해야 하며, 여기 표시된 것처럼 모두 대문자로 표기된 경우에만 적용됩니다.
준수하는 JWS 문서란 3.1절의 모든 "MUST" 문장을 준수하는 문서입니다. 3.1 JOSE 사용.
준수하는 JWS 발급자 구현은 준수하는 JWS 문서를 생성하며, 반드시 다음에 설명된 대로 보호해야 합니다. 3.1 JOSE 사용절.
준수하는 JWS 검증자 구현은 다음 절에 설명된 대로 준수하는 JWS 문서를 검증합니다. 3.1 JOSE 사용.
준수하는 SD-JWT 문서란 다음 절에 있는 모든 "MUST" 문장을 준수하는 문서입니다. 3.2 SD-JWT 사용.
준수하는 SD-JWT 발급자 구현은 준수하는 SD-JWT 문서를 생성하며, 반드시 다음에 설명된 대로 보호해야 합니다. 3.2 다음 사용: SD-JWT절.
준수하는 SD-JWT 검증자 구현은 다음에 설명된 대로 준수하는 SD-JWT 문서를 검증합니다. 다음 절: 3.2 SD-JWT 사용.
준수하는 COSE 문서란 다음 절에 있는 모든 "MUST" 문장을 준수하는 문서입니다. 3.3 COSE 사용.
준수하는 COSE 발급자 구현은 준수하는 COSE 문서를 생성하며, 반드시 다음에 설명된 대로 보호해야 합니다. 3.3 COSE 사용절.
준수하는 COSE 검증자 구현은 다음에 설명된 대로 준수하는 COSE 문서를 검증합니다. 다음 절: 3.3 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 웹 토큰 구현자는 구현 요구 사항을 검토하는 것이 좋습니다.
JWT의 발급자, 보유자 및 검증자는 반드시 다음 설정의 영향을 이해해야 합니다.
JSON 웹 토큰을 사용하여
[VC-DATA-MODEL-2.0]을 보호할 때
JSON 웹 토큰 헤더 매개변수 "alg": "none" 설정을
이해해야 합니다.
[VC-DATA-MODEL-2.0]의 콘텐츠 유형을
JSON 웹 토큰으로 보호하는 경우,
"alg": "none" 헤더 매개변수 설정은
JWT 클레임 집합으로 인코딩된 검증 가능한 자격 증명 또는
검증 가능한 프레젠테이션에
무결성 보호가 없음을 나타내는 데 사용됩니다.
발급자, 보유자 및 검증자는 무결성 보호가 없는 모든 JWT 클레임 집합을 반드시 무시해야 합니다.
JWT 클레임 이름 vc와 vp는
검증 가능한 자격 증명 또는 검증 가능한
프레젠테이션을 구성하는 JWT 클레임 집합에 절대로 포함되어서는 안 됩니다.
이 명세는 IETF 초안에 정의된 JWT의 선택적 공개(SD-JWT)를 사용합니다. [SD-JWT]. 구현자는 가급적 다음 초안을 참조해야 합니다. SD-JWT 형식의 전체 세부 사항과 처리 요구 사항을 확인할 수 있습니다.
이 절에서는 이 명세에서 사용하는 용어를 정의합니다. 이러한 용어가 명세에 나타날 때마다 해당 용어로 연결되는 링크가 포함됩니다.
이 절에서는 JOSE, SD-JWT 및 COSE를 사용하여 [VC-DATA-MODEL-2.0]을 준수하는 문서를 보호하는 방법을 개괄적으로 설명합니다.
[VC-DATA-MODEL-2.0]을 준수하는 문서와 관련 미디어 유형은 연결 데이터를 설명하기 위한 확장 가능한 형식인 JSON-LD에 의존합니다. 다음을 참조하세요. JSON-LD와 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인 것이 좋습니다.
vc.
cty 헤더 매개변수 값은
vc+jwt 사용 시 서로 다른 유형의 보호된 콘텐츠를 구별하는 데 사용할 수 있습니다.
content type 헤더 매개변수는 선택 사항이며,
사용 가능한 경우 application/vc보다 구체적인 미디어 유형을 표현할 수 있습니다.
등록된 헤더 매개변수
이름을 참조하세요.
typ와 cty의 사용에 관한 추가 세부 사항을 확인할 수 있습니다.
준수하는 JWS 검증자 구현은 반드시 [RFC7515]를 사용하여 이 미디어 유형을 사용하는 준수하는 JWS 문서를 검증해야 합니다. .
안전하지 않은 채널을 통해 전송할 때 보호된 검증 가능한 자격 증명을 암호화하기 위해 구현자는 JSON 웹 암호화(JWE)를 사용할 수 있습니다. [RFC7516]에 따라 보호된 검증 가능한 자격 증명을 JWE의 평문 페이로드로 중첩할 수 있습니다. 이는 [RFC7519]의 중첩 JWT 설명에 따릅니다.
{
"@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인 것이 좋습니다.
vp.
cty 헤더 매개변수 값은
vp+jwt 사용 시 서로 다른 유형의 보호된 콘텐츠를 구별하는 데 사용할 수 있습니다.
content type 헤더 매개변수는 선택 사항이며,
사용 가능한 경우 application/vc보다 구체적인 미디어 유형을 표현할 수 있습니다.
등록된 헤더 매개변수
이름을 참조하세요.
typ와 cty의 사용에 관한 추가 세부 사항을 확인할 수 있습니다.
준수하는 JWS 검증자 구현은 반드시 [RFC7515]를 사용하여 이 미디어 유형을 사용하는 준수하는 JWS 문서를 검증해야 합니다. .
검증 가능한 프레젠테이션에 포함되어 보호되는 검증 가능한 자격 증명은 반드시 다음 유형을 사용해야 합니다. 봉투화된 검증 가능한 자격 증명 유형은 [VC-DATA-MODEL-2.0]에 정의되어 있습니다.
검증 가능한 프레젠테이션에 포함된 검증 가능한 프레젠테이션은 반드시 다음 유형을 사용해야 합니다. 봉투화된 검증 가능한 프레젠테이션 유형은 [VC-DATA-MODEL-2.0]에 정의되어 있습니다.
검증 가능한 프레젠테이션에 포함된 자격 증명은 반드시 보호되어야 합니다. 이 경우 이러한 자격 증명은 JWS를 사용하여 보호됩니다.
안전하지 않은 채널을 통해 전송할 때 보호된 검증 가능한 프레젠테이션을 암호화하기 위해 구현자는 JSON 웹 암호화(JWE)를 사용할 수 있습니다. [RFC7516]에 따라 보호된 검증 가능한 프레젠테이션을 JWE의 평문 페이로드로 중첩할 수 있으며, [RFC7519]의 중첩 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"],
"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 압축 직렬화를 지원해야 합니다. JWS JSON 직렬화 사용은 권장되지 않습니다.
이 절은 비규범적입니다.
JOSE 헤더 또는 JWT 클레임 집합에 존재하는 경우, IANA의 JSON 웹 토큰 클레임 레지스트리 또는 IANA의 JSON 웹 서명 및 암호화 헤더 매개변수 레지스트리에 등록된 멤버는 해당 레지스트리에서 참조하는 명세의 정의에 따라 해석해야 합니다.
다음에 포함된 규범적 문장은 등록된 헤더 매개변수 이름, JOSE 헤더 및 클레임을 헤더 매개변수로 복제하기에 포함되며, 자격 증명 및 프레젠테이션을 보호하는 데 적용됩니다.
인코딩되지 않은 JOSE 헤더는 JSON(application/json)이며 JSON-LD
(application/ld+json)가 아닙니다.
IANA의 사용이 권장됩니다.
JSON 웹 토큰 클레임
레지스트리와 IANA의
JSON 웹 서명 및 암호화 헤더
매개변수
레지스트리를 사용하여 [VC-DATA-MODEL-2.0]에서 정의한 멤버와
혼동될 수 있는 클레임 및 헤더 매개변수를 식별하는 것이 좋습니다.
여기에는 iss,
kid, alg, iat,
exp 및 cnf 등이 포함되지만 이에 국한되지 않습니다.
iat(발급 시각) 및/또는
exp(만료 시각) JWT 클레임이 존재하면,
각각 서명의 발급 시각과 만료 시각을
나타냅니다.
이는 validFrom 및
validUntil 속성과 다르다는 점에 유의하세요.
해당 속성은
유효 기간에 정의되어 있으며,
보호 대상 데이터의 유효성을 나타냅니다.
nbf(이전에는 유효하지 않음) 클레임 사용은 권장되지 않습니다.
서명에 미래 날짜를 지정하려는 시도는
별다른 의미가 없기 때문입니다.
이 명세에서 제공하는 클레임과 보안은 보호되는 데이터 및 [VC-DATA-MODEL-2.0]에서 제공하는 의미 체계와 독립적입니다. 이는 이 명세의 보안 기능이 데이터의 무결성과 진위성을 보장하더라도, 클레임 데이터의 해석을 규정하지는 않는다는 의미입니다.
구현자는 JWT 클레임이 검증 가능한 자격 증명의
속성 값과 충돌하는 값으로 설정하지 않는 것이 좋습니다.
클레임과 속성 쌍이 동일한 개념적 엔터티를 가리키는 경우,
특히 iss와 issuer, jti와
id,
sub와 credentialSubject.id 등의 쌍에 주의해야 합니다.
예를 들어 JWK 클레임 iss는 가급적
검증 가능한 자격 증명 속성
issuer의 값과 충돌하는 값으로 설정해서는 안 됩니다.
JWT 클레임 이름 vc와 vp는 절대로
포함되어서는 안 됩니다.
추가 멤버가 헤더 매개변수 및 클레임으로 존재할 수 있습니다. 이러한 멤버를 이해할 수 없는 경우 반드시 무시해야 합니다.
이 절에서는 JOSE를 사용하여 검증 가능한 자격 증명을 보호하는 방법을 자세히 설명합니다. [VC-DATA-MODEL-2.0]을 준수합니다.
준수하는 SD-JWT 발급자 구현은 반드시 [SD-JWT]를 사용하여 이 미디어 유형을 보호해야 합니다. 보호되지 않은 검증 가능한 자격 증명은 입력 JWT 클레임 집합입니다. 그런 다음 발급자는 입력 JWT 클레임 집합(즉, 보호되지 않은 검증 가능한 자격 증명)을 [SD-JWT] 페이로드로 변환합니다. 다음에 따라 수행합니다. SD-JWT 발급 지침.
typ 헤더 매개변수는 vc+sd-jwt인 것이 좋습니다.
cty 헤더 매개변수가 존재하는 경우 vc인 것이 좋습니다.
vc.
cty 헤더 매개변수 값은
vc+sd-jwt 사용 시 서로 다른 유형의 보호된 콘텐츠를 구별하는 데 사용할 수 있습니다.
content type 헤더 매개변수는 선택 사항이며,
사용 가능한 경우 application/vc보다 구체적인 미디어 유형을 표현할 수 있습니다.
등록된 헤더 매개변수
이름을 참조하세요.
typ와 cty의 사용에 관한 추가 세부 사항을 확인할 수 있습니다.
준수하는 SD-JWT 검증자 구현은 반드시 [SD-JWT]를 사용하여 이 미디어 유형을 사용하는 준수하는 JWS 문서를 검증해야 합니다.
검증 가능한 자격 증명을
[SD-JWT]로 보호할 때,
구현자는 자격 증명의 유효성 검사와 검증에 필요한 속성이
선택적으로 공개될 수 없도록 하는 것이 좋습니다.
(즉, 이러한 속성은 공개하는 것이 좋습니다.)
이러한 속성에는 다음이 포함될 수 있지만 이에 국한되지 않습니다.
@context,
type,
credentialStatus,
credentialSchema,
및 relatedResource.
안전하지 않은 채널을 통해 전송할 때 보호된 검증 가능한 자격 증명을 암호화하기 위해 구현자는 JSON 웹 암호화(JWE)를 사용할 수 있습니다. [RFC7516]에 따라 보호된 검증 가능한 자격 증명을 JWE의 평문 페이로드로 중첩할 수 있으며, [SD-JWT]의 11.2절 지침을 따릅니다.
{
"@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": 1791525815,
"exp": 1792735415,
"_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": [
"rhMUp99l11L_m5aclao8ee-vnOQqWCtrVvRJmhFHC-0"
]
},
"alumniOf": {
"name": "Example University"
},
"_sd": [
"Umh4b_DbZ0y_-K1gR24wUPDxuxZHouDYM7NlITOdB4M"
]
},
"credentialSchema": [
{
"_sd": [
"IH0oFlXpwF1XnhOZL6EY3rPNzGAH3Nk_-m3Iagooh3U",
"kJ1TY_36UMnNGKtvqmZY-Ic9N4cZnsK3hVLLG1GZI9o"
]
},
{
"_sd": [
"6u4u8xmDrgAQIOGtbbFvd5dL12aRGdDz8nt_Yv59w6Q",
"MkB2CaEROZ2Pmsrg0mur_8awK-hUhiJ2xFLSRDBPuZw"
]
}
],
"_sd": [
"0XceFXNCYz5cuoGmOw3wwQ1Q_gjC1hPb4J43e6-4YsE",
"bT4RL15gAXf4UyJMioSTI7yE5PIBLmqoGJ8u4V5tYZs"
]
}
SHA-256 해시: bT4RL15gAXf4UyJMioSTI7yE5PIBLmqoGJ8u4V5tYZs
공개 정보: WyItZUhiTmNnQXZRUk9kc0RqOEY0eGNRIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
내용: [
"-eHbNcgAvQROdsDj8F4xcQ",
"id",
"http://university.example/credentials/3732"
]
SHA-256 해시: 0XceFXNCYz5cuoGmOw3wwQ1Q_gjC1hPb4J43e6-4YsE
공개 정보: WyI1Mk12Q0Y1NS0zaE1vQVJKVU5YWThBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIiwgIkV4YW1wbGVQZXJzb25DcmVkZW50aWFsIl1d
내용: [
"52MvCF55-3hMoARJUNXY8A",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential",
"ExamplePersonCredential"
]
]
SHA-256 해시: Umh4b_DbZ0y_-K1gR24wUPDxuxZHouDYM7NlITOdB4M
공개 정보: WyJnTkhaLTZDaXYzWkdwY2RSZnI2RVBnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
내용: [
"gNHZ-6Civ3ZGpcdRfr6EPg",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 해시: rhMUp99l11L_m5aclao8ee-vnOQqWCtrVvRJmhFHC-0
공개 정보: WyJKdFFSbm1pbF9rb3BRbXVQcTk0VmZnIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
내용: [
"JtQRnmil_kopQmuPq94Vfg",
"type",
"ExampleBachelorDegree"
]
SHA-256 해시: IH0oFlXpwF1XnhOZL6EY3rPNzGAH3Nk_-m3Iagooh3U
공개 정보: WyJOYXY3UkhoMF9xakZJcHZrRzBtUmZRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ
내용: [
"Nav7RHh0_qjFIpvkG0mRfQ",
"id",
"https://example.org/examples/degree.json"
]
SHA-256 해시: kJ1TY_36UMnNGKtvqmZY-Ic9N4cZnsK3hVLLG1GZI9o
공개 정보: WyJCaWZWNHRJdHo3d3BXWUlaLWs5dDR3IiwgInR5cGUiLCAiSnNvblNjaGVtYSJd
내용: [
"BifV4tItz7wpWYIZ-k9t4w",
"type",
"JsonSchema"
]
SHA-256 해시: MkB2CaEROZ2Pmsrg0mur_8awK-hUhiJ2xFLSRDBPuZw
공개 정보: WyJWd1ZWUkQ3OVk5bFA0bmdRUE9uczVRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvYWx1bW5pLmpzb24iXQ
내용: [
"VwVVRD79Y9lP4ngQPOns5Q",
"id",
"https://example.org/examples/alumni.json"
]
SHA-256 해시: 6u4u8xmDrgAQIOGtbbFvd5dL12aRGdDz8nt_Yv59w6Q
공개 정보: WyJCc1JRUEd3d1B3VlVuemF4dWFfRDZBIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd
내용: [
"BsRQPGwwPwVUnzaxua_D6A",
"type",
"JsonSchema"
]
이 예제에 관한 자세한 내용은 검증 가능한 자격 증명 데이터 모델 v2.0을 참조하세요.
이 절에서는 [SD-JWT]를 사용하여 검증 가능한 프레젠테이션을 보호하는 방법을 자세히 설명합니다. [VC-DATA-MODEL-2.0]을 준수합니다.
준수하는 SD-JWT 발급자 구현은 반드시 [SD-JWT]를 사용하여 이 미디어 유형을 보호해야 합니다. 보호되지 않은 검증 가능한 프레젠테이션은 인코딩되지 않은 [SD-JWT] 페이로드입니다.
typ 헤더 매개변수는 vp+sd-jwt인 것이 좋습니다.
cty 헤더 매개변수가 존재하는 경우 vp인 것이 좋습니다.
vp.
cty 헤더 매개변수 값은
vp+sd-jwt 사용 시 서로 다른 유형의 보호된 콘텐츠를 구별하는 데 사용할 수 있습니다.
content type 헤더 매개변수는 선택 사항이며,
사용 가능한 경우 application/vc보다 구체적인 미디어 유형을 표현할 수 있습니다.
등록된 헤더 매개변수
이름을 참조하세요.
typ와 cty의 사용에 관한 추가 세부 사항을 확인할 수 있습니다.
준수하는 SD-JWT 검증자 구현은 반드시 [SD-JWT]를 사용하여 이 미디어 유형을 사용하는 준수하는 JWS 문서를 검증해야 합니다.
검증 가능한 프레젠테이션에 포함되어 보호되는 검증 가능한 자격 증명은 반드시 다음 유형을 사용해야 합니다. 봉투화된 검증 가능한 자격 증명 유형은 [VC-DATA-MODEL-2.0]에 정의되어 있습니다.
검증 가능한 프레젠테이션에 포함된 검증 가능한 프레젠테이션은 반드시 다음 유형을 사용해야 합니다. 봉투화된 검증 가능한 프레젠테이션 유형은 [VC-DATA-MODEL-2.0]에 정의되어 있습니다.
검증 가능한 프레젠테이션에 포함된 자격 증명은 반드시 보호되어야 합니다. 이 경우 이러한 자격 증명은 SD-JWT를 사용하여 보호됩니다.
검증 가능한
프레젠테이션을 [SD-JWT]로 보호할 때,
구현자는 자격 증명의 유효성 검사와 검증에 필요한 속성이
선택적으로 공개될 수 없도록 하는 것이 좋습니다.
(즉, 이러한 속성은 공개하는 것이 좋습니다.)
이러한 속성에는 다음이 포함될 수 있지만 이에 국한되지 않습니다.
@context,
type,
credentialStatus,
credentialSchema,
및 relatedResource.
안전하지 않은 채널을 통해 전송할 때 보호된 검증 가능한 프레젠테이션을 암호화하기 위해 구현자는 JSON 웹 암호화(JWE)를 사용할 수 있습니다. [RFC7516]에 따라 보호된 검증 가능한 프레젠테이션을 JWE의 평문 페이로드로 중첩할 수 있으며, [SD-JWT]의 11.2절 지침을 따릅니다.
{
"@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": 1791525815,
"exp": 1792735415,
"_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": [
"7VegGib7jvR_MTe82B03VHTTZD3_BoPznBGvzVGZ8Lg",
"UjTk9k_YZdd3lwTldBEDjhFGz1H3tdd52y0kVlku9Y4"
]
}
],
"_sd": [
"dOeMCySU8E75Dhu9v2lOMPWVjOm6bc_KyGwi4UTiEZc"
]
}
SHA-256 해시: dOeMCySU8E75Dhu9v2lOMPWVjOm6bc_KyGwi4UTiEZc
공개 정보: WyJfNm05ckJuTllRSlJtUmxnaVowdzZ3IiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd
내용: [
"_6m9rBnNYQJRmRlgiZ0w6w",
"type",
"VerifiablePresentation"
]
SHA-256 해시: 7VegGib7jvR_MTe82B03VHTTZD3_BoPznBGvzVGZ8Lg
공개 정보: WyJ0S1hEZlRiYjRRUl9qNG9qcHI3aGpnIiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
내용: [
"tKXDfTbb4QR_j4ojpr7hjg",
"type",
"EnvelopedVerifiableCredential"
]
SHA-256 해시: UjTk9k_YZdd3lwTldBEDjhFGz1H3tdd52y0kVlku9Y4
공개 정보: WyJJSjJvLTZ4U3QzNG85dGZyZTJiMVBnIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrc2Qtand0LCBleUpyYVdRaU9pSkZlRWhyUWsxWE9XWnRZbXQyVmpJMk5tMVNjSFZRTW5OVldWOU9YMFZYU1U0eGJHRndWWHBQT0hKdklpd2lZV3huSWpvaVJWTXlOVFlpZlEuZXlKZmMyUmZZV3huSWpvaWMyaGhMVEkxTmlJc0lrQmpiMjUwWlhoMElqcGJJbWgwZEhCek9pOHZkM2QzTG5jekxtOXlaeTl1Y3k5amNtVmtaVzUwYVdGc2N5OTJNaUlzSW1oMGRIQnpPaTh2ZDNkM0xuY3pMbTl5Wnk5dWN5OWpjbVZrWlc1MGFXRnNjeTlsZUdGdGNHeGxjeTkyTWlKZExDSnBjM04xWlhJaU9pSm9kSFJ3Y3pvdkwzVnVhWFpsY25OcGRIa3VaWGhoYlhCc1pTOXBjM04xWlhKekx6VTJOVEEwT1NJc0luWmhiR2xrUm5KdmJTSTZJakl3TVRBdE1ERXRNREZVTVRrNk1qTTZNalJhSWl3aVkzSmxaR1Z1ZEdsaGJGTmphR1Z0WVNJNmV5SmZjMlFpT2xzaU5qVkZMVlpaYm1FM1VFNW1TR1ZzVURONlRIRndjRTVFUlhoU0xXaGpXa2hTVG5seE4yVTBaVmRhYnlJc0lqaEpiRXd0VUd4NFVrdDNTMGhMYVRNdFRYaFhNak00ZDBGa1RtUTBOSGRhYkMxaVkzTkJjMkpJUWpBaVhYMHNJbU55WldSbGJuUnBZV3hUZFdKcVpXTjBJanA3SW1SbFozSmxaU0k2ZXlKdVlXMWxJam9pUW1GamFHVnNiM0lnYjJZZ1UyTnBaVzVqWlNCaGJtUWdRWEowY3lJc0lsOXpaQ0k2V3lKTVZYaHFjV3RzV1MxaGREVlNWbUZvU1hweE0zTkpaMDE1ZGtkd1ZEbHdkbFV3ZFRSeVUya3RNWGwzSWwxOUxDSmZjMlFpT2xzaVZteFpMVzUwWmtsUE9VSTVSR1JzVVdwNVUyUkVNbGRvVldJMGJqYzNabDlIV0RaMlUxZExRV3BDTkNKZGZTd2lYM05rSWpwYklpMWlSRVo0VW05NFVVVmxjRWRqWkZsNmEyNTBhVFZHV1hCc1VUVTVOMGRqYUVkVVRHVnRMVkpTWTFVaUxDSmZSRUZWWjB4clRGOXpWa1Z0TFRCdmNFOHphV2hwZVZGaFMwWnpUMDh4VWw5T05rMUNVbXByT1doRklsMTkuS2MwODNSS2JCeGMzVnI1cVIzaUVFUHAzZEt4VGE2c1BhV05zcXRrSXc4VHZNUmY5RVpMMmFqdGdrV1NCWXp5ek96YXdPckNYcnl5cDRyTVR5STl2ZkEgfld5SmlRMVJUYVU5SE5VbzFWWGhQWTFRd1VsTmZkMDFuSWl3Z0ltbGtJaXdnSW1oMGRIQTZMeTkxYm1sMlpYSnphWFI1TG1WNFlXMXdiR1V2WTNKbFpHVnVkR2xoYkhNdk1UZzNNaUpkfld5SlRjbE5XTVMwMVNqUjZjV2hPVTNOM1NUSXdhSGRSSWl3Z0luUjVjR1VpTENCYklsWmxjbWxtYVdGaWJHVkRjbVZrWlc1MGFXRnNJaXdnSWtWNFlXMXdiR1ZCYkhWdGJtbERjbVZrWlc1MGFXRnNJbDFkfld5SktYMjk0ZERodFVHVXRhRGw0TWtRemMyOXVUMU4zSWl3Z0ltbGtJaXdnSW1oMGRIQnpPaTh2WlhoaGJYQnNaUzV2Y21jdlpYaGhiWEJzWlhNdlpHVm5jbVZsTG1wemIyNGlYUX5XeUpETWxwV2VrdG1aMTg1UlVoMWFqQjJTMUV4ZFdKbklpd2dJblI1Y0dVaUxDQWlTbk52YmxOamFHVnRZU0pkfld5SjZTemQ1UWxGUGJGaGZYMlEwWDBWb1lVYzBZMHBSSWl3Z0ltbGtJaXdnSW1ScFpEcGxlR0Z0Y0d4bE9qRXlNeUpkfld5SjZiMXB6UnpNemVYQk1lVlJHTW05YVMzWm1NVkZuSWl3Z0luUjVjR1VpTENBaVFtRmphR1ZzYjNKRVpXZHlaV1VpWFF-Il0
내용: [
"IJ2o-6xSt34o9tfre2b1Pg",
"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": 1791525815,
"exp": 1792735415,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"_sd": [
"ggPOscaq4f_z7Q7yzdljda1itF2kR3NXXFK0kspNhUQ",
"xZQOrLAEORQfsZEAUX434yrzLwMFHyVMHAQx0AddX3E"
]
}
SHA-256 해시: ggPOscaq4f_z7Q7yzdljda1itF2kR3NXXFK0kspNhUQ
공개 정보: WyJPQkpmWFN6Z04xV1RyX1A1VFZ2aHZ3IiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd
내용: [
"OBJfXSzgN1WTr_P5TVvhvw",
"type",
"EnvelopedVerifiablePresentation"
]
SHA-256 해시: xZQOrLAEORQfsZEAUX434yrzLwMFHyVMHAQx0AddX3E
공개 정보: WyJvV1BwRkdNY0pJai1IaFoxaXNZTG5RIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdnArc2Qtand0LCBleUpoYkdjaU9pSkZVek00TkNJc0ltdHBaQ0k2SWxWUlRWOWZibEUwVXpaQ1R6aHVVVFJ1VDA1WWVIQjRhSFJvYjNsT2VHSTFNMHhaWjFsNkxUSkJRbk1pTENKMGVYQWlPaUoyY0N0c1pDdHFjMjl1SzNOa0xXcDNkQ0lzSW1OMGVTSTZJblp3SzJ4a0sycHpiMjRpZlEuZXlKQVkyOXVkR1Y0ZENJNld5Sm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3Zibk12WTNKbFpHVnVkR2xoYkhNdmRqSWlMQ0pvZEhSd2N6b3ZMM2QzZHk1M015NXZjbWN2Ym5NdlkzSmxaR1Z1ZEdsaGJITXZaWGhoYlhCc1pYTXZkaklpWFN3aWRtVnlhV1pwWVdKc1pVTnlaV1JsYm5ScFlXd2lPbHQ3SWtCamIyNTBaWGgwSWpwYkltaDBkSEJ6T2k4dmQzZDNMbmN6TG05eVp5OXVjeTlqY21Wa1pXNTBhV0ZzY3k5Mk1pSXNJbWgwZEhCek9pOHZkM2QzTG5jekxtOXlaeTl1Y3k5amNtVmtaVzUwYVdGc2N5OWxlR0Z0Y0d4bGN5OTJNaUpkTENKcGMzTjFaWElpT2lKb2RIUndjem92TDNWdWFYWmxjbk5wZEhrdVpYaGhiWEJzWlM5cGMzTjFaWEp6THpVMk5UQTBPU0lzSW5aaGJHbGtSbkp2YlNJNklqSXdNVEF0TURFdE1ERlVNVGs2TWpNNk1qUmFJaXdpWTNKbFpHVnVkR2xoYkZOMVltcGxZM1FpT25zaVlXeDFiVzVwVDJZaU9uc2libUZ0WlNJNklrVjRZVzF3YkdVZ1ZXNXBkbVZ5YzJsMGVTSXNJbDl6WkNJNld5Sm9lazlMUnpVMmNESTVjMUJ5VEdGRE5VRTRSbmRGZFVjelZVMDVkVWxaVTFwMWNVOVljekpsVkdKQklsMTlMQ0pmYzJRaU9sc2lXVmRYVm1WRFJuZHhRbWs0V0RCcVNGOWpWME5XV1UxNlNUTmhPSEJqVEVWWVJXWmljRk5TUVZsbmR5SmRmU3dpWDNOa0lqcGJJakpKWmpoaGFVczRSRVp3VldKNGRFYzFjR013ZWw5U2FGSnpibTF5YkdGUk1FaHpjVGs0V0ZOeVlXc2lMQ0pVZURaNFpXWk1WVWRVWlVwZllXdFZVRmRHZUhOdmJVaG9iR3RXVm5wZk56Vm9hVlo2ZVdweVltVnpJbDE5WFN3aVgzTmtJanBiSWpkMmFubDBWVk4zWkVKME1YUTVSa3RsT1ZGZlMzSklSWGhGV0d4clRFRmFUekJLTTBKcGQyMDBkbGtpWFN3aVgzTmtYMkZzWnlJNkluTm9ZUzB5TlRZaUxDSnBZWFFpT2pFM01EWTFOakk0TkRrc0ltVjRjQ0k2TVRjek9ERTROVEkwT1N3aVkyNW1JanA3SW1wM2F5STZleUpyZEhraU9pSkZReUlzSW1OeWRpSTZJbEF0TXpnMElpd2lZV3huSWpvaVJWTXpPRFFpTENKNElqb2lkV3RFZDFVMlp6bFFVVlJGVVdoWWFFZ3lja1JaTm5kTVFsZzNVSEZsVWpaQmNHbGhWSEJFVVhvd2NsOHRkRGw2VVhOeGVtNTRaMGhFY0U1b2VrWmxReUlzSW5raU9pSk1RbmhWWW5CVmRGTkdNVlZLVlRWcFluSklka3BJTmpCVVNHNVlNazF4YTB4SFpHbHRVMWwwVUdSNFJsa3hPRWRoY2xkaVMzRlpWMGRqVWtaSFZFOUJJbjE5ZlEua1lENjNZdEJOWW5MVVR3NlN6ZjF2c19VZzNVQlhoUHdDeXFwTm1QblBEYTNyWFpRaFFMZEIxQmdhb084emdRLWMzQjQxZnhhWE1uTEhZVjktQjIwdWJvU3BKUDBCLTJWcmU5MTdlUXQxY1NEc3dER0FfWXR2bjRCU3FZVkJCMkp-V3lKRk1rRnNSemhzWTJwMFFWRnJjbGxJYmpsSWJuVlJJaXdnSW5SNWNHVWlMQ0FpVm1WeWFXWnBZV0pzWlZCeVpYTmxiblJoZEdsdmJpSmR-V3lJNU5sZFlNRFJuZW5vNGNWWnpPVlpMVTJ3d1lUVm5JaXdnSW1sa0lpd2dJbWgwZEhBNkx5OTFibWwyWlhKemFYUjVMbVY0WVcxd2JHVXZZM0psWkdWdWRHbGhiSE12TVRnM01pSmR-V3lKYWVrVTJWRlZhYW10SE1XMURXWEJLTUVobmMwbDNJaXdnSW5SNWNHVWlMQ0JiSWxabGNtbG1hV0ZpYkdWRGNtVmtaVzUwYVdGc0lpd2dJa1Y0WVcxd2JHVkJiSFZ0Ym1sRGNtVmtaVzUwYVdGc0lsMWR-V3lJdFEzTnNTMjVHWkdGWWIySmlRV3N5VTBKQlZHUjNJaXdnSW1sa0lpd2dJbVJwWkRwbGVHRnRjR3hsT21WaVptVmlNV1kzTVRKbFltTTJaakZqTWpjMlpURXlaV015TVNKZH5XeUp1Um0xT1dsOUljekIzV1dOb09GZGtlVGRuUVVOUklpd2dJbWxrSWl3Z0ltUnBaRHBsZUdGdGNHeGxPbU15TnpabE1USmxZekl4WldKbVpXSXhaamN4TW1WaVl6Wm1NU0pkfiJd
내용: [
"oWPpFGMcJIj-HhZ1isYLnQ",
"id",
"data:application/vp+sd-jwt, eyJhbGciOiJFUzM4NCIsImtpZCI6IlVRTV9fblE0UzZCTzhuUTRuT05YeHB4aHRob3lOeGI1M0xZZ1l6LTJBQnMiLCJ0eXAiOiJ2cCtsZCtqc29uK3NkLWp3dCIsImN0eSI6InZwK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlt7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy92MiIsImh0dHBzOi8vd3d3LnczLm9yZy9ucy9jcmVkZW50aWFscy9leGFtcGxlcy92MiJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzU2NTA0OSIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiYWx1bW5pT2YiOnsibmFtZSI6IkV4YW1wbGUgVW5pdmVyc2l0eSIsIl9zZCI6WyJoek9LRzU2cDI5c1ByTGFDNUE4RndFdUczVU05dUlZU1p1cU9YczJlVGJBIl19LCJfc2QiOlsiWVdXVmVDRndxQmk4WDBqSF9jV0NWWU16STNhOHBjTEVYRWZicFNSQVlndyJdfSwiX3NkIjpbIjJJZjhhaUs4REZwVWJ4dEc1cGMwel9SaFJzbm1ybGFRMEhzcTk4WFNyYWsiLCJUeDZ4ZWZMVUdUZUpfYWtVUFdGeHNvbUhobGtWVnpfNzVoaVZ6eWpyYmVzIl19XSwiX3NkIjpbIjd2anl0VVN3ZEJ0MXQ5RktlOVFfS3JIRXhFWGxrTEFaTzBKM0Jpd200dlkiXSwiX3NkX2FsZyI6InNoYS0yNTYiLCJpYXQiOjE3MDY1NjI4NDksImV4cCI6MTczODE4NTI0OSwiY25mIjp7Imp3ayI6eyJrdHkiOiJFQyIsImNydiI6IlAtMzg0IiwiYWxnIjoiRVMzODQiLCJ4IjoidWtEd1U2ZzlQUVRFUWhYaEgyckRZNndMQlg3UHFlUjZBcGlhVHBEUXowcl8tdDl6UXNxem54Z0hEcE5oekZlQyIsInkiOiJMQnhVYnBVdFNGMVVKVTVpYnJIdkpINjBUSG5YMk1xa0xHZGltU1l0UGR4RlkxOEdhcldiS3FZV0djUkZHVE9BIn19fQ.kYD63YtBNYnLUTw6Szf1vs_Ug3UBXhPwCyqpNmPnPDa3rXZQhQLdB1BgaoO8zgQ-c3B41fxaXMnLHYV9-B20uboSpJP0B-2Vre917eQt1cSDswDGA_Ytvn4BSqYVBB2J~WyJFMkFsRzhsY2p0QVFrcllIbjlIbnVRIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd~WyI5NldYMDRneno4cVZzOVZLU2wwYTVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJaekU2VFVaamtHMW1DWXBKMEhnc0l3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyItQ3NsS25GZGFYb2JiQWsyU0JBVGR3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJuRm1OWl9IczB3WWNoOFdkeTdnQUNRIiwgImlkIiwgImRpZDpleGFtcGxlOmMyNzZlMTJlYzIxZWJmZWIxZjcxMmViYzZmMSJd~"
]
이 예제에 관한 자세한 내용은 검증 가능한 자격 증명 데이터 모델 v2.0을 참조하세요.
구현은 반드시 압축 직렬화
(application/sd-jwt)를 지원해야 하며 JSON 직렬화
(application/sd-jwt+json)도 지원할 수 있습니다.
JSON 직렬화를 사용하는 경우, 추가 JSON 멤버를
일관되게 이해할 수 있도록 프로파일을 정의하는 것이 권장됩니다.
COSE [RFC9052]는 CBOR [RFC8949]를 사용하여 정보를 인코딩하고 보호하는 일반적인 접근 방식입니다. 검증 가능한 자격 증명은 COSE [RFC9052]를 사용하여 보호할 수 있으며, 이 절에서 설명하는 콘텐츠 유형을 사용하여 식별하는 것이 좋습니다.
이 절에서는 COSE를 사용하여 검증 가능한 자격 증명을 보호하는 방법을 자세히 설명합니다. [VC-DATA-MODEL-2.0]을 준수합니다.
준수하는 COSE 발급자 구현은 반드시 COSE_Sign1을 사용해야 하며, [RFC9052]에 명시된 대로 이 미디어 유형을 보호해야 합니다. 보호되지 않은 검증 가능한 자격 증명은 인코딩되지 않은 COSE_Sign1 페이로드입니다.
typ (16) 헤더 매개변수는 다음에 설명된 대로
COSE "typ"(유형) 헤더 매개변수에 따라
application/vc+cose인 것이 좋습니다.
content type (3) 헤더 매개변수는 application/vc인 것이 좋습니다.
application/vc.
content type (3) 헤더 매개변수는 선택 사항이며,
사용 가능한 경우 application/vc보다 구체적인 미디어 유형을 표현할 수 있습니다.
자세한 내용은 공통 COSE 헤더 매개변수를
참조하세요.
준수하는 COSE 검증자 구현은 반드시 COSE_Sign1을 사용해야 하며, [RFC9052]에 명시된 대로 이 미디어 유형을 사용하는 준수하는 COSE 문서를 검증해야 합니다.
COSE로 보호된 검증 가능한 자격 증명을 검증 가능한 프레젠테이션에 봉투화된 검증 가능한 자격 증명으로 포함하는 경우, 해당 자격 증명은 반드시 [RFC2397]에 명시된 대로 base64로 인코딩해야 합니다.
안전하지 않은 채널을 통해 전송할 때 보호된 검증 가능한 자격 증명을 암호화하기 위해 구현자는 COSE 암호화를 사용할 수 있습니다. [RFC9052]의 제5절에 정의된 대로 보호된 검증 가능한 자격 증명을 암호화된 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 발급자 구현은 반드시 COSE_Sign1을 사용해야 하며, [RFC9052]에 명시된 대로 이 미디어 유형을 보호해야 합니다. 보호되지 않은 검증 가능한 프레젠테이션은 인코딩되지 않은 COSE_Sign1 페이로드입니다.
typ (16) 헤더 매개변수는 다음에 설명된 대로
COSE "typ"(유형) 헤더 매개변수에 따라
application/vp+cose인 것이 좋습니다.
content type (3) 헤더 매개변수는 application/vp인 것이 좋습니다.
application/vp.
content type (3) 헤더 매개변수는 선택 사항이며,
사용 가능한 경우 application/vp보다 구체적인 미디어 유형을 표현할 수 있습니다.
자세한 내용은 공통 COSE 헤더 매개변수를
참조하세요.
준수하는 COSE 검증자 구현은 반드시 COSE_Sign1을 사용해야 하며, [RFC9052]에 명시된 대로 이 미디어 유형을 사용하는 준수하는 COSE 문서를 검증해야 합니다.
검증 가능한 프레젠테이션에 포함되어 보호되는 검증 가능한 자격 증명은 반드시 다음 유형을 사용해야 합니다. 봉투화된 검증 가능한 자격 증명 유형은 [VC-DATA-MODEL-2.0]에 정의되어 있습니다.
검증 가능한 프레젠테이션에 포함된 검증 가능한 프레젠테이션은 반드시 다음 유형을 사용해야 합니다. 봉투화된 검증 가능한 프레젠테이션 유형은 [VC-DATA-MODEL-2.0]에 정의되어 있습니다.
검증 가능한 프레젠테이션에 포함된 자격 증명은 반드시 보호되어야 합니다. 이 경우 이러한 자격 증명은 COSE를 사용하여 보호됩니다.
안전하지 않은 채널을 통해 전송할 때 보호된 검증 가능한 프레젠테이션을 암호화하기 위해 구현자는 COSE 암호화를 사용할 수 있습니다. [RFC9052]의 제5절에 정의된 대로 보호된 검증 가능한 프레젠테이션을 암호화된 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 헤더 또는 CWT 클레임에 존재하는 경우, IANA의 CBOR 웹 토큰(CWT) 클레임 레지스트리 또는 IANA의 COSE 헤더 매개변수 레지스트리에 등록된 멤버는 해당 레지스트리에서 참조하는 명세의 정의에 따라 해석해야 합니다. CBOR 웹 토큰(CWT) [RFC8392] 클레임은 다음에 명시된 대로 COSE 헤더 매개변수에 포함할 수 있습니다. I-D.ietf-cose-cwt-claims-in-headers.
다음에 포함된 규범적 문장은 헤더 매개변수, 클레임 및 COSE 헤더의 CBOR 웹 토큰(CWT) 클레임에 포함되며, 자격 증명 및 프레젠테이션을 보호하는 데 적용됩니다.
IANA의 사용이 권장됩니다.
CBOR 웹 토큰 클레임
레지스트리와 IANA의
COSE 헤더 매개변수
레지스트리를 사용하여 [VC-DATA-MODEL-2.0]에서 정의한 멤버와
혼동될 수 있는 클레임 및 헤더 매개변수를 식별하는 것이 좋습니다.
여기에는 iss,
kid, alg, iat,
exp 및 cnf 등이 포함되지만 이에 국한되지 않습니다.
iat(발급 시각) 및/또는
exp(만료 시각) CWT 클레임이 존재하면,
각각 서명의 발급 시각과 만료 시각을
나타냅니다.
이는 다음 속성과 다르다는 점에
유의하세요. validFrom 및 validUntil 속성은
다음에 정의되어 있으며,
유효 기간에서
보호 대상 데이터의 유효성을 나타냅니다.
nbf(이전에는 유효하지 않음) 클레임 사용은 권장되지 않습니다.
서명에 미래 날짜를 지정하려는 시도는
별다른 의미가 없기 때문입니다.
추가 멤버가 헤더 매개변수 및 클레임으로 존재할 수 있습니다. 이러한 멤버를 이해할 수 없는 경우 반드시 무시해야 합니다.
다음을 완료하기 위해 검증 절차에서 검증자는 암호화 키를 확보해야 합니다. 이 키는 자격 증명을 보호하는 데 사용됩니다.
다음의 검증 키를 탐색하는 방법에는 여러 가지가 있습니다. 발급자와 보유자의 검증 키입니다.
이러한 JOSE 헤더 매개변수와 JWT 클레임은 검증자가 검증 키를 탐색하는 데 사용할 수 있습니다.
kid가
JOSE 헤더 또는
COSE 헤더에 존재하는 경우,
검증자는
이 매개변수를 어떤 키가 사용되었는지 나타내는 힌트로
사용할 수 있습니다. 이는 검증 가능한 자격 증명을 보호하는 데
사용된 키를
검증하는
절차를 수행할 때 적용되며, RFC7515에 정의되어
있습니다.
kid는 다음 키가 반드시 존재해야 하는 경우에 해당합니다.
발급자
또는 주체의 키가
DID URL로 표현되는 경우입니다.
iss가
JOSE 헤더,
JWT 클레임
또는 COSE 헤더에 존재하는 경우,
검증자는
이 매개변수를 사용하여
JSON 웹 키를 확보하고
검증 절차에 사용할 수 있습니다.
발급자
속성의 값은 문자열 또는 객체일 수 있습니다.
issuer 값이 문자열이면 iss 값은
존재하는 경우 issuer 값과 반드시 일치해야 합니다.
issuer 값이 id 값을 가진 객체이면
iss 값은 존재하는 경우 반드시
issuer.id 값과 일치해야 합니다.
kid도
JOSE 헤더에 존재하는 경우,
사용된 특정 키를 구별하는 데 사용됩니다.
cnf가
JOSE 헤더,
JWT 클레임
또는 COSE 헤더에 존재하는 경우,
검증자는 사용할 수
있습니다.
이 매개변수를 사용하여 소유 증명 키를 식별할 수 있으며,
그 방법은 [RFC7800] 또는
[RFC8747]에
설명되어 있습니다. 해당 키는
검증 절차에 사용됩니다.
보유자가 제공한 소유 증명 키를 발급자에게 전달하여 보유자와 암호화 방식으로 결합하는 데 사용하는 것이 좋습니다. 이는 검증 가능한 자격 증명에서 검증자가 검증 가능한 프레젠테이션을 검증할 수 있도록 하기 위해 권장됩니다.
이 명세에서 제어 식별자 문서를 사용하는 경우, 다음 요구 사항이 적용됩니다.
검증 방법의 type 속성 값은 반드시
JsonWebKey여야 합니다.
검증 자료는 JsonWebKey의 publicKeyJwk
속성에 반드시 표현되어야 합니다.
이 키 자료는 JOSE 또는 COSE 메시지
봉투의 kid나 iss 등의 힌트를 기반으로 검색됩니다.
이 문서의 작성 시점에는
DID URL이나 제어 식별자 문서에서
JWK 형식의 공개 키를 검색하는 표준 방법이 없습니다.
iss가 없고 발급자가 [URL]로 식별되는 경우, kid는 반드시 절대 [URL]이어야 하며, 제어 식별자 문서 또는 DID 문서에 나열된 검증 방법을 가리켜야 합니다.
[URL] 식별자를
사용하는 경우, kid는 다음과 같은 것이 권장됩니다.
[URL]은 JWK 지문
URI를 포함하는 절대 URL이며,
[RFC7638]에 정의되어 있습니다.
예를 들어:
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
}
보유자가 [URL]로 식별되고 iss가 없는 경우, kid는 반드시 절대 [URL]이어야 하며, 제어 식별자 문서에 나열된 검증 방법을 가리켜야 합니다.
{
"holder": {
"id": "https://university.example/issuers/565049"
}
// ...
}
{
"alg": "ES384",
"kid": "https://university.example/issuers/565049#key-123
}
이 명세는 다양한 키 탐색 프로토콜과 함께 사용될 수 있습니다. 따라서 검증 키 탐색은 4. 키 탐색에 설명되어 있으며, 검증 절차를 시작하기 전에 성공적으로 완료되었다고 가정합니다.
일반적으로 검증자는 신뢰할 수 없는 데이터의 처리를 최소화하도록 노력하는 것이 좋습니다. 여기에는 키 탐색 절차의 일부로 보호된 헤더, 보호되지 않은 헤더 또는 페이로드를 처리하는 작업을 최소화하는 것도 포함됩니다.
검증에 성공한 후에는 추가 유효성 검사를 수행하는 것이 좋습니다. 이는 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를 false로 설정합니다.
document를 null로 설정합니다.
mediaType을 null로 설정합니다.
이 알고리즘의 입력은 다음과 같습니다.
inputMediaType: vc+cose 또는
vp+cose
inputDocument: 다음으로 보호된 검증 가능한 자격 증명 또는
검증 가능한
프레젠테이션으로, CBOR 객체 서명 및 암호화(COSE):
구조와 처리 과정을 사용하여 보호됩니다.
[RFC9052]로 보호된 검증 가능한 자격 증명 또는 프레젠테이션을 수신하면, 보유자 또는 검증자는 다음 알고리즘을 따릅니다.
status를 true로 설정합니다.
mediaType을 vc 또는 vp로 설정합니다.
document를 디코딩된 COSE_Sign1 페이로드로 설정합니다.
status를 false로 설정합니다.
document를 null로 설정합니다.
mediaType을 null로 설정합니다.
typ에 대해 예상되는 모든 클레임은 반드시 존재해야 합니다.
이해할 수 있는 모든 클레임은 반드시
검증자의 유효성 검사 정책에 따라 평가해야 합니다.
이해할 수 없는 모든 클레임은 반드시 무시해야 합니다.
검증에서 반환된 document는 반드시
올바른 형식의 간결한 JSON-LD 문서여야 하며, 다음에 설명되어 있습니다.
검증 가능한 자격 증명 데이터 모델
v2.0.
credentialSchema와 같은 스키마 확장 메커니즘은
검사하는 것이 좋습니다.
확장 메커니즘의 type을 이해할 수 없는 경우,
이 속성은 반드시 무시해야 합니다.
credentialStatus와 같은 상태 확장 메커니즘은
검사하는 것이 좋습니다.
확장 메커니즘의 type을 이해할 수 없는 경우,
이 속성은 반드시 무시해야 합니다.
검증자의 유효성 검사 정책, 자격 증명 유형 및 보호 메커니즘 유형에 따라 추가 유효성 검사를 적용할 수 있습니다. 예를 들어 여러 자격 증명 간의 종속성, 여러 자격 증명과 관련된 순서 또는 시각 정보, 그리고 여러 프레젠테이션으로 인해 원래 유효했던 자격 증명 또는 프레젠테이션이 유효하지 않은 것으로 간주될 수 있습니다.
이 절은 비규범적입니다.
이 명세는 application/vc+jwt를
미디어 유형으로 등록하며, 이는 특히 다음을 식별하기 위한 것입니다. JSON
웹 토큰(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 검증 가능한 자격 증명 워킹 그룹 public-vc-wg@w3.org |
이 명세는 application/vp+jwt를
미디어 유형으로 등록하며, 이는 특히 다음을 식별하기 위한 것입니다. JSON
웹 토큰(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 검증 가능한 자격 증명 워킹 그룹 public-vc-wg@w3.org |
이 명세는 application/vc+sd-jwt를
미디어 유형으로 등록하며, 이는 특히 다음을 식별하기 위한 것입니다. JWT의
선택적
공개(SD-JWT)로,
해당 페이로드는
검증 가능한 자격 증명 데이터
모델을 준수합니다.
| 유형 이름: | application |
| 하위 유형 이름: | vc+sd-jwt |
| 필수 매개변수: | 해당 없음 |
| 선택적 매개변수: | 해당 없음 |
| 인코딩 고려 사항: |
이진; application/sd-jwt 값은 base64url로 인코딩된 일련의
값이며(일부는 빈 문자열일 수 있음),
마침표('.')와 물결표('~') 문자로 구분됩니다.
|
| 보안 고려 사항: |
이 명세에 정의된 바와 같습니다. JWT의 선택적 공개(SD-JWT)의 보안 고려 사항도 참조하세요. |
| 상호운용성 고려 사항: |
이 명세에 정의된 바와 같습니다. |
| 발행된 명세: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어 유형을 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 준수하는 W3C 검증 가능한 자격 증명 발급자, 보유자 및 검증자 소프트웨어는 이 미디어 유형을 사용하는 애플리케이션에 포함됩니다. 준수하는 애플리케이션 유형은 여기와 여기에 설명되어 있습니다. |
| 사용 제한: | 해당 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 용도: | COMMON |
| 변경 관리 주체: | W3C 검증 가능한 자격 증명 워킹 그룹 public-vc-wg@w3.org |
이 명세는 application/vp+sd-jwt를
미디어 유형으로 등록하며, 이는 특히 다음을 식별하기 위한 것입니다. JWT의
선택적
공개(SD-JWT)로,
해당 페이로드는
검증 가능한 자격 증명 데이터 모델의 검증 가능한 프레젠테이션 정의를 준수합니다.
| 유형 이름: | application |
| 하위 유형 이름: | vp+sd-jwt |
| 필수 매개변수: | 해당 없음 |
| 선택적 매개변수: | 해당 없음 |
| 인코딩 고려 사항: |
이진; application/sd-jwt 값은 base64url로 인코딩된 일련의
값이며(일부는 빈 문자열일 수 있음),
마침표('.')와 물결표('~') 문자로 구분됩니다.
|
| 보안 고려 사항: |
이 명세에 정의된 바와 같습니다. JWT의 선택적 공개(SD-JWT)의 보안 고려 사항도 참조하세요. |
| 상호운용성 고려 사항: |
이 명세에 정의된 바와 같습니다. |
| 발행된 명세: | https://www.w3.org/TR/vc-jose-cose |
| 이 미디어 유형을 사용할 애플리케이션: |
[VC-DATA-MODEL-2.0]을 준수하는 W3C 검증 가능한 자격 증명 발급자, 보유자 및 검증자 소프트웨어는 이 미디어 유형을 사용하는 애플리케이션에 포함됩니다. 준수하는 애플리케이션 유형은 여기와 여기에 설명되어 있습니다. |
| 사용 제한: | 해당 없음 |
| 추가 정보: |
|
| 작성자: | Ivan Herman ivan@w3.org |
| 용도: | COMMON |
| 변경 관리 주체: | W3C 검증 가능한 자격 증명 워킹 그룹 public-vc-wg@w3.org |
이 명세는 application/vc+cose를
미디어 유형으로 등록하며, 이는 특히 COSE 객체 [RFC9052]를 식별하기 위한 것입니다.
해당 페이로드는
검증 가능한 자격 증명 데이터
모델을 준수합니다.
| 유형 이름: | 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 검증 가능한 자격 증명 워킹 그룹 public-vc-wg@w3.org |
이 명세는 application/vp+cose를
미디어 유형으로 등록하며, 이는 특히 COSE 객체 [RFC9052]를 식별하기 위한 것입니다.
해당 페이로드는
검증 가능한 자격 증명 데이터 모델의 검증 가능한 프레젠테이션 정의를 준수합니다.
| 유형 이름: | 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 검증 가능한 자격 증명 워킹 그룹 public-vc-wg@w3.org |
이 절은 비규범적입니다.
검증 가능한 자격 증명에는 민감한 정보가 포함되는 경우가 많으며, 조직과 개인의 개인정보 보호 및 보안을 보장하려면 이러한 정보를 보호해야 합니다. 이 절에서는 구현자와 사용자에게 관련된 개인정보 보호 고려 사항 몇 가지를 개괄적으로 설명합니다.
구현자는 다음 문서에 명시된 모든 개인정보 보호 고려 사항을 숙지하고 준수하는 것이 좋습니다. [VC-DATA-MODEL-2.0].
구현자는 추가로 JWT 명세의 개인정보 보호 고려 사항 절과 NIST 특별 간행물 800-122 [[SP-800-122] "개인 식별 정보(PII)의 기밀성 보호 지침"을 개인정보 보호 지침으로 참고하는 것이 좋습니다.
다음 문서의 개인정보 보호 권고 사항 외에도 [VC-DATA-MODEL-2.0], 다음과 같은 고려 사항을 제시합니다.
데이터 최소화: 검증 가능한 자격 증명에는 의도한 목적을 달성하는 데 필요한 최소한의 데이터만 포함하는 것이 모범 사례로 간주됩니다. 이는 불필요하게 공유되거나 저장되는 민감한 정보의 양을 제한하는 데 도움이 됩니다.
충분한 설명에 기반한 동의: 다음을 모범 사례로 간주합니다. 개인에게 자신의 데이터가 어떻게 사용되는지 충분히 알리고 데이터 사용에 동의하거나 거부할 수 있는 선택권을 제공하는 것입니다. 이는 개인이 자신의 개인정보에 대한 통제권을 유지할 수 있도록 돕습니다.
데이터 보호: 검증 가능한 자격 증명을 강력한 암호화 및 기타 보안 조치를 사용하여 보호함으로써 무단 접근, 수정 또는 공개를 방지하는 것이 모범 사례입니다.
이러한 고려 사항이 모든 경우를 포괄하는 것은 아니므로, 구현자와 사용자는 추가적인 개인정보 보호 자료와 모범 사례를 참고하여 이 명세를 사용해 구현한 검증 가능한 자격 증명의 개인정보 보호와 보안을 보장하는 것이 좋습니다.
이 절에서는 이 명세의 구현자와 사용자에게 적용되는 보안 고려 사항을 설명합니다. JOSE 또는 COSE를 사용해 구현하는 경우 검증 가능한 자격 증명의 보안과 무결성을 보장하려면 이러한 요소를 신중하게 고려하는 것이 중요합니다.
이 명세를 구현할 때는 광범위한 암호화 응용에 관련된 모든 보안 문제를 해결하는 것이 필수적입니다. 특히 사용자의 비대칭 개인 키와 대칭 비밀 키를 보호하고, 다양한 공격에 대한 대응책을 마련해야 합니다. 이러한 문제에 적절히 대응하지 못하면 검증 가능한 자격 증명의 보안과 무결성이 손상되어 민감한 정보에 대한 무단 접근, 수정 또는 공개가 발생할 수 있습니다.
구현자는 모범 사례와 확립된 암호화 표준을 준수하여 키와 기타 민감한 데이터를 안전하게 처리하는 것이 좋습니다. 또한 정기적인 보안 평가와 감사를 수행하여 취약점이나 위협을 식별하고 해결해야 합니다.
[RFC7515] 및 [RFC7519]에 명시된 모든 보안 고려 사항을 준수해야 합니다.
JSON-LD를 사용하는 경우 컨텍스트를 원격으로 가져올 때 특별히 주의하고, [JSON-LD11]에 명시된 추가 보안 고려 사항을 준수해야 합니다.
[RFC7515]에 명시된 대로 JSON [RFC7159]을 사용할 때는 엄격한 유효성 검사가 보안 요구 사항입니다. 잘못된 형식의 JSON을 수신하면 생성자의 의도를 신뢰할 수 있게 해석하지 못할 수 있으며, 이로 인해 모호하거나 악용 가능한 상황이 발생할 수 있습니다. 이러한 위험을 방지하려면 모든 입력 데이터의 구문을 엄격하게 검증하는 JSON 파서를 사용해야 합니다. [RFC7159]에 정의된 JSON 텍스트 구문을 준수하지 않는 모든 JSON 입력은 JSON 파서가 전체를 거부해야 합니다. 유효하지 않은 입력을 거부하지 않으면 검증 가능한 자격 증명의 보안과 무결성이 손상될 수 있습니다.
이 명세를 구현할 때 기술 구현자는 다양한 접근성 요소를 고려하는 것이 매우 중요합니다. 접근성 문제를 무시하면 상당수의 사람들이 해당 정보를 이용할 수 없게 됩니다. 능력에 관계없이 모든 사람이 동등하게 접근할 수 있도록 접근성 지침과 표준을 준수하는 것이 필수적이며, 여기에는 웹 콘텐츠 접근성 지침(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": 1791525815,
"exp": 1792735415,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": {
"_sd": [
"LkQX4TEdj9gbTS-1gPPgPOfkykRRiTk6CHSJOBi88YU"
]
},
"validFrom": "2015-04-16T05:11:32.432Z",
"credentialStatus": {
"statusPurpose": "revocation",
"statusListIndex": "273762",
"statusListCredential": "https://contoso.example/credentials/status/4",
"_sd": [
"14LZ-atjQJJn0_qpSqVG12k69MC90DveAC5Nn_nVoWs",
"9cV79B04NrLibgpRkvUZmkQTgtzvacvolmpl8PVwYAI"
]
},
"credentialSubject": [
{
"_sd": [
"YkGbqQhCYOusdBBiCu1SoAe8SdkjCEs0Z5bQK4gkgQU",
"sDXiGCoFFKH1H7oYSR-yRf7-yaSZ2P5hTrQwjPzffi8"
]
},
{
"_sd": [
"DQDObyRLKv4HbSAT2-AE_tDgLu8bTx4kE4oJP9CDyjM",
"HDUrJ5_oILiYZnXJHzBeiHX55-Tc93KNmR5O1-NstAM"
]
}
],
"_sd": [
"-dzkzzXpYIqcjc_KmbopHjBUr4gLTtDpu_HUWnxr0_0",
"Z4qlpjbCHzNolZC-Df2yYbA2lFf8-jzMbNnez0teg9A"
]
}
SHA-256 해시: Z4qlpjbCHzNolZC-Df2yYbA2lFf8-jzMbNnez0teg9A
공개 정보: WyJsZEpBR2dYZ2R0WTJDbXRkTGJyZjJRIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2NyZWRlbnRpYWxzLzIzODk0NjcyMzk0Il0
내용: [
"ldJAGgXgdtY2CmtdLbrf2Q",
"id",
"https://contoso.example/credentials/23894672394"
]
SHA-256 해시: -dzkzzXpYIqcjc_KmbopHjBUr4gLTtDpu_HUWnxr0_0
공개 정보: WyJXSXFDSkNfc0ZpaWRXeVFlV3NrS2x3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIks5VW5pdENyZWRlbnRpYWwiXV0
내용: [
"WIqCJC_sFiidWyQeWskKlw",
"type",
[
"VerifiableCredential",
"K9UnitCredential"
]
]
SHA-256 해시: LkQX4TEdj9gbTS-1gPPgPOfkykRRiTk6CHSJOBi88YU
공개 정보: WyI2RTNybmVRREJSaEc4NVkybl8ta0RRIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlIl0
내용: [
"6E3rneQDBRhG85Y2n_-kDQ",
"id",
"https://contoso.example"
]
SHA-256 해시: 14LZ-atjQJJn0_qpSqVG12k69MC90DveAC5Nn_nVoWs
공개 정보: WyJGRE5TVXZGT3AxTWo0UTM4c2Z6ZXpBIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2NyZWRlbnRpYWxzL3N0YXR1cy80IzI3Mzc2MiJd
내용: [
"FDNSUvFOp1Mj4Q38sfzezA",
"id",
"https://contoso.example/credentials/status/4#273762"
]
SHA-256 해시: 9cV79B04NrLibgpRkvUZmkQTgtzvacvolmpl8PVwYAI
공개 정보: WyJVRUlZbVVkMzc5STg2djJkR28tRldBIiwgInR5cGUiLCAiU3RhdHVzTGlzdDIwMjFFbnRyeSJd
내용: [
"UEIYmUd379I86v2dGo-FWA",
"type",
"StatusList2021Entry"
]
SHA-256 해시: YkGbqQhCYOusdBBiCu1SoAe8SdkjCEs0Z5bQK4gkgQU
공개 정보: WyJWUmJLVmpNVk1neU5zVkJqV0poSjhnIiwgImlkIiwgImRpZDpleGFtcGxlOjEzMTIzODc2NDEiXQ
내용: [
"VRbKVjMVMgyNsVBjWJhJ8g",
"id",
"did:example:1312387641"
]
SHA-256 해시: sDXiGCoFFKH1H7oYSR-yRf7-yaSZ2P5hTrQwjPzffi8
공개 정보: WyItck1sMHh3RU1uNVc5MjQ4UWxJMTJ3IiwgInR5cGUiLCAiUGVyc29uIl0
내용: [
"-rMl0xwEMn5W9248QlI12w",
"type",
"Person"
]
SHA-256 해시: DQDObyRLKv4HbSAT2-AE_tDgLu8bTx4kE4oJP9CDyjM
공개 정보: WyI0QU1ydklkQ0s2NDJDMEhaYVpmZGF3IiwgImlkIiwgImRpZDpleGFtcGxlOjYzODg4MjMxIl0
내용: [
"4AMrvIdCK642C0HZaZfdaw",
"id",
"did:example:63888231"
]
SHA-256 해시: HDUrJ5_oILiYZnXJHzBeiHX55-Tc93KNmR5O1-NstAM
공개 정보: WyJWY0ZSbUVRRURXUzF2ak16VFZWZ3lRIiwgInR5cGUiLCAiRG9nIl0
내용: [
"VcFRmEQEDWS1vjMzTVVgyQ",
"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": 1791525815,
"exp": 1792735415,
"_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": [
"JNEDi4LUJJDvQx_4gjzrzNzgZQlFxF5HcDGgz1IpQ18",
"nSAnm3EIj3qleDhNCPyX9iHRKLaq87IW4ZdJaZudTUQ"
]
},
"credentialSubject": {
"_sd": [
"EkEzCtNqUfJFCYKRHeCdEOsT2oCg02VnS3E1URNodKU",
"JsIbFLY1XiHyn3zLc-vTRR5XSCvbDZgLFCyW1FoGWCo"
]
},
"_sd": [
"izUKnVrm8paWE63nbMLW_FPCSes35FXgv6zIqM6bKo8",
"pH6_PiX-uH721uNytK7_368RgGROJHaxHAhJ_qftAfA"
]
}
SHA-256 해시: izUKnVrm8paWE63nbMLW_FPCSes35FXgv6zIqM6bKo8
공개 정보: WyJnc3hOV2xwbm9ORlJ0dzZlWXZLZ3NBIiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2NyZWRlbnRpYWxzLzM1MzI3MjU1Il0
내용: [
"gsxNWlpnoNFRtw6eYvKgsA",
"id",
"https://contoso.example/credentials/35327255"
]
SHA-256 해시: pH6_PiX-uH721uNytK7_368RgGROJHaxHAhJ_qftAfA
공개 정보: WyJFcVcyZzh6dWZBU1dxWEhzLUxhUlh3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIktZQ0V4YW1wbGUiXV0
내용: [
"EqW2g8zufASWqXHs-LaRXw",
"type",
[
"VerifiableCredential",
"KYCExample"
]
]
SHA-256 해시: JNEDi4LUJJDvQx_4gjzrzNzgZQlFxF5HcDGgz1IpQ18
공개 정보: WyIweTN2bzg4Q0VTUjAtZUM2WFhkUHJ3IiwgImlkIiwgImh0dHBzOi8vY29udG9zby5leGFtcGxlL2JhZnliZWlnZHlyLi4ubHFhYmYzb2NsZ3RxeTU1ZmJ6ZGkiXQ
내용: [
"0y3vo88CESR0-eC6XXdPrw",
"id",
"https://contoso.example/bafybeigdyr...lqabf3oclgtqy55fbzdi"
]
SHA-256 해시: nSAnm3EIj3qleDhNCPyX9iHRKLaq87IW4ZdJaZudTUQ
공개 정보: WyJsbE5Edml5SXFwaS1Fc1c2QzRNYl9nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd
내용: [
"llNDviyIqpi-EsW6C4Mb_g",
"type",
"JsonSchema"
]
SHA-256 해시: EkEzCtNqUfJFCYKRHeCdEOsT2oCg02VnS3E1URNodKU
공개 정보: WyJHLVpOZ3J4WXZhMUFFcWNpWTB1MnVRIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMzE1ODgiXQ
내용: [
"G-ZNgrxYva1AEqciY0u2uQ",
"id",
"did:example:1231588"
]
SHA-256 해시: JsIbFLY1XiHyn3zLc-vTRR5XSCvbDZgLFCyW1FoGWCo
공개 정보: WyIyTk1lZnlPckNhakNqTlFXX09yejFnIiwgInR5cGUiLCAiUGVyc29uIl0
내용: [
"2NMefyOrCajCjNQW_Orz1g",
"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": 1791525815,
"exp": 1792735415,
"_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": [
"bzvkcHuVgMlgi7F1_cfTx2UhhMAAB0gSo7wF_8pORAc",
"uAY-dctDyMVU5FwGLOv0GxhMt0jxteamHiVtCfiXfBo"
]
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"_sd": [
"9H_yGaAtlxO_MaA93qwj37eIJN4gGa73qeoAUzFE-Yo",
"yqzuFAk-7foHZyyDAC5hn1ez80BUs4lMBqrwxUE9HhY"
]
},
{
"@context": "https://www.w3.org/ns/credentials/v2",
"_sd": [
"_65jASIIkLzX7bTDWuFqzfJ8Vkl-GT3RIRk5NFuO9jY",
"eGHpG0aZsFYAbXlWnM1vM7gpev3kl6R-a21Sf4vX-qs"
]
}
],
"_sd": [
"vhKcNv2A2IWwfcqzuBSq8Mb8xPiMsMqPX4Ld9Z5TwH4"
]
}
SHA-256 해시: vhKcNv2A2IWwfcqzuBSq8Mb8xPiMsMqPX4Ld9Z5TwH4
공개 정보: WyJKX09IX29iOU1ueFdnOU9icEtQRldnIiwgInR5cGUiLCAiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJd
내용: [
"J_OH_ob9MnxWg9ObpKPFWg",
"type",
"VerifiablePresentation"
]
SHA-256 해시: uAY-dctDyMVU5FwGLOv0GxhMt0jxteamHiVtCfiXfBo
공개 정보: WyJtQW41N2Uza09LYjBPMkIwOWlTTzlRIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrY29zZTtiYXNlNjR1cmwsIFdXMUdlbHBVV1RCTVJFSjJWV3RXZGt4cE5IVkxNVVU1VUZFIl0
내용: [
"mAn57e3kOKb0O2B09iSO9Q",
"id",
"data:application/vc+cose;base64url, WW1GelpUWTBMREJ2VWtWdkxpNHVLMUU5UFE"
]
SHA-256 해시: bzvkcHuVgMlgi7F1_cfTx2UhhMAAB0gSo7wF_8pORAc
공개 정보: WyJma250MjJTLU13M0RlajFyVjVJdGpnIiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
내용: [
"fknt22S-Mw3Dej1rV5Itjg",
"type",
"EnvelopedVerifiableCredential"
]
SHA-256 해시: 9H_yGaAtlxO_MaA93qwj37eIJN4gGa73qeoAUzFE-Yo
공개 정보: WyJwc2JIdEpVQUVoSmV3MDlqZHFxSEFRIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrand0LCBleVZqVi4uLlJNalU7ZGF0YTphcHBsaWNhdGlvbi92Yytqd3QsIGV5VmpWLi4uUk1qVSJd
내용: [
"psbHtJUAEhJew09jdqqHAQ",
"id",
"data:application/vc+jwt, eyVjV...RMjU;data:application/vc+jwt, eyVjV...RMjU"
]
SHA-256 해시: yqzuFAk-7foHZyyDAC5hn1ez80BUs4lMBqrwxUE9HhY
공개 정보: WyJRdUlVeHBjclRMWC1vSXdDMTRXdFN3IiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
내용: [
"QuIUxpcrTLX-oIwC14WtSw",
"type",
"EnvelopedVerifiableCredential"
]
SHA-256 해시: _65jASIIkLzX7bTDWuFqzfJ8Vkl-GT3RIRk5NFuO9jY
공개 정보: WyJlTlpQQ0U2UkxLMGN5dkVoTHZ4eURRIiwgImlkIiwgImRhdGE6YXBwbGljYXRpb24vdmMrc2Qtand0LCBleVZqVi4uLlJNalV-O2RhdGE6YXBwbGljYXRpb24vdmMrc2Qtand0LCBleVZqVi4uLlJNalV-Il0
내용: [
"eNZPCE6RLK0cyvEhLvxyDQ",
"id",
"data:application/vc+sd-jwt, eyVjV...RMjU~;data:application/vc+sd-jwt, eyVjV...RMjU~"
]
SHA-256 해시: eGHpG0aZsFYAbXlWnM1vM7gpev3kl6R-a21Sf4vX-qs
공개 정보: WyI3RlR4YXVUUDltMVpPbDlRTGI3U3VnIiwgInR5cGUiLCAiRW52ZWxvcGVkVmVyaWZpYWJsZUNyZWRlbnRpYWwiXQ
내용: [
"7FTxauTP9m1ZOl9QLb7Sug",
"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 진단 표기법을 사용합니다. 실제 데이터 교환은 항상 이진 형식으로 이루어진다는 점에 유의하세요.
{ / 보호됨 /
1: -35, / 알고리즘 /
3: application/vc, / 콘텐츠 유형 /
4: h'177f12cb...1933d554', / 키 식별자 /
15: { / CWT 클레임 /
1: urn:example:123, / 발급자 /
2: urn:example:456, / 주체 /
},
}
{ / 보호됨 /
1: -35, / 알고리즘 /
3: application/vp, / 콘텐츠 유형 /
4: h'177f12cb...1933d554', / 키 식별자 /
15: { / CWT 클레임 /
1: urn:example:123, / 발급자 /
2: urn:example:456, / 주체 /
},
}
18( / COSE Sign 1 /
[
h'a4013822...3a343536', / 보호된 헤더 /
{} / 보호되지 않은 헤더 /
h'0fbe22a0...3a009118', / 첨부된 페이로드 /
h'09772c7f...5c4e736f' / 서명 /
]
)
페이로드는 다음에 설명된 자격 증명 또는 프레젠테이션일 수 있습니다. 보호 메커니즘.
이 절은 비규범적입니다.
이 절에서는 이 명세에 적용된 실질적인 변경 사항을 설명합니다.
다음 문서 이후의 변경 사항: 첫 번째 후보 권고안:
cty 헤더 매개변수를 사용합니다.
nbf(이전에는 유효하지 않음) 클레임의 사용이 권장되지 않는다고 명시했습니다.
이 절은 비규범적입니다.
워킹 그룹은 Orie Steele이 이 명세에 제공한 실질적인 지적 기여와 콘텐츠 기여에 감사드립니다. 그분의 기여가 없었다면 이 명세는 지금과 같지 않았을 것입니다.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: