KR102576819B1 - Cloud HSM system for providing financing token and security token and method thereof - Google Patents

Cloud HSM system for providing financing token and security token and method thereof Download PDF

Info

Publication number
KR102576819B1
KR102576819B1 KR1020230011464A KR20230011464A KR102576819B1 KR 102576819 B1 KR102576819 B1 KR 102576819B1 KR 1020230011464 A KR1020230011464 A KR 1020230011464A KR 20230011464 A KR20230011464 A KR 20230011464A KR 102576819 B1 KR102576819 B1 KR 102576819B1
Authority
KR
South Korea
Prior art keywords
token
hsm
terminal device
user terminal
security
Prior art date
Application number
KR1020230011464A
Other languages
Korean (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 KR1020230011464A priority Critical patent/KR102576819B1/en
Application granted granted Critical
Publication of KR102576819B1 publication Critical patent/KR102576819B1/en

Links

Images

Classifications

    • 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
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • 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/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템 및 그의 금융 토큰과 보안 토큰 발급 방법이 개시된다. 사용자 단말 장치는 응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램을 저장하고, HSM 서버는 클라우드 환경에서 동작하며, 상기 HSM 클라이언트 프로그램과 연동하여 HSM 서비스를 제공하며, 사용자 단말 장치로부터 토큰 생성이 요청되면, 보안 토큰을 생성하고, 생성된 보안 토큰의 종류를 금융 토큰 및 보안 토큰 중 하나로 설정할 수 있다.A cloud HSM system capable of issuing financial tokens and security tokens and its method of issuing financial tokens and security tokens are disclosed. The user terminal device stores application programs and HSM (Hardware Security Module) client programs, and the HSM server operates in a cloud environment and provides HSM services in conjunction with the HSM client program. When token generation is requested from the user terminal device, , you can create a security token and set the type of the generated security token to one of financial tokens and security tokens.

Description

금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템 및 그의 금융 토큰과 보안 토큰 발급 방법{Cloud HSM system for providing financing token and security token and method thereof}Cloud HSM system capable of issuing financial tokens and security tokens and its method of issuing financial tokens and security tokens {Cloud HSM system for providing financing token and security token and method thereof}

본 발명은 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템 및 그의 금융 토큰과 보안 토큰 발급 방법에 관한 것으로, 보다 구체적으로, 표준 인터페이스(pkcs#11)를 유지하면서 보안 토큰과 금융 토큰으로서의 기능을 수행할 수 있는 클라우드 HSM 시스템 및 그의 금융 토큰과 보안 토큰 발급 방법에 관한 것이다. The present invention relates to a cloud HSM system capable of issuing financial tokens and security tokens and its method of issuing financial tokens and security tokens. More specifically, it performs functions as a security token and a financial token while maintaining a standard interface (pkcs#11). It relates to a cloud HSM system and its method of issuing financial tokens and security tokens.

일반적으로 인증서와 개인키는 공인인증서의 경우처럼 파일 형태로 존재하며 사용하기 위해서 메모리로 로드를 한 후에 패스워드로 암호화된 개인키를 복호화 하여 그 키를 메모리에서 사용한다.In general, certificates and private keys exist in the form of files, as in the case of public certificates, and to use them, they are loaded into memory, then the private key encrypted with a password is decrypted and the key is used in memory.

그런데 이러한 방식은 파일 형태로 가져간 뒤에 키로깅을 하여 패스워드를 가로채는 방식으로 탈취를 하거나 암호화가 풀린 메모리 상에서 가져가는 방식을 위하며 Heart Bleed와 같은 공격이 메모리 상의 서버 인증서를 가져가는 공략법으로 널리 알려져 있다.However, this method is intended to steal the password by taking it in the form of a file and intercepting the password through keylogging, or taking it from the decrypted memory, and attacks such as Heart Bleed are widely known as a strategy of taking the server certificate in the memory. .

이러한 방식으로 인증서나 키를 파일이나 메모리 상에 노출되는 것을 막아 보안을 강화하는 방법으로 별도의 하드웨어를 두어 키를 꺼내지 못하게 한 뒤에 서명, 암호화나 복호화처럼 비밀키를 사용할 일이 있을 경우 그 장비에 보내어 작업을 한 후에 그 결과를 받는 방식으로 동작 키를 안전하게 보호하는 방식이 하드웨어 보안 모듈(HSM, Hardware Security Module)의 동작 방식이다.In this way, security is strengthened by preventing the certificate or key from being exposed in files or memory. After installing separate hardware to prevent the key from being removed, if the secret key is to be used for signing, encryption, or decryption, the device must be used. The hardware security module (HSM) operates by safely protecting the operation key by sending it, performing an operation, and then receiving the result.

HSM의 범주에는 보안 토큰도 들어간다. 다만 보안 토큰이 사용되는 매체는 일반 사용자 단말이다. 클라우드 HSM을 보안 토큰으로 사용하면 하드웨어 장치를 들고 다니지 않고도 사용가능하므로 사용의 편리성이 올라가고, 개인 컴퓨터에서만 사용가능한 것이 아니라 단말기를 가리지 않고 사용할 수 있다는 장점이 있다.Security tokens also fall into the category of HSM. However, the medium through which security tokens are used is a general user terminal. Using a cloud HSM as a security token increases convenience of use because it can be used without carrying a hardware device, and has the advantage of being able to be used on any terminal rather than only on a personal computer.

그러나, 한국의 금융환경에서는 토큰을 이용한 서명 시 키가 개인의 소유 영역(즉, 개인 컴퓨터, 개인 스마트폰, 개인 저장매체 등)에 있어야 한다. 따라서, 보안 토큰을 통한 전자서명은 사용가능하지만, 클라우드 HSM을.기반으로 한 보안 토큰은 서명이 원격에 있는 클라우드 HSM서버에서 이루어지기 때문에 금융환경에서는 이를 이용할 수가 없다.However, in Korea's financial environment, when signing using a token, the key must be in the individual's possession (i.e., personal computer, personal smartphone, personal storage medium, etc.). Therefore, electronic signatures through security tokens can be used, but cloud HSM-based security tokens cannot be used in a financial environment because the signature is made on a remote cloud HSM server.

이로 인하여 현재 전용 API(Application Programming Interface)나 서비스를 통한 인증서를 이동하여 해당 단말에서 전자서명을 해주는 방식이 널리 사용되고 있는데 이는 비표준적인 방식이어서 확장과 범용적인 용도에 제약이 발생하게 된다. 예를 들어, API를 호출하여 사용하는 기관에서만 사용할 수 있는 제약이 발생해 사용자가 자신의 인증서를 다양한 사이트에서 사용하고 싶어도 API를 사용하지 않는 사이트에서는 사용할 수 없다.As a result, the method of transferring a certificate through a dedicated API (Application Programming Interface) or service and signing an electronic signature on the terminal is widely used. However, this is a non-standard method, which causes limitations in expansion and general use. For example, there is a restriction that it can only be used by organizations that call and use the API, so even if users want to use their certificate on various sites, they cannot use it on sites that do not use the API.

국내 등록특허 10-2258215호 (2021년 5월25일 등록)Domestic registered patent No. 10-2258215 (registered on May 25, 2021)

본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로, 클라우드 HSM 환경에서 표준 인터페이스를 유지하면서 금융용 환경과 일반 환경에서 토큰을 사용하도록 할 수 있는 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템 및 그의 금융 토큰과 보안 토큰 발급 방법을 제공하는 것이다.The purpose of the present invention is to solve the above problems, a cloud HSM system capable of issuing financial tokens and security tokens that allow tokens to be used in financial and general environments while maintaining a standard interface in the cloud HSM environment, and It provides methods for issuing financial tokens and security tokens.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술 분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

상기와 같은 목적을 달성하기 위하여 본 발명의 실시예에 따르면, 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템은, 응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램이 저장되는 사용자 단말 장치; 및 클라우드 환경에서 동작하며, 상기 HSM 클라이언트 프로그램과 연동하여 HSM 서비스를 제공하는 HSM 서버를 포함하고, 상기 HSM 서버는, 상기 사용자 단말 장치의 응용 프로그램이 HSM 서비스를 이용하기 위해 HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 이용하여 토큰 생성을 요청하면, 토큰을 생성하고, 상기 생성된 토큰의 종류를 금융 토큰 및 보안 토큰 중 하나로 설정할 수 있다.In order to achieve the above object, according to an embodiment of the present invention, a cloud HSM system capable of issuing financial tokens and security tokens includes a user terminal device storing an application program and a Hardware Security Module (HSM) client program; and an HSM server that operates in a cloud environment and provides HSM services in conjunction with the HSM client program, wherein the HSM server configures a standard provided by the HSM server for an application of the user terminal device to use the HSM service. When requesting token creation using an API (Application Programming Interface), a token can be created and the type of the generated token can be set to one of a financial token and a security token.

상기 HSM 서버는, 상기 사용자 단말 장치로부터 전자 서명이 요청되면, 기설정된 토큰 종류에 따라 HSM 서버에서 서명 절차를 선택적으로 수행할 수 있다.When an electronic signature is requested from the user terminal device, the HSM server may selectively perform a signature procedure at the HSM server according to a preset token type.

상기 HSM 서버는, 상기 기설정된 토큰의 종류가 금융 토큰이면, 기저장된 개인키를 추출하여 상기 사용자 단말 장치로 전송하고, 상기 기설정된 토큰의 종류가 보안 토큰이면, 상기 기저장된 개인키로 전자서명하여 생성되는 서명문을 상기 사용자 단말 장치로 전송할 수 있다.If the type of the preset token is a financial token, the HSM server extracts a pre-stored private key and transmits it to the user terminal device, and if the type of the preset token is a security token, electronically signs the pre-stored private key. The generated signature can be transmitted to the user terminal device.

상기 HSM 서버는, 상기 기설정된 토큰의 종류가 금융 토큰인 경우, 상기 보안 토큰이 사용하는 상기 표준 API를 이용하여 상기 개인키를 사용자 단말 장치로 전송할 수 있다.If the type of the preset token is a financial token, the HSM server may transmit the private key to the user terminal device using the standard API used by the security token.

상기 사용자 단말 장치는, 상기 기설정된 토큰의 종류가 금융 토큰인 경우, 상기 HSM 서버로부터 수신되는 개인키로 전자서명을 수행하고, 전자서명이 완료되면 상기 개인키를 폐기처리할 수 있다.If the type of the preset token is a financial token, the user terminal device may perform an electronic signature using a private key received from the HSM server, and discard the private key when the electronic signature is completed.

한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 실시예에 따르면, 클라우드 HSM 시스템의 금융 토큰과 보안 토큰 발급 방법은, (A) 사용자 단말 장치가, 응용 프로그램이 실행되면 HSM(Hardware Security Module) 클라이언트 프로그램에 의해, HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 이용하여 토큰 생성을 요청하는 단계; 및 (B) 상기 HSM 서버가, 상기 사용자 단말 장치의 요청에 따라 보안 토큰을 생성하고, 상기 생성된 보안 토큰의 종류를 금융 토큰 및 보안 토큰 중 하나로 설정하는 단계;를 포함할 수 있다.Meanwhile, in order to achieve the above object, according to an embodiment of the present invention, the method of issuing financial tokens and security tokens in the cloud HSM system is: (A) When the user terminal device executes the application, HSM (Hardware Security Module) Requesting token creation by a client program using a standard API (Application Programming Interface) provided by the HSM server; And (B) the HSM server, generating a security token according to the request of the user terminal device, and setting the type of the generated security token to one of a financial token and a security token.

(C) 상기 HSM 서버는, 상기 사용자 단말 장치로부터 토큰 서명이 요청되면, 기설정된 토큰 종류에 따라 HSM 서버에서 서명 절차를 선택적으로 수행하는 단계;를 더 포함할 수 있다.(C) The HSM server may further include, when a token signature is requested from the user terminal device, selectively performing a signature procedure at the HSM server according to a preset token type.

상기 (C) 단계는, 상기 기설정된 토큰의 종류가 금융 토큰이면, 기저장된 개인키를 추출하여 상기 사용자 단말 장치로 전송하고, 상기 기설정된 토큰의 종류가 보안 토큰이면, 상기 기저장된 개인키로 전자서명하여 생성되는 서명문을 상기 사용자 단말 장치로 전송할 수 있다.In step (C), if the type of the preset token is a financial token, a pre-stored private key is extracted and transmitted to the user terminal device, and if the type of the preset token is a security token, the pre-stored private key is used to send an electronic key to the user terminal device. The signature generated by signing can be transmitted to the user terminal device.

상기 (C) 단계는, 상기 기설정된 토큰의 종류가 금융 토큰인 경우, 상기 보안 토큰이 사용하는 상기 표준 API를 이용하여 상기 개인키를 사용자 단말 장치로 전송할 수 있다.In step (C), when the type of the preset token is a financial token, the private key can be transmitted to the user terminal device using the standard API used by the security token.

(D) 상기 사용자 단말 장치가, 상기 기설정된 토큰의 종류가 금융 토큰인 경우, 상기 HSM 서버로부터 수신되는 개인키로 전자서명을 수행하고, 전자서명이 완료되면 상기 개인키를 폐기처리하는 단계;를 더 포함할 수 있다. (D) the user terminal device, when the type of the preset token is a financial token, performing an electronic signature with a private key received from the HSM server, and discarding the private key when the electronic signature is completed; More may be included.

본 발명은, 클라우드 HSM 환경에서 금융 토큰에 저장된 키를 보안 토큰이 사용하는 표준 API를 변환없이 그대로 이용하여 사용자 단말 장치(100)로 전송하는 것이 가능하며, 이로서 PKCS#11의 표준 인터페이스는 유지하면서 금융 토큰과 보안 토큰으로서의 기능을 수행할 수 있다. 즉, 전용API를 사용하는 방식이 이용 사이트에 제약이 발생할 수 있으나 표준 API를 통해서 보안 토큰 뿐만 아니라 금융 토큰 요구사항(소유자 단말 장치(100)에서의 서명)을 충족시켜 강한 보안성을 원하는 고객에게는 보안 토큰으로서 사용가능하게 하고, 금융환경에서 사용할 때는 금융 토큰으로서 사용가능하게 함으로써 HSM의 서비스 경쟁력과 가치를 높일 수 있다.The present invention makes it possible to transmit a key stored in a financial token in a cloud HSM environment to the user terminal device 100 by using the standard API used by the security token without conversion, thereby maintaining the standard interface of PKCS#11. It can function as a financial token and security token. In other words, using a dedicated API may cause restrictions on the usage site, but for customers who want strong security by satisfying not only security token but also financial token requirements (signature on the owner terminal device 100) through the standard API. By making it usable as a security token and as a financial token when used in a financial environment, the service competitiveness and value of HSM can be increased.

또한, 본 발명은 클라우드 환경에서 동작하는 경우 HSM 서버에 사용자 마다 하나 이상의 금융 토큰과 하나 이상의 보안 토큰을 생성하여 이용하도록 하여 사용자 편의를 높일 수 있다.Additionally, when operating in a cloud environment, the present invention can increase user convenience by allowing each user to generate and use one or more financial tokens and one or more security tokens on the HSM server.

본 발명의 효과들은 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명의 기술 분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명의 실시 예에 따른 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템을 도시한 도면,
도 2는 PKCS #11 API를 13개의 카테고리로 분류한 표를 도시한 도면,
도 3은 본 발명의 실시예에 따른 클라우드 HSM 시스템의 보안 강화 방법 중 토큰 생성 방법을 간략히 도시한 흐름도,
도 4는 클라우드 HSM 시스템의 보안 강화 방법 중 금융 토큰 또는 보안 토큰의 서명 방법을 간략히 도시한 흐름도, 그리고,
도 5는 본 발명의 실시예에 따른 클라우드 HSM 시스템에서 표준 API의 함수를 이용한 보안 강화 방법을 도시한 흐름도이다.
1 is a diagram illustrating a cloud HSM system capable of issuing financial tokens and security tokens according to an embodiment of the present invention;
Figure 2 is a diagram showing a table classifying PKCS #11 API into 13 categories;
Figure 3 is a flowchart briefly showing a token generation method among the security enhancement methods of the cloud HSM system according to an embodiment of the present invention;
Figure 4 is a flowchart briefly showing a method of signing a financial token or security token among the security enhancement methods of the cloud HSM system, and
Figure 5 is a flowchart showing a method of enhancing security using a standard API function in a cloud HSM system according to an embodiment of the present invention.

본 발명은 취지를 벗어나지 않는 한도에서 다양하게 변경하여 실시할 수 있고, 예를 들어 PKCS#11이 아닌 MS CNG(Cryptography API: Next Generation)나 JCE(Java Cryptography Extension)와 같이 다른 표준인터페이스를 사용할 수도 있고, 다른 하나 이상의 실시 예를 가질 수 있다. 그리고 본 발명에서 "발명을 실시하기 위한 구체적인 내용" 및 "도면" 등에 기재한 실시 예는, 본 발명을 구체적으로 설명하기 위한 예시이며, 본 발명의 권리 범위를 제한하거나 한정하는 것은 아니다.The present invention can be implemented with various changes without departing from the spirit, and for example, other standard interfaces such as MS CNG (Cryptography API: Next Generation) or JCE (Java Cryptography Extension) other than PKCS#11 may be used. and may have one or more other embodiments. In addition, the examples described in the present invention, such as "specific details for carrying out the invention" and "drawings", are examples for specifically explaining the present invention, and do not limit or limit the scope of the present invention.

따라서, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자가, 본 발명의 "발명을 실시하기 위한 구체적인 내용" 및 "도면" 등으로부터 용이하게 유추할 수 있는 것은, 본 발명의 범위에 속하는 것으로 해석할 수 있다.Accordingly, what a person skilled in the art of the present invention can easily infer from the "specific details for carrying out the invention" and "drawings" of the present invention shall be interpreted as falling within the scope of the present invention. can do.

또한, 도면에 표시한 각 구성 요소들의 크기와 형태는, 실시 예의 설명을 위해 과장되어 표현한 것 일 수 있으며, 실제로 실시되는 발명의 크기와 형태를 한정하는 것은 아니다.In addition, the size and shape of each component shown in the drawings may be exaggerated for description of the embodiment, and do not limit the size and shape of the invention in actual practice.

본 발명의 명세서에서 사용되는 용어를 특별히 정의하지 않는 이상, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 것과 동일한 의미를 가질 수 있다.Unless the terms used in the specification of the present invention are specifically defined, they may have the same meaning as those generally understood by those skilled in the art to which the present invention pertains.

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요 소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성 요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다. 명세에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합 한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도 록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것 만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다. A component (e.g., a first component) is “(operatively or communicatively) coupled with/to” another component (e.g., a second component). When referred to as “connected to,” it should be understood that any component may be directly connected to the other component or may be connected through another component (e.g., a third component). On the other hand, when a component (e.g., a first component) is said to be “directly connected” or “directly connected” to another component (e.g., a second component), It may be understood that no other component (e.g., a third component) exists between other components. The expression "configured to" used in the specification may be used depending on the context, for example, "suitable for," "having the capacity to." ," can be used interchangeably with "designed to," "adapted to," "made to," or "capable of." . The term “configured (or set to)” may not necessarily mean “specifically designed to” in hardware. Instead, in some contexts, the expression “a device configured to” may mean that the device is “capable of” working with other devices or components. For example, the phrase "subprocessor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing those operations (e.g., an embedded processor), or executing one or more software programs stored on a memory device. By doing so, it may mean a general-purpose processor (eg, CPU or application processor) capable of performing the corresponding operations.

이하, 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

도 1은 본 발명의 실시 예에 따른 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템을 도시한 도면이다. Figure 1 is a diagram illustrating a cloud HSM system capable of issuing financial tokens and security tokens according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템은 사용자 단말 장치(100) 및 HSM 서버(200)를 포함할 수 있다.Referring to FIG. 1, a cloud HSM system capable of issuing financial tokens and security tokens according to an embodiment of the present invention may include a user terminal device 100 and an HSM server 200.

사용자 단말 장치(100)는 HSM 서버(200)와 통신하여 HSM 서비스를 이용할 수 있다. 사용자 단말 장치(100)는 사용자가 사용하는 컴퓨팅 장치로, 스마트폰, 태블릿, 노트북 및/또는 데스크탑 등일 수 있다.The user terminal device 100 can use the HSM service by communicating with the HSM server 200. The user terminal device 100 is a computing device used by a user and may be a smartphone, tablet, laptop, and/or desktop.

사용자 단말 장치(100)는 HSM 클라이언트 프로그램을 통해 HSM 서버(200)와 연동하여 응용 프로그램에서 필요로 하는 서명 요청, 암호화 요청, 복호화 요청 등 보안과 관련된 HSM 서비스를 사용할 수 있다. 이를 위하여, 사용자 단말 장치(100)의 저장부에는 하나 이상의 응용 프로그램(Application)과 HSM 클라이언트 프로그램이 저장되어 실행될 수 있다.The user terminal device 100 can use security-related HSM services such as signature requests, encryption requests, and decryption requests required by the application by linking with the HSM server 200 through the HSM client program. To this end, one or more applications and an HSM client program may be stored and executed in the storage unit of the user terminal device 100.

응용 프로그램은 사용자가 필요로 하는 기능을 제공하는 프로그램으로서 사용자가 설치, 실행 또는 삭제할 수 있다. 응용 프로그램은 예를 들어, WAS(Web Application Server), 자바 어플리케이션, 공동인증서 툴킷을 포함하는 프로그램으로서 금융 업무를 위한 프로그램이거나, 개인 인증을 필요로 하는 일반 프로그램(예를 들어, 관공서)일 수 있다.An application program is a program that provides functions needed by the user and can be installed, run, or deleted by the user. The application program includes, for example, WAS (Web Application Server), a Java application, and a joint certificate toolkit, and may be a program for financial services or a general program that requires personal authentication (e.g., government offices). .

HSM 클라이언트 프로그램은 사용자 단말 장치(100)에서 실행되는 응용 프로그램을 위하여 HSM 서버(200)에서 제공하는 드라이버 소프트웨어일 수 있다. HSM 클라이언트 프로그램은 쉐어드 라이브러리(Shared Library) 형태로 제공될 수 있으며, 응용 프로그램은 HSM 서버(200)가 제공하는 PKCS(Public Key Cryptography Standard)#11 라이브러리를 로드(load)하여 표준 API(Application Programming Interface)를 호출(call)할 수 있다. 즉, HSM 클라이언트 프로그램은 라이브러리로 혼자 동작하지 못하며 응용 프로그램이 동적으로 로딩하여 원하는 기능을 호출할 수 있다. PKCS#11은 API HSM 장비를 호출하기 위해 만든 표준 인터페이스 중 하나이다. The HSM client program may be driver software provided by the HSM server 200 for an application program running on the user terminal device 100. The HSM client program can be provided in the form of a shared library, and the application loads the PKCS (Public Key Cryptography Standard) #11 library provided by the HSM server 200 and uses the standard API (Application Programming Interface) can be called. In other words, the HSM client program cannot operate alone as a library, and the application can dynamically load it and call the desired function. PKCS#11 is one of the standard interfaces created to call API HSM devices.

도 2는 PKCS #11 API를 13개의 카테고리로 분류한 표를 도시한 도면이다.Figure 2 is a diagram showing a table classifying the PKCS #11 API into 13 categories.

도 2를 참조하면, PKCS #11 API는 13개의 카테고리로 분류되고 각 카테고리는 한 개 이상의 표준 API를 포함한다. PKCS#11이 아닌 다른 표준 API를 사용할 경우에는 이에 대응되는 API로 대체될 수 있다.Referring to Figure 2, PKCS #11 API is classified into 13 categories, and each category includes one or more standard APIs. If a standard API other than PKCS#11 is used, it can be replaced with the corresponding API.

HSM 서버(200)는 클라우드 환경에서 동작하며, 사용자 단말 장치(100)의 응용 프로그램이 표준 API를 호출하여 요청한 HSM 서비스(즉, HSM 기능)를 제공하는 컴퓨팅 장치일 수 있다. The HSM server 200 operates in a cloud environment and may be a computing device that provides an HSM service (i.e., HSM function) requested by an application of the user terminal device 100 by calling a standard API.

HSM 서버(200)는 개인키, 대칭키 등의 암호키를 안전하게 보관하는 장비로서, 표준 API인 PKCS#11 API를 제공하여 HSM 서버(200)에 저장된 키 정보 및 암호 모듈 기능을 활용 가능하게 한다.The HSM server 200 is a device that safely stores encryption keys such as private keys and symmetric keys, and provides PKCS#11 API, a standard API, to enable use of key information and encryption module functions stored in the HSM server 200. .

이를 위하여, HSM 서버(200)는 사용자 단말 장치(100)의 응용 프로그램이 HSM 서비스를 이용하기 위해 HSM 서버(200)에서 제공하는 표준 API(예를 들어, PKCS#11)를 이용하여 토큰 생성을 요청하면, 토큰을 생성하되 사용자 단말 장치(100)에서 지정되는 토큰의 종류(금융용 또는 일반용)에 따라, 생성된 토큰의 종류를 금융 토큰 및 보안 토큰 중 하나로 설정하고, 토큰 가입 조건에 매핑하여 저장할 수 있다. To this end, the HSM server 200 generates a token using the standard API (e.g., PKCS#11) provided by the HSM server 200 in order for the application of the user terminal device 100 to use the HSM service. Upon request, a token is generated, but depending on the type of token (financial or general) specified in the user terminal device 100, the type of the generated token is set to one of a financial token and a security token, and is mapped to the token subscription conditions. You can save it.

사용자 단말 장치(100)의 응용 프로그램이 금융용 프로그램인 경우, 응용 프로그램은 사용자로부터 토큰 가입 조건이 입력되면 토큰 생성을 위해 표준 API(예를 들어, PKCS#11의 C_InitToken)를 호출하면, HSM 클라이언트 프로그램이 호출된 표준 API를 호출하면서 HSM 서버(200)로 토큰 가입 조건을 전송하여 금융 토큰을 생성하도록 요청할 수 있다. 또한, 응용 프로그램이 인증을 필요로 하는 일반 프로그램인 경우, 응용 프로그램은 사용자로부터 토큰 가입 조건이 입력되면 토큰 생성을 위해 표준 API를 호출하고 HSM 서버(200)로 토큰 가입 조건을 전송하여 보안 토큰의 생성을 요청할 수 있다. 토큰 가입 조건은 토큰의 종류와 사용자 식별정보와 응용 프로그램의 식별정보와 응용 프로그램이 금융용 프로그램인지 또는 일반 프로그램인지 여부를 포함할 수 있다.If the application of the user terminal device 100 is a financial program, the application calls a standard API (for example, C_InitToken of PKCS#11) to generate a token when token subscription conditions are input from the user, and the HSM client The program may request to generate a financial token by sending token subscription conditions to the HSM server 200 while calling the called standard API. In addition, if the application is a general program that requires authentication, when the token subscription conditions are input from the user, the application calls the standard API for token generation and transmits the token subscription conditions to the HSM server 200 to obtain the security token. You can request creation. Token subscription conditions may include the type of token, user identification information, application identification information, and whether the application is a financial program or a general program.

토큰은 HSM 서버(200) 내에서 암호학적인 정보와 기능을 수행하는 논리적 형태의 장치로서, HSM이 제공하는 암호가속기나 안전한 저장기능 등을 이용하여 해당 기능을 수행한다. 하나의 HSM 서버(200)에는 다수의 토큰들이 있을 수 있으며, HSM 서버(200)는 파티션으로 나누어서 다수의 토큰들을 할당하거나, 사용자 별로 계정을 부여하여 다수의 토큰들을 생성할 수 있다. 따라서, HSM 서버(200)는 사용자 요청이 있는 경우, 하나의 사용자에 대해 하나 이상의 금융 토큰과 하나 이상의 보안 토큰을 생성할 수 있다.The token is a logical device that performs cryptographic information and functions within the HSM server 200, and performs the function using a crypto accelerator or safe storage function provided by the HSM. One HSM server 200 may have multiple tokens, and the HSM server 200 may divide into partitions and allocate multiple tokens or create multiple tokens by assigning accounts to each user. Accordingly, the HSM server 200 may generate one or more financial tokens and one or more security tokens for one user when there is a user request.

보안 토큰(HSM)은 키의 이용(서명, 암복호화 등)을 HSM 서버(200) 내부에서 수행하나, 금융 토큰은 키의 이용이 사용자 단말 장치(100)에서 행해져야 하므로 Cloud HSM 서버(200)의 경우 HSM 서버(200) 내부에서 수행하지 못하고 사용자 단말 장치(100)로 키가 이동하여 이용되도록 처리한다. Security token (HSM) uses the key (signature, encryption and decryption, etc.) inside the HSM server (200), but for financial tokens, the key must be used in the user terminal device (100), so the Cloud HSM server (200) In the case of , the key cannot be performed inside the HSM server 200 and is processed so that the key is moved to the user terminal device 100 for use.

HSM 서버(200)가 사용자 별로 토큰을 생성한 후 사용자가 응용 프로그램을 통해 기입한 토큰 가입 조건(또는 지정된 토큰의 종류)에 따라 토큰을 금융 토큰 또는 보안 토큰 중 하나로 설정하면, 사용자는 사용자 단말 장치(100)를 통해 HSM 서버(200)에 접속하여 표준 API를 통해 HSM 서비스를 이용할 수 있다. After the HSM server 200 generates a token for each user and sets the token as either a financial token or a security token according to the token subscription conditions (or type of designated token) entered by the user through the application, the user can use the user terminal device. You can access the HSM server 200 through (100) and use the HSM service through the standard API.

예를 들어, HSM 서버(200)는 사용자 단말 장치(100)의 응용 프로그램과 HSM 클라이언트로부터 서명 API((예를 들어, PKCS#11의 C_SignFinal 또는 C_Sign)가 호출되어 전자 서명이 요청되면, 응용 프로그램의 식별정보에 대해 매핑된 토큰 종류에 따라 HSM 서버(200)에서 서명 절차를 선택적으로 수행할 수 있다. 즉, 금융용 응용 프로그램에 대해서는 금융 토큰이 설정되어 있기 때문에 HSM 서버(200)는 자동으로 금융 토큰을 인식하여 처리할 수 있다. 그 외 일반적인 프로그램에서는 사용자가 설정한 보안 토큰을 사용하도록 처리할 수 있다.For example, when a signature API (e.g., C_SignFinal or C_Sign in PKCS#11) is called from the application of the user terminal device 100 and the HSM client, the HSM server 200 requests an electronic signature, the application Depending on the type of token mapped to the identification information, the signature procedure can be selectively performed in the HSM server 200. That is, since the financial token is set for the financial application, the HSM server 200 automatically Financial tokens can be recognized and processed, and in other general programs, security tokens set by the user can be used.

HSM 서버(200)는 기설정된 토큰의 종류가 금융 토큰이면, 기저장된 개인키를 금융 토큰에서 추출하여 사용자 단말 장치(100)로 전송할 수 있다. HSM 서버(200)는 기설정된 토큰의 종류가 금융 토큰인 경우에도 일반적인 보안 토큰인 경우와 동일하게, 보안 토큰이 사용하는 표준 API(즉, PKCS#11)를 이용하여 개인키를 사용자 단말 장치(100)로 전송할 수 있다. 이로써 기존의 표준 API를 변형하지 않고도 금융 업무 처리를 위해 필요한 개인키를 HSM 서버(200)로부터 제공받을 수 있도록 표준 API의 호환성을 유지할 수 있다. If the type of the preset token is a financial token, the HSM server 200 may extract the pre-stored private key from the financial token and transmit it to the user terminal device 100. Even if the type of preset token is a financial token, the HSM server 200 uses the standard API (i.e., PKCS#11) used by security tokens to send the private key to the user terminal device ( 100). As a result, compatibility of the standard API can be maintained so that the private key required for financial processing can be provided from the HSM server 200 without modifying the existing standard API.

또한, HSM 서버(200)는 사용자 단말 장치(100)로부터 서명이 요청되면, 서명을 요청한 응용 프로그램에 대해 기설정된 토큰의 종류가 보안 토큰이면, 기저장된 개인키로 전자서명하여 생성되는 서명문을 사용자 단말 장치(100)로 전송할 수 있다. 또한, HSM 서버(200)는 사용자 단말 장치(100)로부터 암호화가 요청되면 대칭키로 암호화한 후 암호문을 사용자 단말 장치(100)에게 전송하고, 복호화가 요청되면 대칭키로 복호화한 후 복호문을 사용자 단말 장치(100)에게 전송할 수 있다.In addition, when a signature is requested from the user terminal device 100, if the type of token preset for the application requesting a signature is a security token, the HSM server 200 sends the signature generated by electronically signing with the pre-stored private key to the user. It can be transmitted to the terminal device 100. In addition, when encryption is requested from the user terminal device 100, the HSM server 200 encrypts with a symmetric key and transmits the ciphertext to the user terminal device 100. When decryption is requested, the HSM server 200 decrypts with the symmetric key and sends the decrypted text to the user terminal. It can be transmitted to the device 100.

사용자 단말 장치(100) 또는 응용 프로그램은 기설정된 토큰의 종류가 금융 토큰인 경우, HSM 서버(200)로부터 수신되는 개인키로 전자서명을 수행하고, 전자서명의 사용이 완료되면 개인키를 폐기처리할 수 있다. 폐기처리 후, 응용 프로그램은 금융 토큰을 생성할지 묻는 알림창을 생성하여 사용자 단말 장치(100)에 표시하고, 사용자 인터페이스(미도시)를 통한 사용자 요청에 따라 금융 토큰을 생성해 줄 것을 표준 API를 호출하여 HSM 서버(200)에게 요청할 수 있다. If the type of the preset token is a financial token, the user terminal device 100 or the application performs an electronic signature with the private key received from the HSM server 200, and discards the private key when use of the electronic signature is completed. You can. After disposal, the application creates a notification window asking whether to generate a financial token, displays it on the user terminal device 100, and calls a standard API to generate a financial token according to the user's request through a user interface (not shown). A request can be made to the HSM server 200.

도 3은 본 발명의 실시예에 따른 클라우드 HSM 시스템의 보안 강화 방법 중 토큰 생성 방법을 간략히 도시한 흐름도이고, 도 4는 클라우드 HSM 시스템의 보안 강화 방법 중 금융 토큰 또는 보안 토큰의 서명 방법을 간략히 도시한 흐름도이다.FIG. 3 is a flowchart briefly showing a token generation method among the security enhancement methods of the cloud HSM system according to an embodiment of the present invention, and FIG. 4 briefly illustrates a method of signing a financial token or security token among the security enhancement methods of the cloud HSM system. This is a flow chart.

도 3을 참조하면, 사용자 단말 장치(100)의 응용 프로그램은 HSM 서버(200)에게 토큰 생성을 요청할 수 있다(S310). S310단계에서 실행 중인 응용 프로그램이 금융용 프로그램인 경우, 응용 프로그램은 사용자로부터 토큰 가입 조건이 입력되면 HSM 서버(200)로 토큰 가입 조건을 전송하여 금융 토큰을 생성하도록 요청할 수 있다. 또한, 응용 프로그램이 인증을 필요로 하는 일반 프로그램인 경우, 응용 프로그램은 사용자로부터 토큰 가입 조건을 수동으로 입력받아 HSM 서버(200)로 전송하여 보안 토큰의 생성을 요청할 수 있다.Referring to FIG. 3, the application program of the user terminal device 100 may request the HSM server 200 to generate a token (S310). If the application running in step S310 is a financial program, when the token subscription conditions are input from the user, the application may transmit the token subscription conditions to the HSM server 200 to request creation of a financial token. Additionally, if the application is a general program that requires authentication, the application may manually receive token subscription conditions from the user and transmit them to the HSM server 200 to request generation of a security token.

HSM 서버(200)는 사용자 단말 장치(100)로부터 수신되는 토큰 가입 조건 중 토큰 종류를 확인하고, 확인 결과 금융용이면(S320-Yes), HSM 서버(200)는 토큰을 생성한 후 금융 토큰으로 설정하고 생성된 금융 토큰을 S310단계에서 수신된 토큰 가입 조건에 매핑하여 저장할 수 있다(S330). The HSM server 200 checks the token type among the token subscription conditions received from the user terminal device 100, and if the confirmation result is for financial use (S320-Yes), the HSM server 200 generates a token and converts it into a financial token. The financial token created and set can be mapped to the token subscription conditions received in step S310 and stored (S330).

반면, 확인 결과 일반용이면(S320-No), HSM 서버(200)는 토큰을 생성한 후 보안 토큰으로 설정하고 생성된 금융 토큰을 S310단계에서 수신된 토큰 가입 조건에 매핑하여 저장할 수 있다(S340).On the other hand, if the confirmation result is for general use (S320-No), the HSM server 200 may generate the token, set it as a security token, and store the generated financial token by mapping it to the token subscription conditions received in step S310 (S340). .

도 4를 참조하면, 사용자 단말 장치(100)의 응용 프로그램으로부터 서명 요청과 응용 프로그램의 식별정보와 사용자 식별정보가 수신되면(S410), HSM 서버(200)는 수신된 응용 프로그램의 식별정보에 매핑저장된 토큰의 종류를 확인한다. Referring to FIG. 4, when a signature request, application identification information, and user identification information are received from an application program of the user terminal device 100 (S410), the HSM server 200 maps the received application identification information to the identification information. Check the type of stored token.

확인 결과 토큰 종류가 금융 토큰이면(S415-Yes), HSM 서버(200)는 금융 토큰으로부터 키(예를 들어, 개인키)를 추출하여 시리얼라이즈를 수행한 후 사용자 단말 장치(100)로 시리얼라이즈된 키를 전송할 수 있다(S420~S430). 시리얼라이즈는 복잡한 구조의 키를 사용자 단말 장치(100)가 인식할 수 있는 형태로 변환하는 동작이다. As a result of the confirmation, if the token type is a financial token (S415-Yes), the HSM server 200 extracts a key (e.g., private key) from the financial token, performs serialization, and serializes it to the user terminal device 100. The key can be transmitted (S420~S430). Serialization is an operation that converts a key with a complex structure into a form that the user terminal device 100 can recognize.

사용자 단말 장치(100)는 수신된 키를 다시 서명 작업을 하기 위해서 디시리얼라이즈한 후 전자서명하여 서명문을 생성한다(S435, S440).The user terminal device 100 deserializes the received key to re-signature and then electronically signs it to generate a signature (S435, S440).

본 발명의 실시예에서, 시리얼라이즈(직렬화)는 통신상으로 전달이 용이하도록 데이터의 형태를 변환하는 작업이고, 디시리얼라이즈(역직렬화,복원)는 시리얼라이즈 되어 있던 것을 원래상태로 복원하는 작업을 의미한다.In an embodiment of the present invention, serialization is a task of converting the form of data to facilitate communication, and deserialization is a task of restoring serialized data to its original state. means.

사용자 단말 장치(100)는 S440단계에서 키를 삭제하고 생성된 서명문을 응용프로그램에 전달하여 서명문을 사용한다.(S445).The user terminal device 100 deletes the key in step S440 and transmits the generated signature to the application program to use the signature (S445).

반면, S415단계에서 보안 토큰으로 확인되면(S415-No), HSM 서버(200)는 S340단계에서 기저장된 키의 핸들을 획득한 후 전자서명하여 서명문을 생성하고, 생성된 서명문을 사용자 단말 장치(100)로 전송할 수 있다(S450~S460).On the other hand, if it is confirmed as a security token in step S415 (S415-No), the HSM server 200 acquires the handle of the pre-stored key in step S340, electronically signs it to generate a signature, and sends the generated signature to the user terminal. It can be transmitted to the device 100 (S450~S460).

사용자 단말 장치(100)는 HSM 서버(200)로부터 수신되는 서명문을 응용프로그램에 전달한다(S465). 응용프로그램에서는 토큰의 종류에 관계없이 동일한 서명문을 받아 사용한다(S445)The user terminal device 100 transmits the signature received from the HSM server 200 to the application program (S465). The application program receives and uses the same signature regardless of the type of token (S445)

도 5는 본 발명의 실시예에 따른 클라우드 HSM 시스템에서 표준 API의 함수를 이용한 보안 강화 방법을 도시한 흐름도이다. Figure 5 is a flowchart showing a method of enhancing security using a standard API function in a cloud HSM system according to an embodiment of the present invention.

도 5에 도시된 보안 강화 방법은 도 3 및 도 4를 참조하여 설명한 동작을 구체적으로 도시한 것으로서, 토큰을 생성하는 함수의 동작 수정과 서명을 수행하는 함수의 동작 수정을 통해 사용자 단말 장치(100)에서 함수를 호출하는 동작을 포함할 수 있다.The security enhancement method shown in FIG. 5 specifically illustrates the operation described with reference to FIGS. 3 and 4, and modifies the operation of the function that generates the token and the function that performs the signature to enable the user terminal device 100 ) can include the action of calling a function.

도 5를 참조하면, 사용자 단말 장치(100)의 응용 프로그램은 금융 토큰이 필요한 경우 사용자로부터 토큰 가입 조건을 입력받은 후 C_InitToken을 호출할 수 있다(S510).Referring to FIG. 5, when a financial token is needed, the application program of the user terminal device 100 may call C_InitToken after receiving token subscription conditions from the user (S510).

사용자 단말 장치(100)의 HSM 클라이언트 프로그램은 응용 프로그램이 호출한 C_InitToken을 HSM 서버(200)에게 호출하면서 토큰 가입 조건을 전송함으로써 응용 프로그램이 요청한 토큰 생성 요청을 처리하도록 요청할 수 있다(S520).The HSM client program of the user terminal device 100 may request processing of the token creation request requested by the application by sending token subscription conditions while calling C_InitToken called by the application to the HSM server 200 (S520).

HSM 서버(200)는 토큰 생성 요청과 토큰 가입 조건이 수신되면, 수신된 토큰 가입 조건에 기초하여 토큰을 생성하고, 토큰의 종류를 금융 토큰 및 보안 토큰 중 하나로 설정할 수 있다(S530).When the token creation request and token subscription conditions are received, the HSM server 200 may generate a token based on the received token subscription conditions and set the type of token to one of a financial token and a security token (S530).

HSM 서버(200)는 토큰 생성 결과를 HSM 클라이언트 프로그램으로 전송하고, HSM 클라이언트 프로그램은 수신된 토큰 생성 결과를 응용 프로그램에게 전송한다(S540, S550). The HSM server 200 transmits the token creation result to the HSM client program, and the HSM client program transmits the received token creation result to the application program (S540, S550).

토큰 생성 결과를 수신한 사용자 단말 장치(100)의 응용 프로그램은 서명값을 생성하는 함수를 호출하여 서명을 요청할 수 있다(S560). S560단계에서 응용 프로그램은 C_SignInit과 C_Sign을 순차적으로 호출하거나 C_SignInit, C_SignUpdate 및 C_SignFinal을 순차적으로 호출하여 서명을 요청할 수 있다. 해당 함수에서 개인키를 사용하기 때문에 HSM 서버(200)의 보안 토큰은 HSM 내부에서 서명을 생성하여 응답으로 서명값을 보내고, 금융 토큰은 개인키를 HSM 클라이언트 프로그램으로 보낼 수 있다.The application program of the user terminal device 100 that has received the token generation result may request a signature by calling a function that generates a signature value (S560). In step S560, the application can request a signature by sequentially calling C_SignInit and C_Sign or by calling C_SignInit, C_SignUpdate, and C_SignFinal sequentially. Since the function uses a private key, the security token of the HSM server 200 can generate a signature inside the HSM and send the signature value as a response, and the financial token can send the private key to the HSM client program.

HSM 클라이언트 프로그램은 S560단계에서 응용 프로그램이 호출한 함수에 따라 C_SignFinal 또는 다이제스트값과 C_Sign을 HSM 서버(200)에게 호출하며, 이 때, 응용 프로그램으로부터 S560단계에서 전달받은 사용자 식별정보와 응용 프로그램의 식별정보를 함께 HSM 서버(200)에게 전송할 수 있다(S570). The HSM client program calls C_SignFinal or a digest value and C_Sign to the HSM server 200 according to the function called by the application in step S560. At this time, the user identification information received from the application in step S560 and the identification of the application are used. The information can be transmitted together to the HSM server 200 (S570).

S570단계는, S560단계에서 C_SignInit과 C_Sign을 순차적으로 호출하면 HSM 클라이언트 프로그램은 C_Sign을 HSM 서버(200)에게 호출할 수 있다. 또는 S560단계에서 응용 프로그램이 C_SignInit, C_SignUpdate 및 C_SignFinal을 순차적으로 호출하면, HSM 클라이언트 프로그램은 서명 다이제스트(Digest)를 수행한 다이제스트값을 HSM 서버(200)에게 전송하면서 C_SignFinal을 호출할 수 있다.In step S570, if C_SignInit and C_Sign are called sequentially in step S560, the HSM client program can call C_Sign to the HSM server 200. Alternatively, if the application sequentially calls C_SignInit, C_SignUpdate, and C_SignFinal in step S560, the HSM client program may call C_SignFinal while transmitting the digest value obtained by performing the signature digest to the HSM server 200.

HSM 서버(200)는 호출된 함수, 즉, 호출된 표준 API를 분석하여 사용자 식별정보와 응용 프로그램의 식별정보에 매핑된 토큰을 확인한다(S580).The HSM server 200 analyzes the called function, that is, the called standard API, and confirms the token mapped to the user identification information and the identification information of the application (S580).

확인 결과 매핑저장된 토큰이 금융 토큰이면(S590-Yes), HSM 서버(200)는 금융 토큰에서 키를 추출하여 전송가능한 형태로 변환한 후 사용자 단말 장치(100)로 전송할 수 있다(S600, S610). As a result of the confirmation, if the mapped stored token is a financial token (S590-Yes), the HSM server 200 can extract the key from the financial token, convert it into a transmittable form, and transmit it to the user terminal device 100 (S600, S610). .

사용자 단말 장치(100)의 HSM 클라이언트 프로그램은 수신된 키를 원 상태로 복원한 후 전자서명을 수행하여 서명문을 생성하고 그 키를 삭제하며, 생성된 서명문을 응용 프로그램으로 전달한다(S620).The HSM client program of the user terminal device 100 restores the received key to its original state, performs an electronic signature, creates a signature, deletes the key, and delivers the generated signature to the application (S620). .

응용 프로그램은 전달받은 서명문을 이용하여 업무를 처리한다(S630), The application program processes work using the received signature (S630).

반면, S580단계의 확인 결과 매핑저장된 토큰이 보안 토큰이면(S590-No), HSM 서버(200)는 보안 토큰에서 키를 추출하여 전자서명하고, 전자서명의 결과인 서명문을 사용자 단말 장치(100)로 전송할 수 있다(S660, S670). On the other hand, if the mapping-stored token as a result of confirmation in step S580 is a security token (S590-No), the HSM server 200 extracts the key from the security token, signs it electronically, and sends the signature resulting from the electronic signature to the user terminal device 100. ) can be transmitted (S660, S670).

HSM 클라이언트 프로그램은 S670단계로부터 수신한 서명문을 응용 프로그램으로 전달한다(S680).The HSM client program transmits the signature received in step S670 to the application program (S680).

응용 프로그램은 수신된 서명문을 사용하여 업무를 처리한다(S690).The application processes work using the received signature (S690).

상술한 본 발명에 따르면, HSM 서버(200)는 금융 토큰에 저장된 키를 보안 토큰이 사용하는 표준 API를 변환없이 그대로 이용하여 사용자 단말 장치(100)로 전송하는 것이 가능하며, 이로서 PKCS#11의 표준 인터페이스는 유지하면서 금융 토큰과 보안 토큰으로서의 기능을 수행할 수 있다. 즉, 전용API를 사용하는 방식이 이용 사이트에 제약이 발생할 수 있으나 표준 API를 통해서 보안 토큰 뿐만 아니라 금융 토큰 요구사항(소유자 단말 장치(100)에서의 서명)을 충족시켜 강한 보안성을 원하는 고객에게는 보안 토큰으로서 사용가능하게 하고, 금융환경에서 사용할 때는 금융 토큰으로서 사용가능하게 함으로써 HSM의 서비스 경쟁력과 가치를 높일 수 있다.According to the present invention described above, the HSM server 200 is capable of transmitting the key stored in the financial token to the user terminal device 100 by using the standard API used by the security token without conversion, and as a result, PKCS #11 It can function as a financial token and security token while maintaining the standard interface. In other words, using a dedicated API may cause restrictions on the usage site, but for customers who want strong security by satisfying not only security token but also financial token requirements (signature on the owner terminal device 100) through the standard API. By making it usable as a security token and as a financial token when used in a financial environment, the service competitiveness and value of HSM can be increased.

또한, 키를 사용자 단말 장치(100)로 보내는 것은 보안성을 저하시키므로 보안 토큰을 금융 토큰으로 변경하게 되면 보안 토큰의 보안성을 떨어뜨리게 된다. 따라서 상술한 본 발명에 따르면, 초기 토큰 생성시 용도를 지정하여 생성하며, 이후 용도 변경이 불가하도록 함으로써 토큰의 보안성을 유지하는 것이 가능하다. Additionally, sending the key to the user terminal device 100 reduces security, so changing the security token to a financial token reduces the security of the security token. Therefore, according to the present invention described above, it is possible to maintain the security of the token by specifying the purpose when initially generating the token and preventing the use from being changed thereafter.

한편, 상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. Meanwhile, the embodiments of the present invention described above can be implemented through various means. For example, embodiments of the present invention may be implemented by hardware, firmware, software, or a combination thereof.

하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. In the case of hardware implementation, the method according to embodiments of the present invention uses one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), and Programmable Logic Devices (PLDs). , can be implemented by FPGAs (Field Programmable Gate Arrays), processors, controllers, microcontrollers, microprocessors, etc.

펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작 들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고받을 수 있다.In the case of implementation by firmware or software, the method according to embodiments of the present invention may be implemented in the form of a module, procedure, or function that performs the functions or operations described above. Software code can be stored in a memory unit and run by a processor. The memory unit is located inside or outside the processor and can exchange data with the processor through various known means.

이상을 통해 본 발명의 실시 예에 대하여 설명하였지만, 본 발명은 상기 실시 예에 한정되지 않고, 본 발명의 취지를 벗어나지 않고 효과를 저해하지 않는 한, 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 다양하게 변경하여 실시할 수 있다. 또한 그러한 실시 예가 본 발명의 범위에 속하는 것은 당연하다.Although the embodiments of the present invention have been described above, the present invention is not limited to the above embodiments, and may be varied within the scope of the detailed description and accompanying drawings, as long as it does not deviate from the spirit of the present invention and does not impair the effect. It can be implemented by changing it accordingly. It is also natural that such embodiments fall within the scope of the present invention.

100: 사용자 단말 장치
200: HSM 서버
100: User terminal device
200: HSM server

Claims (10)

응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램이 저장되는 사용자 단말 장치; 및
클라우드 환경에서 동작하며, 상기 HSM 클라이언트 프로그램과 연동하여 HSM 서비스를 제공하는 HSM 서버를 포함하고,
상기 HSM 서버는,
상기 사용자 단말 장치의 응용 프로그램이 HSM 서비스를 이용하기 위해 HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 이용하여 토큰 생성을 요청하면, 토큰을 생성하고, 상기 생성된 토큰의 종류를 금융 토큰 및 보안 토큰 중 하나로 설정하고,
상기 사용자 단말 장치로부터 상기 표준 API를 이용하여 전자 서명이 요청되면, 기설정된 토큰 종류에 따라 서명 절차를 선택적으로 수행하며,
상기 기설정된 토큰의 종류가 금융 토큰이면, 기저장된 개인키를 추출하여 상기 사용자 단말 장치로 전송하고, 상기 기설정된 토큰의 종류가 보안 토큰이면, 상기 기저장된 개인키로 전자서명하여 생성되는 서명문을 상기 사용자 단말 장치로 전송하는 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템.
A user terminal device where applications and Hardware Security Module (HSM) client programs are stored; and
It operates in a cloud environment and includes an HSM server that provides HSM services in conjunction with the HSM client program,
The HSM server,
When the application of the user terminal device requests token creation using a standard API (Application Programming Interface) provided by the HSM server to use the HSM service, a token is generated, and the type of the generated token is classified into financial token and Set it to one of your security tokens,
When an electronic signature is requested from the user terminal device using the standard API, a signature procedure is selectively performed according to a preset token type,
If the type of the preset token is a financial token, a pre-stored private key is extracted and transmitted to the user terminal device, and if the type of the preset token is a security token, a signature statement generated by electronically signing with the pre-stored private key is sent to the user terminal device. A cloud HSM system capable of issuing financial tokens and security tokens transmitted to the user terminal device.
삭제delete 삭제delete 제1항에 있어서,
상기 HSM 서버는, 상기 기설정된 토큰의 종류가 금융 토큰인 경우,
상기 보안 토큰이 사용하는 상기 표준 API를 이용하여 상기 개인키를 사용자 단말 장치로 전송하는 것을 특징으로 하는 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템.
According to paragraph 1,
If the type of the preset token is a financial token, the HSM server
A cloud HSM system capable of issuing financial tokens and security tokens, characterized in that the private key is transmitted to a user terminal device using the standard API used by the security token.
제1항에 있어서,
상기 사용자 단말 장치는, 상기 기설정된 토큰의 종류가 금융 토큰인 경우,
상기 HSM 서버로부터 수신되는 개인키로 전자서명을 수행하고, 전자서명이 완료되면 상기 개인키를 폐기처리하는 것을 특징으로 하는 금융 토큰과 보안 토큰 발급이 가능한 클라우드 HSM 시스템.
According to paragraph 1,
When the type of the preset token is a financial token, the user terminal device
A cloud HSM system capable of issuing financial tokens and security tokens, characterized in that an electronic signature is performed with a private key received from the HSM server, and the private key is discarded when the electronic signature is completed.
(A) 사용자 단말 장치가, 응용 프로그램이 실행되면 HSM(Hardware Security Module) 클라이언트 프로그램에 의해, HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 이용하여 토큰 생성을 요청하는 단계;
(B) 상기 HSM 서버가, 상기 사용자 단말 장치의 요청에 따라 보안 토큰을 생성하고, 상기 생성된 보안 토큰의 종류를 금융 토큰 및 보안 토큰 중 하나로 설정하는 단계; 및
(C) 상기 HSM 서버가, 상기 사용자 단말 장치로부터 상기 표준 API를 이용하여 토큰 서명이 요청되면, 기설정된 토큰 종류에 따라 서명 절차를 선택적으로 수행하는 단계;
를 포함하고,
상기 (C) 단계는,
상기 기설정된 토큰의 종류가 금융 토큰이면, 기저장된 개인키를 추출하여 상기 사용자 단말 장치로 전송하고, 상기 기설정된 토큰의 종류가 보안 토큰이면, 상기 기저장된 개인키로 전자서명하여 생성되는 서명문을 상기 사용자 단말 장치로 전송하는 클라우드 HSM 시스템의 금융 토큰과 보안 토큰 발급 방법.
(A) When the application is executed, the user terminal device requests token generation by an HSM (Hardware Security Module) client program using a standard API (Application Programming Interface) provided by the HSM server;
(B) the HSM server generating a security token according to a request from the user terminal device, and setting the type of the generated security token to one of a financial token and a security token; and
(C) the HSM server, when a token signature is requested from the user terminal device using the standard API, selectively performing a signature procedure according to a preset token type;
Including,
In step (C),
If the type of the preset token is a financial token, a pre-stored private key is extracted and transmitted to the user terminal device, and if the type of the preset token is a security token, a signature statement generated by electronically signing with the pre-stored private key is sent to the user terminal device. Method for issuing financial tokens and security tokens of the cloud HSM system transmitted to the user terminal device.
삭제delete 삭제delete 제6항에 있어서,
상기 (C) 단계는,
상기 기설정된 토큰의 종류가 금융 토큰인 경우, 상기 보안 토큰이 사용하는 상기 표준 API를 이용하여 상기 개인키를 사용자 단말 장치로 전송하는 것을 특징으로 하는 클라우드 HSM 시스템의 금융 토큰과 보안 토큰 발급 방법.
According to clause 6,
In step (C),
When the type of the preset token is a financial token, the private key is transmitted to the user terminal device using the standard API used by the security token. A financial token and security token issuance method in a cloud HSM system.
제6항에 있어서,
(D) 상기 사용자 단말 장치가, 상기 기설정된 토큰의 종류가 금융 토큰인 경우, 상기 HSM 서버로부터 수신되는 개인키로 전자서명을 수행하고, 전자서명이 완료되면 상기 개인키를 폐기처리하는 단계;
를 더 포함하는 것을 특징으로 하는 클라우드 HSM 시스템의 금융 토큰과 보안 토큰 발급 방법.
According to clause 6,
(D) when the type of the preset token is a financial token, the user terminal device performs an electronic signature using a private key received from the HSM server, and discards the private key when the electronic signature is completed;
A method of issuing financial tokens and security tokens in a cloud HSM system, further comprising:
KR1020230011464A 2023-01-30 2023-01-30 Cloud HSM system for providing financing token and security token and method thereof KR102576819B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230011464A KR102576819B1 (en) 2023-01-30 2023-01-30 Cloud HSM system for providing financing token and security token and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230011464A KR102576819B1 (en) 2023-01-30 2023-01-30 Cloud HSM system for providing financing token and security token and method thereof

Publications (1)

Publication Number Publication Date
KR102576819B1 true KR102576819B1 (en) 2023-09-11

Family

ID=88020182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230011464A KR102576819B1 (en) 2023-01-30 2023-01-30 Cloud HSM system for providing financing token and security token and method thereof

Country Status (1)

Country Link
KR (1) KR102576819B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170008652A (en) * 2015-07-14 2017-01-24 삼성전자주식회사 Payment system, electronic device and payment method thereof
KR101974062B1 (en) * 2018-05-31 2019-04-30 이니텍(주) Electronic Signature Method Based on Cloud HSM
KR102258215B1 (en) 2019-11-08 2021-05-31 한국과학기술원 Security System and Method Thereof Using Both KMS and HSM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170008652A (en) * 2015-07-14 2017-01-24 삼성전자주식회사 Payment system, electronic device and payment method thereof
KR101974062B1 (en) * 2018-05-31 2019-04-30 이니텍(주) Electronic Signature Method Based on Cloud HSM
KR102258215B1 (en) 2019-11-08 2021-05-31 한국과학기술원 Security System and Method Thereof Using Both KMS and HSM

Similar Documents

Publication Publication Date Title
JP7257561B2 (en) computer-implemented method, host computer, computer-readable medium
US9197406B2 (en) Key management using quasi out of band authentication architecture
CN111310216B (en) Block chain data processing method and device, electronic equipment and medium
KR102381153B1 (en) Encryption key management based on identity information
US10230697B2 (en) User terminals, and methods and computer-readable recording mediums storing computer programs for transmitting and receiving messages
US20030159053A1 (en) Secure reconfigurable input device with transaction card reader
JP2014521236A (en) Dynamic data protection policy associated with the request-reply message queueing environment
CN111464297B (en) Transaction processing method, device, electronic equipment and medium based on block chain
KR20210151016A (en) Key protection processing method, apparatus, device and storage medium
US8639941B2 (en) Data security in mobile devices
EP3343827A1 (en) Information security device and information security method using accessibility
US9231941B1 (en) Secure data entry
WO2020077626A1 (en) Method and device for recognizing finger vein information
CN116076055A (en) Method and system for verifying user identification
KR102576819B1 (en) Cloud HSM system for providing financing token and security token and method thereof
CN112261015A (en) Block chain based information sharing method, platform, system and electronic equipment
US10560442B2 (en) Participation thresholding for extending communication security functionality
JP7276737B2 (en) Identity verification system and identity verification method
TW201032084A (en) System for managing the external access of electronic file and method of the same
RU2699830C2 (en) Electronic signature method
KR102525716B1 (en) Method for improving HSM performance
CN110176985A (en) A kind of information ciphering method, device and storage medium
CN108985079A (en) Data verification method and verifying system
US11615198B2 (en) Computing device compatible encryption and decryption
WO2024122069A1 (en) Self authentication system and self authentication method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant