KR20230068144A - Method for Key Management Service And System Therefor - Google Patents

Method for Key Management Service And System Therefor Download PDF

Info

Publication number
KR20230068144A
KR20230068144A KR1020210154174A KR20210154174A KR20230068144A KR 20230068144 A KR20230068144 A KR 20230068144A KR 1020210154174 A KR1020210154174 A KR 1020210154174A KR 20210154174 A KR20210154174 A KR 20210154174A KR 20230068144 A KR20230068144 A KR 20230068144A
Authority
KR
South Korea
Prior art keywords
key
client
security module
enclave
kek
Prior art date
Application number
KR1020210154174A
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 KR1020210154174A priority Critical patent/KR20230068144A/en
Publication of KR20230068144A publication Critical patent/KR20230068144A/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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

본 개시는 키 관리 서비스 제공방법 및 이를 위한 시스템을 제공한다. 본 개시의 일 측면에 의하면, 클라이언트 장치(client apparatus)가 엔클레이브(enclave)에 클라이언트 키의 사용을 요청하면, 엔클레이브가 보안 모듈(security module)과 통신하여 안전한 방법으로 클라이언트 키를 이용하게 하기 위한 시스템을 제공한다.The present disclosure provides a key management service providing method and a system therefor. According to one aspect of the present disclosure, when a client apparatus requests the use of a client key to an enclave, the enclave communicates with a security module to use the client key in a secure way provide a system for

Description

키 관리 서비스 제공방법 및 이를 위한 시스템 {Method for Key Management Service And System Therefor}Key management service providing method and system therefor {Method for Key Management Service And System Therefor}

본 개시는 키 관리 서비스 제공방법 및 이를 위한 시스템에 관한 것이다.The present disclosure relates to a method for providing a key management service and a system therefor.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this part merely provide background information on the present embodiment and do not constitute prior art.

HSM(Hardware Security Module)이란, 컴퓨팅 시스템과 물리적으로 분리되어 위치하여 키(key)를 생성, 저장 및 관리하기 위한 보안용 하드웨어이다. HSM은 물리적으로 독립된 하드웨어이며, 인증서 서명과 같은 암호화 키 작업을 보호하고 네트워크 인터페이스를 통해 제한된 액세스만 허용한다. HSM은 물리적인 보안 요소로서, Tamper-evident와 Tamper-resistant 기능을 포함할 수 있다. Tamper-evident란, HSM에 발생하는 부정조작 행위의 증거를 남기는 기능이다. Tamper-resistant란, HSM에 대한 공격이 감지되면 내부 데이터를 삭제하는 기능이다.A Hardware Security Module (HSM) is hardware for security that is located physically separate from a computing system and generates, stores, and manages keys. HSMs are physically independent hardware, secure cryptographic key operations such as signing certificates, and allow limited access through network interfaces. HSM is a physical security element, and may include tamper-evident and tamper-resistant functions. Tamper-evident is a function that leaves evidence of tampering that occurs in the HSM. Tamper-resistance is a function that deletes internal data when an attack on the HSM is detected.

HSM은 강력한 보안성을 가졌으나, 하드웨어 장비의 특성상 스케일업(scale up)이 어려운 문제가 있다. 이러한 On-premises HSM을 대체하여, 클라우드가 제공하는 HSM을 기반으로 하는 키 관리 서비스(Cloud KMS)가 사용되고 있다. Cloud KMS는 클라우드 플랫폼에 배치된 여러 HSM을 기반으로, 사용자가 직접 HSM을 구입하지 않고도 원격으로 HSM을 사용할 수 있도록 지원한다. Cloud KMS는 넓은 확장성을 가지고, 하나의 HSM을 여러 사용자가 사용할 수 있어 경제성이 있다. 하나의 HSM을 여러 사용자가 공유하는 경우, HSM의 키들은 HSM을 운영하는 클라우드 인스턴스(cloud instance)에 의해서 사용자마다 관리 및 격리되어 사용된다. Although the HSM has strong security, there is a problem in that it is difficult to scale up due to the characteristics of hardware equipment. As an alternative to these on-premises HSMs, a key management service (Cloud KMS) based on HSMs provided by the cloud is being used. Cloud KMS is based on multiple HSMs deployed on a cloud platform, allowing users to use HSMs remotely without purchasing HSMs themselves. Cloud KMS has wide scalability and is economical because one HSM can be used by multiple users. When one HSM is shared by several users, keys of the HSM are managed and isolated for each user by a cloud instance that operates the HSM.

그러나, Cloud KMS는 악의적인 내부자에 의한 내부자 위협(insider threats)이 발생할 수 있는 문제가 있다. 예컨대, 악의적인 내부자가 HSM에 접근할 수 있는 인증정보(credential)를 보유하는 경우에 악의적 내부자는 인증정보를 이용하여 HSM 내부의 키들을 유출할 수 있다. HSM은 키를 추출 불가능한 키(non-extractable key)로서 지정하는 경우에도, 악의적 내부자는 여전히 키를 오용할 수 있다. 뿐만 아니라, Cloud KMS의 경우 클라우드 서비스라는 환경적 특성 때문에, 사용자와 HSM 간의 통신을 해킹하여 사용자가 요청한 HSM 실행 결과나 평문 키(plain-text key) 등이 외부에 유출되거나 위변조될 수 있다.However, Cloud KMS has a problem in that insider threats by malicious insiders can occur. For example, when a malicious insider possesses credential to access the HSM, the malicious insider may leak keys inside the HSM using the credential. Even if the HSM specifies a key as a non-extractable key, a malicious insider can still misuse the key. In addition, in the case of Cloud KMS, due to the environmental characteristics of cloud service, communication between the user and the HSM is hacked, and the HSM execution result or plain-text key requested by the user can be leaked to the outside or forged.

본 개시의 일 측면에 의하면, 마스터 키 페어를 기반으로, 보안 모듈과 클라이언트 장치와의 보안 채널을 형성할 수 있다.According to an aspect of the present disclosure, a secure channel between a secure module and a client device may be formed based on a master key pair.

본 개시의 일 측면에 의하면, 키 암호화 키를 생성하여 클라이언트 키를 암호화하고, 평문 클라이언트 키 및 평문 키 암호화 키를 삭제하는 보안 모듈을 제공할 수 있다.According to an aspect of the present disclosure, it is possible to provide a security module that generates a key encryption key, encrypts a client key, and deletes the plaintext client key and the plaintext key encryption key.

본 개시의 일 측면에 의하면, 보안 모듈이 클라이언트 장치로부터 키 암호화 키를 획득하여 암호화된 클라이언트 키를 복호화하여 사용할 수 있다.According to one aspect of the present disclosure, a security module may obtain a key encryption key from a client device and decrypt and use the encrypted client key.

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

본 개시의 일 측면에 의하면, 키 관리 서비스를 제공하기 위하여 보안 채널을 형성하는 방법에 있어서, 보안 모듈이 마스터 키 페어(master key pair)를 생성하는 과정; 및 상기 마스터 키 페어를 기반으로, 상기 보안 모듈이 클라이언트 장치와의 보안 채널을 형성하는 과정을 포함하는 것을 특징으로 하는, 보안 채널 형성방법을 제공한다.According to one aspect of the present disclosure, a method for establishing a security channel to provide a key management service includes: generating a master key pair by a security module; and forming, by the security module, a secure channel with a client device based on the master key pair.

본 개시의 일 측면에 의하면, 전술한 보안 채널 형성방법에 있어서, 상기 마스터 키 페어를 생성하는 과정 이후에, 보안 모듈이 상기 엔클레이브를 통하여 상기 클라이언트 장치에게 상기 마스터 공개 키를 제공하는 과정; 및 상기 보안 모듈이 상기 엔클레이브를 통하여 상기 클라이언트 장치로부터, 상기 마스터 공개 키에 의하여 암호화된 공유 키를 제공받는 과정을 더 포함하는 것을 특징으로 하는, 보안 채널 형성방법을 제공한다.According to one aspect of the present disclosure, in the above-described secure channel establishment method, after the process of generating the master key pair, the process of providing the master public key to the client device through the enclave by a security module; and receiving, by the security module, a shared key encrypted by the master public key from the client device through the enclave.

본 개시의 일 측면에 의하면, 키 관리 서비스를 제공하기 위하여 클라이언트 키를 생성하는 방법에 있어서, 보안 모듈이 상기 클라이언트 키 및 키 암호화 키(이하, KEK)를 생성하는 과정; 상기 보안 모듈이 상기 클라이언트 키를 상기 KEK를 이용하여 암호화하여 저장하는 과정; 및 상기 보안 모듈이 평문 클라이언트 키 및 평문 KEK를 삭제하는 과정을 포함하는 것을 특징으로 하는, 클라이언트 키 생성방법을 제공한다.According to an aspect of the present disclosure, a method for generating a client key to provide a key management service includes: generating, by a security module, the client key and a key encryption key (hereinafter referred to as KEK); the security module encrypting and storing the client key using the KEK; and deleting, by the security module, the plaintext client key and the plaintext KEK.

본 개시의 일 측면에 의하면, 키 관리 서비스를 제공하기 위하여 클라이언트 키를 복호화하는 방법에 있어서, 보안 모듈이 OTP(One-Time Pad)를 생성하는 과정; 보안 모듈이 클라이언트 장치로부터 키 암호화 키(이하, KEK)를 획득하는 과정; 및 상기 보안 모듈이 암호화된 클라이언트 키를 상기 KEK를 기반으로 복호화하는 과정을 포함하는 것을 특징으로 하는, 클라이언트 키 복호화방법을 제공한다.According to one aspect of the present disclosure, in a method of decrypting a client key to provide a key management service, the process of generating a one-time pad (OTP) by a security module; obtaining, by a security module, a key encryption key (hereinafter referred to as KEK) from a client device; and decrypting, by the security module, the encrypted client key based on the KEK.

본 개시의 일 측면에 의하면, 전술한 클라이언트 키 복호화방법에 있어서, 엔클레이브를 통하여, 상기 보안 모듈이 상기 클라이언트 장치와의 보안 채널을 형성하는 과정; 및 상기 보안 모듈이 상기 클라이언트 장치에게 상기 OTP를 제공하는 과정을 더 포함하는 것을 특징으로 하는, 클라이언트 키 복호화방법을 제공한다.According to one aspect of the present disclosure, in the above-described client key decryption method, the security module forms a security channel with the client device through an enclave; and providing, by the security module, the OTP to the client device.

본 개시의 일 측면에 의하면, 전술한 클라이언트 키 복호화방법에 있어서, 복호화된 클라이언트 키와 관련된 작업 수행 이후에, 상기 보안 모듈이 상기 복호화된 클라이언트 키, 상기 OTP 및 상기 KEK를 삭제하는 과정을 더 포함하는 것을 특징으로 하는, 클라이언트 키 복호화 방법을 제공한다.According to one aspect of the present disclosure, in the above-described client key decryption method, after performing an operation related to the decrypted client key, the security module further includes deleting the decrypted client key, the OTP, and the KEK. Characterized in that, it provides a client key decryption method.

본 개시의 일 측면에 의하면, 마스터 키 페어를 기반으로 클라이언트 장치와 보안 모듈 간 공개 키를 공유하여 보안 채널을 형성하는 효과가 있다.According to one aspect of the present disclosure, there is an effect of forming a security channel by sharing a public key between a client device and a security module based on a master key pair.

본 개시의 일 측면에 의하면, 오프라인(offline) 과정 없이 보안 채널 형성하는 효과가 있다.According to one aspect of the present disclosure, there is an effect of forming a secure channel without an offline process.

본 개시의 일 측면에 의하면, 보안 모듈이 클라이언트 키를 암호화하여 저장하고, 평문 클라이언트 키를 삭제함으로써 악의적 내부자의 보안 모듈의 공격에도 클라이언트 키를 보호할 수 있는 효과가 있다.According to one aspect of the present disclosure, the client key can be protected against attacks by malicious insiders by the security module encrypting and storing the client key and deleting the plain text client key.

본 개시의 일 측면에 의하면, 클라이언트가 요청한 작업은 엔클레이브를 통하여 보안 모듈에게 전달되고, 클라이언트 키의 복호화 및 사용은 보안 모듈에서만 수행됨으로써 클라이언트 장치와의 통신 채널 공격에도 클라이언트 키를 보호할 수 있고 잘못된 작업 수행을 방지하는 효과가 있다.According to one aspect of the present disclosure, the operation requested by the client is transmitted to the security module through the enclave, and the decryption and use of the client key are performed only in the security module, so that the client key can be protected against attacks on the communication channel with the client device, It has the effect of preventing incorrect operation.

본 개시의 일 측면에 의하면, 평문으로 저장되는 경우는 오로지 실제 사용자가 해당 클라이언트 키를 사용하는 동안으로 한정됨에 따라, 공격자가 클라이언트의 키를 추출/오용하려는 경우에, 보안 모듈이 생성하는 로그를 기반으로 즉각적으로 공격을 감지할 수 있는 효과가 있다.According to one aspect of the present disclosure, since the storage in plain text is limited only while the actual user is using the corresponding client key, when an attacker tries to extract/misuse the client key, the log generated by the security module Based on this, it has the effect of immediately detecting an attack.

본 개시의 일 측면에 따르면, 동일한 보안 모듈 내부에 여러 클라이언트의 키들을 저장하고 사용할 수 있는 멀티 테넌시(multi-tenancy) 기능을 클라이언트 키들의 무결성을 보장하면서 관리할 수 있는 효과가 있다.According to one aspect of the present disclosure, there is an effect of managing a multi-tenancy function capable of storing and using keys of several clients in the same security module while guaranteeing the integrity of client keys.

본 개시의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure 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은 본 개시의 일 실시예에 따른 키 관리 시스템을 나타내는 개념도이다.
도 2는 본 개시의 일 실시예에 따른 키 관리 시스템의 일 구현예를 나타내는 개념도이다.
도 3은 본 개시의 일 실시예에 따른 보안 채널 형성방법을 나타내는 흐름도이다.
도 4는 본 개시의 일 실시예에 따른 클라이언트 키 생성방법을 나타내는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 클라이언트 키 복호화방법을 나타내는 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 키 관리 시스템의 성능을 나타내는 그래프이다.
도 7은 본 개시의 일 실시예에 따른 키 관리 시스템의 성능을 클라이언트 키 사용의 동시 요청에 따라 나타내는 그래프이다.
1 is a conceptual diagram illustrating a key management system according to an embodiment of the present disclosure.
2 is a conceptual diagram illustrating an implementation example of a key management system according to an embodiment of the present disclosure.
3 is a flowchart illustrating a method for establishing a secure channel according to an embodiment of the present disclosure.
4 is a flowchart illustrating a method for generating a client key according to an embodiment of the present disclosure.
5 is a flowchart illustrating a client key decryption method according to an embodiment of the present disclosure.
6 is a graph showing performance of a key management system according to an embodiment of the present disclosure.
7 is a graph showing the performance of a key management system according to an embodiment of the present disclosure according to simultaneous requests for client key use.

이하, 본 개시의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 열람부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present disclosure will be described in detail through exemplary drawings. In adding a reference code to the components of each drawing, it should be noted that the same components have the same numbers as much as possible even if they are displayed on different drawings. In addition, in describing the present disclosure, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present disclosure, the detailed description will be omitted.

또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, in describing the components of the present disclosure, terms such as first and second may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the corresponding component is not limited by the term. Throughout the specification, when a part 'includes' or 'includes' a certain component, it means that it may further include other components without excluding other components unless otherwise stated. . In addition, the '... Terms such as 'unit' and 'module' refer to a unit that processes at least one function or operation, and may be implemented as hardware, software, or a combination of hardware and software.

첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 개시의 예시적인 실시형태를 설명하고자 하는 것이며, 본 개시가 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.The detailed description set forth below in conjunction with the accompanying drawings is intended to describe exemplary embodiments of the present disclosure, and is not intended to represent the only embodiments in which the present disclosure may be practiced.

본 개시의 키 관리 시스템(key management system)은, 클라이언트 장치(client apparatus)가 엔클레이브(enclave)에 클라이언트 키의 사용을 요청하면, 엔클레이브가 보안 모듈(security module)과 통신하여 안전한 방법으로 클라이언트 키를 이용할 수 있도록 하는 키 관리 서비스를 제공하기 위한 시스템이다.In the key management system of the present disclosure, when a client apparatus requests the enclave to use a client key, the enclave communicates with a security module to secure the client key. It is a system for providing a key management service that allows keys to be used.

본 개시에서 보안 모듈이란, 클라이언트의 키(key)를 생성, 저장 및 관리하기 위한 보안용 하드웨어로서, HSM(Hardware Security Module)일 수 있다.In the present disclosure, a security module is security hardware for generating, storing, and managing a key of a client, and may be a Hardware Security Module (HSM).

본 개시의 일 실시예에 따른 보안 모듈은, 하나 이상의 프로그램 가능한 프로세서 및 하나 이상의 프로그램 가능한 프로세서에 연결되어 암호화된 클라이언트 키를 저장하기 위한 컴퓨터 판독가능 스토리지를 구비하는 장치로서 구현될 수 있으나, 일부 구성이 추가, 삭제, 변경될 수 있다. 하나 이상의 프로그램 가능한 프로세서는, 엔클레이브로부터 전달되는 명령에 따라 후술하는 보안 채널 형성방법, 클라이언트 키 생성방법 및 클라이언트 키 복호화방법의 전부 또는 일부를 수행할 수 있다.A security module according to an embodiment of the present disclosure may be implemented as a device having one or more programmable processors and a computer readable storage connected to the one or more programmable processors to store an encrypted client key, but some components It can be added, deleted, or changed. One or more programmable processors may perform all or part of a secure channel establishment method, a client key generation method, and a client key decryption method described below according to a command transmitted from an enclave.

본 개시에서 엔클레이브란, 프로세서 내부에 위치한 인스턴스 또는 메모리 영역으로서 신뢰실행환경(TEE, Trusted Execution Environment)을 제공하기 위한 신뢰 메모리 영역을 의미한다. 엔클레이브는 외부 장치와 데이터를 주고받을 때마다 보안 절차를 수행하기 때문에 데이터의 무결성(data integrity)을 보장한다. 엔클레이브는 예컨대, 암호화된 메모리를 사용하고 하드웨어 난수 발생기를 이용하여 암호화 작업을 수행함으로써 데이터 무결성을 보장할 수 있다. 엔클레이브는 데이터 보호 키 관리를 위한 암호화 작업을 수행하며 커널이 손상된 경우에도 데이터 보호의 무결성을 보장할 수 있다. 엔클레이브는 SoC(System-on-Chip) 내에서 제작된 보조 프로세서 내지 인스턴스(instance)로서 동작한다.In the present disclosure, an enclave is an instance or memory area located inside a processor, and means a trusted memory area for providing a Trusted Execution Environment (TEE). The enclave ensures data integrity because it performs security procedures whenever data is exchanged with external devices. The enclave may ensure data integrity by, for example, using encrypted memory and performing cryptographic operations using a hardware random number generator. Enclaves perform cryptographic operations for data protection key management and can ensure the integrity of data protection even if the kernel is compromised. The enclave operates as a secondary processor or instance fabricated within a System-on-Chip (SoC).

이러한 엔클레이브는 예컨대, Intel SGX(Software Guard Extension)의 엔클레이브일 수 있다. Intel SGX는 Intel의 마이크로아키텍처 기반의 소프트웨어 보안기술로, CPU에 내장된 보안 관련 명령어 집합(instruction set)이다. SGX는 높은 권한을 가진 시스템에 의해서도 접근이 제한되는 엔클레이브를 제공함으로써 신뢰실행환경을 제공한다. 이러한 SGX 엔클레이브를 이용함으로써, 악의적 내부자의 엔클레이브의 코드를 위/변조를 방지할 수 있다.Such an enclave may be, for example, an enclave of Intel Software Guard Extension (SGX). Intel SGX is a software security technology based on Intel's microarchitecture, and is a security-related instruction set embedded in the CPU. SGX provides a trusted execution environment by providing an enclave in which access is restricted even by systems with high privileges. By using such an SGX enclave, it is possible to prevent forgery/falsification of enclave codes by malicious insiders.

본 개시의 일 실시예에 따른 엔클레이브는, 클라이언트 장치로부터 요청(request)을 받아 보안 모듈에게 키 관리와 관련된 명령을 전달하는 요청부 및 보안 모듈에 의하여 생성된 마스터 공개 키(master public key)의 인증을 수행하는 인증부를 전부 또는 일부 포함하는 장치로서 구현될 수 있으나, 일부 구성이 추가, 삭제 또는 변경될 수 있다. 클라이언트 장치로부터 클라이언트 키 사용의 요청을 받는 경우에 요청부는, 보안 모듈로부터 암호화된 클라이언트 키를 독출(read)하고, 독출된 암호화된 클라이언트 키를 상기 보안 모듈에게 제공할 수 있다.An enclave according to an embodiment of the present disclosure includes a request unit for receiving a request from a client device and transmitting a command related to key management to a security module, and a master public key generated by the security module. It may be implemented as a device including all or part of an authentication unit that performs authentication, but some components may be added, deleted, or changed. When receiving a request for using a client key from a client device, the requesting unit may read an encrypted client key from the security module and provide the read encrypted client key to the security module.

본 개시에서의 클라이언트 장치는 엔클레이브와 보안 모듈을 포함하는 서버(server)에게 키 관리 서비스(Key Management Service, KMS)를 요청하기 위한, 사용자 인터페이스(user interface)를 제공하는 장치이다.A client device in the present disclosure is a device that provides a user interface for requesting a key management service (KMS) from a server including an enclave and a security module.

도 1은 본 개시의 일 실시예에 따른 키 관리 시스템을 나타내는 개념도이다.1 is a conceptual diagram illustrating a key management system according to an embodiment of the present disclosure.

본 개시의 일 실시예에 따른 키 관리 시스템(10)은, 클라이언트 장치로부터 요청(request)을 받는 엔클레이브와, 클라이언트 키가 저장 및 보관되는 보안 모듈을 포함한다. 키 관리 시스템(10)은 키 관리 서비스를 제공하는 서버로서, 클라우드 플랫폼 환경에서 구축되는 시스템일 수 있다. 본 개시의 일 실시예에 따른 키 관리 시스템(10)에서 클라이언트 장치와 보안 모듈은 엔클레이브를 통하여만 통신하고, 클라이언트 장치가 보안 모듈에 직접 접근하지 못하고, 보안 모듈은 엔클레이브를 통하여 키 관리 서비스의 수행을 요청받음으로써 클라이언트 장치와 보안 모듈 간 통신 해킹 위험을 방지할 수 있다.The key management system 10 according to an embodiment of the present disclosure includes an enclave receiving a request from a client device, and a security module in which a client key is stored and stored. The key management system 10 is a server providing a key management service, and may be a system built in a cloud platform environment. In the key management system 10 according to an embodiment of the present disclosure, the client device and the security module communicate only through an enclave, the client device does not directly access the security module, and the security module provides a key management service through the enclave. The risk of communication hacking between the client device and the security module can be prevented by being requested to perform.

본 개시의 일 실시예에 따른 키 관리 시스템(10)은 아래의 세 가지 특징의 전부 또는 일부를 포함한다.The key management system 10 according to an embodiment of the present disclosure includes all or part of the following three features.

1. 보안 채널 형성1. Establish a secure channel

보안 모듈과 클라이언트 장치가 동일한 암호 키를 공유하여, 즉 공유 키(shared key)를 공유하여 보안 채널을 형성한다. The secure module and the client device form a secure channel by sharing the same cryptographic key, that is, by sharing a shared key.

2. 클라이언트의 키 생성 및 암호화2. Client's Key Generation and Encryption

보안 모듈이 클라이언트 키(client key)와 클라이언트 키를 암호화하는 데 이용하기 위한 키 암호화 키(Key encryption key(KEK))를 생성한다. 여기서 키 암호화 키는 생성된 보안 채널을 통하여 클라이언트 장치에게 전달될 수 있다.The security module generates a client key and a key encryption key (KEK) used to encrypt the client key. Here, the key encryption key may be delivered to the client device through the created secure channel.

3. 클라이언트의 키 복호화 및 사용3. Decryption and use of client's key

클라이언트 장치가 클라이언트의 키를 사용하려는 경우에, 클라이언트 장치로부터 키 암호화 키를 획득하여 암호화된 클라이언트 키를 복호화한다. 보안 모듈은 엔클레이브로부터 암호화된 클라이언트 키를 획득함으로써 클라이언트 키의 무결성을 보장할 수 있다. 클라이언트 장치는 KEK를 엔클레이브를 통해 보안 모듈에 전송하고, 보안 모듈은 이를 이용하여 암호화된 클라이언트 키를 평문으로 복원할 수 있다. 보안 모듈은 클라이언트 키의 사용을 마치면 평문 클라이언트 키를 메모리에서 삭제하여 보안 모듈이 공격당하는 경우의 클라이언트 키 유출을 방지할 수 있다.When the client device intends to use the client's key, it obtains a key encryption key from the client device and decrypts the encrypted client key. The security module can ensure the integrity of the client key by obtaining the encrypted client key from the enclave. The client device transmits the KEK to the security module through the enclave, and the security module can use it to restore the encrypted client key in plain text. When the client key is used, the security module deletes the plain text client key from memory to prevent leakage of the client key when the security module is attacked.

한편 키 관리 시스템에는 마스터 키 페어(master key pair), 전술한 공유 키, 클라이언트 키, 키 암호화 키 및 OTP(One-Time Pad)의 전부 또는 일부가 사용될 수 있다.Meanwhile, the key management system may use all or part of a master key pair, the aforementioned shared key, a client key, a key encryption key, and a one-time pad (OTP).

마스터 키 페어는 보안 모듈과 클라이언트 장치 간 공유 키(shared key)를 공유하기 위하여 이용되는 키 페어이다. 마스터 키 페어는, 클라이언트 장치에게 전달되는 마스터 퍼블릭 키(master public key)와 보안 모듈만이 보유하는 마스터 비밀 키(master private key)를 포함할 수 있다. 여기서, 마스터 비밀 키는 속성값(attribute value)으로서 추출 불가능(non-extractable) 속성 및/또는 복호화에만 사용되는 속성이 설정되어 보안 모듈 내에서 저장 및 관리된다. 이는 보안 모듈과 클라이언트 장치 간 보안성 있는 보안 채널을 형성하기 위함이다. 마스터 키 페어는 RSA(Rivest-Shamir-Adleman) 기반의 마스터 키 페어일 수 있다.A master key pair is a key pair used to share a shared key between a security module and a client device. The master key pair may include a master public key delivered to the client device and a master private key possessed only by the security module. Here, the master secret key is stored and managed in the security module with a non-extractable attribute and/or an attribute used only for decryption set as an attribute value. This is to form a secure channel between the secure module and the client device. The master key pair may be a Rivest-Shamir-Adleman (RSA) based master key pair.

공유 키는 보안 모듈과 클라이언트 장치 간 공유되는 키이다. 공유 키는 속성값으로서 추출 불가능 속성 및/또는 암호화에만 사용되는 속성이 설정될 수 있다.A shared key is a key shared between the secure module and the client device. The shared key is an attribute value, and a non-extractable attribute and/or an attribute used only for encryption may be set.

클라이언트 키는 보안 모듈에 저장 및 관리되는 클라이언트의 키이다.The client key is the key of the client stored and managed in the security module.

키 암호화 키는 클라이언트 키를 암호화하기 위하여 이용되는 키이다.A key encryption key is a key used to encrypt a client key.

OTP는 KEK를 보안 모듈에 제공하기 위하여 일회성으로 이용되는 키이다.The OTP is a one-time key used to provide the KEK to the security module.

한편, 키 관리 시스템(10)에서 클라이언트 장치는 엔클레이브에 원격 검증(remote attestation)을 수행하여 엔클레이브의 코드 무결성을 확인한 후 명령을 전달할 수 있다. 원격 검증은, 호스트가 엔클레이브 영역의 코드와 데이터 무결성을 검증하고 엔클레이브가 특정 환경(예: 실제 SGX CPU)에서 생성되었는지를 원격으로 검증할 수 있다.On the other hand, in the key management system 10, the client device may perform remote attestation on the enclave to confirm code integrity of the enclave and then transmit a command. Remote verification allows the host to verify the code and data integrity of the enclave's domain and remotely verify that the enclave was created in a specific environment (e.g. a real SGX CPU).

도 2는 본 개시의 일 실시예에 따른 키 관리 시스템의 일 구현예를 나타내는 개념도이다.2 is a conceptual diagram illustrating an implementation example of a key management system according to an embodiment of the present disclosure.

본 개시의 일 실시예에 따른 키 관리 시스템(10)은 클라우드 플랫폼 환경에서 구현될 수 있다. 이러한 클라우드 플랫폼은 클라이언트 인스턴스(client instance)를 생성하여 가상의 보안 모듈, 예컨대 가상의 HSM(virtualized HSM)을 구동시킬 수 있다. 이러한 클라이언트 인스턴스는 클라우드 플랫폼 내에서 가상 머신(Virtual Machine, VM)에 의하여 구동될 수 있다. 이러한 가상의 보안 모듈은 엔클레이브로서 기능한다. 그에 따라, 클라우드 플랫폼에의 접속을 지원하는 클라이언트 장치는 클라이언트 인스턴스에 키 관리 서비스를 요청하고(도 2의 KMS request), 이러한 요청은 가상 보안 모듈 내의 보안 모듈 명령어(도 2의 HSM commands)로서 보안 모듈 서버(도 2의 HSM 서버)에 전달된다. 보안 모듈 서버는 메모리(도 2의 HSM 메모리)를 포함하는 보안 모듈(도 2의 HSM)을 포함한다.The key management system 10 according to an embodiment of the present disclosure may be implemented in a cloud platform environment. Such a cloud platform may create a client instance to run a virtual security module, for example, a virtualized HSM (HSM). Such a client instance may be driven by a virtual machine (VM) within a cloud platform. This virtual security module functions as an enclave. Accordingly, a client device supporting access to the cloud platform requests a key management service from the client instance (KMS request in FIG. 2), and this request is secured as security module commands (HSM commands in FIG. 2) in the virtual security module. It is passed to the module server (HSM server in FIG. 2). The secure module server includes a secure module (HSM in FIG. 2) including a memory (HSM memory in FIG. 2).

한편, 키 관리 시스템(10)의 클라우드 플랫폼으로서는 Keyless SSL, JSON Web Token(JWT), DB key provisioning service와 Key encryption at rest service 등이 이용될 수 있으나, 이는 예시적인 것으로 이러한 플랫폼에 한하지 않는다. 도 6에서는 Keyless SSL, JWT, DB key provisioning service 및 Key encryption at rest service를 클라우드 플랫폼으로서 적용하여 수행한 성능 평가 결과를 후술한다.Meanwhile, keyless SSL, JSON Web Token (JWT), DB key provisioning service, and Key encryption at rest service may be used as the cloud platform of the key management system 10, but this is exemplary and is not limited to these platforms. In FIG. 6, performance evaluation results performed by applying Keyless SSL, JWT, DB key provisioning service, and Key encryption at rest service as a cloud platform will be described later.

도 3은 본 개시의 일 실시예에 따른 보안 채널 형성방법을 나타내는 흐름도이다.3 is a flowchart illustrating a method for establishing a secure channel according to an embodiment of the present disclosure.

보안 모듈이 마스터 키 페어를 생성한다(S300). 보안 모듈은 마스터 키 페어 중 마스터 비밀 키에 대하여 추출 불가능한 속성 및 복호화에만 이용되는 속성을 설정할 수 있다. 한편, 보안 모듈은 마스터 비밀 키에 의해 복호화된 키에 대하여 추출 불가능한 속성 및 암호화에만 이용되는 속성이 설정되도록 할 수 있다.The security module generates a master key pair (S300). The security module may set an unextractable attribute and an attribute used only for decryption of the master secret key of the master key pair. Meanwhile, the security module may set an attribute that cannot be extracted and an attribute used only for encryption with respect to a key decrypted by the master secret key.

보안 모듈은 엔클레이브로부터 마스터 공개 키에 대한 인증을 받는다. 이러한 인증 작업은 단계 S302 및 단계 S304에 의해 수행될 수 있으나, 이는 예시적인 것으로 인증 작업은 이러한 예시에 한하여 수행되지 않는다.The security module receives authentication against the master public key from the enclave. This authentication task may be performed by steps S302 and step S304, but this is an example and the authentication task is not performed only for this example.

보안 모듈은 마스터 공개 키의 인증서를 엔클레이브에 제공한다(S302). 이는 엔클레이브의 요청에 의할 수 있다. 보안 모듈은 마스터 공개 키를 인증서와 함께 엔클레이브에 제공한다.The security module provides the certificate of the master public key to the enclave (S302). This can be done at the request of the enclave. The security module provides the master public key along with the certificate to the enclave.

엔클레이브는 인증서를 기초로 마스터 공개 키가 보안 모듈에서 생성되었음을 확인하는 인증서 검증을 수행한다(S304).The enclave performs certificate verification to confirm that the master public key has been generated in the security module based on the certificate (S304).

한편, 이러한 인증 작업은 생략될 수도 있다.Meanwhile, this authentication work may be omitted.

엔클레이브를 통하여, 클라이언트 장치로 마스터 공개 키가 전달된다(S306). 엔클레이브는 인증 작업을 수행하기 위하여 보안 모듈로부터 전달받은 마스터 공개 키를 클라이언트 장치에게 전달할 수 있다. 엔클레이브는 인증 작업이 종료되면, 즉 인증이 완료되면 클라이언트 장치로 마스터 공개 키를 전달할 수 있다. 또는 엔클레이브는 보안 모듈의 요청에 따라 클라이언트 장치에게 마스터 공개 키를 전달할 수도 있다.Through the enclave, the master public key is delivered to the client device (S306). The enclave may deliver the master public key received from the security module to the client device in order to perform authentication. The enclave may deliver the master public key to the client device when authentication is complete, that is, authentication is complete. Alternatively, the enclave may deliver the master public key to the client device at the request of the security module.

클라이언트 장치는 공유 키를 생성한다(S308). 공유 키는 대칭 키(symmetric key)일 수 있다. 클라이언트 장치는 공유 키에 추출 불가능한 속성을 설정할 수 있다.The client device generates a shared key (S308). The shared key may be a symmetric key. The client device may set non-extractable attributes in the shared key.

클라이언트 장치는 마스터 공개 키를 이용하여 공유 키를 암호화한다(S310).The client device encrypts the shared key using the master public key (S310).

보안 모듈은 클라이언트 장치로부터, 암호화된 공유 키를 제공받는다(S312). 이는 엔클레이브를 통하여 이루어진다.The security module receives an encrypted shared key from the client device (S312). This is done through enclaves.

보안 모듈은 마스터 비밀 키를 이용하여 암호화된 공유 키를 복호화하여 저장한다(S314). 마스터 비밀 키에 의하여 복호화되었으므로, 보안 모듈이 보유하는 공유 키는 추출 불가능한 속성 및 암호화에만 이용되는 속성이 설정될 수 있다.The security module decrypts and stores the encrypted shared key using the master secret key (S314). Since decryption is performed using the master secret key, the shared key possessed by the security module may be set to non-extractable attributes and attributes used only for encryption.

도 4는 본 개시의 일 실시예에 따른 클라이언트 키 생성방법을 나타내는 흐름도이다.4 is a flowchart illustrating a method for generating a client key according to an embodiment of the present disclosure.

도 4의 클라이언트 키 생성방법은, 도 3의 보안 채널 형성방법이 수행된 이후에 수행될 수 있다. 또는, 도 4의 단계 S404 및 단계 S406은 도 3의 보안 채널 형성방법이 수행된 이후에 수행될 수 있다. 이로써 클라이언트 키는 보안 모듈 내에 안전하게 보관될 수 있다.The client key generation method of FIG. 4 may be performed after the secure channel establishment method of FIG. 3 is performed. Alternatively, steps S404 and S406 of FIG. 4 may be performed after the secure channel establishment method of FIG. 3 is performed. This allows the client key to be safely stored within the secure module.

보안 모듈이 클라이언트 키 및 KEK를 생성한다(S400). 클라이언트 키는 클라이언트 장치에 의해 요청된 종류의 키가 된다. KEK는 대칭키일 수 있다.The security module generates a client key and KEK (S400). The client key will be a key of the type requested by the client device. KEK may be a symmetric key.

보안 모듈은 클라이언트 장치와 공유되는 공유 키를 이용하여 KEK를 암호화한다(S402). 이는 클라이언트 장치에 제공하기 위한 키 래핑(key wrapping)으로, 보안 모듈은 별도로 암호화된 KEK를 보유하지는 않는다. 공유 키는 도 3 단계의 수행으로 획득되는 키일 수 있다. 여기서 키 래핑이란, 키를 캡슐화하도록 고안된 대칭 키 암호 알고리즘의 한 분류이다.The security module encrypts the KEK using a shared key shared with the client device (S402). This is a key wrapping to provide to the client device, and the security module does not hold a separately encrypted KEK. The shared key may be a key obtained by performing the step of FIG. 3 . Key wrapping is a class of symmetric key cryptographic algorithms designed to encapsulate a key.

보안 모듈은 클라이언트 장치에게 암호화된 KEK를 제공한다(S404).The security module provides the encrypted KEK to the client device (S404).

클라이언트 장치는 공유 키를 이용하여 암호화된 KEK를 복호화하여 저장한다(S406).The client device decrypts and stores the encrypted KEK using the shared key (S406).

한편, 도 4의 단계 S404 및 단계 S406는 도 4의 그 외 단계들과 병렬적으로 수행되는 단계로서 단계 S402가 수행된 이후라면 어떠한 단계(단계 S408 내지 단계 S412)의 전/후에라도 단계 S404 및 단계 S406가 수행될 수 있다.Meanwhile, steps S404 and step S406 of FIG. 4 are performed in parallel with the other steps of FIG. S406 may be performed.

보안 모듈은 KEK를 이용하여 클라이언트 키를 암호화한다(S408).The security module encrypts the client key using the KEK (S408).

보안 모듈은 암호화된 클라이언트 키를 저장한다(S410). 단계 S408의 암호화는 KEK를 이용한 키 래핑으로서, 보안 모듈은 암호화된 클라이언트 키를 저장하지 않고 엔클레이브에 전달하고, 보안 모듈은 엔클레이브의 CreateObject 명령어에 의하여 암호화된 클라이언트 키(엔클레이브가 전달받은)를 키 오브젝트(key object)로서 저장할 수 있다.The security module stores the encrypted client key (S410). The encryption in step S408 is key wrapping using KEK, and the security module does not store the encrypted client key but delivers it to the enclave, and the security module uses the enclave's CreateObject command to encrypt the encrypted client key (received by the enclave). can be stored as a key object.

보안 모듈은 S400 단계에서 생성된 평문인 클라이언트 키와 평문인 KEK를 삭제한다(S412). 이로써 보안 모듈은 메모리에 암호화된 클라이언트 키와 공유 키만을 보유하게 된다.The security module deletes the plaintext client key and the plaintext KEK generated in step S400 (S412). This ensures that the secure module holds only the encrypted client key and shared key in memory.

도 5는 본 개시의 일 실시예에 따른 클라이언트 키 복호화방법을 나타내는 흐름도이다.5 is a flowchart illustrating a client key decryption method according to an embodiment of the present disclosure.

도 5의 클라이언트 키 복호화방법은, 도 3의 보안 채널 형성방법 및/또는 도 4의 클라이언트 키 생성방법이 수행된 이후에 수행될 수 있다. 이로써 클라이언트 장치는 클라이언트 키의 무결성을 보장받고 클라이언트 키를 안전하게 이용할 수 있다.The client key decryption method of FIG. 5 may be performed after the secure channel establishment method of FIG. 3 and/or the client key generation method of FIG. 4 are performed. In this way, the client device can ensure the integrity of the client key and safely use the client key.

클라이언트 장치는 엔클레이브에 대하여 원격 검증을 수행한다(S500). 클라이언트 장치는 엔클레이브의 코드의 무결성, 데이터의 무결성과, 엔클레이브가 정상 생성되었는지를 검증할 수 있다. S500 단계는 클라이언트 장치가 엔클레이브에게 명령어를 전달하기 전이면 도 3 내지 도 5의 어떠한 단계에서든 수행될 수 있다.The client device performs remote verification on the enclave (S500). The client device can verify the integrity of the enclave's code and data integrity, and whether the enclave is normally created. Step S500 may be performed at any step of FIGS. 3 to 5 before the client device transmits a command to the enclave.

클라이언트 장치가 클라이언트 키 사용을 요청한다(S502). 엔클레이브는 클라이언트 장치의 요청에 따라 보안 모듈에게 적절한 명령을 한다.The client device requests the use of a client key (S502). The enclave issues appropriate commands to the security module according to the request of the client device.

보안 모듈은 OTP를 생성한다(S504). OTP는 대칭키일 수 있다.The security module generates an OTP (S504). OTP may be a symmetric key.

보안 모듈은 클라이언트와 공유하는 공유 키를 이용하여 OTP를 암호화한다(S506). 이는 클라이언트 장치에 제공하기 위한 키 래핑(key wrapping)으로, 보안 모듈은 별도로 암호화된 OTP를 보유하지는 않는다. 공유 키는 도 3 단계의 수행으로 획득되는 키일 수 있다.The security module encrypts the OTP using a shared key shared with the client (S506). This is a key wrapping to provide to the client device, and the security module does not hold a separately encrypted OTP. The shared key may be a key obtained by performing the step of FIG. 3 .

보안 모듈은 클라이언트 장치에게 암호화된 OTP를 제공한다(S508).The security module provides the encrypted OTP to the client device (S508).

클라이언트 장치는 공유 키를 이용하여 암호화된 OTP를 복호화한다(S510).The client device decrypts the encrypted OTP using the shared key (S510).

클라이언트 장치는 OTP를 이용하여 KEK를 암호화한다(S512).The client device encrypts the KEK using OTP (S512).

보안 모듈은 클라이언트 장치로부터 OTP에 의하여 암호화된 KEK를 제공받는다(S514).The security module receives the KEK encrypted by OTP from the client device (S514).

보안 모듈은 OTP를 이용하여 암호화된 KEK를 복호화한다(S516).The security module decrypts the encrypted KEK using the OTP (S516).

보안 모듈은 엔클레이브가 독출한 암호화된 클라이언트 키를 획득한다(S518, S520). 엔클레이브는 보안 모듈로부터 암호화된 클라이언트 키를 독출(read)하고, 독출된 암호화된 클라이언트 키를 다시 보안 모듈에 전송하여 보안 모듈이 암호화된 클라이언트 키를 복호화하여 저장하도록 할 수 있다. 엔클레이브는 보안 모듈에 GetValue 명령을 하고, 암호화된 클라이언트 키를 전달하며 UnWrap 명령을 할 수 있다.The security module obtains the encrypted client key read by the enclave (S518, S520). The enclave may read the encrypted client key from the security module and transmit the read encrypted client key to the security module again so that the security module decrypts and stores the encrypted client key. The enclave can issue GetValue commands to the secure module, pass the encrypted client key, and UnWrap commands.

보안 모듈은 KEK를 이용하여 암호화된 클라이언트 키를 복호화한다(S522).The security module decrypts the encrypted client key using the KEK (S522).

보안 모듈 및 엔클레이브는 클라이언트 키를 이용하여 클라이언트 장치가 요청한 작업들을 수행한다(S524). 이는 클라이언트 장치의 요청(request)에 따라 엔클레이브가 보안 모듈에 특정 명령을 내리는 방식일 수 있으나, 이에 한하지 않는다.The security module and the enclave perform tasks requested by the client device using the client key (S524). This may be a method in which the enclave issues a specific command to the security module according to a request of the client device, but is not limited thereto.

