[go: nahoru, domu]

KR102289478B1 - System and method for providing electronic signature service - Google Patents

System and method for providing electronic signature service Download PDF

Info

Publication number
KR102289478B1
KR102289478B1 KR1020190094543A KR20190094543A KR102289478B1 KR 102289478 B1 KR102289478 B1 KR 102289478B1 KR 1020190094543 A KR1020190094543 A KR 1020190094543A KR 20190094543 A KR20190094543 A KR 20190094543A KR 102289478 B1 KR102289478 B1 KR 102289478B1
Authority
KR
South Korea
Prior art keywords
key
store file
file
security
owner information
Prior art date
Application number
KR1020190094543A
Other languages
Korean (ko)
Other versions
KR20210015534A (en
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/en
Priority to PCT/KR2020/010188 priority patent/WO2021025403A2/en
Publication of KR20210015534A publication Critical patent/KR20210015534A/en
Application granted granted Critical
Publication of KR102289478B1 publication Critical patent/KR102289478B1/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

보안키 관리 방법 및 이를 포함한 보안키 관리 서버를 제공한다. 본 보안키 관리 방법은, 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 하드웨어 보안 모듈로부터 보안키에 대응하는 키 블랍 및 인증값을 수신하고, 키 블랍 및 인증값을 포함하는 키 스토어 파일을 생성하고, 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하며, 키 스토어 파일 및 키 스토어 파일의 명칭을 하드웨어 보안 모듈이 아닌 다른 장치에 저장한다. A security key management method and a security key management server including the same are provided. In this security key management method, upon receiving a key generation request signal including information on the owner of the security key from an external device, receiving a key block and an authentication value corresponding to the security key from the hardware security module, and receiving the key block and authentication A key store file including a value is generated, a name of the key store file is generated based on owner information, and the key store file and the names of the key store file are stored in a device other than the hardware security module.

Figure R1020190094543
Figure R1020190094543

Description

보안키 관리 방법 및 보안키 관리 서버{System and method for providing electronic signature service}Security key management method and security key management server {System and method for providing electronic signature service}

보안키 관리 방법 및 보안키 관리 서버에 관한 것이다.It relates to a security key management method and a security key management server.

정보보호 및 인증기술에 있어서, 개인의 인증정보와 및 금융 거래를 위한 비밀번호 등의 정보를 하드웨어적으로 또한 암호학적으로 안전하게 관리하는 장치 및 시스템의 개발기술 필요성은 인터넷의 보급과 함께 제기되어 왔다.In information protection and authentication technology, the need for a device and system to safely manage personal authentication information and information such as passwords for financial transactions in hardware and cryptographic terms has been raised with the spread of the Internet.

비밀정보는 개인을 인증하고 본인이 직접 특정 행위를 한 것을 확인하는 수단이 되기 때문에, 만일 비밀 정보가 타인에게 노출된다면 행위자를 특정할 수 없어서 전체 금융거래 체계가 붕괴될 수 있으므로 매우 안전하게 관리되어야 한다.Since confidential information is a means of authenticating an individual and confirming that the individual has performed a specific act, if the confidential information is exposed to others, the entire financial transaction system may be disrupted because the actor cannot be identified, so it must be managed very safely. .

이와 같은 고도의 보안성을 제공하기 위해, 하드웨어적으로 동시에 암호학적으로 안전한 관리시스템을 탑재한 하드웨어 보안 모듈(Hardware Secure Module, 이라는 개념이 소개되고 있다.In order to provide such a high level of security, the concept of a Hardware Secure Module, which is equipped with a cryptographically secure management system at the same time as hardware, is introduced.

한편, 다양한 분야에서 하드웨어 보안 모듈 기술이 사용되지만, 하드웨어 보안 모듈의 하드웨어적 용량 때문에 저장할 수 있는 보안키의 개수가 제한될 수 있다. Meanwhile, although hardware security module technology is used in various fields, the number of security keys that can be stored may be limited due to the hardware capacity of the hardware security module.

본 실시예는, 보안키를 하드웨어 보안 모듈에 저장하지 않고 별도의 전용 파일을 생성하여 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하는 방법 및 그 서버를 제공한다. The present embodiment provides a method and a server for generating a separate dedicated file without storing the security key in the hardware security module and storing it in a database other than the hardware security module.

일 실시예에 따른 보안키 관리 방법은, 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 수신하는 단계; 상기 소유자 정보 및 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 수신하는 단계; 상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하는 단계; 상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하는 단계; 및 상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하는 단계;를 포함한다. The security key management method according to an embodiment includes, when receiving a key generation request signal including owner information to own the security key from an external device, transmits the key generation request signal to a hardware security module, and receives the key generation request signal from the hardware security module. receiving a key blob corresponding to the security key; transmitting an authentication value request signal including the owner information and the key blob to the hardware security module, and receiving an authentication value corresponding to the authentication value request signal from the hardware security module; generating a key store file including the key blob and the authentication value; generating a name of the key store file based on the owner information; and storing the key store file and the names of the key store files in a database other than the hardware security module.

그리고, 상기 키 스토어 파일은, 상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함할 수 있다. The key store file may include a head area including the owner information, a body area including the key blob, and a protection area including the authentication value.

또한, 상기 인증값은, 상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값일 수 있다. In addition, as for the authentication value, the hardware security module generates a derivation key using the owner information and the pre-stored master key, and uses the information included in the head area, the information contained in the body area, and the derivation key. It may be a value generated by

그리고, 상기 키 스토어 파일의 명칭은 상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함할 수 있다.In addition, the name of the key store file may include a character string derived from the owner information and information on the date and time the key store file was created.

또한, 상기 키 스토어 파일의 명칭은 2바이트 단위의 배타적 논리합한 값으로 그룹핑하여 저장될 수 있다.In addition, the name of the key store file may be grouped and stored as an exclusive OR value in units of 2 bytes.

그리고, 상기 스토어 파일을 생성하는 단계는, 상기 데이터베이스에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하는 단계; 및 상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면, 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트하는 단계;를 포함할 수 있다.The generating of the store file may include: checking whether a key store file including the same owner information as the owner information is stored in the database; and updating the key blob and the authentication value to the previously stored key store file if a key store file including the same owner information is previously stored.

또한, 소유자 정보 및 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 상기 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 키 스토어 파일의 명칭을 상기 데이터베이스로부터 독출하는 단계; 상기 키 스토어 파일의 명칭에 매칭된 키 스토어 파일을 획득하는 단계; 상기 키 스토어 파일에 포함된 상기 인증값을 이용하여 상기 키 스토어 파일을 검증하는 단계; 상기 인증값에 대한 검증이 완료되면, 상기 키 스토어 파일로부터 키 블랍을 획득하는 단계; 및 상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신하는 단계;를 포함할 수 있다. In addition, when a first key use request signal including owner information and data to use the security key is received from the external device, the name of the key store file corresponding to the owner information included in the first key use request signal is stored in the database. reading from; obtaining a key store file matching the name of the key store file; verifying the key store file by using the authentication value included in the key store file; obtaining a key blob from the key store file when verification of the authentication value is completed; and transmitting a second key use request signal including the key blob and the data to the hardware security module, and receiving data to which the security key is applied from the hardware security module.

한편, 일 실시예에 따른 보안키 관리 서버는, 외부 기기 및 하드웨어 보안 모듈과 통신하는 통신부; 및 상기 통신부를 통해 상기 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 요청하고 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 획득하며, 상기 통신부를 통해 상기 소유자 정보 및 상기 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 요청하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 획득하고, 상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하고, 상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하며, 상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하는 파일 처리기;를 포함한다.On the other hand, the security key management server according to an embodiment, a communication unit for communicating with an external device and a hardware security module; and when receiving a key generation request signal including owner information to possess the security key from the external device through the communication unit, the key generation request signal is requested from the hardware security module and corresponding to the security key from the hardware security module obtain a key blob, request an authentication value request signal including the owner information and the key blob from the hardware security module through the communication unit, and obtain an authentication value corresponding to the authentication value request signal from the hardware security module and generating a key store file including the key blob and the authentication value, generating a name of the key store file based on the owner information, and setting the name of the key store file and the key store file in the hardware security It includes; a file handler that stores in a database other than a module.

그리고, 상기 키 스토어 파일은, 상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함할 수 있다. The key store file may include a head area including the owner information, a body area including the key blob, and a protection area including the authentication value.

또한, 상기 인증값은, 상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값일 수 있다.In addition, as for the authentication value, the hardware security module generates a derivation key using the owner information and the pre-stored master key, and uses the information included in the head area, the information contained in the body area, and the derivation key. It may be a value generated by

그리고, 상기 파일 처리기는, 상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함하도록 상기 키 스토어 파일의 명칭을 생성할 수 있다.In addition, the file processor may generate a name of the key store file to include a character string derived from the owner information and information on a date and time when the key store file was created.

또한, 상기 파일 처리기는, 상기 키 스토어 파일의 명칭이 2바이트 단위의 배타적 논리합한 값으로 그룹핑되어 저장될 수 있다.In addition, the file processor may store the name of the key store file grouped as an exclusive OR value in units of 2 bytes.

그리고, 상기 파일 처리기는, 상기 데이터베이스에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하고, 상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트할 수 있다. Then, the file processor checks whether a key store file including the same owner information as the owner information is stored in the database, and if a key store file including the same owner information is pre-stored, the key blob and the The authentication value can be updated in the pre-stored keystore file.

또한, 상기 파일 처리기는, 상기 통신부를 통해 상기 소유자 정보 및 상기 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 상기 키 스토어 파일을 획득하고, 상기 키 스토어 파일로부터 상기 키 블랍을 획득하며, 상기 통신부를 통해 상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 히드웨어 보안 모듈에 전송하여 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신할 수 있다. In addition, when receiving a first key use request signal including data to use the owner information and the security key from the external device through the communication unit, the file processor is configured to add the owner information included in the first key use request signal obtaining the corresponding key store file, obtaining the key blob from the key store file, and transmitting a second key use request signal including the key blob and the data to the hardware security module through the communication unit Data to which the security key is applied may be received from the hardware security module.

실시예들에 따르면, 보안키를 하드웨어 보안 모듈에 저장하지 않고 별도의 전용 파일을 생성하여 하드웨어 보안 모듈이 아닌 다른 데이터베이스에 저장하기 때문에 하드웨어 보안 모듈을 하드웨어적 용량에 제한없이 이용할 수 있다. According to embodiments, since the security key is not stored in the hardware security module, but a separate dedicated file is created and stored in a database other than the hardware security module, the hardware security module can be used without limitation in hardware capacity.

또한, 관리 서버는 키 스토어 파일 뿐만 아니라 키 스토어 파일의 명칭을 생성하여 저장하기 때문에 외부 기기로부터 사용자 정보를 수신하면 키 스토어 파일의 명칭을 이용하여 필요시마다 키 스토어 파일을 독출하기 때문에 파일 처리 속도가 빨라질 수 있다. In addition, since the management server generates and stores the name of the key store file as well as the key store file, when user information is received from an external device, the key store file is read whenever necessary using the name of the key store file, so the file processing speed is reduced. can be faster

도 1은 예시적인 실시예에 따른 보안키 관리 시스템을 나타낸 도면이다.
도 2는 도 1에 도시된 하드웨어 보안 모듈을 나타내는 블록도이다.
도 3은 도 1에 도시된 관리 서버는 나타내는 블록도이다.
도 4는 일 실시예에 따른 관리 시스템에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다.
도 5는 일 실시예에 따른 키 스토어 파일의 형식을 나타내는 참조도면이다.
도 6은 일 실시예에 따른 키 스토어 파일의 명칭의 예를 나타내는 참조도면이다.
도 7은 일 실시예에 따른 관리 시스템이 보안키를 이용하는 방법을 설명하는 흐름도이다.
도 8은 다른 실시예에 따른 관리 시스템에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다.
도 9은 일 실시예에 따른 복수 개의 보안키 관련 정보를 포함하는 키 스토어 파일을 나타내는 참조도면이다.
1 is a diagram illustrating a security key management system according to an exemplary embodiment.
FIG. 2 is a block diagram illustrating the hardware security module shown in FIG. 1 .
3 is a block diagram illustrating the management server shown in FIG. 1 .
4 is a flowchart illustrating a method of generating a key store file in a management system according to an embodiment.
5 is a reference diagram illustrating a format of a key store file according to an embodiment.
6 is a reference diagram illustrating an example of a name of a key store file according to an embodiment.
7 is a flowchart illustrating a method for a management system to use a security key according to an embodiment.
8 is a flowchart illustrating a method of generating a key store file in a management system according to another embodiment.
9 is a reference diagram illustrating a key store file including a plurality of security key related information according to an embodiment.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the present invention have been selected as currently widely used general terms as possible while considering the functions in the present invention, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than the name of a simple term.

비록 제1, 제2 등의 용어가 다양한 요소들을 서술하기 위해서 사용되지만, 이 요소들은 이러한 용어에 의해 제한되지 않는다. 이러한 용어들은 단지 하나의 요소를 다른 요소와 구별하기 위하여 사용하는 것이다.Although the terms first, second, etc. are used to describe various elements, these elements are not limited by these terms. These terms are only used to distinguish one element from another.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof. Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.

도 1은 예시적인 실시예에 따른 보안키 관리 시스템(10)을 나타낸 도면이다. 1 is a diagram illustrating a security key management system 10 according to an exemplary embodiment.

도 1을 참조하면, 일 실시예에 따른 보안키 관리 시스템(10)은 보안키 및 보안키에 대응하는 키 블랍(blob)을 생성하는 하드웨어 보안 모듈(100), 하드웨어 보안 모듈(100)로부터 키 블랍을 수신하여 키 블랍을 포함하는 키 스토어 파일 및 키 스토어 파일의 명칭을 생성하는 보안키 관리 서버(200)(이하 '관리 서버'라고 칭한다) 및 상기한 키 스토어 파일의 명칭을 저장하는 데이터베이스(300)를 포함할 수 있다. Referring to FIG. 1 , a security key management system 10 according to an embodiment includes a hardware security module 100 that generates a security key and a key blob corresponding to the security key, and a key from the hardware security module 100 . A security key management server 200 (hereinafter referred to as a 'management server') that receives the blob and generates a key store file including the key blob and a name of the key store file, and a database that stores the name of the key store file ( 300) may be included.

하드웨어 보안 모듈(100) 및 데이터베이스(300)는 관리 서버(200)와만 통신할 뿐 직접 외부 기기(400)와 통신하지 않음으로써 하드웨어 보안 모듈(100)의 보안이 강화될 수 있다. 외부 기기(400)는 보안키와 관련된 요청 신호를 관리 서버(200)에 전송하고, 그 결과를 관리 서버(200)로부터 수신할 수 있다. 여기서, 외부 기기(400)는 사용자 단말, 은행 서버, 공공 기관에 의해 운영되는 서버, 전자 상거래 서비스를 제공하는 서버 등 다양할 수 있다. The hardware security module 100 and the database 300 communicate only with the management server 200 and do not directly communicate with the external device 400, so that the security of the hardware security module 100 can be enhanced. The external device 400 may transmit a request signal related to the security key to the management server 200 , and receive the result from the management server 200 . Here, the external device 400 may be various, such as a user terminal, a bank server, a server operated by a public institution, and a server providing an e-commerce service.

도 2는 도 1에 도시된 하드웨어 보안 모듈(100)을 나타내는 블록도이다. 도 2를 참조하면, 하드웨어 보안 모듈(100)은, 관리 서버(200)과 통신하는 제1 통신부(110), 보안키 등을 생성하는 키 처리기(120) 및 보안키를 데이터에 적용하는 데이터 처리기(130)를 포함할 수 있다. FIG. 2 is a block diagram illustrating the hardware security module 100 shown in FIG. 1 . Referring to FIG. 2 , the hardware security module 100 includes a first communication unit 110 that communicates with the management server 200 , a key processor 120 that generates a security key, and the like, and a data processor that applies the security key to data. 130 may be included.

키 처리기(120)는 제1 통신부(110)를 통해 관리 서버(200)로부터 보안키 생성 요청 신호를 수신받아 보안키를 생성할 수 있다. 상기한 보안키 생성 요청 신호는 보안키의 소유자 정보, 보안키의 종류, 보안키와 관련된 데이터의 종류 등의 정보가 포함될 수 있다. 상기한 보안키는 보안키 생성 요청 신호에 기초하여 난수발생기(RNG)를 통하여 생성되며 다수의 보안키가 생성될 수 있다. 보안키는 다양한 방식으로 생성 가능하다. 예를 들어, 소인수분해 암호 방식 시스템이나 타원곡선 암호 시스템에 의해 보안키 생성이 가능하다. 여기서 보안키는 인증용 키, 암호화용 키, 복호화용 키 등일 수 있으며, 개인키, 공개키 등일 수 있다. The key processor 120 may receive a security key generation request signal from the management server 200 through the first communication unit 110 to generate a security key. The security key generation request signal may include information such as owner information of the security key, the type of the security key, and the type of data related to the security key. The above-described security key is generated through a random number generator (RNG) based on a security key generation request signal, and a plurality of security keys may be generated. The security key can be generated in various ways. For example, a security key can be generated by a prime factorization encryption system or an elliptic curve encryption system. Here, the security key may be an authentication key, an encryption key, a decryption key, etc., and may be a private key or a public key.

키 처리기(120)는 생성된 보안키를 키 블랍(blob: binary large object)으로 변환시키거나, 제1 통신부(110)를 통해 수신된 키 블랍을 보안키로 변환시킬 수도 있다. 키 블랍 생성시, 키 처리기(120)는 보안키에 특정 데이터를 부가할 수 있다. 이외에도 키 처리기(120)는 하드웨어 보안 모듈(100)에 기저장된 마스터키를 기초로 유도키를 생성할 수도 있고, 유도키를 이용하여 후술하는 키 스토어 파일을 인증하기 위한 인증값을 생성할 수도 있다. The key processor 120 may convert the generated security key into a key blob (binary large object) or convert the key blob received through the first communication unit 110 into a security key. When generating the key blob, the key processor 120 may add specific data to the security key. In addition, the key processor 120 may generate a derivation key based on the master key pre-stored in the hardware security module 100, or may generate an authentication value for authenticating a key store file to be described later using the derivation key. .

데이터 처리기(130)는 관리 서버(200)의 요청에 따라 보안키를 이용하여 데이터를 암호 또는 복호화하거나, 보안키를 이용하여 데이터에 서명한 서명 데이터를 생성할 수 있다. 데이터 처리기(130)는 SEED, ARIA, RSA, DES, MD5, DSS, SHA 등과 같은 다양한 암/복호화 알고리즘 등이 사용될 수 있다.The data processor 130 may encrypt or decrypt data using the security key according to the request of the management server 200 , or may generate signature data for signing data using the security key. The data processor 130 may use various encryption/decryption algorithms such as SEED, ARIA, RSA, DES, MD5, DSS, SHA, and the like.

상기와 같은 구성에 의해 하드웨어 보안 모듈(100)은 내부에 자체적으로 보안키를 생성하고 이를 바탕으로 데이터를 암/복호화할 수 있다. 상기한 하드웨어 보안 모듈(100)은 어떠한 방법으로도 내부에서 생성된 보안키를 추출할 수 없고, 만일 물리적인 방법으로 데이터를 추출하고자 한다면 자체적으로 데이터를 소멸시키는 등의 안전장치가 하드웨어 보안 모듈(100)에 더 포함될 수 있다. With the above configuration, the hardware security module 100 can generate a security key internally by itself and encrypt/decrypt data based on it. The hardware security module 100 cannot extract the internally generated security key in any way, and if you want to extract data by a physical method, a safety device such as self-destructing the data is installed in the hardware security module ( 100) may be further included.

도 3은 도 1에 도시된 관리 서버(200)는 나타내는 블록도이다. 도 3에 도시된 바와 같이, 관리 서버(200)는 하드웨어 보안 모듈(100) 및 외부 기기(400)과 통신하는 제2 통신부(210), 외부 기기(400)의 요청에 따라 하드웨어 보안 모듈(100)에 보안키 생성을 요청하거나, 하드웨어 보안 모듈(100)로부터 수신된 보안키에 대응하는 키 블랍을 포함하는 키 스토어 파일 등을 생성하는 파일 처리기(220) 및 키 스토어 파일을 저장하는 저장부(230)를 포함할 수 있다. 3 is a block diagram illustrating the management server 200 illustrated in FIG. 1 . As shown in FIG. 3 , the management server 200 is a hardware security module 100 and a second communication unit 210 that communicates with the external device 400 , and the hardware security module 100 at the request of the external device 400 . ) requesting the generation of a security key or generating a key store file including a key blob corresponding to the security key received from the hardware security module 100, and a storage unit for storing the key store file ( 230) may be included.

다음은 관리 서버(200)가 키 스토어 파일을 생성하고 이용하는 방법에 대해 구체적으로 설명한다. Hereinafter, a method for the management server 200 to generate and use a key store file will be described in detail.

도 4는 일 실시예에 따른 관리 시스템(10)에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다. 4 is a flowchart illustrating a method of generating a key store file in the management system 10 according to an embodiment.

관리 서버(200)가 외부기기로부터 보안키 생성을 요청받으면(S410), 관리 서버(200)는 하드웨어 보안 모듈(100)에 보안키 생성을 요청한다(S415). 보안키 생성 요청에 따라 하드웨어 관리 서버(200)는 보안키를 생성하고, 상기한 보안키에 대응하는 키 블랍을 생성하며, 키 블랍을 관리 서버(200)에 전송할 수 있다(S420). 상기한 보안키 생성 요청 신호에는 보안키의 소유자 정보, 보안키의 종류, 보안키와 관련된 데이터의 종류 등의 정보가 포함될 수 있다. 보안키는 인증용 키, 암호화용 키, 복호화용 키 등일 수 있으며, 개인키, 공개키 등일 수 있다. 상기한 키 블랍은 보안키 이외의 데이터가 더 부가될 수 있다. When the management server 200 receives a request for generation of the security key from the external device (S410), the management server 200 requests generation of the security key from the hardware security module 100 (S415). In response to the security key generation request, the hardware management server 200 may generate a security key, generate a key blob corresponding to the security key, and transmit the key blob to the management server 200 (S420). The security key generation request signal may include information such as owner information of the security key, the type of the security key, and the type of data related to the security key. The security key may be an authentication key, an encryption key, a decryption key, and the like, and may be a private key or a public key. Data other than the security key may be further added to the above key blob.

또한, 관리 서버(200)의 파일 처리기(220)은 키 블랍을 포함하는 키 스토어 파일의 일부를 생성한다(S430). 상기한 키 스토어 파일은 보안키의 소유자 정보를 포함하는 헤드 영역, 키 블랍을 포함하는 바디 영역 및 인증값을 포함하는 보호 영역을 포함할 수 있다. In addition, the file processor 220 of the management server 200 generates a part of the key store file including the key blob (S430). The key store file may include a head area including owner information of the security key, a body area including a key blob, and a protection area including an authentication value.

헤드 영역에 포함된 소유자 정보는 외부 기기(400)로부터 수신된 정보일 수 있다. 외부 기기(400)로부터 수신된 보안키 생성 요청 신호에는 소유자 정보가 포함될 수 있다. 또는 관리 서버(200)는 외부 기기(400)(예를 들어, 사용자 단말)에 소유자 정보를 요청하는 신호를 전송하고, 외부 기기(400)로부터 소유자 정보를 수신할 수 있다. 상기한 소유자 정보는 보안키를 소유할 소유자를 식별하는 정보로서, 소유자가 설정한 비밀번호, 생체 정보, 핸드폰 번호, 이메일 주소, CI, 주민등록 번호 등일 수 있다.The owner information included in the head area may be information received from the external device 400 . The security key generation request signal received from the external device 400 may include owner information. Alternatively, the management server 200 may transmit a signal requesting owner information to the external device 400 (eg, a user terminal) and receive owner information from the external device 400 . The owner information is information identifying the owner who will own the security key, and may be a password, biometric information, mobile phone number, email address, CI, resident registration number, etc. set by the owner.

헤드 영역에는 키 스토어 파일에 대한 버전 정보, 키 스토어 파일이 마지막으로 업데이트된 일시(날짜 및 시간)에 대한 정보, 하드웨어 관리 서버(200)에서 생성된 보안키의 개수에 대한 정보 중 적어도 하나를 더 포함할 수 있다. In the head area, at least one of version information on the key store file, information on the date and time (date and time) when the key store file was last updated, and information on the number of security keys generated by the hardware management server 200 are further added may include

바디 영역에는 키 블랍이 포함될 수 있다. 이외에도 바디 영역에는 키 알리아스(Alias) 를 더 포함될 수 있다. 키 알리아스는 보안키를 식별하기 위한 정보로서, 관리 서버는 임의의 값으로 키 알리아스를 생성할 수 도 있고, 키 블랍을 기초로 생성할 수 있다. 상기한 키 알리아스는 각 키 블랍에 대한 유일한 값일 수 있다. 생성된 키 알리아스는 키 스토어 파일의 바디 영역에 포함시킬 수 있다. The body region may include a key blob. In addition, the body region may further include a key alias. The key alias is information for identifying the security key, and the management server may generate the key alias with an arbitrary value or may generate it based on the key blob. The above key alias may be a unique value for each key blob. The generated key alias can be included in the body area of the keystore file.

또한, 바디 영역에는 키 블랍을 해시 함수로 암호화한 키 블랍의 해시값을 더 포함할 수 있다. 파일 처리기(220)는 키 블랍과 소유자 정보를 해시 함수로 암호화하여 키 블랍의 해시값을 생성할 수 있다. In addition, the body region may further include a hash value of the key blob obtained by encrypting the key blob with a hash function. The file processor 220 may generate a hash value of the key blob by encrypting the key blob and owner information with a hash function.

관리 서버(200)의 파일 처리기(220)는 외부 기기(400)로부터 수신된 정보 및 하드웨어 보안 모듈(100)로부터 수신된 정보를 이용하여 키 스토어 파일의 헤드 영역 및 바디 영역을 생성할 수 있다. The file processor 220 of the management server 200 may generate a head area and a body area of the keystore file using information received from the external device 400 and information received from the hardware security module 100 .

관리 서버(200)의 파일 처리기(220)은 제2 통신부(210)을 통해 키 스토어 파일의 변조 여부를 확인하기 위한 인증값을 하드웨어 보안 모듈에 요청하고(S435), 하드웨어 보안 모듈로부터 상기한 인증값을 수신할 수 있다(S440). 인증값 요청시 관리 서버(200)는 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보를 하드웨어 보안 모듈(100)에 제공할 수 있다. The file processor 220 of the management server 200 requests the hardware security module for an authentication value for checking whether the key store file has been tampered with through the second communication unit 210 (S435), and the above-described authentication from the hardware security module A value may be received (S440). When requesting an authentication value, the management server 200 may provide information included in the head region of the key store file and information included in the body region of the key store file to the hardware security module 100 .

인증값 생성을 요청받은 하드웨어 보안 모듈(100)의 키 처리기(120)는 소유자 정보 및 하드웨어 보안 모듈(100)에 기저장된 마스터키를 이용하여 유도키를 생성하고, 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보 및 상기한 유도키를 이용하여 인증값을 생성할 수 있다. 예를 들어, 키 처리기(120)는 유도키 생성시 암호 알고리즘을 이용할 수 있고, HMAC 알고리즘을 인증값을 생성할 수 있으나, 이에 한정되지 않는다. 키 처리기(120)는 인증값 생성을 위한 다른 알고리즘을 적용할 수 있음도 물론이다. 하드웨어 보안 모듈(100)은 생성된 인증값을 관리 서버(200)에 전송함으로써 관리 서버(200)는 인증값을 획득할 수 있다. The key processor 120 of the hardware security module 100 requested to generate the authentication value generates an induced key using owner information and the master key pre-stored in the hardware security module 100, and is included in the head area of the key store file. The authentication value may be generated using the acquired information, the information included in the body region of the key store file, and the derivation key. For example, the key processor 120 may use an encryption algorithm when generating the derivation key and may generate an authentication value using the HMAC algorithm, but is not limited thereto. Of course, the key processor 120 may apply another algorithm for generating an authentication value. The hardware security module 100 transmits the generated authentication value to the management server 200 so that the management server 200 may acquire the authentication value.

그리고, 파일 처리기(220)는 키 스토어 파일의 보호 영역에 상기한 인증값을 포함시킴으로써 키 스토어 파일을 완성할 수 있다(S450). 파일 처리기(220)는 키 스토어 파일의 완성시 키 스토어 파일의 헤드 영역의 최종 업데이트 일시를 업데이트할 수 있다. Then, the file processor 220 may complete the key store file by including the authentication value in the protection area of the key store file (S450). The file processor 220 may update the last update date and time of the head area of the key store file upon completion of the key store file.

도 5는 일 실시예에 따른 키 스토어 파일의 형식을 나타내는 참조도면이다. 도 5에 도시된 바와 같이, 키 스토어 파일은 헤드 영역(510), 바디 영역(520) 및 보호 영역(530)을 포함할 수 있다. 헤드 영역(510)은 키 스토어 파일에 대한 버전 정보, 키 스토어 파일이 최종 업데이트된 일시에 대한 정보, 소유자 정보, 키의 개수에 대한 정보 중 적어도 하나를 포함할 수 있다. 버전 정보, 키의 개수에 대한 정보는 숫자로 표시될 수 있고, 소유자 정보는 비트 스트링으로 표시될 수 있다. 5 is a reference diagram illustrating a format of a key store file according to an embodiment. As shown in FIG. 5 , the key store file may include a head region 510 , a body region 520 , and a protection region 530 . The head area 510 may include at least one of version information on the key store file, information on the last updated date of the key store file, owner information, and information on the number of keys. Version information and information on the number of keys may be displayed as a number, and owner information may be displayed as a bit string.

바디 영역(520)에는 보안키에 대응하는 구체적인 정보가 포함될 수 있다. 보안키 당 키 알리아스, 키 블랍의 해시값 및 키 블랍이 저장될 수 있다. 하드웨어 보안 모듈(100)이 하나의 소유자에 대해 복수 개의 보안키를 생성한 경우, 바디 영역에는 각 보안키에 대응하는 키 블랍, 키 알리아스, 키 블랍의 해시값이 각각 포함될 수 있다. 즉, 하나의 소유자에 대해 보안키가 복수 개라 할지라도 관리 서버(200)는 하나의 키 스토어 파일을 생성하는 바, 키 스토어 파일의 관리가 편리해진다. The body region 520 may include specific information corresponding to the security key. A key alias per security key, a hash value of a key blob, and a key blob may be stored. When the hardware security module 100 generates a plurality of security keys for one owner, a key blob, a key alias, and a hash value of the key blob corresponding to each security key may be included in the body region, respectively. That is, even if there are a plurality of security keys for one owner, the management server 200 generates one key store file, so that the management of the key store file is convenient.

그리고, 보호 영역(530)에는 하드웨어 보안 모듈이 생성한 인증값이 포함될 수 있다. In addition, the protection area 530 may include an authentication value generated by the hardware security module.

또한, 파일 처리기(220)는 키 스토어 파일에 매칭할 키 스토어 파일의 명칭을 생성할 수 있다(S460). 관리 서버(200)는 키 스토어 파일의 개수가 증가하더라도 키 스토어 파일의 명칭이 중복되지 않도록 명칭을 부여할 수 있다. 예를 들어, 파일 처리기(220)는 보안키의 소유자 정보로부터 유도된 값, 키 스토어 파일이 최초 생성된 일시를 포함하여 키 스토어 파일의 명칭을 생성할 수 있다. 예를 들어, 파일 처리기(220)는 보안키의 소유자 정보에 대한 해시값을 16진수의 문자열로 표현하고, 키 스토어 파일의 최초 생성된 연도, 달, 일자, 시간, 분 및 초를 문자열로 표현함으로써 키 스토어 파일의 명칭을 생성할 수 있다. 보안키의 소유자 정보는 키 소유자의 휴대폰 번호, 이메일 주소, CI 또는 주민등록 번호로서 소유자를 식별할 수 있는 정보일 수 있다. 도 6은 일 실시예에 따른 키 스토어 파일의 명칭의 예를 나타내는 참조도면이다. 도 6에 도시된 바와 같이, 키 스토어 파일의 앞단은 소유자 정보에 대한 해시값을 16진수의 문자열로 표현되고, 중간단은 키 스토어 파일의 최초 생성된 연도, 달, 일자, 시간, 분 및 초로 표현되며, 후단은 키 스토어 파일의 확장자 명으로 표현될 수 있다. Also, the file processor 220 may generate a name of the key store file to match the key store file (S460). The management server 200 may assign a name so that the name of the key store file is not duplicated even if the number of key store files increases. For example, the file processor 220 may generate the name of the key store file including a value derived from the owner information of the security key and the date and time when the key store file was initially created. For example, the file processor 220 expresses a hash value of the owner information of the security key as a string of hexadecimal digits, and expresses the first generated year, month, date, hour, minute and second of the key store file as a string By doing so, you can create a name for the keystore file. The owner information of the security key may be information that can identify the owner as the key owner's mobile phone number, e-mail address, CI, or resident registration number. 6 is a reference diagram illustrating an example of a name of a key store file according to an embodiment. As shown in FIG. 6 , the front end of the key store file represents a hash value for owner information as a hexadecimal string, and the middle end of the key store file is the first created year, month, date, hour, minute, and second. is expressed, and the rear end may be expressed as an extension name of the keystore file.

뿐만 아니라, 파일 처리기(220)는 키 스토어 파일 및 키 스토어 파일의 명칭과 매칭할 키 스토어 파일의 히스토리도 생성할 수 있다(S470). 파일 처리기(220)는 키 스토어 파일을 생성, 삭제, 또는 변경할 때마다 키 스토어 파일의 히스토리를 생성 또는 업데이트할 수 있다. 파일 처리기(220)는 히스토리의 일련 번호, 즉, 히스토리가 생성될 때마다 업데이트되는 번호, 키 스토어 파일의 명칭, 키 스토어 파일을 이용한 일시(접근 일시), 키 스토어 파일을 이용한 형태(예를 들어, 키 스토어 파일의 생성, 삭제, 키 블랍 추가, 키 블랍 삭제, 키 블랍 이용 등등), 이용된 키 블랍에 대응하는 키 알라이스, 키 스토어 파일의 인증값, 히스토리 업데이트하기 직전의 키 스토어 파일의 히스토리에 대한 해시값, 히스토리 업데이트하기 직후의 키 스토어 파일의 히스토리에 대한 해시값, 키 스토어 파일의 히스토리를 생성한 일시 중 적어도 하나를 포함할 수 있다. 상기한 키 스토어 파일의 히스토리는 키 스토어 파일의 접근에 대한 감사 목적으로 이용될 수 있다. In addition, the file processor 220 may also generate a history of the key store file and the key store file to match the name of the key store file ( S470 ). The file processor 220 may create or update the history of the key store file whenever the key store file is created, deleted, or changed. The file processor 220 provides the serial number of the history, that is, a number updated every time the history is created, the name of the key store file, the date and time using the key store file (access date and time), and the form using the key store file (for example, , creation, deletion, key blob addition, key blob deletion, key blob use, etc.), key alias corresponding to the used key blob, authentication value of key store file, key store file just before history update It may include at least one of a hash value for the history, a hash value for the history of the key store file immediately after updating the history, and a date and time when the history of the key store file is generated. The history of the key store file may be used for auditing access to the key store file.

파일 처리기(220)는 키 스토어 파일, 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리를 보안키를 생성한 하드웨어 보안 모듈(100)이 아닌 다른 데이터베이스에 저장할 수 있다(S475, S480). 예를 들어, 파일 처리기(220)는 키 스토어 파일을 관리 서버(200)의 저장부(230)에 저장하고(S475), 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리, 키 스토어 파일의 디렉토리 정보를 서로 매칭시켜 데이터베이스(300)에 저장할 수 있다(S480). 상기한 디렉토리 정보는 키 스토어 파일이 저장된 저장부(230)의 디렉토리 정보일 수 있다. The file processor 220 may store the key store file, the name of the key store file, and the history of the key store file in a database other than the hardware security module 100 that generated the security key (S475 and S480). For example, the file processor 220 stores the key store file in the storage unit 230 of the management server 200 (S475), the name of the key store file, the history of the key store file, and directory information of the key store file can be stored in the database 300 by matching them with each other (S480). The directory information may be directory information of the storage unit 230 in which the key store file is stored.

파일 처리기(220)는 키 스토어 파일의 명칭에 포함된 소유자 정보로부터 유도된 값을 2 바이트 단위로 배타적 논리합하고, 배타적 논리합한 값으로 그룹핑하여 키 스토어 파일의 명칭을 저장하고, 상기한 명칭에 대응하는 키 스토어 파일 및 키 스토어 파일의 히스토리를 매칭시켜 저장할 수 있다. 키 스토어 파일의 명칭을 그룹핑하여 저장함으로써 데이터베이스를 관리하는데 용이할 수 있다. The file processor 220 exclusive-ORs values derived from owner information included in the name of the keystore file in 2-byte units, groups them into exclusive-OR values, stores the name of the keystore file, and corresponds to the name The key store file and the history of the key store file can be matched and stored. By grouping and storing the names of the key store files, it may be easy to manage the database.

또는 파일 처리기(220)는 보안키의 용도별, 상기한 보안키와 관련된 서비스 별로, 키 스토어 파일의 명칭을 그룹핑하고, 그룹핑된 키 스토어 파일의 명칭을 다시 배타적 논리합한 값으로 그룹핑하여 저장할 수 도 있다. 상기와 같이, 복수 개의 단계로 키 스토어 파일의 명칭을 저장하기 때문에 키 스토어 파일의 명칭 독출이 용이해진다. Alternatively, the file processor 220 groups the names of the key store files for each purpose of the security key, each service related to the above-mentioned security key, and groups the names of the grouped key store files back to an exclusive OR value and stores them. . As described above, since the name of the keystore file is stored in a plurality of steps, it is easy to read the name of the keystore file.

도 4에서는 키 스토어 파일은 관리 서버(200)의 저장부(230)에 저장하고 키 스토어 파일의 명칭을 데이터베이스(300)에 저장한다고 하였다. 상기와 같이 키 스토어 파일과 키 스토어 파일의 명칭을 서로 다른 저장장치에 저장하는 이유는 보다 안전하게 보안하기 위함이고 이에 한정되지 않는다. 키 스토어 파일도 데이터베이스(300)에 저장할 수 있음은 물론이다. 또는 키 스토어 파일의 명칭 및 키 스토어 파일도 관리 서버(200)에 포함된 저장부 또는 데이터베이스에 저장할 수 있음도 물론이다. 즉, 키 스토어 파일의 명칭 및 키 스토어 파일은 하드웨어 보안 모듈이 아닌 다른 장치에 저장한다. In FIG. 4 , the key store file is stored in the storage unit 230 of the management server 200 , and the name of the key store file is stored in the database 300 . The reason for storing the key store file and the name of the key store file in different storage devices as described above is for more secure security and is not limited thereto. Of course, the key store file may also be stored in the database 300 . Alternatively, the name of the key store file and the key store file may also be stored in the storage unit or database included in the management server 200 . That is, the name of the key store file and the key store file are stored in a device other than the hardware security module.

도 4에서 보안키 생성에 대해 설명하였으나, 이에 한정되지 않는다. 관리 서버(200)는 외부 기기(400) 로부터 보안키 주입 요청을 수신할 수도 있다. 상기한 보안키 주입 요청에는 보안키가 포함될 수 있다. 관리 서버(200)는 상기한 보안키 주입 요청을 하드웨어 보안 모듈(100)에 전송하고, 하드웨어 보안 모듈(100)로부터 보안키에 대응하는 키 블랍을 수신할 수 있다. 이후 관리 서버(400)는 주입된 보안키에 대한 키 스토어 파일, 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리를 생성할 수 있다. 상기한 키 스토어 파일, 키 스토어 파일의 명칭 및 키 스토어 파일의 히스토리를 생성은 S430 내지 S480 과 동일한 바 구체적인 설명은 생략한다. Although the generation of the security key has been described in FIG. 4 , the present invention is not limited thereto. The management server 200 may receive a security key injection request from the external device 400 . The security key injection request may include a security key. The management server 200 may transmit the security key injection request to the hardware security module 100 and receive a key blob corresponding to the security key from the hardware security module 100 . Thereafter, the management server 400 may generate a key store file for the injected security key, a name of the key store file, and a history of the key store file. Generating the key store file, the name of the key store file, and the history of the key store file is the same as in steps S430 to S480, and thus a detailed description thereof will be omitted.

도 7은 일 실시예에 따른 관리 시스템(10)이 보안키를 이용하는 방법을 설명하는 흐름도이다. 7 is a flowchart illustrating a method of using a security key by the management system 10 according to an embodiment.

도 7을 참조하면, 외부 기기(400)로부터 제1 키 이용 요청을 수신하면(S710), 관리 서버(200)는 소유자 정보를 기초로 데이터베이스(300)으로부터 키 스토어 파일의 명칭을 독출하고(S720), 키 스토어 파일의 명칭을 이용하여 키 스토어 파일을 획득할 수 있다(S730). 외부기기(400)가 관리 서버(200)에 전송하는 키 이용 요청을 제1 키 이용 요청이라고 하고, 관리 서버(200)가 하드웨어 보안 모듈(100)에 전송하는 키 이용 요청 신호를 제2 키 이용 요청이라고 칭할 수 있다. Referring to FIG. 7 , upon receiving the first key use request from the external device 400 ( S710 ), the management server 200 reads the name of the key store file from the database 300 based on the owner information ( S720 ). ), a key store file may be obtained using the name of the key store file (S730). A key use request transmitted by the external device 400 to the management server 200 is referred to as a first key use request, and a key use request signal transmitted by the management server 200 to the hardware security module 100 is used as a second key. It can be called a request.

