[PROOFER] 유즈케이스::신원증명- “블록체인 기반 신원증명 DID의 보안성과 한계 — Part 1”
Writer : 유미선(Misun Yoo)
Reviewer : 맹주현(Juhyun Maeng)
Blockchain Academy PROOFER
블록체인 학회 ‘PROOFER’에서 신원증명 분야에서의 블록체인 보안성에 관한 3부작 글을 연재하며, 연재의 구성은 다음과 같습니다.
1.블록체인이 제공하는 보안성과 암호화 알고리즘이 제공하는 보안성의 비교
2.블록체인 기반 신원증명 DID의 보안성과 한계 — Part 1
3. 블록체인 기반 신원증명 DID의 효용 및 전망 — Part 2
이번에 다루는 주제는 “ 블록체인 기반 신원증명 DID의 보안성과 한계 — Part 1” 입니다.
글의 순서는 DID의 탈중앙 구조에 따라 기대할 수 있는 보안성과 완전한 탈중앙 정도 여부에 따른 한계로 나누어 설명합니다.
Executive summary
DID(Decentralized Identifier), 탈중앙 신원인증의 핵심 특징은 중앙 기관이나 기업이 통제해왔던 신원정보를 사용자 스스로가 생성 및 관리할 수 있다는 데에 있다. 이는 개인에게 신원정보관리 시스템을 구현하고 사용할 수 있는 길을 만들어 주며 사용자 데이터 정보의 보안, 결정권 및 수익에 대한 정당한 보상을 가능하게 한다. 이러한 특징은 P2P기반으로 운영되며 위・변조가 불가능한 블록체인의 암호학적 특성을 기반으로 제 3의 중앙 기관을 거치지 않고도 사용자가 신원정보의 위・변조 여부를 검증하도록 함으로써 구현되었다.
이처럼 DID의 탈중앙 구조에 기반한 기대점이 크게 부각되는 만큼, 현재 논의되는 DID의 탈중앙 구조와 이러한 DID의 분산 네트워크 사용에 따른 탈중앙 구조와 신원 정보에 대한 주권 및 프라이버시 강화에서 비롯된 보안성에 대해 알아보고자 한다. 그 다음으로 해당 구조 하에서 완전한 탈중앙화가 이루어질 수 있는지에 대해 살펴보고 이에 따른 한계를 분석하고자 한다.
DID의 탈중앙 구조에 따른 보안성과 한계
1. W3C에서 제시하는 모델을 바탕으로 한 DID의 신원 정보 검증 구조 분석
DID의 가장 큰 장점으로는 탈중앙 구조에 따른 제 3 중앙 기관의 필요성 제거와 이에 따른 개인 사용자의 온전한 정보 소유 및 통제가 꼽힌다. 그러나 블록체인이 ‘모든 문제를 해결하는 만능 키’라는 태도를 지양해야 하듯이 DID의 탈중앙 구조가 모든 문제를 한번에 해결해주는 만능 키 역할을 할 것이란 무조건적인 기대 역시 한번쯤 되짚어 볼 만하다. 이를 위해 먼저 어떤 점에서 DID의 기술 구현 방식이 탈중앙화 구조를 지닌다고 말하는 것인지, 이어서 여기에는 어떤 한계가 존재하는지를 살펴보기로 한다.
먼저 DID의 표준을 제시하고 있는 W3C에서는 Verifiable Credential Model의 신원 정보 검증 방식을 통해 DID모델을 설명한다. 여기서 ‘검증가능한(Verifiable)’이라는 것은 참여자들의 서명을 통해 신원 데이터의 진위 검증이 가능하며, 그 검증의 유효 여부가 임의로 변경 불가능하다는 특징을 기반으로 한다. 이때 서명의 역할은 한 개인의 신원 정보를 설명하는 구조화된 정보인 DID Document를 정의하고 이를 가리키는 일종의 주소인 Decentralized Identifiers,즉 DIDs를 블록체인상에 정의하는 것이다. 이러한 방식은 인증 요청 시 해당 주소를 통해 정보값의 사실 여부를 검증할 수 있도록 한다.
또한 해당 검증모델의 참여자로는 인증을 하려는 사용자(Holder), 사용자의 인증이 필요한 서비스 제공자(Verifier) 그리고 사용자에 대한 검증가능한 정보를 제공하는 신원정보발행자(Issuer)가 있다. 이들 간 데이터의 요청 및 검증 과정은 다음과 같이 도식화하여 설명할 수 있다.
(1) 서비스 제공자(Verifier)가 사용자(Holder)에게 신원 정보 인증 요청
(2) 사용자가 신원정보발행자(Issuer)에게 신원 정보 발행 요청
(3) 신원정보발행자가 분산 ID저장소에 사용자의 신원 정보를 검증할 수 있는 서명된 ID정보를 등록
(4) 신원정보발행자가 사용자에게 신원정보 발행 및 사용자는 신원정보발행자가 서명한 내용에 대해 Counter-sign을 하여 DIDs(Key) — DID Document(Value) 생성
(5) 사용자는 서비스 제공자에게 신원 정보를 전달, 이때 신원정보발행자에게 받은 신원 정보 전체(Credential)중 인증에 필요한 일부만을 선택한 신원 정보(Presentation)를 서비스 제공자에게 전달
(6) 서비스 제공자는 DIDs를 통해 분산 ID저장소에 저장된 DID Document를 검증하여 신원 확인을 완료
2. DID 구조에서 얻어지는 보안성
이처럼 DID는 개인의 검증가능한 신원정보들(Verifiable Credentials)을 분산 네트워크에 저장해 놓고 있기 때문에 중앙화된 등록 기관의 검증이 필요하지 않다는 점에서 별도 기관의 신뢰 담보 없이도 분산 개인정보 관리 시스템을 구현하고 사용할 수 있는 탈중앙 구조를 만들어주었다. 또한 신원정보를 최소한의 검증가능한 인증정보(Presentations)로 새롭게 정의할 수 있도록 한다는 점에서 프라이버시를 포함한 개인의 신원 주권을 강화한다고 할 수 있다. 즉 탈중앙 신원인증에서 기대되는 보안성은 분산 네트워크 사용에 따른 탈중앙 구조와 신원 정보에 대한 주권 및 프라이버시 강화에서 비롯된다고 할 수 있다.
먼저 분산 네트워크 사용에 따라 얻을 수 있는 보안성으로는 블록체인의 데이터 생성 및 저장 방식을 바탕으로 한 무결성 및 부인 방지와 가용성이 있다. 이는 중앙 기관 없이 탈중앙 구조에서도 시스템에 대한 신뢰를 제공하여 이용자의 지속적 이용 가능성을 보장한다.
각 보안성에 대한 간략한 설명을 하자면, 먼저 무결성이란 위·변조를 방지하여 데이터의 신뢰성을 지키는 성질을 말하며 블록체인은 해시 함수를 사용함으로써 데이터 위·변조를 불가능하게 한다는 점에서 무결성을 지닌다.
이어서 무결성은 곧 거래 기록 등의 행위 과정이 투명하게 기록된다는 점에서 어떠한 행위를 한 후 그 행위에 대해 부인하는 것을 방지할 수 있는 부인방지 기능과도 연결된다. 예를 들어 거래 입금이 완료되었음에도 이를 받지 않았다고 부인하는 경우 거래 기록을 바탕으로 진위를 판별하는데 도움이 될 수 있다.
마지막으로 블록체인은 특정 노드가 DDoS 등 해킹 공격을 받더라도 다른 노드를 통해서 언제든 서비스에 접근할 수 있다는 점에서 가용성을 지닌다. 한 곳에 데이터가 중앙 저장된 경우 단일 시스템의 실패가 전체 데이터의 손실로 이어지는 단일 실패 지점(Single point of failure) 위험을 분산 시스템을 기반으로 한 블록체인은 걱정하지 않아도 되기 때문이다.
추가적으로 DID구조에서 신원 인증 정보를 오프체인에 저장할 경우 해킹으로 개인정보가 유출될 위험에서 더욱 자유로울 수 있다. 반면 현재 중앙 시스템에서 신원 정보를 보관하고 관리하는 구조에서는 해킹을 통한 대규모 개인 정보 유출 위험과 제 3자의 개인 정보 악용 위험이 존재한다는 점에서 가용성이 부족하다고 할 수 있다.
다음으로 프라이버시를 포함한 신원 정보에 대한 주권 강화에 따라 기대되는 보안성으로는 기밀성과 익명성이 있다. 기밀성과 익명성은 정보가 외부로 유출되는 것을 막아 보호하는 것과 관련된 보안 기능이다. 이때, 기밀성은 사용자가 보유하고 있는 중요 정보를 보호하는 반면 익명성은 사용자의 신원과 관련된 정보를 보호한다.
먼저 기밀성은 중요 정보를 보호하고 유출을 방지하며 권한 없는 사용자가 해당 정보를 탈취해도 읽을 수 없도록 하는 것과 관련된 기능이다. 이는 개인키로 인증한 사용자가 아니면 전송된 내용을 볼 수 없다는 점을 바탕으로 한 보안 기능이다. 이와 관련하여 DID는 신원인증에 필요한 정보들을 미리 정의한 다음 암호키를 통해 공개키가 나의 것임을 증명하는 방식으로 비대칭 암호화 알고리즘을 사용하여 기밀성을 제공한다. 이에 따라 사용자 개인의 단말기에 분산 저장된 정보는 사용자 키를 통해서만 접근이 가능하다. 이는 비대칭 암호화 알고리즘에서 개인 식별 정보로서 개인 키를 사용하여 개인 키가 사용자 계정의 역할을 대신 하며 계좌번호에 해당하는 공개 키는 개인 키를 기반으로 생성하는 방식을 기반으로 한 것이다.
이때 비대칭 암호화 알고리즘은 계정마다 서로 다른 공개 키와 개인 키를 생성하여 암호화 및 복호화에 사용한다는 특징에 따라 붙여진 이름이다. 또한 개인 키로 암호화한 정보는 그 쌍이 되는 공개 키로 누구나 복호화가 가능하다. 그러나 특정한 공개 키로 복호화를 하려면 이와 쌍을 이루는 특정 개인 키로 암호화된 상태여야 한다는 점에서 암호화 작성자가 개인 키의 소유자임을 보증하는 전자서명의 역할을 할 수 있다. 추가적으로 공개 키로 암호화한 정보는 특정한 개인 키로만 복호화하여 수신할 수 있다. 이에 따라 전송자가 수신자를 지정하면 동일한 비밀 키를 공유하지 않고도 메시지를 전송할 수 있다.
다음으로 개인이 신원정보를 상황마다 필요한 정보만 선택하여 최소한의 검증가능한 인증정보(Presentations)의 형태로 공개할 수 있다는 점에 따라 DID는 익명성을 제공할 수 있다. 이는 마치 소셜 로그인을 통한 회원가입 시 이름이나 주소 등을 입력하지 않아도 되는 경우와 같이 사적인 개인 정보를 제외한 최소한의 필요 정보만으로 신원을 인증 할 수 있게끔 하기 때문이다.
다만 기존의 페이스북이나 카카오톡 등의 소셜 계정을 통해 자동 가입하는 공개인증방식(OAuth)은 DID와 달리 신원인증의 기능을 하기에는 특정 중앙 플랫폼에 종속되어 있다. 따라서 해킹의 위험성과 서비스 종료 시 데이터 지속성을 보장할 수 없고 웹 사이트 로그인 외에 다양한 인증 수단으로 활용되기에는 보안성이 부족한 면이 있다.
또한 DID는 신원인증에 필요한 정보들을 받는 대신에 개인 식별 정보로서 개인 키를 사용하여 개인 키가 사용자 계정의 역할을 대신 하게 된다. 이에 따라 사용자는 일일이 신분증을 찍어 올리거나, 정보를 입력할 필요 없이 자신이 소유하고 있으며 이전에 인증했던 정보를 불러오기만 하면 된다. 더 나아가 표준 DID가 수립될 경우, 국경이나 네트워크에 관계없이 단일 DID만으로 간편하게 신원인증이 가능해질 수도 있다.
DID의 탈중앙 구조에 따른 한계
그러나 분산 네트워크 사용에 따른 탈중앙 구조와 신원 정보에 대한 주권 및 프라이버시 강화에서 기대되는 보안성이 현실에서 구현되기까지는 아직 넘어야 할 한계가 존재한다. 그 한계는 DID가 제공하는 장점이 탈중앙 구조에 따른 개인의 신원 주권 확대와 이용 편의성에 기반하고 있으나 아직까지는 중앙 인증기관의 필요성을 완전히 탈피한 탈중앙화를 구현했다고 보기 어렵다는 것에 있다.
실제로 이상적인 탈중앙 기반 자기주권 신원 인증 구조에서는 위 W3C의 Verifiable Credential Model에서 보여지는 신원정보발행자(Issuer)와 사용자(Holder)가 일치해야 사용자가 타 발행 기관에 대한 의존없이 자신의 신원을 완벽히 통제 및 관리한다고 할 수 있다. 하지만 이는 신원정보의 생성과 활용이 모두 개인의 통제 아래 있는 상황에서 개인이 관리하는 신원 인증에 대한 신뢰라는 근본적인 문제를 야기한다. 탈중앙 신원증명에서 Verifiable Credential Model은 신원을 검증하고자 하는 서비스 제공자가 인증정보 발행자를 신뢰할 수 있다는 Trust Model의 구축을 기본 전제로 하고 있으며, 이는 서비스 제공자가 신원정보 발행자로서의 사용자를 신뢰할 수 있어야 함을 의미하기 때문이다.
현실적으로 이 문제를 해결하기는 어렵기 때문에 DID모델에서도 여전히 신뢰할 수 있는 제 3의 중앙화된 신뢰기관을 필요로 하게 된다. 이처럼 사용자의 신원을 최초로 검증할 수 있는 특정한 신뢰의 근원 기관을 (Trust Anchor)라고 한다. 대표적인 예로 국가가 주민등록증, 여권, 운전면허증 등을 통해 국적, 생년월일 등을 증명함으로써 개인 신원 인증에 대한 신뢰의 근원을 담보하는 것을 들 수 있다. 이는 세계경제포럼(WEF)의 3가지 신원정보 속성 구분 중 국적, 생년월일 등의 태생적 속성(Inherent Attribute)에 속하는 것으로, 시민권이나 졸업증명 등 정부나 기관에 종속된 부여된 속성(Assigned Attribute)과 함께 현재 신원인증의 주축을 이루고 있다. 나머지 한 속성은 신용정보, 평판 등의 축적된 속성(Accumulated Attribute)으로 이는 자기주권신원(SSI)의 주요 항목 중 하나이다. 그러나 이는 현재의 신원인증 구조에서 절대적 신뢰를 두고 있는 앞의 두 속성에 비해 큰 신뢰를 지니지 못하므로 결국 검증의 특정 시점에는 국가나 금융기관 등 권한을 가진 중앙기관의 인증이 필요하게 된다.
따라서 DID의 특징은 신원정보의 발행・검증의 전 과정이 특정기관에 종속적이지 않고, 피어(PEER)기반으로 독립적으로 운영된다는 점에서 나타난다. 이는 누구나 필요한 신원정보를 언제든지 생성하여 이용 가능하고 신원 정보의 활용처를 파악할 수 있다는 장점이 있지만, 사용자의 신원을 최초로 검증할 수 있는 최소한의 신뢰된 기관(Trust Anchor)을 여전히 필요로 한다는 점에서 탈중앙 구조보다는 분산 구조에 더 가깝다. 이에 따라 아직은 개인이 정보관리의 온전한 주체가 되는 것은 해결이 어려운 한계점이라 할 수 있다.
Reference
“DID가 극복해야 할 문제” https://noder.foundation/did-for-ssi/
“블록체인 2탄: 블록체인 기술 기반의 본인 확인” https://bit.ly/37ARMGb
“금융보안원 전자금융과 금융보안 제16호” http://www.fsec.or.kr/common/proc/fsec/bbs/146/fileDownLoad/1860.do
“자기주권신원과 분산ID에 대해 알아야 할 거의 모든 것” https://brunch.co.kr/@metadium/126
“분산ID에 대한 쉬운 가이드”” https://brunch.co.kr/@metadium/127
“자기주권신원과 구성 요소-Self-sovereign Identity의 배경과 이해” https://bit.ly/2O2MsUe