클라이언트 키의 이용이 완료되면, 보안 모듈은 OTP, KEK 및 복호화된 평문 클라이언트 키를 삭제한다(S526). OTP는 클라이언트 키를 이용하기 위하여 발급된 일회성 키이므로 삭제되고, KEK와 평문 클라이언트 키는 엔클레이브나 보안 모듈이 공격당하는 경우에도 클라이언트 키를 복호화할 수 없도록 삭제된다.When the use of the client key is completed, the security module deletes the OTP, KEK, and the decrypted plaintext client key (S526). Since the OTP is a one-time key issued to use the client key, it is deleted, and the KEK and plaintext client key are deleted so that the client key cannot be decrypted even if the enclave or security module is attacked.

도 3 내지 도 5에서는 과정 각 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 개시의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 개시의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3 내지 도 5에 기재된 순서를 변경하여 실행하거나 각 과정 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3 내지 도 5의 시계열적인 순서로 한정되는 것은 아니다.In FIGS. 3 to 5 , it is described that each process is sequentially executed, but this is merely an example of the technical idea of an embodiment of the present disclosure. In other words, those skilled in the art to which an embodiment of the present disclosure belongs may change and execute the order described in FIGS. 3 to 5 or perform one of each process within the range that does not deviate from the essential characteristics of an embodiment of the present disclosure. Since it will be possible to apply various modifications and variations by executing the above process in parallel, it is not limited to the time-sequential order of FIGS. 3 to 5.

도 6 및 도 7은 본 개시의 실시예에 따른 키 관리 시스템을 적용하는 경우의 성능 평가결과를 나타낸다. 도 6 및 도 7에서는 종래의 키 관리 장치로서 엔클레이브 없이 HSM만 이용하는 경우(도 6 및 도 7의 Stand-alone HSM) 및 Strawman 방식을 이용하는 경우와 본 개시에 따른 키 관리 시스템(도 6 및 도 7의 제안 시스템)을 비교하였다. 여기서 Strawman 방식이란, 엔클레이브가 HSM의 로그를 이용하여 클라이언트 장치의 HSM에 대한 명령과 그 순서를 검증하는 방식이다.6 and 7 show performance evaluation results when a key management system according to an embodiment of the present disclosure is applied. In Figures 6 and 7, the case of using only the HSM without an enclave as a conventional key management device (Stand-alone HSM in Figs. 6 and 7) and the case of using the Strawman method and the key management system according to the present disclosure (Fig. 6 and Fig. 7 proposed system) were compared. Here, the Strawman method is a method in which the enclave verifies commands for the HSM of the client device and their sequence using the log of the HSM.

도 6 및 도 7에서의 엔클레이브는 Intel SGX 엔클레이브를 이용하였으며, 엔클레이브와 HSM을 포함하는 키 관리 서버로서 Quad-core Intel Xeon E-2288(370 GHz CPU, 8 physical cores) 기반의 환경을, 클라이언트 장치로서 KMS 클라이언트와 엔드 클라이언트(end client) 즉, 애플리케이션 서버 및 애플리케이션 클라이언트) 기반의 환경을 적용하였다.The enclave in FIGS. 6 and 7 used an Intel SGX enclave, and as a key management server including an enclave and an HSM, a Quad-core Intel Xeon E-2288 (370 GHz CPU, 8 physical cores) based environment , an environment based on a KMS client and an end client (i.e., an application server and an application client) was applied as a client device.

도 6은 본 개시의 일 실시예에 따른 키 관리 시스템의 성능을 나타내는 그래프이다.6 is a graph showing performance of a key management system according to an embodiment of the present disclosure.

도 6은 키 관리를 수행하는 클라우드 플랫폼으로서 Keyless SSL, JWT signing service, DB key provisioning, Key encryption at rest를 이용하여 end-to-end 성능 평가 결과를 나타내는 그래프이다. 성능 평가 지표로는 쓰루폿(throughput, 도 6의 (a))과 95 백분위수 레이턴시(95-percentile latency, 도 6의 (b))를 이용하였다.6 is a graph showing end-to-end performance evaluation results using keyless SSL, JWT signing service, DB key provisioning, and key encryption at rest as a cloud platform that performs key management. As performance evaluation indicators, throughput (Fig. 6 (a)) and 95-percentile latency (Fig. 6 (b)) were used.

도 6의 (a)를 참조하면, stand-alone HSM을 이용하는 경우 쓰루풋과 레이턴시가 가장 우수함을 확인할 수 있으나, Stand-alone HSM을 이용하는 경우에는 종래의 Cloud KMS의 단점을 모두 가져 보안성에 한계가 있다. 본 개시의 키 관리 시스템을 이용하는 경우에는 엔클레이브를 이용하여 보안성이 있으면서도, Stand-alone HSM의 쓰루풋보다 약간 낮은 수준의 쓰루풋을 가짐을 확인할 수 있다. 한편, 본 개시의 키 관리 시스템과 같이 엔클레이브를 이용하는 Strawman과 대비하여 본 개시의 키 관리 시스템은 약간 높거나(DB key provisioning, Key encryption at rest의 경우) 매우 높은 수준(Keyless SSL, JWT signing service의 경우)의 쓰루풋을 가짐을 알 수 있다.Referring to (a) of FIG. 6, it can be seen that throughput and latency are the best when using stand-alone HSM, but when using stand-alone HSM, there are limitations in security due to all the disadvantages of the conventional Cloud KMS. . In the case of using the key management system of the present disclosure, it can be confirmed that the enclave has a slightly lower level of throughput than the throughput of the stand-alone HSM while maintaining security. On the other hand, compared to Strawman, which uses an enclave like the key management system of the present disclosure, the key management system of the present disclosure has a slightly higher level (DB key provisioning, Key encryption at rest) or a very high level (Keyless SSL, JWT signing service In the case of ), it can be seen that it has a throughput of .

한편, 레이턴시에 대하여는 본 개시의 키 관리 시스템을 이용하는 경우 Stand-alone HSM과 유사한 수준의 낮은 레이턴시를 가지고(Keyless SSL, JWT signing service의 경우) Strawman과 대비하여서는 항상 낮은 레이턴시를 가짐을 알 수 있다. Stand-alone HSM의 경우 엔클레이브를 이용하지 않으므로 모든 플랫폼에서 가장 낮은 수준의 레이턴시를 가진다.On the other hand, with respect to latency, it can be seen that when using the key management system of the present disclosure, it has a low latency similar to that of the stand-alone HSM (in the case of Keyless SSL, JWT signing service) and always has a low latency compared to Strawman. Stand-alone HSM has the lowest latency on all platforms because it does not use an enclave.

이에 따라, 본 개시의 일 실시예에 따른 키 관리 시스템을 적용하는 경우에 특정 플랫폼에 있어서는 Stand-alone HSM을 이용하는 경우와 유사한 성능을 보이고, 모든 플랫폼에 있어서 Strawman 대비 우수한 성능을 보임을 알 수 있다.Accordingly, in the case of applying the key management system according to an embodiment of the present disclosure, it can be seen that in a specific platform, performance is similar to that of using a stand-alone HSM, and in all platforms, it shows superior performance compared to Strawman. .

도 7은 본 개시의 일 실시예에 따른 키 관리 시스템의 성능을 클라이언트 키 사용의 동시 요청에 따라 나타내는 그래프이다.7 is a graph showing the performance of a key management system according to an embodiment of the present disclosure according to simultaneous requests for client key use.

Stand-alone HSM의 경우 한 개의 파티션을 가지므로, 멀티 테넌시(multi-tenancy)를 지원하지 않는다. 그와 반면에, 본 개시의 일 실시예에 따른 키 관리 시스템은 보안 모듈이 포함하는 파티션 수로의 제한 없이 복수의 클라이언트 키를 저장 및 관리할 수 있다. 일반적인 클라우드 기반의 HSM의 경우 HSM 키 스토리지의 용량에 따른 멀티 테넌시를 지원할 수도 있으나, 본 개시의 키 관리 시스템과 같이 내부자 공격(insider threats)에 대한 보안을 지원하지 못하는 문제가 있다. Stand-alone HSM has one partition, so it does not support multi-tenancy. On the other hand, the key management system according to an embodiment of the present disclosure can store and manage a plurality of client keys without limiting the number of partitions included in the security module. In the case of a general cloud-based HSM, multi-tenancy according to the capacity of HSM key storage may be supported, but, like the key management system of the present disclosure, there is a problem in not supporting security against insider threats.

도 7은 동시 요청의 수에 따른 쓰루풋(도 7의 (a))와 95 백분위수 레이턴시(도 7의 (b))를 나타낸다.7 shows throughput (FIG. 7(a)) and 95th percentile latency (FIG. 7(b)) according to the number of simultaneous requests.

도 7의 (a)를 참조하면, 동시 요청 수가 증가함에 따라 Stand-alone HSM과 본 개시의 키 관리 시스템 모두 쓰루풋이 증가함을 알 수 있다. 반면에 Strawman을 이용하는 경우에는 쓰루풋의 변화가 미미함을 알 수 있다. 이는 Strawman의 경우 요청이 직렬적으로 수행되기 때문이다.Referring to (a) of FIG. 7 , it can be seen that the throughput of both the stand-alone HSM and the key management system of the present disclosure increases as the number of simultaneous requests increases. On the other hand, in the case of using Strawman, it can be seen that the change in throughput is insignificant. This is because in the case of Strawman, requests are performed serially.

도 7의 (b)를 참조하면, 동시 요청 수가 증가함에 따라 Stand-alone HSM과 본 개시의 키 관리 시스템 모두 레이턴시의 변화가 완만하게 증가함을 알 수 있다. 반면에 Strawman을 이용하는 경우에는 요청이 직렬적으로 수행됨에 따라 요청이 증가할수록 레이턴시의 증가율이 크게 상승함을 확인할 수 있다.Referring to (b) of FIG. 7 , as the number of simultaneous requests increases, it can be seen that the change in latency of both the stand-alone HSM and the key management system of the present disclosure gradually increases. On the other hand, in the case of using Strawman, it can be confirmed that the rate of increase in latency greatly increases as the number of requests increases as requests are performed serially.

이에 따라, 본 개시의 키 관리 시스템은 보안성 있는 멀티 테넌시를 지원하면서도 높은 쓰루풋과 낮은 레이턴시를 가짐을 확인할 수 있다.Accordingly, it can be confirmed that the key management system of the present disclosure has high throughput and low latency while supporting secure multi-tenancy.

본 명세서에 설명되는 장치, 부(unit), 과정, 단계 등의 다양한 구현예들은, 디지털 전자 회로, 집적 회로, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍 가능 시스템상에서 실행 가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있다. 프로그래밍 가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령을 수신하고 이들에게 데이터 및 명령을 전송하도록 결합된 적어도 하나의 프로그래밍 가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다. 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍 가능 프로세서에 대한 명령어들을 포함하며 "컴퓨터가 읽을 수 있는 기록매체"에 저장된다. Various implementations of devices, units, processes, steps, etc. described herein may include digital electronic circuits, integrated circuits, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), computer hardware, firmware, software, and/or combinations thereof. These various implementations may include being implemented as one or more computer programs executable on a programmable system. A programmable system includes at least one programmable processor (which may be a special purpose processor) coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device. or may be a general-purpose processor). Computer programs (also known as programs, software, software applications or code) contain instructions for a programmable processor and are stored on a “computer readable medium”.

컴퓨터가 읽을 수 있는 기록매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등의 비휘발성(non-volatile) 또는 비 일시적인(non-transitory) 매체를 더 포함할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.A computer-readable recording medium includes all kinds of recording devices that store data that can be read by a computer system. These computer-readable  recording media include non-volatile or non-transitory storage devices such as ROM, CD-ROM, magnetic tape, floppy disk, memory card, hard disk, magneto-optical disk, and storage device. It may further include a medium. In addition, the computer-readable recording medium may be distributed in computer systems connected through a network, and computer-readable codes may be stored and executed in a distributed manner.

본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 프로그램가능 컴퓨터에 의하여 구현될 수 있다. 여기서, 컴퓨터는 프로그램가능 프로세서, 데이터 저장 시스템(휘발성 메모리, 비휘발성 메모리, 또는 다른 종류의 저장 시스템이거나 이들의 조합을 포함함) 및 적어도 한 개의 커뮤니케이션 인터페이스를 포함한다. 예컨대, 프로그램가능 컴퓨터는 서버, 네트워크 기기, 셋톱박스, 내장형 장치, 컴퓨터 확장 모듈, 개인용 컴퓨터, 랩톱, PDA(Personal Data Assistant), 클라우드 컴퓨팅 시스템 또는 모바일 장치 중 하나일 수 있다.Various implementations of the systems and techniques described herein may be implemented by a programmable computer. Here, the computer includes a programmable processor, a data storage system (including volatile memory, non-volatile memory, or other types of storage systems, or combinations thereof) and at least one communication interface. For example, a programmable computer may be one of a server, network device, set top box, embedded device, computer expansion module, personal computer, laptop, personal data assistant (PDA), cloud computing system, or mobile device.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an example of the technical idea of the present embodiment, and various modifications and variations can be made to those skilled in the art without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical idea of the present embodiment, but to explain, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of this embodiment should be construed according to the claims below, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of rights of this embodiment.

10: 키 관리 시스템10: Key management system

Claims (19)

