확인 가능한 자격 증명 작동 방식 설명
탈중앙화 식별자는 확인 가능한 자격 증명을 발급, 제출, 확인하는 데 사용되는 프로세스의 핵심 구성 요소이며 사용자가 자격 증명이 제시되고 공유되는 방법과 시기를 제어할 수 있는 이유입니다. 즉, DID는 확인 가능한 자격 증명을 사용합니다.
확인 가능한 자격 증명 에코시스템 관련 엔터티
먼저 확인 가능한 자격 증명 데이터 모델 v1.1에 대한 W3C 권장 사항에 정의된 대로 확인 가능한 자격 증명 에코시스템에 관련된 일부 당사자를 설명하는 것이 중요합니다.
- 발급자 – 발급자는 확인 가능한 자격 증명을 만듭니다. 발급자의 예로는 기업, 정부 기관, 무역 조직 등이 있습니다. 발급자는 자격 증명의 주체로서 귀하에 대한 클레임을 주장합니다.
- 주체 – 주체는 자격 증명의 클레임이 제기되는 엔터티입니다. 확인 가능한 자격 증명의 주체는 일반적으로 사람이지만 사물이나 동물일 수도 있습니다. 주체가 될 수 있는 예로는 차량이 해당 주에 등록되어 있음을 주장하는 확인 가능한 자격 증명이 있습니다. 마찬가지로 반려동물이 허가받았고 광견병에 대한 예방 접종을 받았음을 증명하는 자격 증명과 같이 동물도 대상이 될 수 있습니다. 이 시나리오에서는 주제가 사람이라고 가정하고 시나리오에서 주체를 사용자라고 지칭할 수 있습니다.
- 보유자 – 보유자는 하나 이상의 확인 가능한 자격 증명을 보유한 엔터티입니다. 보유자의 예로는 학생, 직원, 고객 등이 있습니다. 반려동물(주체)이 허가받고 예방 접종을 받았다고 증명하는 자격 증명을 보유한 반려동물 보유자의 경우와 마찬가지로 보유자는 주체와 다를 수 있습니다. 이 예제에서는 단순하게 하기 위해 보유자와 주체가 동일하며 시나리오에서는 사용자 또는 보유자 중 하나로 지칭합니다.
- 검증 도구 – 검증 도구는 처리를 위해 확인 가능한 자격 증명을 받는 엔터티입니다. 검증 도구로 사용할 수 있는 엔터티의 예로는 고용주, 보안 담당자, 웹 사이트, 대학 등이 있습니다.
- 확인 가능한 데이터 레지스트리 – 확인 가능한 데이터 레지스트리는 확인 가능한 자격 증명과 함께 사용되는 DID, 퍼블릭 키, 기타 데이터를 만들고 기록하는 데 관련된 시스템입니다. 이러한 시스템은 일반적으로 분산 원장, 블록체인, 분산 파일 시스템 또는 기타 신뢰할 수 있는 데이터 스토리지와 같은 분산 네트워크입니다. 사용되는 레지스트리 유형은 DID 메서드에 따라 달라집니다. 확인 가능한 자격 증명 에코시스템 내에는 많은 레지스트리가 있을 수 있습니다. 이러한 레지스트리의 컬렉션을 신뢰 시스템을 나타내는 기본 네트워크로 생각할 수 있습니다.
확인 가능한 자격 증명의 트랜잭션에 관련된 모든 당사자(발급자, 사용자, 검증 도구)에는 연결된 DID 문서로 확인할 수 있는 고유한 DID가 있습니다.
디지털 지갑
확인 가능한 자격 증명 에코시스템의 다른 중요한 구성 요소는 디지털 지갑입니다. 간단히 말해 디지털 지갑은 실제 지갑을 소프트웨어 애플리케이션으로 표현한 것입니다. 실제 지갑과 마찬가지로 탑승권, 도서관 카드, 돈, 출입증과 기타 다양한 유형의 자격 증명 및 프라이빗 데이터를 보관하는 데 사용합니다.
실제로 디지털 지갑은 그 이상의 역할을 합니다. 디지털 지갑에는 지갑 자체와 디지털 에이전트의 두 부분이 있습니다. 지갑은 모든 자격 증명, 출입증, 프라이빗 데이터 등 사용자가 지갑에 넣은 모든 것을 보관하는 컨테이너 역할을 합니다. 디지털 에이전트는 지갑과의 상호 작용을 관리하는 소프트웨어입니다. 에이전트는 실제 지갑에 자격 증명을 넣고 ID를 확인해야 하는 사람에게 제시하기 위해 이를 꺼내는 사용자와 유사합니다. 확인 가능한 자격 증명 에코시스템의 컨텍스트에서 에이전트는 더 많은 작업을 수행합니다. 에이전트는 최종 사용자(디지털 지갑 소유자)를 대신하여 퍼블릭/프라이빗 키 쌍과 DID를 생성하고, 자격 증명을 요청하고, (일반적으로 QR 코드 사용자를 통해) 자격 증명을 제출하고, 자격 증명 발급자 및 검증 도구와의 통신에 디지털 서명을 하는 등의 작업을 수행합니다. 암호화 키, DID, 디지털 서명 등의 만들기는 사용자에게는 투명하지만 확인 가능한 자격 증명을 발급하고 검증하는 과정에서 사용되는 중요한 구성 요소입니다.
최종 사용자 관점에서 디지털 에이전트의 기능은 일반적으로 지갑에 내장되어 있으므로 지갑 자체와 구별할 수 없습니다. 이 문서에서는 지갑과 디지털 에이전트를 하나로 취급하고 이를 디지털 지갑이라고 합니다.
시나리오 및 확인 가능한 자격 증명 흐름
Alice(사용자)는 Woodgrove, Inc.(발급자)의 직원으로 계열사인 Proseware(검증 도구)로부터 직원 할인을 받으려고 합니다.
- 앞서 언급했듯이 모든 당사자는 분산 원장과 같은 확인 가능한 데이터 레지스트리에 기록되는 퍼블릭 키와 DID를 가지고 있습니다. 혼란을 최소화하기 위해 표시된 이미지는 Woodgrove에 대해서만 레지스트리에 이 정보를 기록하는 것을 보여 줍니다.
- Alice는 Woodgrove의 직원 포털에 로그인하고 고용 자격 증명을 요청합니다. 이때 Woodgrove는 직원 포털 사이트에 QR 코드를 표시할 수 있습니다. Alice가 모바일 디바이스(Microsoft Authenticator 앱일 수 있음)에서 디지털 지갑 애플리케이션이 있는 QR 코드를 스캔하면 Alice가 실제 직원인지 확인하기 위한 Woodgrove의 증명 모델이 시작됩니다. 증명은 다른 형식으로 이루어질 수 있습니다. 예를 들어 Woodgrove는 Alice에게 자체 디렉터리에 대해 인증하도록 요구할 수 있고, Alice가 본인 확인과 증명을 수행하는 타사가 포함된 ID 증명 과정을 거치도록 요구하거나, Alice에게 핀을 입력하도록 요구할 수 있습니다. 이 시나리오에서는 Alice가 모바일 디바이스의 디지털 지갑을 사용하여 핀만 입력하면 된다고 가정합니다.
- Woodgrove가 Alice가 직원임을 확인하면 Woodgrove는 자격 증명으로 응답합니다. Woodgrove가 자격 증명을 발급할 때 다음이 포함됩니다.
- Woodgrove의 DID(발급자의 DID)
- 주체의 DID(Alice가 주체임).
- Woodgrove가 증명하는 클레임입니다. 이 경우 Woodgrove는 Alice가 2011년부터 프로그램 관리자의 직책을 맡고 있음을 증명하고 있습니다.
- Woodgrove의 서명(발급자의 서명). Woodgrove는 프라이빗 키로 자격 증명에 서명합니다.
- Alice는 해당 자격 증명을 수락한 다음 디지털 지갑에 추가합니다. 이제 Alice에게 자격 증명이 있으므로 Proseware의 웹 사이트로 이동하여 컴퓨터를 구매합니다.
- 할인을 받기 전에 Proseware는 Alice에게 고용 증명을 제시하도록 요구합니다.
- Alice는 이제 자신의 디지털 지갑을 보고 자신을 대신하여 지갑에 권한을 부여하여 Proseware에 해당 자격 증명을 제시할 수 있습니다. 프레젠테이션에는 다음이 포함됩니다.
- Woodgrove에서 발급한 자격 증명
- Woodgrove의 DID(발급자의 DID)
- Alice의 DID(주체의 DID).
- Woodgrove가 증명하는 클레임입니다. 이 경우 Woodgrove는 Alice가 2011년부터 프로그램 관리자의 직책을 맡고 있음을 증명하고 있습니다.
- Woodgrove의 서명(발급자의 서명). Woodgrove는 프라이빗 키로 자격 증명에 서명합니다.
- Alice의 서명(주체의 서명). Alice는 프라이빗 키로 자격 증명에 서명합니다.
- Woodgrove에서 발급한 자격 증명
- Proseware는 고용 증명을 받았고 이제 몇 가지 조회를 통해 자격 증명이 Woodgrove에서 발급되었으며 자격 증명의 주체가 Alice인지 확인합니다.
- 주체를 확인합니다.
- 자격 증명에 Alice의 DID가 포함되어 있으므로 Proseware는 DID를 확인하고 퍼블릭 키가 포함된 DID 문서를 가져올 수 있습니다.
- 자격 증명이 Alice에 의해 서명되었으므로 Proseware는 퍼블릭 키를 사용하여 자격 증명의 서명이 실제로 Alice가 주체가 되어 서명한 것인지 확인할 수 있습니다.
- 발급자를 확인합니다.
- 자격 증명에 Woodgrove의 DID가 포함되어 있으므로 Proseware는 DID를 확인하여 퍼블릭 키가 포함된 Woodgrove의 DID 문서를 가져올 수 있습니다.
- 자격 증명에는 Woodgrove의 서명도 포함되어 있으므로 Proseware는 퍼블릭 키를 사용하여 자격 증명의 서명이 발급자인 Woodgrove의 서명이 실제로 맞는지 확인할 수 있습니다.
- 발급자를 확인하는 과정에서 Proseware는 Woodgrove와 직접 연결할 필요가 없었습니다. Proseware는 분산 데이터 레지스트리에만 연결하면 됨
- 이제 Proseware가 Alice의 자격 증명을 받고 유효성을 검사했으므로 Proseware의 비즈니스 논리가 시작되어 Alice가 할인된 가격으로 컴퓨터를 구매할 수 있도록 합니다.
- 주체를 확인합니다.
트랜잭션을 발급, 제시, 확인하는 트랜잭션에는 확인 가능한 자격 증명의 가치를 강조하는 데 도움이 되는 몇 가지 사항이 있습니다.
- 자격 증명을 발급할 때 제시된 클레임은 목표를 달성하는 데 필요한 최소한의 클레임 집합입니다. 이 경우 자격 증명에는 직원의 직책과 고용이 시작된 연도에 대한 클레임만 포함하면 됩니다. 이렇게 하면 공유되는 개인 정보의 양이 제한됩니다.
- 사용자는 자격 증명을 제어하고 자격 증명을 공유할 대상을 결정합니다. 또한 사용자의 지갑은 다른 정보와 함께 자격 증명을 공유한 엔터티의 로그를 유지합니다.
- 검증 도구가 자격 증명의 유효성을 검사할 때 발급자와 연결하지 않고도 이를 수행합니다. 검증 도구는 발급자의 DID를 확인하여 퍼블릭 키를 가져오고 퍼블릭 키를 사용하여 자격 증명에 표시되는 발급자의 서명의 유효성을 검사할 수 있습니다.
모든 자격 증명의 일반적인 시나리오는 자격 증명이 만료되거나 발급자가 해당 자격 증명을 해지해야 할 수 있다는 것입니다. 확인 가능한 자격 증명 데이터 모델에 대한 W3C 권장 사항 v1.1에는 이러한 시나리오를 설명하기 위한 자격 증명의 속성 필드가 포함되어 있습니다.
Alice의 디지털 지갑에서 자격 증명은 실제 지갑에 있는 자격 증명 유형과 같은 카드로 묘사됩니다. 그러나 실제로 확인 가능한 자격 증명은 일련의 키/값 쌍으로 구성된 컴퓨터에서 읽을 수 있는 JSON 데이터 구조이며 발급자의 DID, 자격 증명에서 주장하는 클레임, 디지털 서명 등을 포함합니다.
확인 가능한 자격 증명 온보딩 시나리오의 전체 데모를 보려면 https://aka.ms/vcdemo를 방문하세요.