상세 컨텐츠

본문 제목

DID와 SSI 그리고 VC, VP에 대한 개념 정리

Blockchain/DID

by Yongari 2023. 2. 23. 19:34

본문

 

 

 

SSI는 무엇일까? 

 

SSI(Self-Sovereign Identity) : 자기주권신원이라고도 한다.
제 3자에게  자신을 증명할 수 있는 정보를 맡기지 않고  스스로 관리 및 보관하는 개념이다.  

DID(Decentralized Identity)는 SSI를 탈중앙화된 방식으로 구현한 기술이고 한국말로 바꿔 말하면 탈중앙화된 신원증명이라고 할 수 있다.

 
1. DID는 SSI를 블록체인을 통해 현실화한것이다?
>>>  반은 맞고 반은 틀리다.
1-1. SSI는 사용자가 스스로 자신의 신원정보를 관리하고 공개범위를 결정하여 프라이버시를 보호하는 개념
1-2. DID는 SSI의 개념을 탈중앙화된 방식으로 구현한 기술 
1-3 데이터를 탈중앙화하는 여러 방법 중 하나로 블록체인이 있는 것, 즉 다른 분산원장으로도 DID를 구현할 수 있다는 것으로 이해할 수 있다.  



신원관리모델 

신원관리모델에는 다음과 같은 모델들이 있ㄷ. 


1세대 개별신원모델 : 개인이 id/pw 다 관리해야함, 서비스제공자 정보보호의무가중되서  천문학적비용이 들어감  
2세대 연합형 신원모델 : 사용자 편의성 제고, 글로벌 기업의 신원정보 독점적확보, 사용자의 개인정보 권리주장의 어려움 등 문제가 있음  
3세대 자기주권신원 : 개인이 디지털 신원주권을 가질 때 개인정보를 스스로 소유하는 개념 (장점 누구한테 맡기지 않고 자신이 관리하므로 어떻게 개인정보를 쓸 지 스스로 감시와 판단 가능) 
- 3세대 자기주권신원의 단점: 자기자신이 관리하지만 잃어버리면 복구불가 >> (최대 단점, 이를 보완하기 위한 방법이 필요)

 

시나리오 A: 
1. 대학(발행자, Issuer)에 자신의 신원증명정보(DID)를 주고  대학졸업증명서(VC, 검증가능한 크리덴셜)을 받음
2. 대학(Issuer)은 용가리에게 받은 신원증명정보(DID)와 
분산원장에 저장된 대학졸업증명서(VC)의 소유자 정보가 일치하는지 확인
3. 일치하면 대학졸업증명서 발급(VP) 
4. 용가리가 입사하는 회사(Verifier)에 졸업증명서 VP를 제공하고 졸업증명서의 소유자임을 증명하는 정보도 함께 제공 
5. 용가리가 입사하는 회사(verifier)은 용가리가 제공한 졸업증명서가 
용가리의 소유가 맞는지 분산원장에 저장된 정보를 가지고 검증함 



SSI의 4가지 개념 

 

1. DIDs 탈중앙화 식별자
DID 메소드로 자신의 주소를 만들수 있고 DID는 주소면서 마스터키를 활용해서 만들수 있음 
간단한개념 : 우리가 쓰는 id/pw 개념 

2. DID Auth 
DID 소유자가 개인키를 가지고 있다는 것을 간단히 인증하는 방법
DID 이용한 인증법에 대한 표준화는 DIF(Decentralized Identity Foundation)에서 진행

3. DKMS(Decentralized Key Management system)
신원증명서 개인키를 어떻게 관리할지 다룸

4. Verifiable Credential - 검증가능한 크리덴셜 
아이디 소유자가 어떤걸 할 수있는지 자격을 갖추었는지 검증하는 방법을 다룸




용어


A. 발급자(Issuer) : 신원정보를 발급하는 발행자고 주체 
1. 하나 이상의 주체(Subject)에 대한 클레임(개인정보 데이터 단위)를 확증(확실하게 증명하다.)
2. 1번 클레임으로부터 VC(검증가능한 크리덴셜)을 생성한다.
3. 보유자(holder)에게 VC(검증가능한 크리덴셜)을 전달하는 역할 

4. 사례 : 회사, 비영리단체, 무역협회, 정부, 개인이 있다.

B. 보유자(holder): 자격증명, 신원정보를 소유한 사람
1. 하나 이상의 VC(검증가능한 크리덴셜)을 보유하고
2. 1번 VC로 부터 VP(검증가능한 프레젠테이션) 생성함 
3. 사례 : 학생, 직원, 고객


