conan's lazy blogging
Posts
15 postsopenssl을 이용해 공인인증서로 전자서명하기
공인인증서 역시 공개키 기반 암호화 기술을 이용한 인증서라 openssl을 이용해 전자서명 및 서명검증을 할 수 있다. 은행이나 증권사에서 공인인증서를 발급받아 PC에 저장하면 NPKI라는 폴더에 인증서(signCert.der) 파일과 비밀키(signPri.key) 파일이 저장된다. 인증서 파일은 X.509 규격에 따른 DER 포멧의 인증서이고 본인의 이름과 발급자 정보, 공개키 등을 포함하고 있다. 비밀키 파일은 비밀번호로 암호화된 비밀키를 담고있다. 인증서 내용 확인1openssl x509 -in signCert.der -text -inform dercs 인증서 내용은 PC에서 더블클릭해도 바로 볼수 있다. 윈도우에서는 정상적인 인증서로 표시되고, 맥에서는 확인되지 않은 사설인증서로 표시되지만 내용은
블록체인에 대한 오해 2 - 하이퍼레저 패브릭의 경우
앞 글에서 퍼블릭 블록체인이 변조 불가능하다는 것과 관련된 오해에 대해 다뤄봤다. 이번엔 프라이빗 블록체인 혹은 퍼미션드 블록체인의 경우를 살펴보자. 대표적인 기업용 블록체인 시스템인 하이퍼레저 패브릭에서 블록체인의 변조는 가능한지, 얼마나 신뢰할만한지, 그리고 이것이 과연 블록체인 시스템이기는 한 것인지 검토해보자. 하이퍼레저 패브릭은 허가된 특정 기업들만 참여할 수 있는 시스템을 가정한다. 참여 기업들은 정해져있고 검증된 기업들이지만 서로를 신뢰할 필요는 없다. 즉, 누군가 조작을 시도할 수도 있고 해킹을 당할 수도 있을 것이다. 이들은 블록체인에 원장을 공유하고 사전에 검증된 스마트 컨트렉트 코드를 공유하고 이걸 이용해 데이타를 변경한다. 기업들은 각자 한 개 이상의 peer node를 구동해서 블록
블록체인에 대한 오해
변조가 불가능하다는 특징 때문에 비트코인 출시 이후 뜨거운 관심을 받고 있는 블록체인이라는 자료구조. 혹자는 distributed ledger 혹자는 immutable database 라고 부르며 가상화폐를 위한 자료구조가 아니라 좀더 범용적인 database로 이야기되고 있다. 그런데 정말 변조가 불가능한가? 당연히 변조는 가능하다. 블록체인에서 블록은 거래데이타를 모아서 일정한 크기로 묶은 파일이다. 보통 어떤 파일의 변조를 방지하는 용도로 해당 파일의 해시를 기록해두거나 파일을 다운로드 받는 곳에 해시를 공개해서 사용자가 직접 검증할 수 있게 하는 방법이 흔히 사용되고 있다. 당신이 다운로드 받은 파일의 해시를 직접 계산해보고 공개된 값과 비교하면 중간에 변조가 생겼는지 확인해 볼 수 있는 것이다.
비트코인과 공개키 암호화
비트코인은 공개키 암호화를 이용한 전자서명을 사용한다. 비트코인 뿐만 아니라 거의 모든 블록체인 시스템이 마찬가지이고 이때문에 암호화폐라는 이름으로 불리고 있기도 하다. 공개키 암호화는 암호화폐 외에도 웹브라우저의 https 암호화나 우리나라의 공인인증서에서도 사용되는 방식이고 아이폰에서 개발자가 앱을 등록할때 사용되기도 한다. 공개키 암호화의 세부적인 알고리즘은 나 같은 일반 개발자가 이해하기에 무리가 있다. 여기서는 이걸 어떻게 활용하고 있는지만 대략적으로 훑어보자. 공개키 암호화에서는 2가지 종류의 키를 사용한다. 하나가 공개키고 다른 하나가 비밀키다. 공개키로 데이타를 암호화하면 비밀키로만 복호화할 수 있다. 비밀키로는 데이타를 암호화하지 않는다. 공개키는 일반적으로 널리 알려진 키로 사용되니까 비

나만의 블록체인 구축해보기 (Ethereum private network)
많은 기업들이 자신들만의 블록체인 솔루션들을 가지고 있다고 말하고 있는데 그게 가능한 이유는 대부분의 블록체인 시스템이 오픈소스 프로젝트이기 때문이겠지만 이더리움 덕분인지도 모르겠다. 이더리움은 굳이 소스를 포크해서 수정하지 않더라도 손쉽게 독자적인 블록체인을 구축할수 있는 기능을 제공하고 있다. 블록체인 시스템을 구축하기 위해선 핵심이 되는 블록체인 기반의 P2P 시스템 외에도 블록의 내용을 검색하기 위한 block explorer, 가상화폐를 보관하고 주고받기 위한 wallet, 그리고 smart contract를 개발하고 테스트하기 위한 개발환경이 필요한데 이런 요소들이 이더리움 생태계에선 모두 잘 구축되어 있다. 며칠만 투자하면 Ethereum private network 기반의 블록체인 솔루션을

