하이퍼레져 인디를 사용하여 자격증명 처리 과정을 시나리오로 표현해보았다.
"나는 서울에 살고있다."에 대한 자격 증명을 해보겠다.
"나" 라는 사람과 "서울"이라는 도시는 서로 agent 관계로 생각할 수 있고 각각의 agent는 자신의 DID를 가진다.
자격 증명 서비스가 가능한 agent의 wallet에는 크게 5가지의 서비스로 이루어져 있다.
✔ relationship
✔ credentials
✔ proof requests
✔ issuing
✔ message
내가 서울에 살고 있다는 자격 증명을 얻기 위해 가장 먼저 relationship을 형성해야 한다.
send new connection request 실행
create a new relationship 에 서울시 DID 입력하여 서울시에 relationship 요청한다.
이때, DID는 공개되어있는 것으로 가정하는데
만약 스팸 요청으로부터 계속 수락 요구가 온다면 DID를 자신이 바꾸어 버리면
연결되어 있던 endpoint의 DID관리는 어떻게 할 수 있을지 고민해봐야겠다.
서울시에서 relationship을 수락하면 내 relationship에서 endpoint로 DID 확인
endpoint에 대해 예를 들자면,
나는 서울에 살고있다.
my DID → 서울 DID
서울 DID → my DID
서울의 시민 relationship에는 my DID가 endpoint로 남아있고
내 relationship에는 서울 DID가 endpoint로 남아있다.
이 endpoint의 DID를 기반으로 credential을 발급한다.
서울의 issuing 메뉴에서 send credential offer을 실행하면
서울에 살고있다는 시민증과 같은 증명서를 발급한 후 나에게 message 로 확인 요청하고
내가 수락하게 되면 내 wallet에 시민증에 해당되는 credential 이 저장된다.
요청을 수락하여 자격증명이 완료되면 DID 대신 요구하는 속성값이나 구분하기 쉬운 이름으로 표시된다.
Hyperledger Indy에서 하는 역할: DID 관리, VC 구현
하이퍼레져 인디에서 DID를 사용하는 자격증명 과정인
Alice가 Faber대학에 성적증명서를 요청 및 발급받고 ACME 회사에 제출하는 예제를 공부해보았다.
Oracle VM에 indy image를 불러와서 실행한 후 해당 폴더에 접근한다.
docker 이미지 빌드
./manage build
현재 실행할 수 있는 이미지 확인
docker images
docker 이미지를 사용하여 컨테이너 실행하여 실습 준비를 마친다.
./manage up
docker 컨테이너 구동 확인
docker ps -a
각 이미지와 컨테이너 역할은 다음과 같다.
Indy-node: 네트워크 생성을 위해 (pool.dockerfile을 이용하여 빌드)
Indy-agents: 에이전트 생성을 위해 (agent.dockerfile을 이용하여 빌드)
실습에 필요한 이미지들
indy-node image: webserver, node1, node2, node3, node4
indy-agents image: alice, faber, acme
'SSI' 카테고리의 다른 글
22.05.17 주코의 삼각형 (0) | 2022.05.17 |
---|---|
21.10.03 SSL/TLS 프로토콜을 통한 디지털 인증서 발행 과정 (0) | 2021.10.03 |
21.10.02 OAuth 2.0 기반의 SSO 동작 흐름 (0) | 2021.10.02 |
21.09.21 [indy] demo 실습 (Alice의 성적증명서 발급 과정) (0) | 2021.09.21 |
21.07.20 DID 관련 용어 정리 (0) | 2021.07.21 |