KR20160139493A - 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치 - Google Patents

클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치 Download PDF

Info

Publication number
KR20160139493A
KR20160139493A KR1020150074302A KR20150074302A KR20160139493A KR 20160139493 A KR20160139493 A KR 20160139493A KR 1020150074302 A KR1020150074302 A KR 1020150074302A KR 20150074302 A KR20150074302 A KR 20150074302A KR 20160139493 A KR20160139493 A KR 20160139493A
Authority
KR
South Korea
Prior art keywords
key
master
service
host
master key
Prior art date
Application number
KR1020150074302A
Other languages
English (en)
Other versions
KR102460096B1 (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 KR1020150074302A priority Critical patent/KR102460096B1/ko
Priority to PCT/KR2015/006238 priority patent/WO2016190476A1/ko
Priority to US15/166,556 priority patent/US10171440B2/en
Priority to CN201610365841.1A priority patent/CN106209353A/zh
Publication of KR20160139493A publication Critical patent/KR20160139493A/ko
Application granted granted Critical
Publication of KR102460096B1 publication Critical patent/KR102460096B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/0822Key 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) using key encryption key
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • 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
    • 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/3236Cryptographic 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 using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 일 실시예들에 따른 키 관리 방법은, 클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화하는 단계, 상기 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하는 단계, 상기 클라우드 서비스의 제공을 위한 호스트 그룹에 포함된 둘 이상의 호스트 서버에, 상기 키 조각을 분산하여 저장하는 단계, 상기 제1 이용자의 인스턴스로부터, 상기 서비스 키의 제공 요청을 수신하는 단계, 상기 둘 이상의 호스트 서버로부터 상기 키 조각들을 수신하고, 상기 수신된 키 조각을 기초로 상기 마스터 키를 재생성하는 단계 및 상기 암호화된 서비스 키를 상기 재생성된 마스터 키를 이용하여 복호화하는 단계를 포함할 수 있다.

Description