키 관리 서비스를 제공하기 위하여 보안 채널을 형성하는 방법에 있어서,
보안 모듈이 마스터 키 페어(master key pair)를 생성하는 과정; 및
상기 마스터 키 페어를 기반으로, 상기 보안 모듈이 클라이언트 장치와의 보안 채널을 형성하는 과정
을 포함하는 것을 특징으로 하는, 보안 채널 형성방법.
A method for establishing a secure channel to provide a key management service,
The process of the security module generating a master key pair (master key pair); and
Forming, by the security module, a secure channel with a client device based on the master key pair
Characterized in that it comprises a, secure channel forming method.
제1항에 있어서,
상기 마스터 키 페어는, 마스터 공개 키(master public key) 및 마스터 비밀 키(master private key)를 포함하고,
상기 보안 모듈이 엔클레이브로부터 상기 마스터 공개 키에 대한 인증을 받는 과정
을 더 포함하는 것을 특징으로 하는, 보안 채널 형성방법.
According to claim 1,
The master key pair includes a master public key and a master private key,
The process of the security module receiving authentication for the master public key from the enclave
Characterized in that it further comprises a secure channel forming method.
제2항에 있어서,
상기 마스터 키 페어를 생성하는 과정 이후에, 상기 보안 모듈이 상기 엔클레이브를 통하여 상기 클라이언트 장치에게 상기 마스터 공개 키를 제공하는 과정; 및
상기 보안 모듈이 상기 엔클레이브를 통하여 상기 클라이언트 장치로부터, 상기 마스터 공개 키에 의하여 암호화된 공유 키를 제공받는 과정
을 더 포함하는 것을 특징으로 하는, 보안 채널 형성방법.
According to claim 2,
After the process of generating the master key pair, the security module providing the master public key to the client device through the enclave; and
Process of receiving, by the security module, a shared key encrypted by the master public key from the client device through the enclave
Characterized in that it further comprises a secure channel forming method.
제3항에 있어서,
상기 보안 채널을 형성하는 과정은,
상기 암호화된 공유 키를 상기 마스터 비밀 키를 이용하여 복호화하여 저장하는 것을 특징으로 하는, 보안 채널 형성방법.
According to claim 3,
The process of forming the secure channel,
characterized in that the encrypted shared key is decrypted using the master secret key and stored.
제4항에 있어서,
상기 마스터 비밀 키의 속성값과 저장된 공유 키의 속성값은, 추출 불가능하도록 설정된 것을 특징으로 하는, 보안 채널 형성방법.
According to claim 4,
Characterized in that, the attribute value of the master secret key and the attribute value of the stored shared key are set to be non-extractable.
키 관리 서비스를 제공하기 위하여 클라이언트 키를 생성하는 방법에 있어서,
보안 모듈이 상기 클라이언트 키 및 키 암호화 키(이하, KEK)를 생성하는 과정;
상기 보안 모듈이 상기 클라이언트 키를 상기 KEK를 이용하여 암호화하여 저장하는 과정; 및
상기 보안 모듈이 평문 클라이언트 키 및 평문 KEK를 삭제하는 과정
을 포함하는 것을 특징으로 하는, 클라이언트 키 생성방법.
A method for generating a client key to provide a key management service,
a step of generating, by a security module, the client key and key encryption key (hereinafter referred to as KEK);
the security module encrypting and storing the client key using the KEK; and
Process of deleting the plaintext client key and plaintext KEK by the security module
Characterized in that it comprises a, client key generation method.
제6항에 있어서,
엔클레이브를 통하여, 상기 보안 모듈이 클라이언트 장치와의 보안 채널을 형성하는 과정; 및
상기 보안 모듈이 상기 클라이언트 장치에게 상기 KEK를 제공하는 과정
을 더 포함하는 것을 특징으로 하는, 클라이언트 키 생성방법.
According to claim 6,
Forming, by the security module, a secure channel with a client device through an enclave; and
The security module providing the KEK to the client device
Characterized in that it further comprises, the client key generation method.
제7항에 있어서,
상기 보안 채널을 형성하는 과정은,
상기 보안 모듈이 마스터 공개 키 및 마스터 비밀 키를 포함하는 마스터 키 페어를 생성하고, 상기 마스터 키 페어의 전부 또는 일부를 기반으로 상기 클라이언트 장치와 공유되는 공유 키를 획득하는 것을 특징으로 하는, 클라이언트 키 생성방법.
According to claim 7,
The process of forming the secure channel,
Characterized in that the security module generates a master key pair including a master public key and a master secret key, and obtains a shared key shared with the client device based on all or part of the master key pair, the client key creation method.
제7항에 있어서,
상기 KEK를 제공하는 과정은,
상기 클라이언트 장치와 공유되는 공유 키를 이용하여 상기 KEK를 키 래핑(key wrapping)하고, 상기 클라이언트 장치에게 래핑된 KEK를 제공하는 것을 특징으로 하는, 클라이언트 키 생성방법.
According to claim 7,
The process of providing the KEK,
A method for generating a client key, characterized in that the KEK is key-wrapped using a shared key shared with the client device, and the wrapped KEK is provided to the client device.
키 관리 서비스를 제공하기 위하여 클라이언트 키를 복호화하는 방법에 있어서,
보안 모듈이 OTP(One-Time Pad)를 생성하는 과정;
보안 모듈이 클라이언트 장치로부터 키 암호화 키(이하, KEK)를 획득하는 과정; 및
상기 보안 모듈이 암호화된 클라이언트 키를 상기 KEK를 기반으로 복호화하는 과정
을 포함하는 것을 특징으로 하는, 클라이언트 키 복호화방법.
A method for decrypting a client key to provide a key management service,
Process of generating OTP (One-Time Pad) by security module;
obtaining, by a security module, a key encryption key (hereinafter referred to as KEK) from a client device; and
The process of the security module decrypting the encrypted client key based on the KEK
Characterized in that it comprises a, client key decryption method.
제10항에 있어서,
엔클레이브를 통하여, 상기 보안 모듈이 상기 클라이언트 장치와의 보안 채널을 형성하는 과정; 및
상기 보안 모듈이 상기 클라이언트 장치에게 상기 OTP를 제공하는 과정
을 더 포함하는 것을 특징으로 하는, 클라이언트 키 복호화방법.
According to claim 10,
Forming, by the security module, a secure channel with the client device through an enclave; and
Process of the security module providing the OTP to the client device
Characterized in that it further comprises, the client key decryption method.
제11항에 있어서,
상기 OTP를 제공하는 과정은,
상기 클라이언트 장치와 공유되는 공유 키를 이용하여 상기 OTP를 키 래핑(key wrapping)하고, 상기 클라이언트 장치에게 래핑된 OTP를 제공하는 것을 특징으로 하는, 클라이언트 키 복호화방법.
According to claim 11,
The process of providing the OTP,
A method for decrypting a client key, characterized in that the OTP is key-wrapped using a shared key shared with the client device, and the wrapped OTP is provided to the client device.
제11항에 있어서,
상기 KEK를 획득하는 과정은,
상기 클라이언트 장치로부터 상기 OTP에 의하여 암호화된 KEK를 제공받음으로써 수행되는 것을 특징으로 하는, 클라이언트 키 복호화방법.
According to claim 11,
The process of obtaining the KEK,
Characterized in that it is performed by receiving the KEK encrypted by the OTP from the client device, the client key decryption method.
제13항에 있어서,
상기 암호화된 클라이언트 키를 복호화하는 과정은,
상기 암호화된 KEK를 상기 OTP를 이용하여 복호화하여 상기 KEK를 획득하고, 상기 KEK를 이용하여 상기 암호화된 클라이언트 키를 복호화하는 것을 특징으로 하는, 클라이언트 키 복호화 방법.
According to claim 13,
The process of decrypting the encrypted client key,
Decrypting the encrypted KEK using the OTP to obtain the KEK, and decrypting the encrypted client key using the KEK.
제10항에 있어서,
상기 암호화된 클라이언트 키를 복호화하는 과정 이전에, 상기 보안 모듈이 엔클레이브로부터 상기 암호화된 클라이언트 키를 획득하는 과정
을 더 포함하는 것을 특징으로 하는, 클라이언트 키 복호화방법.
According to claim 10,
Prior to the process of decrypting the encrypted client key, the process of obtaining the encrypted client key from the enclave by the security module
Characterized in that it further comprises, the client key decryption method.
제15항에 있어서,
상기 암호화된 클라이언트 키를 획득하는 과정은,
상기 엔클레이브가 상기 보안 모듈로부터 상기 암호화된 클라이언트 키를 독출하여 상기 보안 모듈에게 제공함으로써 수행되는 것을 특징으로 하는, 클라이언트 키 복호화 방법.
According to claim 15,
The process of obtaining the encrypted client key,
Characterized in that the enclave is performed by reading the encrypted client key from the security module and providing it to the security module, the client key decryption method.
제10항에 있어서,
복호화된 클라이언트 키와 관련된 작업 수행 이후에, 상기 보안 모듈이 상기 복호화된 클라이언트 키, 상기 OTP 및 상기 KEK를 삭제하는 과정
을 더 포함하는 것을 특징으로 하는, 클라이언트 키 복호화 방법.
According to claim 10,
Deleting, by the security module, the decrypted client key, the OTP, and the KEK after performing an operation related to the decrypted client key
Characterized in that it further comprises, the client key decryption method.
키 관리 서비스를 제공하기 위한 보안 모듈 장치로서,
하나 이상의 프로그램 가능한 프로세서; 및
상기 하나 이상의 프로그램 가능한 프로세서에 연결되어 암호화된 클라이언트 키를 저장하기 위한 컴퓨터 판독가능 스토리지를 구비하고,
상기 하나 이상의 프로그램 가능한 프로세서는, 엔클레이브로부터 전달되는 명령에 따라 제6항 내지 제9항 중 어느 하나의 항에 따른 클라이언트 키 생성방법의 각 과정을 수행하는, 보안 모듈 장치.
As a security module device for providing a key management service,
one or more programmable processors; and
a computer readable storage coupled to the one or more programmable processors for storing an encrypted client key;
The one or more programmable processors perform each process of the client key generation method according to any one of claims 6 to 9 according to a command transmitted from the enclave, a security module device.
키 관리 서비스를 제공하기 위한 엔클레이브 장치에 있어서,
클라이언트 장치로부터 요청(request)을 받아 보안 모듈에게 키 관리와 관련된 명령을 전달하는 요청부; 및
보안 모듈에 의하여 생성된 마스터 공개 키(master public key)의 인증을 수행하는 인증부를 포함하되,
상기 클라이언트 장치로부터 클라이언트 키 사용의 요청을 받는 경우에 상기 요청부는,
상기 보안 모듈로부터 암호화된 클라이언트 키를 독출(read)하고, 독출된 암호화된 클라이언트 키를 상기 보안 모듈에게 제공하는 것을 특징으로 하는, 엔클레이브 장치.
In the enclave device for providing a key management service,
a request unit that receives a request from a client device and transmits a command related to key management to a security module; and
Including an authentication unit that performs authentication of a master public key generated by the security module,
When receiving a request for using a client key from the client device, the requesting unit,
Characterized in that, the enclave device reads the encrypted client key from the security module and provides the read encrypted client key to the security module.
KR1020210154174A 2021-11-10 2021-11-10 Method for Key Management Service And System Therefor KR20230068144A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210154174A KR20230068144A (en) 2021-11-10 2021-11-10 Method for Key Management Service And System Therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210154174A KR20230068144A (en) 2021-11-10 2021-11-10 Method for Key Management Service And System Therefor

Publications (1)

Publication Number Publication Date
KR20230068144A true KR20230068144A (en) 2023-05-17

Family

ID=86547538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210154174A KR20230068144A (en) 2021-11-10 2021-11-10 Method for Key Management Service And System Therefor

Country Status (1)

Country Link
KR (1) KR20230068144A (en)

Similar Documents

Publication Publication Date Title
US10069806B2 (en) Secure transfer and use of secret material in a shared environment
CN110855671B (en) Trusted computing method and system
CA3013687C (en) A method of data transfer, a method of controlling use of data and a cryptographic device
JP5860815B2 (en) System and method for enforcing computer policy
EP2947811A1 (en) Method, server, host and system for protecting data security
JP2017139811A5 (en)
US20080301436A1 (en) Method and apparatus for performing authentication between clients using session key shared with server
US20190245857A1 (en) Method for securing access by software modules
CN104980477A (en) Data access control method and system in cloud storage environment
EP3732821B1 (en) Secure provisioning of keys
US20130259227A1 (en) Information processing device and computer program product
EP3292654B1 (en) A security approach for storing credentials for offline use and copy-protected vault content in devices
JPWO2017141399A1 (en) Data processing system
US10764260B2 (en) Distributed processing of a product on the basis of centrally encrypted stored data
JP2017108237A (en) System, terminal device, control method and program
KR102055888B1 (en) Encryption and decryption method for protecting information
JP6997821B2 (en) Decryption system
KR20230068144A (en) Method for Key Management Service And System Therefor
KR101508439B1 (en) Method for ensuring data confidentiality, method and system for sharing data for using the same
KR102094606B1 (en) Apparatus and method for authentication
EP4016921A1 (en) Certificate management method and apparatus
KR102625088B1 (en) Apparatus and method for sharing data
JP6371017B1 (en) Information processing system, information processing method, and program
CN116232639A (en) Data transmission method, device, computer equipment and storage medium
CN116938468A (en) Key generation method, device and equipment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal