본문 바로가기
  • think normal
새로워지기/사이드 프로젝트

혼공 | 마스터링 자기주권신원 - SSI 아키텍처의 핵심(1/2), VC

by 청춘만화 2023. 1. 27.

 

자격증명의 개요

웹 양식에 세부 정보를 입력하는 것은 시간이 많이 걸리고 오류가 발 생하기 쉬우며 개인 정보를 침해하기 쉽다.
이제 W3C의 완전한 개방형 표준이 된 VC를 통해 사용자들은 오늘날 생성된 물리적 VC를 디지털 VC로 변환하여 휴 대폰, 태블릿, 노트북 및 기타 기기에 넣고 다니면서 화면을 가리키고 클릭하기만 하면 온라인에서 사용할 수 있다.

 

Verifiable Credentials Data Model v1.1

This section introduces some basic concepts for the specification, in preparation for Section 5. Advanced Concepts later in the document. When two software systems need to exchange data, they need to use terminology that both systems understand. As an anal

www.w3.org




속성 attribute

attribute와 같은 결의 의미로 사용되고 있는 용어들,..

 

 


VC 구성 요소

( 아직 표준은 아님,..)
발급자 issuer
사용자에게 VC를 발급하는 엔터티이다. 대부분의 경우 사용자는 주체이지만, 어떤 경우에는 그렇지 않을 수 있다. 예를 들어, 대상이 애완 고양이이고 VC가 예방 접종 인증서인 경 우 발급자는 고양이 반려인에게 VC를 발급한다.
주체 subject
VC에 저장되는 속성의 엔터티이다. 주체는 정체성(신원)이 있는 모든 것이 될 수 있다. 사람 조직, 인간이 만든 것, 자연적인 것, 논리적인 것 등이다.
보유자 holder
현재 VC를 보유하고 검증자에게 제시하는 엔터티이다. 대부분의 경우 주체와 보유자는 동일하지만, 앞서 설명한 처방전과 고양이의 예에서 보았듯이 항상 그런 것은 아니다.
검증자 verifier
보유자로부터 VC를 받아 주체에게 혜택(서비스)을 제공하는 엔터티이다.

지갑 wallet
보유자의 VC를 보관하는 엔터티이다. 대부분의 경우 지갑은 보유자 에이전트에 통합되어 있지만, 이 모델을 통해 클라우드 스토리지 지갑과 같은 원격 지갑이 존재할 수 있다.

보유자 에이전트 holder's agent
보유자를 대신하여 VC 생태제과 상호 작용하는 소프트웨어다. 이것 은 휴대폰에 로드되는 앱이거나 노트북에서 실행되는 프로그램일 수 있다.

검증 가능한 데이터 저장소 verifiable data registry
개념적으로 VC 생태계 운영을 지원하는 모든 필수 데이터와 메타데이터를 포함하는 인터넷 접근 가능 저장소이다.

검증 가능한 저장소에 저장할 수 있는 데이터 및 메타데이터 유형의 예
-> 발급자의 공개키
-> VC가 포함할 수 있는 모든 속성에 대한 스키마 또는 온톨로지 해지된 VC의 해지 리스트
-> 발급자가 권위 있다고 말하는 주체 속성

 

 

 

VC 아키텍처

사용자( 보유자) 중심의 VC 아키텍처

오늘날 앞으로
연합형 신원 관리 시스템
Federated Identity Management,
FIM 아키텍처
IDP 생태계 중심
메시지 기반 프로토콜 DIDComm
중앙을 거치지 않고 사용자끼리의 통신(P2P)이 가능
사용자(보유자) 중심
사용자는 먼저 서비스 공급자에 접속한 다음, IDP로 리다이렉되어 로그인한다. 그리고 서비스 공급자로 다시 리다이렉션되어 IDP가 전달해 주는 사용자의 ID 속성들을 전달받는 형태로 진행된다. VC 아키텍처에서는 정의된 연합 내에서 웹 기반 리다이렉션이 없다. 보유자로서의 사용자는 발급자로부터 VC를 받고 이를 수락할 모든 검증자에 독립적으로 사용한다.

 

 






표준화

W3C 검증 가능한 '클레임' 워킹 그룹 Verifiable Claims Working Group에서 정의하고 있는 데이터 모델 유형
- VC에 대한 데이터 모델 정의
- 발급자가 보유자에게 제공하는 자격증명인 VC를 위한 데이터 모델
- 보유자가 검증자에게 제시할 수 있는 자격증명 모음인 검증 가능한 프레젠테이션 verifiable presentation, VP 데이터 모델
- 데이터 모델의 구문 표현(직렬화, 사람과 컴퓨터 모두 읽을 수 있는 표현)
-> JSON-LD( JSON Linked Data) 구문을 사용하여 데이터 모델을 제시(또는 표현)하는 방법
-> JWT( JSON Web Tokens) 구문을 사용하여 해당 데이터 모델을 제시(또는 표현)하는 방법

 

 

 

 

VC 속성

메타 데이터 구성 요소, 클레임 구성 요소 및 증명 구성 요소를 보여주는 기본 VC의 구조.
클레임의 집합.
VC는 보유자에 의해 선택적으로 VP에 포함될 수 있다.

VC 기본 구조

