분산신원증명(DID, Decentralized ID) 표준화 문서들 알아보기

SSIMeetup Korea 로고

DID(Decentralized Identity, 탈중앙신원증명) 기술은 기존의 중앙화된 인증 방식에서 벗어나 탈중앙화 방식으로 신원을 증명하기 위한 기술입니다. 다른 누군가에게 신원 증명을 맡기는 것이 아니라 자기 자신이 신원 증명에 대한 권한을 갖도록 하겠다는 SSI(Self-Sovereign Identity, 자기주권신원) 개념을 현실화하기 위해 사용됩니다. (물론 여전히 SSI를 현실화하기 위해서 극복해야 할 문제들이 많습니다.)

탈중앙화를 제공하기 위해 블록체인과 같은 분산원장기술(DLT, Distributed Ledger Technology)에 기반하고 있습니다. 신원을 증명해주는 특정한 주체가 없기 때문에 다양한 곳에서 사용하기 위해서는 표준화가 필수적입니다. DID 및 SSI와 관련하여 어떤 표준화 문서들이 있는지 살펴보겠습니다.

출처 : https://www.slideshare.net/SSIMeetup/self-sovereign-identity-ssi-open-standards-with-drummond-reed

SSI를 이루는 핵심 기술은 크게 4가지로 나눌 수 있습니다. 각 파트별로 다양한 곳에서 표준화를 진행하고 있습니다.

  • DIDs (Decentralized Identifiers, 탈중앙아이디) : 전체적인 아이디 관리 방식을 다룹니다.
  • DKMS (Decentralized Key Management System, 탈중앙 키관리 시스템) : 신원을 증명하는데 사용하는 개인키를 어떻게 관리할 것인가를 다룹니다.
  • DID Auth : 아이디 소유자가 개인키를 가지고 간단히 인증할 수 있는 방법을 다룹니다.
  • Verifiable Credentials (검증가능자격) : 아이디의 소유자가 어떤 것을 할 수 있는 자격을 갖추었음을 검증하는 방법을 다룹니다.
출처 : https://www.slideshare.net/SSIMeetup/self-sovereign-identity-ssi-open-standards-with-drummond-reed

Decentralized Identifier

웹 표준화 단체인 W3C(World Wide Web Consortium)에서 표준화를 진행하고 있습니다.

  • DIDs v1.0 : DID의 핵심 규격입니다. 아이디의 형식, DID의 데이터 모델, 아이디에 대한 메타 정보인 DID 문서 포멧 및 문법, DID를 활용한 인증과 승인, 아이디를 등록하고 활용하기 위한 DID 메소드 스키마 등에 대한 내용이 정의되어 있습니다.
  • DID Resolution v0.2 : 탈중앙아이디의 메타 정보가 담겨 있는 DID 문서를 처리하기 위한 규격을 정의하고 있습니다. CRUD (Create, Read, Update, Deactivate) 모델을 활용해 DID 문서를 프로세싱합니다.
  • DID Method Registry : DID 메소드 이름이 중복되는 것을 방지하기 위하여 등록된 DID 메소드들을 리스팅한 문서입니다. DID 메소드를 등록하기 위한 절차도 포함되어 있습니다.
  • Use Cases and Requirements for Decentralized Identifiers : DID의 요구사항과 유즈케이스를 정의하고 있습니다. DID의 4가지 핵심 특징으로 탈중앙화, 지속성, 암호학적 증명 가능, 메타 데이터에 대한 처리 가능을 꼽고 있습니다.

DKMS (Decentralized KMS)