클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치{Method and apparatus for managing encryption keys for cloud service}
본 발명은 클라우드 서비스의 데이터 및 중요 자격(credential)들을 암호화하기 위한 서비스 키 및 서비스 키를 암호화하기 위한 마스터 키를 관리하기 위한 방법 및 그 장치에 관한 것이다.
보안이 필요한 수많은 데이터 또는 중요 자격들은 암호화 키(encryption key)를 이용하여 암호화된다. 그러나, 암호화 키가 데이터베이스(database)에 일반적인 텍스트(plain text)로 저장된 경우, 저장된 암호화 키가 데이터베이스 관리자(DataBase Administration, DBA) 또는 내부인에 의하여 유출될 수 있는 위험이 있다. 암호화 키가 하드웨어 보안 모듈(Hardware Security Module, HSM)을 이용하여 암호화된 경우, 암호화 키를 암호화한 마스터 키를 하드웨어 보안 모듈의 제공 업체가 알고 있는 한계가 있다. 또한, 암호화 키가 동형 알고리즘(homomorphic algorithm) 등을 이용하여 암호화된 경우, 암호화 키를 암호화한 마스터 키가 분실되면 더 이상 암호화된 데이터를 복구할 수 없게 되는 문제점이 있다. 따라서, 암호화 키의 비밀성 및 가용성을 동시에 확보할 수 있는 솔루션이 요구되고 있다.
한국 공개 특허 제2003-0077065호 (2003.10.01. 공개)
본 발명이 해결하고자 하는 기술적 과제는, 클라우드 서비스의 데이터 및 중요 자격들을 암복호화할 수 있는 서비스 키를 별도의 마스터 키로 암호화한 후, 특정 조건에서만 마스터 키를 재생성할 수 있는 키 조각을 생성하여 복수 개의 서버에 분산 저장하기 위한 방법 및 그 장치를 제공하기 위한 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 태양(Aspect)에 따른 키 관리 방법은, 클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화하는 단계, 상기 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하는 단계, 상기 클라우드 서비스의 제공을 위한 호스트 그룹에 포함된 둘 이상의 호스트 서버에, 상기 키 조각을 분산하여 저장하는 단계, 상기 제1 이용자의 인스턴스로부터, 상기 서비스 키의 제공 요청을 수신하는 단계, 상기 둘 이상의 호스트 서버로부터 상기 키 조각들을 수신하고, 상기 수신된 키 조각을 기초로 상기 마스터 키를 재생성하는 단계 및 상기 암호화된 서비스 키를 상기 재생성된 마스터 키를 이용하여 복호화하는 단계를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 태양에 따른 키 관리 시스템은, 클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화한 후, 상기 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하여 분산 저장하고, 상기 제1 이용자의 인스턴스로부터 서비스 키 제공 요청이 수신되면, 상기 분산 저장된 키 조각을 기초로 마스터 키를 재생성하여 상기 암호화된 서비스 키를 복호화하는 키 액세스 서버 및 상기 키 액세스 서버로부터 상기 키 조각을 수신하여 저장하고, 상기 키 액세스 서버로부터 키 조각 제공 요청이 수신되면 상기 키 조각을 전송하는 호스트 서버를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 태양에 따르면, 컴퓨팅 장치와 결합하여, 클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화하는 단계, 상기 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하는 단계, 상기 클라우드 서비스의 제공을 위한 호스트 그룹에 포함된 둘 이상의 호스트 서버에, 상기 키 조각을 분산하여 저장하는 단계, 상기 제1 이용자의 인스턴스로부터, 서비스 키 제공 요청을 수신하는 단계, 상기 둘 이상의 호스트 서버로부터 상기 키 조각들을 수신하고, 상기 수신된 키 조각을 기초로 상기 마스터 키를 재생성하는 단계 및 상기 암호화된 서비스 키를 상기 재생성된 마스터 키를 이용하여 복호화하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 제공될 수 있다.
상술한 바와 같은 본 발명에 따르면, 특정 조건에서만 마스터 키를 재생성할 수 있는 키 조각을 생성하여 복수 개의 서버에 분산 저장하고, 어떠한 서버 또는 장치에도 마스터 키를 저장하지 않음으로써, 마스터 키의 비밀성을 확보할 수 있다. 또한, 분산 저장된 키 조각의 일부가 분실되더라도 마스터 키를 재생성할 수 있어, 마스터 키의 가용성을 확보할 수 있다. 나아가, 키 조각이 유출되더라도, 유출된 키 조각만으로는 마스터 키를 재생성할 수 없는 효과가 있다.
도 1 내지 도 3은 본 발명의 몇몇 실시예에 따른 클라우드 서비스 시스템의 개념도이다.
도 4는 본 발명의 일 실시예에 따른 마스터 키 분산 저장 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 마스터 키 재생성 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 다른 실시예에 따른 마스터 키 분산 저장 방법을 설명하기 위한 신호 흐름도이다.
도 7은 본 발명의 다른 실시예에 따른 마스터 키 재생성 방법을 설명하기 위한 신호 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 키 액세스 서버의 블록도이다.
도 9는 본 발명의 일 실시예에 따른 키 액세스 서버의 하드웨어 구성도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 설명하기로 한다.
클라우드 서비스(Cloud service)는 로컬 컴퓨팅 장치가 각종 데이터를 네트워크에 연결된 외부의 서버에 저장하고, 필요 시 외부의 서버로부터 다운로드하여 이용할 수 있는 서비스이다. 보다 구체적으로, 로컬 컴퓨팅 장치의 인스턴스(instance)는 내부의 저장공간이 아닌, 네트워크에 연결된 외부의 서버에 데이터를 저장할 수 있다. 그리고, 로컬 컴퓨팅 장치의 인스턴스는 외부의 서버에 저장된 데이터가 필요한 경우, 외부의 서버로부터 데이터를 다운로드하여 이용할 수 있다. 특히, 본 발명의 일 실시예에 따른 클라우드 서비스는 로컬 컴퓨팅 장치에 가상화된 인프라 환경을 제공할 수 있는 이아스(Infrastructure as a Service, IaaS) 또는 사아스(Software as a Service)가 될 수 있으나, 이에 한정되는 것은 아니다.
서비스 키(Service key)는 클라우드 서비스를 통해 실행되는 인스턴스가 데이터를 암복호화하기 위해 사용하는 키이다. 이러한, 서비스 키는 클라우드 서비스의 이용자(Tenant), 클라우드 서비스를 통해 제공되는 서비스 또는 클라우드 서비스를 통해 제공되는 서비스의 애플리케이션 등에 따라 서로 상이한 값을 가지도록 설정될 수 있다. 또한, 서비스 키는 클라우드 서비스의 이용자, 클라우드 서비스를 통해 제공되는 서비스 또는 클라우드 서비스를 통해 제공되는 서비스의 애플리케이션 등에 따라 서로 상이한 크기 또는 타입을 가질 수 있으나, 이에 한정되는 것은 아니다.
마스터 키(Master key)는 서비스 키를 암복호화하기 위해 사용되는 키이다. 이러한, 마스터 키는 클라우드 서비스의 이용자, 클라우드 서비스를 통해 제공되는 서비스 또는 클라우드 서비스와 관련된 비즈니스 등에 따라 서로 상이한 값을 가지도록 생성될 수 있으나, 이에 한정되는 것은 아니다.
이 밖에, 본 명세서에서 사용된 용어들은 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "이루어지다(made of)"는 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
도 1 내지 도 3은 본 발명의 몇몇 실시예에 따른 클라우드 서비스 시스템의 개념도이다. 도 1 내지 도 3에 개시된 클라우드 서비스 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현될 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 클라우드 서비스 시스템은 키 관리 시스템(10) 및 복수 개의 서비스 장치(400)를 포함하여 구성될 수 있다. 그리고, 키 관리 시스템(10)은 키 액세스 서버(100), 복수 개의 호스트 서버(200) 및 키 관리 데이터베이스(300)를 포함하여 구성될 수 있다. 이하, 본 발명의 일 실시예에 따른 클라우드 서비스 시스템의 각각의 구성 요소에 대하여 구체적으로 설명한다.
키 액세스 서버(100)는 클라우드 서비스의 인스턴스에 의하여 사용되는 서비스 키를 암복호화할 수 있는 마스터 키를 분산하여 관리할 수 있는 서버이다. 특히, 본 발명의 일 실시예에 따른 키 액세스 서버(100)는 마스터 키를 이용하여 서비스 키를 암호화한 후, 특정 조건에서만 마스터 키를 재생성할 수 있는 복수 개의 키 조각을 생성하고, 생성된 키 조각을 복수 개의 호스트 서버(200)에 분산 저장할 수 있다. 또한, 키 액세스 서버(100)는 복수 개의 호스트 서버(200)로부터 수신된 키 조각을 기초로 마스터 키를 재생성하고, 재생성된 마스터 키를 이용하여 서비스 키를 복호화할 수 있다. 이와 같은, 키 액세스 서버(100)에 대해서는, 추후 도 2 내지 도 9를 참조하여 구체적으로 설명할 것이다.
다음으로, 복수 개의 호스트 서버(200)는 키 액세스 서버(100)로부터 키 조각을 수신하여 저장할 수 있는 서버이다. 보다 구체적으로, 복수 개의 호스트 서버(200)는 클라우드 서비스를 제공하기 위한 동종 또는 이종의 서버 중 키 관리를 위한 에이전트(Key management agent)가 설치된 서버이다. 예를 들어, 복수 개의 호스트 서버(200)에는 키 관리를 위한 에이전트가 설치된, 이용자 관리 서버, 서버 코디네이터 장치, 데이터 분석 서버, 이벤트 관리 서버 또는 빅 데이터 저장 서버 등이 포함될 수 있으나, 이에 한정되지 않고, 키 관리만을 위한 전용 서버가 포함될 수도 있다. 이러한, 복수 개의 호스트 서버(200)는 호스트 그룹(20)을 형성할 수 있다.
호스트 그룹(20)에 포함된 복수 개의 호스트 서버(200)는 키 액세스 서버(100)로부터 키 조각을 수신하여 저장할 수 있다. 그리고, 복수 개의 호스트 서버(200)는 키 액세스 서버(100)의 요청에 응답하여, 저장된 키 조각을 추출하여 키 액세스 서버(100)에 전송할 수 있다.
호스트 그룹(20)에 포함된 복수 개의 호스트 서버(200)는 암호화 키(encryption key)를 이용하여 키 조각을 암호화한 후, 암호화된 키 조각을 키 액세스 서버(100)에 전송할 수 있다. 여기서, 암호화 키는 호스트 서버(200)별로 상이하게 프리셋(preset)될 수 있으나, 이에 한정되지 않고, 실시간으로 임시 키(temporary key)를 지정하여 키 액세스 서버(100)와 공유할 수도 있다.
호스트 그룹(20)에 포함된 복수 개의 호스트 서버(200)는 키 액세스 서버(100)가 공개한 키 조각 검증을 위한 데이터를 이용하여, 키 액세스 서버(100)가 악의적인(malicious)인 서버인지 아닌지 판단할 수 있다.
호스트 그룹(20)에 포함된 복수 개의 호스트 서버(200)는 키 액세스 서버(100)로부터 키 조각을 수신한 후, 수신된 키 조각의 해시 값(Hash value)를 계산하여 키 액세스 서버(100)에 전송할 수 있다.
그리고, 호스트 그룹(20)에 포함된 복수 개의 호스트 서버(200)는 키 액세스 서버(100)의 요청에 따라, 무작위적이며 유일한 마스터 키의 생성을 보장하기 위한 랜덤 시드(seed)를 생성하여 키 액세스 서버(100)에 전송할 수 있다.
다음으로, 키 관리 데이터베이스(300)는 마스터 키를 이용하여 암호화된 서비스 키를 저장할 수 있는 데이터베이스이다. 보다 구체적으로, 키 관리 데이터베이스(300)는 키 액세스 서버(100)로부터 수신된 암호화된 서비스 키를 저장할 수 있다. 또한, 키 관리 데이터베이스(300)는 마스터 키 테이블 및 서비스 키 테이블을 포함하여 저장할 수 있다.
여기서, 마스터 키 테이블에는 마스터 키의 식별자(identification), 클라우드 서비스의 이용자의 식별자, 서비스 키의 식별자, 마스터 키의 생성일시, 마스터 키의 해시 값 또는 마스터 키의 키 조각이 분산 저장된 호스트 서버(200)의 식별자 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.
그리고, 서비스 키 테이블에는 서비스 키의 식별자, 클라우드 서비스의 이용자의 식별자, 서비스 키 사용 이력 등이 포함될 수 있으나, 이에 한정되는 것은 아니다.
이러한, 키 관리 데이터베이스(300)는 키 액세스 서버(100)와 독립된 구성 요소가 될 수 있으나, 이에 한정되지 않고, 키 액세스 서버(100)를 구성하는 하나의 구성 요소가 될 수 있음은 통상의 기술자에게 자명할 것이다. 나아가, 키 관리 데이터베이스(300)는 마스터 키 테이블 및 서비스 키 테이블 등의 사이에 일정한 관계(relation)가 존재하는 관계형 데이터베이스(Relational DataBase, RDB)가 될 수 있으나, 이에 한정되는 것은 아니다.
다음으로, 서비스 장치(400)는 클라우드 서비스를 제공하는 서버이다. 보다 구체적으로, 서비스 장치(400)는 하이퍼바이저(Hypervisor)를 통하여, 가상화(virtualization)될 수 있다. 여기서, 하이퍼바이저는 서비스 장치(400)의 리소스 및 기타 자원을 할당하고, 자원 관리 및 모니터링을 위한 인터페이스를 제공하는 플랫폼이다. 그리고, 서비스 장치(400)는 가상화된 가상 머신(virtual machine)을 통하여, 클라우드 서비스를 위한 애플리케이션 또는 애플리케이션의 인스턴스를 실행시킬 수 있다.
서비스 장치(400)의 인스턴스는 서비스 키를 이용하여 클라우드 서비스의 데이터를 암호화할 수 있다. 서비스 장치(400)는 서비스 키를 키 액세스 서버(100)에 전송하여 보호를 요청할 수 있다. 또한, 서비스 장치(400)는 클라우드 서비스의 데이터가 필요한 경우, 키 액세스 서버(100)로부터 서비스 키를 수신한 후, 수신된 서비스 키를 이용하여 클라우드 서비스의 데이터를 복호화할 수 있다.
그리고, 서비스 장치(400)는 키 관리 상호운용 프로토콜(Key Management Interoperability Protocol, KMIP)을 이용하여, 키 액세스 서버(100)와 데이터를 송수신할 수 있다. 또한, 서비스 장치(400)는 보안 소켓 계층/전송 계층 보안 프로토콜(Secure Sockets Layer/Transport Layer Security Protocol, SSL/TLS Protocol)을 이용하여, 키 액세스 서버(100)와 데이터를 송수신할 수 있다.
도 2를 참조하면, 본 발명의 다른 실시예에 따른 클라우드 서비스 시스템은 게이트웨이(500) 및 데이터 버스 장치(600)를 더 포함할 수 있다. 이하, 본 발명의 다른 실시예에 따라 클라우드 서비스 시스템에 추가적으로 포함된 구성 요소에 대하여 구체적으로 설명한다.
게이트웨이(500)는 서비스 장치(400)와 키 관리 시스템(10) 사이의 접근을 제어할 수 있다. 보다 구체적으로, 게이트웨이(500)는 서비스 장치(400)의 키 관리 시스템(10) 내에 포함된 서버에 대한 접근을 제한할 수 있다. 또한, 게이트웨이(500)는 키 관리 시스템(10) 내에 포함된 서버의 서비스 장치(400)에 대한 접근을 제한할 수 있다.
그리고, 게이트웨이(500)는 서비스 장치(400)에 레스트(REpresentational State Transfer, REST) 아키텍처에 따른 에이피아이(Application Programming Interface, API)를 제공할 수 있다. 또한, 게이트웨이(500)는 서비스 장치(400)로부터 수신된 데이터에 따른 이벤트를 데이터 버스 장치(600)에 전송할 수 있다.
다음으로, 데이터 버스 장치(600)는 키 관리 시스템(10)에 포함된 서버들 사이의 데이터 전송을 제어할 수 있다. 보다 구체적으로, 데이터 버스 장치(600)는 게이트웨이(500)로부터 수신된 이벤트를 키 액세스 서버(100) 또는 호스트 서버(200) 등에 전송할 수 있다. 또한, 데이터 버스 장치(600)는 키 액세스 서버(100) 또는 호스트 서버(200) 사이의 데이터 전송을 제어할 수 있다.
다만, 키 관리 시스템(10)에 데이터 버스 장치(600)가 포함되어 있더라도, 키 액세스 서버(100)는 데이터 버스 장치(600)를 이용하지 않고, 호스트 서버(200)와 직접 키 조각을 송수신할 수 있다.
도 3을 참조하면, 본 발명의 또 다른 실시예에 따른 클라우드 서비스 시스템은 복수 개의 키 액세스 서버(100)가 클러스터링(clustering)되어 구축될 수 있다. 이하, 본 발명의 또 다른 실시예에 따라 클라우드 서비스 시스템에 추가적으로 포함된 구성 요소에 대하여 구체적으로 설명한다.
메모리 기반 데이터베이스(700)는 키 액세스 서버(100)의 마스터 키에 대한 접근 속도를 향상시키기 위하여, 키 액세스 서버(100)가 반복적으로 이용하는 마스터 키를 메모리에 저장할 수 있다. 보다 구체적으로, 메모리 기반 데이터베이스(700)은 키 액세스 서버(100)에 의하여 재생성된 마스터 키를 수신할 수 있다. 메모리 기반 데이터베이스(700)는 재생성된 마스터 키를 메모리에 저장(in-memory)할 수 있다. 메모리 기반 데이터베이스(700)는 키 액세스 서버(100)로부터 마스터 키 제공 요청을 수신할 수 있다. 메모리 기반 데이터베이스(700)는 마스터 키 제공 요청에 응답하여, 메모리에 저장된 마스터 키를 키 액세스 서버(100)에 전송할 수 있다.
이하, 본 발명의 일 실시예에 따른 키 액세스 서버(100)의 마스터 키 분산 저장 방법 및 마스터 키 재생성 방법에 대하여 구체적으로 설명한다.
도 4는 본 발명의 일 실시예에 따른 마스터 키 분산 저장 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 키 액세스 서버(100)는 서비스 장치(400)의 인스턴스로부터 서비스 키를 수신한다(S105). 여기서, 서비스 키는 클라우드 서비스 이용자의 인스턴스에 의하여, 데이터를 암복호화하기 위해 사용되는 키이다. 이러한, 서비스 키는 클라우드 서비스의 이용자, 클라우드 서비스를 통해 제공되는 서비스 또는 클라우드 서비스를 통해 제공되는 서비스의 애플리케이션 등에 따라 서로 상이한 크기 또는 타입을 가질 수 있으나, 이에 한정되는 것은 아니다. 또한, 키 액세스 서버(100)는 키 관리 상호운용 프로토콜(KMIP)을 이용하여, 서비스 장치(400)의 인스턴스로부터 서비스 키를 수신할 수 있으나, 이에 한정되는 것은 아니다.
나아가, 키 액세스 서버(100)는 서비스 장치(400)의 인스턴스로부터 서비스 키를 수신하기 이전에, 서비스 장치(400)의 인스턴스로부터 클라우드 서비스 이용자의 식별자 및 서비스 키의 식별자를 수신하고, 수신된 서비스 이용자의 식별자 및 서비스 키의 식별자를 이용하여 인스턴스를 인증할 수 있으나, 이에 한정되는 것은 아니다.
다음으로, 키 액세스 서버(100)는 수신된 서비스 키를 암호화하기 위한 마스터 키를 생성한다(S110). 구체적으로, 키 액세스 서버(100)는 호스트 서버(200)에 랜덤 시드(seed)를 요청한다. 키 액세스 서버(100)는 호스트 서버(200)로부터 수신된 랜덤 시드를 기초로, 기 지정된 랜덤 생성 매커니즘에 따라 마스터 키를 생성한다. 따라서, 키 액세스 서버(100)에 의해 생성된 마스터 키는 클라우드 서비스의 이용자(tenant), 클라우드 서비스를 통해 제공되는 서비스 또는 클라우드 서비스와 관련된 비즈니스 등에 따라 무작위적이며 유일한 값을 가질 수 있다. 또한, 키 액세스 서버(100)는 새로운 마스터 키가 필요한 시점에 안정적으로 연결된 호스트 서버(200)들로부터 랜덤 시드를 수신하고, 수신된 랜덤 시드를 기초로 마스터 키를 생성함으로써, 생성된 마스터 키 값의 예측 가능성을 낮출 수 있다.
다음으로, 키 액세스 서버(100)는 생성된 마스터를 이용하여, 서비스 키를 암호화한다(S115). 그리고, 키 액세스 서버(100)는 암호화된 서비스 키를 키 관리 데이터베이스(300)에 저장한다(S120).
다음으로, 키 액세스 서버(100)는 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성한다(S125). 구체적으로, 키 액세스 서버(100)는 임계 수(threshold) 이상이 존재하는 경우에만, 마스터 키를 재생성할 수 있는 키 조각을 생성할 수 있다. 이하, 키 액세스 서버(100)의 키 조각 생성 방법에 대하여 보다 구체적으로 설명한다.
키 액세스 서버(100)가 마스터 키를 재생성하기 위해 최소로 필요한 키 조각의 임계 수를
Figure pat00001
라 하자. 예를 들어, 임계 수
Figure pat00002
는 3이 될 수 있으나, 이에 한정되는 것은 아니다. 키 액세스 서버(100)는
Figure pat00003
개의 난수(random number)를 생성한다. 키 액세스 서버(100)가 생성한 각각의 난수를
Figure pat00004
라 하자. 그리고, 키 액세스 서버(100)는
Figure pat00005
를 마스터 키로 설정한다.
키 액세스 서버(100)는 1 내지 차 항의 계수가
Figure pat00006
이며, 0차 항의 계수가
Figure pat00007
인,
Figure pat00008
차수의 다항식
Figure pat00009
을 생성한다. 키 액세스 서버(100)가 생성한 다항식
Figure pat00010
는 아래의 수학식 1과 같다.
[수학식 1]
Figure pat00011
여기서,
Figure pat00012
는 마스터 키가 된다.
키 액세스 서버(100)는 키 조각을 분산 저장할
Figure pat00013
개의 호스트 서버(200)의 식별자에 대한 다항식
Figure pat00014
의 함수 값을 기초로
Figure pat00015
개의 키 조각을 생성한다. 여기서,
Figure pat00016
이다.
따라서, 본 발명의 일 실시예에 따른 키 관리 시스템(10)은 마스터 키와 전혀 상이한 형태의
Figure pat00017
개의 키 조각을 생성할 수 있다.
또한, 키 액세스 서버(100)는 다항식
Figure pat00018
의 함수 값을 마스터 키가 가질 수 있는 최대 크기로 나눈 나머지(mod)를 키 조각으로 생성할 수도 있다. 이 경우, 생성된 키 조각의 크기는 모두 동일해질 수 있다.
따라서, 본 발명의 일 실시예에 따른 키 관리 시스템(10)은 모든 키 조각의 크기가 동일하게 키 조각을 생성함으로써, 만약 키 조각의 일부가 외부 또는 내부에 유출되더라도 유출된 키 조각의 크기를 기초로 마스터 키를 예측하기 곤란하다.
다음으로, 키 액세스 서버(100)는 호스트 서버(200)별로 상이한 암호화 키를 이용하여, 생성된
Figure pat00019
개의 키 조각을 암호화한다(S130). 여기서, 암호화 키는 호스트 서버(200)별로 상이하도록 기 지정되어 있을 수 있다. 이러한, 암호화 키는 호스트 서버(200)에 키 관리를 위한 에이전트가 설치될 당시 키 액세스 서버(100)에 설정될 수 있으나, 이에 한정되지 않고, 실시간으로 지정된 임시 키(temporary key)를 호스트 서버(200)로부터 수신할 수도 있다.
따라서, 본 발명의 일 실시예에 따른 키 관리 시스템(10)은 호스트 서버(200)별로 상이한 암호화 키를 이용하여 키 조각을 암호화함으로써, 만약 제1 호스트 서버(200)의 암호화된 키 조각이 제2 호스트 서버(200)에 유출되더라도, 제1 호스트 서버(200)의 암호화 키를 알 수 없는 제2 호스트 서버(200)는 암호화된 키 조각을 복호화할 수 없다.
다음으로, 키 액세스 서버(100)는
Figure pat00020
개의 암호화된 키 조각을
Figure pat00021
개의 호스트 서버(200)에 분산 저장한다(S135). 보다 구체적으로, 키 액세스 서버(100)는 키 분산 프로토콜(key sharing protocol)을 이용하여, 키 조각을 호스트 서버(200)에 전송할 수 있다. 여기서, 키 분산 프로토콜은 호스트 그룹(20)에 포함된 호스트 서버(200) 사이의 데이터 송수신이 허용되지 않도록 정의된 고유의 프로토콜이다. 또한, 키 분산 프로토콜은 데이터 송수신의 일 측이 키 액세스 서버(100)인 경우에 한하여, 데이터 송수신이 허용되도록 정의된 프로토콜이다.
또한, 키 액세스 서버(100)는 호스트 그룹(20)에 포함된 호스트 서버(200) 중 키 조각을 저장할 호스트 서버(200)를 선택함에 있어, 키 조각의 기초가 된 마스터 키에 관한 이용자의 클라우드 서비스와 관련되지 않은 호스트 서버(200)를 선택할 수 있다. 즉, 키 액세스 서버(100)는 제1 이용자에 제공되는 클라우드 서비스와 관련되지 않은 호스트 서버(200)에 제1 이용자에 대한 마스터 키를 분산 저장할 수 있다.
따라서, 본 발명의 일 실시예에 따른 키 관리 시스템(10)은 제1 이용자에 제공되는 클라우드 서비스와 관련되지 않은 호스트 서버(200)에 제1 이용자에 대한 마스터 키를 분산 저장함으로써, 제1 이용자와 밀접한 관계를 가지는 자가 제1 이용자의 클라우드 서비스와 관련된 호스트 서버(200)로부터 키 조각을 수집할 수 없다.
다음으로, 키 액세스 서버(100)는 키 조각이 분산 저장된
Figure pat00022
개의 호스트 서버(200)로부터 각각 해시 값을 수신한다(S140). 그리고, 키 액세스 서버(100)는 수신된 해시 값과 생성된 키 조각의 해시 값을 비교하여, 서로 동일한지 판단한다(S145). 판단 결과,
Figure pat00023
개의 호스트 서버(200)로부터 각각 수신된 해시 값과, 마스터 키를 기초로 생성된 각각의 키 조각의 해시 값 중 상이한 해시 값이 존재하는 경우, 키 액세스 서버(100)는 해당 호스트 서버(200)에 암호화된 키 조각을 다시 전송할 수 있다.
판단 결과,
Figure pat00024
개의 호스트 서버(200)로부터 각각 수신된 해시 값과, 마스터 키를 기초로 생성된 각각의 키 조각의 해시 값이 모두 동일한 경우, 키 액세스 서버(100)는 각각의 키 조각의 해시 값을 키 관리 데이터베이스(300)에 저장한다. 그리고, 키 액세스 서버(100)는 마스터 키가 메모리 또는 스토리지에 저장되어 있는 경우, 저장되어 있는 마스터 키를 삭제한다(S150).
따라서, 본 발명의 일 실시예에 따른 키 관리 시스템(10)은 클라우드 서비스에 사용되는 서비스 키를 별도의 마스터 키로 암호화한 후, 임계 수 이상이 존재하는 경우에만 마스터 키를 재생성할 수 있는 키 조각을 생성하여 분산 저장하고, 어떠한 서버 또는 장치에도 마스터 키를 저장하지 않음으로써, 마스터 키의 비밀성을 확보할 수 있다.
도 5는 본 발명의 일 실시예에 따른 마스터 키 재생성 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 키 액세스 서버(100)는 서비스 장치(400)의 인스턴스로부터 서비스 키의 제공 요청을 수신한다(S205). 키 액세스 서버(100)는 보안 소켓 계층/전송 계층 보안 프로토콜(SSL/TLS Protocol)을 이용하여, 서비스 장치(400)의 인스턴스로부터 서비스 키의 제공 요청을 수신할 수 있으나, 이에 한정되는 것은 아니다.
나아가, 키 액세스 서버(100)는 서비스 장치(400)의 인스턴스로부터 서비스 키의 제공 요청을 수신하기 이전에, 서비스 장치(400)의 인스턴스로부터 클라우드 서비스 이용자의 식별자 및 서비스 키의 식별자를 수신하고, 수신된 서비스 이용자의 식별자 및 서비스 키의 식별자를 이용하여 인스턴스를 인증할 수 있으나, 이에 한정되는 것은 아니다.
다음으로, 키 액세스 서버(100)는 키 액세스 서버(100)의 메모리 또는 메모리 기반 데이터베이스(700)에 서비스 키의 제공을 요청한 인스턴스에 관한 마스터 키가 존재하는지 판단한다(S210).
판단 결과, 키 액세스 서버(100)의 메모리 및 메모리 기반 데이터베이스(700)에 해당 마스터 키가 존재하지 않는 경우, 키 조각을 분산 저장하고 있는
Figure pat00025
개의 호스트 서버(200) 중 마스터 키 재생성에 필요한 키 조각의 임계 수
Figure pat00026
보다 크거나 같은 수의 호스트 서버(200)를 식별한다. 그리고, 키 액세스 서버(100)는 식별된 각각의 호스트 서버(200)에 대한 암호화 키를 이용하여, 키 조각 요청 메시지를 각각 암호화한다(S215).
다음으로, 키 액세스 서버(100)는 식별된 각각의 호스트 서버(200)에 암호화된 키 조각 요청 메시지를 전송한다(S220). 여기서, 키 액세스 서버(100)는 키 조각을 분산 저장하고 있는
Figure pat00027
개의 호스트 서버(200) 모두에 암호화된 키 조각 요청 메시지를 전송하지 아니하고, 키 조각을 분산 저장하고 있는
Figure pat00028
개의 호스트 서버(200) 중 마스터 키 재생성에 필요한 키 조각의 임계 수
Figure pat00029
보다 크거나 같은 수의 호스트 서버(200)에 대해서만 암호화된 키 조각 요청 메시지를 전송할 수 있다.
또한, 키 액세스 서버(100)는 키 분산 프로토콜을 이용하여, 암호화된 키 조각 요청 메시지를 전송할 수 있다. 여기서, 키 분산 프로토콜은 호스트 그룹(20)에 포함된 호스트 서버(200) 사이의 데이터 송수신이 허용되지 않도록 정의된 고유의 프로토콜이다. 또한, 키 분산 프로토콜은 데이터 송수신의 일 측이 키 액세스 서버(100)인 경우에 한하여, 데이터 송수신이 허용되도록 정의된 프로토콜이다.
다음으로, 키 액세스 서버(100)는 키 조각 요청 메시지를 전송한 각각의 호스트 서버(200)로부터 암호화된 키 조각을 수신한다(S225). 키 액세스 서버(100)는 키 분산 프로토콜을 이용하여, 암호화된 키 조각을 수신할 수 있다. 그리고, 키 액세스 서버(100)는 키 조각 요청 메시지를 전송한 호스트 서버(200)에 대한 암호화 키를 이용하여, 암호화된 각각의 키 조각을 복호화한다(S230).
다음으로, 키 액세스 서버(100)는 복호화된 각각의 키 조각의 해시 값과, 키 관리 데이터베이스(300)에 각각 저장된 해시 값을 비교하여, 서로 동일한지 판단한다(S235). 판단 결과, 복호화된 각각의 키 조각의 해시 값과, 키 관리 데이터베이스(300)에 각각 저장된 해시 값 중 상이한 해시 값이 존재하는 경우, 키 액세스 서버(100)는 해당 호스트 서버(200)에 암호화된 키 전송 요청 메시지를 다시 전송할 수 있다.
판단 결과, 복호화된 각각의 키 조각의 해시 값과, 키 관리 데이터베이스(300)에 각각 저장된 해시 값이 모두 동일한 경우, 키 액세스 서버(100)는 키 조각을 기초로 마스터 키를 재생성한다(S240). 구체적으로, 키 액세스 서버(100)는 라그레인지 보간법(Lagrange interpolation)을 이용하여, 마스터 키를 재생성할 수 있다. 이하, 키 액세스 서버(100)의 마스터 키 재생성 방법에 대하여 구체적으로 설명한다.
마스터 키를 재생성하기 위해 필요한 키 조각의 임계 수를
Figure pat00030
, 호스트 서버(200)
Figure pat00031
에 대한 키 조각을
Figure pat00032
라 하자. 키 액세스 서버(100)는 마스터 키
Figure pat00033
를 아래의 수학식 2를 이용하여 계산할 수 있다.
[수학식 2]
Figure pat00034
따라서, 본 발명의 일 실시예에 따른 키 관리 시스템(10)은
Figure pat00035
개의 호스트 서버(200)에 분산 저장된
Figure pat00036
개의 키 조각 중 임계 수
Figure pat00037
보다 적은 수의 키 조각이 존재하는 경우에는 마스터 키를 재생성할 수 없으며, 임계 수
Figure pat00038
보다 크거나 같은 수의 키 조각이 존재하는 경우에만 마스터 키를 재생성할 수 있다.
다음으로, 키 액세스 서버(100)는 재생성된 마스터 키를 메모리 기반 데이터베이스(700)에 저장할 수 있다(S245). 본 발명의 일 실시예에 따른 키 관리 시스템(10)에 메모리 기반 데이터베이스(700)가 포함되지 않은 경우, 본 단계가 생략되고 수행될 수 있음은 통상의 기술자에게 자명하다.
다음으로, 키 액세스 서버(100)는 인스턴스의 요청과 관련된 암호화된 서비스 키를 키 관리 데이터베이스(300)로부터 추출한다(S250). 키 액세스 서버(100)는 마스터 키를 이용하여, 암호화된 서비스 키를 복호화한다(S255). 그리고, 키 액세스 서버(100)는 복호화된 서비스 키를 서비스 장치(400)의 인스턴스에 전송한다(S260).
따라서, 본 발명의 일 실시예에 따른 키 관리 시스템(10)은 분산 저장된 키 조각의 일부가 분실되더라도 마스터 키를 재생성할 수 있어, 마스터 키의 가용성을 확보할 수 있다. 또한, 마스터 키를 생성하기 위해 필요한 임계 수 이상의 키 조각이 유출되더라도, 키 조각들이 각기 다른 암호화 키로 암호화되어 있어 유출된 키 조각만으로는 마스터 키를 재생성할 수 없다.
이하, 본 발명의 다른 실시예에 따른 마스터 키 분산 저장 방법 및 마스터 키 재생성 방법에 대하여 구체적으로 설명한다.
도 6은 본 발명의 다른 실시예에 따른 마스터 키 분산 저장 방법을 설명하기 위한 신호 흐름도이다.
도 6을 참조하면, 서비스 장치(400)의 인스턴스는 클라우드 서비스의 데이터를 서비스 키로 암호화한 후, 서비스 키를 키 액세스 서버(100)에 전송한다(S305). 구체적으로, 서비스 장치(400)의 인스턴스는 키 관리 상호운용 프로토콜(KMIP)을 이용하여, 서비스 키를 키 액세스 서버(100)에 전송할 수 있으나, 이에 한정되는 것은 아니다.
키 액세스 서버(100)는 수신된 서비스 키를 암호화하기 위한 마스터 키를 생성한다(S310). 키 액세스 서버(100)는 생성된 마스터 키를 이용하여, 수신된 서비스 키를 암호화한다(S315). 그리고, 키 액세스 서버(100)는 암호화된 서비스 키를 키 관리 데이터베이스(300)에 전송한다(S320).
키 관리 데이터베이스(300)는 암호화된 서비스 키의 수신에 응답하여, 암호화된 서비스 키를 저장한다(S325).
키 액세스 서버(100)는 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성한다(S330). 구체적으로, 키 액세스 서버(100)는 임계 수 이상이 존재하는 경우에만, 마스터 키를 재생성할 수 있는 키 조각을 생성할 수 있다. 키 액세스 서버(100)의 키 조각 생성 방법에 대한 보다 구체적인 설명은, 도 4를 참조하여 상술한 바와 동일하므로 중복하여 설명하지 않는다.
키 액세스 서버(100)는 호스트 서버(200)별로 상이한 암호화 키를 이용하여, 키 조각을 각각 암호화한다(S335). 여기서, 암호화 키는 호스트 서버(200)에 키 관리를 위한 에이전트가 설치될 당시 키 액세스 서버(100)에 설정될 수 있으나, 이에 한정되지 않고, 실시간으로 지정된 임시 키를 호스트 서버(200)로부터 수신할 수도 있다.
키 액세스 서버(100)는 암호화된 각각의 키 조각을 호스트 서버(200)들에 전송한다(S340). 키 액세스 서버(100)는 키 분산 프로토콜을 이용하여, 키 조각을 호스트 서버(200)들에 전송할 수 있다.
호스트 서버(200)들은 각각의 암호화 키를 이용하여, 수신된 키 조각을 복호화한다(S345). 호스트 서버(200)들은 복호화된 키 조각의 해시 값을 생성한다(S350). 호스트 서버(200)들은 복호화된 키 조각을 저장한다(S355). 그리고, 호스트 서버(200)들은 생성된 해시 값을 키 액세스 서버(100)에 전송한다(S360).
키 액세스 서버(100)는 호스트 서버(200)들로부터 수신된 해시 값과, 마스터 키를 기초로 생성된 키 조각의 해시 값을 비교하여, 서로 동일한지 판단한다(S365). 판단 결과, 호스트 서버(200)들로부터 수신된 해시 값과, 마스터 키를 기초로 생성된 키 조각의 해시 값 중 상이한 해시 값이 존재하는 경우, 키 액세스 서버(100)는 해당 호스트 서버(200)에 암호화된 키 조각을 다시 재전송할 수 있다.
판단 결과, 호스트 서버(200)들로부터 수신된 해시 값과, 마스터 키를 기초로 생성된 키 조각의 해시 값이 모두 동일한 경우, 키 액세스 서버(100)는 메모리 또는 스토리지에 저장되어 있는 마스터 키를 삭제한다(S370).
도 7은 본 발명의 다른 실시예에 따른 마스터 키 재생성 방법을 설명하기 위한 신호 흐름도이다. 이하, 키 액세스 서버(100)의 메모리 및 메모리 기반 데이터베이스(700)에 마스터 키가 존재하지 않는 것으로 가정한다.
도 7을 참조하면, 서비스 장치(400)의 인스턴스는 클라우드 서비스의 데이터를 복호화하기 위하여, 서비스 키의 제공 요청을 키 액세스 서버(100)에 전송한다(S405). 구체적으로, 서비스 장치(400)의 인스턴스는 보안 소켓 계층/전송 계층 보안 프로토콜(SSL/TLS Protocol)을 이용하여, 서비스 키의 제공 요청을 키 액세스 서버(100)에 전송할 수 있으나, 이에 한정되는 것은 아니다.
키 액세스 서버(100)는 서비스 키의 제공 요청 수신에 응답하여, 서비스 키를 복호화하기 위한 마스터 키의 키 조각을 분산 저장하고 있는 호스트 서버(200)들을 식별한다. 키 액세스 서버(100)는 식별된 각각의 호스트 서버(200)에 대한 암호화 키를 이용하여, 키 조각 요청 메시지를 각각 암호화한다(S410). 그리고, 키 액세스 서버(100)는 식별된 각각의 호스트 서버(200)에 암호화된 키 조각 요청 메시지를 전송한다(S415).
호스트 서버(200)들은 암호화된 키 조각 요청 메시지를 각각의 암호화 키로 복호화한다. 그리고, 호스트 서버(200)들은 키 액세스 서버(100)가 악의적인(malicious) 서버인지 검증한다(S420). 이하, 호스트 서버(200)들의 펠드맨(Feldman)이 제안한 이상 대수를 이용한 검증 방법에 대하여 보다 구체적으로 설명한다.
키 액세스 서버(100)가 호스트 서버(200)들에 대하여, 키 조각을 생성한 함수의 계수
Figure pat00039
의 암호화된 값
Figure pat00040
를 공개하였다고 하자. 호스트 서버(200)
Figure pat00041
는 아래의 수학식 3이 성립하지 않는 경우, 키 액세스 서버(100)가 악의적인 서버인 것으로 판단할 수 있다.
[수학식 3]
Figure pat00042
그러나, 호스트 서버(200)들은 펠드맨이 제안한 검증 방법에 한정되지 않고, 페더슨(Pederson)이 제안한 검증 방법을 이용하여 키 액세스 서버(100)를 검증할 수도 있다.
호스트 서버(200)들은 키 액세스 서버(100)가 악의적인 서버가 아닌 경우, 각각에 저장된 키 조각을 추출하고, 추출된 키 조각을 각각의 암호화 키로 암호화한다(S425). 그리고, 호스트 서버(200)들은 암호화된 키 조각을 키 액세스 서버(100)에 전송한다(S430).
키 액세스 서버(100)는 키 조각을 전송한 각각의 호스트 서버(200)에 대한 암호화 키를 이용하여, 암호화된 키 조각을 복호화한다(S435). 그리고, 키 액세스 서버(100)는 키 관리 데이터베이스(300)에 키 조각의 해시 값 제공 요청을 전송한다(S440).
키 관리 데이터베이스(300)는 키 조각의 해시 값 제공 요청에 응답하여, 키 조각의 해시 값을 추출한다(S445). 그리고, 키 관리 데이터베이스(300)는 추출된 해시 값을 키 액세스 서버(100)에 전송한다(S450).
키 액세스 서버(100)는 복호화된 키 조각의 해시 값과, 키 관리 데이터베이스(300)로부터 수신된 해시 값을 비교하여, 서로 동일한지 판단한다(S455). 판단 결과, 복호화된 키 조각의 해시 값과, 키 관리 데이터베이스(300)로부터 수신된 해시 값 중 상이한 해시 값이 존재하는 경우, 키 액세스 서버(100)는 해당 호스트 서버(200)에 암호화된 키 조각 요청 메시지를 다시 전송할 수 있다.
판단 결과, 복호화된 키 조각의 해시 값과, 키 관리 데이터베이스(300)로부터 수신된 해시 값이 모두 동일한 경우, 키 액세스 서버(100)는 키 조각을 기초로 마스터 키를 재생성한다(S460). 구체적으로, 키 액세스 서버(100)는 라그레인지 보간법을 이용하여, 마스터 키를 재생성할 수 있다. 키 액세스 서버(100)의 마스터 키 재생성 방법에 대한 보다 구체적인 설명은, 도 5를 참조하여 상술한 바와 동일하므로 중복하여 설명하지 않는다.
키 액세스 서버(100)는 키 관리 데이터베이스(300)에 암호화된 서비스 키 제공 요청을 전송한다(S465).
키 관리 데이터베이스(300)는 암호화된 서비스 키 제공 요청에 응답하여, 암호화된 서비스 키를 추출한다(S470). 그리고, 키 관리 데이터베이스(300)는 추출된 암호화된 서비스 키를 키 액세스 서버(100)에 전송한다(S475).
키 액세스 서버(100)는 재생성된 마스터 키를 이용하여, 암호화된 서비스 키를 복호화한다(S480). 그리고, 키 액세스 서버(100)는 복호화된 서비스 키를 서비스 장치(400)의 인스턴스에 전송한다(S485).
지금까지, 도4 내지 도 7을 참조하여 설명한 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터 프로그램의 실행에 의하여 수행될 수 있다. 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여, 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 제2 컴퓨팅 장치에서 사용될 수 있다. 여기서, 제1 컴퓨팅 장치 및 제2 컴퓨팅 장치는, 데스크탑(Desktop), 서버(Server) 또는 워크스테이션(Workstation) 등과 같은 고정식 컴퓨팅 장치, 스마트폰(Smart phone), 태블릿(Tablet), 패블릿(Phablet) 또는 랩탑(Laptop) 등과 같은 모바일 컴퓨팅 장치 및 스마트 와치(Smart watch), 스마트 안경(Smart glasses) 또는 스마트 밴드(Smart band) 등과 같은 웨어러블(Wearable) 컴퓨팅 장치를 모두 포함할 수 있다.
이하, 도 8 및 도 9를 참조하여, 본 발명의 일 실시예에 따른 키 액세스 서버(100)의 논리적 구성에 대하여 구체적으로 설명하기로 한다.
도 8은 본 발명의 일 실시예에 따른 키 액세스 서버(100)의 블록도이다. 도 8을 참조하면, 키 액세스 서버(100)는 통신부(105), 저장부(110), 마스터 키 생성부(115), 서비스 키 암복호화부(120), 마스터 키 분산 저장부(125) 및 마스터 키 재생성부(130)를 포함할 수 있다.
각각의 구성에 대하여 설명하면, 통신부(205)는 키 분산 프로토콜을 이용하여, 호스트 서버(200)와 데이터를 송수신할 수 있다. 통신부(205)는 데이터 제공을 요청하기 위한 쿼리(query)를 작성하여, 키 관리 데이터베이스(300)와 데이터를 송수신할 수 있다. 또한, 통신부(205)는 키 관리 상호운용 프로토콜(KMIP) 또는 보안 소켓 계층/전송 계층 보안 프로토콜(SSL/TLS Protocol)을 이용하여, 서비스 장치(400)와 데이터를 송수신할 수도 있다.
저장부(110)는 키 액세스 서버(100)의 동작에 필요한 데이터를 저장할 수 있다. 특히, 서비스 장치(400)의 인스턴스로부터 서비스 키가 반복적으로 요청되어, 키 액세스 서버(100)가 특정 서비스를 위한 마스터 키를 반복적으로 이용하는 경우, 저장부(110)는 마스터 키에 대한 접근 속도를 향상시키기 위하여, 메모리 기반 저장소에 마스터 키(135)를 더 포함하여 저장할 수 있다.
마스터 키 생성부(115)는 서비스 키를 암호화하기 위한 마스터 키를 생성할 수 있다. 구체적으로, 마스터 키 생성부(115)는 통신부(105)를 통해 호스트 서버(200)에 랜덤 시드(seed)의 요청을 전송한다. 마스터 키 생성부(115)는 통신부(105)를 통해 호스트 서버(200)로부터 랜덤 시드를 수신한다. 마스터 키 생성부(115)는 랜덤 시드를 기초로, 기 지정된 랜덤 생성 매커니즘에 따라 마스터 키를 생성한다. 따라서, 마스터 키 생성부(115)가 생성한 마스터 키는 클라우드 서비스의 이용자(tenant), 클라우드 서비스를 통해 제공되는 서비스 또는 클라우드 서비스와 관련된 비즈니스 등에 따라 무작위적이며 유일한 값을 가질 수 있다. 또한, 마스터 키 생성부(115)는 새로운 마스터 키가 필요한 시점에 안정적으로 연결된 호스트 서버(200)들로부터 랜덤 시드를 수신하고, 수신된 랜덤 시드를 기초로 마스터 키를 생성함으로써, 생성된 마스터 키 값의 예측 가능성을 낮출 수 있다.
서비스 키 암복호화부(120)는 통신부(105)를 통해 서비스 키가 수신되면, 마스터 키 생성부(115)를 통해 생성된 마스터 키를 기초로 서비스 키를 암호화할 수 있다. 또한, 서비스 키 암복호화부(120)는 마스터 키 재생성부(130)를 통해 마스터 키가 재생성되면, 암호화된 서비스 키를 복호화할 수 있다.
마스터 키 분산 저장부(125)는 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하고, 생성된 키 조각을 통신부(105)를 통해 전송할 수 있다. 구체적으로, 마스터 키 분산 저장부(125)는 임계 수 이상이 존재하는 경우에만, 마스터 키를 재생성할 수 있는 키 조각을 생성할 수 있다. 마스터 키 분산 저장부(125)의 키 조각 생성 방법에 대한 보다 구체적인 설명은, 도 4를 참조하여 상술한 바와 동일하므로 중복하여 설명하지 않는다.
그리고, 마스터 키 분산 저장부(125)는 호스트 서버(200)별로 상이한 암호화 키를 이용하여, 키 조각을 각각 암호화할 수 있다. 마스터 키 분산 저장부(125)는 통신부(105)를 통해, 암호화된 각각의 키 조각을 호스트 서버(200)들에 전송할 수 있다. 마스터 키 분산 저장부(125)는 통신부(105)를 통해, 해시 값을 수신할 수 있다. 그리고, 마스터 키 분산 저장부(125)는 수신된 해시 값과 키 조각의 해시 값을 비교하여, 서로 동일한지 판단할 수 있다.
마스터 키 재생성부(130)는 둘 이상의 키 조각을 이용하여 마스터 키를 재생성할 수 있다. 구체적으로, 마스터 키 재생성부(130)는 통신부(105)를 통해 암호화된 키 조각을 수신할 수 있다. 마스터 키 재생성부(130)는 키 조각을 전송한 각각의 호스트 서버(200)에 대한 암호화 키를 이용하여, 암호화된 키 조각을 복호화할 수 있다. 마스터 키 재생성부(130)는 통신부(105)를 통해 키 관리 데이터베이스(300)로부터 해시 값을 수신할 수 있다. 마스터 키 재생성부(130)는 복호화된 키 조각의 해시 값과, 키 관리 데이터베이스(300)로부터 수신된 해시 값을 비교하여, 서로 동일한지 판단할 수 있다.
그리고, 마스터 키 재생성부(130)는 복호화된 키 조각을 기초로 마스터 키를 재생성할 수 있다. 구체적으로, 마스터 키 재생성부(130)는 라그레인지 보간법을 이용하여, 마스터 키를 재생성할 수 있다. 마스터 키 재생성부(130)의 마스터 키 재생성 방법에 대한 보다 구체적인 설명은, 도 5를 참조하여 상술한 바와 동일하므로 중복하여 설명하지 않는다.
지금까지, 도 8의 각 구성요소는 소프트웨어(Software) 또는, 현장 프로그래머블 게이트 어레이(Field-Programmable Gate Array, FPGA)나 에이직(Application-Specific Integrated Circuit, ASIC)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현될 수도 있다.
도 9는 본 발명의 일 실시예에 따른 키 액세스 서버(100)의 하드웨어 구성도이다. 도 9를 참조하면, 키 액세스 서버(100)는 프로세서(155), 메모리(160), 네트워크 인터페이스(165), 데이터 버스(170) 및 스토리지(175)를 포함하여 구성될 수 있다.
메모리(160)는 키 관리 방법이 구현된 컴퓨터 프로그램 데이터(180a)가 상주될 수 있다. 또한, 키 액세스 서버(100)가 반복적으로 마스터 키를 이용하는 경우, 메모리(160)는 마스터 키(135)를 더 포함하여 저장할 수 있다.
네트워크 인터페이스(165)는 호스트 서버(200), 키 관리 데이터베이스(300)와 데이터를 송수신할 수 있다. 또한, 네트워크 인터페이스(165)는 서비스 장치(400)와 데이터를 송수신할 수도 있다.
데이터 버스(170)는 프로세서(155), 메모리(160), 네트워크 인터페이스(165) 및 스토리지(175)와 연결되어, 각 구성 요소간의 데이터를 전달하는 이동 통로이다.
그리고, 스토리지(175)는 컴퓨터 프로그램 실행을 위해 필요한 에이피아이(API), 라이브러리(Library) 또는 리소스(Resource) 파일 등을 저장할 수 있다. 또한, 스토리지(175)는 키 관리 방법이 구현된 컴퓨터 프로그램 데이터(180b)를 저장할 수 있다.
보다 구체적으로는, 스토리지(175)에는 클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화하는 인스트럭션(instruction), 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하는 인스트럭션, 네트워크 인터페이스를 통해, 클라우드 서비스의 제공을 위한 호스트 그룹에 포함된 둘 이상의 호스트 서버에, 키 조각을 분산하여 저장하는 인스트럭션, 네트워크 인터페이스를 통해, 제1 이용자의 인스턴스로부터 서비스 키의 제공 요청을 수신하는 인스트럭션, 네트워크 인터페이스를 통해, 둘 이상의 호스트 서버로부터 키 조각들을 수신하고, 수신된 키 조각을 기초로 마스터 키를 재생성하는 인스트럭션, 및 암호화된 서비스 키를 마스터 키를 이용하여 복호화하는 인스트럭션을 포함하는 컴퓨터 프로그램이 저장될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해되어야만 한다.

