- 신원의 개념과 분산신원의 등장 배경
- 신원이란 : 식별자 (이름, 나이, 주소, 직업, 주민번호 등) 을 통해 구분 또는 식별자
- 15c ~ 권력증명 → 의무부과 (세금 등..)
- 호패 ~ 도민증 ~ 주민등록증 (종이 → 디지털화)
- 획득하는 누구나 개인정보 열람이 가능 → 암호학적 안정성이 결여. → So, DID
- 신원 구성요소
- 식별자 : ID 식별위한 식별자
- 속성 : ID 사용자의 특징 (이름, 나이, 주소, 취미, 경력 등)[변동가능]
- 인증수단 : ID 소유권
- 발행인
- 신원방식
- 물리적 신원 (육안대조가능, 신분증, 자격증 등, 중앙형 신원모델)
- 전자신원 (육안대조가능, 물리 신분증에 IC나 코드 삽입)
- 디지털신원 (인증과 로그인 등, 중앙화서버 모바일 신분증, PASS 인증 등)
- DID (신원정보는 블록체인에 저장하는…. COOV 등)
- 신원모델
- 중앙형 신원모델 : 신원증명이 중앙에서 발행하는 모델로, ID, PW 등을 활용한.. 신원 모델 초기형태. 모두가 다른 보안방식을 가지고 있음.
- 연합형 신원모델 : 구글, 카카오 OAuth Login 등을 하는 모델로, 중앙형 신원모델에 “ID공급자”가 추가된 모델이다. 단, 특정 서비스에 중앙집중되어있어 위험성이 존재함.
- 자기주권형 신원모델 : 개인이 개인의 신원증명을 위한 내용을 스스로 직접할 수 있도록 구성하는 모델로 DID가 여기에 해당. 신원정보를 개인이 개인 단말기 등에 저장하는 방식. → 개인정보에 대한 통제권을 개인에게 귀속.
- 자기주권신원이란?
- 자기의 ID 를 직접관리 → 신원정보의 주권을 개인에게 부여하는 기술
- 장점 : 선택적 신원증명(영지식증명) 가능
- 단점 : 정보관리를 개인이 직접하기 때문에 분실 등의 사고에 대한 책임 소재가 개인이다.
- SSI 수요요인 (개인정보보호…, 감시경제저항<일부 과점형태의 기업에 대한 반발 등, WEB3 모델과 동일..>, 개인주권운동<자신의 데이터에 대한 주도권> 등..)
- 국가 신분증 전담기관 및 전문기관
- 국가 신분증
- 전자여권
- 전자공무원증
- To Mobile → 간편인증 시스템
- Example : 공인인증서 (CA 관리방식, 전자서명시장 독점) 폐지 → 공동인증서 (사설인증사업자 → 전자서명 전문기관 <공개키, 생체인증, 분산신원 등>)
- So, 인증방식 표준화, 다양한 인증기관 선택, 인증 편의성, 검증된 인증기관(전자서명 평가기관을 통해 사업자 선정되는 방식으로 진행)
- 모바일 운전면허증 (2021 ~) - (본인명의 휴대폰으로 발급가능, 영지식증명, 성인증명, 운전면허증명 등에 활용, 속성반영 즉시 이루어짐 등의 장점.)
- 모바일 공무원증 이미 도입. NFC (출퇴근, 출입관리, 업무 로그인 등…)
- 모바일 신분증, 모바일로 다 가겠다는 내용인듯. 위변조불가, 개인정보 중앙집중 우려 해소.
- 분산신원 구동원리 (김승언)
- 신원모델 3가지
- 개별신원모델 (ID / PW) - 개인정보 집중 DB
- 연합신원모델 (Oauth) - 개인정보 집중 DB (구글로그인 등.) → 구글 같은 중앙기관에서 다 정보를 따올 수 있음.
- 자기주권 신원모델 (Mobile + DID) - 개인단말,
- 5년간 개인정보 보관가능 → 일반적으로 사기업 대부분은 쭉 개인정보를 삭제하지 않음.→ 유출사고로 이어짐.
- SSI 구성요소
- ISP (ISSURE)
- USER
- VERIFIER
- Blockchain
- DID (VC Claim ID) : 식별자
- VC : 발급인이 발행한 주체에 대한 속성. (Ex. 나의 신분증 등) [발행인의 개인키로 서명함]
- VP : VC 중 필요한 정보만 제출용으로 묶은 내용. [ Holder의 개인키로 서명함]
- VDR (Verfied Registry): 검증가능한 분산저장소 (BC) → DID Document Invoke & Query;, IPFS(자기가 가진 블록체인이 있음 이걸로 제공하는 것), Blockchain…. (중앙 DB 쓰면 자기주권 신원증명이 될까요? 안댐 ^^)
- 원래 사업자등록번호로 검증 → SSI : 회사에서 발급했다는 행위를 블록체인에 기록.
- 비대칭 키 암호화
- 공개키 암호화 → 비밀키 복호화 (데이터 암호화)
- 비밀키 암호화 → 공개키 복호화 (디지털 서명)
- 키는 본인이 생성하고 암/복호화 하기 때문에 내가 키를 삭제하면 연결이 끊어짐. (즉, 개인이 키의 소유를 통해 자기주권 확보)
- DID Document
- VC를 Issuer가 직접 발행했음 (디지털서명)
- 발행된 VC 는 위변조 되지 않았음. (데이터암호화)
- 만든자의 서명이 등록 되어있음.
- VC MetaData 표준은 아직 R&D중이며 아래는 예시정도..
- 발행인 ID
- 발급일
- 만료일
- 클레임 (요청자 ID, DID, 근무정보 등)
- 서명정보 (암호알고리즘, 공개키 등)
- 위변조 식별 (VC를 해시암호화 후, 발행인의 개인키로 암호화해 VC와 함께 전송)
- W3C School DID 문서양식
- DID : Sov (DID Method, 저장소 제공자) : Kei (DID Document 저장 주소)
- DID 구축사례
- Register ( 저장) / Resolver ( 조회)하는 방식으로 구성.
- Indy, IPFS 등 분산저장소에..
- CASE 1 : Hyperledger INDY , Hyperledger URSA, Hyperledger ARIES (어려움..)
- CASE 2 : UPORT (IPFS 형식으로 DID를 구축해두었음.)
- CASE3 : DIF(?)에서 참고해보세용. UI가 편하게되어있어서 써보기 좋아용. ( https://identity.foundation/)
- Register ( 저장) / Resolver ( 조회)하는 방식으로 구성.
- Q&As
- 어떻게 ISSUER를 인증하지 이 부분은 아직 물음표.
- 공인인증서 때 처럼 CA를 두지는 않을 것.
- DID Document에는 개인정보가 삽입되지 않는다. 그걸 제외한 정보와 공개키를 블록체인에 저장한다. Credential(개인정보)는 개인 단말기 등에 저장되는 방식이다.
- 현재는 VP로 넘어갈때 VC가 모두 넘어가지만 앞으로는 VP를 생성할 때 필요한 부분만 전달되는 방식으로 구현될 것.
- 최근 FaceBook 개인정보사용 이슈됨.
- 썻던 DID 값을 개인이 삭제할 수 있음을 보장.
- 신원모델 3가지
- 분산신원 활용 및 주요이슈 (정베니?)
- DID & SSI 정의 용어정리.
- DID : Decentralized Identifier 분산 식별자. 또는 Identity 분산 신원. 블록체인 등 분산원장을 통한 관리.
- SSI : Self Soverign Identifier → 자기주권 신원 개인정보는 오롯이 개인이 처리. 개인단말기 메모리에 저장하는 등.
- DID, VC, VP 구현 원리
- 지갑, 보유자, 발급자, 검증자 는 각각 비대칭 키를 만들고 VDR에 공개키를 포함한 DID Doc 등록
- 보유자를 VDR에 DID Doc을 꺼내와서 검증
- 재직증명 VC 만듦. ( 개인정보 ) → 내 Device 안에서만 관리 (모바일 월렛 등)
- VDR 발급자의 DID Doc을 꺼내와서 그 안에 있는 회사의 공캐키로 검증
- 은행한테 내가 이 회사에 재직중임을 증명하기위해..
- VC를 VP화 시키고 내가 개인키를 서명해서 보낸다.
- 그럼 은행은 발급자 확인. 보유자 확인. 위에서 발행한 VP를 사용자의 공개키를 통해 검증. (VDR에서 가져옴)
- && 유효기간 확인.
- 서비스제공
- 기존 인증체계기술활용함.
- DID 활용 및 주요 이슈
- DID 표준화 (W3C Core Spec에 대해 Google, Mozila, Apple 등이 반대했으나, 권장사항으로 승인) → DID를 표준화하지만 특정 DID Method를 표준화하지는 않음.
- 중앙형 DID 금지 내용은 없음.
- 몇가지가 아닌 다양한 메소드를 권장
- 블록체인 사용 촉진.
- DID 신원증명
- 주민등록 VC가 나오는 순간…….확산이 빨라질 것이다..
- 정부24 앱에 모바일 주민등록 서비스 하고있음. (지금 벌써 사용 가능함.) → DID 전환 검토중.
- Soverin 재단에서 발행한 WhitePaper에 3년 전 쯤에 모델이 참 잘 나왔다. (읽어보길권장) → 여기 재단 사람들이 DID 표준에 활동하고있으니.. 아마 요 느낌 그대로 나올 확률이 높다.
- 공개키 해시값을 블록체인에 저장하고, 공개키 값을 IPFS에 등록하고 사용하는 방식으로….. Claim 발급, 제시 등을 사용.
- ShoCard : 지가 사진찍어서 올려서 검증하는 서비스인듯.
- IATA PASS (Global) : 항공권 예약, 호텔예약, 여권? 등 관련된 모든 내용을 여기서 하겠다..
- ESG-GHG절감 (캐나다 BC주) : 온실가스 저감활동, 온실가스관리 GHG 배출 등 관리하는…. DID 활용. 자기들만 참여해서 측정하는 것이 아닌, 감사기관이 있는듯함.
- COOV 앱 : 코로나 바이러스 예방접종증명.
- 화물운송장 관리 진행 : ISSUER & VERIFIER 는 어느 한쪽만 될 수 있는 것이 아니라 바뀔 수 있다.당연하지;
- 국내 복지급여 관리 : 정부지원금 중복 수급을 하는 경우가 발생함 → 그래서 중복지출이 발생 → 이 부분을 해결하기 위한 DID Platform 적용 사업 진행중.
- 보험금 청구 : 병원, 보험사가 들어와야하고… 메디패스 앱을 보면 운영중..
- 경찰청 증거물 회수 DID 국과수 : 증거물 분실이 많이 일어나고 있으므로…. 여기에 DID 적용을..
- 비대면 민원
- 선원 자격 증명
- 드론조종 자격증명
- 근무 이력관리 : 이력서에 써놓은… 업무 내용들을 곧대로 믿을 수가 없다…
- (민간) 인재 역량 및 협업 능력 증명
- (민간) 미성년 자녀 금융 활동 시 부모 인증
- (민간) 수상 경력관리
- DID 표준화 (W3C Core Spec에 대해 Google, Mozila, Apple 등이 반대했으나, 권장사항으로 승인) → DID를 표준화하지만 특정 DID Method를 표준화하지는 않음.
- DID 분야 협의체
- 마이키얼라이언스 : 코인플러그 주관 → 신원인증 및 전자서명 서비스
- 이니셜 DID 연합 : SKT 주관 → 모바일 재증명 서비스
- 마이아이디얼라이언스 : 아이콘루프 주관 → 비대면 신원증명 간소화 서비스
- DID 얼라이언스 : 라온시큐어 주관 → DID 표준화 및 확산
- 도입기대효과
- 개인입장에서는 선택적 정보들만 가고.. 영지식 증명을 제공해… 신분증처럼 민감한 정보의 노출을 줄일수 있고… ㅇㅇ… 개인정보 주체를 개인이 할 수 있다는 점과… 뭐.. ㅇㅋ..
- 회사 입장에서는 “개인정보 유출” 등 보안사고가 하루가 멀다~~하고 발생하는데 이런 문제 완화. 개인이 관리하다보니까 털리면.. 책임은 개인이다 ㅇㅇ. 책임소재회피기능?
- DID 오해와 진실
- 신원을 사용자가 스스로 생성할 수 있다?
- DID Wallet을 만드는 플랫폼 회사가 있어야함 :) 별도의 발급기관(DID Provider 필요)
- 개인정보 유출을 완벽히 방지할 수 있다?
- 완화가 가능한것.
- 저장소는 무조건 블록체인이 아닐 수 있다.
- 개인정보는 서비스 공급자(Verifier)에게 저장되지 않는다.
- 개인정보의 선택정 공개를 위해서는 ZKP(영지식 증명 또는 → 있다 없다 유무확인)만 존재한다? (VC기반의 VP구성방법)
- 영지식 증명은 시간이 또 걸릴수가있어요~
- 키가 여러개 생겨 오버헤드가 발생할 수 있어요~
- 그래서 Atomic VC로 만들 수도 있어요~ (claim을 나눈다 attributes들을 각각 묶어서 새로운 VP를 생성)
- 신원을 사용자가 스스로 생성할 수 있다?
- 관련주요이슈
- [Root Of Trust (신뢰루트)]
- 우리나라의 모든 DID 인증은? → PASS App 인증
- 해외의 경우 ? → Email & SMS
- [Trust Anchor (신뢰앵커)] - 밥그릇 챙기기 -ㅅ- 왜필요한지 모르곘음. 초기단계다보니..
- 정부발행 ID 기반 VC 발급 시, 새 보증기관 필요(?) 어폐가 있어용..
- 기존엔 KISA가 다 인증했음 → 그래서 또 ~ KISA가 내가 할래요~ 했대유.. 근데 이거 하면 SSI, DID 가 맞나용 ? ^^; 해서 나가리.
- 국내 뿐만 아니라 해외에서도 논의중…
- Market Adoption VS 자기주권 신원인증 다투는즁..
- 그래서… 폐쇄적인 국내 DID 생태계.
- 유럽에서는.. 협력이 잘 이루어지고 있다고 함. (EIDAS 1.0 → 2.0 개정진행중.. EUDI Wallet을 만들고있는중.. 기존인증체계 사용중.. 근데 EBSI → ESSI 여기 조직에서 EUDI Wallet 만들 때 SSI를 적용하는 것으로….. 협의중..) 그래서 쨋든 협의진행이 원활하게 진행중…
- DID 서비스를 고려한다면, 국내 뿐만아니라 글로벌 생태계를 충분히 고려해 BM을 구성해야하고, 표준화 관련 이슈는 많이 있다.. 그러니 플랫폼 내에서만이라도 통일을..출입증부터 간단하게 해보고 제안해보는 방식을 추천한다.
- [Root Of Trust (신뢰루트)]
- Q&A
- 아직 Token 생태계로는 생각도안함 ㅇㅇ.
- 휴대폰 본인 확인 비용은 연간 600 ~ 700억 규모.. 통신사업자랑 사업자가 나눠서 지불한다.
- DID도 Verify가 공짜냐? 아니그든 ! 😱 그럼.. 이것도 고민을… 수익모델..
- DID & SSI 정의 용어정리.
- 분산 신원 구현 데모 (이민호)
- 개발 Flow & Tip 정도.. :
- Wallet Key 생성 → 공개키 & 개인키 쌍.
- generate DID + Specific ID 생성 → 글로벌하게 유니크하면되
- DID 생성하면… 준비가 끝났슈..
- 본인인증 ⇒ 중앙화되어있어유.. Root Of Trust 논외..
- Trust VC가 없다고 하면 다음 서비스 어렵..
- DID 생성 → DID Doc이 생성
- 본인인증서비스 제공
- 본인에 대한 VC 발행 proof를 붙여서 proof value 추가해서 사용중..
- 이제 서비스~
- 학위증명, 은행 뭐 등등..
- QR 해서 제공하는 월렛이 받아서 처리하는방식이라는데..
- JWT Encode
- VC는 나의 월렛에만 존재.
- claim을 나눠주면 된다. name, birth, 등등 attribute에 대해 각각은 맘대로 묶어서 vp로 묶어서 보낼 수 있다 이게 atomic VC.
- 특정사람이 VC 요청 떄 → 생년월일 성인확인 → 새로운 VC 발급 true of False → 이르면된다.
- 개발시 참고하기 좋은 서비스
- Uport (VC가없는데 → uPortLandia에서 credential 생성.. 특정 Credential(City ID)가 있어야 학위증명이 됨.) : 시나리오 예시로 간단하게 체험해보기에 좋은 서비스인듯. Ethereum + IPFS를 활용해서 Smart Contract로 EVM에 저장함.
- VERAMO (): 실제 DID 만들기를 어렵지 않게 CLI에서 해볼 수 있따. CLI 와 JS&TS로 주로 이루어져있음. 직접해보기 쉬움. 깔면 직접 DID 서버까지 띄워줌. 3332port에.
- 메디패스 : 이름 주민번호 넣고 바로 본인 인증이들어감 서비스 입장에서 보여줄 필요는없다. → Panacea 사용중.. Public Key를 사용해서 해시를 하나 만들고.. Encode하고 DID method넣고 .. panacea DIDDocument struct 정의되어있음.
- PPASS
- 스샷찍히지 않는 화면들은 보안 문제 생각해볼것.
- 개발 Flow & Tip 정도.. :
$ veramo config # Yaml 생성
$ veramo did create # DID 생성 (아무 네트워크나 선택가능 alias = ID정도.. ex> 100)
$ veramo did resolve (DID) # DID Docs 나옴.
$ veramo credential create # VC(Credential) 생성. (ISSUER 선택, 위에서 만든 DID 목록 출력 선택가능. Subject 주체 선택, Credential Type, Claim Type, Claim Value, Revocation : 만료 설정)
$ veramo presentation create # VP 생성. (Holder 선택, 형식은 VC와 똑같은데 verifiable credential이 차이가 있움)
$ veramo server # 베라모 띄워진 서버.
# JWT Token Decode
$ veramo help # 도움말 요고 참고해서 하면됨.