리프레시 서비스 refreshService : 제한된 수명을 갖도록 설계.
- id: 조회자가 새로 고친 VC를 얻을 수 있는 URL
- type: 새로 고침 서비스 유형, refreshservice 속성에 포함되어야 하는 다른 속성을 제어.

분쟁
: DisputeCredential 속성

- 발급자가 주채에 대한 오래된 정보를 갖고 있는 경우 , 그 과정에서 정당한 주체가 이전VC에 대한 해지을 원하는 경우, 발급자의 대응이 느린 경우 활용

이용약관 url 포함

VC 내부 클레임에 대한 보증 수준 설정

- evidence 속성
- level of assurance, LDA(4단계)

 

 

 

 

 

VP 속성

검증 가능한 프레젠테이션 VP는 보유자가 여러 VC를 결합하여 검증자 에게 보낼 수 있는 한 가지 방법.
VC의 집합.

VP 기본 구조

VC와 차이점
- issuer 속성이 없다.
- id 속성이 선택 사항. 나중에 보유자가 이 VP를 고유하게 창조하려는 경우에만 필요




확장성과 스키마

- VC는 개발형 모델
- JSON-LD 구문과 내장된 @context 확장 메커니즘 사용

- 글로벌 고유 개체 식별자 object Identifier. OID 레이블을 지정

VC 인코딩에 VC에 대한 @context, 어떤 유형의 VC인지, VC가 어떤 스키마를 사용하는지 포함한다.




영지식 증명 zero-knowledge proot, ZKP

비밀을 공개하지 않고 비밀번 호와 같은 특정 비밀값에 대한 지식을 증명할 수 있도록 의도된 암호화 알고리즘 또는 프로토콜의 종류

작동 방식( 아래 중 하나 이상을 수행할 수 있다)
-> 발급자가 관여하거나 검증자가 누구인지 알 필요 없이 VC에서 클레임 검증을 제공(즉, 디지털 서명)
-> 보유자의 프라이버시를 보호하면서 VC의 클레임에 대한 검증 제공
-> 다른 클레임의 내용이나 존재 여부를 밝히지 않고 VC에서 일부 클레임을 선택적으로 공개하도록 허용
-> 전체 클레임(생년월일)을 제공하는 대신 파생된 클레임 18세 이상)이 검증자에게 제시되도록 허용

해당 알고리즘
zk-SNARK : 지식을 공개하지 않고 상호 작용하지 않고 비밀 키와 같은 특정 지식의 소유권을 입증할 수 있는 증명 아키텍처

 

zk-SNARK

Gain an edge over the crypto market with professional grade data, tools, and research.

messari.io

zk-STARKS : zk-SNARK는 모두 비대화형 ZKP 유형, 증명 크기가 더 크고 검증하는 데 더 오래 걸린다

 

STARK - Starkware

STARK is a proof system. It uses cutting-edge cryptography to provide polylogarithmic verification resources and proof size.

starkware.co

BULLET-PROOF ENCRYPTION : 신뢰할 수 있는 설정이 필요하지 않은 짧은 비대화형 영지식 증명입니다. 방탄은 암호화된 평문이 잘 형성되었음을 검증자에게 확신시키기 위해 사용될 수 있다.

 

Bulletproofs | Stanford Applied Crypto Group

Bulletproofs are short non-interactive zero-knowledge proofs that require no trusted setup. A bulletproof can be used to convince a verifier that an encrypted plaintext is well formed. For example, prove that an encrypted number is in a given range, withou

crypto.stanford.edu

링 서명 ring signatures : 각각 키가 있는 사용자 그룹의 모든 구성원이 수행할 수 있는 디지털 서명 유형

 

Ring Signatures And Anonymisation

A demo of the methods involved in this article is here.

medium.com

 

 

 

 

프로토콜과 배포

나스카 NASCAR 문제
웹 사이트의 로 그인 페이지에 페이스북 로그인, 구글 로그인, 링크드인 로그인 등 여러 로그인 목록이 늘어나고 있는 현상으로 최근 웹 또는 앱에서 발생하고 있는 흔한 문제

사례 1) 디지털 바자르 Digital Bazaar
- 웹 사이트용 자격증명 핸들러 Credential Handler API 1.0 진행 중

 

Credential Handler API 1.0

An invoked credential handler may or may not need to display information about itself or request user input. Some examples of potential credential handler display include: A credential handler that requires visual display and user interaction, may call ope

w3c-ccg.github.io


- 이 프로세스에 대한 비디오 데모


사례 2) FIDO(Fat Dentity Online) : 비밀번호의 문제점을 해결하기 위한 목적으로 제안된 사용자 인증 프레임워크
- 이 생태계에서 VC는 사용자의 휴대폰에 보관되며 검증자와의 쌍별 인증에 사용되는 FIDO 키에 연결된다.

 

FIDO Alliance - Open Authentication Standards More Secure than Passwords

FIDO Alliance is focused on providing open and free authentication standards to help reduce the world’s reliance on passwords, using UAF, U2F and FIDO2.

fidoalliance.org




https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=290964757

 

마스터링 자기주권신원

자기주권신원을 통해 디지털 방식으로 서명된 자격증명을 발급받은 후, 개인의 디지털 지갑에 저장하여 온라인에서 신원을 안전하게 증명하는 방법을 다룬다. 블록체인에서 영감을 받은 이 패

www.aladin.co.kr

 

댓글