하이퍼레저 패브릭 구조 정리
참고 : 하이퍼레적 공식문서의 Key Concept을 참고
https://hyperledger-fabric.readthedocs.io/
※ 추가로, 기본적인 내용은 설명을 생략했습니다.
0) 사전에 필요한 지식
a. PKI(Public Key Infrastructure)구조
PKI는 Identities의 목록을 제공하고, MSP는 목록중 네트워크에 참여하는 특정 조직의 구성원을 알려줌
즉, 위 그림에서 PKI는 다양한 유형의 확인 가능한 ID(여기선 카드)를 제공하고, MSP는 상점에서 승인한 카드 공급자 목록으로 / 신뢰할 수 있는 구성원 결정 여기서는 [노랑, 초록, 파랑] 카드
- 전체적인 PKI 구조 -
- Hyperledger 또한 PKI표준에 의존 -
- 디지털 인증서(Digital Certificate)
- 공개 키 and 개인 키
- 인증기관 CA(Certificate Authority)
- 인증서 해지 목록(Certificate Revocation List)
'P'는 인증기관 CA에게 요청하여 디지털 인증서를 발급함 / 해당 인증서를 통해서 'P'는 자신이 교환하는 메시지에서 자신을 인증함
인증서 해지목록은 도난 당한 카드 목록과 같음, 신원을 확인할 때 인증서 해지목록을 먼저 확인해서 해지가 된 ID인지 확인함 그렇지 않으면, 네트워크내에 허가받지 않은 사용자의 ID를 수락할 수 있음
데이터 무결성을 보장하기 위해 '개인키'와 '공개키'를 받은 사용자M은 문서를 개인키로 암호화하고 사용자V가 사용자M의 공개키로 해당 문서의 무결성을 검증함
b. 디지털 인증서(이런 느낌이다 라는 것만 알아도 괜찮을 듯)
MSP 구현은 X.509 인증서를 ID로 사용하여 기존 PKI 모델을 채택 / 사용자(M)임을 설명하는 디지털 인증서
C. 하이퍼레저 패브릭에서의 CA
블록체인 환경에서 네트워크와 상호 작용하려는 모든 행위자는 ID가필요한데, 이러한 Organization의 Actor가 검증 가능한 ID를 가질 수 있도록 기반을 제공하는 것이 CA
하이퍼레저 패브릭은 하나 이상의 CA 를 사용 하여 조직의 구성원을 정의
Root CA는 수억 개의 인증서를 인터넷 사용자에게 안전하게 배포 해야 하기 때문에 이 프로세스를 Intermediate CA 에 분산시키는 것이 합리적
- CA연결을 통한 신뢰성 확보 -
Intermediate CA에는 Root CA or 다른 Intermediate 기관에서 발급한 인증서가 있어 CA간의 신뢰체인을 형성할 수 있음 / 이를 통한 Root CA 역추적으로 보안성을 제공하고 / 블록체인 네트워크 조직또한 신뢰하여 Intermediate CA를 사용가능
즉, Root CA를 통해 Intermediate CA들이 연결되어 있어서 루트를 통해 다 연결되어 있고, 신뢰성을 확보할 수 있음
1) MSP(Membership Service Provider)
MSP가 필요한 이유?
CA가 신뢰성있는 신분증 예를들면 주민등록증을 발급해주는 주민센터라면 MSP는 그 주민등록증이 진짜인지 인증 및 증명하고 가게 안으로 들여보내주는 관계
사용자 블록체인 네트워크 인증과정
1. 신뢰받는 CA에서 ID(인증서, 서명 인증서)를 발급한다.
2. ID를 발급받은 사용자의 공개키(인증서, 서명 인증서)를 조직의MSP에 추가하여 구성원이 된다.
3. MSP를 블록체인 네트워크 or 채널 컨소시엄에 추가
4. MSP가 네트워크 Policy에 포함되어있는지 확인
MSP의 역할
MSP는 구성원의 ID를 나열하거나 구성원에 대해 유효한 ID를 발급할 권한이 있는 CA를 식별하여
신뢰할 수 있는 구성원을 정의하는 데 허용되는 Root CA 및 Intermediate CA를 식별
2) MSP Domain
Local MSP
로컬 MSP는 클라이언트와 노드(Peer, Orderer)에 대해 정의
Channel MSP
채널 MSP는 채널 수준에서 관리 및 참여 권한을 정의
'보안 및 블록체인 > 블록체인' 카테고리의 다른 글
하이퍼레저 패브릭(Hyperledger Fabric) v2.2 Tutorials - First Application by using Golang (0) | 2022.06.17 |
---|---|
하이퍼레저 패브릭(Hyperledger Fabric) v2.2 Tutorials - Network.sh 명령어 해석 (0) | 2022.06.08 |
하이퍼레저 패브릭(Hyperledger Fabric) 용어 정리 #0 - Key Concept (0) | 2022.05.09 |
하이퍼레저 패브릭(Hyperledger Fabric) 구성 정리 Ledger #2 - Key Concept (0) | 2022.05.06 |
하이퍼레저 패브릭(Hyperledger Fabric) 구성 정리 Peer #1 - Key Concept (2) | 2022.05.06 |