KR101966767B1 - 클라우드 서비스를 위한 암호화 키 관리 시스템 - Google Patents

클라우드 서비스를 위한 암호화 키 관리 시스템 Download PDF

Info

Publication number
KR101966767B1
KR101966767B1 KR1020170067569A KR20170067569A KR101966767B1 KR 101966767 B1 KR101966767 B1 KR 101966767B1 KR 1020170067569 A KR1020170067569 A KR 1020170067569A KR 20170067569 A KR20170067569 A KR 20170067569A KR 101966767 B1 KR101966767 B1 KR 101966767B1
Authority
KR
South Korea
Prior art keywords
key
service
key management
management system
master
Prior art date
Application number
KR1020170067569A
Other languages
English (en)
Other versions
KR20180131056A (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 KR1020170067569A priority Critical patent/KR101966767B1/ko
Priority to US15/994,266 priority patent/US10893032B2/en
Publication of KR20180131056A publication Critical patent/KR20180131056A/ko
Application granted granted Critical
Publication of KR101966767B1 publication Critical patent/KR101966767B1/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/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)
    • 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
    • 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
    • H04L63/064Hierarchical key distribution, e.g. by multi-tier trusted parties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

클라우드 서비스를 위한 암호화 키 관리 시스템이 제공된다. 본 발명의 일 실시예에 따른 암호화 키 관리 시스템은, 클라우드 서비스를 제공하는 서비스 제공 서버에 의해 이용되는 서비스 키를 제공하는 암호화 키 관리 시스템에 있어서, 상기 서비스 키를 대응되는 마스터 키를 이용하여 암호화하고, 상기 서비스 제공 서버의 서비스 키 요청에 응답하여 상기 서비스 키를 제공하는, 키 액세스 서버 및 상기 마스터 키에서 복수의 키 조각을 추출하고, 상기 추출된 복수의 키 조각이 분산 저장되도록 처리하며, 상기 키 액세스 서버의 마스터 키 요청에 응답하여, 상기 복수의 키 조각으로부터 복원된 마스터 키를 제공하는, 마스터 키 관리 서버를 포함할 수 있다.

Description

클라우드 서비스를 위한 암호화 키 관리 시스템{System for managing encryption keys for cloud services}
본 발명은 클라우드 서비스를 위한 암호화 키 관리 시스템에 관한 것이다. 보다 자세하게는, 클라우드 서비스의 보안성 향상을 위해, 클라우드 데이터의 암복호화에 이용되는 암호화 키를 관리하는 시스템에 관한 것이다.
클라우드 컴퓨팅(cloud computing) 기반의 IT 환경 구축이 보편화되면서 기업과 공공 기관에서는 클라우드 컴퓨팅 환경을 정보시스템 자원의 활용과 통합을 위한 하나의 필수적인 환경으로 인식하기 시작하였다. 또한, 개인들도 인터넷 및 모바일 환경에서 도 1에 예시된 다양한 클라우드 서비스를 이용하면서 클라우드 컴퓨팅 환경에 대한 인식이 높아지게 되었다. 이러한 클라우드 컴퓨팅 환경이 전통적인 IT 환경을 대체하면서 가장 큰 화두로 등장한 것은 바로 클라우드 보안에 관한 이슈이다.
클라우드 서비스는 서버, 스토리지, SW 등 다양한 IT 자원을 테넌트(tenant)에게 제공하는 주문형 아웃소싱 서비스(On-Demand outsourcing service)이기 때문에 필수적으로 보안 이슈가 제기될 수 밖에 없다. 또한, 외부적으로는 클라우드 서비스의 테넌트(tenant) 별로 독립된 서비스가 제공되는 것처럼 보이지만, 내부적으로는 결국 물리적 자원이 공유되고 있는 것이기 때문에, 클라우드 서비스를 상용적으로 제공하기 위해서는 필수적으로 강력한 보안 체계가 뒷받침되어야 한다.
상술한 보안 이슈가 제기됨에 따라, 클라우드 서비스의 사업자는 기본적으로 암호화 기술을 이용하여 클라우드 스토리지 내에 보관되는 데이터의 비밀성(confidentiality)을 제공하고 있다. 그러나, 암호화 기술을 이용하더라도, 데이터의 비밀성은 결국 암호화 키의 비밀성에 의존하는 것이기 때문에, 상용적으로 클라우드 서비스를 제공하기 위해서는 다수의 암호화 키를 안전하게 관리할 수 있는 별도의 암호화 키 관리 시스템이 필수적으로 요구된다.
한국공개특허 제2013-0074225호 (2013.07.04 공개)
본 발명이 해결하고자 하는 기술적 과제는, 클라우드 서비스의 데이터를 암복호화할 수 있는 서비스 키 및 상기 서비스 키를 암호화하는데 이용되는 마스터 키를 안전하게 관리함으로써 클라우드 서비스의 보안성을 담보할 수 있는 암호화 키 관리 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 서비스 키 및 마스터 키를 안전하게 관리함과 동시에, 다수의 서비스 키 요청에 대한 처리 성능을 향상시킬 수 있는 암호화 키 관리 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 암호화 키 관리 시스템은, 클라우드 서비스를 제공하는 서비스 제공 서버에 의해 이용되는 서비스 키를 제공하는 암호화 키 관리 시스템에 있어서, 상기 서비스 키를 대응되는 마스터 키를 이용하여 암호화하고, 상기 서비스 제공 서버의 서비스 키 요청에 응답하여 상기 서비스 키를 제공하는, 키 액세스 서버 및 상기 마스터 키에서 복수의 키 조각을 추출하고, 상기 추출된 복수의 키 조각이 분산 저장되도록 처리하며, 상기 키 액세스 서버의 마스터 키 요청에 응답하여, 상기 복수의 키 조각으로부터 복원된 마스터 키를 제공하는, 마스터 키 관리 서버를 포함할 수 있다.
일 실시예에서, 상기 마스터 키는 상기 암호화 키 관리 시스템 내에 보관되지 않을 수 있다.
일 실시예에서, 상기 키 액세스 서버는, 복수의 서버가 각각 병렬적으로 상기 서비스 키 요청을 처리하는 스케일 아웃(scale out) 구조로 구성되고, 상기 서비스 키 요청을 상기 복수의 서버로 분배하는 프록시(proxy)를 더 포함할 수 있다.
일 실시예에서, 상기 마스터 키 관리 서버는, 복수의 서버가 각각 병렬적으로 상기 마스터 키 요청을 처리하는 스케일 아웃(scale out) 구조로 구성되고, 상기 마스터 키 요청을 상기 복수의 서버로 분배하는 프록시(proxy)를 더 포함할 수 있다.
일 실시예에서, 기 설정된 캐싱 정책에 따라 상기 마스터 키에 대한 캐싱을 수행하고, 상기 서비스 키 요청에 응답하여, 상기 캐싱된 마스터 키를 제공하는, 캐싱 서버를 더 포함할 수 있다.
일 실시예에서, 상기 키 액세스 서버는, 상기 서비스 키에 대응되는 카테고리를 나타내는 식별자를 부여하되, 상기 카테고리는, 복수의 계층으로 구성될 수 있다.
또한, 상기 서비스 키를 저장하고, 복수의 데이터 노드를 포함하는 NoSQL 기반의 서비스 키 관리 DB를 더 포함하되, 상기 복수의 데이터 노드 각각은 상기 카테고리에 대응되고, 상기 복수의 데이터 노드 각각에는 각각의 카테고리에 대응되는 서비스 키가 저장되며, 상기 서비스 키의 식별자는 상기 복수의 데이터 노드 각각에 저장된 서비스 키에 대한 인덱스로 이용될 수 있다.
또한, 상기 복수의 계층 중에서 어느 하나의 계층이 마스터 키 관리에 이용되는 기준 계층으로 설정되고, 기 기준 계층에 위치한 제1 카테고리에 대응되는 제1 서비스 키는 제1 마스터 키로 암호화되어 저장되고, 기 기준 계층에 위치한 제2 카테고리에 대응되는 제2 서비스 키는 제2 마스터 키로 암호화되어 저장될 수 있다.
또한, 상기 기준 계층에 위치한 카테고리는 상기 클라우드 서비스를 이용하는 테넌트(tenant)에 대응되거나, 클라우드 서비스의 종류에 대응될 수 있다.
일 실시예에서, 상기 키 액세스 서버는, 기 서비스 키의 유효 기간에 기초하여 설정된 솔트를 이용하여 암호화 키를 도출하고, 상기 암호화 키를 이용하여 상기 서비스 키를 암호화하며, 상기 암호화된 서비스 키 및 상기 솔트를 상기 서비스 제공 서버로 제공할 수 있다.
상술한 본 발명에 따르면, 서비스 키와 마스터 키가 별도의 DB에 보관되고, 서비스 키에 관한 처리와 마스터 키에 관한 처리 또한 별도의 컴퓨팅 장치에서 수행될 수 있다. 즉, 서비스 키와 마스터 키에 대한 관리가 원천적으로 분리되어 수행될 수 있는 바, 클라우드 서비스의 보안성이 향상될 수 있다.
또한, 클라우드 데이터의 비밀성을 담보하는 서비스 키가 마스터 키에 의해 암호화되어 관리되고, 상기 마스터 키는 복수의 키 조각으로 분산되어 저장될 수 있다. 더욱이, 마스터 키는 어떠한 서버 또는 장치에도 저장되지 않는 바, 서비스 키 및 마스터 키의 비밀성이 확보될 수 있다.
또한, 서비스 키의 유효 기간이 포함된 솔트를 이용하여 서비스 키를 암호화하고, 암호화된 서비스 키가 요청한 서비스 제공 서버로 전달될 수 있다. 이에 따라, 서비스 키가 전달되는 네트워크 구간에서 스니핑 등에 의해 서비스 키가 유출되더라도 일정 수준 이상의 보안성이 담보될 수 있다.
또한, 키 액세스 서버 및/또는 마스터 키 관리 서버는 스케일 구조로 구성될 수 있다. 이에 따라, 암호화 키 관리 시스템의 전반적인 처리 성능이 향상되고, 상기 암호화 키 관리 시스템의 신뢰성 및 가용성이 증대될 수 있다.
또한, 캐시 서버를 이용하여, 마스터 키에 대한 캐싱이 수행될 수 있다. 이에 따라, 마스터 키 복원에 소요되는 컴퓨팅 비용 및 시간 비용이 절감될 수 있고, 암호화 키 관리 시스템의 처리 성능이 더욱 향상될 수 있다.
또한, 서비스 키에 부여되는 제2 식별자를 인덱스로 이용하여, DB 접근 횟수를 최소화하고, 서비스 키 관리 DB에 저장된 서비스 키가 신속하게 획득될 수 있다. 이에 따라, 암호화 키 관리 시스템의 처리 성능이 더욱 향상될 수 있다.
또한, 계층적 카테고리에 따라 서비스 키 별로 제2 식별자를 부여하고, 카테고리가 동일한 서비스 키는 동일한 마스터 키와 대응되도록 함으로써 관리되는 마스터 키의 개수를 줄일 수 있다. 또한, 서비스 키의 카테고리를 제공되는 클라우드 서비스 또는 테넌트로 설정함으로써, 클라우드 서비스 별 또는 테넌트 별로 마스터 키가 관리될 수 있다. 이에 따라, 마스터 키 관리의 편의성이 증대될 수 있다.
특히, 본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 클라우드 컴퓨팅 환경에서 제공될 수 있는 클라우드 서비스를 나타내는 개념도이다.
도 2는 본 발명이 적용될 수 있는 예시적인 클라우드 환경을 설명하기 위한 도면이다.
도 3 내지 도 6은 본 발명의 몇몇 실시예에 따른 암호화 키 관리 시스템을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 암호화 키 관리 시스템을 구성하는 키 액세스 서버 또는 마스터 키 관리 서버의 예시적인 하드웨어 구성도이다.
도 8은 본 발명의 다른 실시예에 따른 서비스 키 제공 방법의 흐름도이다.
도 9 내지 도 14는 본 발명의 몇몇 실시예에서 참조될 수 있는 서비스 키 및 마스터 키 관리 방법을 설명하기 위한 도면이다.
도 15 내지 도 17은 본 발명의 몇몇 실시예에서 참조될 수 있는 솔트 기반의 서비스 키 전송 방법을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 명세서에서, 클라우드 서비스는 서버, 스토리지, SW 등 다양한 IT 자원을 테넌트(tenant)에게 제공하는 주문형 아웃소싱 서비스를 말한다. 예를 들어, 스토리지를 제공하는 클라우드 서비스는, 테넌트에게 각종 데이터를 네트워크에 연결된 서비스 제공 서버의 스토리지에 저장하고, 필요 시 네트워크를 통해 다운로드할 수 있도록 제공하는 서비스이다. 상기 클라우드 서비스는 테넌트에게 가상화된 인프라 환경을 제공할 수 있는 IaaS(Infrastructure as a Service) 또는 인터넷을 통해 애플리케이션 소프트웨어를 제공하는 SaaS(Software as a Service)가 될 수 있으나, 이에 한정되는 것은 아니다.
본 명세서에서, 서비스 키(service key)는 클라우드 서비스 제공을 위해 실행되는 인스턴스가 데이터를 암복호화하기 위해 사용하는 키를 말한다. 상기 서비스 키는 클라우드 서비스의 테넌트, 클라우드 서비스 등에 따라 서로 상이한 값을 가지도록 설정될 수 있다. 또한, 상기 서비스 키는 클라우드 서비스의 테넌트, 클라우드 서비스 등에 따라 서로 상이한 크기 또는 타입을 가질 수 있으나, 이에 한정되는 것은 아니다.
본 명세서에서, 마스터 키(master key)는 서비스 키를 암복호화하기 위해 사용되는 키이다. 상기 마스터 키는 클라우드 서비스의 테넌트, 클라우드 서비스 또는 클라우드 서비스와 관련된 비즈니스 등에 따라 서로 상이한 값을 가지도록 생성될 수 있으나, 이에 한정되는 것은 아니다.
본 명세서에서, 테넌트(tenant)란 클라우드 서비스를 이용하는 이용자 또는 이용자들의 그룹을 말한다. 예를 들어, 테넌트는 개인 이용자일 수도 있고, 복수의 이용자를 포함하는 기업 이용자일 수도 있다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 2는 본 발명이 적용될 수 있는 예시적인 클라우드 환경을 도시한다.
도 2를 참조하면, 본 발명이 적용될 수 있는 예시적인 클라우드 환경은 암호화 키 관리 시스템(10), 클라우드 서비스 제공 시스템(20) 및 테넌트 단말(300)을 포함하여 구성될 수 있다. 도 2에서는 클라우드 서비스를 이용하는 테넌트가 복수인 것을 예로써 도시하였다.
상기 예시적인 클라우드 환경에서, 본 발명의 일 실시예에 따른 암호화 키 관리 시스템(10)은 클라우드 서비스 제공 시스템(20)에 보관된 데이터의 비밀성을 담보하는 서비스 키와 상기 서비스 키의 비밀성을 담보하는 마스터 키를 관리하는 키 관리 시스템이다.
암호화 키 관리 시스템(10)은 마스터 키를 이용하여 서비스 키를 암호화하여 관리하고, 클라우드 서비스 제공 시스템(20)의 서비스 키 요청에 응답하여, 해당되는 서비스 키를 제공한다. 암호화 키 관리 시스템(10)에 대한 보다 자세한 설명은 도 3 내지 도 6을 참조하여 후술하도록 한다.
상기 예시적인 클라우드 환경에서, 클라우드 서비스 제공 시스템(20)은 네트워크를 통해 테넌트 단말(300)로 각종 클라우드 서비스를 제공하는 시스템이다. 클라우드 서비스 제공 시스템(20)은 가상화 및 분산 처리 기술 기반으로 테넌트 별로 독립된 클라우드 서비스(e.g. 스토리지, SW 등)를 제공할 수 있다.
클라우드 서비스 제공 시스템(20)은 암호화 키 관리 시스템(10)으로부터 서비스 키를 제공받고, 상기 서비스 키를 이용하여 클라우드 데이터에 대한 암복호화를 수행함으로써 데이터의 비밀성을 제공할 수 있다. 본 발명의 논지를 흐리지 않기 위해, 클라우드 서비스 제공 시스템(20)에 대한 자세한 설명은 생략하도록 한다.
상기 예시적인 클라우드 환경에서, 테넌트 단말(300)은 클라우드 서비스 제공 시스템(20)이 제공하는 각종 클라우드 서비스를 이용하는 컴퓨팅 장치이다. 여기에서 상기 컴퓨팅 장치는 노트북, 데스크톱(desktop), 랩탑(laptop), 스마트폰(Smart Phone) 등이 될 수 있으나, 이에 국한되는 것은 아니며 연산 수단 및 통신 수단이 구비된 모든 종류의 장치를 포함할 수 있다.
테넌트 단말(300)은 네트워크를 통해 언제 어디서든지 클라우드 서비스를 이용할 수 있다. 예를 들어, 테넌트 단말(300)은 네트워크를 통해 클라우드 서비스 제공 시스템(20)이 제공하는 스토리지에 파일을 업로드하거나 다운로드할 수 있다. 이때, 상기 스토리지에 업로드 된 파일은 서비스 키에 의해 암호화되어 보관될 수 있다.
상기 예시적인 클라우드 환경에서, 암호화 키 관리 시스템(10), 클라우드 서비스 제공 시스템(20) 및 테넌트 단말(300)은 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 2를 참조하여 본 발명이 적용될 수 있는 예시적인 클라우드 환경에 대하여 간략하게 설명하였다. 본 발명의 몇몇 실시예에 따른 암호화 키 관리 시스템(10)에 대하여 도 3 내지 도 6을 참조하여 설명한다.
도 3은 본 발명의 제1 실시예에 따른 암호화 키 관리 시스템(10)를 나타내는 블록도이다.
도 3을 참조하면, 암호화 키 관리 시스템(10)은 키 액세스 서버(120), 마스터 키 관리 서버(140), 서비스 키 관리 DB(160) 및 마스터 키 관리 DB(170)를 포함할 수 있다. 다만, 도 3에는 본 발명의 실시예와 관련 있는 구성 요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 3에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 3에 도시된 암호화 키 관리 시스템(10)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 암호화 키 관리 시스템(10)의 각 구성 요소에 대하여 설명한다.
키 액세스 서버(120)는 클라우드 데이터의 비밀성을 보장하기 위해 이용되는 서비스 키를 관리하고, 서비스 제공 서버(200)의 서비스 키 요청에 응답하여 해당되는 서비스 키를 제공한다. 상기 서비스 키를 제공하는 방법에 대한 자세한 설명은 도 8을 참조하여 후술하도록 한다.
상기 제1 실시예에서, 키 액세스 서버(120)와 서비스 제공 서버(200) 사이의 서비스 키 전송 구간에서 스니핑(sniffing) 등의 보안 위협을 방지하기 위해 서비스 키의 유효 기간에 기초한 솔트가 이용될 수 있다. 상기 솔트를 이용한 서비스 키 전송 방법에 대해서는 도 15 내지 도 17을 참조하여 후술하도록 한다.
상기 제1 실시예에서, 키 액세스 서버(120)는 대응되는 마스터 키를 이용하여 서비스 키를 암호화하여 관리할 수 있다. 보다 자세하게는, 키 액세스 서버(120)는 대응되는 마스터 키를 이용하여 서비스 키를 암호화하고, 암호화된 서비스 키를 대응되는 마스터 키의 식별자와 매칭시켜 서비스 키 DB(160)에 보관할 수 있다. 여기서, 서비스 키가 암호화 처리되면, 마스터 키는 키 액세스 서버(120)에서 제거될 수 있다.
상기 제1 실시예에서, 키 액세스 서버(120)는 마스터 키의 식별자를 이용하여 마스터 키 관리 서버(140)로 마스터 키를 요청하고, 상기 식별자에 대응되는 마스터 키를 제공받을 수 있다. 상기 마스터 키는 전술한 바와 같이 서비스 키를 암복호화 하기 위해 이용된다.
마스터 키 관리 서버(140)는 서비스 키의 비밀성을 담보하기 위해 이용되는 마스터 키를 관리하고, 키 액세스 서버(120)의 마스터 키 요청에 응답하여 해당되는 마스터 키를 키 액세스 서버(120)에 제공한다.
상기 제1 실시예에서, 마스터 키 관리 서버(140)는 마스터 키로부터 복수의 키 조각을 추출하고, 상기 복수의 키 조각을 마스터 키 DB(170)에 분산하여 저장할 수 있다. 키 조각이 추출되면, 마스터 키는 제거될 수 있다.
상기 제1 실시예에서, 마스터 키 관리 서버(140)는 키 액세스 서버(120)의 마스터 키 요청에 응답하여, 복수의 키 조각으로부터 마스터 키를 복원하고, 복원된 마스터 키를 키 액세스 서버(120)에 제공할 수 있다. 여기서, 상기 마스터 키로부터 복수의 키 조각을 추출하거나 복원하기 위해서 당해 기술 분야에서 널리 알려진 적어도 하나의 알고리즘이 이용될 수 있다. 예를 들어, 라그레인지 보간법(Lagrange interpolation) 또는 임계치를 갖는 비밀 분산 방식(e.g. Threshold Secret Sharing) 등을 이용하여, 복수의 키 조각으로부터 마스터 키가 복원될 수 있으나, 이에 한정되는 것은 아니다.
본 실시예에서, 복수의 키 조각은 분산 저장될 뿐만 아니라, 복수의 키 조각이 추출되면 마스터 키는 제거되어 시스템(10) 내의 어떠한 장치에도 보관되지 않는다. 따라서, 본 실시예에 따르면, 마스터 키의 비밀성이 담보될 수 있다.
서비스 키 관리 DB(160)는 마스터 키에 의해 암호화된 서비스 키를 저장하는 데이터베이스이다. 보다 구체적으로, 서비스 키 관리 DB(160)는 키 액세스 서버(100)로부터 수신된 암호화된 서비스 키 및/또는 대응되는 마스터 키의 식별자를 저장할 수 있다. 실시예에 따라, 서비스 키 관리 DB(160)에는 서비스 키의 식별자, 클라우드 서비스를 이용하는 테넌트의 식별자, 서비스 키 사용 이력 등이 더 저장될 수 있으나, 이에 한정되는 것은 아니다. 나아가, 서비스 키 관리 DB(160)는 고정된 스키마(schema)가 존재하지 않는 NoSQL DB로 구현될 수 있으나, 이에 한정되는 것은 아니다.
몇몇 실시예에서, 서비스 키를 유일하게 식별하는 제1 식별자 외에 상기 서비스 키의 카테고리를 나타내는 제2 식별자가 더 부여될 수 있다. 이에 대한 자세한 설명은 도 9 내지 도 14를 참조하여 후술하도록 한다.
도 3에서, 서비스 키 관리 DB(160)는 키 액세스 서버(120)와 독립된 구성 요소인 것으로 도시되어 있으나, 이에 한정되지 않고, 키 액세스 서버(120)를 구성하는 하나의 구성 요소가 될 수 있음은 통상의 기술자에게 자명할 것이다.
마스터 키 관리 DB(170)는 마스터 키로부터 추출된 복수의 키 조각을 분산 저장하는 데이터베이스이다. 보다 구체적으로, 마스터 키 관리 DB(170)는 마스터 키 관리 서버(140)로부터 수신된 복수의 키 조각을 복수의 DB에 분산하여 저장할 수 있다. 실시예에 따라, 마스터 키 관리 DB(170)에는 마스터 키의 식별자, 클라우드 서비스의 테넌트의 식별자, 서비스 키의 식별자, 마스터 키의 생성 일시, 마스터 키의 해시 값 등이 더 저장될 수 있으나, 이에 한정되는 것은 아니다. 나아가, 마스터 키 관리 DB(170)는 테이블 간의 일정한 관계가 존재하는 관계형 DB(Relational DB)로 구현될 수 있으나, 이에 한정되는 것은 아니다.
도 3에서, 마스터 키 관리 DB(170)는 마스터 키 관리 서버(140)와 독립된 구성 요소인 것으로 도시되어 있으나, 이에 한정되지 않고, 마스터 키 관리 서버(140)를 구성하는 하나의 구성 요소가 될 수 있음은 통상의 기술자에게 자명할 것이다.
이해의 편의를 제공하기 위해, 클라우드 서비스 제공 시스템(20)에 대해서도 간략하게 설명하도록 한다.
클라우드 서비스 제공 시스템(20)은 적어도 하나의 서비스 제공 서버(200)를 포함하여 구성될 수 있다. 도 3의 경우, 복수의 서비스 제공 서버(200)가 존재하는 경우를 예로써 도시하였다.
서비스 제공 서버(200)는 클라우드 서비스를 제공하는 서버이다. 보다 구체적으로, 서비스 제공 서버(200)는 하이퍼바이저(Hypervisor)를 통하여, 가상화(virtualization)된 적어도 하나의 가상 머신(virtual machine)을 생성할 수 있다. 그리고, 서비스 제공 서버(200)는 상기 가상 머신을 통하여, 클라우드 서비스를 위한 애플리케이션 또는 애플리케이션의 인스턴스를 실행시킬 수 있다.
상기 제1 실시예에서, 서비스 제공 서버(200)의 인스턴스는 서비스 키를 이용하여 클라우드 서비스의 데이터를 암호화할 수 있다. 서비스 제공 서버(200)는 서비스 키를 장치 내에 보관하지 않고, 키 액세스 서버(100)에 전송하여 보호를 요청할 수 있다. 테넌트 단말(300)의 요청에 응답하여, 클라우드 데이터를 제공하는 경우, 서비스 제공 서버(200)는 키 액세스 서버(120)로부터 서비스 키를 수신하고, 상기 서비스 키를 이용하여 클라우드 데이터를 복호화하여 제공할 수 있다.
서비스 제공 서버(200)는 SSL(Secure Sockets Layer) 및/또는 TLS(Transport Layer Security Protocol, Protocol) 등의 보안 프로토콜을 이용하여, 키 액세스 서버(100)와 데이터를 송수신할 수 있다.
지금까지, 본 발명의 제1 실시예에 따른 암호화 키 관리 시스템(10)에 대하여 설명하였다. 상기 제1 실시예에 따르면, 서비스 키와 마스터 키가 별도의 DB에 보관되고, 서비스 키에 관한 처리와 마스터 키에 관한 처리 또한 별도의 컴퓨팅 장치에서 수행될 수 있다. 즉, 서비스 키와 마스터 키에 대한 관리가 원천적으로 분리되어 수행될 수 있다. 이에 따라, 암호화 키 관리 시스템(10)에 의해 제공되는 클라우드 서비스의 보안성은 더욱 향상될 수 있다.
다음으로, 도 4를 참조하여, 본 발명의 제2 실시예에 따른 암호화 키 관리 시스템(10)에 대하여 설명하도록 한다.
도 4를 참조하면, 본 발명의 제2 실시예에 따른 암호화 키 관리 시스템(10)은 복수의 키 액세스 서버(120)를 포함할 수 있다. 또한, 복수의 키 액세스 서버(120)는 각각 병렬적으로 서비스 제공 서버(200)의 서비스 키 요청을 처리하는 스케일 아웃(scale out) 구조로 구성될 수 있다.
복수의 키 액세스 서버(120)가 스케일 아웃 구조로 구성됨에 따라, 암호화 키 관리 시스템(10)은 복수의 키 액세스 서버(120)로 서비스 키 요청을 분배하는 프록시(110, proxy) 또는 로드 발란서(load balancer)를 더 포함하도록 구성될 수 있다. 실시예에 따라, 프록시(110)는 각 키 액세스 서버(120)의 상태를 고려하여, 수신된 서비스 키 요청을 분배할 수 있다. 여기서, 상기 상태는 예를 들어 키 액세스 서버(120)의 고장 여부, 부하량, 처리 성능 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
상기 제2 실시예에 따르면, 복수의 키 액세스 서버(120)가 스케일 아웃 구조로 구성되는 바, 암호화 키 관리 시스템(10)의 처리 성능이 향상될 뿐만 아니라, 키 액세스 서버(120)의 SPOF(single point of failure) 문제가 해결될 수 있다. 이에 따라, 암호화 키 관리 시스템(10)의 가용성 및 신뢰성이 향상될 수 있다.
다음으로, 도 5를 참조하여, 본 발명의 제3 실시예에 따른 암호화 키 관리 시스템(10)에 대하여 설명한다.
도 5를 참조하면, 상기 제3 실시예에서, 암호화 키 관리 시스템(10)은 복수의 마스터 키 관리 서버(140)를 포함할 수 있다. 또한, 복수의 마스터 키 관리 서버(140)는 각각 병렬적으로 키 액세스 서버(120)의 마스터 키 요청을 처리하는 스케일 아웃(scale out) 구조로 구성될 수 있다.
복수의 마스터 키 관리 서버(140)가 스케일 아웃 구조로 구성됨에 따라, 암호화 키 관리 시스템(10)은 복수의 마스터 키 관리 서버(140)로 마스터 키 요청을 분배하는 프록시(130) 또는 로드 발란서를 더 포함하도록 구성될 수 있다. 실시예에 따라, 프록시(130)는 각 마스터 키 관리 서버(140)의 상태를 고려하여, 수신된 마스터 키 요청을 분배할 수 있다. 여기서, 상기 상태는 예를 들어 마스터 키 관리 서버(140)의 고장 여부, 부하량, 처리 성능 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
상기 제3 실시예에 따르면, 복수의 마스터 키 관리 서버(140) 또한 스케일 아웃 구조로 구성되는 바, 암호화 키 관리 시스템(10)의 처리 성능이 더욱 향상될 수 있다. 예를 들어, 키 액세스 서버(120)만이 스케일 아웃 구조로 구성되는 경우, 마스터 키 관리 서버(140)에서 병목 현상이 발생될 수 있다. 그러나, 상기 제3 실시예에 따르면, 상기 병목 현상이 해소될 수 있는 바, 암호화 키 관리 시스템(10)의 전반적인 처리 성능이 향상될 수 있는 것이다. 뿐만 아니라, 마스터 키 관리 서버(140)의 SPOF 문제가 해결되는 바, 암호화 키 관리 시스템(10)의 가용성 및 신뢰성은 더욱 향상될 수 있다.
다음으로, 도 6을 참조하여, 본 발명의 제4 실시예에 따른 암호화 키 관리 시스템(10)에 대하여 설명하도록 한다.
도 6을 참조하면, 상기 제4 실시예에서, 암호화 키 관리 시스템(10)은 캐시 서버(150)를 더 포함하도록 구성될 수 있다. 실시예에 따라, 캐시 서버(150)는 스케일 아웃 구조로 구성된 분산 캐시로 구현될 수 있으나, 이에 한정되는 것은 아니다.
캐시 서버(150)는 기 설정된 캐싱 정책에 따라 마스터 키에 대한 캐싱(caching)을 수행할 수 있다. 상기 캐싱 정책은 예를 들어 LRU(Least Recently Used) 등이 이용될 수 있으나, 이에 한정되는 것은 아니다.
상기 마스터 키를 캐싱하는 이유는 마스터 키 복원 과정에 상대적으로 많은 컴퓨팅 비용 및 시간 비용이 소요되기 때문이다. 예를 들어, 마스터 키를 복원하기 위해서는 마스터 키 관리 DB(170)에 포함된 복수의 DB에서 분산 저장된 복수의 키 조각을 획득해야 하기 때문에, 다수의 DB 액세스가 발생되고, 상기 복수의 키 조각으로부터 마스터 키를 복원하기 위해 적지 않은 컴퓨팅 비용이 소요될 수 있다.
상기 제4 실시예에서, 캐시 서버(150)는 마스터 키를 암호화할 수 있다. 또한, 캐시 서버(150)는 상기 마스터 키의 식별자에 매칭하여 암호화된 마스터 키를 저장할 수 있다.
상기 제4 실시예에 따르면, 빈번하게 이용되는 마스터 키를 캐싱하고, 키 액세스 서버(120)로부터 마스터 키 요청이 수신되면, 곧바로 캐싱된 마스터 키가 제공될 수 있기 때문에(e.g. 캐시 히트), 암호화 키 관리 시스템(10)의 평균적인 처리 속도가 향상될 수 있다.
지금까지, 도 3 내지 도 6을 참조하여, 본 발명의 몇몇 실시예에 따른 암호화 키 관리 시스템(10)에 대하여 설명하였다. 도 3 내지 도 6의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
이하에서는, 도 7을 참조하여, 키 액세스 서버(120) 또는 마스터 키 관리 서버(140)의 예시적인 하드웨어 구성도에 대하여 설명한다.
키 액세스 서버(120) 또는 마스터 키 관리 서버(140)는 연산 수단 및 통신 수단이 구비된 임의의 컴퓨팅 장치로 구현될 수 있다. 단, 키 액세스 서버(120) 또는 마스터 키 관리 서버(140)는 고성능의 서버 컴퓨팅 장치로 구현되는 것이 바람직할 수 있다. 상기 컴퓨팅 장치의 예시적인 하드웨어 구성은 도 7에 도시된 바와 같다.
도 7을 참조하면, 상기 컴퓨팅 장치는 하나 이상의 프로세서(101), 버스(105), 네트워크 인터페이스(107), 프로세서(101)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(103)와, 암호화 키 관리 소프트웨어(109a)를 저장하는 스토리지(109)를 포함할 수 있다. 다만, 도 7에는 본 발명의 실시예와 관련 있는 구성 요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 7에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(101)는 상기 컴퓨팅 장치의 각 구성의 전반적인 동작을 제어한다. 프로세서(101)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(101)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 상기 컴퓨팅 장치는 하나 이상의 프로세서를 구비할 수 있다.
메모리(103)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(103)는 본 발명의 실시예들에 따른 암호화 키 관리 방법을 실행하기 위하여 스토리지(109)로부터 하나 이상의 프로그램(109a)을 로드할 수 있다. 도 7에서 메모리(103)의 예시로 RAM이 도시되었다.
버스(105)는 상기 컴퓨팅 장치의 구성 요소 간 통신 기능을 제공한다. 버스(105)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(107)는 상기 컴퓨팅 장치의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(107)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(107)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(109)는 상기 하나 이상의 프로그램(109a)을 비임시적으로 저장할 수 있다. 도 7에서 상기 하나 이상의 프로그램(109a)의 예시로 키 관리 소프트웨어(109a)가 도시되었다.
스토리지(109)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
암호화 키 관리 소프트웨어(109a)는 메모리(103)에 로드되어 하나 이상의 프로세서(101)에 본 발명의 실시예에 따라 서비스 키 및/또는 마스터 키 제공 방법, 서비스 키 및/또는 마스터 키 관리 방법, 서비스 키 전송 방법 등을 실행할 수 있다. 이에 대한 설명은 도 8 내지 도 17을 참조하여 후술하도록 한다.
지금까지, 도 7을 참조하여, 키 액세스 서버(120) 또는 마스터 키 관리 서버(140)를 구현하기 위한 컴퓨팅 장치의 예시적인 하드웨어 구성도에 대하여 설명하였다.
이하에서는, 이해의 편의를 제공하기 위해, 도 8을 참조하여 암호화 키 관리 시스템(10)이 서비스 키를 제공하는 방법에 대하여 설명하도록 한다.
도 8은 본 발명의 실시예에 따른 서비스 키 제공 방법의 예시적인 흐름도이다. 다만, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 동작이 추가되거나 삭제될 수 있음은 물론이다.
이하에서, 설명의 편의를 위해, 서비스 키 제공 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 서비스 키 제공 방법의 각 단계는 각 수행 주체에 포함된 프로세서에 의해 실행되는 컴퓨터 프로그램의 오퍼레이션일 수 있다.
도 8을 참조하면, 키 액세스 서버(120)는 서비스 제공 서버(200)로부터 서비스 키 요청을 수신한다(S10). 실시예에 따라, 상기 서비스 키 요청은 프록시(110)로부터 포워딩(forwarding)된 것일 수도 있다.
상기 서비스 키 요청에 응답하여, 키 액세스 서버(120)는 서비스 키 관리 DB(160)에서 서비스 키를 조회한다(S20). 예를 들어, 키 액세스 서버(120)는 상기 서비스 키 요청에 포함된 테넌트의 식별자, 서비스 제공 서버(200)의 식별자, 서비스 키의 식별자 등을 이용하여 서비스 키를 조회할 수 있으나, 이에 한정되는 것은 아니다. 키 액세스 서버(120)는 조회 결과로 암호화된 서비스 키 및 상기 암호화된 서비스에 대응되는 마스터 키의 식별자를 획득할 수 있다.
상기 암호화된 서비스 키를 복호화하기 위해, 키 액세스 서버(120)는 캐시 서버(150)로 캐싱된 마스터 키의 조회를 요청하고, 조회 결과를 수신한다(S40, 50).
캐시 히트(hit)의 경우, 키 액세스 서버(120)는 캐싱된 마스터 키를 이용하여 암호화된 서비스 키를 복호화하고, 복호화된 서비스 키를 서비스 제공 서버(200)로 전달한다(S60, S100, S110). 이때, 상기 복호화된 서비스 키를 안전하게 전달하기 위해 솔트 기반의 암호화가 수행될 수 있으며, 이에 대한 설명은 도 15 내지 도 17을 참조하여 후술하도록 한다.
캐시 미스(miss)의 경우, 키 액세스 서버(120)는 마스터 키 관리 서버(140)로 마스터 키 요청을 송신한다(S70). 실시예에 따라, 상기 마스터 키 요청은 프록시(130)로 먼저 전달되고, 프록시(130)에서 가용한 마스터 키 관리 서버(140)로 포워딩될 수 있다.
상기 마스터 키 요청에 응답하여, 마스터 키 관리 서버(140)는 마스터 키 관리 DB(170)에서 복수의 키 조각을 획득하고, 상기 획득된 복수의 키 조각을 이용하여 마스터 키를 복원할 수 있다. 여기서, 상기 복수의 키 조각을 조회하기 위해 예를 들어 마스터 키의 식별자가 이용될 수 있다. 마스터 키가 복원되면, 마스터 키 관리 서버(140)는 복원된 마스터 키를 키 액세스 서버(120)로 전달한다(S90).
이때, 실시예에 따라, 상기 복원된 마스터 키는 캐시 서버(150)에 암호화되어 캐싱될 수 있다.
복원된 마스터 키가 수신되면, 키 액세스 서버(120)는 상기 마스터 키를 이용하여 서비스 키를 복호화하고, 복호화된 서비스 키를 서비스 제공 서버(200)로 전달한다(S100, 110).
지금까지, 도 8을 참조하여, 암호화 키 관리 시스템(10)에서 수행되는 서비스 키 제공 방법에 대하여 설명하였다. 이하에서는, 도 9 내지 14를 참조하여, 본 발명의 몇몇 실시예에서 참조될 수 있는 서비스 키 및/또는 암호화 키 관리 방법에 대하여 설명하도록 한다.
클라우드 데이터의 암복호화에 이용되는 다수의 서비스 키를 서비스 키 관리 DB(160)에 보관하는 경우, 각각의 서비스 키를 식별하는 용도로 제1 식별자가 부여될 수 있다. 상기 제1 식별자는 각 서비스 키 별로 중복되지 않게 부여되는 것으로, 예를 들어 서비스 키 관리 DB(160)에서 해당 서비스 키를 조회하기 위해 이용될 수 있다. 상기 제1 식별자는 서비스 키 관리 DB(160)에 의해 자동으로 부여될 수 있으나, 이에 한정되는 것은 아니다.
본 발명의 실시예에 따르면, 각 서비스 키 별로 상기 제1 식별자 외에 각 서비스 키의 카테고리를 나타내는 제2 식별자가 더 부여될 수 있다. 여기서, 상기 카테고리는 예를 들어 서비스 키에 관련된 대상 클라우드 서비스, 테넌트 등과 대응되도록 설정될 수 있으나, 이에 한정되는 것은 아니다. 상기 제2 식별자는 키 액세스 서버(120)에 의해 부여될 수 있으나, 이에 한정되는 것은 아니다.
참고로, 상기 제1 식별자는 서비스 키 별로 중복이 허용되지 않으나, 상기 제2 식별자는 서비스 키 별로 중복이 허용될 수 있다. 즉, 동일한 카테고리에 속하는 적어도 하나의 서비스 키에 동일한 제2 식별자가 부여될 수 있다.
본 발명의 실시예에 따르면, 상기 서비스 키의 카테고리는 복수의 계층으로 구성될 수 있다. 이에 따라, 상기 제2 식별자는 계층적으로 구조화된 형식으로 표현될 수 있다. 예를 들어, 상기 제2 식별자는 URI(uniform resource indicator)와 같은 형식으로 표현될 수 있다. 보다 자세한 예를 들어, 도 9에 도시된 바와 같이, 카테고리가 복수의 계층으로 구성되고, 해당 서비스 키의 카테고리가 'C3'인 경우, 해당 서비스 키에 부여되는 제2 식별자는 '/A1/B2/C3'이 될 수 있다. 이하에서는, 서비스 키의 제2 식별자는 URI 형식으로 표현된다고 가정하여 설명하도록 한다. 단, 상기 제2 식별자의 표현 형식은 얼마든지 변경되더라도 무방하다.
도 10은 서비스 키에 대한 계층적 카테고리의 일 예를 도시한다.
도 10을 참조하면, 각 서비스 키의 카테고리는 비즈니스(401), 사이트(402) 및 클라우드 서비스(403)를 이용하여 설정될 수 있다. 여기서, 비즈니스는 최상위 도메인을 가리키는 포괄적인 의미일 수 있고, 사이트는 상기 비즈니스를 제공하는 사이트이며, 상기 서비스는 상기 사이트에서 제공하는 다양한 종류의 클라우드 서비스일 수 있다.
도 10에 도시된 바와 같이, 계층 순서대로 제1 계층이 비즈니스, 제2 계층이 사이트, 제3 계층이 클라우드 서비스에 각각 대응되는 경우, 서비스 키의 제2 식별자는 도 10의 오른편에 도시된 바와 같이 부여될 수 있다. 여기서, 상기 제1 계층, 상기 제2 계층 및 상기 제3 계층 각각은 다시 복수의 하위 계층으로 구성될 수도 있다. 예를 들어, 도 10에 도시된 바와 같이 사이트는 다시 복수의 하위 사이트로 구성될 수도 있다. 서비스 키에 부여되는 제2 식별자의 실례는 도 11을 참조하도록 한다.
또 다른 예로는, 제1 계층이 테넌트, 제2 계층이 테넌트 내의 도메인, 제3 계층이 도메인 내의 서비스에 각각 대응되도록 복수의 카테고리 계층이 구성될 수도 있다. 그러나, 이에 한정되는 것은 아니다.
한편, 본 발명의 실시예에 따르면, 서비스 키의 제2 식별자는 서비스 키 관리 DB(160)에서 해당 서비스 키가 보관 위치를 가리키는 인덱스로 이용될 수도 있다. 이를 위해, 서비스 키의 각 카테고리에 대응되도록 서비스 키 관리 DB(160)의 스키마(schema)가 구축될 수 있다. 이에 대하여, 도 12를 참조하여 설명하도록 한다.
서비스 키의 카테고리 계층이 도 9에 도시된 바와 같고, 서비스 키 관리 DB(160)가 NoSQL DB로 구현되었다고 가정하였을 때, 서비스 키 관리 DB(160)의 각 데이터 노드는 각각의 카테고리에 대응되도록 구성될 수 있다. 예를 들어, 데이터 노드(411)는 카테고리(B1) 대응되고, 데이터 노드(413)는 카테고리(C1)에 대응될 수 있다. 이때, 각각의 데이터 노드에 대응되는 카테고리에 속한 서비스 키가 저장될 수 있다.
위와 같은 방식으로 서비스 키 관리 DB(160)가 구축되면, 서비스 키의 제2 식별자(420)를 이용하여 해당 서비스 키가 저장된 데이터 노드에 빠른 접근이 가능하다. 예를 들어, 제1 서비스 키의 제2 식별자가 "/A1/B1"인 경우, 상기 제1 서비스 키의 보관 위치는 데이터 노드(411)인 것을 알 수 있는 바, 다른 데이터 노드를 참조할 필요 없이 곧바로 데이터 노드(411)에 접근하여 상기 제1 서비스 키가 획득될 수 있다. 또 다른 예를 들어, 제2 서비스 키의 제2 식별자가 "/A1/B2/C1"인 경우, 상기 제2 서비스 키의 보관 위치는 데이터 노드(413)인 것을 알 수 있는 바, 다른 데이터 노드를 참조할 필요 없이 곧바로 데이터 노드(413)에 접근하여 상기 제2 서비스 키가 획득될 수 있다
이와 같이, 서비스 키의 카테고리에 따라 서비스 키 관리 DB(160)의 스키마가 구성되는 경우, 해당 서비스 키의 제2 식별자를 이용하여 해당 서비스가 보관된 데이터 노드에 곧바로 접근될 수 있기 때문에, DB 접근 횟수가 최소화 될 수 있다. 이에 따라, 암호화 키 관리 시스템(10)의 성능이 향상될 수 있다.
한편, 본 발명의 실시예에 따르면, 서비스 키의 카테고리를 이용하여 다양한 방식으로 마스터 키가 설정될 수 있다. 또는, 이에 대하여, 도 13 및 도 14를 참조하여 설명한다.
도 13을 참조하면, 서비스 키의 카테고리가 비즈니스, 사이트, 서비스 계층으로 구분된다고 가정하면, 비즈니스 별, 사이트 별 또는 서비스 별로 마스터 키가 설정될 수 있다. 예를 들어, 사이트 별로 마스터 키가 설정되는 경우, 카테고리가 사이트(B1)에 해당하는 서비스 키는 마스터 키(431)로 암호화될 수 있고, 카테고리가 사이트(B2)에 해당하는 서비스 키는 마스터 키(433)로 암호화될 수 있다.
즉, 마스터 키의 설정 기준이 되는 기준 계층이 정해지면, 상기 기준 계층에 위치한 카테고리 별로 마스터 키가 설정될 수 있다. 여기서, 상기 기준 계층은 상위 계층이 될 수 있고, 하위 계층이 될 수도 있다. 상위 계층이 기준 계층으로 설정되는 경우, 다수의 서비스 키가 동일한 마스터 키에 대응되므로 마스터 키의 개수가 감소될 수 있다. 이와 같은 경우, 마스터 키 관리의 편의성이 증대될 수 있다. 반대로, 하위 계층이 기준 계층으로 설정되는 경우에는, 하나의 마스터 키에 대응되는 서비스 키의 개수가 감소하게 된다. 이와 같은 경우, 마스터 키 관리의 편의성은 감소될 수 있으나, 서비스 키가 보다 안전하게 관리될 수 있다.
도 14는 기준 계층이 사이트로 설정된 경우 서비스 키와 마스터 키의 대응 관계에 대한 예시를 도시한다. 도 14를 참조하면, 카테고리가 사이트(Seoul/SouthPark)에 해당하는 서비스 키(1, 3)는 마스터 키 A에 대응되고, 사이트(Seoul/GumiPark)에 해당하는 서비스 키(2)는 마스터 키 B에 대응되는 것을 볼 수 있다.
동일한 방식으로, 서비스 키의 복수의 카테고리 계층 중 적어도 하나의 계층에 클라우드 서비스의 테넌트가 포함되고, 기준 계층이 테넌트의 분류를 가리키는 계층으로 설정된다면, 마스터 키는 테넌트 별로 설정될 수 있다. 이와 같은 경우, 제1 테넌트에 이용되는 서비스 키는 제1 마스터 키에 의해 암호화되어 관리될 수 있고, 제2 테넌트에 이용되는 서비스 키는 제2 마스터 키에 의해 암호화되어 관리될 수 있다.
또한, 서비스 키의 복수의 카테고리 계층 중 적어도 하나의 계층에 클라우드 서비스가 포함되고, 기준 계층이 클라우드 서비스의 분류를 가리키는 계층으로 설정된다면, 마스터 키는 클라우드 서비스 별로 설정될 수 있다. 이와 같은 경우, 제1 클라우드 서비스에 이용되는 서비스 키는 제1 마스터 키에 의해 암호화되어 관리될 수 있고, 제2 클라우드 서비스에 이용되는 서비스 키는 제2 마스터 키에 의해 암호화되어 관리될 수 있다.
정리하면, 마스터 키를 서비스 키를 구분하는 복수의 카테고리 계층 중 어느 하나의 카테고리 계층에 대응되도록 설정함으로써, 테넌트 별, 서비스 별 등으로 다양하게 마스터 키가 설정될 수 있다. 지금까지, 도 9 내지 도 14를 참조하여, 서비스 키 및 마스터 키 관리 방법에 대하여 설명하였다. 이하에서는, 도 15 내지 도 17을 참조하여, 본 발명의 몇몇 실시예에서 참조될 수 있는 솔트 기반의 서비스 키 전송 방법에 대하여 설명하도록 한다.
도 15를 참조하면, 클라우드 서비스 제공 시스템(20)과 키 관리 시스템(10) 사이의 네트워크 구간은 스니핑(sniffing)과 같은 보안 위협이 발생할 수 있는 위험 구간일 수 있다. 암호화 키 관리 시스템(10)의 내부는 관리자에 의해 다양한 보안 대책(e.g. 방화벽 설치, 사설 망 구축 등)이 마련될 수 있으나, 클라우드 서비스 제공 시스템(20)과 키 관리 시스템(10) 사이의 네트워크 구간은 그렇지 않기 때문이다. 따라서, 클라우드 서비스의 보안 이슈가 해결되기 위해서는 해당 구간의 네트워크 보안이 필수적으로 고려되어야 한다.
본 발명의 실시예에 따르면, 상기 보안 위협을 방지하기 위해, 서비스 키의 유효 기간을 기초로 한 솔트(salt)가 이용될 수 있다. 본 실시예에 대하여, 도 16 및 도 17을 참조하여 자세하게 설명하도록 한다.
도 16을 참조하면, 키 액세스 서버(120)는 서비스 키의 유효 기간을 기초로 솔트(443)를 생성하고, 솔트(443)를 이용하여 암호화 키를 도출하며, 상기 암호화 키를 이용하여 서비스 키를 암호화할 수 있다.
보다 구체적으로, 키 액세스 서버(120)는 서비스 키의 제1 식별자(441) 및 솔트(443)를 이용하여 암호화 키를 도출할 수 있다. 여기서, 상기 암호화 키는 예를 들어 PBKDF(password based key derivation function, 451) 등의 키 암호화 키 도출 알고리즘을 이용하여 도출될 수 있으나, 이에 한정되는 것은 아니다. 또한, 솔트(443)의 값은 예를 들어 현재 시각(current time)을 가리키는 제1 수치와 서비스 키의 유효 기간(duration)을 가리키는 제2 수치를 합한 값으로 설정될 수 있으나, 이에 국한되는 것은 아니다.
암호화 키가 도출되면, 키 액세스 서버(120)는 상기 암호화 키를 이용하여 서비스 키(445)를 암호화할 수 있다. 도 16에서, AES(advanced encryption standard. 453)를 이용하여 상기 서비스 키가 암호화 된 것을 예로 도시하였다. 그러나, 이에 한정되는 것은 아니고, 어떠한 암호화 알고리즘이 이용되더라도 무방하다.
또한, 키 액세스 서버(120)는 데이터의 무결성(integrity)를 보장하기 위해 MAC(message authentication code, 449)를 함께 서비스 제공 서버(200)로 전달할 수 있다. 도 16에서, SHA-256(455)를 이용하여 MAC(449)이 생성된 것을 예로 도시하였다. 그러나, 이에 한정되는 것은 아니고, MAC은 어떠한 방식으로 생성되더라도 무방하다.
보다 구체적으로, 키 액세스 서버(120)는 도출된 암호화 키 및 솔트(443)를 해싱함으로써, 제1 MAC을 생성하고, 암호화된 서비스 키(key ciphertext)를 해싱함으로써 제2 MAC을 생성한 뒤, 상기 제1 MAC 및 상기 제2 MAC를 서비스 제공 서버(200)로 전달할 수 있다. 이외에도, 키 액세스 서버(120)는 서비스 키의 식별자(441), 구분자(delimiter), 솔트(443)의 값 설정 시각(start time) 등을 함께 서비스 제공 서버(200)로 전달할 수 있으나, 이에 한정되는 것은 아니다.
다음으로, 도 17을 참조하여, 서비스 제공 서버(200)가 수신된 서비스 키를 복호화하는 과정에 대하여 설명하도록 한다.
서비스 제공 서버(200)는 암호화된 서비스 키(475)와 함께 제공받은 서비스 키의 식별자(471) 및 솔트(473)를 이용하여 암호화 키를 도출할 수 있다. 단, 이에 앞서, 서비스 제공 서버(200)는 솔트(473)와 현재 시각을 비교하고, 상기 비교 결과에 기초하여 수신된 서비스 키(475)의 유효 여부를 판정한다. 보다 구체적으로, 서비스 제공 서버(200)는 현재 시각을 가리키는 제1 수치가 솔트(473)의 값을 가리키는 제2 수치보다 작은 경우, 서비스 키(475)가 유효하지 않은 것으로 판정하고 더 이상의 과정을 진행하지 않을 수 있다.
반대의 경우, 서비스 제공 서버(200)는 수신된 서비스 키(475)가 유효한 것으로 판정하고, 암호화 키 도출 알고리즘(481)을 수행하여 암호화 키를 도출하며, 상기 암호화 키를 이용하여, 암호화된 서비스 키(475)를 복호화할 수 있다.
서비스 제공 서버(200)는 상기 복호화 수행 전에 수신된 MAC(477)을 기초로 암호화된 서비스 키(475)의 무결성을 체크할 수 있다. 또한, 솔트(473)와 현재 시각을 비교하기 전에, 솔트(473)에 대한 무결성도 체크될 수 있다. 예를 들어, 제1 MAC을 이용하여 솔트(473)의 무결성이 체크되고, 제2 MAC을 이용하여 암호화된 서비스 키(475)의 무결성이 체크될 수 있다.
마지막으로, 서비스 제공 서버(200)는 상기 도출된 암호화 키를 이용하여 서비스 키(475)를 복호화 하고, 복호화된 서비스 키(key plaintext, 479)를 이용하여 클라우드 서비스의 데이터를 복호화할 수 있다.
지금까지 도 15 내지 도 17을 참조하여, 솔트 기반의 서비스 키 전달 방법에 대하여 설명하였다. 상술한 실시예에 따르면, 서비스 키가 암호화되어 전달될 뿐만 아니라, 상기 서비스 키가 스니핑 등에 의해 유출된 경우라도 서비스 키에 부여된 유효 기간에 따라 일정 수준 이상의 보안성이 제공될 수 있다.
한편, 본 발명의 실시예에 따르면, 테넌트 별로 차등적인 보안 서비스가 제공될 수 있다. 예를 들어, 테넌트가 지불하는 서비스 요금에 따라 동일한 클라우드 서비스라 하더라도 차등적인 보안 서비스가 제공될 수 있다.
구체적으로, 높은 요금을 지불하는 제1 테넌트의 경우, 솔트에 설정되는 서비스 키의 유효 기간이 짧게 설정되도록 할 수 있다. 또한, 마스터 키 관리를 위한 기준 계층을 하위 계층으로 설정되도록 할 수 있고, 마스터 키의 길이를 증가시키며, 암호화 알고리즘 또한 보다 강력한 알고리즘이 이용되도록 할 수 있다.
또한, 실시예에 따라 상기 제1 테넌트에게 보다 신속한 보안 서비스가 제공될 수도 있다. 예를 들어, 상기 제1 테넌트에 대한 서비스 키 요청의 경우, 프록시(110)에서 높은 우선 순위를 부여하고, 상기 우선 순위에 따라 서비스 키 요청이 처리되도록 할 수 있다. 이외에도, 상기 제1 테넌트에 대한 마스터 키가 캐시 서버(150)에 상주하도록 처리함으로써 빠르게 마스터 키가 제공되도록 할 수 있다.
지금까지 도 1 내지 도 17을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (13)

  1. 클라우드 서비스를 제공하는 서비스 제공 서버에 의해 이용되는 서비스 키를 제공하는 암호화 키 관리 시스템에 있어서,
    상기 서비스 키를 대응되는 마스터 키를 이용하여 암호화하고, 상기 서비스 제공 서버의 서비스 키 요청에 응답하여 상기 서비스 키를 제공하는 키 액세스 서버; 및
    상기 마스터 키에서 복수의 키 조각을 추출하고, 상기 추출된 복수의 키 조각이 분산 저장되도록 처리하며, 상기 키 액세스 서버의 마스터 키 요청에 응답하여, 상기 복수의 키 조각으로부터 복원된 마스터 키를 제공하는 마스터 키 관리 서버를 포함하되,
    상기 키 액세스 서버는,
    기 정의된 카테고리 중에서 상기 서비스 키가 속한 카테고리에 기초하여 식별자를 부여하고, 상기 부여된 식별자를 이용하여 상기 서비스 키를 관리하는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  2. 제1 항에 있어서,
    상기 마스터 키는 상기 암호화 키 관리 시스템 내에 보관되지 않는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  3. 제1 항에 있어서,
    상기 키 액세스 서버로부터 수신된 암호화된 서비스 키를 저장하는 서비스 키 관리 DB; 및
    복수의 DB를 포함하고, 상기 마스터 키 관리 서버로부터 수신된 복수의 키 조각을 상기 복수의 DB에 분산하여 저장하는 마스터 키 관리 DB를 더 포함하되,
    상기 서비스 키 관리 DB는, NoSQL DB로 구성되고,
    상기 마스터 키 관리 DB는, 관계형 DB로 구성된 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  4. 제1 항에 있어서,
    상기 키 액세스 서버는 복수의 서버 장치를 포함하고,
    상기 복수의 서버 장치는 상기 서비스 키 요청을 병렬적으로 처리하는 스케일 아웃(scale out) 구조로 구성되며,
    상기 암호화 키 관리 시스템은,
    상기 서비스 키 요청을 상기 복수의 서버 장치로 분배하는 프록시(proxy)를 더 포함하는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  5. 제1 항에 있어서,
    상기 마스터 키 관리 서버는 복수의 서버 장치를 포함하고,
    상기 복수의 서버 장치는 상기 마스터 키 요청을 병렬적으로 처리하는 스케일 아웃(scale out) 구조로 구성되며,
    상기 암호화 키 관리 시스템은,
    상기 마스터 키 요청을 상기 복수의 서버 장치로 분배하는 프록시(proxy)를 더 포함하는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  6. 제1 항에 있어서,
    기 설정된 캐싱 정책에 따라 상기 마스터 키에 대한 캐싱을 수행하고, 상기 서비스 키 요청에 응답하여, 상기 캐싱된 마스터 키를 제공하는, 캐싱 서버를 더 포함하는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  7. 제1 항에 있어서,
    상기 기 정의된 카테고리는 복수의 계층으로 구성되는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  8. 제7 항에 있어서,
    상기 서비스 키를 저장하고, 복수의 데이터 노드를 포함하는 NoSQL 기반의 서비스 키 관리 DB를 더 포함하되,
    상기 복수의 데이터 노드는 상기 기 정의된 카테고리에 대응되고, 상기 복수의 데이터 노드 각각에는 대응되는 카테고리에 속한 서비스 키가 저장되며,
    상기 부여된 식별자는 상기 복수의 데이터 노드에 저장된 서비스 키에 대한 인덱스로 이용되는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  9. 제7 항에 있어서,
    상기 복수의 계층 중에서 어느 하나의 계층이 마스터 키 관리에 이용되는 기준 계층으로 설정되고,
    상기 기준 계층에 위치한 제1 카테고리에 대응되는 제1 서비스 키는 제1 마스터 키로 암호화되어 저장되고,
    상기 기준 계층에 위치한 제2 카테고리에 대응되는 제2 서비스 키는 제2 마스터 키로 암호화되어 저장되는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  10. 제9 항에 있어서,
    상기 기준 계층에 위치한 카테고리는 상기 클라우드 서비스를 이용하는 테넌트(tenant)에 대응되는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  11. 제9 항에 있어서,
    상기 기준 계층에 위치한 카테고리는 상기 클라우드 서비스의 종류에 대응되는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  12. 제1 항에 있어서,
    상기 키 액세스 서버는,
    상기 서비스 키의 유효 기간에 기초하여 설정된 솔트를 이용하여 암호화 키를 도출하고, 상기 암호화 키를 이용하여 상기 서비스 키를 암호화하며, 상기 암호화된 서비스 키 및 상기 솔트를 상기 서비스 제공 서버로 제공하는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
  13. 제12 항에 있어서,
    상기 키 액세스 서버는,
    현재 시각을 가리키는 제1 수치 값과 상기 유효 기간을 가리키는 제2 수치 값을 합한 값으로 상기 솔트를 설정하고,
    상기 서비스 제공 서버는,
    상기 솔트에 설정된 값과 현재 시각을 가리키는 제3 수치 값의 비교 결과에 기초하여, 상기 암호화된 서비스 키의 유효 여부를 판정하는 것을 특징으로 하는,
    클라우드 서비스를 위한 암호화 키 관리 시스템.
