블록체인

[블록체인] 패브릭 아이덴티티

박은성/ 2022. 3. 25. 10:18
반응형

 

1. 패브릭 아이덴티티란

PKI를 기반으로 하는 인증서 기반의 시스템이다.

 

오더러, 피어, 애플리케이션은 자신의 개인키, 공개키, 인증서가 있어서

애플리케이션은 트랜잭션을 만들 때 자신의 개인키를 갖고 서명을 해서 던지게 되고

피어도 자신이 endorsing해서 해당 트랜잭션을 검증하면 개인키로 서명을 해서 반환하고

오더러도 블록을 만들 때 서명을 하고 반환한다.

 

각자 요소들은 서명을 공개키를 갖고 검증하는 과정을 거친다.

 

 

2. PKI 

- 공개키 암호화

대부분의 블록체인에서 공개키 암호화 알고리즘을 사용하고 있다.

개인키 + 공개키 

 

1) 개인키 : 소유자가 갖고 비밀 키

  - 데이터에 서명하는 용도로 사용

  - 공개키로 암호화한 데이터를 복호화 할 수 있다.

 

2) 공개키 : 다른 사람에게 알려주는 용도

  - 개인키로 암호화한 데이터를 복호화 할 수 있다.

 

- 전자서명(signature)

  - 데이터가 위/변조 되지 않은 것을 PKI 시스템에 알려주는 시스템

 

  - 원본 데이터가 존재하고 원본의 해시값(msg digst)을 생성한다.

     이 해시값을 개인키로 암호화 한다. (암호화된 digest)

     그리고 원본 데이터에 암호화된 digest를 붙인다.

  - 다른 사람에게 합쳐진 데이터를 넘긴다면, 다른 사람은 원본의 digest를 만든다.

  - 공개키를 갖고 암호화된 digest를 복호화 한다.

  - 원본을 통해서 만든 digest와 비교해서 검증한다.

 

 

- 인증서 (x.509)

  - 공개키 데이터를 담고 있다.

  - 웹서비스를 만든다면, ssl을 붙일 때, aws 같은 데서 ssl인증서를 사든지 한다.

    여기에는 발행자, 도메인 등의 많은 정보를 담고 있다. 

 

패브릭에서 키 쌍을 생성했다고 하면, 공개키를 인증서로 만들어서 각 컴포넌트들이 갖고 있게 된다.

 

 

3. 패브릭에서의 인증서

패브릭에서 인증서 파일들이 어떤 게 있고, 어디에 있는지 알아본다.

 

패브릭에서 가장 중요한 파일은 crypto-config이다. 크립토젠을 사용해서 만든 이 파일에는 여러 요소가 있다.

ca는 인증서를 발행하는 기관이다.

 

오더러안에 msp - keystore가 오더러의 개인키이다.

signcerts가 개인키로 서명한 데이터가 들어있는 certificate이다. 

cacerts를 보면 ca에 대한 인증서와 admin에 대한 인증서가 들어 있다. 오더러 안에 있는 msp 폴더는 오더러가

ca가 개인키로 서명해서 넘겨주면 오더러는 오더러의 펨파일(공개키)로 이를 검증할 수 있다.

 

피어도 msp 폴더를 들고 있게 되고, 개인키 관련 자료들이 들어있다.

 

 

 

-끝-

반응형