게시물 검색

ICT/정보통신 차세대 ID ~자기 주권형 아이덴티티(SSI)와 DID~

  • 관리자 (irsglobal1)
  • 2023-05-01 16:58:00
  • hit2952
  • 218.148.135.158

출처 : https://www.nri-digital.jp/tech/20221108-11748/

 

여기에서는 디지털 아이덴티티와 관련된 개념 중 SSI(Self-Sovereign Identity)와 SSI를 실현하는 기술인 DIDs(Decentralized Identifiers)를 해설한다.

 

디지털 아이덴티티란

 

애초에 디지털 아이덴티티란 무엇일까. ISO/IEC24760-1에서는 아이덴티티를 ‘실체에 관한 속성 정보의 집합(set of attributes related to an entity)’이라고 정의한다. 그러므로 디지털 아이덴티티란 ‘실체에 관한 속성 정보의 집합’을 인터넷 등의 디지털 공간 상에서 실현시킨 것이라 할 수 있다. 예를 들어, 서비스를 이용하는 실체를 식별하는 식별자인 ‘ID’, 그에 따르는 ‘비밀번호’ 및 ‘개인의 속성 정보(이름, 생년월일 등)’와 같은 정보의 집합체를 디지털 아이덴티티라 할 수 있다.

 

디지털 아이덴티티는 인터넷상에서 다양한 형태로 활용되고 있다. 예를 들어, 서비스를 이용할 때는 사전에 등록한 ‘ID’와 ‘비밀번호’를 입력하고 인증하여 로그인하는 것이 일반적이다.

 

디지털 아이덴티티의 활용이 발전하면서 그러한 정보를 관리하는 것의 중요성이 고조되어, 다양한 접근방식이 취해져 왔다. 당초에는 서비스 제공 기업이 각자 ID를 발행하고, 해당 기업이 관리하는 DB에서 중앙집권적으로 관리했다. 하지만 여러 서비스를 이용하는 사용자들은 각 서비스마다 ID와 비밀번호를 따로 사용하거나 신규 등록 시 매번 이름 등을 새로 입력해야 하는 번거로움을 겪게 되었다. 기업 측에서도 ID 정보를 관리하려면 엄격한 보안 대책이 필요하기 때문에 업무 부담이 커졌다. 이러한 문제를 해결하는 기술로서, 같은 사업자 내에서의 싱글 사인온 및 ID 연계가 새롭게 등장하였고, 지금은 많은 서비스에서 이를 적용하고 있다.

 

한편 앞서 언급한 ID 관리 방식은 모두 특정한 사업자에 아이덴티티 정보가 집약되기 때문에, ‘특정 사업자에 대한 의존’과 ‘사업자의 데이터 관리에 대한 신뢰성 결여’라는 우려가 생기게 되었다. 그러한 문제를 해결하는 새로운 아이덴티티 관리 방법으로 주목받고 있는 것이 SSI라는 개념이다.

 

<그림1> 디지털 아이덴티티의 개념도

 

SSI(Self-Sovereign Identity)란

 

SSI란 Self-Sovereign Identity(자기 주권형 아이덴티티)의 약칭으로, 2016년에 SSL/TLS의 전문가 크리스토퍼 알렌이 ‘The Path to Self-Sovereign Identity’라는 기사에서 제창한 용어다. 국가와 사업자 등 이른바 Identity Provider(IdP)라 불리는 관리 주체에 의존하지 않고, 서비스를 이용하는 개인이 직접 디지털 아이덴티티 정보를 발행 및 관리한다는 개념이다. SSI에서는 자신이 생성한 식별자 및 인증을 위한 키를 사용하여 ID와 그와 관련된 속성 정보를 개인이 관리하기 때문에, 다음과 같은 특징을 가진다.

 