KR1020170067569A 2017-05-31 2017-05-31 클라우드 서비스를 위한 암호화 키 관리 시스템 KR101966767B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170067569A KR101966767B1 (ko) 2017-05-31 2017-05-31 클라우드 서비스를 위한 암호화 키 관리 시스템
US15/994,266 US10893032B2 (en) 2017-05-31 2018-05-31 Encryption key management system for cloud services

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170067569A KR101966767B1 (ko) 2017-05-31 2017-05-31 클라우드 서비스를 위한 암호화 키 관리 시스템

Publications (2)

Publication Number Publication Date
KR20180131056A KR20180131056A (ko) 2018-12-10
KR101966767B1 true KR101966767B1 (ko) 2019-04-08

Family

ID=64460721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170067569A KR101966767B1 (ko) 2017-05-31 2017-05-31 클라우드 서비스를 위한 암호화 키 관리 시스템

Country Status (2)

Country Link
US (1) US10893032B2 (ko)
KR (1) KR101966767B1 (ko)

Families Citing this family (14)

* 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
US11163910B2 (en) * 2017-06-29 2021-11-02 Salesforce.Com, Inc. Methods and systems for data migration
US10749689B1 (en) * 2017-06-29 2020-08-18 Salesforce.Com, Inc. Language-agnostic secure application development
US10951406B2 (en) * 2018-01-24 2021-03-16 Salesforce.Com, Inc. Preventing encryption key recovery by a cloud provider
US11036876B2 (en) * 2018-08-20 2021-06-15 Cisco Technology, Inc. Attribute-based encryption for microservices
US10956600B2 (en) * 2018-10-31 2021-03-23 Salesforce.Com, Inc. Highly available encryption framework for multiple different computing environments
US11238174B2 (en) * 2019-01-31 2022-02-01 Salesforce.Com, Inc. Systems and methods of database encryption in a multitenant database management system
KR102644153B1 (ko) * 2019-10-31 2024-03-07 삼성에스디에스 주식회사 데이터 보안 장치 및 방법
CN112333150A (zh) * 2020-10-12 2021-02-05 成都安易迅科技有限公司 一种数据解密方法、装置、存储介质及计算设备
US20230421370A1 (en) * 2020-10-15 2023-12-28 Keycrypt Labs Pty Ltd Secure cloud storage and retrieval of client-side encrypted files
US11677551B2 (en) * 2020-10-30 2023-06-13 EMC IP Holding Company LLC Encryption at rest using KMS and TPM
KR102472159B1 (ko) * 2020-11-12 2022-11-30 주식회사 동고비소프트 클라우드 기반 IoT 장치 제어 방법 및 시스템
US11799633B1 (en) * 2021-09-27 2023-10-24 Workday, Inc. Enabling using external tenant master keys
CN117201204B (zh) * 2023-11-07 2024-03-29 阿里云计算有限公司 云存储系统与数据读写方法、设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191200B1 (en) * 2010-10-07 2015-11-17 L-3 Communications Corp. System and method for changing the security level of a communications terminal during operation
US8565422B2 (en) * 2010-12-03 2013-10-22 Salesforce.Com, Inc. Method and system for enryption key versioning and key rotation in a multi-tenant environment
KR20120132708A (ko) * 2011-05-26 2012-12-10 동국대학교 경주캠퍼스 산학협력단 클라우드 컴퓨팅 환경에서의 접근 권한 분산 관리 장치 및 그 방법
KR20130074225A (ko) 2011-12-26 2013-07-04 주식회사 케이티 공통 키 관리 시스템
KR20160128170A (ko) * 2015-04-28 2016-11-07 고려대학교 산학협력단 비밀키 암호화 및 복원을 제공하는 단말, 서버 및 방법
KR102460096B1 (ko) 2015-05-27 2022-10-27 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. Menezes 외 2명, Handbook of Applied Cryptography, Chapter 10, CRC Press (1996.)*
A. Menezes 외 2명, Handbook of Applied Cryptography, Chapter 12, CRC Press (1996.)*