DKMS는 키 관리의 상호 호환성을 위한 표준(KMIP)을 만든 OASIS에 표준화 하려는 노력이 진행 중 입니다. 하이퍼레저의 프로젝트인 AriesINDY 등에 적용되고 있습니다.

  • DKMS Design and Architecture v4 : 기본적인 DKMS의 요구사항과 아키텍처, 키 계층 구조, 키 생성/복구/폐기 방법, 프로토콜 등에 대해 정의되어 있습니다. DKMS 아키텍처는 총 3개의 레이어로 구성되어 있습니다. DID 레이어와 (사용자 디바이스와 같은) 엣지레이어, (서버사이드의) 클라우드 레이어로 이루어져 있습니다. 키 복구 방법으로1. 복구용 키를 별도의 장치에 백업하는 오프라인 복구와 2. 믿을 수 있는 누군가에게 키의 조각(share)을 나누어주는 소셜 복구를 설명하고 있습니다.
DKMS 아키텍처 (출처: https://github.com/hyperledger/aries-rfcs/blob/master/concepts/0051-dkms/dkms-v4.md)

DID Auth

DID를 이용한 인증 방법에 대한 표준화는 DIF(Decentralized Identify Foundation)와 인터넷 표준 단체인 IETF에서 진행하고 있습니다. 주로 이미 존재하는 인증 시스템에서 DID를 어떻게 사용할 것인가에 대한 표준화가 진행 중입니다.

  • DID AuthN profile for OpenID Connect from DIF : SSO(Single Sign On) 인증 관련 표준인 OIDC(OpenID Connect)에 DID를 적용하기 위한 방법을 설명하고 있습니다. OpenID Connect 규격에 정의되어 있는 SIOP(Self-Issued OpenID Provider)를 DID에 적용하기 위한 프로파일 과 프로토콜을 정의하고 있습니다.
  • The DID in the DNS : DID에서 사용하는 아이디(특히, method-specific identifier)가 사람이 읽기 어려운 포멧으로 되어 있다는 단점을 보완하기 위한 표준 문서입니다. (웹사이트 주소와 같은 곳에서 사용하는) DNS의 도메인 이름이나 이메일 주소를 DID의 아이디로 사용하기 위한 규격을 정의하고 있습니다.

Verifiable Credentials

Decentralized Identifier 표준과 마찬가지로 W3C에서 표준화를 진행하고 있습니다.

  • Verifiable Credentials Data Model 1.0 : Verifiable Credential의 핵심이 되는 규격입니다. Verifiable Credential의 기본 컨셉과 생태계를 구성하는 요소들(발급자, 홀더, 검증자 등) 및 요구사항을 설명하고, Verifiable Credential의 데이터 모델이 정의되어 있습니다.
  • Verifiable Credentials Implementation Guidelines 1.0 : Verifiable Credential의 개발 가이드 문서입니다. 실제 서비스에서 DID 자격증명을 사용하여 인증하기 위한 가이드를 제공하고 있습니다.
  • Verifiable Credentials Extension Registry : Verifiable Credential의 상태 조회 및 검증 등과 관련한 메소드를 리스트한 문서입니다.
  • Verifiable Credentials Use Cases : Verifiable Credential에 대한 유즈 케이스 문서입니다. 사용자의 역할과 다양한 분야의 사용자 요구에 대해 기술하고, 사용자 관점에서 바라본 자격 검증 활동에 대해 설명하고 있습니다.

Conclusion

DID의 표준화는 활발히 진행되고 있지만, 아직 많은 표준 문서들이 드래프트 상태에 있습니다. 앞으로 진행되는 표준화 현황을 꾸준히 지켜봐야 할 것 같습니다.

디센트 채널 링크

공식 웹사이트 : https://dcentwallet.com/

미디엄 : https://medium.com/dcentwallet

트위터 : https://twitter.com/DCENTwallets

페이스북 : https://www.facebook.com/dcentwallet

유튜브 : https://www.youtube.com/channel/UCKnYqiM3g3iaaAKcRZf-kbA

--

--

Minho, Yoo | D'CENT wallet & WEPIN wallet
IOTRUST : Team Blog

Interested in Blockchain Tech. Developing Cryptocurrency wallet D’CENT and WEPIN. Learning is best way to improve.