첫 번째는 ID 정보의 이용 여부를 특정 사업자에 의존하지 않는다는 점이다. 기존 기술에서는 만약 IdP가 도산했을 경우 해당 ID를 다시는 사용할 수 없게 되었지만, 직접 ID를 관리하는 경우에는 리스크를 피할 수 있다. 이러한 특성은, 예를 들어 난민의 신원 보증에 도움이 될 것으로 기대된다. 의료 복지 서비스를 누리거나 은행 계좌를 개설할 때에는 정부가 발행하는 공적인 신분증이 필요하다. 하지만 어떠한 이유로인가 자국에서 쫓겨난 난민들은 피난한 국가에서 효력을 발휘하는 신분증이 없어 생활에 어려움을 겪곤 한다. 국가에 의존하지 않고 스스로 자신의 아이덴티티를 증명하는 수단을 확립하는 SSI는 그러한 국제 문제를 해결하는 데 도움이 될 가능성이 있다.

 

두 번째는 ID 정보를 관리할 권한이 개인에게 있다는 점이다. 요즘에는 각 사업자가 관리하는 ID와 비밀번호 등의 속성 정보가 누출되는 문제가 중요시되고 있다. 법적인 조치가 마련되고 있기는 하지만, 관리 권한이 사업자 측에 있는 한, 개인의 정보가 어떻게 관리되고 이용되는지 알 수 없다. 하지만 SSI에서는 IDㆍ속성 정보의 이용과 제삼자에 대한 공개를 개인의 의사로 자유롭게 제어할 수 있도록 만들 생각이며, 개인 정보ㆍ프라이버시 보호라는 관점에서 개선될 것으로 보인다.

 

이러한 SSI의 개념을 실제 서비스에 적용하는 구체적인 실현 방법에 대해 국내외에서 의논되고 있으며, 후에 기술할 ‘DIDs’가 실현 수단 중 하나로 검토되고 있다.

 

DID(Decentralized Identifiers)란

 

DID란 Decentralized Identifiers의 약칭으로 분산형 장부 기술 등을 사용하여 ID를 관리함으로써 디지털 아이덴티티이 특정 IdP에 대한 의존도를 낮추는 것을 목적으로 한다. SSI 및 DID라는 아이디어를 실현하는 수단으로서 W3C(World Wide Web Consortium)가 검토하고 있는 것이 DIDs(Decentralized Identifiers) 사양이다. DIDs는 블록체인 등으로 인해 구축된 분산형 시스템을 통해 실현되는 식별자를 말한다. DIDs는 비밀키ㆍ공개키의 짝과 연결하여 관리되며, 비밀키로 서명한 데이터를 공개키로 검증함으로써 개인을 인증한다. 이러한 사양에서 사용자는 자신의 권한으로 그 디지털 아이덴티티를 생성하거나 갱신할 수 있다. 또한 이후 해당 기사에서 구조 및 개요를 해설할 때는 DID라는 용어를 식별자(분산 Identifier)라는 의미로 사용한다.

 

아래 그림은 W3C가 제창하는 DID 아키텍처의 개념도다. DID는 DID 관련 데이터를 가진 DID Document와 일대일로 연결되며, DID를 해결함으로써 DID Document를 얻을 수 있는 구조로 되어 있다. DID Document에는 DID 자신 및 DID와 연결된 공개키 정보 등 DID와 관련된 데이터 모델이 기재되어 있으며, DID를 사용하는 인증 및 검증을 수행하는 데 꼭 필요하다.

 

<그림2> W3C가 제창하는 DID 아키텍처의 개념도

자료 : https://www.w3.org/TR/did-core/#architecture-overview

 

각 컴포넌트는 다음과 같은 역할을 한다.

 

DID Subject

DID의 소유자를 나타낸다.

 

DID Controller

DID Document 내용의 갱신 및 삭제 등의 권한을 가진 주체. 많은 경우 DID Subject와 동일하다.

 

DID URL

DID에 패스 및 쿼리 파라미터, 프래그먼트를 추가한 것으로, DID Document 내의 특정한 정보(공개키 등)를 제시하는 데 사용된다.

 

Verifiable Data Registry

DID와 DID Document가 저장되는 분산형 장부 및 블록체인 등의 레지스트리.

 

DID는 아래 그림처럼 스키마ㆍDID 메소드명ㆍDID 메소드 고유의 식별자로 이루어진 문자열로 구성되어 있다.

 

<그림3> DID의 일례

 