Claims (16)

  1. 클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화하는 단계;
    상기 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하는 단계;
    상기 클라우드 서비스의 제공을 위한 호스트 그룹에 포함된 둘 이상의 호스트 서버에, 상기 키 조각을 분산하여 저장하는 단계;
    상기 제1 이용자의 인스턴스로부터, 상기 서비스 키의 제공 요청을 수신하는 단계;
    상기 둘 이상의 호스트 서버로부터 상기 키 조각들을 수신하고, 상기 수신된 키 조각을 기초로 상기 마스터 키를 재생성하는 단계; 및
    상기 암호화된 서비스 키를 상기 재생성된 마스터 키를 이용하여 복호화하는 단계를 포함하는, 키 관리 방법.
  2. 제1 항에 있어서,
    상기 키 조각을 생성하는 단계는,
    상기 마스터 키를 재생성하기 위해 필요한 키 조각의 임계 수보다 많거나 같은 수의 키 조각을 생성하는 단계를 포함하는, 키 관리 방법.
  3. 제1 항에 있어서,
    상기 조각 키를 생성하는 단계는,
    상기 마스터 키를 재생성하기 위해 필요한 키 조각의 임계 수와 같은 차수의 다항식을 생성하되, 상기 다항식의 0차 항의 계수가 마스터 키인 다항식을 생성하는 단계; 및
    상기 다항식의 함수 값을 기초로 상기 키 조각을 생성하는 단계를 포함하는, 키 관리 방법.
  4. 제3 항에 있어서,
    상기 키 조각을 생성하는 단계는,
    상기 함수 값을 상기 마스터 키가 가질 수 있는 최대 크기로 나눈 나머지를 기초로 상기 키 조각을 생성하는 단계를 포함하는, 키 관리 방법.
  5. 제1 항에 있어서,
    상기 키 조각을 분산하여 저장하는 단계는,
    상기 키 조각이 저장된 상기 호스트 서버로부터 해시 값을 수신하는 단계; 및
    상기 수신된 해시 값과 상기 호스트 서버에 전송한 키 조각의 해시 값을 비교하는 단계를 포함하는, 키 관리 방법.
  6. 제1 항에 있어서,
    상기 키 조각을 분산하여 저장하는 단계는,
    상기 호스트 서버별로 서로 상이한 상기 호스트 서버의 암호화 키를 이용하여, 상기 키 조각을 각각 암호화하는 단계; 및
    상기 암호화된 키 조각을 상기 호스트에 전송하는 단계를 포함하는, 키 관리 방법.
  7. 제1 항에 있어서,
    상기 키 조각을 분산하여 저장하는 단계는,
    상기 호스트 그룹에 포함된 호스트 서버 사이에서 이용될 수 없도록 정의된 프로토콜을 이용하여, 상기 키 조각을 상기 호스트 서버에 전송하는 단계를 포함하는, 키 관리 방법.
  8. 제1 항에 있어서,
    상기 키 조각을 분산하여 저장하는 단계는,
    상기 호스트 그룹에 포함된 호스트 서버 중 상기 제1 이용자에 제공되는 클라우드 서비스와 관련되지 않은 호스트 서버에, 상기 키 조각을 분산하여 저장하는 단계를 포함하는, 키 관리 방법.
  9. 제1 항에 있어서,
    상기 마스터 키를 재생성하는 단계는,
    상기 키 조각이 분산 저장된 호스트 서버 중 상기 마스터 키를 재생성하기 위해 필요한 키 조각의 임계 수보다 크거나 같은 수의 호스트 서버에 키 조각 요청 메시지를 전송하는 단계를 포함하는, 키 관리 방법.
  10. 제1 항에 있어서,
    상기 마스터 키를 재생성하는 단계는,
    상기 호스트 서버별로 서로 상이한 상기 호스트 서버의 암호화 키를 이용하여, 키 조각 요청 메시지를 각각 암호화하는 단계; 및
    상기 암호화된 키 조각 요청 메시지를 상기 호스트 서버에 전송하는 단계를 포함하는, 키 관리 방법.
  11. 제1 항에 있어서,
    상기 마스터 키를 재생성하는 단계는,
    상기 재생성된 마스터 키를 메모리 기반 데이터베이스에 저장하는 단계를 포함하는, 키 관리 방법.
  12. 제1 항에 있어서,
    상기 마스터 키를 재생성하는 단계는,
    메모리 기반 데이터베이스에 상기 마스터 키가 존재하는지 판단한 후, 상기 메모리 기반 데이터베이스에 상기 마스터 키가 존재하지 않는 경우, 상기 마스터 키를 재생성하는 단계를 포함하는, 키 관리 방법.
  13. 제1 항에 있어서,
    상기 마스터 키는,
    클라우드 서비스의 이용자별로 서로 상이한 값을 가지도록 생성된, 키 관리 방법.
  14. 클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화한 후, 상기 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하여 분산 저장하고, 상기 제1 이용자의 인스턴스로부터 서비스 키 제공 요청이 수신되면, 상기 분산 저장된 키 조각을 기초로 마스터 키를 재생성하여 상기 암호화된 서비스 키를 복호화하는 키 액세스 서버; 및
    상기 키 액세스 서버로부터 상기 키 조각을 수신하여 저장하고, 상기 키 액세스 서버로부터 키 조각 제공 요청이 수신되면 상기 키 조각을 전송하는 호스트 서버를 포함하는, 키 관리 시스템.
  15. 제14 항에 있어서,
    상기 키 액세스 서버로부터 상기 재생성된 마스터 키를 수신하여 저장하고, 상기 키 액세스 서버로부터 마스터 키 제공 요청이 수신되면 상기 마스터 키를 전송하는 메모리 기반 데이터베이스를 더 포함하는, 키 관리 시스템.
  16. 컴퓨팅 장치와 결합하여,
    클라우드 서비스의 제1 이용자의 인스턴스에 의하여 사용되는 서비스 키를 마스터 키를 이용하여 암호화하는 단계;
    상기 마스터 키를 재생성하기 위한 둘 이상의 키 조각을 생성하는 단계;
    상기 클라우드 서비스의 제공을 위한 호스트 그룹에 포함된 둘 이상의 호스트 서버에, 상기 키 조각을 분산하여 저장하는 단계;
    상기 제1 이용자의 인스턴스로부터, 서비스 키 제공 요청을 수신하는 단계;
    상기 둘 이상의 호스트 서버로부터 상기 키 조각들을 수신하고, 상기 수신된 키 조각을 기초로 상기 마스터 키를 재생성하는 단계; 및
    상기 암호화된 서비스 키를 상기 재생성된 마스터 키를 이용하여 복호화하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램.
