분산 ID 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:블록체인]]
[[분류:블록체인]]
;Decentralized IDs, DIDs
;Decentralized IDs, DIDs


분산원장을 이용해 중앙등록기관 없이 시장 자율로 운영되는 확장성 있는 '''[[자기주권 신원]]''' 증명 체계
분산원장을 이용해 중앙등록기관 없이 시장 자율로 운영되는 확장성 있는 신원 증명 체계
 
==개요==
 
===개념===
'''온라인상에서 분산원장을 기반으로 사용자가 스스로 신원<ref>사용자의 이름, 나이, 개인 고유 식별정보, 학력·자격, 인증정보 등</ref> 등에 대한 증명 관리, 신원정보 제출 범위 및 제출대상 통제 등을 수행할 수 있도록 하는 신원관리 체계'''
 
*전통적인 서버-클라이언트 모델 신원관리 체계와는 달리, 사용자가 자신의 [[자기주권 신원|신원정보에 주권(Self-Sovereignty)]] 행사 가능
 
===등장 배경===
'''전 세계적으로 개인의 프라이버시를 보호하고자 하는 움직임과 더불어 각 서비스 제공기관 마다 사용자 인증정보 및 개인정보를 관리함에 따른 위험성 및 불편함 인지'''
 
*'''(신원정보 과다 집중)''' 사용자의 신원정보가 글로벌 서비스 제공자에게로 집중됨으로써 발생하는 프라이버시 침해<ref>서비스제공자는 사용자의 동의 없이 사용자 서비스 이용 내역 등을 파악 가능</ref> 가능성에 우려
**구글, 페이스북 등 글로벌 기업에서, 여러 제3자 서비스에서 하나의 인증을 사용할 수 있도록 통합 인증 서비스 제공 중
*'''(신원정보 복제·분산)''' 서비스제공기관마다 사용자의 신원정보 관리 시, 해킹 등 전자적 침해에 따른 대량의 개인정보 유・노출 사고 발생 가능
*'''(인증정보 관리 불편)''' 사용자입장에서 개별 서비스마다 인증정보를 다르게 설정・관리하기에 한계
**이에, 사용자는 여러 서비스에 동일한 인증정보를 설정할 가능성이 높으며, 이를 이용한 [[크리덴셜 스터핑|'''크리덴셜 스터핑(Credential Stuffing)''']] 공격 위협
 
{| class="wikitable"
|'''▶ 실생활에서 사용자가 주민등록증 등 신원증명을 관리하는 것처럼, 온라인에서도 개별 서비스 제공기관이 아닌 사용자 스스로 자신의 신원정보를 관리・통제할 수 있도록 하는 새로운 인증체계 필요'''
|}
 
===특징===
 
*'''(지속성)''' 사용자는 외부환경의 변화와는 관계없이 자신의 신원정보를 지속적으로 사용 가능
**서비스제공자에 의해 신원정보가 관리되지 않으므로, 서비스제공자의 서비스 운영 중지 등 외부적 요인이 발생하더라도 신원정보의 유효성은 유지
*'''(피어(PEER)기반)''' 신원정보의 발행・검증은 특정기관에 종속적이지 않고, 피어기반으로 독립적으로 운영
**서버‑클라이언트 모델과는 달리, 누구나 필요한 신원정보를 생성・이용 가능
**단, 사용자의 신원을 최초로 검증할 수 있는 최소한의 신뢰된 기관(Trust Anchor) 필요
***(예) 금융기관 등에서 사용자 본인확인 절차(대면확인 등)를 거쳐 발행한 신원정보를 기반으로, 타 기관에서 다른 용도(운전가능여부 등)의 신원정보 발행 가능
*'''(휴대성)''' 신원증명이 필요한 경우 언제든 사용자는 스스로 신원정보를 선택 후 제공
**사용자의 휴대성을 위해 스마트폰 등을 이용한 모바일ID, 칩이 내장된 실물카드 형태의 ID카드 등으로 이용 가능
**이를 통해 언제든 필요시, 신원정보를 선택하여 서비스제공자에게 제공 가능
*'''(개인정보 보호)''' 개인의 명시적인 동의 없이는 서비스제공자의 개인정보의 활용 등이 제한
**사용자가 신원정보를 스스로 관리하므로, 서비스제공자는 서비스에 필요한 정보 이외의 개인정보 및 타 기관에서의 사용자 서비스 이용 내역 등은 확인 불가
**또한, 분산원장 기반의 신뢰된 ID저장소 내에는 개인정보를 평문으로 저장하지 않으며, 개인정보가 포함된 신원정보는 암호화 등의 조치를 수행하거나, 분산원장 밖에서(Off-Chain) 저장
 
==기존 인증 체계와의 비교==
{| class="wikitable"
!구분
!공인인증
!블록체인 공동인증
!분산ID
|-
!개요
|
*신뢰된 공인인증기관(CA) 기반 인증체계
|
*업권별(은행, 증권 등) 블록체인 기반 인증체계
|
*기관의 개입 없는 분산원장 기반 인증체계
|-
!신원정보 생성 및 등록
|
*공인인증기관
|
*각 금융회사 등
|
*필요시, 누구나 가능
|-
!신원정보의 신뢰성 기반
|
*국가 공인 시스템의 신뢰성 기반
*공인된 인증기관의 신뢰성·인프라 기반
|
*업권별로 운영되는 블록체인의 신뢰성 기반
|
*발급자의 신뢰성 기반
*이용하는 분산원장의 신뢰성 기반<ref>어떤 분산원장도 사용 가능하지만, 신뢰성이 보장되지 않는 분산 원장 사용 시 이를 이용하는 분산 ID의 신뢰성 또한 보장될 수 없음</ref>
|-
!신원정보 저장·관리
|
*중앙기관에서 모든 사용자의 신원정보 관리
|
*각 참여사 DB에 저장(또는 공동 DB 이용<ref>이론적으로 가능한 모델이나 아직까지 국내 컨소시엄 중에선 이 형태로 운영하는 경우는 없음</ref>)
*블록체인을 통해 동기화
|
*사용자가 원하는 곳에 저장 가능
*개인 디바이스나 지갑 서비스 등에 저장
*블록체인에 검증 정보 저장
|-
!신원정보 이용형태
|
*공인된 하나의 ID 이용
|
*하나의 ID 이용
|
*사용자 필요시마다 생성하여 이용<ref>나이 증명용 ID, 학력 증명용 ID 등 생성 가능</ref>
|-
!공동 이용 근거
|
*전자서명법
|
*컨소시엄 규약(협약, 계약)
|
*없음
*신원정보의 신뢰성에 기반
|-
!예시
|
*공동인증서<ref>기존 공인인증서가 전자서명법 개정('19.12)에 따라 공동인증서로 변경됨</ref>
|
*금융투자업권 체인ID
*은행업권 금융인증서<ref>기존 은행연합회 뱅크사인에서 금융결제원 금융인증서로 변경됨</ref>
|
*Sovrin
*uPort
|}
 
==참여자 및 구성요소==
{| class="wikitable"
!'''구성 요소'''
!'''설명'''
|-
!'''DID'''
|
*주체나 신원을 가리키는 고유한 식별자
|-
!'''[[DID 문서]]'''
 
'''[[DID 문서|(DID Document)]]'''
|
*DID를 식별자(Key)로 하여 식별하고자 하는 대상을 설명한 문서
|-
!'''검증 가능한 신분증'''
 
'''(Verifiable Credential)'''
|
*증명하고자 하는 자격이 담겨있는 '''텍스트 기반'''<ref>W3C 표준은 [[JSON-LD]]로 표현되어 있으나 포맷엔 제한 없음</ref>'''의 인증서'''  (나이 + 이름 + 학력이 기재된 증명서)
*암호학적인 방법으로 증명 가능한 구조
|-
!'''신원(Claim)'''
|
*증명이 대상이 되는 신원(나이, 이름 등)
|-
!'''발급자(Issuer)'''
|
*신원을 확인하고 DID를 발급하는자
|-
!'''주체(Subject)'''
|
*신원의 주체가 되는 자
|-
!'''보유자(Holder)'''
|
*증명서를 보유하고 있으며 제시하는 자
|-
!'''검증자(Verifier)'''
|
*자격 증명자로, 일반적으로 자격을 확인하고자 하는 니즈가 있는 서비스 제공자  (ex. 술담배 판매를 위해 신원증명 주체가 ‘성인’인지 여부를 알고싶어 하는 편의점주)
|-
!'''해석기(Resolver)'''
|
*블록체인 및 전자서명 기술을 이용하여 증명 가능한 신원을 검증하는 도구
|-
!'''지갑(Wallet)'''
|
*증명서를 저장하고 제시하기 위한 애플리케이션
|-
!'''분산 원장'''
 
'''(Distributed Ledger)'''
|
*신원증명의 검증 값을 보관하는 신뢰된 분산원장
*기존의 알려진 원장을 이용할 수도 있고 컨소시엄 등에서 별도의 원장을 구축할 수도 있음
|-
!'''DID 컨소시엄'''
|
*분산원장을 운영하거나 표준·규격 등을 협의하기 위한 기업·기관 협의체
|-
!'''정책 기관'''
|
*금융위원회, 방송통신위원회 등 정책기관
*분산 ID 관련 법제도 및 인증기준 등 마련
|-
!'''표준(Standard)'''
|
*DID 구조, 프레임워크, 신원증명 방법 등을 통일
|-
!'''매체 규격'''
 
'''(DID Method Spec)'''
|
*사용하는 분산원장 및 신원증명 수단별로 세부 사항을 규정한 규격서
|}
 
==기반 기술==
{| class="wikitable"
!구분
!설명
|-
!'''[[블록체인]]'''
|
*분산원장의 신뢰성을 위한 자료 구조
|-
!'''[[전자서명]]'''
|
*공개키를 이용한 부인방지 및 인증 수단
|-
!'''[[영지식 증명]]'''
|
*선택적 신원증명을 위해 사용되는 기술
*정보를 드러내지 않고 정보의 인지 여부, 옳고 그름을 증명하기 위한 암호학적 기술
|-
!'''[[JSON-LD]]'''
|
*DID 문서, 신원, 증명서를 표현하기 위한 표기 규칙
|-
!'''[[URI]]'''
|
*DID를 표현하기 위한 표현 규칙 기반
*서비스 엔드 포인트를 가리키기 위한 주소
|}
 
==동작 절차==
 
#홍길동은 입사지원을 위해 대학교에 학위 증명서 발급을 요청한다.
#대학교는 "홍길동은 석사이다"라는 내용의 증명서를 발급한다.
#*증명서엔 다음의 내용이 포함된다.
##DID: 증명서 고유 ID
##발급 정보: 발급한 대학교 명
##자격 정보: "홍길동은 석사이다"라는 사실
##검증 정보: 대학교의 개인키로 생성한 서명값([[전자 서명|대학교의 공개키로 검증 가능]])
#대학교는 발급한 증명서 고유 ID와 공개키를 블록체인에 올려둔다.
#홍길동은 입사지원 시 증명서를 제출한다.
#입사지원을 받는 회사는 증명서의 고유 ID(DID)로 블록체인을 조회한다.
#조회된 공개키를 이용해 전자 서명값을 검증하여 대학교에서 발급한 증명서가 맞는지 확인한다.
 
==관련 표준==
 
*[https://w3c-ccg.github.io/did-spec/ W3C, ecentralized Identifiers (DIDs)]
*[https://www.w3.org/TR/verifiable-claims-data-model/ W3C, Verifiable Credentials Data Model]
*[https://www.w3.org/TR/verifiable-claims-use-cases/ W3C, Verifiable Claims Use Cases]
*[http://www.tta.or.kr/data/ttas_view.jsp?rn=1&pk_num=TTAK.KO-12.0359-Part1 금융보안원, 분산ID를 활용한 신원관리 프레임워크]
*[https://www.iso.org/standard/80805.html ISO TC307, ISO/DTR 23249 Overview of existing DLT systems for identity management]
 
*ITU-T SG17 Q.14(Distributed Ledger Technology)
**Security guidelines for using distributed ledger technology for decentralized identity management
*ITU-T Recommendation X.509 (10/2019) The Directory: Public-key and attribute certificate frameworks
**Amendment to Rec. ITU-T X.509 | ISO/IEC 9594-8 - Design considerations for a Decentralized PKI (2019)
 
==국내외 사례 및 동향향==
 
===국내===
 
*국가 디지털 신분증 구축사업을 ‘디지털 정부혁신 기본계획 및 발전계획’ ‘한국판 뉴딜 종합계획’의 주요 과제로 선정해 추진
*'''(관계부처 합동)''' 블록체인 기술 확산 전략(2020.6)에 DID 관련 내용 포함
*'''(행안부)''' '모바일 공무원증' 도입 (2021년 초)
**오프라인 : 정부 청사 출입, 도서관 등 지역 서비스 이용
**온라인 : 공무원 업무시스템 로그인, 공무원 증빙서류 제출 등
**운전면허증('21년 말)과 장애인등록증 등도 순차적으로 도입 예 정
*'''(금융위)''' 비대면 금융거래 활성화를 위해 블록체인 기반의 탈중 앙화 신원인증(DID) 규제를 완화 (2019.6)
**금융결제원은 블록체인 기반의 모바일신분증(분산ID) 모델의 금융위원회 혁신금융서비스 지정
 
===해외===
 
*'''유럽연합'''
**모바일 신분증의 자기주권 신원관리를 위한 프레임워크 ESSIF 발표 (‘20.06)
**유럽 국경에 걸쳐 신원을 생성하고 제어
*'''UN'''
**난민을 위한 블록체인기반 ID 발행을 추진 중
**2030년까지 전세계의 인류에게 아이디를 발행할 계획(2020~2030)
*'''네덜란드'''
**자기주권적 신분증 (2018~)
**최소한의 개인정보로 신원확인 하도록 블록체인 기반 디지털 ID 개발
*'''두바이'''
**국제공항에 출입국 심사 간편화를 위해 블록체인 기반 여권 도입 계획 발표(2017.6)
 
==고려사항 및 해결 방안==
 
*
 
{| class="wikitable"
!'''구분'''
!'''고려사항'''
!'''설명'''
!'''해소방안'''
|-
! rowspan="4" |기술·
 
보안
|선택적 노출
|
*프라이버시 보호, 진정한 자기 주권을 위해선 신원주체의 선별적 신원 제시 필요
|
*영지식 증명
*Credential Level
|-
|식별자 문제
|
*동일 DID를 범용적, 반복적으로 사용할 경우 고유식별자적 성격으로 변질 가능성
*매번 새로운 식별자 발급을 위한 성능 부하, 증명값이 블록으로 쌓이는 지연시간
|
*영지식 증명
*실시간 발급
|-
|폐기·재발급 등
|
*중앙 관리 기관 부재로 도용, 폐기, 재발급 등에 대한 관리 체계 부족
|
*관련 세부 규격 마련
*가이드라인 제시 등
|-
|확장성·
 
완결성 문제
|
*블록체인이 가지고 있는 고유한 확장성(Scalability), 완결성(Finality) 문제
|
*스케일링, 샤딩
*Checkpoint, PBFT
|-
! rowspan="2" |법률·
 
제도
|개인정보
 
보호법제
|
*분산ID 식별자에 대한 개인정보 해석 가능성
*분산 원장 인프라에 대한 개인정보 위수탁, 제3자 제공 해석
|
*관련 부처의 유권해석
|-
|제도 기반
|
*본인확인, 실지명의 확인 등 기존 제도화된 인증 체계와 충돌
*전자서명 인정사업자 등 법적인 기관 위주의 시장 진입 어려움
*블록체인의 안정성에 대한 평가·검증 어려움
|
*관련 법률 개정
*블록체인 제도화 및 관리
*정부 주도 실증 서비스 출시
|-
! rowspan="5" |시장
|거버넌스
|
*범국가적 거버넌스, 통일된 체계 부재
*DID 얼라이언스, MyID 얼라이언스, 이니셜 DID 연합 등 난립
|
*관련 부처 중심으로 거버넌스 쳬계 확립
*얼라이언스간 협의체 마련
|-
|신뢰된 원장
|
*비트코인 등 공개 소프트웨어 기반 분산 원장 사용의 적절성 이슈
*컨소시엄 블록체인 외 이종 산업간 범용 가능한 분산원장 부재
|
*신뢰 기관을 중심으로 개방 원장 구축
*블록체인 제도화 및 관리
*DID 통합 해석기 구축 지원
|-
|공통 표준
 
부재
|
*(국내) 금융보안원과 TTA의 표준에도 불구, 한국은행에서 새로운 표준화 추진
*(해외) ISO, ITU, W3C, 하이퍼레저 인디 등 다양한 프레임워크가 제시됨
|
*업계 간 이해관계 조율
*공통 표준화 참여
|-
|인프라·인식 부족
|
*신원학인을 원하는 서비스 제공자, 영업점 등의 인프라 보급에 시일 소요
*개념 확립, 블록체인의 검증 값을 이용한 신원 인증 대한 사회적 이해 필요
|
*SW, 단말기 등 인프라 보급
*관련 교육, 홍보
|-
|신뢰성 보장
|
*신뢰된 CA, RA 없이 이루어지는 신원 증명 발급에 대한 신뢰 기준 부재
|
*계층적 인정 기준 마련
|}
 
==국내 책 추진 현황==
'''블록체인 기술 확산 전략(2020.6)'''
 
*정책 원칙 마련


#국민이 공공분야 제증명 서비스 이용 시 부처별 DID 서비스를 불편없이 이용 가능하도록 지원
== 기본 용어 ==
#DID 서비스의 혁신성을 지속적으로 유지하기 위해 민간 생태계를 최대한 활용
* 이슈어(Issuer): 자격 증명 발급자
#국민이 체감할 수 있는 혁신적인 DID 서비스가 만들어질 수 있도록 민간 서비스 발굴 지원
* 주체(Subject): 자격을 가진 주체
* 보유자(Holder): 자격 증명 소지자
** 주체와 보유자는 다를 수도 있기 때문에 구분한다. '예를 들어 홍길동의 학력은 석사다' 라는 자격 증명을 임꺽정이 가질수도 있다. cf. 국내의 법정대리인, 위임자 개념
* 검증자(Inspector): 자격 증명 검증자


{| class="wikitable"
== 동작 절차 ==
!추진 전략
# 홍길동은 입사지원을 위해 대학교에 학위 증명서 발급을 요청한다.
!설명
# 대학교는 "홍길동은 석사이다"라는 내용의 증명서를 발급한다.
!계획 일정
#* 증명서엔 다음의 내용이 포함된다.
|-
## DID: 증명서 고유 ID
|공공 플랫폼
## 발급 정보: 발급한 대학교 명
|
## 자격 정보: "홍길동은 석사이다"라는 사실
*공공부문 DID 서비스 이용 시 통합 이용 가능한 공공플랫폼 구축
## 검증 정보: 대학교의 개인키로 생성한 서명값([[전자 서명|대학교의 공개키로 검증 가능]])
*민간의 DID 플랫폼과 연계 될 수 있도록 추진
# 대학교는 발급한 증명서 고유 ID와 공개키를 블록체인에 올려둔다.
|2021년
# 홍길동은 입사지원 시 증명서를 제출한다.
|-
# 입사지원을 받는 회사는 증명서의 고유 ID(DID)로 블록체인을 조회한다.
|DID 간 연동
# 조회된 공개키를 이용해 전자 서명값을 검증하여 대학교에서 발급한 증명서가 맞는지 확인한다.
|
*여러 다른 DID 서비스를 편리하게 이용할 수 있는 통합 해석기 개발 지원
|2021년
|-
|표준·가이드라인
|
*DID 플랫폼 상호 간 연동문제 해결을 위한 요구 사항 도출 및 표준화 추진
*상호호환성을 확보하기 위해 준수해야하는 표준 규격, 기술·보안 등 안내
|2021년
|-
|타 인증수단 연계
|
*기존 인증수단([[공개키 기반 구조|PKI]], [[FIDO]] )과 연계 활용할 수 있는 시스템 개발 지원
|2025년
|-
|신규 서비스 발굴
|
*사람의 자격증명 외 분야의 혁신적 DID 서비스를 발굴 시범사업 추진
*의료정보, 전자계약, 사물제어 등
|2021년
|-
|거버넌스 구축
|
*관계부처· 전문기관·기업이 참여하는 민관 합동 DID 협의체 구성·운영
*상호운용성 확보 및 서비스 활성화를 위한 정책 방안 등 논의
|2020년 下
|}


*범부처 통합 공공플랫폼 구축
== 구성 요소 ==
*DID 간 연동지원 및 타 인증수단 연계
=== 저장소 ===
*미래 비대면 사회 대응을 위한 혁신 서비스 발굴 및 적용
*DID 생태계 활성화를 위한 거버넌스 구축


<br />
=== DID 문서 ===
;did documents
* 블록체인에 올라가는 자격 증명을 검증할 수 있는 문서
* 개인정보는 포함하지 않고 검증 체계, 공개키 등만 포함
<pre>
{
  "@context": "https://w3id.org/did/v1",
  "id": "did:example:123456789abcdefghi",
  "authentication": [{
    // used to authenticate as did:...fghi
    "id": "did:example:123456789abcdefghi#keys-1",
    "type": "RsaVerificationKey2018",
    "controller": "did:example:123456789abcdefghi",
    "publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
  }],
  "service": [{
    // used to retrieve Verifiable Credentials associated with the DID
    "type": "VerifiableCredentialService",
    "serviceEndpoint": "https://example.com/vc/"
  }]
}
</pre>


*
=== 인증서 지갑 ===
=== 자격 증명 ===
;Verifiable Claims에서 Verifiable Credentials로 변경
* 증명하고자 하는 자격이 담겨있는 '''텍스트 기반의 인증서'''이다.
* 암호학적인 방법으로 증명 가능하게 되어 있다.
** 이슈어를 명시하고, 이슈어의 개인키로 서명한 값을 포함한다.
** 블록체인 등 신뢰되는 저장소에서 공개키를 조회 해 검증할 수 있다.
* 표준은 [[JSON-LD]]로 표현되어 있으나 포맷엔 제한이 없다.
* 예시는 아래와 같다.
<pre>
{
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://www.w3.org/2018/credentials/examples/v1"
  ],
  "id": "http://example.gov/credentials/3732",
  "type": ["VerifiableCredential", "UniversityDegreeCredential"],
  "issuer": "https://example.edu",
  "issuanceDate": "2010-01-01T19:73:24Z",
  "credentialSubject": {
    "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
    "degree": {
      "type": "BachelorDegree",
      "name": "<span lang='fr-CA'>Baccalauréat en musiques numériques</span>"
    }
  },
  "proof": {
    "type": "RsaSignature2018",
    "created": "2018-06-18T21:19:10Z",
    "verificationMethod": "https://example.com/jdoe/keys/1",
    "signatureValue": "BavEll0/I1zpYw8XNi1bgVg/sCneO4Jugez8RwDg/+
      MCRVpjOboDoe4SxxKjkCOvKiCHGDvc4krqi6Z1n0UfqzxGfmatCuFibcC1wps
      PRdW+gGsutPTLzvueMWmFhwYmfIFpbBu95t501+rSLHIEuujM/+PXr9Cky6Ed
      +W3JT24="
  }
}
</pre>


==각주==
== 관련 표준 ==
<references />
;W3C에서 표준화를 진행중
* [https://w3c-ccg.github.io/did-spec/ Decentralized Identifiers (DIDs)]
* [https://www.w3.org/TR/verifiable-claims-data-model/ Verifiable Credentials Data Model]
* [https://www.w3.org/TR/verifiable-claims-use-cases/ Verifiable Claims Use Cases]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)