Also Published As

Publication number Publication date
US10893032B2 (en) 2021-01-12
US20180351928A1 (en) 2018-12-06
KR20180131056A (ko) 2018-12-10

Similar Documents

Publication Publication Date Title
KR101966767B1 (ko) 클라우드 서비스를 위한 암호화 키 관리 시스템
US11475137B2 (en) Distributed data storage by means of authorisation token
US10402578B2 (en) Management of encrypted data storage
US11240024B2 (en) Cryptographic key management using key proxies and generational indexes
US11157630B2 (en) Migrating data between databases
US20230155989A1 (en) Self-encrypting key management system
EP3127274B1 (en) Methods and apparatus to securely share data
US10951406B2 (en) Preventing encryption key recovery by a cloud provider
US8769310B2 (en) Encrypting data objects to back-up
US8769269B2 (en) Cloud data management
US20200193036A1 (en) Intelligent storage devices with cryptographic functionality
US8948399B2 (en) Dynamic key management
KR20160139493A (ko) 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
EP3860036B1 (en) Key management method, security chip, service server and information system
US10685141B2 (en) Method for storing data blocks from client devices to a cloud storage system
WO2014194494A1 (zh) 数据安全的保护方法、服务器、主机及系统
US10887085B2 (en) System and method for controlling usage of cryptographic keys
US11068606B2 (en) Secured encrypted shared cloud storage
US11418331B1 (en) Importing cryptographic keys into key vaults
US11818264B2 (en) Zero-knowledge key escrow
CN114186245A (zh) 来自存储系统的加密密钥
WO2016108902A1 (en) Enterprise service bus logging

Legal Events

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