이하에서는 본 발명의 실시예의 구성 및 작용에 대하여 첨부한 도면을 참조하면서 상세히 설명하되, 다양한 실시예에서 동일명칭으로 사용되는 구성의 도면부호는 동일한 도면부호를 사용하기로 한다.
본 발명은 크게 블록체인을 기반으로 하는 공인인증서의 발급 부분과 블록체인을 기반으로 하는 공인인증서의 인증부분으로 구분되어진다.
여기서, 도 1 내지 도 7은 블록체인을 기반으로 하는 공인인증서의 발급 부분인 블록체인을 기반으로 하는 공인인증서 발급시스템 및 방법에 관한 것이다.
도면에 도시된 바와 같이, 본 발명의 블록체인을 기반으로 하는 공인인증서 발급시스템은 크게 사용자단말기(100), 블록체인기반 공인인증서 발급 요청 서버(200), 블록체인기반 공인인증서 관리서버(300) 및 블록체인 보유서버(400)들로 이루어진다.
먼저, 사용자단말기(100)는 공인인증서용 공개키 및 공인인증서용 개인키를 생성하고, 그 생성된 키 중 공인인증서용 공개키와 블록체인기반 공인인증서 발급에 필요한 사용자의 식별정보로 이루어진 블록체인기반 공인인증서 발급용 개인정보를 후술되는 블록체인기반 공인인증서 발급 요청 서버(200)로 전송하는 단말부재이다. 여기서, 블록체인기반 공인인증서 발급용 개인정보는, 사용자 성명, 사용자 생년월일, 사용자 전화번호, 사용자 이메일을 포함하는 정보이다.
이와 같은 기능을 수행하기 위해 사용자단말기(100)에는 정보가 출력되는 정보출력부(101), 데이터나 응용프로그램 등이 저장되는 정보저장부(102), 사용자의 입력신호를 발생시키는 정보입력부(도시하지 않음) 및 사용자단말기(100)의 전반적인 동작제어를 수행하는 제어부(도시하지 않음)와 더불어 키생성엔진(110), 암복호화엔진(120)이 구비되어진다.
여기서, 키생성엔진(110), 암복호화엔진(120) 및 후술되는 키생성 안내화면부 등은 사용자단말기(100)가 개인용컴퓨터(PC)와 같은 데스크탑 형식인 경우에는 응용프로그램 형태로 탑재되고, 사용자단말기(100)가 인터넷 접속이 가능한 스마트폰과 같은 모바일기기인 경우에는 모바일 전용앱 형태로 설치제공되어진다.
또한, 사용자단말기(100)는 공인인증서용 공개키 및 공인인증서용 개인키를 생성하기 전에 해당 사용자단말기(100)를 운영하는 사용자가 블록체인기반 공인인증서 발급 요청 서버(200)에 사용자의 식별정보를 등록하였는지 먼저 확인하는 과정을 수행한다.
이를 위해, 후술되는 블록체인기반 공인인증서 발급 요청 서버(200)에는 DB부(210)가 탑재되고, 그 탑재되는 DB부(210)에는, 상기 사용자단말기(100)를 운영하는 사용자의 식별정보가 저장되되, 상기 블록체인기반 공인인증서 발급용 개인정보와 동일한 사용자의 식별정보가 저장된 회원별 사용자 식별정보 DB(211)가 포함된다.
그리고 사용자단말기(100)는, 블록체인기반 공인인증서 발급용 개인정보를 블록체인기반 공인인증서 발급 요청 서버(200)로 전송하여 블록체인기반 공인인증서 발급을 요청하고, 블록체인기반 공인인증서 발급 요청 서버(200)는, 전송되는 블록체인기반 공인인증서 발급용 개인정보를 회원별 사용자 식별정보 DB(211)와 매칭하여 매칭되는 정보가 존재하면, 공인인증서용 공개키 및 공인인증서용 개인키의 생성을 안내하는 키생성 안내신호를 생성하여 사용자단말기(100)로 전송한다.
사용자단말기(100)는 블록체인기반 공인인증서 발급 요청 서버(200)로부터 키생성 안내신호가 전송되면, 키생성엔진(110)을 운영하여 공인인증서용 공개키 및 공인인증서용 개인키를 생성하는데 이때, 사용자단말기(100)는, 네트워크를 차단한 상태에서 공인인증서용 공개키 및 공인인증서용 개인키가 생성되도록 제어함으로써, 행여라도 발생할 수 있는 각 키의 외부유출을 사전에 차단한다.
이와 더불어, 사용자단말기(100)는 암복호화엔진(120)을 운영하여 사용자가 지정한 비밀번호 및 사진이미지를 토대로 공인인증서용 개인키를 암호화하여 암호화 공인인증서용 개인키로 가공처리한 상태에서 정보저장부(102)에 저장되도록 제어한다.
이를 통해, 사용자의 공인인증서용 개인키가 유출된다 하더라도 사용자가 지정한 비밀번호 및 사진이미지를 유추하기가 사실상 어려워 정보 도용이 발생하는 위험성을 최소화 시켜준다.
또한, 사용자단말기(100)의 정보저장부(102)에는 사용자단말기(100)에서 공인인증서용 공개키 및 공인인증서용 개인키의 발급과정을 표시한 키생성 안내화면부가 저장되어진다.
이처럼, 저장된 키생성 안내화면부는 사용자의 성명이 입력되는 사용자 성명입력칸(141a), 사용자의 생년월일이 입력되는 사용자 생년월일 입력칸(141b), 사용자의 전화번호가 입력되는 사용자 전화번호 입력칸(141c), 및 사용자의 이메일이 입력되는 사용자 이메일 입력칸(141d);을 포함하는 사용자 식별정보 입력화면(141)과, 공인인증서용 공개키 및 공인인증서용 개인키 생성 전 사용자단말기(100)에 연결된 네트워크를 차단한다는 것을 안내하는 네트워크 차단안내화면(142)과, 사용자단말기(100)의 네트워크가 차단된 상태임을 나타내는 네트워크 차단표시화면(143)과, 블록체인기반 공인인증서의 발급에 필요한 비밀번호가 입력되는 비밀번호 입력칸(144a)을 포함하는 비밀번호 입력화면(144)과, 다수의 이미지들이 표시되되, 선택가능하게 표시되는 이미지 선택화면(145)과, 공인인증서용 공개키 및 공인인증서용 개인키가 생성되는 것을 안내하는 키생성 안내화면(146)과, 공인인증서용 공개키 및 공인인증서용 개인키가 생성된 후 차단된 네트워크가 다시 연결된 것을 나타내는 네트워크 연결표시화면(147)과, 블록체인기반 공인인증서의 발급이 완료된 것을 나타내는 발급완료 안내화면(148)으로 이루어진다.
상기 블록체인기반 공인인증서 발급 요청 서버(200)는 사용자단말기(100)로부터 공인인증서용 공개키 및 블록체인기반 공인인증서 발급용 개인정보를 전송받고, 블록체인기반 공인인증서 발급용 개인정보를 해싱연산하여 사용자 식별해시정보로 가공처리하고, 사용자 식별해시정보, 공인인증서용 공개키 및 블록체인기반 공인인증서 발급용 개인정보를 이루는 사용자의 식별정보 중 기지정된 사용자의 식별정보에 해당하는 지정 사용자 식별정보를 취합하여 공개키 기록용 트랜잭션 생성요청신호로 가공하고 이를, 전송하는 후술되는 블록체인기반 공인인증서 관리서버(300)로 전송하는 서버부재이다. 여기서, 지정 사용자 식별정보는 사용자의 전화번호 특히, 이동통신단말기의 전화번호를 이용할 수 있다.
이러한 기능을 수행하기 위해 블록체인기반 공인인증서 발급 요청 서버(200)에는, 해시처리엔진(220)이 탑재되어진다.
이처럼, 블록체인기반 공인인증서 발급 요청 서버(200)에 탑재되는 해시처리엔진(220)은 블록체인기반 공인인증서 발급용 개인정보를 해싱연산하여 사용자 식별해시정보로 가공처리하는 기능을 수행한다.
상기 블록체인기반 공인인증서 관리서버(300)는 블록체인기반 공인인증서 발급 요청 서버(200)로부터 전송되는 공개키 기록용 트랜잭션 생성요청신호에 취합된 정보 중 공인인증서용 공개키를 포함하는 공개키 기록용 트랜잭션정보 및 그 공개키 기록용 트랜잭션정보를 검색하는데 키값으로 이용되는 공개키 기록용 트랜잭션 ID정보를 생성하고, 그 생성된 정보 중 공개키 기록용 트랜잭션정보는 기록을 위해 전송하며, 공개키 기록용 트랜잭션 ID정보는 저장관리하고, 공개키 기록용 트랜잭션 생성요청신호에 취합된 정보 중 사용자 식별해시정보와 공개키 기록용 트랜잭션 ID정보를 해싱연산하여 사용자 검증해시정보로 가공처리하며, 그 가공처리된 사용자 검증해시정보를 포함하는 사용자 검증용 트랜잭션정보 및 그 사용자 검증용 트랜잭션정보를 검색하는데 키값으로 이용되는 사용자 검증용 트랜잭션 ID정보를 생성하고, 그 생성된 정보 중 사용자 검증용 트랜잭션정보는 기록을 위해 전송하며, 사용자 검증용 트랜잭션 ID정보는 저장관리하고, 공개키 기록용 트랜잭션 생성요청신호에 취합된 정보 중 지정 사용자 식별정보는 저장관리하는 부재이다.
이러한 기능을 수행하기 위해, 블록체인기반 공인인증서 관리서버(300)에는 사용자별 트랜잭션 검색 키워드정보 DB(311)를 갖는 DB부(310), 트랜잭션처리엔진(320) 및 해시처리엔진(330)을 포함한다.
먼저, 트랜잭션처리엔진(320)은 지정 사용자 식별정보를 상기 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장하고, 공인인증서용 공개키를 포함하는 공개키 기록용 트랜잭션정보 및 그 공개키 기록용 트랜잭션정보를 검색하는데 키값으로 이용되는 공개키 기록용 트랜잭션 ID정보를 생성한다.
그리고 해시처리엔진(330)은 공개키 기록용 트랜잭션 생성요청신호에 취합된 정보 중 사용자 식별해시정보와 공개키 기록용 트랜잭션 ID정보를 해싱연산하여 사용자 검증해시정보로 가공처리한다.
또한, 트랜잭션처리엔진(320)은 공개키 기록용 트랜잭션정보의 경우 기록을 위해 블록체인 보유서버(400)들로 전송하고, 공개키 기록용 트랜잭션 ID정보의 경우 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장하며, 사용자 검증해시정보를 포함하는 사용자 검증용 트랜잭션정보 및 그 사용자 검증용 트랜잭션정보를 검색하는데 키값으로 이용되는 사용자 검증용 트랜잭션 ID정보를 생성하고, 그 생성된 정보 중 사용자 검증용 트랜잭션정보는 기록을 위해 블록체인 보유서버(400)들로 전송하며, 사용자 검증용 트랜잭션 ID정보는 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장 관리한다.
이러한 기능을 수행하는 블록체인기반 공인인증서 관리서버(300)는 은행이나 증권회사에서 운영하는 서버, 정부기관에서 운영하는 서버 및 인터넷 상거래를 수행하는 쇼핑몰에서 운영하는 서버 등 서비스 이용 시 공인인증 수행이 요구되는 업체의 서버가 적용될 수 있다.
한편, 후술되는 블록체인 보유서버(400)의 전자지갑에 구비된 블록체인에 기록되는 비트코인 결제용 트랜잭션정보는 도 6a를 참조하여, 이전의 비트코인 결제용 트랜잭션정보를 통해 송금인이 보유하고 있는 비트코인 액수 중 사용하고자 하는 사용예정 비트코인의 저장위치를 식별하는데 이용되는 이전의 비트코인 결제용 트랜잭션 ID정보, 송금인의 비트코인 사용 권한정보, 비트코인 사용 권한정보의 유효성을 판단하는데 필요한 비트코인 결제용 공개키, 비트코인 거래를 위한 트랜잭션임을 안내하는 OP_DUP정보, 송금되는 비트코인 액수 및 수금자를 식별하는 수금자 식별정보를 포함하는 데이터이다.
여기서, 이전의 비트코인 결제용 트랜잭션 ID정보는 이전의 비트코인 결제용 트랜잭션정보를 검색하는데 키값으로 이용되는 정보이다. 송금인의 비트코인 사용 권한정보는 송금인의 전자서명정보이며, 송금인은 이전의 비트코인 결제용 트랜잭션정보에서 비트코인을 송금하는 사용자에 해당한다.
또한, 비트코인 결제용 트랜잭션정보는 데이터 구조가 입력데이터(ID) 및 출력데이터(OD)로 구분되는데, 입력데이터(ID)에는 이전의 비트코인 결제용 트랜잭션 ID정보, 송금인의 비트코인 사용 권한정보 및 비트코인 결제용 공개키가 구분저장되고, 출력데이터(OD)에는 OP_DUP정보, 비트코인 액수 및 수금자 식별정보가 구분저장된다.
그리고 공개키 기록용 트랜잭션정보는 도 6b를 참조하여, 이전의 비트코인 결제용 트랜잭션정보를 통해 송금인이 보유하고 있는 비트코인 액수 중 사용하고자 하는 사용예정 비트코인의 저장위치를 식별하는데 이용되는 이전의 비트코인 결제용 트랜잭션 ID정보, 송금인의 비트코인 사용권한정보, 상기 비트코인 사용 권한정보의 유효성을 판단하는데 필요한 비트코인 결제용 공개키, 블록체인기반 공인인증서 발급에 필요한 상기 공인인증서용 공개키의 등록에 소요되는 비용인 공개키 등록비용정보, 비트코인 거래를 위한 트랜잭션이 아닌 정보기록을 위한 트랜잭션임을 안내하는 OP_RETURN정보 및 상기 공인인증서용 공개키를 포함하는 데이터이다.
이때에도, 공개키 기록용 트랜잭션정보는 데이터 구조가 입력데이터(ID1) 및 출력데이터(OD1)로 구분되는데, 입력데이터(ID1)에는 이전의 비트코인 결제용 트랜잭션 ID정보, 송금인의 비트코인 사용 권한정보 및 비트코인 결제용 공개키 및 공개키 등록비용정보가 구분저장되고, 출력데이터(OD1)에는 OP_RETURN정보 및 공인인증서용 공개키가 구분저장된다.
여기서, 공개키 등록비용정보는 공개키 기록용 트랜잭션정보를 블록체인 보유서버(400)들의 전자지갑에 구비된 블록체인에 등록될 수 있게 관여한 마이너에게 지불되는 비용으로, 대략 0.0001비트코인이 소요된다. 이와 더불어, 후술되는 사용자 검증해시 등록비용정보도 마찬가지로, 사용자 검증용 트랜잭션정보가 블록체인 보유서버(400)들의 전자지갑에 구비된 블록체인에 등록될 수 있게 관여한 마이너에게 지불되는 비용이다.
그리고 2015년 7월 시세로 0.0001비트코인은 40원 정도로 저렴한 비용으로, 비트코인기반 공인인증서를 발급하는데 소요되는 총 비용은 100원 미만의 저렴한 비용이 소요된다.
이와 더불어, 사용자 검증용 트랜잭션정보는 도 6c를 참조하여, 이전의 비트코인 결제용 트랜잭션정보를 통해 송금인이 보유하고 있는 비트코인 액수 중 사용하고자 하는 사용예정 비트코인의 저장위치를 식별하는데 이용되는 이전의 비트코인 결제용 트랜잭션 ID정보, 송금인의 비트코인 사용권한정보, 비트코인 사용 권한정보의 유효성을 판단하는데 필요한 비트코인 결제용 공개키, 블록체인기반 공인인증서 발급에 필요한 사용자 검증해시정보의 등록에 소요되는 비용인 사용자 검증해시 등록비용정보, 블록체인기반 공인인증서를 파기하는데 사용될 비용인 블록체인기반 공인인증서 파기비축비용정보, 비트코인 거래를 위한 트랜잭션이 아닌 정보기록을 위한 트랜잭션임을 안내하는 OP_RETURN정보, 해당 사용자 검증용 트랜잭션정보가 블록체인 보유서버(400)들의 블록체인에 기록되면 상기 블록체인기반 공인인증서 파기비축비용정보에 해당하는 블록체인기반 공인인증서 파기비축비용이 지정된 비트코인 어드레스로 이관되도록 파기대비 비축용 비트코인 어드레스 및 해당 블록체인기반 공인인증서 파기비축비용의 금액이 표시된 파기비축비용 이관정보를 포함하는 블록체인 기반 공인인증서 파기여부 확인정보 및 사용자 검증해시정보를 포함하는 데이터이다.
이를 통해, 블록체인 보유서버(400)들은 사용자 검증용 트랜잭션정보를 기록함과 동시에 블록체인 기반 공인인증서 파기여부 확인정보를 참조하여, 그 지정된 파기대비 비축용 비트코인 어드레스에 블록체인기반 공인인증서 파기비축비용정보가 이관되어 충전되었다는 정보를 기록하여 추후, 블록체인기반 공인인증서의 파기 여부를 확인하는 데이터로 활용할 수 있게 제공한다.
또한, 사용자 검증용 트랜잭션정보는 데이터 구조가 입력데이터(ID2) 및 출력데이터(OD2)로 구분되는데, 입력데이터(ID2)에는 이전의 비트코인 결제용 트랜잭션 ID정보, 송금인의 비트코인 사용 권한정보 및 비트코인 결제용 공개키, 블록체인기반 공인인증서 파기비축비용정보 및 사용자 검증해시 등록비용정보가 구분저장되고, 출력데이터(OD2)에는 OP_RETURN정보, 블록체인 기반 공인인증서 파기여부 확인정보 및 사용자 검증해시정보가 구분저장된다.
상기 블록체인 보유서버(400)들은 비트코인 결제 시 그 비트코인 결제에 대한 인증 및 기록을 통해 비트코인 결제를 수행하는 비트코인 네트워크를 이루는 장치들이다.
여기서, 비트코인에 대해 간략하게 설명하기로 한다. 비트코인(Bitcoin)이란 2009년 나카모토 사토시(영문성명 : Satoshi Nakamoto)가 만든 현물에 대한 결제가 가능한 디지털 통화로, 통화를 발행하고 관리하는 중앙 장치가 존재하지 않는 구조로 이루어진다. 대신에, 비트코인의 거래는 동등 계층간 통신망(P2P : peer-to-peer network) 기반 분산 데이터베이스에 의해 이루어지며, 공개 키 암호 방식 기반으로 거래를 수행한다.
이와 같은, 결제방식을 갖는 비트코인은 신용카드 결제 시에 필요한 카드번호나 유효기간 및 CCV 번호 등의 정보 없이도 이용이 가능할 뿐만 아니라 사용수수료도 저렴한 이점이 있다. 또한, 비트코인은 파일의 형태인 전자지갑에 저장되고, 이 전자지갑에는 각각의 고유 주소(퍼블릭어드레스)가 부여되며, 그 주소를 기반으로 비트코인의 거래가 이루어진다.
이와 같은, 결제특성을 갖는 비트코인을 이용하기 위해서는 먼저, 비트코인 이용자는 비트코인 거래소(일예 : www.coinplug.com)에 가입하여 전자지갑을 개설한 상태에서 원화에 해당하는 KRW를 충전한다.
이후, 비트코인 거래소에서 매매되고 있는 비트코인의 현재 시세를 확인한 후 구매를 원하는 비트코인의 수량과 단가를 입력하여 구매주문을 하면, 거래조건에 맞는 판매주문을 통해 거래가 성립됨으로써, 이용자는 물품 구매 시 비트코인을 통해 결제를 수행할 수 있다.
이러한, 블록체인 보유서버(400)들에는 앞에서 언급한 것처럼, 비트코인 거래소측이 운영하는 서버가 하나의 구성원으로 이루어질 수 있다.
이를 위해, 개개의 블록체인 보유서버(400)에는 블록체인을 갖는 전자지갑이 탑재되어야 하며, 블록체인 보유서버(400)의 전자지갑에 의해 블록체인에는 일반적인 비트코인 결제에 따라 생성되는 비트코인 결제용 트랜잭션정보가 수신 시 그 수신된 비트코인 결제용 트랜잭션정보를 검증을 통해 비트코인 결제를 인증하고, 그 인증에 따라 비트코인 결제용 트랜잭션정보가 기록됨과 더불어, 지정된 다음 단의 블록체인 보유서버(400)들에게 비트코인 결제용 트랜잭션정보를 전파한다.
즉, 비트코인 결제용 트랜잭션정보의 전파는 통신규약(protocol)에 의해 약속된 것으로, 비트코인 결제용 트랜잭션정보의 발생 시 1개의 노드(여기서는 블록체인 보유서버를 칭함)가 지정된 8개의 노드로 전파시키며, 그 비트코인 결제용 트랜잭션정보를 전송받은 8개의 노드마다 각각 지정된 8개의 노드로 반복 전파하는 피라미드식 전파를 통해 비트코인 결제를 수행하기 위해 필요한 블록체인을 갖는 전자지갑이 탑재된 모든 블록체인 보유서버(400)에게 전파됨으로써, 완료된다.
이처럼, 블록체인에 기록되는 비트코인 결제용 트랜잭션정보 뿐만 아니라 앞에서 언급한 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보를 포함하는 모든 트랜잭션정보는 추후 위변조가 불가능하다.
한편, 블록체인 보유서버(400)들에는 블록체인을 갖는 전자지갑이 탑재된 것으로, 비트코인을 채굴하는 마이너가 운영하는 서버(또는 단말) 또는, 비트코인 결제를 위한 사용자단말(일예로, PC나 스마트폰)도 하나의 구성원으로 이루어질 수 있다.
이와 더불어, 비트코인 결제의 경우 기본적으로 블록체인이 탑재된 전자지갑을 기반으로 결제가 수행되는데 이처럼, 블록체인이 탑재된 전자지갑을 기반으로 하는 결제에는 라이트코인, 다크코인, 네임코인, 도기코인 및 리플 등이 있으며, 이 또한 본 발명에서 금융기관의 제증명서 서류의 위변조 검증시에 비트코인과 같은 기능을 수행하는 대체제로 사용가능하다.
그리고 블록체인 보유서버(400)의 블록체인에는 일반적인 비트코인 결제를 위한 비트코인 결제용 트랜잭션정보와 더불어, 앞에서 언급한 것처럼 개인적인 정보도 기록가능하다. 즉, 비트코인기반 공인인증 수행 시 필요로 한 공인인증서용 공개키 및 사용자 검증해시정보를 포함하는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보도 기록가능하다.
즉, 비트코인 결제시 발생하는 거래정보인 트랜잭션정보에 OP_RETURN(Operation Code RETURN) 정보를 포함시켜 전송하면, 개개의 블록체인 보유서버(400)의 전자지갑은 일반적인 비트코인 결제가 아닌 사적인 정보로서 취급하고 전파하며, 제증명서 검증용 트랜잭션정보에 OP리턴 정보가 기록됨으로써, 디지털 콘텐츠의 위변조 방지를 판단하는 중요 구성으로 활용된다.
여기서, OP_RETURN정보는 블록체인 보유서버(400)의 전자지갑에서 비트코인 결제 인증 시 비트코인 결제용 트랜잭션정보 상에서 OP리턴이라는 메세지를 판독하면, 그 OP리턴이란 메시지가 기록된 정보는 비트코인 거래정보가 아닌 임의의 40bytes 데이터값이라는 것을 알리기 위한 정보로 활용된다는 것을 인지할 수 있게 안내하는 역할을 수행한다.
이와 같이, 구성되는 본 발명의 블록체인을 기반으로 하는 공인인증서 발급시스템을 이용하여 블록체인기반 공인인증서 발급과정을 설명하면 다음과 같다.
사용자는 사용자단말기(100)에 탑재된 비트코인기반 공인인증서의 발급을 안내하는 모바일 전용앱(또는 전용프로그램)을 실행하여 블록체인기반 공인인증서 발급 요청 서버(200)에 접속하면, 사용자단말기(100)에 의해 운영되는 모바일 전용앱(이하에서는 설명 편의상 사용자단말기가 제어하는 것이라 기재함)은 정보저장부(102)에 저장된 사용자 식별정보 입력화면(141)을 추출하여 정보출력부(101)에 출력한다.
사용자는 출력된 사용자 식별정보 입력화면(141)의 사용자의 성명이 입력되는 사용자 성명입력칸(141a), 사용자의 생년월일이 입력되는 사용자 생년월일 입력칸(141b), 사용자의 전화번호가 입력되는 사용자 전화번호 입력칸(141c) 및 사용자의 이메일이 입력되는 사용자 이메일 입력칸(141d)에 입력양식에 맞게 정보를 입력하여 전송을 요청한다.
사용자단말기(100)는 입력된 정보인 사용자 성명, 사용자 생년월일, 사용자 전화번호, 사용자 이메일을 취합하여 블록체인기반 공인인증서 발급용 개인정보로 가공한 후 그 가공된 블록체인기반 공인인증서 발급용 개인정보를 블록체인기반 공인인증서 발급 요청 서버(200)로 전송하여 블록체인기반 공인인증서 발급을 요청(S100)한다.
블록체인기반 공인인증서 발급 요청 서버(200)는 전송되는 블록체인기반 공인인증서 발급용 개인정보를 회원별 사용자 식별정보 DB(211)와 매칭하여 매칭되는 정보가 존재하는지 확인(S110)하여, 매칭되는 정보가 없으면 블록체인기반 공인인증서의 발급을 불가하는 메시지(S111)를 사용자단말기(100)로 전송한다.
그리고 블록체인기반 공인인증서 발급 요청 서버(200)는 매칭되는 정보가 존재하면, 공인인증서용 공개키 및 공인인증서용 개인키의 생성을 안내하는 키생성 안내신호를 생성하여 사용자단말기(100)로 전송(S120)한다.
사용자단말기(100)는 키생성 안내신호가 전송되면, 정보저장부(102)에서 네트워크 차단안내화면(142)을 추출하여 정보출력부(101)에 출력한다.
사용자는 출력된 차단안내화면(142)을 열람한 후 네트워크 설정을 요청하는 메뉴를 클릭하면, 사용자단말기(100)는 정보저장부(102)에 저장된 네트워크 차단표시화면(143)을 추출하여 정보출력부(101)에 출력한다. 이후, 사용자는 출력된 네트워크 차단표시화면(143)에 와이파이와 같은 연결된 네트워크를 차단한다.
이후, 사용자단말기(100)는 정보저장부(102)에 저장된 비밀번호 입력화면(144)을 추출하여 정보출력부(101)에 출력하면, 사용자는 비밀번호 입력화면(144)의 비밀번호 입력칸(144a)에 비밀번호를 입력하여 OK메뉴를 클릭한다.
이후, 사용자단말기(100)는 정보저장부(102)에 저장된 이미지 선택화면(145)을 추출하여 정보출력부(101)에 출력한다. 이후, 사용자는 출력된 이미지 선택화면(145)에 표시된 다수의 이미지들 중 원하는 이미지를 선택한다.
이후, 사용자단말기(100)는 키생성엔진(110)을 운영하여 공인인증서용 공개키 및 공인인증서용 개인키가 생성되도록 제어하는데, 이때, 정보저장부에 저장된 키생성 안내화면(146)을 출력하여 사용자가 공인인증서용 공개키 및 공인인증서용 개인키가 생성되는 것을 인지할 수 있게 안내한다.
이후, 사용자단말기(100)는 공인인증서용 공개키 및 공인인증서용 개인키가 생성되면, 암복호화엔진(120)을 운영하여 사용자가 지정한 비밀번호 및 사진이미지를 토대로 공인인증서용 개인키를 암호화하여 암호화 공인인증서용 개인키로 가공처리한 상태로 정보저장부(102)에 저장한다.
이후, 사용자단말기(100)는 암호화 공인인증서용 개인키가 저장되면, 네트워크를 다시 연결하라는 메시지를 출력하고, 사용자는 네트워크를 연결한다.
이후, 사용자단말기(100)는 정보저장부(102)에 저장된 네트워크 연결안내화면(147)을 출력하여 네트워크가 다시 연결된 것을 인지할 수 있게 안내한다.
이후, 사용자단말기(100)는 공인인증서용 공개키를 블록체인기반 공인인증서 발급 요청 서버(200)로 전송(S130)한다.
블록체인기반 공인인증서 발급 요청 서버(200)는 공인인증서용 공개키를 전송받으면, 해시처리엔진(220)을 운영하여 블록체인기반 공인인증서 발급용 개인정보를 해싱연산하여 사용자 식별해시정보로 가공처리하며, 사용자 식별해시정보, 공인인증서용 공개키 및 블록체인기반 공인인증서 발급용 개인정보를 이루는 사용자의 식별정보 중 기지정된 사용자의 식별정보에 해당하는 지정 사용자 식별정보를 취합하여 공개키 기록용 트랜잭션 생성요청신호로 가공하여 블록체인기반 공인인증서 관리서버(300)로 전송(S140)한다.
또한, 블록체인기반 공인인증서 관리서버(300)는 트랜잭션처리엔진(320)을 운영하여 전송되는 공개키 기록용 트랜잭션 생성요청신호에 취합된 정보 중 지정 사용자 식별정보를 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장하고, 공인인증서용 공개키를 포함하는 공개키 기록용 트랜잭션정보 및 그 공개키 기록용 트랜잭션정보를 검색하는데 키값으로 이용되는 공개키 기록용 트랜잭션 ID정보를 생성(S150)한다.
이후, 블록체인기반 공인인증서 관리서버(300)는 해시처리엔진(330)을 운영하여 공개키 기록용 트랜잭션 생성요청신호에 취합된 정보 중 사용자 식별해시정보와 공개키 기록용 트랜잭션 ID정보를 해싱연산하여 사용자 검증해시정보로 가공처리(S160)한다.
이후, 블록체인기반 공인인증서 관리서버(300)는 트랜잭션처리엔진(320)을 운영하여 공개키 기록용 트랜잭션정보의 경우 기록을 위해 블록체인 보유서버(400)들로 전송하고, 공개키 기록용 트랜잭션 ID정보의 경우 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장하며, 사용자 검증해시정보를 포함하는 사용자 검증용 트랜잭션정보 및 그 사용자 검증용 트랜잭션정보를 검색하는데 키값으로 이용되는 사용자 검증용 트랜잭션 ID정보를 생성하고, 그 생성된 정보 중 사용자 검증용 트랜잭션정보는 기록을 위해 블록체인 보유서버(400)들로 전송하며, 사용자 검증용 트랜잭션 ID정보는 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장 관리(S170)한다.
블록체인 보유서버(400)들은 전송되는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보를 블록체인에 기록하여 블록체인기반 공인인증서 발급을 완료(S180)한다.
그리고 블록체인기반 공인인증서 관리서버(300)는 블록체인기반 공인인증서 발급 완료(S180)되면, 사용자단말기(100)에게 블록체인기반 공인인증서 발급완료를 통보(S190)한다.
사용자단말기(100)는 정보저장부(102)에 저장된 발급완료 안내화면(148)을 정보출력부(101)를 통해 출력하여 사용자가 인지할 수 있게 제공한다.
그리고 도 8 내지 도 14는 블록체인을 기반으로 하는 공인인증서의 인증 부분인 블록체인을 기반으로 하는 공인인증서 인증시스템 및 방법에 관한 것이다. 도면을 설명하기에 앞서, 공인인증서 발급부분에서 언급된 내용과 중복되는 내용이 있는 경우 생략하기로 한다.
도면에 도시된 바와 같이, 본 발명의 블록체인을 기반으로 하는 공인인증서 인증시스템은 사용자단말기(100), 블록체인기반 공인인증서 인증요청서버(500), 블록체인기반 공인인증서 관리서버(300), 블록체인 보유서버(400)로 이루어진다.
먼저, 사용자단말기(100)는 블록체인기반 공인인증을 요청하는 단말부재이다.
상기 블록체인기반 공인인증서 인증요청서버(500)는 사용자단말기(100)의 블록체인기반 공인인증 요청에 따라 사용자단말기(100)를 운영하는 해당 사용자의 지정 사용자 식별정보를 전송하여 블록체인기반 공인인증의 요청을 중계하는 서버부재이다.
이를 위해, 블록체인기반 공인인증서 인증요청서버(500)에는, DB부(510)를 포함하고, 그 포함된 DB부(510)에는 사용자단말기(100)를 운영하는 사용자의 식별정보가 저장되되, 블록체인기반 공인인증서 발급 때 이용된 사용자의 식별정보로 이루어진 블록체인기반 공인인증서 발급용 개인정보와 동일한 사용자의 식별정보 및 사용자의 식별정보 중 기지정된 사용자의 식별정보에 해당하는 지정 사용자 식별정보가 저장된 회원별 사용자 식별정보 DB(511)를 갖는다.
이를 토대로, 블록체인기반 공인인증서 인증요청서버(500)는 사용자단말기(100)의 블록체인기반 공인인증 요청에 따라 상기 사용자 식별정보 DB(511)에서 사용자단말기(100)를 운영하는 해당 사용자의 지정 사용자 식별정보를 추출하고, 이를 블록체인기반 공인인증서 관리서버(300)로 전송한다.
상기 블록체인기반 공인인증서 관리서버(300)는 블록체인기반 공인인증서 인증요청서버(500)로부터 전송되는 지정 사용자 식별정보와 매칭되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 전송하여 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보의 다운로드를 요청하는 서버부재이다.
이를 위해, 블록체인기반 공인인증서 관리서버(300)에는, DB부(310)가 탑재되고, 그 탑재된 DB부(310)에는 블록체인기반 공인인증서 발급 때 이용된 사용자의 식별정보로 이루어진 블록체인기반 공인인증서 발급용 개인정보와 동일한 사용자의 식별정보 중 기지정된 사용자의 식별정보에 해당하는 지정 사용자 식별정보, 공개키 기록용 트랜잭션정보를 검색하는데 키값으로 이용되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션정보를 검색하는데 키값으로 이용되는 사용자 검증용 트랜잭션 ID정보가 저장되는 사용자별 트랜잭션 검색 키워드정보 DB(311)를 갖는다.
여기서, 사용자 검증용 트랜잭션정보에는, 블록체인기반 공인인증서를 파기하는데 사용될 비용인 블록체인기반 공인인증서 파기비축비용정보 및 해당 사용자 검증용 트랜잭션정보가 블록체인 보유서버(400)들의 블록체인에 기록되면 상기 블록체인기반 공인인증서 파기비축비용정보에 해당하는 블록체인기반 공인인증서 파기비축비용이 지정된 비트코인 어드레스로 이관되도록 파기대비 비축용 비트코인 어드레스 및 해당 블록체인기반 공인인증서 파기비축비용의 금액이 표시된 파기비축비용 이관정보를 포함하고 있다.
이를 통해, 블록체인기반 공인인증서 관리서버(300)의 트랜잭션처리엔진(320)은 사용자 검증용 트랜잭션정보에 포함된 정보 중 파기비축비용 이관정보에 포함된 파기대비 비축용 비트코인 어드레스를 추출하고, 그 추출된 파기대비 비축용 비트코인 어드레스에 충전된 비트코인 금액에 해당하는 블록체인기반 공인인증서 파기비축비용이 이관되었는지의 여부를 문의하는 블록체인기반 공인인증서 파기여부 확인요청신호를 생성하며 이를, 블록체인 보유서버(400)로 전송한다. 여기서, 블록체인기반 공인인증서 파기여부 확인요청신호는 다수의 블록체인 보유서버(400)로 보내지거나 또는 사전에 지정된 하나의 블록체인 보유서버(400)로 보내질 수 있다.
블록체인 보유서버(400)는 그 전송된 블록체인기반 공인인증서 파기여부 확인요청신호에 포함된 파기대비 비축용 비트코인 어드레스를 상기 블록체인과 매칭하여 매칭되는 해당 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용의 이관여부를 안내하는 블록체인기반 공인인증서 파기여부 안내신호를 블록체인기반 공인인증서 관리서버(300)로 전송한다.
블록체인기반 공인인증서 관리서버(300)의 트랜잭션처리엔진(320)은 블록체인기반 공인인증서 파기여부 안내신호를 참조하여 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용이 이관된 경우에는 블록체인기반 공인인증 수행과정이 거부되었다는 메시지를 상기 사용자단말기(100)로 통보되도록 제어하는 기능을 수행한다.
그리고 블록체인기반 공인인증서 관리서버(300)는 지정 사용자 식별정보를 사용자별 트랜잭션 검색 키워드정보 DB(311)와 매칭하여, 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 추출하고, 트랜잭션처리엔진(320)을 운영하여, 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보에서 공인인증서용 공개키 및 사용자 검증해시정보가 추출되도록 제어하는 기능을 수행한다.
상기 블록체인 보유서버(400)는 비트코인 결제용 트랜잭션정보가 전송 시 그 전송된 비트코인 결제용 트랜잭션정보를 검증을 통해 비트코인 결제를 인증하고, 그 인증에 따라 비트코인 결제용 트랜잭션정보가 기록되는 블록체인을 갖는 전자지갑이 탑재되되, 그 전자지갑에는 공인인증서용 공개키를 포함하는 공개키 기록용 트랜잭션정보 및 사용자 검증해시정보를 포함하는 사용자 검증용 트랜잭션정보도 기록된 것으로, 상기 블록체인기반 공인인증서 관리서버(300)로부터 전송되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 전자지갑과 매칭하여, 매칭되는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보를 상기 블록체인기반 공인인증서 관리서버(300)로 전송하는 부재이다.
특히, 본 발명의 주요특징으로, 블록체인기반 공인인증서 관리서버(300)는 블록체인기반 공인인증서 관리서버(300)로부터 전송되는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보에서 공인인증서용 공개키 및 사용자 검증해시정보를 추출하고, 그 추출된 공인인증서용 공개키 및 사용자 검증해시정보와 공개키 기록용 트랜잭션 ID정보를 포함하여 이루어진 인증서 유효성확인신호를 블록체인기반 공인인증서 인증요청서버(500)로 전송한다.
또한, 블록체인기반 공인인증서 인증요청서버(500)는 회원별 사용자 식별정보 DB(511)에서 해당 사용자의 식별정보를 추출하며, 해시처리엔진(520)을 운영하여, 그 추출된 사용자의 식별정보를 해싱연산하여 대비용 사용자 식별해시정보로 가공처리하고, 그 가공처리된 대비용 사용자 식별해시정보와 블록체인기반 공인인증서 관리서버(300)로부터 전송된 인증서 유효성확인신호에 포함된 정보 중 공개키 기록용 트랜잭션 ID정보를 해싱연산하여 대비용 사용자 검증해시정보로 가공처리하며, 블록체인기반 공인인증서 관리서버(300)로부터 전송된 인증서 유효성확인신호에 포함된 정보 중 사용자 검증해시정보의 해시값과 상기 대비용 사용자 검증해시정보의 해시값을 각각 연산하여 양쪽의 해시값이 동일하면, 인증서 유효성확인신호에 포함된 정보 중 공인인증서용 공개키를 사용자단말기(100)로 전송한다.
그리고 사용자단말기(100)는 전송되는 공인인증서용 공개키를 기반으로 공인인증을 수행한다.
이를 위해, 사용자단말기(100)에는 공인인증서용 개인키가 사용자가 설정한 비밀번호 및 사진이미지를 토대로 암호화된 암호화 공인인증서용 개인키 상태로 저장된 정보저장부(102) 및 암복호화엔진(120)을 포함한다.
또한, 블록체인기반 공인인증서 인증요청서버(500)는 공인인증서용 공개키를 사용자가 설정한 비밀번호 및 사진이미지의 입력을 요구하는 사용자 확인요청 메시지를 기반으로 암호화처리된 암호화 공인인증서용 공개키로 전송한다.
사용자단말기(100)는 암호화 공인인증서용 공개키가 전송되면, 정보저장부(102)에 저장된 인증수행용 비밀번호 입력화면(151)을 추출하여 정보출력부(101)를 통해 출력하면, 사용자는 발급 시 등록한 비밀번호를 비밀번호 입력칸(151a)에 입력한다.
이후, 사용자단말기(100)는 정보저장부(102)에 저장된 인증수행용 이미지 선택화면(152)을 추출하여 정보출력부(101)를 통해 출력하면, 다수의 이미지들 중 발급 시 지정한 해당 이미지를 선택한다.
이후, 사용자단말기(100)는 암복호화엔진(120)을 운영하여 전송되는 암호화 공인인증서용 공개키를 참조하여, 정보저장부(102)에 저장된 암호화 공인인증서용 개인키를 복호화하고, 사용자가 입력한 비밀번호 및 사진이미지가 맞으면 사용자 확인 인증신호를 블록체인기반 공인인증서 인증요청서버(500)로 전송되도록 제어하는 기능을 수행한다.
한편, 사용자는 송금인에 해당하는 블록체인기반 공인인증서 관리서버(300)는 발급된 블록체인기반 공인인증서를 파기할 수 있다.
이를 위해, 블록체인기반 공인인증서 관리서버(300)에는 블록체인기반 인증서의 파기를 요청하는 인증서 파기신호가 생성되면, 트랜잭션처리엔진(320)을 운영하여 사용자별 트랜잭션 검색 키워드정보 DB(311)에서 사용자 검증용 트랜잭션 ID정보를 추출하고, 이를 블록체인 보유서버(400)로 전송한다.
블록체인 보유서버(400)는 전송된 사용자 검증용 트랜잭션 ID정보를 전자지갑의 블록체인과 매칭하여 추출되는 사용자 검증용 트랜잭션정보를 블록체인기반 공인인증서 관리서버(300)로 전송한다.
블록체인기반 공인인증서 관리서버(300)의 트랜잭션처리엔진(320)은 사용자 검증용 트랜잭션정보를 전송받고, 해당 공인인증서 파기용 트랜잭션정보가 블록체인 보유서버(400)에 기록되면 사용자 검증용 트랜잭션정보의 출력데이터(OD2)를 참조하여 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용을 이관하라고 안내하는 파기비축비용 이관안내정보, 송금인 또는 사용자가 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용을 사용할 수 있는 권한을 포함하는 멀티 비트코인 사용권한정보, 멀티 비트코인 사용 권한정보의 유효성을 판단하는데 필요한 비트코인 결제용 공개키를 포함하는 입력데이터(ID3) 및 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용이 송금되는 수금자의 비트코인 어드레스 및 수금자를 식별하는 파기비용 수금자 식별정보를 포함하는 출력데이터(OD3)로 구분되는 공인인증서 파기용 트랜잭션정보를 생성하고, 이를 블록체인 보유서버(400)들로 전송한다.
블록체인 보유서버(400)들은 전송되는 공인인증서 파기용 트랜잭션정보를 블록체인에 기록하여 사용자의 블록체인기반 공인인증서를 파기시킨다.
한편, 블록체인기반 공인인증서 관리서버(300)는 인증서 파기신호가 사용자단말기(100)에서 발생되었다면, 그 생성된 공인인증서 파기용 트랜잭션정보를 사용자단말기(100)로 전송하여 전자서명을 요청한다.
사용자단말기(100)는 트랜잭션 서명엔진(130)을 운영하여, 전송되는 공인인증서 파기용 트랜잭션정보에 전자서명하여 블록체인기반 공인인증서 관리서버(300)로 전송한다.
이후, 블록체인기반 공인인증서 관리서버(300)는 사용자단말기(100)로부터 전송되는 사용자에 의해 전자서명된 공인인증서 파기용 트랜잭션정보가 블록체인 보유서버(400)들로 전송되도록 제어하는 기능을 수행한다.
그리고 블록체인기반 공인인증서 관리서버(300)는 인증서 파기신호가 자체적으로 발생되었다면, 트랜잭션처리엔진(320)을 운영하여 블록체인기반 공인인증서 관리서버(300)에 해당하는 송금인의 전자서명을 공인인증서 파기용 트랜잭션정보에 하고, 그 송금인에 의해 전자서명된 공인인증서 파기용 트랜잭션정보가 블록체인 보유서버(400)들로 전송되도록 제어하는 기능을 수행한다.
본 발명의 블록체인을 기반으로 하는 공인인증서 인증시스템을 이용하여 블록체인기반 공인인증서의 인증과정을 설명하면 다음과 같다.
사용자단말기(100)는 블록체인기반 공인인증서 인증요청서버(500)에 접속하여 블록체인기반 공인인증을 요청(S300)한다.
블록체인기반 공인인증서 인증요청서버(500)는 사용자단말기(100)의 블록체인기반 공인인증 요청에 따라 회원별 사용자 식별정보 DB(511)에서 사용자단말기(100)를 운영하는 해당 사용자의 지정 사용자 식별정보를 추출하고, 이를 블록체인기반 공인인증서 관리서버(300)로 전송(S310)한다.
블록체인기반 공인인증서 관리서버(300)는 전송되는 지정 사용자 식별정보를 사용자별 트랜잭션 검색 키워드정보 DB(311)와 매칭하여 매칭되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 블록체인 보유서버(400)로 전송하여 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보의 다운로드를 요청(S320)한다.
블록체인 보유서버(400)는 전송되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 전자지갑과 매칭하여, 매칭되는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보를 블록체인기반 공인인증서 관리서버(300)로 전송(S330)한다.
블록체인기반 공인인증서 관리서버(300)는 트랜잭션처리엔진(320)을 운영하여, 그 전송된 사용자 검증용 트랜잭션정보에 포함된 파기비축비용 이관정보에서 파기대비 비축용 비트코인 어드레스를 추출하고, 그 추출된 파기대비 비축용 비트코인 어드레스에 충전된 비트코인 금액에 해당하는 블록체인기반 공인인증서 파기비축비용이 이관되었는지의 여부를 문의하는 블록체인기반 공인인증서 파기여부 확인요청신호를 생성하며 이를, 블록체인 보유서버(400)로 전송(S340)한다.
블록체인 보유서버(400)는 전송된 블록체인기반 공인인증서 파기여부 확인요청신호에 포함된 파기대비 비축용 비트코인 어드레스를 블록체인과 매칭하여 매칭되는 해당 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용의 이관여부를 안내하는 블록체인기반 공인인증서 파기여부 안내신호를 블록체인기반 공인인증서 관리서버(300)로 전송(S350)한다.
블록체인기반 공인인증서 관리서버(300)의 트랜잭션처리엔진(320)은 전송된 블록체인기반 공인인증서 파기여부 안내신호를 참조하여 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용이 이관되었는지 확인(S360)하는데 먼저, 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용이 이관된 경우 사용자단말기(100)로 블록체인기반 공인인증 수행과정이 거부되었다는 메시지가 통보되도록 제어(S361)하고, 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용이 이관되지 않은 경우 트랜잭션처리엔진(320)을 운영하여 전송된 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보에서 공인인증서용 공개키 및 사용자 검증해시정보를 추출(S370)한다.
블록체인기반 공인인증서 관리서버(300)는 추출된 공인인증서용 공개키 및 사용자 검증해시정보와 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장된 공개키 기록용 트랜잭션 ID정보를 포함하여 이루어진 인증서 유효성확인신호를 블록체인기반 공인인증서 인증요청서버(500)로 전송(S380)한다.
블록체인기반 공인인증서 인증요청서버(500)에서, 해당 사용자의 식별정보를 회원별 사용자 식별정보 DB(511)에서 추출하고, 해시처리엔진(520)을 운영하여 그 추출된 사용자의 식별정보를 해싱연산하여 대비용 사용자 식별해시정보로 가공처리하며, 그 가공처리된 대비용 사용자 식별해시정보와 블록체인기반 공인인증서 인증요청서버(500)로부터 전송된 인증서 유효성확인신호에 포함된 정보 중 공개키 기록용 트랜잭션 ID정보를 해싱연산하여 대비용 사용자 검증해시정보로 가공처리(S390)한다.
이후, 블록체인기반 공인인증서 인증요청서버(500)의 해시처리엔진(520)은 블록체인기반 공인인증서 관리서버(300)로부터 전송된 인증서 유효성확인신호에 포함된 정보 중 사용자 검증해시정보의 해시값과 대비용 사용자 검증해시정보의 해시값을 각각 연산하여 양쪽의 해시값이 동일한지 확인(S400)하는데 먼저, 양쪽의 해시값이 동일하지 않은 경우 사용자단말기(100)로 블록체인기반 공인인증 수행과정이 거부되었다는 메시지가 통보(S401)되도록 제어한다.
그리고 블록체인기반 공인인증서 인증요청서버(500)는 사용자 검증해시정보의 해시값과 대비용 사용자 검증해시정보의 해시값을 각각 연산하고, 그 연산된 양쪽의 해시값이 동일한 경우에는 인증서 유효성확인신호에 포함된 정보 중 공인인증서용 공개키를 사용자단말기(100)로 전송(S410)한다.
이후, 사용자단말기(100)는 전송되는 공인인증서용 공개키를 기반으로 공인인증을 수행하는 단계(S420)로 이루어진다.
한편, 블록체인기반 인증서의 파기를 요청하는 인증서 파기신호가 생성되었는지 확인(S430)하는데, 블록체인기반 인증서의 파기를 요청하는 인증서 파기신호가 생성된 경우 사용자단말기(100) 및 블록체인기반 공인인증서 관리서버(300) 중 어느 곳에서 생성되었는지 확인(S440)한다.
먼저, 블록체인기반 인증서의 파기를 요청하는 인증서 파기신호가 사용자단말기(100)에서 생성된 경우 사용자단말기(100)는 생성된 인증서 파기신호를 블록체인기반 공인인증서 관리서버(300) 쪽으로 전송(S450)한다.
블록체인기반 공인인증서 관리서버(300)는 트랜잭션처리엔진(320)을 운영하여 전송된 인증서 파기신호를 사용자별 트랜잭션 검색 키워드정보 DB(311)와 매칭하여 사용자 검증용 트랜잭션 ID정보를 추출하고, 이를 블록체인 보유서버(400)로 전송(S460)한다.
블록체인 보유서버(400)는 전송된 사용자 검증용 트랜잭션 ID정보를 전자지갑의 블록체인과 매칭하여 추출되는 사용자 검증용 트랜잭션정보를 블록체인기반 공인인증서 관리서버(300)로 전송(S470)한다.
이후, 블록체인기반 공인인증서 관리서버(300)의 트랜잭션처리엔진(320)은 사용자 검증용 트랜잭션정보를 전송받고, 해당 공인인증서 파기용 트랜잭션정보가 블록체인 보유서버(400)에 기록되면 사용자 검증용 트랜잭션정보의 출력데이터(OD2)를 참조하여 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용을 이관하라고 안내하는 파기비축비용 이관안내정보, 송금인 또는 사용자가 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용을 사용할 수 있는 권한을 포함하는 멀티 비트코인 사용권한정보, 멀티 비트코인 사용 권한정보의 유효성을 판단하는데 필요한 비트코인 결제용 공개키를 포함하는 입력데이터(ID3) 및 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용이 송금되는 수금자의 비트코인 어드레스 및 수금자를 식별하는 파기비용 수금자 식별정보를 포함하는 출력데이터(OD3)로 구분되는 공인인증서 파기용 트랜잭션정보를 생성하고, 이를 사용자단말기(100)로 전송하여 전자서명을 요청(S480)한다.
사용자단말기(100)는 트랜잭션 서명엔진(130)을 운영하여 전송되는 공인인증서 파기용 트랜잭션정보에 전자서명하여 블록체인기반 공인인증서 관리서버(300)로 전송(S490)한다.
블록체인기반 공인인증서 관리서버(300)는 전송되는 사용자에 의해 전자서명된 공인인증서 파기용 트랜잭션정보를 블록체인 보유서버(400)들로 전송(500)한다.
블록체인 보유서버(400)들은 전송되는 사용자에 의해 전자서명된 공인인증서 파기용 트랜잭션정보를 블록체인에 기록(S510)하여 사용자의 블록체인기반 공인인증서를 파기시킨다.
한편, 블록체인기반 인증서의 파기를 요청하는 인증서 파기신호가 생성된 경우 사용자단말기(100) 및 블록체인기반 공인인증서 관리서버(300) 중 어느 곳에서 생성되었는지 확인(S440)하는 과정에서, 블록체인기반 인증서의 파기를 요청하는 인증서 파기신호가 블록체인기반 공인인증서 관리서버(300)에서 생성된 경우 블록체인기반 공인인증서 관리서버(300)는 트랜잭션처리엔진(320)을 운영하여 사용자 검증용 트랜잭션정보를 전송받고, 해당 공인인증서 파기용 트랜잭션정보가 블록체인 보유서버(400)에 기록되면 사용자 검증용 트랜잭션정보의 출력데이터(OD2)를 참조하여 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용을 이관하라고 안내하는 파기비축비용 이관안내정보, 송금인 또는 사용자가 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용을 사용할 수 있는 권한을 포함하는 멀티 비트코인 사용권한정보, 멀티 비트코인 사용 권한정보의 유효성을 판단하는데 필요한 비트코인 결제용 공개키를 포함하는 입력데이터(ID3) 및 파기대비 비축용 비트코인 어드레스에 충전된 블록체인기반 공인인증서 파기비축비용이 송금되는 수금자의 비트코인 어드레스 및 수금자를 식별하는 파기비용 수금자 식별정보를 포함하는 출력데이터(OD3)로 구분되는 공인인증서 파기용 트랜잭션정보를 생성하고, 그 생성된 공인인증서 파기용 트랜잭션정보에 블록체인기반 공인인증서 관리서버(300)에 해당하는 송금인의 전자서명을 하고, 그 송금인에 의해 전자서명된 공인인증서 파기용 트랜잭션정보를 블록체인 보유서버(400)들로 전송(S441)한다.
블록체인 보유서버(400)들은 전송되는 송금인에 의해 전자서명된 공인인증서 파기용 트랜잭션정보를 블록체인에 기록(S442)하여 사용자의 블록체인기반 공인인증서를 파기시킨다.
마지막으로, 도 15 내지 도 17은 다른 실시예에 따른 블록체인을 기반으로 하는 공인인증서 인증방법을 나타낸 도면으로, 앞에서 언급한 블록체인을 기반으로 하는 공인인증서 인증시스템과 작동관계만 다를 뿐 도면부호는 동일하기 때문에 인증시스템 관련 도면은 생략하였다.
그리고 다른 실시예에 따른 블록체인을 기반으로 하는 공인인증서 인증시스템 및 방법은 앞에서 언급한 블록체인을 기반으로 하는 공인인증서 인증시스템 및 방법과의 차이점은 단지 올바른 사용자가 맞는지를 수행하고자 사용자 검증해시정보와 대비용 사용자 검증해시정보의 각 해시값 연산 및 판단 부분을 블록체인기반 공인인증서 인증요청서버(500)에서 수행할 것이냐 아니면, 블록체인기반 공인인증서 관리서버(300)에서 수행할 것이냐의 차이다.
즉, 다른 실시예에 따른 블록체인을 기반으로 하는 공인인증서 인증시스템은 블록체인기반 공인인증을 요청하는 사용자단말기(100)와, 사용자단말기(100)의 블록체인기반 공인인증 요청에 따라 회원별 사용자 식별정보 DB(511)에서 해당 사용자의 식별정보를 추출하고, 그 추출된 사용자의 식별정보를 해싱연산하여 대비용 사용자 식별해시정보로 가공처리하며, 그 가공처리된 대비용 사용자 식별해시정보 및 해당 사용자의 지정 사용자 식별정보를 전송하는 블록체인기반 공인인증서 인증요청서버(500), 블록체인기반 공인인증서 인증요청서버(500)로부터 대비용 사용자 식별해시정보 및 지정 사용자 식별정보를 전송받고, 그 전송된 정보 중 지정 사용자 식별정보를 사용자별 트랜잭션 검색 키워드정보 DB(311)와 매칭하여 매칭되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 전송하여 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보의 다운로드를 요청하는 블록체인기반 공인인증서 관리서버(300)와, 비트코인 결제용 트랜잭션정보가 전송 시 그 전송된 비트코인 결제용 트랜잭션정보를 검증을 통해 비트코인 결제를 인증하고, 그 인증에 따라 비트코인 결제용 트랜잭션정보가 기록되는 블록체인을 갖는 전자지갑이 탑재되되, 그 전자지갑에는 공인인증서용 공개키를 포함하는 공개키 기록용 트랜잭션정보 및 사용자 검증해시정보를 포함하는 사용자 검증용 트랜잭션정보도 기록된 것으로, 블록체인기반 공인인증서 관리서버(300)로부터 전송되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 전자지갑과 매칭하여, 매칭되는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보를 블록체인기반 공인인증서 관리서버(300)로 전송하는 블록체인 보유서버(400);로 이루어지되, 블록체인기반 공인인증서 관리서버(300)는 블록체인 보유서버(400)로부터 전송되는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보에서 공인인증서용 공개키 및 사용자 검증해시정보를 추출하고, 전송된 대비용 사용자 식별해시정보와 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장된 공개키 기록용 트랜잭션 ID정보를 해싱연산하여 대비용 사용자 검증해시정보로 가공처리하며, 추출된 사용자 검증해시정보의 해시값과 가공처리된 대비용 사용자 검증해시정보의 해시값을 각각 연산하여 양쪽의 해시값이 동일하면, 추출된 공인인증서용 공개키 및 해당 사용자의 지정 사용자 식별정보를 블록체인기반 공인인증서 인증요청서버(500)로 전송하고, 블록체인기반 공인인증서 인증요청서버(500)는 전송된 정보 중 지정 사용자 식별정보를 참조하여 전송된 공인인증서용 공개키를 사용자단말기(100)로 전송하며, 사용자단말기(100)는 전송되는 공인인증서용 공개키를 기반으로 공인인증을 수행하는 구성으로 이루어진다.
이와 같은, 구성을 통해, 다른 실시예에 따른 블록체인을 기반으로 하는 공인인증서 인증방법은 사용자단말기(100)에서 블록체인기반 공인인증서 인증요청서버(500)에 접속하여 블록체인기반 공인인증을 요청하는 단계(S600)와, 블록체인기반 공인인증서 인증요청서버(500)에서, 블록체인기반 공인인증 요청에 따라 회원별 사용자 식별정보 DB(511)에서 해당 사용자의 식별정보를 추출하고, 해시처리엔진(520)을 운영하여 그 추출된 사용자의 식별정보를 해싱연산하여 대비용 사용자 식별해시정보로 가공처리하며, 그 가공처리된 대비용 사용자 식별해시정보 및 해당 사용자의 지정 사용자 식별정보를 블록체인기반 공인인증서 관리서버(300)로 전송하는 단계(S610)와, 블록체인기반 공인인증서 관리서버(300)에서 대비용 사용자 식별해시정보 및 지정 사용자 식별정보를 전송받고, 그 전송된 정보 중 지정 사용자 식별정보를 사용자별 트랜잭션 검색 키워드정보 DB(311)와 매칭하여 매칭되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 블록체인 보유서버(400)로 전송하여 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보의 다운로드를 요청하는 단계(S620)와, 블록체인 보유서버(400)에서, 전송되는 공개키 기록용 트랜잭션 ID정보 및 사용자 검증용 트랜잭션 ID정보를 전자지갑과 매칭하여, 매칭되는 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보를 블록체인기반 공인인증서 관리서버(300)로 전송하는 단계(S630)와, 블록체인기반 공인인증서 관리서버(300)에서 트랜잭션처리엔진(320)을 운영하여, 전송된 공개키 기록용 트랜잭션정보 및 사용자 검증용 트랜잭션정보에서 공인인증서용 공개키 및 사용자 검증해시정보를 추출하는 단계(S670)와, 블록체인기반 공인인증서 관리서버(300)에서 해시처리엔진(330)을 운영하여, 전송된 대비용 사용자 식별해시정보와 사용자별 트랜잭션 검색 키워드정보 DB(311)에 저장된 공개키 기록용 트랜잭션 ID정보를 해싱연산하여 대비용 사용자 검증해시정보로 가공처리하는 단계(S680)와, 블록체인기반 공인인증서 관리서버(300)의 해시처리엔진(330)에서, 추출된 사용자 검증해시정보의 해시값과 가공처리된 대비용 사용자 검증해시정보의 해시값을 각각 연산하고, 그 연산된 양쪽의 해시값이 동일한지 확인하는 단계(S690)와, 추출된 사용자 검증해시정보의 해시값과 가공처리된 대비용 사용자 검증해시정보의 해시값이 동일한 경우 블록체인기반 공인인증서 관리서버(300)에서, 추출된 공인인증서용 공개키 및 해당 사용자의 지정 사용자 식별정보를 블록체인기반 공인인증서 인증요청서버(500)로 전송하는 단계(S700)와, 블록체인기반 공인인증서 인증요청서버(500)에서, 전송된 정보 중 지정 사용자 식별정보를 참조하여 전송된 공인인증서용 공개키를 상기 사용자단말기(100)로 전송하는 단계(S710)와, 사용자단말기(100)에서, 전송되는 공인인증서용 공개키를 기반으로 공인인증을 수행하는 단계(S720)로 이루어진다.
[부호의 설명]
100 : 사용자단말기 101 : 정보출력부
102 : 정보저장부 110 : 키생성엔진
120 : 암복호화엔진 130 : 트랜잭션 서명엔진
141 : 사용자 식별정보 입력화면 141a : 사용자 성명입력칸
141b : 사용자 생년월일 입력칸 141c : 사용자 전화번호 입력칸
141d : 사용자 이메일 입력칸 142 : 네트워크 차단안내화면
143 : 네트워크 차단표시화면 144 : 비밀번호 입력화면
144a,151a : 비밀번호 입력칸 145 : 이미지 선택화면
146 : 키생성 안내화면 147 : 네트워크 연결표시화면
148 : 발급완료 안내화면
151 : 인증수행용 비밀번호 입력화면
152 : 인증수행용 이미지 선택화면
200 : 블록체인기반 공인인증서 발급 요청 서버
210,310,510 : DB부
211,511 : 회원별 사용자 식별정보 DB 220,330,520 : 해시처리엔진
300 : 블록체인기반 공인인증서 관리서버
311 : 사용자별 트랜잭션 검색 키워드정보 DB
400 : 블록체인 보유서버
500 : 블록체인기반 공인인증서 인증요청서버