본문 바로가기
카테고리 없음

DID란 무엇인가?

by gun_poo 2022. 6. 3.

DID , decentralized Identity, 탈중앙 신원증명

 

 데이터의 주권이 개개인에게 있고 필요한 때 그 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 기술

분산원장기술을 기반으로 사용자 정보를 저장하여 안전하고 편리한 인증이 가능하도록 한다.

DID 기술은 중앙화된 레지스트레, 데이터제공자, 인증기관 들을 분리 할 수 있고 중앙화 된 방식이 탈중앙화 방식으로

동작 할 수 있도록 설계되었다.

자기 자신이 시원증명에 대한 권한을 갖도록 하겠다는 SSI 개념을 현실화 하기 위해 사용된다.

 

데이터 주권과 DID (W3C, DID)

W3C 탈중앙 운동

 

웹에서 상호 공유하고 이를 통해 자유롭게 데이터를 사용자들끼리 주고받게 하기 위한 것

2000년대 이후 데이터의 주권은 사용자 개인이 아닌 플랫폼 기업에 종속되는 현상이 발생

데이터의 주권의 중앙화가 발생하였다. 글로벌 기업들이 개인 데이터를 독점적으로 차지하게 되면서 자신이 만든 데이터임에도 불구하고

기업들의 결정에 따라 접근이 가능하기도 하고 불가능하기도 해진다.

이런 문제들이 w3c 내에서 문제 제기 되었고 탈중앙 운동을 전개하게 되었다.

 

W3C 의 데이터 탈중앙화를 위한 표준화

 

w3c에서 진행하는 데이터 탈중앙 운동에서 가장 중요한 부분은 데이터의 연동이다. 각 글로벌 기업이 독점적 데이터를 보유하게 된 것은

타 서비스와 연동이 불가하기 때문. 이에 따라 탈중앙 생태계를 만들어가기 위해 서비스간 데이터 연동이 가장 중요한 사항으로 대두.

데이터 연동을 위해 선행되어야 할 부분은 해당 데이터가 어떤 종류의 데이터인가를 결정하는 것이고 이에 따라 데이터 연동을 위한 표준화를 진행한다.

 

W3C, DID

 

DID 에서 난제였던 부분은 중앙화 되지 않은 저장소에 개인의 신원을 중명 할 수 있는 데이터를 보관하면서 데이터의 무결성과 보안성을 확보 하는 것이었다. 하지만 블록체인 기술이 등장하면서 탈중앙화된 방식으로 신원데이터를 저장하고 증명할 수 있는 방법을 모색하게 된다.

 

W3C 표준화 

탈중앙화 식별자

DIDs는 검증 가능하고 탈중앙화된 디지털 신원을 위한 새로운 형식의 식별자이다. 누구나 DID 메소드로 자신의 주소를 만들 수 있으며 DIDs는 주소이면서 마스터키를 활용해 만들 수 있다. 흔히 우리가 생각하는 ID, Password로 생각하면 된다.

 

Identity(식별자)

식별자는 개인 혹은 단체등을 구별할 수 있는 고유 값

 

DID 문서

DID 문서는 특정 DID를 어떻게 사용하는지에 대해 설명해 놓은 간단한 문서. 각 DID 문서는 암호학적 요소, 검증 메소드, 서비스 엔드포인트 등으로 표현 될 수 있다. 즉 DID 식별자와 주체가 상호 작용을 하기 위한 서비스 엔드 포인트 등을 포함한다.

DID 문서에서 가장 중요한 점은 DID 인증 정보가 들어간다는 것. ID의 제어권과 소유권등을 증명 할 수 있는 공개키와 인증 정보가 들어가있다.

 

DID 메소드

DID 메소드는 특정 분산 원장 또는 네트워크에서 DID 관련된 DID 문서들을 생성, 읽기, 갱신 그리고 비활성화 하는 메커니즘

 

DID 형식 

 

  • did: 문자열이 did임을 나타내며, 이 주소가 did스키마에 따른 것임을 나타낸다. 항상 did로 시작한다
  • example : did 메소드의 이름이고, did는 메소드별로 다르게 처리된다
  • 123456789abcdefghi : DID 메소드 안에서 사용되는 고유 아이디이다
  • did 아이디가 주는 가장 중요한 정보는 "DID문서가 어디에 있는지" 이다
  • ID와 관련된 정보는 did문서에 담겨 있다

DID 문서 내용

DID 문서 내용의 핵심적인 정보는 id의 제어권, 소유권 등이 증명할 수 있는 공개키와 인증정보이다

  • id : 이 did문서를 설명하고 있는 아이디
  • 공개키 : 이 아이디와 관련된 공개키 리스트
  • 인증정보 : 이 아이디의 소유권을 증명하기 위한 정보
  • 서비스 : 이 아이디와 상호작용이 가능한 서비스들의 리스트