KR1020150074302A 2015-05-27 2015-05-27 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치 KR102460096B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150074302A KR102460096B1 (ko) 2015-05-27 2015-05-27 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
PCT/KR2015/006238 WO2016190476A1 (ko) 2015-05-27 2015-06-19 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US15/166,556 US10171440B2 (en) 2015-05-27 2016-05-27 Method and apparatus for managing encryption keys for cloud service
CN201610365841.1A CN106209353A (zh) 2015-05-27 2016-05-27 密钥管理方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150074302A KR102460096B1 (ko) 2015-05-27 2015-05-27 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20160139493A true KR20160139493A (ko) 2016-12-07
KR102460096B1 KR102460096B1 (ko) 2022-10-27

Family

ID=57393885

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150074302A KR102460096B1 (ko) 2015-05-27 2015-05-27 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치

Country Status (4)

Country Link
US (1) US10171440B2 (ko)
KR (1) KR102460096B1 (ko)
CN (1) CN106209353A (ko)
WO (1) WO2016190476A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180131059A (ko) * 2017-05-31 2018-12-10 삼성에스디에스 주식회사 암호화 처리 방법 및 그 장치
KR20180131056A (ko) * 2017-05-31 2018-12-10 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 시스템
KR20190124552A (ko) * 2018-04-26 2019-11-05 한국조폐공사 블록 체인 기반 키의 저장 및 복원 방법과 이를 이용한 사용자 단말
WO2020219136A3 (en) * 2019-01-28 2020-12-30 Knectiq Inc. System and method for secure electronic data transfer
US12003620B2 (en) 2021-11-02 2024-06-04 Knectiq Inc. System and method for secure electronic data transfer

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460314B2 (en) * 2013-07-10 2019-10-29 Ca, Inc. Pre-generation of session keys for electronic transactions and devices that pre-generate session keys for electronic transactions
US10158486B1 (en) * 2016-08-09 2018-12-18 Cisco Technology, Inc. Synchronization of key management services with cloud services
KR101999209B1 (ko) * 2016-12-30 2019-07-11 홍익대학교 산학협력단 가상 함수 테이블 포인터 암호화 시스템 및 그 방법
CN106941404B (zh) * 2017-04-25 2020-06-30 中国联合网络通信集团有限公司 密钥保护方法及装置
US10867057B1 (en) 2017-06-01 2020-12-15 Massachusetts Mutual Life Insurance Company Decentralized encryption and decryption of blockchain data
US10841089B2 (en) 2017-08-25 2020-11-17 Nutanix, Inc. Key managers for distributed computing systems
US11368442B2 (en) 2017-08-29 2022-06-21 Amazon Technologies, Inc. Receiving an encrypted communication from a user in a second secure communication network
US11095662B2 (en) 2017-08-29 2021-08-17 Amazon Technologies, Inc. Federated messaging
US11349659B2 (en) 2017-08-29 2022-05-31 Amazon Technologies, Inc. Transmitting an encrypted communication to a user in a second secure communication network
US10972445B2 (en) * 2017-11-01 2021-04-06 Citrix Systems, Inc. Dynamic crypto key management for mobility in a cloud environment
CN107943556B (zh) * 2017-11-10 2021-08-27 中国电子科技集团公司第三十二研究所 基于kmip和加密卡的虚拟化数据安全方法
US20190238323A1 (en) * 2018-01-31 2019-08-01 Nutanix, Inc. Key managers for distributed computing systems using key sharing techniques
CN109067528B (zh) * 2018-08-31 2020-05-12 阿里巴巴集团控股有限公司 密码运算、创建工作密钥的方法、密码服务平台及设备
US10447475B1 (en) * 2018-11-08 2019-10-15 Bar Ilan University System and method for managing backup of cryptographic keys
HK1254273A2 (zh) * 2018-12-03 2019-07-12 Foris Ltd 安全的分佈式密鑰管理系統
US11218307B1 (en) 2019-04-24 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for generation of the last obfuscated secret using a seed
CN110830253A (zh) * 2019-11-29 2020-02-21 江苏芯盛智能科技有限公司 密钥管理方法、装置、服务器、系统及存储介质
US20220006613A1 (en) * 2020-07-02 2022-01-06 International Business Machines Corporation Secure secret recovery
US11799633B1 (en) * 2021-09-27 2023-10-24 Workday, Inc. Enabling using external tenant master keys
CN113918969B (zh) * 2021-09-28 2023-02-21 厦门市美亚柏科信息股份有限公司 一种基于内存数据搜索Bitlocker解密密钥的方法
CN113922969A (zh) * 2021-10-27 2022-01-11 杭州弦冰科技有限公司 Intel SGX可信服务集群化部署的实现方法、系统及电子设备
CN116108474B (zh) * 2023-04-13 2023-06-30 深圳奥联信息安全技术有限公司 一种大数据系统密码服务方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000022006A (ko) * 1998-09-24 2000-04-25 윤종용 디지털 컨텐트의 암호화/해독화 장치 및 그 방법
KR20010082528A (ko) * 1999-09-30 2001-08-30 가시오 가즈오 데이터베이스관리장치 및 암호화복호화방식
KR20030077065A (ko) 2002-03-25 2003-10-01 (주)비진 비디오 도어폰 시스템
KR20030083858A (ko) * 2002-04-22 2003-11-01 소프트포럼 주식회사 키 관리 방법 및 그를 위한 시스템
US20100217986A1 (en) * 2009-02-26 2010-08-26 Red Hat, Inc. Authenticated secret sharing
KR20110003133A (ko) * 2009-07-03 2011-01-11 세종대학교산학협력단 효율적인 개인정보 유통경로의 안전관리를 위한 개인 정보 보호 장치 및 방법
US20120243687A1 (en) * 2011-03-24 2012-09-27 Jun Li Encryption key fragment distribution

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286098B1 (en) * 1998-08-28 2001-09-04 Sap Aktiengesellschaft System and method for encrypting audit information in network applications
TW526643B (en) * 1999-05-20 2003-04-01 Ind Tech Res Inst Data access control system and method
CN1249972C (zh) * 2000-06-05 2006-04-05 凤凰技术有限公司 使用多个服务器的远程密码验证的系统和方法
US6959394B1 (en) * 2000-09-29 2005-10-25 Intel Corporation Splitting knowledge of a password
US7787619B2 (en) 2002-01-29 2010-08-31 Avaya Inc. Method and apparatus for secure key management using multi-threshold secret sharing
US8139770B2 (en) * 2003-12-23 2012-03-20 Wells Fargo Bank, N.A. Cryptographic key backup and escrow system
TWI354206B (en) * 2004-07-15 2011-12-11 Ibm Method for accessing information on article with a
US20060285683A1 (en) * 2004-10-01 2006-12-21 Lakshminarayanan Anatharaman Method for cryptographically processing a message, method for generating a cryptographically processed message, method for performing a cryptographic operation on a message, computer system, client computer, server computer and computer program elements
JP2008103936A (ja) * 2006-10-18 2008-05-01 Toshiba Corp 秘密情報管理装置および秘密情報管理システム
US8634553B2 (en) * 2007-11-05 2014-01-21 Sumitomo Electric Industries, Ltd. Encryption key generation device
US8855318B1 (en) * 2008-04-02 2014-10-07 Cisco Technology, Inc. Master key generation and distribution for storage area network devices
US8345861B2 (en) * 2008-08-22 2013-01-01 Red Hat, Inc. Sharing a secret using polynomial division over GF(Q)
WO2010100923A1 (ja) 2009-03-03 2010-09-10 Kddi株式会社 鍵共有システム
US8625802B2 (en) 2010-06-16 2014-01-07 Porticor Ltd. Methods, devices, and media for secure key management in a non-secured, distributed, virtualized environment with applications to cloud-computing security and management
US9282084B2 (en) * 2010-12-07 2016-03-08 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for provisioning a temporary identity module using a key-sharing scheme
US9270459B2 (en) * 2011-09-20 2016-02-23 Cloudbyte, Inc. Techniques for achieving tenant data confidentiality from cloud service provider administrators
CN102523086B (zh) * 2011-12-07 2014-12-24 上海交通大学 一种隐私保护云存储系统中的密钥恢复方法
US9002812B2 (en) * 2012-04-01 2015-04-07 Microsoft Technology Licensing, Llc Checksum and hashing operations resilient to malicious input data
US10354084B2 (en) * 2013-10-28 2019-07-16 Sepior Aps System and a method for management of confidential data
US9667416B1 (en) * 2014-12-18 2017-05-30 EMC IP Holding Company LLC Protecting master encryption keys in a distributed computing environment
US10541811B2 (en) * 2015-03-02 2020-01-21 Salesforce.Com, Inc. Systems and methods for securing data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000022006A (ko) * 1998-09-24 2000-04-25 윤종용 디지털 컨텐트의 암호화/해독화 장치 및 그 방법
KR20010082528A (ko) * 1999-09-30 2001-08-30 가시오 가즈오 데이터베이스관리장치 및 암호화복호화방식
KR20030077065A (ko) 2002-03-25 2003-10-01 (주)비진 비디오 도어폰 시스템
KR20030083858A (ko) * 2002-04-22 2003-11-01 소프트포럼 주식회사 키 관리 방법 및 그를 위한 시스템
US20100217986A1 (en) * 2009-02-26 2010-08-26 Red Hat, Inc. Authenticated secret sharing
KR20110003133A (ko) * 2009-07-03 2011-01-11 세종대학교산학협력단 효율적인 개인정보 유통경로의 안전관리를 위한 개인 정보 보호 장치 및 방법
US20120243687A1 (en) * 2011-03-24 2012-09-27 Jun Li Encryption key fragment distribution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
James L. Massey, "Minimal codewords and secret sharing." Proceedings of the 6th joint Swedish-Russian international workshop on information theory(1993.) *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180131059A (ko) * 2017-05-31 2018-12-10 삼성에스디에스 주식회사 암호화 처리 방법 및 그 장치
KR20180131056A (ko) * 2017-05-31 2018-12-10 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 시스템
US10893032B2 (en) 2017-05-31 2021-01-12 Samsung Sds Co., Ltd. Encryption key management system for cloud services
US11463417B2 (en) 2017-05-31 2022-10-04 Samsung Sds Co., Ltd. Encryption processing method and apparatus
KR20190124552A (ko) * 2018-04-26 2019-11-05 한국조폐공사 블록 체인 기반 키의 저장 및 복원 방법과 이를 이용한 사용자 단말
WO2020219136A3 (en) * 2019-01-28 2020-12-30 Knectiq Inc. System and method for secure electronic data transfer
KR20210109667A (ko) * 2019-01-28 2021-09-06 크넥트아이큐 인크. 보안 전자 데이터 전송을 위한 시스템 및 방법
US11165568B2 (en) 2019-01-28 2021-11-02 Knectiq Inc. System and method for secure electronic data transfer
US12003620B2 (en) 2021-11-02 2024-06-04 Knectiq Inc. System and method for secure electronic data transfer

Also Published As

Publication number Publication date
CN106209353A (zh) 2016-12-07
KR102460096B1 (ko) 2022-10-27
WO2016190476A1 (ko) 2016-12-01
US10171440B2 (en) 2019-01-01
US20170019385A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
KR102460096B1 (ko) 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
CN108683747B (zh) 资源获取、分发、下载方法、装置、设备及存储介质
KR101966767B1 (ko) 클라우드 서비스를 위한 암호화 키 관리 시스템
US11240024B2 (en) Cryptographic key management using key proxies and generational indexes
US8769310B2 (en) Encrypting data objects to back-up
US20220277099A1 (en) Encrypting data records and processing encrypted records without exposing plaintext
US8769269B2 (en) Cloud data management
US10615972B2 (en) System and methods of managing shared keys in a computer cluster with high availability
US11943203B2 (en) Virtual network replication using staggered encryption
CN103403731B (zh) 云存储系统的数据加密处理装置和方法
US11134067B1 (en) Token management in a managed directory service
US9215294B2 (en) Management of communications between a client equipment and a server equipment providing to the client equipment computer resources represented according to a file system
US11728974B2 (en) Tenant-based database encryption
US11418331B1 (en) Importing cryptographic keys into key vaults
US20110154015A1 (en) Method For Segmenting A Data File, Storing The File In A Separate Location, And Recreating The File
US10673827B1 (en) Secure access to user data
US11418327B2 (en) Automatic provisioning of key material rotation information to services
US11991278B2 (en) Secrets rotation for vehicles
US10033713B2 (en) System and method for managing keys for use in encrypting and decrypting data in a technology stack
US20240195785A1 (en) Data stream replication using staggered encryption
US11805109B1 (en) Data transfer encryption offloading using session pairs
US20160275295A1 (en) Object encryption

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant