원서 : https://hyperledger-fabric.readthedocs.io/en/release-1.4/identity/identity.html

  • What is an Identity?
    • hyperledger fabric의 blockchain-network는 'peer', 'orderer', 'client application', 'administrator' 등, 여러가지 성격의 node들로 구성 될 수 있습니다.
    • 각각의 node는 'X.509 인증서' 기반으로 자신의 'digital identity'를 갖추게 되는데, 이를 통해서 blockchain-network 상의 접근 및 권한이 판단 됩니다.
    • 또한 'digital identity'에는 'Principal' 라는 추가적인 특성이 있습니다. 쉽게생각해서 userID 이나 groupID 같은 딱지인것 같습니다.
    • 해당 node가 속한 organization을 포괄 할 수 있는 개념이라고 생각됩니다. 즉, 'Principal' 을 통해서도~ 마찬가지로 각종 접근 및 권한을 판단 할 수 있는 의미 입니다.
    • 그렇다면 말입니다! 이 'digital identity'의 증명(verifiable)"신뢰 할 수 있는 기관(authority)"으로부터 이루어진 것이어야 하겠죠?
    • (예를들면, `신분증`으로 공신력있는 `민증`이나 `여권`을 사용해야지... `듣보잡 학생증`은 안되겠죠?)
    • 네! 그렇습니다. 그래서 fabric에서는 MSP(membership service provider)라는 개념으로 이를 달성 합니다.
    • 구체적으로, MSP는 organization의 '유효한 ID'를 통치하는 법을 정의한 시스템 이라고 보시면 됩니다.
    • 이 MSP가 바로 'X.509 인증서' 및 "PKI(Public Key Infrastructure) 계층모델"으로 구현되있습니다.
  • A Simple Scenario to Explain the Use of an Identity
    • PKI와 MSP의 동작방식을 일상속 비유를 들자면...
    • 어느날 필리핀 시골 슈퍼마켓에서 계산을 하는데... 해당 포스기기가 받는 카드사는 Visa, Mastercard and AMEX 만인 상황입니다. 여기에서는 나의 한국카드는 무용지물 이겠죠?
    • 즉, PKI는 각 '카드'처럼~ 자신의 'digital identity'를 그 자체를 제공하는것 이고... 
    • MSP는 '포스기기'처럼~ 해당 blockchain-network에 받아지는 organization의 회원인지? 처리하게 됩니다. 
  • What are PKIs?
    • PKI(Public Key Infrastructure)는 다들 잘 아시는것처럼, 인터넷 등 광범위하게 사용되는 보안기술 입니다.
    • 이 PKI에 의해서, blockchain-network의 '보안통신' 및 'node 인증' 이 보장됩니다.
    • PKI는 아래와 같은 4가지 요소가 있습니다.
      • 인증서 (Digital Certificates)
      • 공개키-개인키 (Public and Private Keys)
      • CA (Certificate Authorities)
      • CRL (Certificate Revocation Lists)
  • Digital Certificates
    • (생략~)
  • Authentication, Public keys, and Private Keys
    • (생략~)
  • Certificate Authorities
    • 앞서 이야기 해왔던것 처럼, node는 blockchain-network가 받아주는 'digital identity'을 통해~ 참여 할 수 있습니다.
    • 이 'digital identity'가 바로 (특정 CA에서 발행한...) 'X.509 표준' 암호화된 인증서 인것 입니다.
    • (많이 들어보신 CA으로는... Symantec(Verisign), GeoTrust, DigiCert, GoDaddy, and Comodo 등등등)
    • CA가 node에게 인증서를 발급했다는건 -> node의 "정보 와 Public Key"를... CA의 Private Key으로 암호화 해준것 입니다.  
    • 그리고 아래와 같은 논리가 성립 되는것 입니다.
      • CA의 Private Key는 매우 안전함.
      • CA의 Public Key는 모두가 알고 공유하는 표준임.
      • CA는 (자신들의 명성이 맞게) 철저한 검토후, 인증서를 발급함.
      • node는 자신의 신분증으로 발급받은 인증서를 보여줌.
      • 만약, 인증서가 CA의 Public Key으로 복호화 되면~ '신뢰 할 수 있는 기관'으로부터 철저히 발급받은것이 맞음.
      • 결과적으로, 복호화로 얻은 node의 "정보 와 Public Key"를 믿을 수 있음.
    • blockchain-network에서는 모든 node가 'digital identity' 하에서 상호통신 하기를 원합니다. 그래서 참여하는 organization는 각자 알아서 (각종 CA를 기반으로) 'digital identity'를 정하면 됩니다.
    • Root CAs, Intermediate CAs and Chains Of Trust
      • // TODO : 재정리
      • CA는 2가지로 구별 할 수 있는데, Root CA 와 Intermediate CA 입니다. 
      • Root CA 는 수백만개의 인터넷 인증서를 안전하게 제공해야 하기 때문에, Intermediate CA을 통해서 하는것이 바람직 합니다.
      • Intermediate CA는 Root CA 으로부터 인증서를 발급 받거나 or 또다른 Intermediate CA 으로부터 인증서를 발급 받습니다. ("chain of trust")
      • "chain of trust" 구축을 통해서 Intermediate CA 분산으로 전체적인 위험노출 리스크를 줄인다고 보면 되겠죠ㅎㅋ 
      • 이런 Intermediate CA 의 유연성은 서로다른 단체(organization) 를 구성하는데 아주 적합 합니다.
    • Fabric CA
      • // TODO : 재정리
      • 보다시피... CA관련 작업은 매우중요한데~ fabric에서는 다행이 'built-in CA component' 를 제공 합니다.
      • Fabric CA는 'digital identity'으로 사용되는 'X.509 인증서'를 관리하는 'private root CA provider' 입니다.
      • 물론, Fabric CA는 fabric을 위한 custom Root CA 이기 때문에~ 일반적으로 인터넷 TLS/SSL 에 표준적으로 사용되는 그런 Root CA 는 아니겠죵?^^
      • 그렇다고 commerical 서비스에 부적합 한건 아니고, 충분이 'digital identity'를 관리 할 수 있습니다.
  • Certificate Revocation Lists
    • (생략~)

-끝-

'hyperledger > fabDoc.Key Concepts' 카테고리의 다른 글

7) Peers  (0) 2019.04.10
6) Membership  (0) 2019.04.10
3) Hyperledger Fabric Model  (0) 2019.04.10
2) Hyperledger Fabric Functionalities  (0) 2019.04.10
1) Introduction  (0) 2019.04.10

+ Recent posts