핵심적인 부분은 어떤 개인정보도 저장되지 않는다

 

DID Registry

 만약 각 DID 메소드가 다르고 블록체인 플랫폼이 모두 다른 상황에서 DID Document를 가져온다면 굉장히 복잡해지는데 이러한 문제점을 해결하고자 하는 방법이 W3C 공식문서 DID Registry에 담겨있다.

 

DID 인증

인증 절차

  • 회사에서 DID소유권자에게 DID의 유무를 확인하기 위해 소유권자에게 challenge 신청한다
  • 소유자인 나는 회사에게 response를 준다
  • 회사는 응답받은 DID로 Universal Resolver에서 DID document를 가져온다
  • DID document안에 기록되어 있는 인증정보로 소유자에게 받았던 response를 검사하여 확인
  • response 검사를 통해 응답한 소유자가 DID를 가지고 있는 것인지 확인

 위와 같이 누군가의 신원을 검증 하고자 할 때 DID의 소유자의 소유권을 universal resolver를 통해서 DID document에서 인증 정보를 확인한다. 소유자가 제시한 DID와 Universal Resolver의 DID document안에 기록되어있는 정보를 서로 확인한다. 이를 통해 소유가자 제시한 정보의 진위 여부를 확인하는 절차를 거친다.

 

SSI는 무엇인가

 

SSI 와 DID

DID는 블록체인 기반으로 자신을 증명할 수 있는 정보를 스스로 관리 및 보관하고 신원증명이 필요한 서비스를 이용할 때 인증 정보를 제 3자에게 맡기는 것이 아닌 사용자가 직접 관리하도록 하여 데이터 주권을 사용자에게 가져다주는 Self Sovereignty Identity의 일종이다.

즉 자신의 개인정보를 선택적으로 제출 할 수 있게 하는 블록체인 기반 자기주권형 신원증명 기술이다.

DID는 기존 중앙화된 인증방식에서 벗어나 탈중앙화 방식의 신원 증명을 통해 자기 자신의 신원 증명에 대한 권한을 갖도록 하겠다는 SSI 개념을 현실화 하기 위해 사용된다.

 

SSI 개념

SSI 는 스스로가 독립적인 권한을 가진 신원, 자신이 스스로 부여한 신원이다. 신원의 소유권을 가진 주체가 신원에 대한 권리를 가지고 공개 대상과 범위를 선택할 수 있는 개념이다.

 

왜 SSI가 필요한가?

2015년 인터파크 개인정보 유출사고가 있었다. 1030만명 가입자의 개인정보가 유출된 대형 보안사고. 이 사건으로 전국민의 20%에 해당하는 개인정보가 유출되었고 개별 웹서비스에서 개인정보보호가 제대로 이뤄지지 않고 있음을 많은 사람들이 알게되었다.

피해자들은 인터파크 상대로 민사 소송을 진행하였고 최근 1인당 10만원씩 지급하라는 판결이 내려졌다. 이렇듯 개인의 신원정보를 안전하게 관리 편의성을 높이기 위해 새로운 신원관리 방식의 필요성이 지속적으로 요구받고 있다.

 

신원관리 모델 종류

  • 1 세대 : 개별신원 모델, 플랫폼 마다 유저의 아이디 패스워드를 저장하고 신원확인 서비스를 제공하는 형태, 신원 관리 주체는 서비스 제공자이며 이용자는 서비스별로 아이디와 패스워드를 관리해야한다. 개인 정보 유출의 우려가 있다
  • 2세대 : 연합형 신원 모델, 구글과 카카오와 같은 기업이 신원확인 서비스를 제공하는 모델이다. 신원관리 주체는 중앙화된 연결 서비스 제공자, 구글 카카오 등이고 이용자는 스스로 선택한 신원관리 서비스 제공자를 통해 아이디와 패스워드를 관리 할 수 있다. 신원관리 주체인 중앙화 연결 서비스는 로그인을 제공하고 개인정보를 이용하고자 하는 다른 개별 서비스등에 서비스를 제공한다. 
    • 사용자의 편의성 제고
    • 글로벌 기업 개인정보 독점 확보
    • 사용자 개인정보에 대한 권리 주장 어려움
    • 개인 정보 독점 및 유출 위험성 존재
  • 3세대 자기 주권 신원 모델
    • 자기 주권 신원은 개인이 디지털 상의 신원 주권을 가지게 될 때 개인의 개인정보를 자신 스스로가 소유하는 개념
    • 개인은 개인정보 발급 내역만 블록체인 같은 분산원장에 기록하고 특정 상황에서 개인정보가 필요 할 때 개인정보 발급자에게 개인 신원을 증명할 신원정보를 받아서 검증자에게 신원정보를 공유할 수 있는 모델
      • 예시) 대학 졸업 증명서는 블록체인에 저장되어 있다. 대학에 자신의 신원증명정보를 주고 대학졸업증명서를 받는다.
      • 대학은 김블록에 받은 신원증명정보와 분산원장에 저장되어있는 대학졸업증명서의 소유자의 정보와 일치한지 확인한다. 일치할 경우 김블록에게 대학졸업증명서를 발급
      • 김블록이 입사를 희망하는 회사에게 졸업증명서를 제공하고 졸업증명서의 소유자임을 증명하는 정보도 함께 제공한다
      • 김블록이 입사하는 회사는 김블록이 제공한 졸업 증명서가 김블록의 소유가 맞는지 블록체인의 저장된 정보를 가지고 검증한다. 이렇게 하여 김블록은 대학졸업증명서를 제출하고 그에 진위여부를 판별 받게된다.
        • 신원이 분산 관리되어 이전 세대의 신원관리모델보다 가용성과 무결성이 높다
        • 통합된 분산원장 관리가 가능하다면 확정성이 더 높다
        • 신원확인 정보를 블록체인에 공유하여 신원확인이 필요한 서비스를 활용할 때 사용
        • 비밀번호를 잃어버렸을 경우 다시 찾기가 힘들다

1, 2, 3 세대 인증 방식 비교

SSI 요소

DID

DIDs는 검증가능하고 탈중앙화된 디지털 신원을 위한 새로운 형식의 식별자. 누구나 DID 메소드로 자신의 주소를 만들 수 있으며 DID는 주소이면서 마스터키를 활용해 만들 수 있다

DID Auth

아이디 소유자가 개인키를 가지고 있다는 것을 간단히 인증 할 수 있는 방법을 다룬다. 인증법에 대한 표준화는 DIF에서 진행중

DKMS 

신원을 증명하는데 사용하는 개인키를 어떻게 관리할 것인가를 다룬다

Verifiable Credentials

아이디의 소유자가 어떤 것을 할 수 있는 자격을 갖추었음을 검증하는 방법을 다룬다

SSI를 구성하기 위한 요소

1. Iuuser : 발행자

  • 발행자는 신원정보를 발급하는 주체. Verifiable Credential을 발행하는 주체, 정보주체의 요구에 의해 신원정보와 DID를 발급하는 기관. 발행자는 발급한 정보에 대해 신뢰할 수 있는 신원정보를 전달한다.

2. Holder : 자격증명 소유자

  • 소유자는 신원정보를 소유한 주체. vc를 보유한 주체. 정보 주체로 DID를 활용하여 본인의 신원을 증명하고자 하는 사용자이다. 시스템 구성에서는 DID 를 발급받고 제출하는 사용자의 모바일 기기가 이에 해당한다.

3. Verifier : 자격 증명 검증자

  • Verifier는 신원정보 검증하는 주체. Verifiable Presentation을 검증하는 주체. 정보 주체인 홀더에게 vp를 받아 신원정보를 검증한다. DID로 신원을 확인한 후 검증자는 발급기관인 Issuer가 발급한 유효한 신원정보인지 검증데이터 저장소를 통해 검증한다.

4. Verifiable data Registry : 블록체인 등 분산 저장소

  • 정보 주체의 식별자와 Issuer의 인증서, 신원증명 해지내역, 신원증명 스키마 등이 등록되어 있는 분산원장 기반의 데이터 무결성이 확보된 저장소. 분산저장소는 반드시 블록체인일 필요는 없으며, 자격증명 소유자, 발행자, 자격증명검증자가 합의한 분산원장이면 사용가능하다.

검증가능한 크리덴셜은 무엇인가

Credential 

신원확인에 필요한 정보. 예로 주민등록, 운전면허, 여권 등으로 신원을 주장한다. 이것들은 물리적 크리덴셜이다.

  • 신분증의 주체를 식별할 수 있는 정보
  • 발급기관 정보
  • 발급기관이 보증하는 정보
  • 신분증 용도
  • 신분증의 제약조건

우리는 일상생활에서 물리적 크리덴셜 즉 물리적 신분증으로 자신의 용도에 따라 필요한 정보를 증명

디지털 세계에서는 자신의 신원과 자격을 증명하고 크리덴셜의 유효성을 보장하기 어렵다 

자기주권신원 체계에서는 이를 검증가능한 크리덴셜이라 하며 이와 같은 체계에서 검증가능한 크리덴셜 체계를 만든 목적은 디지털 세계에서의 크리덴셜을 물리적 세계의 신분증과 동일한 정보를 제공하려는 것. 핵심은 검증

 

추가 내용 작업 필요

댓글