구체적으로, 외부 기기(400)로부터 보안키의 소유자 정보 및 보안키가 적용될 데이터를 포함하는 제1 키 이용 요청을 수신되면, 관리 서버(200)의 파일 처리기(220)는 제2 통신부(210)을 통해 데이터베이스(300)로부터 보안키의 소유자 정보를 포함하는 키 스토어 파일의 명칭을 독출할 수 있다. 데이터베이스(300)에 키 스토어 파일의 명칭뿐만 아니라 키 스토어 파일의 히스토리 및 키 스토어 파일의 디렉토리도 함께 매칭되어 저장된 경우, 파일 처리기(220)는 제2 통신부(210)을 통해 키 스토어 파일의 명칭에 매칭된 키 스토어 파일의 히스토리 및 키 스토어 파일의 디렉토리를 데이터베이스(300)로부터 독출함으로써 획득할 수 있다.Specifically, when a first key use request including owner information of the security key and data to which the security key is to be applied is received from the external device 400 , the file processor 220 of the management server 200 performs the second communication unit 210 . Through this, the name of the key store file including the owner information of the security key may be read from the database 300 . When the name of the key store file as well as the history of the key store file and the directory of the key store file are matched and stored in the database 300 , the file processor 220 responds to the name of the key store file through the second communication unit 210 . It can be obtained by reading the history of the matched key store file and the directory of the key store file from the database 300 .