C. 검증자(Verifier) : 자격증명(신원정보) 검증자
검증절차를 위해 VC(검증 가능한 크리덴셜), VP(검증 가능한 프레젠테이션)을 받는 역할
사례 : 직원, 보안담당자, 웹사이트


D. 검증가능한 데이터 등록소 Verifiable DataRegistry : 검증가능한 DB 
1. VC(검증가능한 크리덴셜) 스키마, 폐기한 등록소, Issuer(발급자)의 공개키와 같은 식별자, Issuer(발급기관)의 인증서, 신원증명 해지내역, 데이터 생성 및 확인을 중재하는 역할 
2. 검증가능한 데이터 레지스트리(등록소)에는 신뢰할 수 있는 DB, 분산DB, 분산원장, 정부ID등이 포함된다. 종종 데이터 레지스트리(등록소) 유형이 여러 개 있는 곳도 있음
3. holder, issuer, verifier가 합의한 분산원장이면 사용가능 

 

 

 

 

 



Verifiable Credential(검증가능한 크리덴셜, VC)

 

물리적 Credential : 신원확인에 필요한 정보 
물리적 Credential 예시: 
신분증 주체를 식별할 정보(이름,사진 주번)
발급기관정보(경찰청,외교부)
발급기관이 보증하는 정보(생년월일,면허,국적)
신분증 용도(주민등록증, 운전면허증,여권)
신분증의 제약조건 정보(유효기관)


Verifiable Credential(검증가능한 크리덴셜, VC) 구성 요소 

 

크리덴셜(credential) : 하나혹은 여러 클레임으로 구성된 데이터 집합
예시: 졸업증명서, 결혼증명서 등등 


클레임(claim) : 신원정보의 데이터 단위구조 또는 주체에 대한 주장을 클레임이라고 함

주체-속성-값 관계를 사용해서 표현한다.


예시)
클레임은 단일정보외에 클레임끼리 결합해서 연결정보를 생성할 수 있음
- A 클레임 : 치킨대학 졸업생 용가리
- B 클레임 : 샘의 직업은 교수
- A+B 클레임 : 용가리는 치킨대학 졸업생이고 직업이 교수인 샘을 알고있다. 

 

VC(verifiable credential) 구성 요소
- credential metadata : 크리덴셜을 해설할 수 있게 설명해주는 메타데이터 
- claim : 신원정보에 대한 데이터 구조 주체에 대한 claim 집합
- proofs :  검증하기위한 증명, 영지식 증명같은 것

 

 

 

 

전부 분산원장 플랫폼이라고 함 VC의 기본 구성요소를 도식화하면 그래프가 2개있다. 

크리덴셜 그래프
1. 클레임으로 정보 확인후 디지털 프루프로 검증
2. issuer(발행자)와 holder(소유자)의 전자서명 포함
3. 발급내역이 data registry(분산원장, 블록체인)에 쓰이며 취소된 credential인지 아닌지 확인
4. 포맷이 맞는지 스키마 검증 

vc는 적합한 발급자인지 확인하기위해 다음 4가지 확인

1. 발행자-Issuer가 발급한 DID인지 진위 여부
2. 소유자-holder의 DID인지 진위여부
3. 블록체인의 발급내역이 유효,무효 여부
4. 스키마 포맷확인을 통해 형식이 맞는지 확인 

 

 

 





 

 

 


Veriable Presentation(검증가능한 프레젠테이션, VP)

 

VC가 주민등록증이면 모든 클레임이 VC에 있으나 발급정보나 발급 날짜까지는 필요가 
없으므로 필요한 정보만 제공하면됨 따라서 자기주권신원개념에서는 최소한 정보공개를 원칙으로 필요한 정보만 제공하는데 그게 VP다. VP는 VC중에 골라서 제공하면됨

Verifiable Presentation(VP) 구성요소 
1. 프레젠테이션 메타데이터 
2. VC  : 검증가능한 크리덴셜 
3. Proofs : 증명방법 

 

 

 

다음 그림8은 검증가능한 프레젠테이션을 완벽하게 묘사한 것으로 최소 4개의 정보 그래프로 구성된다.
첫 번째 그래프 : 프레젠테이션 메타데이터가 포함된 VP(검증가능한 프레젠테이션)을 표현
 - VP : 크리덴셜 메타데이터 및 클레임을 포함하는 하나 이상의 VC(검증 가능한 크리덴셜, 독립그래프) 표현 
