콘텐츠로 이동

initial DID Platform Product and Services

1. initial Web Console

  • Web GUI 기반으로 손쉽게 Agent, Wallet 생성하고, VC(Verifiable Credential)을 발행/검증할 수 있는 기능 제공

    • 디지털 자격 증명을 사용자에게 발행(Issue) 하기 위한 양식 생성 가능
    • 발행된 디지털 자격 증명서를 쉽고 간편하게 검증(Verify) 하기 위한 양식 생성 가능
    • 발행/검증 관련 모든 통계 data 제공
    • 사용자 추가 초대 기능 제공

2. Open API Services

  • REST API 기반 Wallet 생성 및 VC 발행/검증 지원

    • 기존 Legacy system과 REST APIs를 통한 손쉬운 개발 지원
    • REST APIs와 연결을 위한 Guide 지원

3. initial SDK & Agent

  • Mobile/Server SDK/Agent 제공 (협의 필요)

    • iOS Native SDK
    • Android Native SDK
    • Java Server SDK(Deprecated)
    • Python Server Agent

4. Definition and Terms

기본 용어

- DID(Decentralized Identifier)

  • 기존 신원확인 방식과 달리 중앙 시스템에 의해 통제되지 않으며 개개인이 자신의 정보에 완전한 통제권을 갖도록 하는 기술. W3C등에서 표준을 작성하고 있다.
  • Public DID : Public 공개하는 DID. 주로 기관등이 Issuer(발급자)로 DID를 Ledger에 공개한다. initial에서 일반 사용자(Holder)는 DID를 Ledger에 공개하지 않는다.
  • Pairwise(Private) DID : Peer-to-Peer 연결을 위해 Private 생성하는 DID이고 오직 연결 상대에게만 공개한다. 매번 연결하다 Pairwise DID가 생성된다.

- Issuer

  • VC/증명서등을 발행하는 주체. 주로 신뢰성 있는 기관들이 해당되며 Issuer로 참여하기 위해서는 Blockchain ledger에 등록할 수 있는 권한(Endorser)을 관리자로 부터 획득해야 한다.

- Verifier

  • Holder가 제출하는 VC를 검증하는 주체.

- Holder

  • VC를 보관하고 제출하는 Self Sovereign을 담당하는 주체.

- Peer

  • Issuer,Verifier,Holder등은 DID 환경에서 모두 동일한 peer에 해당한다.

- VC(Verifiable Credential)

  • Issuer(발급자)가 발행한 검증이 가능한 증명서.
  • e.g)신분증, 출입증, 학생증, 계좌증명서등.

- Schema

  • Credential의 기본 Template. 권한이 있는 Issuer만 생성 가능하고 Ledger에 기록됨.
  • Ledger에 등록된 Schema는 모든 Issuer들이 활용하여 Credental 발행 가능함.

모바일가입증명 Schema 예시

{
    "schema": {
        "ver": "1.0",
        "id": "cU8rErjgKj8fgn1kTDren:2:PersonIdentityCredential:1.0",
        "name": "PersonIdentityCredential",
        "version": "1.0",
        "attrNames": [
            "ci",
            "telecom",
            "date_of_birth",
            "is_foreigner",
            "person_name",
            "mobile_num",
            "gender",
            "exp_date"
        ],
        "seqNo": 1618987943
    }
}

- Credential Definition

  • 이미 생성된 Schema로 부터 VC를 발행하기 위한 최종 설정.
  • Revocation 사용 여부, 총 발행량, 버전 정보, 전자서명등이 Ledger에 기록.
  • 권한이 있는 Issuer만 생성 가능하고, 생성한 Issuer 자신만 사용 가능.

- Wallet

  • 사용자의 중요 정보를 담기 위한 Secure 공간.
  • initial에서 Wallet은 Secret Key 뿐만 아니라 VC, Connection 정보등 많은 data 저장한다.

Keys

DID는 보안 강화를 위해 다양한 종류의 Key들을 사용한다.

- MasterKey

  • Wallet Key을 암호화 하기 위한 Symmetric Encryption Key(chacha20-poly1305 기반)

- Wallet Key

  • Wallet의 실제 data를 암호화 할때 사용하는 Symmetric Encryption Key(chacha20-poly1305).
  • MasterKey에 의해서 암호화 되어, Wallet의 Metadata 영역에 저장/관리 된다.
  • Wallet key는 총 7개의 Key로 구성되어 있다.

- DID Key

  • DID를 사용하기 위한 Asymmetric Key로 Wallet에 저장되어 있음(ed25519), Digital Sign, Public Key Encryption에 사용함.
  • Pairwise DID : 상대방과 연결(Connection)에서만 사용하는 DID. Private DID라고 불리기도 함.
  • Public DID (Primary DID) : Blockchain Ledger에 Transaction(Write)을 발생하기 위한 용도의 DID. Public DID는 Trustee, Steward, Endorser 권한이 있다. 권한이 없는 사용자는 Read만 가능하다.

- VerKey

  • verification key. 공개키로 public key와 동일한 개념이다.
  • DID와 같이 공개된 정보이나, 비밀키 유출 시 rotate-key를 통해 DID는 유지하면서 VerKey를 변경할 수 있다.

Agency 용어

- Agency

  • Agent to Agent 메시징 기본 개념은 중개자(Mediator) 및 중계(Relay)의 요소가 존재하고, Peer(Issuer,Verifier,Holder) Agent들 간의 연결 및 Message 중계를 위해 Agency가 존재.
  • Initial Platform 기반의 DID 메시지 communication은 모두 SKT Agency를 통해서 동작.

- Mediator

  • Agency의 역할은 Relayer(단순 메시지 전달), Mediator(Peer의 서버 역할), Full Function(Cloud Wallet등 모든 기능 포함)등으로 구분가능 하다.
  • Mediator는 Message을 encryption 하여 임시 보관하고, Target으로 전달하는 역할하는 능동적인 일을 하지만, 메시지 내용 확인은 불가능 하다.
  • https://github.com/hyperledger/aries-rfcs/blob/master/concepts/0046-mediators-and-relays/README.md

- Cloud Agent

  • Agency 내부에서 Peer를 대신해서 wallet 및 암호화 message등을 관리하는 기능 제공.

Web Console

  • Web GUI 기반 DID Agent 동작을 지원하는 서비스

Cryptography (암호기법)

  • Initial에서 사용하는 암호기술

- 영지식증명(ZKP or Zero Knowledger Proof)

  • 내정보를 공개하지 않고, 참/거짓을 판별할 수 있는 기술
  • CL Signature가 사용되고 있으며, 2021년 하반기 BBS+ 지원 예정

- Accumulator

  • Revocation에서 개인정보를 공개하지 않고 사용되는 암호학적 기술