그리고, 파일 처리기(220)는 상기한 디렉토리 정보를 이용하여 저장부(230)으로부터 키 스토어 파일의 명칭에 매칭된 키 스토어 파일을 획득할 수 있다. In addition, the file processor 220 may obtain a key store file matching the name of the key store file from the storage 230 using the directory information.

관리 서버(200)는 하드웨어 보안 모듈(100)을 이용하여 키 스토어 파일을 검증할 수 있다(S740). 예를 들어, 관리 서버(200)의 파일 처리기(220)은 제2 통신부(210)을 통해 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보를 하드웨어 보안 모듈(100)에 제공하면서 인증값을 요청할 수 있다. 하드웨어 보안 모듈(100)은 키 스토어 파일의 헤드 영역에 포함된 소유자 정보와 및 하드웨어 보안 모듈(100)에 기저장된 마스터키를 이용하여 유도키를 생성하고, 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보 및 상기한 유도키를 이용하여 인증값을 생성할 수 있다. 하드웨어 보안 모듈(100)은 생성된 상기한 인증값을 관리 서버(200)에 전송하고, 관리 서버(200)는 하드웨어 보안 모듈(100)로부터 수신된 인증값과 키 스토어 파일에 포함된 인증값을 비교함으로써 키 스토어 파일을 검증할 수 있다. The management server 200 may verify the key store file using the hardware security module 100 (S740). For example, the file processor 220 of the management server 200 transmits information included in the head area of the key store file and information included in the body area of the key store file through the second communication unit 210 to the hardware security module ( 100), you can request an authentication value. The hardware security module 100 generates a derivation key using the owner information included in the head area of the key store file and the master key stored in the hardware security module 100, and information included in the head area of the key store file. , an authentication value may be generated using the information included in the body region of the key store file and the derivation key. The hardware security module 100 transmits the generated authentication value to the management server 200, and the management server 200 compares the authentication value received from the hardware security module 100 and the authentication value included in the key store file. By comparing, you can verify the keystore file.

뿐만 아니라, 관리 서버(200)는 보안키의 소유자를 검증할 수 있다(S760). 예를 들어, 관리 서버(200)는 외부 기기(400)(예를 들어, 사용자 단말)에 소유자 확인을 위한 요청 신호를 송신하고, 외부 기기(400)로부터 그 결과를 수신할 수 있다. 그리고, 관리 서버(200)는 키 스토어 파일에 포함된 소유자 정보와 외부 기기(400)로부터 수신된 결과를 비교함으로써 소유자를 검증할 수 있다. 이외에도 임시키를 이용하여 소유자을 검증할 수도 있다. In addition, the management server 200 may verify the owner of the security key (S760). For example, the management server 200 may transmit a request signal for owner confirmation to the external device 400 (eg, a user terminal) and receive the result from the external device 400 . In addition, the management server 200 may verify the owner by comparing the owner information included in the key store file with the result received from the external device 400 . In addition, the owner can be verified using the temporary key.

도 7에서는 키 스토어 파일을 검증한 후 소유자를 검증한다고 하였으나, 이에 한정되지 않는다. 소유자를 검증한 후 키 스토어 파일을 검증할 수도 있다. 관리 서버(200)는 키 스토어 파일과 소유자의 검증을 동시에 할 수도 있다. In FIG. 7 , the owner is verified after verifying the key store file, but the present invention is not limited thereto. After verifying the owner, you can also verify the keystore file. The management server 200 may simultaneously verify the key store file and the owner.

