KR20210015534A - 보안키 관리 방법 및 보안키 관리 서버 - Google Patents

보안키 관리 방법 및 보안키 관리 서버 Download PDF

Info

Publication number
KR20210015534A
KR20210015534A KR1020190094543A KR20190094543A KR20210015534A KR 20210015534 A KR20210015534 A KR 20210015534A KR 1020190094543 A KR1020190094543 A KR 1020190094543A KR 20190094543 A KR20190094543 A KR 20190094543A KR 20210015534 A KR20210015534 A KR 20210015534A
Authority
KR
South Korea
Prior art keywords
key
store file
security
file
key store
Prior art date
Application number
KR1020190094543A
Other languages
English (en)
Other versions
KR102289478B1 (ko
Inventor
박진우
김진근
이문혁
이강희
Original Assignee
주식회사 티모넷
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 티모넷 filed Critical 주식회사 티모넷
Priority to KR1020190094543A priority Critical patent/KR102289478B1/ko
Priority to PCT/KR2020/010188 priority patent/WO2021025403A2/ko
Publication of KR20210015534A publication Critical patent/KR20210015534A/ko
Application granted granted Critical
Publication of KR102289478B1 publication Critical patent/KR102289478B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

보안키 관리 방법 및 이를 포함한 보안키 관리 서버를 제공한다. 본 보안키 관리 방법은, 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 하드웨어 보안 모듈로부터 보안키에 대응하는 키 블랍 및 인증값을 수신하고, 키 블랍 및 인증값을 포함하는 키 스토어 파일을 생성하고, 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하며, 키 스토어 파일 및 키 스토어 파일의 명칭을 하드웨어 보안 모듈이 아닌 다른 장치에 저장한다.

Description

보안키 관리 방법 및 보안키 관리 서버{System and method for providing electronic signature service}
보안키 관리 방법 및 보안키 관리 서버에 관한 것이다.
정보보호 및 인증기술에 있어서, 개인의 인증정보와 및 금융 거래를 위한 비밀번호 등의 정보를 하드웨어적으로 또한 암호학적으로 안전하게 관리하는 장치 및 시스템의 개발기술 필요성은 인터넷의 보급과 함께 제기되어 왔다.
비밀정보는 개인을 인증하고 본인이 직접 특정 행위를 한 것을 확인하는 수단이 되기 때문에, 만일 비밀 정보가 타인에게 노출된다면 행위자를 특정할 수 없어서 전체 금융거래 체계가 붕괴될 수 있으므로 매우 안전하게 관리되어야 한다.
이와 같은 고도의 보안성을 제공하기 위해, 하드웨어적으로 동시에 암호학적으로 안전한 관리시스템을 탑재한 하드웨어 보안 모듈(Hardware Secure Module, 이라는 개념이 소개되고 있다.
한편, 다양한 분야에서 하드웨어 보안 모듈 기술이 사용되지만, 하드웨어 보안 모듈의 하드웨어적 용량 때문에 저장할 수 있는 보안키의 개수가 제한될 수 있다.
본 실시예는, 보안키를 하드웨어 보안 모듈에 저장하지 않고 별도의 전용 파일을 생성하여 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하는 방법 및 그 서버를 제공한다.
일 실시예에 따른 보안키 관리 방법은, 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 수신하는 단계; 상기 소유자 정보 및 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 수신하는 단계; 상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하는 단계; 상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하는 단계; 및 상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하는 단계;를 포함한다.
그리고, 상기 키 스토어 파일은, 상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함할 수 있다.
또한, 상기 인증값은, 상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값일 수 있다.
그리고, 상기 키 스토어 파일의 명칭은 상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함할 수 있다.
또한, 상기 키 스토어 파일의 명칭은 2바이트 단위의 배타적 논리합한 값으로 그룹핑하여 저장될 수 있다.
그리고, 상기 스토어 파일을 생성하는 단계는, 상기 데이터베이스에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하는 단계; 및 상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면, 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트하는 단계;를 포함할 수 있다.
또한, 소유자 정보 및 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 상기 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 키 스토어 파일의 명칭을 상기 데이터베이스로부터 독출하는 단계; 상기 키 스토어 파일의 명칭에 매칭된 키 스토어 파일을 획득하는 단계; 상기 키 스토어 파일에 포함된 상기 인증값을 이용하여 상기 키 스토어 파일을 검증하는 단계; 상기 인증값에 대한 검증이 완료되면, 상기 키 스토어 파일로부터 키 블랍을 획득하는 단계; 및 상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신하는 단계;를 포함할 수 있다.
한편, 일 실시예에 따른 보안키 관리 서버는, 외부 기기 및 하드웨어 보안 모듈과 통신하는 통신부; 및 상기 통신부를 통해 상기 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 요청하고 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 획득하며, 상기 통신부를 통해 상기 소유자 정보 및 상기 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 요청하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 획득하고, 상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하고, 상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하며, 상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하는 파일 처리기;를 포함한다.
그리고, 상기 키 스토어 파일은, 상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함할 수 있다.
또한, 상기 인증값은, 상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값일 수 있다.
그리고, 상기 파일 처리기는, 상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함하도록 상기 키 스토어 파일의 명칭을 생성할 수 있다.
또한, 상기 파일 처리기는, 상기 키 스토어 파일의 명칭이 2바이트 단위의 배타적 논리합한 값으로 그룹핑되어 저장될 수 있다.
그리고, 상기 파일 처리기는, 상기 데이터베이스에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하고, 상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트할 수 있다.
또한, 상기 파일 처리기는, 상기 통신부를 통해 상기 소유자 정보 및 상기 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 상기 키 스토어 파일을 획득하고, 상기 키 스토어 파일로부터 상기 키 블랍을 획득하며, 상기 통신부를 통해 상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 히드웨어 보안 모듈에 전송하여 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신할 수 있다.
실시예들에 따르면, 보안키를 하드웨어 보안 모듈에 저장하지 않고 별도의 전용 파일을 생성하여 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하기 때문에 하드웨어 보안 모듈을 하드웨어적 용량에 제한없이 이용할 수 있다.
또한, 관리 서버는 키 스토어 파일 뿐만 아니라 키 스토어 파일의 명칭을 생성하여 저장하기 때문에 외부 기기로부터 사용자 정보를 수신하면 키 스토어 파일의 명칭을 이용하여 필요시마다 키 스토어 파일을 독출하기 때문에 파일 처리 속도가 빨라질 수 있다.
도 1은 예시적인 실시예에 따른 보안키 관리 시스템을 나타낸 도면이다.
도 2는 도 1에 도시된 하드웨어 보안 모듈을 나타내는 블록도이다.
도 3은 도 1에 도시된 관리 서버는 나타내는 블록도이다.
도 4는 일 실시예에 따른 관리 시스템에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다.
도 5는 일 실시예에 따른 키 스토어 파일의 형식을 나타내는 참조도면이다.
도 6은 일 실시예에 따른 키 스토어 파일의 명칭의 예를 나타내는 참조도면이다.
도 7은 일 실시예에 따른 관리 시스템이 보안키를 이용하는 방법을 설명하는 흐름도이다.
도 8은 다른 실시예에 따른 관리 시스템에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다.
도 9은 일 실시예에 따른 복수 개의 보안키 관련 정보를 포함하는 키 스토어 파일을 나타내는 참조도면이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
비록 제1, 제2 등의 용어가 다양한 요소들을 서술하기 위해서 사용되지만, 이 요소들은 이러한 용어에 의해 제한되지 않는다. 이러한 용어들은 단지 하나의 요소를 다른 요소와 구별하기 위하여 사용하는 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
도 1은 예시적인 실시예에 따른 보안키 관리 시스템(10)을 나타낸 도면이다.
도 1을 참조하면, 일 실시예에 따른 보안키 관리 시스템(10)은 보안키 및 보안키에 대응하는 키 블랍(blob)을 생성하는 하드웨어 보안 모듈(100), 하드웨어 보안 모듈(100)로부터 키 블랍을 수신하여 키 블랍을 포함하는 키 스토어 파일 및 키 스토어 파일의 명칭을 생성하는 보안키 관리 서버(200)(이하 '관리 서버'라고 칭한다) 및 상기한 키 스토어 파일의 명칭을 저장하는 데이터베이스(300)를 포함할 수 있다.
하드웨어 보안 모듈(100) 및 데이터베이스(300)는 관리 서버(200)와만 통신할 뿐 직접 외부 기기(400)와 통신하지 않음으로써 하드웨어 보안 모듈(100)의 보안이 강화될 수 있다. 외부 기기(400)는 보안키와 관련된 요청 신호를 관리 서버(200)에 전송하고, 그 결과를 관리 서버(200)로부터 수신할 수 있다. 여기서, 외부 기기(400)는 사용자 단말, 은행 서버, 공공 기관에 의해 운영되는 서버, 전자 상거래 서비스를 제공하는 서버 등 다양할 수 있다.
도 2는 도 1에 도시된 하드웨어 보안 모듈(100)을 나타내는 블록도이다. 도 2를 참조하면, 하드웨어 보안 모듈(100)은, 관리 서버(200)과 통신하는 제1 통신부(110), 보안키 등을 생성하는 키 처리기(120) 및 보안키를 데이터에 적용하는 데이터 처리기(130)를 포함할 수 있다.
키 처리기(120)는 제1 통신부(110)를 통해 관리 서버(200)로부터 보안키 생성 요청 신호를 수신받아 보안키를 생성할 수 있다. 상기한 보안키 생성 요청 신호는 보안키의 소유자 정보, 보안키의 종류, 보안키와 관련된 데이터의 종류 등의 정보가 포함될 수 있다. 상기한 보안키는 보안키 생성 요청 신호에 기초하여 난수발생기(RNG)를 통하여 생성되며 다수의 보안키가 생성될 수 있다. 보안키는 다양한 방식으로 생성 가능하다. 예를 들어, 소인수분해 암호 방식 시스템이나 타원곡선 암호 시스템에 의해 보안키 생성이 가능하다. 여기서 보안키는 인증용 키, 암호화용 키, 복호화용 키 등일 수 있으며, 개인키, 공개키 등일 수 있다.
키 처리기(120)는 생성된 보안키를 키 블랍(blob: binary large object)으로 변환시키거나, 제1 통신부(110)를 통해 수신된 키 블랍을 보안키로 변환시킬 수도 있다. 키 블랍 생성시, 키 처리기(120)는 보안키에 특정 데이터를 부가할 수 있다. 이외에도 키 처리기(120)는 하드웨어 보안 모듈(100)에 기저장된 마스터키를 기초로 유도키를 생성할 수도 있고, 유도키를 이용하여 후술하는 키 스토어 파일을 인증하기 위한 인증값을 생성할 수도 있다.
데이터 처리기(130)는 관리 서버(200)의 요청에 따라 보안키를 이용하여 데이터를 암호 또는 복호화하거나, 보안키를 이용하여 데이터에 서명한 서명 데이터를 생성할 수 있다. 데이터 처리기(130)는 SEED, ARIA, RSA, DES, MD5, DSS, SHA 등과 같은 다양한 암/복호화 알고리즘 등이 사용될 수 있다.
상기와 같은 구성에 의해 하드웨어 보안 모듈(100)은 내부에 자체적으로 보안키를 생성하고 이를 바탕으로 데이터를 암/복호화할 수 있다. 상기한 하드웨어 보안 모듈(100)은 어떠한 방법으로도 내부에서 생성된 보안키를 추출할 수 없고, 만일 물리적인 방법으로 데이터를 추출하고자 한다면 자체적으로 데이터를 소멸시키는 등의 안전장치가 하드웨어 보안 모듈(100)에 더 포함될 수 있다.
도 3은 도 1에 도시된 관리 서버(200)는 나타내는 블록도이다. 도 3에 도시된 바와 같이, 관리 서버(200)는 하드웨어 보안 모듈(100) 및 외부 기기(400)과 통신하는 제2 통신부(210), 외부 기기(400)의 요청에 따라 하드웨어 보안 모듈(100)에 보안키 생성을 요청하거나, 하드웨어 보안 모듈(100)로부터 수신된 보안키에 대응하는 키 블랍을 포함하는 키 스토어 파일 등을 생성하는 파일 처리기(220) 및 키 스토어 파일을 저장하는 저장부(230)를 포함할 수 있다.
다음은 관리 서버(200)가 키 스토어 파일을 생성하고 이용하는 방법에 대해 구체적으로 설명한다.
도 4는 일 실시예에 따른 관리 시스템(10)에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다.
관리 서버(200)가 외부기기로부터 보안키 생성을 요청받으면(S410), 관리 서버(200)는 하드웨어 보안 모듈(100)에 보안키 생성을 요청한다(S415). 보안키 생성 요청에 따라 하드웨어 관리 서버(200)는 보안키를 생성하고, 상기한 보안키에 대응하는 키 블랍을 생성하며, 키 블랍을 관리 서버(200)에 전송할 수 있다(S420). 상기한 보안키 생성 요청 신호에는 보안키의 소유자 정보, 보안키의 종류, 보안키와 관련된 데이터의 종류 등의 정보가 포함될 수 있다. 보안키는 인증용 키, 암호화용 키, 복호화용 키 등일 수 있으며, 개인키, 공개키 등일 수 있다. 상기한 키 블랍은 보안키 이외의 데이터가 더 부가될 수 있다.
또한, 관리 서버(200)의 파일 처리기(220)은 키 블랍을 포함하는 키 스토어 파일의 일부를 생성한다(S430). 상기한 키 스토어 파일은 보안키의 소유자 정보를 포함하는 헤드 영역, 키 블랍을 포함하는 바디 영역 및 인증값을 포함하는 보호 영역을 포함할 수 있다.
헤드 영역에 포함된 소유자 정보는 외부 기기(400)로부터 수신된 정보일 수 있다. 외부 기기(400)로부터 수신된 보안키 생성 요청 신호에는 소유자 정보가 포함될 수 있다. 또는 관리 서버(200)는 외부 기기(400)(예를 들어, 사용자 단말)에 소유자 정보를 요청하는 신호를 전송하고, 외부 기기(400)로부터 소유자 정보를 수신할 수 있다. 상기한 소유자 정보는 보안키를 소유할 소유자를 식별하는 정보로서, 소유자가 설정한 비밀번호, 생체 정보, 핸드폰 번호, 이메일 주소, CI, 주민등록 번호 등일 수 있다.
헤드 영역에는 키 스토어 파일에 대한 버전 정보, 키 스토어 파일이 마지막으로 업데이트된 일시(날짜 및 시간)에 대한 정보, 하드웨어 관리 서버(200)에서 생성된 보안키의 개수에 대한 정보 중 적어도 하나를 더 포함할 수 있다.
바디 영역에는 키 블랍이 포함될 수 있다. 이외에도 바디 영역에는 키 알리아스(Alias) 를 더 포함될 수 있다. 키 알리아스는 보안키를 식별하기 위한 정보로서, 관리 서버는 임의의 값으로 키 알리아스를 생성할 수 도 있고, 키 블랍을 기초로 생성할 수 있다. 상기한 키 알리아스는 각 키 블랍에 대한 유일한 값일 수 있다. 생성된 키 알리아스는 키 스토어 파일의 바디 영역에 포함시킬 수 있다.
또한, 바디 영역에는 키 블랍을 해시 함수로 암호화한 키 블랍의 해시값을 더 포함할 수 있다. 파일 처리기(220)는 키 블랍과 소유자 정보를 해시 함수로 암호화하여 키 블랍의 해시값을 생성할 수 있다.
관리 서버(200)의 파일 처리기(220)는 외부 기기(400)로부터 수신된 정보 및 하드웨어 보안 모듈(100)로부터 수신된 정보를 이용하여 키 스토어 파일의 헤드 영역 및 바디 영역을 생성할 수 있다.
관리 서버(200)의 파일 처리기(220)은 제2 통신부(210)을 통해 키 스토어 파일의 변조 여부를 확인하기 위한 인증값을 하드웨어 보안 모듈에 요청하고(S435), 하드웨어 보안 모듈로부터 상기한 인증값을 수신할 수 있다(S440). 인증값 요청시 관리 서버(200)는 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보를 하드웨어 보안 모듈(100)에 제공할 수 있다.
인증값 생성을 요청받은 하드웨어 보안 모듈(100)의 키 처리기(120)는 소유자 정보 및 하드웨어 보안 모듈(100)에 기저장된 마스터키를 이용하여 유도키를 생성하고, 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보 및 상기한 유도키를 이용하여 인증값을 생성할 수 있다. 예를 들어, 키 처리기(120)는 유도키 생성시 암호 알고리즘을 이용할 수 있고, HMAC 알고리즘을 인증값을 생성할 수 있으나, 이에 한정되지 않는다. 키 처리기(120)는 인증값 생성을 위한 다른 알고리즘을 적용할 수 있음도 물론이다. 하드웨어 보안 모듈(100)은 생성된 인증값을 관리 서버(200)에 전송함으로써 관리 서버(200)는 인증값을 획득할 수 있다.
그리고, 파일 처리기(220)는 키 스토어 파일의 보호 영역에 상기한 인증값을 포함시킴으로써 키 스토어 파일을 완성할 수 있다(S450). 파일 처리기(220)는 키 스토어 파일의 완성시 키 스토어 파일의 헤드 영역의 최종 업데이트 일시를 업데이트할 수 있다.
도 5는 일 실시예에 따른 키 스토어 파일의 형식을 나타내는 참조도면이다. 도 5에 도시된 바와 같이, 키 스토어 파일은 헤드 영역(510), 바디 영역(520) 및 보호 영역(530)을 포함할 수 있다. 헤드 영역(510)은 키 스토어 파일에 대한 버전 정보, 키 스토어 파일이 최종 업데이트된 일시에 대한 정보, 소유자 정보, 키의 개수에 대한 정보 중 적어도 하나를 포함할 수 있다. 버전 정보, 키의 개수에 대한 정보는 숫자로 표시될 수 있고, 소유자 정보는 비트 스트링으로 표시될 수 있다.
바디 영역(520)에는 보안키에 대응하는 구체적인 정보가 포함될 수 있다. 보안키 당 키 알리아스, 키 블랍의 해시값 및 키 블랍이 저장될 수 있다. 하드웨어 보안 모듈(100)이 하나의 소유자에 대해 복수 개의 보안키를 생성한 경우, 바디 영역에는 각 보안키에 대응하는 키 블랍, 키 알리아스, 키 블랍의 해시값이 각각 포함될 수 있다. 즉, 하나의 소유자에 대해 보안키가 복수 개라 할지라도 관리 서버(200)는 하나의 키 스토어 파일을 생성하는 바, 키 스토어 파일의 관리가 편리해진다.
그리고, 보호 영역(530)에는 하드웨어 보안 모듈이 생성한 인증값이 포함될 수 있다.
또한, 파일 처리기(220)는 키 스토어 파일에 매칭할 키 스토어 파일의 명칭을 생성할 수 있다(S460). 관리 서버(200)는 키 스토어 파일의 개수가 증가하더라도 키 스토어 파일의 명칭이 중복되지 않도록 명칭을 부여할 수 있다. 예를 들어, 파일 처리기(220)는 보안키의 소유자 정보로부터 유도된 값, 키 스토어 파일이 최초 생성된 일시를 포함하여 키 스토어 파일의 명칭을 생성할 수 있다. 예를 들어, 파일 처리기(220)는 보안키의 소유자 정보에 대한 해시값을 16진수의 문자열로 표현하고, 키 스토어 파일의 최초 생성된 연도, 달, 일자, 시간, 분 및 초를 문자열로 표현함으로써 키 스토어 파일의 명칭을 생성할 수 있다. 보안키의 소유자 정보는 키 소유자의 휴대폰 번호, 이메일 주소, CI 또는 주민등록 번호로서 소유자를 식별할 수 있는 정보일 수 있다. 도 6은 일 실시예에 따른 키 스토어 파일의 명칭의 예를 나타내는 참조도면이다. 도 6에 도시된 바와 같이, 키 스토어 파일의 앞단은 소유자 정보에 대한 해시값을 16진수의 문자열로 표현되고, 중간단은 키 스토어 파일의 최초 생성된 연도, 달, 일자, 시간, 분 및 초로 표현되며, 후단은 키 스토어 파일의 확장자 명으로 표현될 수 있다.
뿐만 아니라, 파일 처리기(220)는 키 스토어 파일 및 키 스토어 파일의 명칭과 매칭할 키 스토어 파일의 히스토리도 생성할 수 있다(S470). 파일 처리기(220)는 키 스토어 파일을 생성, 삭제, 또는 변경할 때마다 키 스토어 파일의 히스토리를 생성 또는 업데이트할 수 있다. 파일 처리기(220)는 히스토리의 일련 번호, 즉, 히스토리가 생성될 때마다 업데이트되는 번호, 키 스토어 파일의 명칭, 키 스토어 파일을 이용한 일시(접근 일시), 키 스토어 파일을 이용한 형태(예를 들어, 키 스토어 파일의 생성, 삭제, 키 블랍 추가, 키 블랍 삭제, 키 블랍 이용 등등), 이용된 키 블랍에 대응하는 키 알라이스, 키 스토어 파일의 인증값, 히스토리 업데이트하기 직전의 키 스토어 파일의 히스토리에 대한 해시값, 히스토리 업데이트하기 직후의 키 스토어 파일의 히스토리에 대한 해시값, 키 스토어 파일의 히스토리를 생성한 일시 중 적어도 하나를 포함할 수 있다. 상기한 키 스토어 파일의 히스토리는 키 스토어 파일의 접근에 대한 감사 목적으로 이용될 수 있다.
파일 처리기(220)는 키 스토어 파일, 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리를 보안키를 생성한 하드웨어 보안 모듈(100)이 아닌 다른 데이터베이스에 저장할 수 있다(S475, S480). 예를 들어, 파일 처리기(220)는 키 스토어 파일을 관리 서버(200)의 저장부(230)에 저장하고(S475), 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리, 키 스토어 파일의 디렉토리 정보를 서로 매칭시켜 데이터베이스(300)에 저장할 수 있다(S480). 상기한 디렉토리 정보는 키 스토어 파일이 저장된 저장부(230)의 디렉토리 정보일 수 있다.
파일 처리기(220)는 키 스토어 파일의 명칭에 포함된 소유자 정보로부터 유도된 값을 2 바이트 단위로 배타적 논리합하고, 배타적 논리합한 값으로 그룹핑하여 키 스토어 파일의 명칭을 저장하고, 상기한 명칭에 대응하는 키 스토어 파일 및 키 스토어 파일의 히스토리를 매칭시켜 저장할 수 있다. 키 스토어 파일의 명칭을 그룹핑하여 저장함으로써 데이터베이스를 관리하는데 용이할 수 있다.
또는 파일 처리기(220)는 보안키의 용도별, 상기한 보안키와 관련된 서비스 별로, 키 스토어 파일의 명칭을 그룹핑하고, 그룹핑된 키 스토어 파일의 명칭을 다시 배타적 논리합한 값으로 그룹핑하여 저장할 수 도 있다. 상기와 같이, 복수 개의 단계로 키 스토어 파일의 명칭을 저장하기 때문에 키 스토어 파일의 명칭 독출이 용이해진다.
도 4에서는 키 스토어 파일은 관리 서버(200)의 저장부(230)에 저장하고 키 스토어 파일의 명칭을 데이터베이스(300)에 저장한다고 하였다. 상기와 같이 키 스토어 파일과 키 스토어 파일의 명칭을 서로 다른 저장장치에 저장하는 이유는 보다 안전하게 보안하기 위함이고 이에 한정되지 않는다. 키 스토어 파일도 데이터베이스(300)에 저장할 수 있음은 물론이다. 또는 키 스토어 파일의 명칭 및 키 스토어 파일도 관리 서버(200)에 포함된 저장부 또는 데이터베이스에 저장할 수 있음도 물론이다. 즉, 키 스토어 파일의 명칭 및 키 스토어 파일은 하드웨어 보안 모듈이 아닌 다른 장치에 저장한다.
도 4에서 보안키 생성에 대해 설명하였으나, 이에 한정되지 않는다. 관리 서버(200)는 외부 기기(400) 로부터 보안키 주입 요청을 수신할 수도 있다. 상기한 보안키 주입 요청에는 보안키가 포함될 수 있다. 관리 서버(200)는 상기한 보안키 주입 요청을 하드웨어 보안 모듈(100)에 전송하고, 하드웨어 보안 모듈(100)로부터 보안키에 대응하는 키 블랍을 수신할 수 있다. 이후 관리 서버(400)는 주입된 보안키에 대한 키 스토어 파일, 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리를 생성할 수 있다. 상기한 키 스토어 파일, 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리를 생성은 S430 내지 S480 과 동일한 바 구체적인 설명은 생략한다.
도 7은 일 실시예에 따른 관리 시스템(10)이 보안키를 이용하는 방법을 설명하는 흐름도이다.
도 7을 참조하면, 외부 기기(400)로부터 제1 키 이용 요청을 수신하면(S710), 관리 서버(200)는 소유자 정보를 기초로 데이터베이스(300)으로부터 키 스토어 파일의 명칭을 독출하고(S720), 키 스토어 파일의 명칭을 이용하여 키 스토어 파일을 획득할 수 있다(S730). 외부기기(400)가 관리 서버(200)에 전송하는 키 이용 요청을 제1 키 이용 요청이라고 하고, 관리 서버(200)가 하드웨어 보안 모듈(100)에 전송하는 키 이용 요청 신호를 제2 키 이용 요청이라고 칭할 수 있다.
구체적으로, 외부 기기(400)로부터 보안키의 소유자 정보 및 보안키가 적용될 데이터를 포함하는 제1 키 이용 요청을 수신되면, 관리 서버(200)의 파일 처리기(220)는 제2 통신부(210)을 통해 데이터베이스(300)로부터 보안키의 소유자 정보를 포함하는 키 스토어 파일의 명칭을 독출할 수 있다. 데이터베이스(300)에 키 스토어 파일의 명칭뿐만 아니라 키 스토어 파일의 히스토리 및 키 스토어 파일의 디렉토리도 함께 매칭되어 저장된 경우, 파일 처리기(220)는 제2 통신부(210)을 통해 키 스토어 파일의 명칭에 매칭된 키 스토어 파일의 히스토리 및 키 스토어 파일의 디렉토리를 데이터베이스(300)로부터 독출함으로써 획득할 수 있다.
그리고, 파일 처리기(220)는 상기한 디렉토리 정보를 이용하여 저장부(230)으로부터 키 스토어 파일의 명칭에 매칭된 키 스토어 파일을 획득할 수 있다.
관리 서버(200)는 하드웨어 보안 모듈(100)을 이용하여 키 스토어 파일을 검증할 수 있다(S740). 예를 들어, 관리 서버(200)의 파일 처리기(220)은 제2 통신부(210)을 통해 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보를 하드웨어 보안 모듈(100)에 제공하면서 인증값을 요청할 수 있다. 하드웨어 보안 모듈(100)은 키 스토어 파일의 헤드 영역에 포함된 소유자 정보와 및 하드웨어 보안 모듈(100)에 기저장된 마스터키를 이용하여 유도키를 생성하고, 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보 및 상기한 유도키를 이용하여 인증값을 생성할 수 있다. 하드웨어 보안 모듈(100)은 생성된 상기한 인증값을 관리 서버(200)에 전송하고, 관리 서버(200)는 하드웨어 보안 모듈(100)로부터 수신된 인증값과 키 스토어 파일에 포함된 인증값을 비교함으로써 키 스토어 파일을 검증할 수 있다.
뿐만 아니라, 관리 서버(200)는 보안키의 소유자를 검증할 수 있다(S760). 예를 들어, 관리 서버(200)는 외부 기기(400)(예를 들어, 사용자 단말)에 소유자 확인을 위한 요청 신호를 송신하고, 외부 기기(400)로부터 그 결과를 수신할 수 있다. 그리고, 관리 서버(200)는 키 스토어 파일에 포함된 소유자 정보와 외부 기기(400)로부터 수신된 결과를 비교함으로써 소유자를 검증할 수 있다. 이외에도 임시키를 이용하여 소유자을 검증할 수도 있다.
도 7에서는 키 스토어 파일을 검증한 후 소유자를 검증한다고 하였으나, 이에 한정되지 않는다. 소유자를 검증한 후 키 스토어 파일을 검증할 수도 있다. 관리 서버(200)는 키 스토어 파일과 소유자의 검증을 동시에 할 수도 있다.
키 스토어 파일 및 소유자 검증이 완료된 후, 관리 서버(200)의 파일 처리기(220)는 키 스토어 파일에 포함된 키 블랍을 획득할 수 있다(S760). 키 블랍을 획득할 때에도 파일 처리기(220)는 키 블랍의 해시값을 이용하여 키 블랍을 검증할 수 있다. 예를 들어, 파일 처리기(220)는 키 스토어 파일의 헤드 영역에 포함된 보안키의 소유자 정보와 키 스토어 파이의 바디 영역에 포함된 키 블랍을 이용하여 키 블랍의 해시값을 생성한 후, 생성한 키 블랍 해시값과 키 스토어 파일에 포함된 키 블랍 해시값을 비교함으로써 키 블랍을 검증할 수 있다. 생성된 키 블랍 해시값과 기저장된 키 블랍 해시값이 동일한 경우, 검증이 완료된 것으로 한다.
한편, 키 스토어 파일에 다수의 키 블랍의 포함된 경우, 관리 서버(200)는 사용하고자 하는 키 알리아스와 일치하는 키 블랍만을 획득할 수 있다.
이후 관리 서버(200)는 제2 키 이용 요청 신호를 하드웨어 보안 모듈(100)에 전송하고(S770), 하드웨어 보안 모듈(100)보안키가 적용된 데이터를 수신할 수 있다(S780). 키 이용 요청 신호에는 보안키가 적용될 대상인 데이터 및 키 블랍이 포함될 수 있다. 하드웨어 보안 모듈(100)의 키 처리기(120)는 키 블랍을 보안키로 변환시켜 데이터 처리기(130)에 전달할 수 있다. 그리고, 하드웨어 보안 모듈(100)의 데이터 처리기(130)는 변환된 보안키를 데이터에 적용하고, 그 결과를 관리 서버(200)에 전송할 수 있다. 상기한 데이터가 인증을 위한 데이터인 경우, 데이터 처리기(130)는 보안키로 데이터에 서명한 서명 데이터를 생성하고, 서명 데이터를 관리 서버(200)에 전송할 수 있다. 관리 서버(200)로부터 수신된 데이터가 암호화 또는 복호화를 위한 데이터인 경우, 데이터 처리기(130)는 키 블랍으로부터 변환된 보안키로 데이터를 암호화 또는 복호화하여 암호화한 데이터 또는 복호화한 데이터를 생성할 수 있고, 그 결과를 관리 서버(200)에 전송할 수 있다.
상기와 같이, 보안키에 대응하는 별도의 키 스토어 파일을 생성하여 하드웨어 보안 모듈(100)이 아닌 다른 기기에 저장함으로써 하드웨어 보안 모듈(100)의 용량을 무제한으로 확장할 수 있다.
또한, 하나의 키 스토어 파일에는 복수 개의 보안키에 대응하는 복수 개의 키 블랍이 포함될 수 있는 바, 소유자별 보안키의 관리가 용이해진다. 또한, 복수 개의 관리 서버가 존재하더라도 하드웨어 보안 모듈 이외의 장치에 키 스토어 파일이 저장되어 있기 때문에 키 블랍을 공유할 수 있다.
도 8은 다른 실시예에 따른 관리 시스템에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다. 외부기기로부터 보안키 생성을 요청받으면(S810), 관리 서버(200)의 파일 처리기(220)는 보안키 생성을 요청한 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있는지 여부를 판단한다(S820). 예를 들어, 관리 서버(200)는 키 생성 요청 신호에 포함된 보안키의 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일의 명칭이 기저장되어 있는지 여부를 판단한다. 키 스토어 파일이 명칭이 기저장되어 있으면 동일한 소유자의 키 스토어 파일이 기저장되어 있는 것으로 결정할 수 있다.
키 스토어 파일이 기저장되어 있으면(S820-YES) 관리 서버(200)의 파일 처리기(220)는 생성을 요청받은 보안키가 기생성되었는지 여부를 결정할 수 있다(S830).
보안키가 기생성된 것으로 판단되면(S830-YES), 관리 서버(200)의 파일 처리기(220)은 보안키 생성이 필요 없음을 알라는 신호를 외부 기기(400)에 전송할 수 있다(S840).
보안키가 기생성되지 않은 것으로 판단되면(S840-NO), 관리 서버(200)는 하드웨어 보안 모듈(100)에 제3 키 생성을 요청한다(S845). 키 스토어 파일이 기저장되었다고 함은 이전에 특정 타입의 보안키가 기생성되었음을 의미하는 바, 기생성된 보안키를 제1 키라고 칭하고, 도 8에서 생성 요청을 하는 보안키를 제3 키라고 칭할 수 있다.
제3 키 생성 요청에 따라 하드웨어 관리 서버(200)는 제3 키를 생성하고, 상기한 제3 키에 대응하는 제3 키 블랍을 생성하며, 제3 키 블랍을 관리 서버(200)에 전송할 수 있다(S850). 보안키는 암호용 키일 수도 있고, 인증용 키일 수도 있다.
또한, 관리 서버(200)는 키 스토어 파일에 제3 키 블랍을 추가함으로써 키 스토어 파일을 업데이트할 수 있다(S860)
상기한 키 스토어 파일은 보안키의 소유자 정보를 포함하는 헤드 영역, 키 블랍을 포함하는 바디 영역 및 인증값을 포함하는 보호 영역을 포함할 수 있다.
제3 키 블랍을 추가할 때, 파일 처리기(220)는 키 스토어 파일의 헤드 영역, 바디 영역 및 보호 영역을 업데이트할 수 있다. 예를 들어, 파일 처리기(220)는 헤드 영역의 키 스토어 파일이 마지막으로 업데이트된 일시(날짜 및 시간)에 대한 정보, 하드웨어 관리 서버(200)에서 생성된 보안키의 개수에 대한 정보 등을 업데이트할 수 있다.
파일 처리기(220)는 바디 영역에 제3 키에 대응하는 제3 키 알리아스(Alias), 제3 키 블랍 및 제3 키 블랍을 해시 함수로 암호화한 제3 키 블랍의 해시값을 추가할 수 있다.
또한, 관리 서버(200)의 파일 처리기(220)는 키 스토어 파일의 변조 여부를 확인하기 위한 인증값을 하드웨어 모듈을 이용하여 업데이트할 수 있다. 구체적으로, 관리 서버(200)는 하드웨어 보안 모듈(100)에 인증값을 요청할 수 있다. 인증값 요청시 관리서 서버는 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보를 하드웨어 보안 모듈(100)에 제공할 수 있다.
하드웨어 보안 모듈(100)의 키 처리기(120)는 키 소유자 정보 및 하드웨어 보안 모듈(100)에 기저장된 마스터키를 이용하여 유도키를 생성하고, 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보 및 유도키를 이용하여 인증값을 생성할 수 있다. 예를 들어, 키 처리기(120)는 ENC 알고리즘을 이용하여 유도키를 생성할 수 있고, HMAC 알고리즘을 이용하여 인증값을 생성할 수 있으나, 이에 한정되지 않는다. 키 처리기(120)는 인증값 생성을 위한 다른 알고리즘을 적용할 수 있음도 물론이다. 하드웨어어 보안 모듈은 생성된 인증값을 관리 서버(200)에 전송함으로서 관리 서버(200)는 인증값을 획득할 수 있다.
그리고, 파일 처리기(220)는 키 스토어 파일의 보호 영역에 상기한 인증값을 포함시킴으로써, 관리 서버(200)는 키 스토어 파일의 업데이트를 완성할 수 있다. 파일 처리기(220)는 키 스토어 파일의 완성시 키 스토어 파일의 헤드 영역의 최종 업데이트 일시를 업데이트할 수 있다.
뿐만 아니라 파일 처리기(220)는 키 스토어 파일의 히스토리도 업데이트할 수 있다(S870). 파일 처리기(220)는 키 스토어 파일을 생성, 삭제, 또는 변경할 때마다 키 스토어 파일의 히스토리를 생성 또는 업데이트할 수 있다. 파일 처리기(220)는 히스토리의 일련 번호, 즉, 히스토리가 생성될 때마다 업데이트되는 번호, 키 스토어 파일의 명칭, 키 스토어 파일을 이용한 일시(접근 일시), 키 스토어 파일을 이용한 형태(예를 들어, 키 스토어 파일의 생성, 삭제, 키 블랍 추가, 키 블랍 삭제, 키 블랍 이용 등등), 키 알라이스, 키 스토어 파일의 인증값, 히스토리 생성하기 직전의 키 스토어 파일의 히스토리에 대한 해시값, 히스토리 생성이후에 생성된 키 스토어 파일의 히스토리에 대한 해시값, 키 스토어 파일이 히스토리를 생성한 일시 중 적어도 하나를 포함할 수 있다. 상기한 키 스토어 파일의 히스토리는 키 스토어 파일의 접근에 대한 감사 목적으로 이용될 수 있다.
파일 처리기(220)는 업데이트된 키 스토어 파일을 저장부(230)에 저장하고(S875), 업데이트된 키 스토어 파일의 히스토리를 데이터베이스(300)에 저장할 수 있다(S880).
도 9은 일 실시예에 따른 복수 개의 보안키 관련 정보를 포함하는 키 스토어 파일을 나타내는 참조도면이다. 도 9를 참조하면, 키 스토어 파일의 바디 영역에는 제1 보안키에 대응하는 제1 키 알리아스, 제1 키 블랍의 해시값 및 제1 키 블랍과, 제2 보안키에 대응하는 제2 키 알리아스, 제2 키 블랍의 해시값 및 제2 키 블랍이 포함되어 있다. 그리하여, 하나의 키 스토어 파일에 복수 개의 보안키에 대한 정보를 포함시킬 수 있어, 보안키의 관리가 용이해진다.
관리 서버(200)는 하나의 하드웨어 보안 모듈(100)을 이용하여 키 스토어 파일을 생성하는 방법에 대해 설명하였다. 그러나, 이에 한정되지 않는다. 복수 개의 관리 서버(200)가 하나의 하드웨어 보안 모듈(100)을 이용하여 키 스토어 파일을 생성 및 이용할 수도 있다.
예를 들어, 관리 서버가 제1 및 제2 관리 서버를 포함하는 경우, 키 스토어 파일이 제1 관리 서버에 저장되어 있고, 제2 관리 서버가 외부 기기로부터 보안키 생성 또는 보안키 이용을 요청받으면, 제2 관리 서버는 데이터베이스로부터 독출된 키 스토어 파일의 명칭으로부터 키 스토어 파일이 제1 관리 서버에 저장되었음을 확인할 수 있다. 그리고, 제2 관리 서버는 제1 관리 서버로부터 키 스토어 파일을 수신받거나 제1 관리 서버에 보안키 생성 또는 보안키 이용을 요청함으로써 런타임 보안키 동기화를 가능하게 할 수 있다.
지금까지 기술한 보안키와 관련된 키 스토어 파일을 생성하는 보안키 관리 서버(200)는 하나의 하드웨어 장치로 구현될 필요는 없다. 기능에 따라 분리된 서버들의 조합일 수도 있다. 예를 들어, 보안키 관리 서버(200)는 키 스토어 파일을 생성하는 서버, 키 스토어 파일을 인증하는 서버 등의 조합일 수도 있다. 한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (14)

  1. 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 수신하는 단계;
    상기 소유자 정보 및 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 수신하는 단계;
    상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하는 단계;
    상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하는 단계; 및
    상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 장치에 저장하는 단계;를 포함하는 보안키 관리 방법.
  2. 제 1항에 있어서,
    상기 키 스토어 파일은,
    상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함하는 보안키 관리 방법.
  3. 제 2항에 있어서,
    상기 인증값은,
    상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값인 보안키 관리 방법.
  4. 제 1항에 있어서,
    상기 키 스토어 파일의 명칭은
    상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함하는 보안키 관리 방법.
  5. 제 1항에 있어서,
    상기 키 스토어 파일의 명칭은
    2바이트 단위의 배타적 논리합한 값으로 그룹핑하여 저장되는 보안키 관리 방법.
  6. 제 1항에 있어서,
    상기 스토어 파일을 생성하는 단계는,
    상기 다른 장치에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하는 단계; 및
    상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면, 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트하는 단계;를 포함하는 보안키 관리 방법.
  7. 제 1항에 있어서,
    소유자 정보 및 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 상기 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 키 스토어 파일의 명칭을 상기 다른 장치로부터 독출하는 단계;
    상기 키 스토어 파일의 명칭에 매칭된 키 스토어 파일을 획득하는 단계;
    상기 키 스토어 파일에 포함된 상기 인증값을 이용하여 상기 키 스토어 파일을 검증하는 단계
    상기 인증값에 대한 검증이 완료되면, 상기 키 스토어 파일로부터 키 블랍을 획득하는 단계;
    상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신하는 단계;를 포함하는 관리 방법.
  8. 외부 기기 및 하드웨어 보안 모듈과 통신하는 통신부; 및
    상기 통신부를 통해 상기 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 요청하고 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 획득하며,
    상기 통신부를 통해 상기 소유자 정보 및 상기 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 요청하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 획득하고
    상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하고, 상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하며, 상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 장치에 저장하는 파일 처리기;를 포함하는 보안키 관리 서버.
  9. 제 8항에 있어서,
    상기 키 스토어 파일은,
    상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함하는 보안키 관리 서버.
  10. 제 9항에 있어서,
    상기 인증값은,
    상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값인 보안키 관리 서버.
  11. 제 8항에 있어서,
    상기 파일 처리기는,
    상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함하도록 상기 키 스토어 파일의 명칭을 생성하는 보안키 관리 서버.
  12. 제 8항에 있어서,
    상기 파일 처리기는,
    상기 키 스토어 파일의 명칭이 2바이트 단위의 배타적 논리합한 값으로 그룹핑되어 저장되도록 하는 보안키 관리 서버.
  13. 제 8항에 있어서,
    상기 파일 처리기는,
    상기 다른 장치에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하고, 상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트하는 보안키 관리 서버.
  14. 제 7항에 있어서,
    상기 파일 처리기는,
    상기 통신부를 통해 상기 소유자 정보 및 상기 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 상기 키 스토어 파일을 획득하고, 상기 키 스토어 파일로부터 상기 키 블랍을 획득하며,
    상기 통신부를 통해 상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 히드웨어 보안 모듈에 전송하여 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신하는 보안키 관리 서버.
KR1020190094543A 2019-08-02 2019-08-02 보안키 관리 방법 및 보안키 관리 서버 KR102289478B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190094543A KR102289478B1 (ko) 2019-08-02 2019-08-02 보안키 관리 방법 및 보안키 관리 서버
PCT/KR2020/010188 WO2021025403A2 (ko) 2019-08-02 2020-08-03 보안키 관리 방법 및 보안키 관리 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190094543A KR102289478B1 (ko) 2019-08-02 2019-08-02 보안키 관리 방법 및 보안키 관리 서버

Publications (2)

Publication Number Publication Date
KR20210015534A true KR20210015534A (ko) 2021-02-10
KR102289478B1 KR102289478B1 (ko) 2021-08-13

Family

ID=74503451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190094543A KR102289478B1 (ko) 2019-08-02 2019-08-02 보안키 관리 방법 및 보안키 관리 서버

Country Status (2)

Country Link
KR (1) KR102289478B1 (ko)
WO (1) WO2021025403A2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021252369A1 (en) 2020-06-07 2021-12-16 Comestaag Llc Selectively treating plant items

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080068757A (ko) * 2005-11-18 2008-07-23 샌디스크 코포레이션 키 및/또는 권리 객체의 관리 방법 및 시스템
KR20090049888A (ko) * 2007-11-14 2009-05-19 브레인즈스퀘어(주) 이동형 데이터 저장 장치의 로우 영역을 이용하여 보안기능을 구현한 데이터 처리 방법 및 이를 구현하기 위한장치
KR20100068046A (ko) * 2008-12-12 2010-06-22 한국전자통신연구원 아이덴티티 데이터 관리 장치 및 방법
KR20150080061A (ko) * 2013-12-30 2015-07-09 삼성에스디에스 주식회사 아이디 기반 키 관리 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754960B2 (en) * 2017-11-17 2020-08-25 Intel Corporation Support for increased number of concurrent keys within multi-key cryptographic engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080068757A (ko) * 2005-11-18 2008-07-23 샌디스크 코포레이션 키 및/또는 권리 객체의 관리 방법 및 시스템
KR20090049888A (ko) * 2007-11-14 2009-05-19 브레인즈스퀘어(주) 이동형 데이터 저장 장치의 로우 영역을 이용하여 보안기능을 구현한 데이터 처리 방법 및 이를 구현하기 위한장치
KR20100068046A (ko) * 2008-12-12 2010-06-22 한국전자통신연구원 아이덴티티 데이터 관리 장치 및 방법
KR20150080061A (ko) * 2013-12-30 2015-07-09 삼성에스디에스 주식회사 아이디 기반 키 관리 시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
정혜라, 소재우. "패스워드 매니저의 패스워드 저장소 보안 취약점 분석." 정보보호학회논문지 28(5), pp.1047-1057(2018.) 1부.* *

Also Published As

Publication number Publication date
KR102289478B1 (ko) 2021-08-13
WO2021025403A3 (ko) 2021-04-01
WO2021025403A2 (ko) 2021-02-11

Similar Documents

Publication Publication Date Title
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
CN107925581B (zh) 生物体认证系统以及认证服务器
EP3701668B1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
KR101888903B1 (ko) 키를 이전시키기 위한 방법 및 장치
EP3547203A1 (fr) Méthode et système de gestion d'accès à des données personnelles au moyen d'un contrat intelligent
US11258591B2 (en) Cryptographic key management based on identity information
US8369521B2 (en) Smart card based encryption key and password generation and management
KR20200118303A (ko) 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법
JP2016520230A (ja) 安全な承認システム及び方法
US11928223B2 (en) System for implementing enhanced file encryption technique
TWI476629B (zh) Data security and security systems and methods
KR102289478B1 (ko) 보안키 관리 방법 및 보안키 관리 서버
KR20100106110A (ko) 시큐어 부트 데이터(Secure Boot Data) 통합 관리 시스템, 시큐어 부트 데이터 통합 관리를 위한 메타데이터 생성 및 검증 방법, 이를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체.
JP2020191552A (ja) シェア分散システムおよび方法
KR102480400B1 (ko) 자기 주권 신원 인증 장치 및 방법
KR102563183B1 (ko) 자기 주권 신원 정보 분할 관리 장치 및 방법
WO2023135879A1 (ja) 計算機システム及び鍵交換方法
EP4329241A1 (en) Data management system, data management method, and non-transitory recording medium
Haunts et al. Azure Key Vault Usage Patterns
WO2024026428A1 (en) Digital identity allocation, assignment, and management
KR20210000238A (ko) 준마스터키를 이용해 마스터패스워드에 대한 Readability Test 해킹을 방어하는 방법
CN115221535A (zh) 使用可信平台模块管理敏感信息
JP2020043464A (ja) 仮想通貨を用いた仮想通貨取引システム、利用者側の利用者端末、仮想通貨取引システムの支援システム及び仮想通貨取引方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right