DID의 문자열은 DID Syntax ABNF Rules를 따르는 형식을 취하도록 W3C의 문서에서 정하고 있으며, 접두사 ‘did:’로 시작한다. DID 메소드란 DID가 어떻게 적용되는지를 정의한 것이며, DID 생성 방법 및 DID 등록처의 레지스트리 등이 정해져 있다. 개발자는 W3C에서 정한 요건에 따라 독자적으로 DID 메소드를 개발할 수 있기 때문에, 현재 많은 DID 메소드가 존재한다. 대표적인 것으로는 레지스트리로 Bitcoin 블록체인을 사용하는 did:ion과 Ethereum 블록체인을 사용하는 did:ethr가 있다. 식별자는 각 메소드 내에서 하나의 값이 발행되는데, 발행되는 프로세스는 메소드마다 다양하다.

 

DID의 레지스트리로서 블록체인을 사용하는 경우, ‘입력된 ID는 다른 누군가가 갱신할 수도, 삭제할 수도 없다’는 블록체인의 성질 때문에, 중앙집권적인 기관의 관리에서 벗어나 사용자가 스스로 ID를 생성, 갱신, 삭제할 수 있다. 이러한 특성 때문에 DID가 SSI의 개념을 실현하는 수단 중 하나로 거론되고 있다. 또한 모든 DID가 블록체인을 레지스트리로 사용하는 건 아니다. 예를 들어 did:key는 짝을 이룬 공개키를 base58-btc로 인코딩한 값을 식별자로 가진 백엔드리스한 did 메소드로 알려져 있다.

 

DID 등록 시스템

 

여기에서는 DID의 이해를 돕기 위한 일례로, 실제로 DID가 레지스트리에 등록되는 구조를 해설한다. DID 등록 구조는 다양하지만, 그 중에서 ‘Client-managed Secret Mode’를 소개한다. 아래 그림은 DIF(Decentralized Identity Foundation, DID 표준화 단체 중 하나)이 제시하는 Client-managed Secret Mode의 개념도다.

 

<그림4> DIF가 제시하는 DID 등록 시스템의 일례

자료 : https://identity.foundation/did-registration/#client-managed-secret-mode

 

1. 키페어 생성

먼저 사용자가 공개키와 비밀키의 키페어를 생성하고 월렛에 저장한다. 키페어 생성은 월렛 내부에서 이루어지는 경우도 있다. 월렛이란 DID와 관련 비밀키, 그리고 그 밖의 기밀성이 높은 암호키 정보를 안전하게 보관할 수 있는 소프트웨어 또는 하드에어 단말기를 말한다.

 

2. DID 생성

여기서는 DID가 생성된다. DID를 구성하는 식별자는 공개키를 통해 시산하는 등의 방법으로 작성된다. 이 단계에서는 DID는 아직 레지스트리에 연결되어 있지 않다.

 

3. DID를 레지스트리에 입력하는 준비

DID registrar는 DID의 생성 및 갱신을 담당하는 컴포넌트로서, 이를 실행하는 함수를 적용한 소프트웨어 및 하드웨어를 가리킨다. 여기서는 등록 리퀘스트를 레지스트리에 보내기 위해 필요한 파일을 작성하는 등 DID 등록에 필요한 준비가 이루어진다. 예를 들어, DID 및 DID Document의 내용을 기재한 JSON 형식의 데이터를 생성한다.

 

4. 5. 6. 입력 내용 서명

여기서는 DID Registrar가 월렛에 대해 디지털 서명할 것을 요구한다. 예를 들어 월렛이 DID Registrar로부터 받은 JSON에 포함되는 DID 및 DID Document 정보를 확인하고 서명함으로써 이러한 정보의 진정성을 담보한다.

 

7. 레지스트리에 DID 입력

마지막으로 DID Registrar가 서명된 파일을 사용하여 레지스트리에 입력하면, DID가 레지스트리에 등록된다.

 

어디까지나 일례지만, 위와 같은 구조로 DID가 생성 및 등록된다.

 

 

[웹3.0 플랫폼으로 주목받는, 국내외 블록체인 기술 동향과 토큰경제(NFT, STO) 시장 전망] 보고서 상세보기

https://www.irsglobal.com/shop_goods/goods_view.htm?category=02000000&goods_idx=90001&goods_bu_id=

 

게시글 공유 URL복사