키 스토어 파일 및 소유자 검증이 완료된 후, 관리 서버(200)의 파일 처리기(220)는 키 스토어 파일에 포함된 키 블랍을 획득할 수 있다(S760). 키 블랍을 획득할 때에도 파일 처리기(220)는 키 블랍의 해시값을 이용하여 키 블랍을 검증할 수 있다. 예를 들어, 파일 처리기(220)는 키 스토어 파일의 헤드 영역에 포함된 보안키의 소유자 정보와 키 스토어 파이의 바디 영역에 포함된 키 블랍을 이용하여 키 블랍의 해시값을 생성한 후, 생성한 키 블랍 해시값과 키 스토어 파일에 포함된 키 블랍 해시값을 비교함으로써 키 블랍을 검증할 수 있다. 생성된 키 블랍 해시값과 기저장된 키 블랍 해시값이 동일한 경우, 검증이 완료된 것으로 한다. After verification of the key store file and the owner is completed, the file processor 220 of the management server 200 may obtain a key blob included in the key store file (S760). Even when obtaining the key blob, the file processor 220 may verify the key blob using a hash value of the key blob. For example, the file processor 220 generates a hash value of the key blob using owner information of the security key included in the head region of the key store file and the key blob included in the body region of the key store pie, and then generates A key blob can be verified by comparing the hash value of one key blob with the hash value of the key blob included in the key store file. If the generated key blob hash value and the pre-stored key blob hash value are the same, verification is deemed complete.

