SSI 구성요소 및 DID

김도훈 - DevOps Engineer·2022년 6월 16일
0

DID

목록 보기
1/1
post-thumbnail

SSI 구성요소

SSI 플랫폼의 구성 요소는 식별자와 인증 수단으로 사용되는 DIDDID Document, 보관용 ID로 사용되는 VC(Verifiable Credential, 검증 가능한 자격증명), VP(Verifiable Presentation, 검증 가능한 제공 ID 데이터 집합)으로 이루어져 있다. SSI 플랫폼의 주요 참여자는 VC를 발행하는 발행인(Issuer), VC를 발급받은 후 VP로 가공하여 검증 기관에 제출하는 사용자(Holder), 사용자로부터 VP를 수신하여 VP의 진위를 검증하는 검증인(Verifier), 그리고 DID 및 ID 관련 정보를 저장하는 분산저장소인 블록체인이 있습니다.

VC

  • VC는 사용자가 발행기관으로부터 발급받은 신분증, 졸업증명서, 재직증명서 등과 같은 신원증명을 의미한다.

  • 사용자는 VC를 직접 사용하지 않고 제출용 ID인 VP로 가공해서 사용한다.

  • 사용자는 발급받은 VC 필요한 속성만을 추출하여 VP로 가공한 후 제출하게 된다.

DID & DIDdocument

DID

기존의 주민등록번호나 상품 코드 등의 중앙화된 식별자는 중앙 기관을 통해 발급받고 통제되는 구조이다. 반면, DID(Decentralized IDentifier)는 사용하는 사람 스스로 생성하고 제어할 수 있는 분산형 식별자(탈중앙화된 식별자)이다.

DID 생성 과정

대부분의 DID 플랫폼은 DID와 DID document 생성 시 비대칭키를 함께 생성한다. 생성한 비대칭키의 비밀키는 본인이 안전하게 보관하고, 공개키는 DID document에 넣어서 블록체인에 저장합니다.

DID Document

DID document에는 DID 소유권을 증명할 수 있는 인증 수단이 포함되어 있다.

  1. 사용자가 검증기과에게 did:ethr:1234가 본인의 DID 라고 주장하면

  2. 검증기관은 사용자의 DID를 통해 사용자 DID document가 저장된 위치를 확인하여 DID document를 획득한다.

  3. 이후 검증 기관은 획득한 DID document를 이용하여 해당 DID가 당신이 생성한 DID라는 것을 인증해 보라는 Challenge를 전송한다.

  4. Challenge를 받은 사용자는 인증을 위해 Challenge에 대항하는 Response를 전송하고

  5. Response를 받은 검증기관은 사용자의 DID Document에 포함된 공개키를 이용하여 사용자의 Response를 검증합니다.

DID Document 항목
  • id
id를 통해 식별되는 객체의 DID를 의미한다.

  • publicKey & authentication
DID 소유권 인증에 사용된다.

publicKey 항목에는 DID 소유권 인증에 필요한 다양한 종류의 데이터가 들어갈 수 있다.


  • service
자격증명 발행기관에게 DID Auth를 요청할 때 사용된다.

DID Auth

생체 데이터, 문자 인증 데이터, 전화 인증 데이터 등 DID의 소유권을 증명할 수 있는 다양한 데이터를 publicKey에 입력하여 DID Auth에 사용할 수 있다.

VC 데이터 모델

사용자는 발행인으로부터 자신의 Id 속성을 증명할 수 있는 신원증명을 발급받을 수 있다. 이러한 신원증명을 VC(Verifiable Credntial)라고 부르는데, 주민등록증과 같은 신분증부터 졸업증명서, 재직증명서, 자격증, 혹은 다른 사람과의 관계까지 자신을 표현할 수 있는 모든 종류의 ID 속성이 VC에 포함될 수 있다.

VC는 Credential metadata, Claims, Proofs로 구성된다.

Credential metadata

VC를 누가 발행했는지, VC가 명시하고 있는 객체(Credential subject), VC의 만료시간, VC의 폐기 방법 등이 정의되어 있다.

Claims

Credential subject의 ID 속성에 대한 정보가 Subject-Property-Value 방식으로 저장된다. 즉, 어떤 Subject에 대한 ID 속성인지, 그리고 해당 Subject가 어떤 property를 가지고 있으며, property의 값으로는 어떤 value를 가지고 있는지에 관한 정보를 포함한다.

Proofs

  • VC에 대한 진위 여부 검증에 필요한 값이 포함되는데 RSA, ECDSA, 생체 인증 등 검증을 위한 다양한 암호 기법이 사용될 수 있다.

  • 검증인은 VC Proof를 검증함으로써 해당 VC가 VC에 명시된 발행인으로부터 발행된 것인지 검증할 수 있다.


VP 데이터 모델

사용자는 검증인에게 자신을 증명하기 위해 VC를 직접 제출하지 않고 자신이 소유한 VC를 VP(Verifiable Presentation)로 가공하여 제출합니다.

VP는 Presentation Metadata, Verifiable Credentials, Proofs로 구성된다.

Presentation Metadata

해당 데이터가 VP라는 것을 명시한 type, 이용약관, evidence 등 VP 검증에 참고할 수 있는 데이터가 포함될 수 있다.

Verifiable Credntials

  • 사용자는 검증인이 요구하는 ID 속성을 가진 VC를 선택하여 Verifiable Credentials 항목에 넣을 수 있다.

  • VC 내에 존재하는 Claim 중 검증인이 요구하는 ID 속성을 가진 Claim만 선택하여 Veiriable Credentials에 포함할 수 있기 때문에 사용자의 프라이버시를 보호할 수 있다.

  • VP를 수신한 검증인은 VC 내에 포함된 Proof 항목을 통해 VC 진위 여부를 검증할 수 있다.

profile
Email:ehgns5669@gmail.com

0개의 댓글