두 번째 그래프 : 크리덴셜 그래프로 VC의 구성요소를 나타낸다.
세 번째 그래프 : 전자서명인 크리덴셜 그래프의 프루프를 표현한다. 여기에 전자서명, 영지식증명 등 증명방법을 사용하는 것으로 보인다. 

네 번째 그래프 : 전자서명인 프레젠테이션 그래프 프루프를 표현한다. 여기에도 전자서명, 영지식 증명 등 증명방법을 사용하는 것으로 보인다. 

 

 

그림 8

 

 

1. Presentation Graph - VP
1-1 Prensation ABC 
type : VP
termsofUse :  DO NOT ARCHIVE 
VC : VC를 졸업생 크레덴셜(증명서)로 넘긴다. 

2. Credential Graph - VC
2-1 크레덴셜(증명서) 123
type: 졸업생 크레덴셜(증명서)
issuraceDate: 20140223~~
presentailSubject:용가리는 치킨 대학교 졸업생이다. 
issuer(발행자): 치킨대학으로 넘긴다. 

3. Credential Proof Graph - VC
치킨 대학은 proof를 요청한다.
3-1 서명 456에서 증명한다. 
type: rsaSignature2018 (타입)
created : 20220223~~
nonce: 블록체인 속성
signatureValue : 서명값 
creater에게 데이터 넘긴다. 치킨 대학 public key 7을 넘긴다.

4. Presentation Proof Graph  - VP
4-1 서명 8910에  proof를 한다. 
type: rsasignature2018
created : 20230215~~
nonce : 블록체인 속성
signature value : 전자서명값
creator에게 데이터를 넘긴다. 치킨 Presenter public key 11 

 

 


자기신원인증 과정

 

 

발급자(Issuer)
1. 발급자(Issuer)는 보유자(holder)에 대한 검증 가능한 크리덴셜(VC)을 발급하여 전달합니다.
2. VC의 유효성을 확인할 수 있는 ID(Identifiers)와 Schema(스키마)의 발급내역을 블록체인에 기록합니다.

보유자(Holder)
1. 발급자(Issuer)에게 VC를 받고, 자신이 증명서를 받았다는 내용과 스키마 정보를 가져옵니다.
2. 검증자(Verifier)가 필요로 하는 정보를 담아 VP 형태로 보냅니다.
3. 발급자(Issuer)에게 받을 때는 VC 형태, 검증자(Verifier)에게 보낼 때는 VP 형태입니다.

 

검증자(Verifier)
1. 검증자(Verifier)는 보유자(Holder)에게 받은 VP 내용 확인합니다.
2. 블록체인에서 다음 내용을 확인합니다.

  • 발급 내역
  • Schema(스키마)
  • VP내용을 확인합니다.
  • Issuer DID
  • Holder DID


위의 내용들을 검증하여, VP 내용의 사실여부를 검증합니다.



입사 지원 시나리오 절차

 


1. 입사지원자(holder)는 대학교(Issuer)에 본인의 졸업 정보(ex, 학위번호, 학위명, 수여 일자 등)를 요청합니다.
2. 대학교(Issuer)는 요청정보를 확인하고 문제가 없다고 판단되면 Digital Signature(전자서명) 후 입사지원자(holder)에게 졸업증명서(Verifiable Credential)를 발행합니다.
3. 이때, 대학교(Issuer)의 DID 정보가 졸업증명서(Verifiable Credential)에 함께 저장됩니다.
4. 입사지원자(Holder)는 인증서를 모바일 전자지갑에 보관하며, 입사 지원 시 인증서에 Digital Signature(전자서명)하여 지원기업(Verifier)에 제출합니다.
5. 지원기업(Verifier)은 입사지원자(Holder)와 대학교(Issuer)의 DID를 통해 블록체인에 저장된 Digital Signature(전자서명) 검증정보를 전달받아 졸업증명서(Verifiable Credential)의 졸업정보를 확인합니다.






 

참고 링크:

https://ssimeetupkorea.github.io/did-core/

 

탈중앙 식별자 Decentralized Identifiers (DIDs) v1.0

탈중앙 식별자 DID 1.0 한글 번역

ssimeetupkorea.github.io

https://ssimeetupkorea.github.io/vc-data-model/

 

검증가능한 크리덴셜 데이터 모델 (Verifiable Credentials Data Model) 1.0

발급자, 보유자, 검증자가 이 명세서에서 설명하고 있는 데이터를 처리할 때 인지하고 있어야 하는 보안 고려사항이 아주 많이 있다. 이 섹션에서 설명하는 내용이 함축하는 바를 무시하거나 이

ssimeetupkorea.github.io

 

관련글 더보기