한편, 키 스토어 파일에 다수의 키 블랍의 포함된 경우, 관리 서버(200)는 사용하고자 하는 키 알리아스와 일치하는 키 블랍만을 획득할 수 있다. On the other hand, when a plurality of key blobs are included in the key store file, the management server 200 may acquire only the key blobs that match the key alias to be used.

이후 관리 서버(200)는 제2 키 이용 요청 신호를 하드웨어 보안 모듈(100)에 전송하고(S770), 하드웨어 보안 모듈(100)보안키가 적용된 데이터를 수신할 수 있다(S780). 키 이용 요청 신호에는 보안키가 적용될 대상인 데이터 및 키 블랍이 포함될 수 있다. 하드웨어 보안 모듈(100)의 키 처리기(120)는 키 블랍을 보안키로 변환시켜 데이터 처리기(130)에 전달할 수 있다. 그리고, 하드웨어 보안 모듈(100)의 데이터 처리기(130)는 변환된 보안키를 데이터에 적용하고, 그 결과를 관리 서버(200)에 전송할 수 있다. 상기한 데이터가 인증을 위한 데이터인 경우, 데이터 처리기(130)는 보안키로 데이터에 서명한 서명 데이터를 생성하고, 서명 데이터를 관리 서버(200)에 전송할 수 있다. 관리 서버(200)로부터 수신된 데이터가 암호화 또는 복호화를 위한 데이터인 경우, 데이터 처리기(130)는 키 블랍으로부터 변환된 보안키로 데이터를 암호화 또는 복호화하여 암호화한 데이터 또는 복호화한 데이터를 생성할 수 있고, 그 결과를 관리 서버(200)에 전송할 수 있다. Thereafter, the management server 200 may transmit a second key use request signal to the hardware security module 100 (S770), and receive data to which the hardware security module 100 security key is applied (S780). The key use request signal may include data to which the security key is applied and a key blob. The key processor 120 of the hardware security module 100 may convert the key blob into a security key and transmit it to the data processor 130 . In addition, the data processor 130 of the hardware security module 100 may apply the converted security key to data, and transmit the result to the management server 200 . When the above data is data for authentication, the data processor 130 may generate signature data in which the data is signed with the security key, and transmit the signature data to the management server 200 . When the data received from the management server 200 is data for encryption or decryption, the data processor 130 encrypts or decrypts the data with the security key converted from the key blob to generate encrypted data or decrypted data. , the result may be transmitted to the management server 200 .

상기와 같이, 보안키에 대응하는 별도의 키 스토어 파일을 생성하여 하드웨어 보안 모듈(100)이 아닌 다른 기기에 저장함으로써 하드웨어 보안 모듈(100)의 용량을 무제한으로 확장할 수 있다. As described above, by generating a separate key store file corresponding to the security key and storing it in a device other than the hardware security module 100 , the capacity of the hardware security module 100 can be unlimitedly expanded.

또한, 하나의 키 스토어 파일에는 복수 개의 보안키에 대응하는 복수 개의 키 블랍이 포함될 수 있는 바, 소유자별 보안키의 관리가 용이해진다. 또한, 복수 개의 관리 서버가 존재하더라도 하드웨어 보안 모듈 이외의 장치에 키 스토어 파일이 저장되어 있기 때문에 키 블랍을 공유할 수 있다. In addition, since one key store file may include a plurality of key blobs corresponding to a plurality of security keys, management of security keys for each owner is facilitated. In addition, even if a plurality of management servers exist, the key blob can be shared because the key store file is stored in a device other than the hardware security module.

도 8은 다른 실시예에 따른 관리 시스템에서 키 스토어 파일을 생성하는 방법을 설명하는 흐름도이다. 외부기기로부터 보안키 생성을 요청받으면(S810), 관리 서버(200)의 파일 처리기(220)는 보안키 생성을 요청한 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있는지 여부를 판단한다(S820). 예를 들어, 관리 서버(200)는 키 생성 요청 신호에 포함된 보안키의 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일의 명칭이 기저장되어 있는지 여부를 판단한다. 키 스토어 파일이 명칭이 기저장되어 있으면 동일한 소유자의 키 스토어 파일이 기저장되어 있는 것으로 결정할 수 있다. 8 is a flowchart illustrating a method of generating a key store file in a management system according to another embodiment. When receiving a request to generate a security key from an external device (S810), the file processor 220 of the management server 200 determines whether a key store file including the same owner information as the owner information requesting the security key generation is pre-stored. do (S820). For example, the management server 200 determines whether the name of the key store file including the same owner information as the owner information of the security key included in the key generation request signal is pre-stored. If the name of the key store file is pre-stored, it may be determined that the key store file of the same owner is pre-stored.

키 스토어 파일이 기저장되어 있으면(S820-YES) 관리 서버(200)의 파일 처리기(220)는 생성을 요청받은 보안키가 기생성되었는지 여부를 결정할 수 있다(S830). If the key store file is pre-stored (S820-YES), the file processor 220 of the management server 200 may determine whether the security key requested to be generated has been previously generated (S830).

보안키가 기생성된 것으로 판단되면(S830-YES), 관리 서버(200)의 파일 처리기(220)은 보안키 생성이 필요 없음을 알라는 신호를 외부 기기(400)에 전송할 수 있다(S840). If it is determined that the security key is pre-generated (S830-YES), the file processor 220 of the management server 200 may transmit a signal to the external device 400 notifying that generation of the security key is not required (S840) .

보안키가 기생성되지 않은 것으로 판단되면(S840-NO), 관리 서버(200)는 하드웨어 보안 모듈(100)에 제3 키 생성을 요청한다(S845). 키 스토어 파일이 기저장되었다고 함은 이전에 특정 타입의 보안키가 기생성되었음을 의미하는 바, 기생성된 보안키를 제1 키라고 칭하고, 도 8에서 생성 요청을 하는 보안키를 제3 키라고 칭할 수 있다. If it is determined that the security key has not been previously generated (S840-NO), the management server 200 requests the hardware security module 100 to generate a third key (S845). The pre-stored key store file means that a specific type of security key has been previously generated. The pre-generated security key is referred to as a first key, and the security key that requests generation in FIG. 8 is referred to as a third key. can be called

제3 키 생성 요청에 따라 하드웨어 관리 서버(200)는 제3 키를 생성하고, 상기한 제3 키에 대응하는 제3 키 블랍을 생성하며, 제3 키 블랍을 관리 서버(200)에 전송할 수 있다(S850). 보안키는 암호용 키일 수도 있고, 인증용 키일 수도 있다. In response to the third key generation request, the hardware management server 200 may generate a third key, generate a third key blob corresponding to the third key, and transmit the third key blob to the management server 200 . There is (S850). The security key may be an encryption key or an authentication key.

또한, 관리 서버(200)는 키 스토어 파일에 제3 키 블랍을 추가함으로써 키 스토어 파일을 업데이트할 수 있다(S860)Also, the management server 200 may update the key store file by adding a third key blob to the key store file ( S860 ).

상기한 키 스토어 파일은 보안키의 소유자 정보를 포함하는 헤드 영역, 키 블랍을 포함하는 바디 영역 및 인증값을 포함하는 보호 영역을 포함할 수 있다. The key store file may include a head area including owner information of the security key, a body area including a key blob, and a protection area including an authentication value.

제3 키 블랍을 추가할 때, 파일 처리기(220)는 키 스토어 파일의 헤드 영역, 바디 영역 및 보호 영역을 업데이트할 수 있다. 예를 들어, 파일 처리기(220)는 헤드 영역의 키 스토어 파일이 마지막으로 업데이트된 일시(날짜 및 시간)에 대한 정보, 하드웨어 관리 서버(200)에서 생성된 보안키의 개수에 대한 정보 등을 업데이트할 수 있다. When adding the third key blob, the file processor 220 may update the head region, body region, and protection region of the key store file. For example, the file processor 220 updates information on the date and time (date and time) when the key store file in the head area was last updated, information on the number of security keys generated by the hardware management server 200, and the like. can do.

파일 처리기(220)는 바디 영역에 제3 키에 대응하는 제3 키 알리아스(Alias), 제3 키 블랍 및 제3 키 블랍을 해시 함수로 암호화한 제3 키 블랍의 해시값을 추가할 수 있다. The file processor 220 may add a third key alias corresponding to the third key, a third key blob, and a hash value of the third key blob obtained by encrypting the third key blob with a hash function to the body region. .

또한, 관리 서버(200)의 파일 처리기(220)는 키 스토어 파일의 변조 여부를 확인하기 위한 인증값을 하드웨어 모듈을 이용하여 업데이트할 수 있다. 구체적으로, 관리 서버(200)는 하드웨어 보안 모듈(100)에 인증값을 요청할 수 있다. 인증값 요청시 관리서 서버는 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보를 하드웨어 보안 모듈(100)에 제공할 수 있다. In addition, the file processor 220 of the management server 200 may update the authentication value for checking whether the key store file has been tampered with using the hardware module. Specifically, the management server 200 may request an authentication value from the hardware security module 100 . When requesting an authentication value, the management server may provide information included in the head region of the key store file and information included in the body region of the key store file to the hardware security module 100 .

하드웨어 보안 모듈(100)의 키 처리기(120)는 키 소유자 정보 및 하드웨어 보안 모듈(100)에 기저장된 마스터키를 이용하여 유도키를 생성하고, 키 스토어 파일의 헤드 영역에 포함된 정보, 키 스토어 파일의 바디 영역에 포함된 정보 및 유도키를 이용하여 인증값을 생성할 수 있다. 예를 들어, 키 처리기(120)는 ENC 알고리즘을 이용하여 유도키를 생성할 수 있고, HMAC 알고리즘을 이용하여 인증값을 생성할 수 있으나, 이에 한정되지 않는다. 키 처리기(120)는 인증값 생성을 위한 다른 알고리즘을 적용할 수 있음도 물론이다. 하드웨어어 보안 모듈은 생성된 인증값을 관리 서버(200)에 전송함으로서 관리 서버(200)는 인증값을 획득할 수 있다. The key processor 120 of the hardware security module 100 generates a derivation key by using the key owner information and the master key stored in the hardware security module 100, the information included in the head area of the key store file, the key store An authentication value can be generated using the information and the derivation key included in the body region of the file. For example, the key processor 120 may generate the derivation key using the ENC algorithm and may generate the authentication value using the HMAC algorithm, but is not limited thereto. Of course, the key processor 120 may apply another algorithm for generating an authentication value. The hardware language security module transmits the generated authentication value to the management server 200 so that the management server 200 may acquire the authentication value.

그리고, 파일 처리기(220)는 키 스토어 파일의 보호 영역에 상기한 인증값을 포함시킴으로써, 관리 서버(200)는 키 스토어 파일의 업데이트를 완성할 수 있다. 파일 처리기(220)는 키 스토어 파일의 완성시 키 스토어 파일의 헤드 영역의 최종 업데이트 일시를 업데이트할 수 있다. Then, the file processor 220 includes the above-described authentication value in the protected area of the key store file, so that the management server 200 can complete the update of the key store file. The file processor 220 may update the last update date and time of the head area of the key store file upon completion of the key store file.

뿐만 아니라 파일 처리기(220)는 키 스토어 파일의 히스토리도 업데이트할 수 있다(S870). 파일 처리기(220)는 키 스토어 파일을 생성, 삭제, 또는 변경할 때마다 키 스토어 파일의 히스토리를 생성 또는 업데이트할 수 있다. 파일 처리기(220)는 히스토리의 일련 번호, 즉, 히스토리가 생성될 때마다 업데이트되는 번호, 키 스토어 파일의 명칭, 키 스토어 파일을 이용한 일시(접근 일시), 키 스토어 파일을 이용한 형태(예를 들어, 키 스토어 파일의 생성, 삭제, 키 블랍 추가, 키 블랍 삭제, 키 블랍 이용 등등), 키 알라이스, 키 스토어 파일의 인증값, 히스토리 생성하기 직전의 키 스토어 파일의 히스토리에 대한 해시값, 히스토리 생성이후에 생성된 키 스토어 파일의 히스토리에 대한 해시값, 키 스토어 파일이 히스토리를 생성한 일시 중 적어도 하나를 포함할 수 있다. 상기한 키 스토어 파일의 히스토리는 키 스토어 파일의 접근에 대한 감사 목적으로 이용될 수 있다. In addition, the file processor 220 may also update the history of the key store file (S870). The file processor 220 may create or update the history of the key store file whenever the key store file is created, deleted, or changed. The file processor 220 provides the serial number of the history, that is, a number updated every time the history is created, the name of the key store file, the date and time using the key store file (access date and time), and the form using the key store file (for example, , key store file creation, deletion, key blob addition, key blob deletion, key blob use, etc.), key alias, key store file authentication value, history Hash value for the history of key store file just before creation, history It may include at least one of a hash value for the history of the key store file generated after generation, and a date and time when the history of the key store file is generated. The history of the key store file may be used for auditing access to the key store file.

파일 처리기(220)는 업데이트된 키 스토어 파일을 저장부(230)에 저장하고(S875), 업데이트된 키 스토어 파일의 히스토리를 데이터베이스(300)에 저장할 수 있다(S880). The file processor 220 may store the updated key store file in the storage unit 230 (S875), and store the history of the updated key store file in the database 300 (S880).

도 9은 일 실시예에 따른 복수 개의 보안키 관련 정보를 포함하는 키 스토어 파일을 나타내는 참조도면이다. 도 9를 참조하면, 키 스토어 파일의 바디 영역에는 제1 보안키에 대응하는 제1 키 알리아스, 제1 키 블랍의 해시값 및 제1 키 블랍과, 제2 보안키에 대응하는 제2 키 알리아스, 제2 키 블랍의 해시값 및 제2 키 블랍이 포함되어 있다. 그리하여, 하나의 키 스토어 파일에 복수 개의 보안키에 대한 정보를 포함시킬 수 있어, 보안키의 관리가 용이해진다. 9 is a reference diagram illustrating a key store file including a plurality of security key related information according to an embodiment. 9 , in the body region of the keystore file, a first key alias corresponding to the first security key, a hash value of the first key blob, and a first key blob, and a second key alias corresponding to the second security key , a hash value of the second key blob, and the second key blob are included. Thus, it is possible to include information on a plurality of security keys in one key store file, thereby facilitating management of the security keys.

관리 서버(200)는 하나의 하드웨어 보안 모듈(100)을 이용하여 키 스토어 파일을 생성하는 방법에 대해 설명하였다. 그러나, 이에 한정되지 않는다. 복수 개의 관리 서버(200)가 하나의 하드웨어 보안 모듈(100)을 이용하여 키 스토어 파일을 생성 및 이용할 수도 있다. The management server 200 has described a method of generating a key store file using one hardware security module 100 . However, the present invention is not limited thereto. A plurality of management servers 200 may generate and use a key store file using one hardware security module 100 .

예를 들어, 관리 서버가 제1 및 제2 관리 서버를 포함하는 경우, 키 스토어 파일이 제1 관리 서버에 저장되어 있고, 제2 관리 서버가 외부 기기로부터 보안키 생성 또는 보안키 이용을 요청받으면, 제2 관리 서버는 데이터베이스로부터 독출된 키 스토어 파일의 명칭으로부터 키 스토어 파일이 제1 관리 서버에 저장되었음을 확인할 수 있다. 그리고, 제2 관리 서버는 제1 관리 서버로부터 키 스토어 파일을 수신받거나 제1 관리 서버에 보안키 생성 또는 보안키 이용을 요청함으로써 런타임 보안키 동기화를 가능하게 할 수 있다. For example, when the management server includes the first and second management servers, the key store file is stored in the first management server, and the second management server receives a request to generate a security key or use the security key from an external device. , the second management server may confirm that the key store file is stored in the first management server from the name of the key store file read from the database. In addition, the second management server may enable runtime security key synchronization by receiving a key store file from the first management server or requesting the first management server to generate a security key or use the security key.

지금까지 기술한 보안키와 관련된 키 스토어 파일을 생성하는 보안키 관리 서버(200)는 하나의 하드웨어 장치로 구현될 필요는 없다. 기능에 따라 분리된 서버들의 조합일 수도 있다. 예를 들어, 보안키 관리 서버(200)는 키 스토어 파일을 생성하는 서버, 키 스토어 파일을 인증하는 서버 등의 조합일 수도 있다. 한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.The security key management server 200 that generates the key store file related to the security key described so far does not need to be implemented as a single hardware device. It may be a combination of servers separated according to functions. For example, the security key management server 200 may be a combination of a server that generates a key store file, a server that authenticates the key store file, and the like. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. In addition, the structure of the data used in the above-described embodiment of the present invention may be recorded in a computer-readable recording medium through various means. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optically readable medium (eg, a CD-ROM, a DVD, etc.).

이제까지 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the preferred embodiments have been mainly looked at. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in modified forms without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

Claims (14)

