DID (Decentralized Identity, 탈중앙 신원증명)
- 데이터 주권이 개개인에게 있고, 필요한 때 그 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 기술
- 분산원장기술(DLT)을 기반으로 한다.
- 중앙화된 레지스트리(데이터 저장소), 데이터 제공자(Provider), 인증기관(Certificate Authorities) 들을 분리하고, 탈중앙화 방식으로 동작할 수 있도록 설계되었다.
- 자기 자신이 신원증명에 대한 권한을 갖도록 하겠다는 SSI 개념을 현실화하기 위해 사용.
DID의 등장 배경
-
웹 생태계에 대해 논의하는 W3C(World Wide Web Consortium)에서 사용자 데이터가 플랫폼(페이스북, 구글 등) 기업에게 종속되는 현상에 대해 문제제기.
-
팀 버너스리(WEB창시)를 주축으로 W3C 참여자와 탈중앙 운동을 전개함.
-
2016년 블록체인 활용 의견 개진, 2019년 DID 문서 표준화 시작.
DID를 위해 필요한 것
- 데이터 연동을 위한 표준화 - 플랫폼이 독점적으로 데이터를 보유하게 된 것은 타 서비스와 연동이 불가능하기 때문, 탈중앙 생태계를 위해서라면 서비스 간의 데이터 연동이 가장 중요함.
- 데이터 무결성 및 보안성 확보 - 중앙화되지 않은 저장소에 개인의 신원을 증명할 수 있는 데이터를 보관하면서, 데이터의 무결성과 보안성을 확보하는 것 → 블록체인 기술 등장!
W3C표준화 - DIDs (탈중앙화 식별자)
우리가 흔히 사용하는 ID, Password
- Identity(식별자) 개인 혹은 단체(법인) 등을 구별할 수 있는 고유 값
- DID 문서 특정 DID를 어떻게 사용하는지에 대해 설명해 놓은 문서
- id: 해당 did문서를 설명하고 있는 아이디
- 공개키: id와 관련된 공개키 리스트
- 인증정보: id의 소유권을 증명하기 위한 정보
- 서비스: id와 상호작용이 가능한 서비스들 리스트
- DID 메소드 특정 분산 원장 또는 네트워크에서 DID 문서들을 생성, 읽기, 갱신, 비활성화를 하는 메커니즘
- DID 형식
- DID : 이 주소가 did스키마에 따른 것임을 나타냄. 항상 did로 시작
- example : did 메소드의 이름
- 123456789abcdefghi : DID 메소드 안에서 사용되는 고유 아이디
- DIF(Decentralized Identity Foundation) 글로벌 조직
- 전 세계 사용자들이 DID를 보다 쉽게 사용할 수 있도록 지원하기 위해 만든 조직.
- 사용자 편의성, DID 표준 제작, 소프트웨어 제작 등의 중요한 역할을 맡음.
- Sovrin, uport, Civic, MS, IBM, Master Card 등이 있음.
- DID 인증 절차
- 회사에서 DID소유권자에게 DID의 유무를 확인하기 위해 소유권자에게 challenge 신청
- 소유자인 나는 회사에게 response를 줌
- 회사는 응답받은 DID로 Universal Resolver에서 DID document를 가져옴.
- DID document 안에 기록되어 있는 인증정보로 소유자에게 받았던 response를 검사하여 확인.
- response 검사를 통해 응답한 소유자가 DID를 가지고 있는 것인지 확인.
SSI (Self Sovereignty Identity, 자기 주권 신원)
- 자신이 스스로 부여한 신원, 신원의 소유권을 가진 주체가, 신원에 대한 권리를 갖고, 공개 대상과 범위를 선택할 수 있는 개념
- DID는 SSI의 개념을 블록체인 기술을 기반으로 현실화 함.
신원관리 모델의 종류
- 1세대 : 개별 신원 모델 개별 서비스마다 이용자의 아이디와 패스워드를 저장하고 신원확인 서비스를 제공하는 형태 단점 - 서비스별 보안 수준에 따라 신원의 대량 유출 가능성 높음, 이요자는 서비스별 통일되지 않은 ID와 패스워드 정책으로 관리가 어려움.
- 2세대 : 연합형 신원 모델 중앙화된 연결 서비스 제공자(구글, 카카오, 페이스북)가 신원확인 서비스(OpenID, Oauth)를 제공하는 모델. 단점 - 글로벌 기업의 개인정보 독점, 사용자 개인정보의 권리 주장 어려움, 유출 위험성 존재
- 3세대 : SSI 모델 1) 개인이 개인정보 발급 내역을 블록체인에 기록, 개인정보가 필요할 때 발급자(Issuer)에게 2)신원증명정보(DID)를 주고, 3)신원정보(VC)를 받아, 4)검증자(verifier)에게 신원정보를 공유할 수 있는 모델 장점 - 신원의 가용성과 무결성이 높음 (분산 관리되기 때문에) 단점 - 비밀번호를 잃어버렸을 경우 다시 찾기 어려움, 초기 설정 어려움
SSI 형성을 위한 3가지 요소
- DID (Decentralized Identifier)
- DID Auth (DID Authentication) : 아이디 소유자가 개인키를 가지고 있다는 것을 인증하는 방법
- DKMS(Decentralized Key Management System, 탈중앙 키관리 시스템) : 신원을 증명하는데 사용하는 개인키를 어떻게 관리할 것인가
- Verifiable Credentials (검증가능한 크레덴셜) : 아이디의 소유자가 어떤 것을 할 수 있는 자격을 갖추었음을 검증하는 방법.
SSI를 구성하기 위한 요소
- Issuer : 발행자
- Holder : 자격증명 소유자
- Verifier : 자격증명 검증자
- Verifiable data Registry : 블록체인 등 분산저장소
검증가능한 크레덴셜(VC)이란?
- Credential : 신원 확인에 필요한 정보 (예: 주민등록, 운전면허, 여권)
- W3C Verifiable Credential Data Model: 디지털 세계에서도 민증처럼 신원과 자격을 증명하기 위해 나온 표준
- 즉, VC는 디지털 세계에서의 크리덴셜을 물리적 세계의 신분증과 동일한 정보를 제공하기 위한 목적으로 등장.
구성요소
- Credential Metadata: Credential을 해석할 수 있도록 설명해주는 메타데이터
- 클레임(Claim): 디지털 환경에서의 신원 정보, 각 단위 데이터를 클레임이라고 함. 주체-속성, 값의 구조를 가짐.
- Proofs: Credential을 검증하도록 만드는 암호학적 요소들이 포함된 증명 (전자서명)
VC는 발급자 검증을 위해 4가지를 확인함.
- Issuer DID인지 진위여부
- Holder DID인지 진위여부
- 블록체인의 발급내역 유효, 무효 여부
- 스키마 확인을 통해 형식이 맞는지 확인
검증가능한 프레젠테이션(VP)이란?
최소한의 정보 공개(Minimum Disclosure)를 원칙으로 하여 증명이 필요한 정보들만 구성된 새로운 형식
구성요소
- Presentation Metadata
- Verifiable Credentials
- Proofs
검증가능한 크리덴셜 생태계란? (Ecosystem of Verifiable)
백신접종증명 시나리오 절차
- 개인은 질병관리청에 본인의 백신접종정보를 요청함.
- 질병관리청은 요청정보를 확인하고 문제가 없다고 판단되면 Digital Signature(전자서명) 후 개인에게 백신접종증명서를 발행함.
- 이 때, 질병관리청의 DID정보가 백신접종증명서에 함께 저장됨.
- 개인은 증명서를 모바일에 보관하며, 다중이용시설 이용 시 전자서명하여 제출함.
- 다중이용시설은 개인과 질병관리청의 DID를 통해 블록체인에 저장되어 있는 검증정보를 전달받아 백신접종증명서의 접종정보를 확인함.
(확실치 않음. 일반 DID 기술 플로우에 백신접종증명 사례를 대입해본 것임.)