외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 수신하는 단계;
상기 소유자 정보 및 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 수신하는 단계;
상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하는 단계;
상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하는 단계; 및
상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 장치에 저장하는 단계;를 포함하고,
상기 스토어 파일을 생성하는 단계는,
상기 다른 장치에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하는 단계; 및
상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면, 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트하는 단계;를 포함하는 보안키 관리 방법.
When receiving a key generation request signal including owner information to own the security key from an external device, transmitting the key generation request signal to a hardware security module, and receiving a key blob corresponding to the security key from the hardware security module step;
transmitting an authentication value request signal including the owner information and the key blob to the hardware security module, and receiving an authentication value corresponding to the authentication value request signal from the hardware security module;
generating a key store file including the key blob and the authentication value;
generating a name of the key store file based on the owner information; and
Storing the key store file and the names of the key store files in a device other than the hardware security module;
The step of creating the store file is,
checking whether a key store file including the same owner information as the owner information is stored in the other device; and
and updating the key blob and the authentication value to the previously stored key store file if a key store file including the same owner information is previously stored.
제 1항에 있어서,
상기 키 스토어 파일은,
상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함하는 보안키 관리 방법.
The method of claim 1,
The keystore file is
A security key management method comprising: a head area including the owner information; a body area including the key blob; and a protection area including the authentication value.
제 2항에 있어서,
상기 인증값은,
상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값인 보안키 관리 방법.
3. The method of claim 2,
The authentication value is
The hardware security module generates a derivation key using the owner information and the pre-stored master key, and manages the security key that is the information included in the head region, information included in the body region, and a value generated using the derivation key. method.
제 1항에 있어서,
상기 키 스토어 파일의 명칭은
상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함하는 보안키 관리 방법.
The method of claim 1,
The name of the keystore file is
A security key management method comprising information on a character string derived from the owner information and a date and time when the key store file was created.
제 1항에 있어서,
상기 키 스토어 파일의 명칭은
2바이트 단위의 배타적 논리합한 값으로 그룹핑하여 저장되는 보안키 관리 방법.
The method of claim 1,
The name of the keystore file is
A security key management method that is grouped and stored as an exclusive OR value of 2-byte units.
삭제delete 제 1항에 있어서,
소유자 정보 및 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 상기 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 키 스토어 파일의 명칭을 상기 다른 장치로부터 독출하는 단계;
상기 키 스토어 파일의 명칭에 매칭된 키 스토어 파일을 획득하는 단계;
상기 키 스토어 파일에 포함된 상기 인증값을 이용하여 상기 키 스토어 파일을 검증하는 단계
상기 인증값에 대한 검증이 완료되면, 상기 키 스토어 파일로부터 키 블랍을 획득하는 단계;
상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 하드웨어 보안 모듈에 전송하고, 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신하는 단계;를 포함하는 보안키 관리 방법.
The method of claim 1,
When a first key use request signal including owner information and data to use the security key is received from the external device, the name of the key store file corresponding to the owner information included in the first key use request signal is retrieved from the other device. reading;
obtaining a key store file matching the name of the key store file;
verifying the key store file by using the authentication value included in the key store file;
obtaining a key blob from the key store file when verification of the authentication value is completed;
and transmitting a second key use request signal including the key blob and the data to the hardware security module, and receiving data to which the security key is applied from the hardware security module.
외부 기기 및 하드웨어 보안 모듈과 통신하는 통신부; 및
상기 통신부를 통해 상기 외부 기기로부터 보안키를 소유할 소유자 정보를 포함하는 키 생성 요청 신호를 수신하면, 상기 키 생성 요청 신호를 하드웨어 보안 모듈에 요청하고 상기 하드웨어 보안 모듈로부터 상기 보안키에 대응하는 키 블랍을 획득하며,
상기 통신부를 통해 상기 소유자 정보 및 상기 키 블랍을 포함하는 인증값 요청 신호를 상기 하드웨어 보안 모듈에 요청하고, 상기 하드웨어 보안 모듈로부터 상기 인증값 요청 신호에 대응하는 인증값을 획득하고
상기 키 블랍 및 상기 인증값을 포함하는 키 스토어 파일을 생성하고, 상기 소유자 정보를 기초로 상기 키 스토어 파일의 명칭을 생성하며, 상기 키 스토어 파일 및 상기 키 스토어 파일의 명칭을 상기 하드웨어 보안 모듈이 아닌 다른 장치에 저장하는 파일 처리기;를 포함하고,
상기 파일 처리기는,
상기 다른 장치에 상기 소유자 정보와 동일한 소유자 정보를 포함하는 키 스토어 파일이 저장되어 있는지 확인하고, 상기 동일한 소유자 정보를 포함하는 키 스토어 파일이 기저장되어 있으면 상기 키 블랍 및 상기 인증값을 기저장된 키 스토어 파일에 업데이트하는 보안키 관리 서버.
a communication unit communicating with an external device and a hardware security module; and
When receiving a key generation request signal including owner information to own the security key from the external device through the communication unit, the key generation request signal is requested to the hardware security module and a key corresponding to the security key from the hardware security module get blobs,
requesting an authentication value request signal including the owner information and the key blob to the hardware security module through the communication unit, and obtaining an authentication value corresponding to the authentication value request signal from the hardware security module;
generates a key store file including the key blob and the authentication value, generates a name of the key store file based on the owner information, and sets the name of the key store file and the key store file by the hardware security module a file handler that stores it on a device other than
The file handler,
It is checked whether a key store file including the same owner information as the owner information is stored in the other device, and if a key store file including the same owner information is pre-stored, the key blob and the authentication value are stored in a pre-stored key Security key management server that updates the store file.
제 8항에 있어서,
상기 키 스토어 파일은,
상기 소유자 정보를 포함한 헤드 영역, 상기 키 블랍을 포함하는 바디 영역 및 상기 인증값을 포함하는 보호 영역을 포함하는 보안키 관리 서버.
9. The method of claim 8,
The keystore file is
A security key management server comprising a head area including the owner information, a body area including the key blob, and a protection area including the authentication value.
제 9항에 있어서,
상기 인증값은,
상기 하드웨어 보안 모듈이 상기 소유자 정보 및 기저장된 마스터키를 이용하여 유도키를 생성하고, 상기 헤드 영역에 포함된 정보, 상기 바디 영역에 포함된 정보 및 상기 유도키를 이용하여 생성된 값인 보안키 관리 서버.
10. The method of claim 9,
The authentication value is
The hardware security module generates a derivation key using the owner information and the pre-stored master key, and manages the security key that is the information included in the head region, information included in the body region, and a value generated using the derivation key. server.
제 8항에 있어서,
상기 파일 처리기는,
상기 소유자 정보로부터 유도된 문자열 및 상기 키 스토어 파일이 생성된 일시에 대한 정보를 포함하도록 상기 키 스토어 파일의 명칭을 생성하는 보안키 관리 서버.
9. The method of claim 8,
The file handler,
A security key management server for generating a name of the key store file to include a character string derived from the owner information and information on a date and time when the key store file was created.
제 8항에 있어서,
상기 파일 처리기는,
상기 키 스토어 파일의 명칭이 2바이트 단위의 배타적 논리합한 값으로 그룹핑되어 저장되도록 하는 보안키 관리 서버.
9. The method of claim 8,
The file handler,
A security key management server for grouping and storing the names of the key store files as exclusive OR values of 2-byte units.
삭제delete 제 8항에 있어서,
상기 파일 처리기는,
상기 통신부를 통해 상기 소유자 정보 및 상기 보안키를 이용할 데이터를 포함하는 제1 키 이용 요청 신호를 상기 외부기기로부터 수신받으면, 제1 키 이용 요청 신호에 포함된 소유자 정보에 대응하는 상기 키 스토어 파일을 획득하고, 상기 키 스토어 파일로부터 상기 키 블랍을 획득하며,
상기 통신부를 통해 상기 키 블랍 및 상기 데이터를 포함하는 제2 키 이용 요청 신호를 상기 하드웨어 보안 모듈에 전송하여 상기 하드웨어 보안 모듈로부터 상기 보안키가 적용된 데이터를 수신하는 보안키 관리 서버.
9. The method of claim 8,
The file handler,
When a first key use request signal including the owner information and data to use the security key is received from the external device through the communication unit, the key store file corresponding to the owner information included in the first key use request signal is received. obtain, obtain the key blob from the key store file,
A security key management server that transmits a second key use request signal including the key blob and the data to the hardware security module through the communication unit to receive the data to which the security key is applied from the hardware security module.
KR1020190094543A 2019-08-02 2019-08-02 System and method for providing electronic signature service KR102289478B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190094543A KR102289478B1 (en) 2019-08-02 2019-08-02 System and method for providing electronic signature service
PCT/KR2020/010188 WO2021025403A2 (en) 2019-08-02 2020-08-03 Security key management method and security key management server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190094543A KR102289478B1 (en) 2019-08-02 2019-08-02 System and method for providing electronic signature service

Publications (2)

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

Family

ID=74503451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190094543A KR102289478B1 (en) 2019-08-02 2019-08-02 System and method for providing electronic signature service

Country Status (2)

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

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

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009516961A (en) * 2005-11-18 2009-04-23 サンディスク コーポレーション Method and system for managing key and / or rights objects
KR100990973B1 (en) * 2007-11-14 2010-11-19 한국전력공사 Apparatus of processing data using raw area of removable storage device
KR101190060B1 (en) * 2008-12-12 2012-10-11 한국전자통신연구원 Apparatus for managing Identity data and method thereof
KR102124413B1 (en) * 2013-12-30 2020-06-19 삼성에스디에스 주식회사 System and method for identity based key management
US10754960B2 (en) * 2017-11-17 2020-08-25 Intel Corporation Support for increased number of concurrent keys within multi-key cryptographic engine

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
KR20210015534A (en) 2021-02-10
WO2021025403A3 (en) 2021-04-01
WO2021025403A2 (en) 2021-02-11

Similar Documents

Publication Publication Date Title
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
KR101999188B1 (en) Secure personal devices using elliptic curve cryptography for secret sharing
US10680808B2 (en) 1:N biometric authentication, encryption, signature system
EP3701668B1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
KR101888903B1 (en) Methods and apparatus for migrating keys
KR102322118B1 (en) Private key securing methods of decentralizedly storying keys in owner's device and/or blockchain nodes
US9043610B2 (en) Systems and methods for data security
KR20210066867A (en) An encrypted asset encryption key portion that allows assembly of an asset encryption key using a subset of the encrypted asset encryption key portion.
US8369521B2 (en) Smart card based encryption key and password generation and management
KR101897715B1 (en) System for non-password secure biometric digital signagure
US11606206B2 (en) Recovery key for unlocking a data storage device
US11334677B2 (en) Multi-role unlocking of a data storage device
EP3711256B1 (en) Cryptographic key generation for logically sharded data stores
US11899803B2 (en) System for implementing enhanced file encryption technique
CN111242611A (en) Method and system for recovering digital wallet key
TWI476629B (en) Data security and security systems and methods
CN113383335B (en) Secure logging of data storage device events
TW201223225A (en) Method for personal identity authentication utilizing a personal cryptographic device
KR102289478B1 (en) System and method for providing electronic signature service
WO2017091133A1 (en) Method and system for secure storage of information
JP4350961B2 (en) Data processing device
KR102357698B1 (en) Private key management method using partial hash value
CN115221535A (en) Managing sensitive information using trusted platform modules
JP2020191552A (en) Share distribution system and method
TWI844338B (en) Passwordless authentication method and computer program product

Legal Events

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