KR20150119112A - 데이터 보안 서비스 - Google Patents

데이터 보안 서비스 Download PDF

Info

Publication number
KR20150119112A
KR20150119112A KR1020157024666A KR20157024666A KR20150119112A KR 20150119112 A KR20150119112 A KR 20150119112A KR 1020157024666 A KR1020157024666 A KR 1020157024666A KR 20157024666 A KR20157024666 A KR 20157024666A KR 20150119112 A KR20150119112 A KR 20150119112A
Authority
KR
South Korea
Prior art keywords
service
key
request
cryptographic
data
Prior art date
Application number
KR1020157024666A
Other languages
English (en)
Other versions
KR101769282B1 (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 아마존 테크놀로지스, 인크.
Publication of KR20150119112A publication Critical patent/KR20150119112A/ko
Application granted granted Critical
Publication of KR101769282B1 publication Critical patent/KR101769282B1/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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • 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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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
    • 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]
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • 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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

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)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

분산형 컴퓨팅 환경이 암호 기법 서비스를 이용한다. 암호 기법 서비스는 하나 이상의 실체를 대행하여 안전하게 키를 관리한다. 암호 기법 서비스는 암호화 및 해역과 같은 암호 기법 작동 수행 요청을 수신 및 이에 응답하도록 구성된다. 이러한 요청은 분산형 컴퓨팅 환경 및/또는 분산형 컴퓨팅 환경의 서브시스템을 이용하는 실체로부터 발원할 수 있다.

Description

데이터 보안 서비스 {Data security service}
본 출원은 2013년 2월 12일 출원된 미국특허출원 제13/764,963호에 대한 우선권을 주장하며, 그 내용 전체는 본 발명에 참고자료로 포함된다. 본 출원은 동일자로 출원되어 함께 계류 중인 미국특허출원 제13/764,944호(발명의 명칭: "AUTOMATIC KEY ROTATION"), 동일자로 출원되어 함께 계류 중인 미국특허출원 제13/764,995호(발명의 명칭: "POLICY ENFORCEMENT WITH ASSOCIATED DATA"), 동일자로 출원되어 함께 계류 중인 미국특허출원 제13/765,020호(발명의 명칭: "DATA SECURITY WITH A SECURITY MODULE"), 동일자로 출원되어 함께 계류 중인 미국특허출원 제13/765,209호(발명의 명칭: "FEDERATED KEY MANAGEMENT"), 동일자로 출원되어 함께 계류 중인 미국특허출원 제13/765,239호(발명의 명칭: "DELAYED DATA ACCESS"), 동일자로 출원되어 함께 계류 중인 미국특허출원 제13/765,265호(발명의 명칭: "DATA SECURITY SERVICE"), 및 동일자로 출원되어 함께 계류 중인 미국특허출원 제13/765,283호(발명의 명칭: "SECURE MANAGEMENT OF INFORMATION USING A SECURITY MODULE")의 개시 내용 전체를 모든 용도로 참고자료로 포함한다.
컴퓨팅 리소스 및 연관 데이터의 보안성은 많은 범주에서 높은 중요도를 가진다. 한 예로서, 조직은 사용자에게 견고한 서비스 세트를 제공하기 위해 컴퓨팅 디바이스들의 네트워크를 종종 이용한다. 네트워크는 종종 복수의 지리적 경계에 걸치게 되고, 종종 다른 네트워크와 연결된다. 조직은, 예를 들어, 타에 의해 관리되는 컴퓨팅 리소스와 컴퓨팅 리소스의 내부 네트워크를 이용하여 작동을 지원할 수 있다. 조직의 컴퓨터는, 예를 들어, 타 조직의 서비스를 이용하면서 데이터 액세스 및/또는 데이터 제공을 위해 타 조직의 컴퓨터와 통신할 수 있다. 많은 경우에, 조직은 타 조직에 의해 관리되는 하드웨어를 이용하여 원격 네트워크를 구성 및 작동시키고, 따라서, 인프러스트럭처 비용을 절감하면서 기타 장점들을 실현할 수 있다. 이러한 구조의 컴퓨팅 리소스를 이용하여, 이들이 홀딩하는 데이터 및 리소스에 대한 액세스를 보장하는 것은, 특히, 이러한 구조의 크기 및 복잡도가 커짐에 따라, 어려워질 수 있다.
본 발명에 따른 다양한 실시예가 도면을 참조하여 설명될 것이다:
도 1은 다양한 실시예에 따른 본 발명의 다양한 형태를 나타내는 도식을 도시하고,
도 2는 본 발명의 다양한 형태들이 구현될 수 있는 환경의 도식적 예를 도시하며,
도 3은 적어도 하나의 실시예에 따라, 본 발명의 다양한 형태가 구현될 수 있는 도식적 예와, 상기 환경의 다양한 구성요소 간의 정보의 예시적 흐름을 도시하고,
도 4는 적어도 하나의 실시예에 따라, 암호문을 저장하기 위한 도식적 프로세스의 예시적 단계들을 도시하며,
도 5는 적어도 하나의 실시예에 따라, 본 발명의 다양한 형태가 구현될 수 있는 환경의 도식적 예와, 상기 환경의 다양한 구성요소 간의 정보의 예시적 흐름을 도시하고,
도 6은 적어도 하나의 실시예에 따라, 데이터 불러오기 요청에 응답하기 위한 도식적 프로세스의 예시적 단계들을 도시하며,
도 7은 적어도 하나의 실시예에 따라, 본 발명의 다양한 형태들이 구현될 수 있는 환경의 도식적 예와, 상기 환경의 다양한 구성요소들 간의 정보의 예시적 흐름을 도시하고,
도 8은 적어도 하나의 실시예에 따라, 데이터 저장 요청에 응답하기 위한 도식적 프로세스의 예시적 단계들을 도시하며,
도 9는 적어도 하나의 실시예에 따라, 본 발명의 다양한 형태가 구현될 수 있는 환경의 도식적 예와, 상기 환경의 다양한 구성요소 간의 정보의 예시적 흐름을 도시하고,
도 10은 적어도 하나의 실시예에 따라, 데이터 불러오기 요청에 응답하기 위한 도식적 프로세스의 예시적 단계들을 도시하며,
도 11은 본 발명의 다양한 형태들을 구현할 수 있는 환경의 도식적 예를 도시하고,
도 12는 적어도 하나의 실시예에 따라, 본 발명의 다양한 형태들이 구현될 수 있는 환경의 도식적 예와, 상기 환경의 다양한 구성요소들 간의 정보의 예시적 흐름을 도시하며,
도 13은 적어도 하나의 실시예에 따라, 데이터 불러오기 요청에 응답하기 위한 도식적 프로세스의 예시적 단계들을 도시하고,
도 14는 적어도 하나의 실시예에 따라, 데이터 해역 요청에 응답하기 위한 도식적 프로세스의 예시적 단계들을 도시하며,
도 15는 적어도 하나의 실시예에 따라, 해역된 데이터를 획득하기 위한 도식적 프로세스의 예시적 단계들을 도시하고,
도 16은 적어도 하나의 실시예에 따라, 예시적 암호 기법 서비스의 도식적 표현을 도시하며,
도 17은 적어도 하나의 실시예에 따라, 정책(policy)을 구성하기 위한 도식적 프로세스의 예시적 단계들을 도시하고,
도 18은 적어도 하나의 실시예에 따라, 정책을 집행하면서 암호 기법 작동을 수행하기 위한 도식적 프로세스의 예시적 단계들을 도시하며,
도 19는 다양한 실시예들을 구현할 수 있는 환경의 도식적 예를 도시한다.
다음의 설명에서, 다양한 실시예들이 설명될 것이다. 설명을 위해, 구체적인 구조 및 세부사항이 실시예의 완전한 이해를 제공하고자 제시된다. 그러나, 실시예들이 이러한 구체적 세부사항없이 실시될 수 있음은 당 업자에게 또한 명백하다. 더욱이, 설명되는 실시예의 본질을 흐리지 않기 위해, 잘 알려진 특징들은 생략되거나 단순화될 수 있다.
여기서 설명 및 암시되는 기술에 따르면, 분산형 컴퓨팅 리소스를 포함하는 환경에서 데이터 보안성이 향상된다. 한 예에서, 분산형 컴퓨팅 환경은 적절한 컴퓨팅 리소스에 의해 구현될 수 있는 하나 이상의 데이터 서비스를 포함한다. 데이터 서비스에서는 다양한 작동들이 데이터와 연계하여 수행될 수 있다. 한 예시적 예로서, 분산형 컴퓨팅 환경은 하나 이상의 데이터 저장 서비스를 포함한다. 전자적 요청이 데이터 저장 서비스에 전달되어, 데이터 저장 작동을 수행하게 한다. 예시적 작동은 데이터 저장 서비스를 이용하여 데이터를 저장하고, 데이터 저장 서비스에 의해 저장된 데이터를 데이터 저장 서비스를 이용하여 불러들이는 작동이다. 데이터 저장 서비스를 포함한, 데이터 서비스는 데이터를 조작하는 작동을 또한 수행할 수 있다. 예를 들어, 일부 실시예에서, 데이터 저장 서비스는 데이터를 암호화할 수 있다.
본 발명의 다양한 실시예는 적절한 컴퓨팅 리소스를 이용하여 구현되는 암호 기법 서비스를 포함하는 분산형 컴퓨팅 환경을 포함한다. 암호 기법 서비스는 평문의 암호화 및 암호문의 해역과 같이, 암호 기법 작동의 수행을 위한 전자적 요청을 수신하고 이에 응답하는 분산형 시스템에 의해 구현될 수 있다. 일부 실시예에서, 암호 기법 서비스는 키를 관리한다. 암호 기법 작동 수행을 위한 요청에 응답하여, 암호 기법 서비스는 관리되는 키를 이용하는 암호 기법 작동을 실행할 수 있다. 예를 들어, 암호 기법 서비스는 적절한 키를 선택하여, 암호 기법 작동을 수행하고, 암호 기법 작동을 수행하며, 수신된 요청에 응답하여 암호 기법 작동의 하나 이상의 결과를 제공할 수 있다. 대안의 구조에서, 암호 기법 서비스는 엔빌롭 키(가령, 특정 데이터 아이템의 암호화에 사용되는 세션 키)를 생성할 수 있고, 서비스의 암호 기법 작동을 호출하는 시스템에 엔빌롭 키를 리턴시킨다. 그 후 시스템은 엔빌롭 키를 이용하여 암호 기법 작동을 수행한다.
일부 실시예에서, 암호 기법 서비스는 컴퓨팅 리소스 서비스 제공자의 복수의 테넌트(tenants)에 대한 키를 관리한다. 컴퓨팅 리소스의 테넌트는 컴퓨팅 리소스 제공자의 고객으로 작동하는 실체(가령, 조직 또는 개인)일 수 있다. 고객은 컴퓨팅 리소스 제공자에 의해 물리적으로 호스팅되는 리소스를 원격으로 그리고 프로그래밍 방식으로 구성 및 작동시킬 수 있다. 고객이 암호 기법 서비스에 암호 기법 작동 수행 요청을 제출할 때(또는 실체가 암호 기법 서비스에 요청을 제출할 때), 암호 기법 서비스는 고객이 암호 기법 작동을 수행할 수 있도록 암호 기법 서비스에 의해 관리되는 키를 선택할 수 있다. 암호 기법 서비스에 의해 관리되는 키는 타 사용자 및/또는 데이터 서비스가 다른 자들의 키에 대한 액세스를 갖지 못하도록 안전하게 관리될 수 있다. 다른 실체의 키에 대해 일 실체(가령, 사용자, 고객, 서비스)에 의한 액세스가 불가능하다는 것은, 실체가 타의 키를 획득하는 인가된 방식을 갖지 못함을 의미하거나, 및/또는, 일 실체가 해당 실체의 방향으로 키를 이용하도록 타의 키를 관리하는 시스템을 야기하는 인가된 방식을 갖지 못함을 의미한다. 예를 들어, 암호 기법 서비스는 고객의 경우에, 타 고객이 고객의 키에 대한 액세스를 갖지 못하도록, 그리고, 암호 기법 서비스가 고객의 키를 이용하여 암호 기법 작동을 수행할 수 없도록, 키를 관리할 수 있다. 다른 예로서, 암호 기법 서비스는 데이터 저장 서비스와 같은 다른 서비스가 암호 기법 서비스로 하여금 키 일부 또는 전부를 이용하여 암호 기법 작동을 수행할 수 없도록 키를 관리할 수 있다. 키에 대한 비인가 액세스는, 예를 들어, 비인가 액세스가 어렵거나 불가능하도록, 적절한 보안 척도에 의해 방지될 수 있다. 연산의 비실용성으로 인해, 및/또는, 비인가자(가령, 불법적, 및/또는 그렇지 않을 경우 허가되지 않은, 가령, 공인 인증의 위협)가 액세스를 얻기 위해 나타날 필요성으로 인해, 어려움이 있을 수 있다. 다양한 실시예에 따른 시스템은 키에 대한 액세스를 얻기 위해 연산적 비현실성의 객관적 측정을 보장하도록 구성될 수 있다. 이러한 측정은 예를 들어, 시간 단위 측면에서 측정될 수 있고, 평균적으로, 키에 대한 인가 액세스를 위해 필요한 암호화된 정보를 깨기 위해 지정된 단위의 연산 능력(가령, 단위 시간 당 소정의 작동)을 가진 컴퓨터를 취할 것이다.
언급한 바와 같이, 암호 기법 서비스는 컴퓨팅 리소스 제공자의 고객과 같은, 다양한 실체로부터 요청을 수신할 수 있다. 암호 기법 서비스는 컴퓨팅 리소스 제공자 내부의 실체로부터 요청을 또한 수신할 수 있다. 예를 들어, 일부 실시예에서, 컴퓨팅 리소스 제공자에 의해 구현되는 데이터 서비스는 암호 기법 서비스로 하여금 암호 기법 작동을 수행하게 하는 요청을 암호 기법 서비스에 전송할 수 있다. 한 예로서, 고객은 데이터 객체 저장 요청을 데이터 저장 서비스에 전송할 수 있다. 이 요청은 데이터 객체가 저장될 때 암호화되어야 함을 표시할 수 있다. 데이터 저장 서비스는 암호 기법 작동 수행 요청을 암호 기법 서비스에 전송할 수 있다. 암호 기법 작동은 예를 들어, 데이터 객체 암호화를 위해 데이터 저장 서비스에 의해 사용되는 키의 암호화일 수 있다. 암호 기법 작동은 데이터 객체 자체의 암호화일 수 있다. 암호 기법 작동은 데이터 저장 서비스가 데이터 객체의 암호화에 사용할 수 있는 엔빌롭 키를 발생시키는 것일 수 있다.
다양한 실시예에 따른 시스템은 다양한 보안성 측정을 구현하여, 개선된 데이터 보안성을 제공할 수 있다. 예를 들어, 다양한 실시예에서, 암호 기법 서비스가 관리 대상인 키를 이용할 수 있는 방식이 제한된다. 예를 들어, 일부 실시예에서, 적절한 인가시에 고객에 대응하는 키를 단지 이용하도록 암호 기법 서비스가 구성된다. 고객의 키 이용 요청이 고객으로부터(즉, 고객 대신에 작동하는 컴퓨팅 디바이스로부터) 의도적으로 발원한 경우, 암호 기법 서비스는 고객이 소유한 적절한 인증을 이용하여 요청에 전자적으로(디지털 방식으로) 서명할 것을 요구하도록 구성될 수 있다. 고객 키 이용 요청이 다른 데이터 서비스로부터 발원된 경우, 암호 기법 서비스는 데이터 서비스에 대한 서명된 요청이 고객에 의해 이루어졌다는 증거를 제공할 것을 요구하도록 구성될 수 있다. 일부 실시예에서, 예를 들어, 데이터 서비스는 인증된 고객 요청의 증거로 기능하는 토큰을 획득 및 제공하도록 구성된다. 다른 보안 측정법은 암호 기법 서비스를 포함하는 전자적 환경의 구성 내에 또한 구성될 수 있다. 예를 들어, 일부 실시예에서, 암호 기법 서비스는 범주에 따라 키 이용을 제한하도록 구성된다. 한 예시적 예로서, 암호 기법 서비스는, 고객으로부터의, 또는, 고객 대신에 작용하는 데이터 서비스로부터의 요청에 대해 암호화를 위한 키를 이용하도록 구성될 수 있다. 그러나, 암호 기법 서비스는 (다른 데이터 서비스로부터가 아니라) 고객으로부터의 요청에 대해 단지 해역을 위한 키를 이용하도록 구성될 수 있다. 이러한 방식으로, 데이터 서비스가 절충될 경우, 데이터 서비스는 암호 기법 서비스로 하여금 데이터를 해역할 수 없을 것이다.
다양한 보안 측정법이 암호 기법 서비스 내로 및/또는 전자적 환경 내로 구성될 수 있다. 일부 보안 측정은 일부 실시예에서, 구성가능한, 정책에 따라 관리될 수 있다. 한 예로서, 암호 기법 서비스는 사용자로 하여금 키에 대한 정책을 구성할 수 있게 하는 애플리케이션 프로그래밍 인터페이스(API)를 이용할 수 있다. 키에 대한 정책은, 암호 기법 서비스에 의해 처리될 때, 키가 소정의 환경에서 사용될 수 있는지 여부를 결정하는 정보일 수 있다. 정책은, 예를 들어, 키의 이용을 지시할 수 있는 시스템 및/또는 사용자의 신원을 제한할 수 있고, 키가 사용될 수 있는 시기를 제한할 수 있으며, 암호 기법 작동 수행에 사용될 수 있는 키의 데이터를 제한할 수 있고, 다른 제한사항을 제공할 수 있다. 정책은 명시적 제한사항(가령, 키를 이용할 수 없는 자)을 제공할 수 있고, 및/또는 명시적 인가(가령, 키를 이용할 수 있는 자)를 제공할 수 있다. 더욱이, 정책은 키가 사용될 수 있을 때와 없을 때에 대한 조건을 일반적으로 제공하도록 복잡하게 구조화될 수 있다. 키를 이용한 암호 기법 작동 수행 요청이 수신될 때, 키에 대한 임의의 정책에 액세스하고 이를 처리하여, 요청이 정책에 따라 충족될 수 있는지를 결정할 수 있다.
도 1은 본 발명의 다양한 실시예를 보여주는 도식(100)이다. 일 실시예에서, 암호 기법 서비스는 하나 이상의 암호 기법 알고리즘에 따라 하나 이상의 연산의 애플리케이션을 포함할 수 있는 암호 기법 작동을 수행한다. 도 1에 도시되는 바와 같이, 암호 기법 서비스는 사용자 또는 서비스로 하여금 암호문으로부터 평문을 발생시킬 수 있게 한다. 일례의 구조에서, 암호 기법 서비스를 이용하여 키를 암호화/해역할 수 있고, 이러한 키를 이용하여, 데이터 저장 서비스에 저장된 데이터와 같은, 데이터를 암호화/해역할 수 있다. 예를 들어, 암호 기법 서비스는 키 하에 암호화된 암호문으로부터 평문을 생성하기 위한 요청을 수신한다. 암호 기법 서비스는 요청자가 인가자임을 결정하고, 마스터 키를 이용하여 키를 해역하며, 이제 해역된 키를 서비스로 리턴시키며, 서비스는 해역된 키를 이용하여 암호문으로부터 평문을 발생시킬 수 있다. 다른 구조에서, 암호 기법 서비스는 암호문을 수신하고, 수신된 암호문을, 암호 기법 서비스에 의한 서비스로 제공되는, 평문으로 처리한다. 본 예에서, 암호문은 인가자로부터의 암호 기법 서비스에 대한 전자적 요청의 일부분으로 암호 기법 서비스에 제공될 수 있고, 상기 인가자는 암호 기법 서비스를 작동시키는 컴퓨팅 리소스 제공자의 고객일 수 있고, 및/또는, 컴퓨팅 리소스 제공자의 다른 서비스일 수 있다. 도 1에 도시되는 암호 기법 서비스는 데이터의 암호화를 위해 하나 이상의 암호 기법적으로 강력한 알고리즘을 이용할 수 있다. 이러한 암호 기법적으로 강력한 알고리즘은, 예를 들어, AES(Advanced Encryption Standard), Blowfish, DES(Data Encryption Standard), Triple DES, Serpent 또는 Twofish를 포함할 수 있고, 선택되는 구체적 구현예에 따라, 비대칭 또는 대칭 키 시스템일 수 있다. 일반적으로, 암호 기법 서비스는 암호화 및/또는 해역 알고리즘(암호) 또는 암호 기법 서비스에 의해 관리되는 데이터를 이용하는 알고리즘들의 조합을 이용할 수 있다.
아래에서 더 상세하게 논의되는 바와 같이, 암호 기법 서비스는 다양한 방식으로 구현될 수 있다. 일 실시예에서, 암호 기법 서비스는 아래의 설명에 따라 구성되는 컴퓨터 시스템에 의해 구현된다. 컴퓨터 시스템 자체가 하나 이상의 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 암호 기법 서비스는 다양한 실시예에 따라 암호 기법 작동을 수행하도록 집합적으로 구성된 컴퓨터 시스템들의 네트워크로 구현될 수 있다. 또는 달리 보자면, 컴퓨터 시스템이 분산형 시스템일 수 있다. 일 실시예에서, 암호문은 암호 기법 알고리즘을 이용하여 암호화된 정보다. 도 1의 예에서, 암호문은 암호화된 형태의 평문이다. 평문은 임의의 정보일 수 있고, 명칭이 어떤 단어 텍스트, 평문도 포함하지 않으며, 암호문은 임의의 적절한 형태로 인코딩된 정보일 수 있고, 텍스트 정보를 포함하지 않을 수 있으며, 포함할 수도 있다. 예를 들어, 도 1에 도시되는 바와 같이, 평문 및 암호문은 비트 시퀀스를 포함한다. 평문 및 암호문은 다른 방식으로 표현될 수도 있고, 일반적으로, 암호화 및 해역이 컴퓨터 시스템에 의해 수행될 수 있도록 임의의 방식으로 표현될 수 있다.
도 2는 도 1에 도시되는 바와 같은 암호 기법 서비스를 구현할 수 있는 환경(200)의 예시적 예를 도시한다. 환경(200)에서, 다양한 구성요소들이 안전한 데이터 관련 서비스 제공을 위해 함께 작동한다. 본 특정 예에서, 환경(200)은 암호 기법 서비스, 인증 서비스, 데이터 서비스 프론트엔드 및 데이터 서비스 백엔드 저장 시스템을 포함한다. 일 실시예에서, 암호 기법 서비스는 가령, 데이터 서비스 프론트엔드로부터 평문을 수신하여 암호문을 리턴으로 제공함으로써, 또는, 서비스가 엔빌롭 키를 이용하여 암호화 작동을 수행할 수 있도록, 서비스에 엔빌롭 키를 제공함으로써, 암호 기법 작동을 수행하도록 환경(200) 내에 구성된다. 암호 기법 서비스는 예를 들어, 암호 기법 작동의 수행을 위한 키들의 안전한 저장, 평문을 암호문으로 변환 및 암호문을 평문으로 해역과 같이, 암호 기법 작동들의 수행을 위한 키들의 안전한 저장과 같이, 아래 설명되는 바와 같은, 추가 기능들을 수행할수 있다. 암호 기법 서비스는 가령, 내부에 저장된 키와 연관된 정책을 집행함으로써, 정책 집행에 관련된 작동들을 또한 수행할 수 있다. 암호 기법 서비스에 의해 집행될 수 있는 예시적 정책이 아래에 제공된다. 일 실시예의 데이터 서비스 프론트엔드는 다양한 사용자로부터 네트워크를 통해 전송되는 요청을 수신 및 응답하도록 구성되는 시스템이다. 이 요청들은 데이터 서비스 백엔드 저장 시스템에 저장된 또는 저장될 데이터와 연계하여 작동을 수행하기 위한 요청일 수 있다. 환경(200)에서, 인증 서비스, 암호 기법 서비스, 데이터 서비스 프론트엔드, 및 데이터 서비스 백엔드 저장 시스템은, 도 2에 도시되는 사용자에 의해 표현되는 고객에 서비스를 제공하기 위해 시스템을 이용하는 컴퓨팅 리소스 제공자의 시스템일 수 있다. 도 2에 도시되는 네트워크는 아래 논의되는 사항을 포함한, 임의의 적절한 네트워크, 또는 네트워크들의 조합일 수 있다.
일 실시예의 인증 서비스는 사용자의 인증에 관련된 작동들을 수행하도록 구성된 컴퓨터 시스템이다. 예를 들어, 데이터 서비스 프론트엔드는 사용자 요청의 진위 여부를 표시하는 정보를 리턴으로 수신하도록 사용자로부터 인증 서비스로 정보를 제공할 수 있다. 사용자 요청의 진위 여부의 결정은, 임의의 적절한 방식으로 수행될 수 있고, 인증이 수행되는 방식은 다양한 실시예들 가운데서 변할 수 있다. 예를 들어, 일부 실시예에서, 사용자는 데이터 서비스 프론트엔드에 전송되는 메시지에 전자적으로 서명할 수 있다. 전자 시그너처는 인증 실체(가령, 사용자) 및 인증 서비스 모두에 가용한 비밀 정보(가령, 사용자와 관련된 키 쌍의 프라이빗 키)를 이용하여 생성될 수 있다. 요청 및 요청에 대한 시그너처는 인증 서비스에 제공될 수 있고, 인증 서비스는 비밀 정보를 이용하여, 요청의 진위 여부 결정을 위해 수신된 시그너처와 비교를 위해 기준 시그너처를 컴퓨팅할 수 있다. 요청이 진짜일 경우, 인증 서비스는 데이터 서비스 프론트엔드가 암호 기법 서비스와 같은 타 서비스에게, 요청이 진짜임을 증명하는데 데이터 서비스 프론트엔드가 이용할 수 있는 정보를 제공할 수 있고, 따라서, 기타 서비스를 작동시킬 수 있다. 예를 들어, 인증 서비스는 요청의 진위 검증을 위해 다른 서비스가 분석할 수 있는 토큰을 제공할 수 있다. 전자적 시그너처 및/또는 토큰은 다양한 방식으로 제한되는 유효성을 가질 수 있다. 예를 들어, 전자적 시그너처 및/또는 토큰은 소정 시간 동안만 유효할 수 있다. 일 예에서, 전자적 시그너처 및/또는 토큰은 검증을 위해 전자적 시그너처 및/또는 토크와 함께 포함되는 시간스탬프를 입력으로 취하는 함수(가령, 해시-기반 메시지 인증 코드)에 적어도 기본적으로 기초하여 발생된다. 제출되는 전자적 시그너처/토큰의 발생에 사용된 시간스탬프가 충분히 현재적이지 않을 경우, 및/또는 제출되는 시그너처/토큰 및 기준 시그너처/토큰이 일치하지 않을 경우, 인증이 실패할 수 있다. 이러한 방식으로, 전자적 시그너처가 절충될 경우, 짧은 시간 동안만 유효할 것이다. 진위 검증을 위한 다른 방식도 본 발명의 범위 내에 있는 것으로 또한 간주된다.
일 실시예의 데이터 서비스 백엔드 저장 시스템은 데이터 서비스 프론트엔드를 통해 수신되는 요청에 따라 데이터를 저장하는 컴퓨터 시스템이다. 아래에서 더 상세하게 논의되는 바와 같이, 데이터 서비스 백엔드 저장 시스템은 암호화된 형태로 데이터를 저장할 수 있다. 데이터 서비스 백엔드 저장 시스템 내 데이터가 암호화지 않은 형태로 또한 저장될 수 있다. 일부 실시예에서, 데이터 서비스 프론트엔드에 의해 구현되는 API는 데이터 서비스 백엔드 저장 시스템에 저장될 데이터가 암호화되어야하는지 여부를 요청에 명시하게 한다. 암호화되어 데이터서비스 백엔드 저장 시스템에 저장되는 데이터는 다양한 실시예에 따라 다양한 방식으로 암호화될 수 있다. 예를 들어, 다양한 실시예에서, 데이터는 암호 기법 서비스에 액세스가능한, 그러나, 환경(200)의 다른 시스템 전부 또는 일부에는 액세스불가능한, 키를 이용하여 암호화된다. 데이터는 데이터 서비스 백엔드 저장 시스템에 저장을 위해 암호 기법 서비스에 의해 인코딩될 수 있고, 및/또는, 일부 실시예에서, 데이터가 암호 기법 서비스에 의해 해역된 키를 이용하여, 데이터 서비스 프론트엔드의 시스템 또는 사용자 시스템과 같은, 타 시스템에 의해 암호화될 수 있다. 환경(200)이 데이터 암호화를 위해 작동할 수 있는 다양한 방식들의 예가 아래에 제공된다.
환경(200)의 수많은 변화(및 여기서 설명되는 기타 변화)는 본 발명의 범위 내에 있는 것으로 간주된다. 예를 들어, 환경(200)은 서로 다른 방식으로 데이터를 저장할 수 있는 추가 데이터 저장 서비스(각각 프론트엔드 시스템 및 백엔드 시스템을 포함가능)를 포함할 수 있다. 예를 들어, 하나의 데이터 저장 서비스는, 데이터 저장 서비스가 동기적인 방식으로 데이터 저장 서비스를 수행하는 경우에, 데이터에 대한 능동적 액세스를 제공할 수 있다(가령, 데이터 불러오기 요청이 불러온 데이터와 함께 동기식 응답을 수신할 수 있음). 다른 데이터 저장 서비스는 아카이브 데이터 저장 서비스(archival data storage services)를 제공할 수 있다. 이러한 아카이브 데이터 저장 서비스는 비동기식 요청 프로세싱을 이용할 수 있다. 예를 들어, 데이터 불러오기 요청은 불러오기 데이터를 포함하는 동기식 응답을 수신할 수 없다. 대신에, 아카이브 데이터 저장 서비스는 아카이브 데이터 저장 서비스가 불러오기 데이터를 제공할 준비가 되면, 불러오기 데이터를 획득하기 위해 제 2 요청의 제출을 요구할 수 있다. 다른 예로서, 환경(200)은, 암호 기법 서비스(및/또는 기타 서비스)로부터 정보를 수신하여 이 정보를 이용하여 어카운팅 레코드(accounting record)를 생성하는, 미터링 서비스(metering service)를 포함할 수 있다. 어카운팅 레코드는 암호 기법 서비스(및/또는 기타 서비스)의 이용에 대한 고객의 과금에 사용될 수 있다. 더욱이, 암호 기법 서비스로부터의 정보는 요금이 어떻게 발생되어야하는지의 표시를 제공할 수 있다. 예를 들어, 일부 예에서, 고객은 암호 기법 서비스의 이용에 대한 청구서를 제공받을 수 있다. 다른 예에서, 암호 기법 서비스의 이용에 대한 요금은, 작동의 일부분으로 암호 기법 서비스를 이용하는 데이터 서비스와 같은, 다른 서비스의 이용 요금에 들어갈 수 있다. 이용은 다양한 방식으로, 가령, 작동 당, 시간 주기 당, 및/또는 기타 방식으로, 계측 및 과금될 수 있다. 다른 데이터 서비스가 환경(200)(또는 여기서 설명되는 기타 환경)에 또한 포함될 수 있다.
추가적으로, 도 2는 데이터 서비스 프론트엔드와 상호작용하는 사용자를 도시한다. 도면에 도시되지 않은 사용자 디바이스(가령, 컴퓨터)를 통해 데이터 서비스 프론트엔드와 사용자가 상호작용할 수 있음을 이해하여야 한다. 더욱이, 도 2(및 도면들 중 다른 어디)에 도시되는 사용자는 인간이 아닌 실체를 또한 나타날 수 있다. 예를 들어, 컴퓨터 시스템 상에서 실행되는 자동화 프로세스는 여기서 설명되는 바와 같이 데이터 서비스 프론트엔드와 상호작용할 수 있다. 한가지 예시적 예로서, 도 2에 사용자에 의해 표시되는 실체는, 작동의 일부분으로, 데이터 서비스 백엔드 저장 시스템 내외로 데이터를 저장 및/또는 불러오기 위해 데이터 서비스 프론트엔드를 이용하는 서버일 수 있다. 또 다른 예로서, 도 2에 사용자에 의해 표시되는 실체는, 도 2의 서비스들 중 하나 이상을 작동시키는 컴퓨팅 리소스 제공자의 서비스로 제공되는 실체일 수 있다. 예를 들어, 도 2의 사용자는 컴퓨팅 리소스 제공자에 의해 제공되는 프로그램 실행 서비스의 가상 또는 기타 컴퓨터 시스템을 나타낼 수 있다. 아래 설명되는 다른 환경들의 변화를 포함한, 다른 변화들이, 본 발명의 범위 내에 있는 것으로 또한 간주된다.
예를 들어, 도 3은 본 발명의 다양한 실시예를 구현할 수 있는 환경(300)의 예시적 예를 도시한다. 도 2에서처럼, 도 3의 환경은 인증 서비스, 데이터 서비스 프론트엔드 시스템(데이터 서비스 프론트엔드), 암호 기법 서비스, 및 데이터 서비스 백엔드 저장 시스템을 포함한다. 인증 서비스, 데이터 서비스 프론트엔드, 암호 기법 서비스, 및 데이터 서비스 백엔드 저장 시스템은, 도 2와 연계하여 앞서 설명한 바와 같이 구성될 수 있다. 예를 들어, 사용자는 적절한 통신망을 통해 데이터 서비스 프론트엔드에 액세스할 수 있으나, 이러한 네트워크가 도면에 도시되지는 않는다. 도 3에 도시되는 예시적 환경(300)에서, 정보의 흐름을 나타내는 화살표가 제공된다. 본 예에서, 사용자는 데이터 서비스 프론트엔드에 PUT 요청을 전송한다. PUT 요청은 데이터 서비스 백엔드 저장 시스템에 명시된 데이터를 저장하기 위한 요청일 수 있다. PUT 요청에 응답하여, 데이터 서비스 프론트엔드는 PUT 요청의 진위 여부를 결정할 수 있고, 즉, 사용자가 이러한 방식으로 요청을 제출한 경우, 요청받은 작동은 시스템에 의해 구현되는 인증 정책에 따라 수행될 수 있다.
도 3에서, 이러한 진위 결정이 이루어질 수 있는 결정의 예시적 예가 도시된다. 이러한 특정 예에서, 데이터 서비스 프론트엔드는 인증 서비스에 인증 요청을 제출한다. 인증 서비스는 인증 요청을 이용하여, 사용자로부터의 PUT 요청의 진위 여부를 결정할 수 있다. 요청이 진짜일 경우, 인증 서비스는 데이터 서비스 프론트엔드에 인증 증거를 제공할 수 있다. 인증 증거는 진짜 요청을 수신하였음을 독립적으로 결정하기 위해, 암호 기법 서비스와 같은, 다른 서비스에 의해 이용가능한, 전자 토큰 또는 기타 정보일 수 있다. 한가지 예시적 예에서, PUT 요청은 PUT 요청에 대한 시그너처와 함께 전송된다. PUT 요청 및 그 서명은 인증 서비스를 통해 제공되며, 이는 진짜일 경우 시그너처가 되어야하는 것을 독립적으로 컴퓨팅하는, 인증 서비스를 통해 제공된다. 인증 서비스에 의해 발생된 시그너처가 사용자에 의해 제공된 시그너처와 일치할 경우, 인증 서비스는 PUT 요청이 진짜였음을 결정할 수 있고, 응답으로 인증 증거를 제공할 수 있다. PUT 요청의 진위 여부 결정은 정책 집행과 연계하여 하나 이상의 작동을 또한 포함할 수 있다. 예를 들어, 시그너처가 유효하지만 정책이 PUT 요청이 완료될 수 없음을 정책이 표시할 경우(가령, 요청이 정책에 의해 거절된 시간 동안 제출된 경우), 인증 서비스는 요청이 진짜가 아님을 표시하는 정보를 제공할 수 있다. (그러나, 이러한 정책 집행은 환경(300)의 다른 구성요소에 의해 수행될 수 있다). 인증 서비스는, 예를 들어, 인증 서비스 및 사용자에 의해 공유되는 키를 이용함으로써, 시그너처를 발생시킬 수 있다. 인증 증거는, 언급한 바와 같이, 암호 기법 서비스와 같은 다른 서비스가, 요청이 진짜임을 독립적으로 검증할 수 있도록 하는, 정보일 수 있다. 예를 들어, 도 3에 도시되는 암호 기법 서비스의 예를 이용하여, 인증 증거는, 다른 서비스에 액세스불가능한 키와 같이, 인증 서비스 및 암호 기법 서비스 모두에 의해 공유되는 키에 적어도 부분적으로 기초하여 발생될 수 있다.
도 3에 도시되는 바와 같이, 데이터 서비스 프론트엔드는, 인증 서비스로부터 인증 증거 수신시, 암호 기법 서비스에 평문 및 인증 증거를 제공한다. 평문 및 인증 증거는 암호 기법 서비스에 대한 API 콜 또는 기타 전자적 요청(가령, Encrypt API 콜)에 따라 제공될 수 있다. 암호 기법 서비스는 평문 암호화 여부를 결정하기 위해 인증 증거를 분석할 수 있다.
추가적인 정보가 암호 기법 서비스에 제공될 수 있다. 예를 들어, 평문 암호화에 사용될 키의 식별자는 데이터 서비스 프론트엔드로부터 API 콜에 대한 입력 파라미터로 제공될 수 있다(데이터 서비스 프론트엔드는 물론, 사용자로부터 식별자를 수신하였을 수 있다). 그러나, 식별자가 암호기법 서비스에 전송되지 않을 수 있음에 주목하여야 한다. 예를 들어, 다양한 실시예에서, 그렇지 않을 경우, 평문의 암호화에 어느 키를 이용할 지를 결정가능할 수 있다. 예를 들어, 데이터 서비스 프론트엔드로부터 암호 기법 서비스로 전송되는 정보는 사용자의 식별자와 같은, 사용자와 연관된 정보, 및/또는, 사용자가 고객을 대행하여 PUT 요청을 제출한 경우의 고객의 식별자와 같은, 사용자와 연관된 조직을 포함할 수 있다. 이러한 정보는 사용될 디폴트 키를 결정하기 위해 암호 기법 서비스에 의해 사용될 수 있다. 다시 말해서, 키는 키 결정을 위해 이용가능한 정보에 의해 암묵적으로 명시될 수 있다. 일반적으로, 사용될 키 결정은 임의의 적절한 방식으로 수행될 수 있다. 더욱이, 일부 실시예에서, 암호 기법 서비스는 키를 생성 EH는 선택할 수 있고, 나중에 사용될 생성 또는 선택된 키의 식별자를 제공할 수 있다. 다른 예의 API 파라미터는 암호화 작동이 현재 수행되고 있는 고객 계정에 대한 마스터 키의 식별자일 수 있다.
도 3에 도시되는 바와 같이, 인증 증거가 평문의 암호화를 위한 암호 기법 서비스에 충분한 경우, 암호 기법 서비스는 하나 이상의 암호 기법 작동을 수행할 수 있다. 일 실시예에서, 하나 이상의 암호 기법 작동은 평문 암호화에 사용될 엔빌롭 키를 생성하기 위한 작동을 포함할 수 있다. 엔빌롭 키는 임의적으로 발생된 대칭 키, 또는 키 쌍의 프라이빗 키일 수 있다. 엔빌롭 키가 생성된 후, 암호 기법 서비스는 API 콜에 명시된 마스터 키로 엔빌롭 키를 암호화할 수 있고, 암호화된 엔빌롭 키를 (가령, 저장 서비스 또는 그외 다른 지속가능한 스토리지에 암호화된 키를 저장함으로써) 지속적으로 저장하거나 폐기할 수 있다. 추가적으로, 암호 기법 서비스는 엔빌롭 키의 평문 버전 및 암호화된 엔빌롭 키를 데이터 서비스 프론트엔드에 전송할 수 있다. 데이터 서비스는 그 후, 엔빌롭 키의 평문 버전을 이용하여 평문(즉, 암호화 요청과 연관된 데이터)을 암호화할 수 있고, 엔빌롭 키의 암호화에 사용되는 마스터 키의 식별자와 연계하여 영구 스토리지에 엔빌롭 키를 저장할 수 있다. 추가적으로, 데이터 서비스는 엔빌롭 키의 평문 버전을 폐기할 수 있다. 이와 같이, 일 실시예에서, 데이터 서비스가 엔빌롭 키의 평문 버전을 폐기 후, 더이상 암호문을 해역할 수 없을 것이다.
대안의 실시예에서, 암호 기법 작동은 평문의 암호화를 포함할 수 있다. 예를 들어, 암호 기법 서비스는 평문을 암호화하여 암호문을 데이터 서비스 프론트엔드 저장 시스템에 제공한다. 데이터 서비스 프론트엔드는 그 후, 작동에 따라 영구 저장을 위해 데이터 서비스 백엔드 저장 시스템에 암호문을 제공할 수 있다. 다른 정보가 데이터 서비스 프론트엔드로부터 데이터 서비스 백엔드 저장 시스템으로 또한 전송될 수 있다. 예를 들어, 암호문 생성을 위해 평문의 암호화에 사용되는 키의 식별자가, 데이터 서비스 백엔드 저장 시스템에 의한 저장을 위해 암호문과 함께 제공될 수 있다. 사용자 및/또는 사용자 조직을 식별하는 메타데이터와 같은 기타 정보가 또한 제공될 수 있다.
여기서 설명되는 모든 환경과 함께, 수많은 변형예가 본 발명의 범위 내에 있다고 간주된다. 예를 들어, 환경(300)의 다양한 구성요소들 간 정보 흐름은 도시되는 것으로부터 변할 수 있다. 예를 들어, 일 구성요소로부터 중간 구성요소를 통해 다른 구성요소로 흐르는 정보(가령, 인증 서비스로부터 암호 기법 서비스로의 데이터, 및/또는 암호 기법 서비스로부터 데이터 서비스 백엔드 저장 시스템으로의 데이터)는, 목표지에 직접, 또는, (도면에 반드시 포함되지는 않는) 환경(300)의 기타 중간 구성요소들을 통해, 제공될 수 있다. 다른 예로서, 설명 용도를 위해 PUT 요청((그리고 아래에서 GET 요청)이 제공된다. 그러나, 설명되는 작동을 수행하기 위한 임의의 적절한 요청이 사용될 수 있다.
도 4는 일 실시예에 따라 데이터 저장 서비스에 데이터를 저장하는데 사용될 수 있는 프로세스(400)의 예시적 예를 도시한다. 프로세스(400)는, 예를 들어, 도 3에 도시되는 데이터 서비스 프론트엔드에 의해 수행될 수 있다. 프로세스(400)(또는 여기서 설명되는 그외 다른 프로세스, 또는 변형예, 및/또는 이들의 조합)의 일부 또는 전부가 실행가능 명령어로 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에 수행될 수 있고, 그리고, 하나 이상의 프로세서 상에서 집합적으로 실행되는 코드(가령, 실행가능 명령어, 하나 이상의 컴퓨터 프로그램, 또는, 하나 이상의 애플리케이션)로, 또는, 하드웨어적으로, 또는 두가지의 조합으로, 구현될 수 있다. 코드는 예를 들어, 하나 이상의 프로세서에 의해 실행가능한 복수의 명령어를 포함하는 컴퓨터 프로그램 형태로, 컴퓨터-판독가능 저장 매체 상에 저장될 수 있다. 컴퓨터 판독가능 저장 매체는 비-일시적일 수 있다.
도 4에 도시되는 바와 같이, 프로세스(400)는 PUT 요청을 수신하는 단계(402)를 포함한다. PUT 요청은 네트워크를 통해 전자적으로 수신될 수 있고, PUT 요청의 전자 시그너처와 같은, 인증에 요구되는 정보처럼, 요청과 연관된 정보를 포함할 수 있다. PUT 요청을 수신함에 응답하여, 프로세스(400)는 인증 요청을 제출하는 단계(404)를 포함할 수 있다. 예를 들어, 프로세스(400)에서 수행된 시스템이 도 3과 연계하여 앞서 설명한, 별도의 인증 서비스에 인증 요청을 (가령, 적절히 구성된 API 콜을 통해) 제출할 수 있다. 마찬가지로, 자체 인증을 수행하는 데이터 서비스 프론트엔드는 데이터 서비스 프론트엔드에 의해 구현되는 인증 모듈에 인증 요청을 제출할 수 있다. 일반적으로, 인증 요청은 다양한 실시예에 따라 임의의 적절한 방식으로 제출될 수 있다.
인증 요청 제출시, 인증 응답이 인증 요청을 제출한(404) 실체에 의해 수신된다(406). 예를 들어, 도 3을 참조하면, 인증 서비스는 다른 서비스에 의한 이용을 위해 인증 증거를 포함하는 응답을 데이터 서비스 프론트엔드에 제공할 수 있다. 인증의 성공 여부 표시와 같은, 다른 정보가 또한 전송될 수 있다. 요청의 진위 여부에 관한 결정이 이루어질 수 있다(408). 요청의 진위는 이러한 점검을 집합적으로 수행하는 실체들의 조합, 또는, 인증 서비스에 의해서와 같이, 실체에 의해 점검되는 하나 이상의 요인으로부터 좌우될 수 있다. 진본성은 예를 들어, 요청이 필요한 유효 크리덴셜을 제공함을 요구할 수 있고(점검 실체에 의해 공유되는 비밀 키에 의해 발생된 전자 시그너처), 및/또는, 정책에 따라 요청이 충족될 것을 요구할 수 있다. 인증 요청을 제출(404)하고 인증 응답을 수신하는 시스템의 관점으로부터, 진위(진본성)은 수신된 인증 응답으로부터 좌우될 수 있다. 따라서, 일 실시예에서, 요청의 전위 여부 결정(408)은 수신되는 인증 응답에 적어도 부분적으로 기초하여 수행될 수 있다. 예를 들어, 인증이 진짜가 아닌 경우, 인증 응답은 이를 표시하고, 결정(408)이 이에 따라 이루어질 수 있다. 마찬가지로, 응답은 가령, 요청이 요청이 진짜인 경우 포함될 정보를 포함시키지 않음으로써, 인증 요청이 진짜임을 암묵적으로 표시할 수 있다. PUT 요청이 진짜가 아니라고 결정(408)되면, PUT 요청이 거부될 수 있다(410). PUT 요청 거부는 임의의 적절한 방식으로 수행될 수 있고, 프로세스(400)가 수행되고 있는 다양한 실시예에 좌우될 수 있다. 예를 들어, PUT 요청 거부(410)는, PUT 요청을 제출한 사용자에게 메시지를 전송하는 단계를 포함할 수 있다. 메시지는 요청이 거부되었음을 표시할 수 있다. 요청 거부는 진짜가 아니거나 비인가의 PUT 요청을 도출한 문제점을 해결하는 방식을 결정하는데 사용될 수 있는, 정확하지 않은 전자 시그너처 또는 기타 이유와 같이, 요청이 거부된 이유에 관한 정보의 제공을 또한 포함할 수 있다.
PUT 요청이 진짜이고 인가되었다고 결정(408)되면, 그 후, 일 실시예에서, 프로세스(400)는 평문의 암호화를 도출하는 하나 이상의 암호 기법 작동의 수행(412)을 포함한다. 예를 들어, 요청(가령, 적절히 구성된 API 콜)이 암호 기법 서비스에 제출되어, 하나 이상의 암호 기법 작동을 수행하기 위해 사용될 키를 제공할 수 있다. 암호 기법 서비스에 제공되는 요청은 PUT 요청이 진짜라는 증거와 함께 제공될 수 있어서, 암호 기법 서비스는 암호 기법 작동(가령, 평문의 암호화 및 암호문의 제공, 또는, 평문 암호화에 사용될 수 있는 엔빌롭 키 생성)의 수행 여부를 독립적으로 결정할 수 있게 된다. 그러나, 다양한 실시예에서, 인증 증거가 암호 기법 서비스에 제공되지 않을 수 있고, 예를 들어, 암호 기법 서비스는 수신하는 요청에 따라 작동할 수 있다. 예를 들어, 암호 기법 서비스가 데이터 서비스 프론트엔드로부터의 요청을 수신할 경우, 암호 기법 서비스는 데이터 서비스 프론트엔드가 요청의 인증을 이미 독립적으로 검증하였다는 사실에 의존할 수 있다. 이러한 실시예 및 기타 실시예에서, 데이터 서비스 프론트엔드는 추가 보안층 제공을 위해 암호 기법 서비스로 자체를 인증할 수 있다. 암호 기법 서비스는 키를 생성 또는 그렇지 않을 경우 획득할 수 있고, 획득된 키를 암호화하거나 그렇지 않을 경우 (가령, 메모리로부터) 암호화된 키를 획득할 수 있으며, 요청에 응답하여 획득된 키 및 암호화된 획득된 키를 제공할 수 있다. 획득된 키는 암호 기법 서비스에 대한 요청에서 식별된 키를 이용하여 암호화될 수 있다. 획득된 키는 평문 암호화에 사용될 수 있고, 평문 암호화 후, 획득된 키가 폐기될 수 있다(가령, 메모리로부터 회복불가능하게 제거될 수 있다). 대안의 실시예에서, 프로세스(400)를 수행하는 시스템은 하나 이상의 암호 기법 작동 수행에 사용되는 키를 생성 또는 그렇지 않을 경우 획득할 수 있고, 암호화될 획득된 키를 암호 기법 서비스에 제공할 수 있다.
일부 실시예에서, 하나 이상의 암호 기법 작동 수행은 암호문의 생성으로 이어질 수 있다. 하나 이상의 암호 기법 작동의 결과로 생성되는 암호문은 나중에 가능한 불러오기를 위해 저장될 수 있다(414). 앞서 언급한 바와 같이, 암호문 저장은 나중에 암호문을 해역할 추가 정보의 저장을 포함할 수 있다. 예를 들어, 암호문은 평문을 암호문으로 암호화하는데 사용되는 키의 식별자와 함께 저장되어, 상기 식별자를 가진 키가 평문 획득을 위해 후에 암호문의 해역에 사용될 수 있게 된다. 암호문 저장은 임의의 적절한 방식으로 또한 수행될 수 있다. 예를 들어, 암호문 저장은 앞서 설명한 바와 같이, 데이터 서비스 백엔드 저장 시스템에 의해 수행될 수 있다.
따라서, 도 5는 환경(500)의 예시적 예와, 평문을 획득하는 방법을 설명하는 정보의 흐름을 도시한다. 본 예의 환경(500)은 인증 서비스, 암호 기법 서비스, 데이터 서비스 프론트엔드, 및 데이터 서비스 백엔드 저장 시스템을 포함한다. 인증 서비스, 암호 기법 서비스, 데이터 서비스 프론트엔드, 및 데이터 서비스 백엔드 저장 시스템은 앞서 설명한 바와 같은 시스템일 수 있다. 도 5에 도시되는 바와 같이, 데이터 서비스 프론트엔드는 사용자로부터 GET 요청을 수신하도록 그리고 응답으로 평문을 제공하도록 구성된다. 이를 위해, 데이터 서비스 프론트엔드는 인증 서비스에 인증 요청을 제출하도록 또한 구성될 수 있고, 인증 서비스는 자체적으로, 적절한 경우에, 데이터 서비스 프론트엔드에 인증 증거를 제공하도록 구성될 수 있다. 데이터 서비스 프론트엔드는 데이터 해역에 관한 하나 이상의 암호 기법 작동을 실행시키기 위한 요청을 암호 기법 서비스에 전송하도록 또한 구성될 수 있다. 엔빌롭 키가 사용되는 실시예에서, 데이터 서비스는 암호화된 엔빌롭 키(또는 암호화된 엔빌롭 키의 식별자), 인증 증거, 암호 기법 서비스에 대한 엔빌롭 키의 암호화에 사용되는 마스터 키의 식별자를 포함하거나 명시하는 요청(가령, API 콜)을 암호 기법 서비스에 제출할 수 있다. 암호 기법 서비스는 인증 증거가 작동 수행에 충분한 지, 그리고 인증 증거가 엔빌롭 키 해역에 충분한 지 여부를 결정할 수 있다. 해역된 엔빌롭 키는 데이터 서비스에 다시 전송될 수 있고, 데이터 서비스는 이 키를 이용하여 암호화된 평문을 해역할 수 있다. 데이터 서비스는 그 후, 해역된 평문 키를 폐기할 수 있다.
대안의 실시예에서, 데이터 서비스 프론트엔드는 암호 기법 서비스가 해역할 암호문과 함께, 암호 기법 서비스에 수신된 인증 증거를 제공하도록 구성될 수 있다. 암호 기법 서비스는, 따라서, 인증 증거가 암호문 해역에 충분한지, 그리고, 인증 증거가 (데이터 서비스 프론트엔드에 의해 암호 기법 서비스에 식별될 수 있는) 적절한 키를 이용한 암호문 해역에 충분한지, 그리고 해역된 암호문(평문)을 데이터 서비스 프론트엔드에 제공하기에 충분한지 여부를 결정하도록 구성될 수 있다. 암호 기법 서비스에 암호문 제공을 위해, 데이터 서비스 프론트엔드는 데이터 서비스 백엔드 저장 시스템으로부터 (가령, 적절히 구성된 API 콜을 통해) 암호문을 획득하도록 구성될 수 있다.
도 6은 다양한 실시예에 따라 평문 획득에 사용될 수 있는 프로세스(600)의 예시적 예를 도시한다. 프로세스(600)는 예를 들어, 도 5에서 앞서 예시한 데이터 서비스 프론트엔드 시스템(데이터 서비스 프론트엔드)에 의해, 수행될 수 있지만, 프로세스(600) 및 그 변형예는 임의의 적절한 시스템에 의해 수행될 수 있다. 일 실시예에서, 프로세스(600)는 사용자로부터 GET 요청(또는 다른 적절한 요청의 수신(602)을 포함한다. GET 요청 수신은 다른 타입의 요청과 연계하여 앞서 설명한 바와 같이 수행될 수 있다. GET 요청 수신(602) 시, 인증 요청이 앞서 설명한 바와 같은 방식으로 또는 인증 서비스에 제출될 수 있다(604). 따라서, 인증 응답이 수신될 수 있다. 수신된 인증 응답에 적어도 부분적으로 기초하여, GET 요청의 진위 여부에 관한 결정(608)이 이루어질 수 있다. GET 요청이 진짜가 아니라고 결정(608)될 경우, 프로세스(600)는 앞서 설명한 바와 같이, 다양한 실시예에 따라 다양한 방식으로 수행될 수 있는 요청 거부(610)를 포함할 수 있다.
GET 요청이 진짜라고 결정(608)되면, 프로세스(600)는 스토리지로부터 암호문 불러오기를 포함할 수 있다. 스토리지로부터 암호문 불러오기(612)는 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 도 5와 연계하여 앞서 논의한 환경(500)을 참조하면, 데이터 서비스 프론트엔드는 데이터 서비스 백엔드 저장 시스템에 암호문 요청을 제출할 수 있고, 응답으로 암호문을 수신할 수 있다. 일반적으로, 암호문은 임의의 적절한 방식으로 스토리지로부터 획득될 수 있다. 암호문 수신시, 프로세스(600)는 암호문 해역에 관한 하나 이상의 작동의 수행(614)을 포함할 수 있다. 예를 들어, 일 실시예에서, 데이터 저장 서비스는 암호문 해역에 관한 하나 이상의 암호 기법 작동을 수행(614)하기 위한 요청을 암호 기법 서비스에 전송할 수 있다. 일례의 구조에서, 데이터 서비스는 암호화된 엔빌롭 키(또는 암호화된 엔빌롭 키의 식별자), 인증 증거, 및 암호 기법 서비스에 대한 엔빌롭 키의 암호화에 사용되는 마스터 키의 식별자를 포함하는 API 콜을 암호 기법 서비스에 전송할 수 있다. 암호 기법 서비스는 인증 증거가 작동 수행에 충분한지, 그리고 인증 증거가 엔빌롭 키 해역에 충분한지 여부를 결정할 수 있다. 해역된 엔빌롭 키는 데이터 서비스에 다시 전송될 수 있고, 이는 이 키를 이용하여 암호화된 평문을 해역할 수 있다.
다른 구조에서, 암호문은 도 5와 연계하여 앞서 설명한 암호 기법 서비스와 같은 암호 기법 서비스에 제공될 수 있다. 다른 정보는 암호문의 해역 여부 결정을 위해 암호 기법 서비스에 의해 사용될 수 있는 인증 증거와 같은 다른 정보가 암호 기법 서비스에 또한 제공될 수 있다. 추가적으로, 일부 실시예에서, 암호문 해역을 위해 암호 기법 서비스에 의해 사용될 키의 식별자가, 암호 기법 서비스에 제공될 수 있다. 그러나, 다른 실시예에서, 키는 암호 기법 서비스에 암묵적으로 표시될 수 있다. 예를 들어, 암호 기법 서비스는 암호 기법 서비스에 표시된 고객과 관련된 디폴트 키를 이용할 수 있다. 일반적으로, 암호문 해역에 어느 키가 사용될 지 암호 기법 서비스로 결정하는 방식은 임의의 방식이 사용될 수 있다.
도 6에 도시되는 바와 같이, 암호문 해역 후, 프로세스(600)는 GET 요청에 대한 응답의 제공(616)을 포함할 수 있다. GET 요청에 대한 응답 제공은, 다양한 실시예에 따라 다양한 방식으로 수행될 수 있다. 예를 들어, GET 요청에 대한 응답 제공은 평문 제공을 포함할 수 있다. 다른 실시예에서, 평문은 GET 요청에 대한 응답으로 제공되는 다른 암호화된 정보의 해역에 사용되는 키일 수 있다. 일반적으로, 발명의 특정 실시예에서 평문의 역할에 따라, GET 요청에 대한 응답 제공이 다양한 방식으로 수행될 수 있다.
상술한 바와 같이, 본 발명의 다양한 실시예는 데이터를 다양한 방식으로 데이터 저장 서비스에 의해 저장할 수 있다. 도 7은 이러한 실시예에 따라 정보 흐름을 표시하는 화살표를 가진, 환경(700)의 예시적 예를 도시한다. 도 7에 도시되는 바와 같이, 환경(700)은 앞서 설명한 바와 같이, 인증 서비스, 암호 기법 서비스, 데이터 서비스 프론트엔드, 및 데이터 서비스 백엔드 저장 시스템을 포함한다. 본 특정 예에서, 데이터 서비스 프론트엔드는 다양한 사용자로부터 PUT 요청을 수신하도록 구성되는 컴퓨터 시스템이다. PUT 요청은 데이터 서비스 백엔드 저장 시스템에 의해 저장될 데이터 객체를 포함 또는 명시할 수 있다. PUT요청은 데이터 객체의 암호화에 사용될 키에 대한 키 식별자를 또한 명시할 수 있다. 데이터 서비스 프론트엔드는 앞서 설명한 바와 같이 인증 서비스와 상호작용하도록 또한 구성되어, 키 및 키 식별자를 수신하도록, 그리고 키 식별자에 의해 식별된 키에 의해 암호화된 키를 응답으로 제공하도록, 작동가능한 암호 기법 서비스에 인증 증거를 제공할 수 있다. 데이터 서비스 프론트엔드는 그 후, 데이터 서비스 백엔드 저장 시스템에 저장을 할 수 있다. 저장될 수 있는 데이터는 키에 의해 암호화되는 데이터 객체를 포함할 수 있다. 저장될 수 있는 데이터는 키 식별자에 의해 식별되는 키에 의해 암호화된 키를 또한 포함할 수 있다. 그외 다른 곳에서 논의되는 바와 같이, 여기서, 암호화된 데이터 객체 및 암호화된 키는 서로 다른 서비스에 저장될 수 있다.
도 7에 도시되는 바와 같이, 데이터 서비스 프론트엔드는 저장을 위해 데이터 서비스 백엔드 저장 시스템에 암호화된 정보를 제공하도록 구성된다. 본 예에서, 데이터 서비스 프론트엔드는 키 하에 암호화된 데이터 객체와, KeyID를 가진 다른 키 하에서 암호화된 키를 제공하도록 구성된다. 설명을 위해, 중괄호 표시는 암호화를 표시하는데 사용된다. 특히, 중괄호 내부의 정보는 첨자로 명시된 키 하에 암호화된 정보다. 예를 들어, {Data Ojbect}Key는 데이터 "Data Object"가 키 "Key" 하에서 암호화됨을 표시한다. 키 식별자는 이러한 중괄호 표시를 이용하여 첨자로 또한 나타날 수 있다. 키 식별자가 첨자로 나타날 때, 중괄호 내부의 정보는 키 식별자에 의해 식별되는 키 k 하에서 암호화된다. 예를 들어, {Data Ojbect}KeyID는 데이터 객체 "Data Object"가 키 식별자 "KeyID"에 의해 식별되는 키 하에서 암호화됨을 표시한다. 마찬가지로, {Key}KeyID는 키 "Key"가 키 식별자 "KeyID"에 의해 식별되는 키 하에서 암호화됨을 표시한다. 다시 말해서, 이러한 개시내용은 첨자로 키 및 키 식별자를 이용할 수 있고, 첨자의 의미는 범주로부터 명백해야 한다. 암호문은 관련 해역 키의 신원을 결정하는데 사용가능한 추가 메타데이터를 포함할 수 있다.
도 8은 도 7과 연계하여 앞서 설명한 데이터 서비스 백엔드 저장 시스템과 같은, 데이터 저장 시스템에 데이터 객체를 저장하기 위해 수행될 수 있는 프로세스(800)의 예시적 예를 도시한다. 프로세스(800)는 도 7과 연계하여 앞서 설명한 데이터 서비스 프론트엔드 시스템에 의해서와 같이, 임의의 적절한 시스템에 의해 수행될 수 있다. 일 실시예에서, 프로세스(800)는 데이터 객체에 대한 PUT 요청의 수신(802)을 포함할 수 있다. 데이터 객체에 대한 PUT 요청 수신은 앞서 설명한 바와 같이, 임의의 적절한 방식으로 수행될 수 있다. 데이터 객체는 요청과 연계하여 수신될 수도 있고, 다른 서비스로부터 수신될 수도 있다. 예를 들어, 요청은 식별자를 이용하여 다른 서비스로부터 획득될 수 있는 데이터 객체의 식별자를 포함할 수 있다. 앞서 설명한 타 프로세스와 마찬가지로, 일 실시예의 프로세스(800)는 인증 요청 제출(804)과 인증 응답 수신(806)을 포함한다. 수신(806)된 인증 응답을 이용하여, PUT 요청이 진짜 요청인지 여부를 결정할 수 있다(808). PUT 요청이 진짜가 아니라고 결정(808)되면, 프로세스(800)는 앞서 설명한 바와 같이 요청 거부(810)를 포함할 수 있다. PUT 요청이 진짜임이 결정(808)될 경우, 프로세스(800)는 엔빌롭 키의 암호화에 사용되는 마스터 키의 키ID와 같은, 키 식별자(KeyID)의 획득(812)을 포함할 수 있다. KeyID 획득(812)은 다양한 실시예에 따라 변할 수 있다. 예를 들어, 도 7에 도시되는 바와 같이, PUT 요청은 KeyID를 명시할 수 있다. 다른 예로서, 사용자의 신원, 또는 그렇지 않을 경우, 사용자와 연관된 신원을 이용하여 식별자 또는 디폴트 키를 획득할 수 있다. 다른 예로서, 암호문이 관련 키 ID의 표시를 제공할 수 있다. 또 다른 예로서, 하나 이상의 정책 결정을 이용하여, 어느 식별자를 획득할지를 결정할 수 있다.
일 실시예에서, 프로세스(800)는 엔빌롭 키와 같은 키의 생성(814)을 또한 포함한다. 키 생성은 예를 들어, 암호 기법 서비스에 의해, 또는, 암호 기법 서비스로부터 암호화 작동을 요청하는 서비스(가령, 데이터 저장 서비스)에 의해, 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 키는 키 도출 함수에 대한 적절한 입력을 이용하여 키 도출 함수를 이용하여 발생될 수 있다. 예시의 키 도출 함수는 IEEE Std 1363 2000에서 규정된 KDFl, ANSI X9.42에서 규정된 키 도출 함수, RFC 5869에서 명시된 HMAC-기반 Extract-and-Expand 키 도출 함수(HKDF)와 같은 HMAC-기반 키 도출 함수를 포함한다. 다른 예로서, 키는 난수 또는 의사 난수 발생기, 하드웨어 엔트로피 소스, 또는 결정론적 랜덤 비트 발생기(가령, NIST SP(National Institute of Standards and Technology Special Publication)에 의해 명시됨) 에 의해 발생될 수 있다(800-90A). 도 8이 키 발생(814)을 포함하는 프로세스(800)를 도시하지만, 키는 스토리지로부터 불러오기에 의해서와 같이, 다른 방식으로 획득될 수 있다. 다시 말해서, 키는 미리 생성되어 있을 수 있다.
계속하여 도 8에 도시되는 프로세스(800)의 일 실시예에서, 프로세스(800)는 데이터 객체 암호화를 위해 생성된 키의 이용(816)을 포함한다. 예를 들어, 암호 기법 서비스가 키를 발생시키는 실시예에서, 암호 기법 서비스는 키, KeyID, 및 키의 암호화된 사본을 데이터 서비스에 제공할 수 있다. 예를 들어, 도 7을 참조하면, 데이터 서비스 프론트엔드는 엔빌롭 키와, 암호 기법 서비스로부터 엔빌롭 키의 해역에 사용되는 마스터 키에 대한 KeyID를, 인증 증거와 같은 그외 다른 관련 정보와 함께 수신할 수 있다. 암호화 키의 평문 사본은 그 후 데이터 객체의 암호화에 사용될 수 있다. 암호화 키의 평문 사본은 폐기될 수 있고, 암호화된 데이터 객체 및 암호화된 키가 그 후 저장(818)될 수 있다. 예를 들어, 도 7을 참조하면, 데이터 서비스 프론트엔드는 암호화된 데이터 객체 및 암호화된 키를 저장을 위해 데이터 서비스 백엔드 저장 시스템에 전송할 수 있다. 서비스가 키를 발생시키는 구조에서, 서비스는 암호 기법 서비스에 키 및 KeyID를 제공할 수 있다. 예를 들어, 데이터 서비스 프론트엔드는 엔빌롭 키와, 엔빌롭 키의 암호화에 사용되는 마스터 키에 대한 KeyID를 암호 기법 서비스에, 인증 증거와 같은 다른 관련 정보와 함께 전송할 수 있다. 암호화 키의 평문 사본을 그 후 이용하여 데이터 객체를 암호화할 수 있다. 서비스는 암호화 키의 평문 사본을 폐기할 수 있고, 암호화된 데이터 객체 및 암호화된 키가 그 후 저장될 수 있다. 예를 들어, 도 7을 참조하면, 데이터 서비스 프론트엔드는 저장을 위한 데이터 서비스 백엔드 저장 시스템에 암호화된 데이터 객체 및 암호화된 키를 전송할 수 있다.
암호화된 데이터 객체 및 암호화된 엔빌롭 키는 키의 평문 버전없이 저장될 수 있다 - 즉, 평문 키는 데이터 서비스 백엔드 저장 시스템 및 하나 이상의 다른 시스템에 액세스불가능할 수 있다. 데이터 객체 암호화 시의 키(가령, 마스터 키)는 임의의 적절한 방식으로 액세스불가능하게 만들어질 수 있다. 일부 실시예에서, 이는 암호 기법 서비스에만 액세스가능하게 메모리에 저장함으로써 실현된다. 일부 다른 실시예에서, 이는 하드웨어 또는 기타 보안 모듈에 마스터 키를 저장함으로써, 또는, 그렇지 않을 경우, 하드웨어 또는 기타 보안 모듈의 보호 하에, 실현될 수 있다. 일부 실시예에서, 평문 엔빌롭 키를 저장하는 메모리 위치(가령, 데이터 서비스의 메모리)를 덮어쓸 수 있고, 또는, 키를 저장하는 메모리 위치를 의도적으로 덮어써서, 데이터 서비스 프론트엔드에 대한 키의 액세스를 불가능하게 한다. 다른 예로서, 평문 엔빌롭 키는 궁극적으로 키 저장을 중단하는 휘발성 메모리에서 유지될 수 있다. 이러한 방식으로, 엔빌롭 키는 KeyID에 의해 식별되는, (또는 그렇지 않을 경우, 연산적으로 비실용적일 수 있는 KeyID에 의해 식별되는 키없이, 키를 크랙함으로써와 같이, 비인가 방식으로 획득되는) 키를 이용하여 해역될 경우에만 액세스가능하다. 다시 말해서, KeyID에 의해 식별되는 키는 데이터 객체의 암호화시 키에 대한 인가된 액세스를 위해 요구된다. 따라서, 도 7의 데이터 서비스 백엔드 저장 시스템이 절충될 경우, 이러한 절충은 데이터 객체의 해역이 키에 대한 액세스를 요구할 것이기 때문에, 암호화되지 않은 데이터 객체에 대한 액세스를 제공하지 않을 것이며, 이는 KeyID에 의해 식별되는 키를 이용하여 해역을 통해서만, 또는, 연산적으로 가능하지 않은 다른 방식을 통해, 획득가능하다.
앞서 언급한 바와 같이, 본 발명의 다양한 실시예에서는 사용자가 안전한 방식으로 데이터 객체를 저장 및 불러올 수 있다. 따라서, 도 9는 스토리지로부터 데이터 객체의 획득에 사용될 수 있는 환경(900)의 예시적 예를 도시한다. 도 9에 도시되는 바와 같이, 환경(900)은 인증 서비스, 암호 기법 서비스, 데이터 서비스 프론트엔드 시스템, 및 데이터 서비스 백엔드 저장 시스템을 포함한다. 인증 서비스, 암호 기법 서비스, 데이터 서비스 프론트엔드 및 데이터 서비스 백엔드 저장 시스템은 앞서 설명한 바와 같은 컴퓨터 시스템일 수 있다. 도 9에 도시되는 바와 같이, 데이터 서비스 프론트엔드 시스템은 데이터 객체 요청을 수신하도록 그리고 응답으로 데이터 객체를 제공하도록 구성될 수 있다. 응답으로 데이터 객체를 제공하기 위해, 본 실시예의 데이터 저장 프론트엔드 시스템은 도 9에 도시되는 바와 같은 인증 서비스, 암호 기법 서비스, 및 데이터 서비스 백엔드 저장 시스템과 상호작용하도록 구성된다. 예를 들어, 다양한 실시예에서, 데이터 서비스 프론트엔드 시스템은 인증 서비스에 인증 요청을 제출하도록, 그리고 요청에 응답하여 인증 증거를 수신하도록 구성된다. 다른 예로서, 데이터 서비스 프론트엔드는 인증 증거에 적어도 부분적으로 기초하여 키를 제공할 지 여부를 결정하도록, 그리고, 키 제공을 결정할 경우, 데이터 서비스 프론트엔드에 키를 제공하도록, 작동가능한 암호 기법 서비스에 KeyID에 의해 식별되는 키에 의해 암호화된 키 및 인증 증거를 제공하도록 구성된다. 데이터 서비스 프론트엔드는 KeyID와 같은 다른 정보를 암호 기법 서비스에 제공하도록 또한 구성될 수 있다. 그러나, 일부 실시예에서, 암호 기법 서비스에 제공되는 다른 정보와의 상관을 통해서와 같이, KeyID가 암호 기법 서비스에 암묵적으로 표시될 수 있다. 또한 주목할 사항으로서, 일부 실시예에서, 사용자는 데이터 서비스 프론트엔드에 요청 제출과 연계하여 데이터 서비스 프론트엔드에 KeyID를 제공한다. 또한, 도 9에 도시되는 바와 같이, 일 실시예의 데이터 서비스 프론트엔드는 데이터 서비스 백엔드 저장 시스템으로부터 데이터 객체를 요청하도록, 그리고, 키에 의해 암호화된 데이터 객체와, KeyID에 의해 식별되는 키에 의해 암호화된 키를 응답으로 수신하도록 구성된다. 일부 실시예에서, 암호 기법 서비스는 지정된 KeyID와 연계된 키를 이용하여 생성되지 않은 암호문의 해역 수행을 거절하도록 작동가능하다.
일 실시예에서, 데이터 서비스 프론트엔드는, 암호 기법 서비스로부터 수신되는 키를 이용하여 데이터 객체를 해역하고 해역된 데이터 객체를 사용자에게 제공하도록 구성된다. 따라서, 도 10은 다양한 실시예에 따라 해역된 객체를 제공하는데 사용될 수 있는 프로세스(1000)의 예시적 예를 도시한다. 프로세스(1000)는 도 9와 연계하여 설명되는 데이터 서비스 프론트엔드 시스템과 같은 임의의 적절한 시스템에 의해 수행될 수 있다. 일 실시예에서, 프로세스(1000)는 데이터 객체에 대한 GET 요청의 수신(1002)을 포함한다. 데이터 객체에 대한 GET 요청 수신은 다른 타입의 요청과 연계하여 앞서 설명된 것과 같이 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 데이터 객체에 대한 GET 요청은 요청 및/또는 기타 정보의 인증에 사용되는 정보를 포함할 수 있다. 따라서, 일 실시예에서, 프로세스(1000)는, 여기서 설명되는 다른 프로세스에서처럼, 인증 시스템에 대한 인증 요청 제출(1004)과, 인증 응답 수신(1006)을 포함한다. 인증 요청 제출과 인증 응답 수신은, 앞서 설명한 바와 같이, 임의의 적절한 방식으로 수행될 수 있다. 인증 응답을 이용하여, GET 요청의 진위 여부를 결정할 수 있다(1008). GET 요청이 진짜가 아니라고 결정(1008)되면, 일 실시예의 프로세스(1000)는 요청 거부(1010)를 포함한다. 그러나, GET 요청이 진짜라고 결정(1008)되면, 일 실시예의 프로세스(1000)는 암호화된 데이터 객체 및 암호화된 키를 스토리지로부터 불러오기(1012)를 포함한다. 예를 들어, 데이터 서비스 프론트엔드 시스템은 도 9와 연계하여 앞서 예시된 데이터 서비스 백엔드 저장 시스템으로부터 암호화된 데이터 객체 및 암호화된 키를 획득할 수 있다.
일 실시예에서, 프로세스(1000)는 암호 기법 서비스에 암호화된 엔빌롭 키의 제공(1014)을 포함한다. 암호 기법 서비스에 암호화된 엔빌롭 키 제공(1014)은 임의의 적절한 방식으로 수행될 수 있고, 암호 기법 서비스로 하여금 암호화된 키의 해역 여부를 결정할 수 있게 하는 인증 증거와 같은, 다른 정보와 함께 제공될 수 있다. 추가적으로, 암호 기법 서비스에 암호화된 엔빌롭 키 제공(1014)은 암호 기법 서비스에 의해 관리되는 복수의 키들 중에서 식별자에 의해 식별되는 키를 암호 기법 서비스로 하여금 식별하게 하도록, 암호화된 엔빌롭 키의 인가된 해역을 위해 요구되는 키의 식별자의 제공을 포함할 수 있다. 그러나 상술한 바와 같이, 키는 암묵적으로 식별될 수 있다. 암호 기법 서비스는 따라서, 적절한 키를 선택하여, 암호화된 키를 해역할 수 있다. 따라서, 일 실시예에서, 프로세스(1000)는 암호 기법 서비스로부터 해역된 엔빌롭 키의 수신(1016)을 포함한다. 예를 들어, 인증 증거가 유효하거나 및/또는 암호화의 해역이 임의의 적용가능 정책에 따라 허용가능하다고 암호 기반 서비스가 결정하면, 암호 기반 서비스가 데이터 객체의 해역을 시도하는 시스템에 해역된 키를 제공할 수 있다. 데이터 객체는 그 후 해역된 엔빌롭 키를 이용하여 해역될 수 있다(1018). 해역된 데이터 객체는 그 후, GET 요청을 제출한 사용자 또는 다른 시스템과 같은, 요청자에게 제공될 수 있다(1020).
많은 예에서, 사용자(즉, 일반적으로 암호 기법 서비스를 이용하는 디바이스)들이 암호 기법 서비스와 직접 상호작용하는 것이 바람직할 수 있다. 따라서, 도 11은 암호 기법 서비스에 대한 직접 사용자 액세스를 가능하게 하는 환경(1100)의 예시적 예를 도시한다. 환경(1100)에는 인증 서비스, 데이터 서비스 프론트엔드, 및 데이터 서비스 백엔드 저장 시스템이 포함된다. 인증 서비스, 데이터 서비스 프론트엔드, 및 데이터 서비스 백엔드 저장 시스템은, 앞서 설명한 바와 같을 수 있다. 예를 들어, 데이터 서비스 프론트엔드는 적절한 네트워크를 통해 도 11에 도시되는 바와 같이 사용자로부터의 요청을 수신 및 응답하도록 구성될 수 있다. 네트워크를 통한 사용자로부터의 요청에 대한 응답의 일부분으로, 데이터 서비스 프론트엔드는 사용자 요청의 진위 여부를 결정하기 위해, 및/또는 요청에 대한 정책을 집행하기 위해, 인증 서비스와 상호작용하도록 또한 구성될 수 있다. 데이터 서비스 프론트엔드는 사용자 요청 충족의 일부분으로 데이터 서비스 백엔드 저장 시스템과 상호작용하도록 또한 구성될 수 있다. 사용자 요청은 예를 들어, 백엔드 저장 시스템에 데이터를 저장하기 위한 PUT 요청과, 데이터 서비스 백엔드 저장 시스템으로부터 데이터를 불러오기 위한 GET 요청을 포함할 수 있다. 상술한 바와 같이, 데이터 서비스 백엔드 저장 시스템에 저장되는 데이터의 삭제 요청, 데이터 서비스 백엔드 저장 시스템에 저장된 데이터의 업데이트 요청, 등과 같이, 다른 요청들이 다양한 실시예에 따라 또한 사용될 수 있다.
도 11의 특정 예에서, 환경(1100)에서, 암호 기법 서비스는 암호 기법 서비스 프론트엔드 및 데이터 서비스 백엔드를 포함한다. 데이터 서비스 프론트엔드에서처럼, 암호 기법 서비스 프론트엔드는 네트워크를 통해 사용자로부터 요청을 수신 및 응답하도록 구성된다. 암호 기법 서비스 프론트엔드는 사용자 요청의 진위 여부 결정을 위해 인증 서비스와 상호작용하도록 또한 구성된다. 사용자 요청의 진위 여부 결정은 앞서 설명한 바와 같이 간단한 방식으로 수행될 수 있다. 암호 기법 서비스 프론트엔드 및 데이터 서비스 프론트엔드가 동일 인증 서비스와 상호작용하지만, 암호 기법 서비스 프론트엔드 및 데이터 서비스 프론트엔드가 서로 다른 인증 서비스와 상호작용할 수 있다. 더욱이, 암호 기법 서비스 프론트엔드는 사용자 요청에 응답할 때 정책을 집행하도록 구성될 수 있다.
일 실시예에서, 암호 기법 서비스 프론트엔드는 암호 기법 서비스 백엔드와 상호작용하도록 구성된다. 암호 기법 서비스 백엔드는 암호 기법 서비스 프론트엔드로부터 수신되는 명령어에 따라, 암호 기법 작동을 수행하도록 구성된다. 암호 기법 작동은 암호화, 해역, 및 해시 연산, 및 기타를 포함한다. 환경(1100)은, 예를 들어, 암호화된 데이터가 데이터 서비스 백엔드 저장 시스템에 저장될 수 있도록, 암호 기법 서비스에 의해 암호화되는 평문을 갖도록 사용자에 의해 사용될 수 있다. 환경(1100)의 이러한 이용의 예가 아래에 제공된다. 추가적으로, 예시적 암호 기법 서비스의 예시적 세부사항들이 또한 아래에 제공된다.
데이터는 앞서 설명한 것과 같이 임의의 적절한 방식으로 데이터 서비스 백엔드 저장 시스템에 저장될 수 있다. 예를 들어, 앞서 설명한 백엔드 저장 시스템에 암호화된 데이터를 저장하기 위한 기술이 환경(1100)에 사용될 수 있다. 예를 들어, 도시되지 않지만, 데이터 서비스 프론트엔드는 암호 기법 서비스 프론트엔드와 통신하여, 암호 기법 서비스 백엔드가 데이터를 암호화할 수 있게 하고, 이렇게 암호화된 데이터는 그 후, 데이터 서비스 백엔드 저장 시스템에 저장될 수 있다. 암호화된 데이터는 데이터 객체, 및/또는 데이터 객체의 암호화에 사용된 암호화된 키일 수 있다. 환경(1100)에서, 데이터는 물론 다른 방식으로 데이터 서비스 백엔드 저장 시스템에 배치될 수 있다. 예를 들어, 사용자는 암호 기법 서비스에 의해 암호화될 평문을 제공할 수 있고, 응답으로 암호문을 수신할 수 있다. 사용자는 그 후, 암호문을 데이터 서비스 백엔드 저장 시스템에 저장함을 요청하기 위해 데이터 서비스 프론트엔드와 상호작용하거나 요청을 제출할 수 있다. 본 예에서, 데이터 서비스 프론트엔드는 임의의 방식으로 암호문을 저장할 수 있다. 예를 들어, 데이터 서비스 프론트엔드 및 백엔드 저장 시스템은 데이터가 암호화되는지 여부에 무관심하도록 구성될 수 있다.
추가적으로, 여기서 예시되는 모든 환경에서처럼, 추가적인 프론트엔드 시스템은, 시스템들 간의 작용을 조율하기 위해, 사용자와 데이터 서비스 프론트엔드 및 암호 기법 서비스 프론트엔드 및 가능하다면 기타 프론트엔드 시스템 간에 논리적으로 위치할 수 있다. 예를 들어, 일부 실시예에서, 사용자는 사용자의 시각으로부터의 작동이 더 간단하도록 암호 기법 서비스 프론트엔드 및 데이터 서비스 프론트엔드와 자체적으로 상호작용하는 프론트엔드 시스템과 상호작용할 수 있다. 예를 들어, 사용자는 데이터 객체가 암호화 및 저장될 것을 요청할 수 있고, 프론트엔드 시스템은 암호 기법 서비스 프론트엔드 및 데이터 서비스 프론트엔드와의 적절한 상호작용에 의해 요청에 응답한다. 그러나, 사용자의 시각으로부터, 이는 단일 요청에 의해 수행될 수 있다. 다른 변화가 본 발명의 범위 내에 또한 존재한다.
도 12는 본 발명의 다양한 실시예의 구현에 사용될 수 있는 환경(1200)의 예시적 예를 도시한다. 도 12에서, 환경(1200)은 사용자가 데이터 서비스 백엔드 저장 시스템에 암호문을 저장하도록 구성된다. 따라서, 도 12에 도시되는 바와 같이, 환경(1200)은 데이터 서비스 프론트엔드, 데이터 서비스 백엔드 저장 시스템, 인증 서비스, 암호 기법 서비스 프론트엔드, 및 암호 기법 서비스 백엔드를 포함한다. 데이터 서비스 백엔드 저장 시스템, 데이터 서비스 프론트엔드, 인증 서비스, 암호 기법 서비스 프론트엔드, 및 암호 기법 서비스 백엔드는 도 11과 연계하여 앞서 설명한 것과 같은 시스템일 수 있다. 예를 들어, 도 12에 도시되는 바와 같이, 데이터 서비스 프론트엔드는 사용자 요청을 수신 및 응답하도록 구성되고, 사용자 요청에 대한 정책을 집행하도록 또한 구성될 수 있다. 데이터 서비스 프론트엔드는, 요청에 대한 응답의 일부분으로, 인증 서비스에 인증 요청을 제출하도록, 그리고, 응답으로 인증 증거를 수신하도록 구성될 수 있다. 인증 성공시, 데이터 서비스 프론트엔드는 데이터 서비스 백엔드 저장 시스템과 상호작용하여, 암호화된 데이터 객체 및 가능하다면, 암호화되지 않은 데이터 객체를 데이터 서비스 백엔드 저장 시스템으로부터 획득할 수 있고, 이는 그 후 사용자에게 제공될 수 있다.
도 12에 도시되는 바와 같이, 암호 기법 서비스 프론트엔드는 인증 서비스에 인증 요청을 제출하도록, 그리고 응답으로, 인증 증거를 수신하도록 또한 구성된다. 인증 증거를 이용하여, 암호 기법 서비스 백엔드로부터 서비스를 획득할 수 있다. 예를 들어, 암호 기법 서비스 프론트엔드는 인증 증거와 함께 암호 기법 서비스 백엔드에 암호문을 제공하도록 구성될 수 있고, 암호 기법 서비스 백엔드는 암호문을 해역하도록, 그리고, 리턴으로 암호문을 제공하도록 구성될 수 있다. 도 12에 도시되는 바와 같이, 암호문은 암호화된 키일 수 있고, 암호 기법 서비스 백엔드는 암호화된 키를 해역할 수 있고 해역된 키, 즉, 평문 키를 암호 기법 서비스 프론트엔드에 제공할 수 있으며, 이는 사용자에게 평문 키를 제공하도록 또한 구성된다. 그 후 사용자는 키를 이용하여, 데이터 서비스 프론트엔드로부터 수신된 암호화된 데이터 객체를 해역할 수 있고, 또는, 사용자 도메인 내에(가령, 사용자-작동 또는 사용자-제어 데이터 센터 또는 컴퓨터 시스템 내에) 저장된 암호화된 데이터 객체를 해역할 수 있다. 본 예에서, 사용자는 데이터 서비스 프론트엔드로부터 암호화된 키를 얻었을 수 있다. 예를 들어, 사용자는 데이터 객체의 암호화에 사용되는 키 및/또는 데이터 객체에 대한 요청을 데이터 서비스 프론트엔드에 제출하였을 수 있다. 도 11에 단일 요청으로 도시되지만, 데이터 객체 및 키 모두에 대해 개별적 요청들이 이루어질 수 있다. 도 11에 도시되는 바와 같이, 데이터 서비스 프론트엔드는 데이터 서비스 백엔드 저장 시스템으로부터 암호화된 데이터 객체 및 암호화된 키를 획득할 수 있고, 사용자에게 암호화된 데이터 객체 및 암호화된 키를 제공할 수 있다.
여기서 도시되는 모든 환경에서처럼, 변형예들이 본 발명의 범위 내에 있다고 간주된다. 예를 들어, 도 12는 키 하에 암호화된 데이터 객체와, 사용자에게 제공되는 키 식별자에 의해 식별되는 다른 키에 의해 암호화된 상기 키를 도시한다. 추가 레벨의 암호화가 또한 사용될 수 있다. 예를 들어, 데이터 객체는 사용자에게만 액세스가능한(및/또는 환경(1200)의 다른 구성요소에 의해 액세스가능하지 않은) 키 하에서 암호화될 수 있다. 데이터 객체의 암호화에 사용되는 키는, 사용자에게만 액세스가능한 키 하에서 또한 암호화될 수 있다. 본 예에서, 환경(1200)의 구성요소에 대한 비인가 액세스는, 사용자의 키에 대한 액세스가 인가 해역에 여전히 요구되기 때문에, 데이터 객체의 암호화되지 않은 콘텐츠에 대한 액세스를 여전히 제공하지 않을 것이다.
다른 예로서, 도 12에 도시되는 환경(1200)c에서, 데이터 서비스 프론트엔드 및 데이터 서비스 백엔드 저장 시스템은 데이터 서비스 프론트엔드 및 데이터 서비스 백엔드 저장 시스템이 암호화된 데이터의 해역에 필요한 키에 대한 액세스를 갖기 않기 때문에, 데이터 서비스 백엔드 저장 시스템에 의해 저장되는 평문 데이터에 대한 액세스를 갖지 못한다. 그러나, 일부 실시예에서, 데이터 서비스 프론트엔드에, 및/또는 데이터 서비스 백엔드 저장 시스템에 액세스가 허가될 수 있다. 예를 들어, 일 실시예에서, 키에 대한 일시적 액세스가 데이터 서비스 프론트엔드에 제공되어, 데이터 서비스 프론트엔드로 하여금 암호화된 데이터를 획득활 수 있게 하고, 암호화된 데이터를 해역할 수 있게 하며, 특정 용도(가령, 인덱싱)로 해역된 데이터를 이용할 수 있고, 그 후, 삭제하거나 그렇지 않을 경우 해역된 데이터에 대한 액세스를 상실한다. 이러한 액션은 데이터 서비스 프론트엔드 및/또는 암호 기법 서비스에 의해 집행되는 정책에 의해 통제될 수 있고, 사용자로부터 승인을 필요로할 수 있다.
도 13은 예를 들어, 앞서 설명한 것과 같은 데이터 서비스 백엔드 저장 시스템으로부터, 암호화된 데이터 객체 및 암호화된 키를 획득하는데 사용될 수 있는 프로세스(1300)의 예시적 예를 도시한다. 프로세스(1300)는 예를 들어, 도 12와 연계하여 앞서 설명한 데이터 서비스 프론트엔드 시스템에 의해 수행될 수 있다. 일 실시예에서, 프로세스(1300)는 암호화된 데이터 객체를 위한 GET 요청의 수신(1302)을 포함한다. GET 요청 수신은 가령, 데이터 서비스 프론트엔드 시스템에 대한 API 콜을 통해 요청을 수신함으로써, 임의의 적절한 방식으로 수행될 수 있다. GET 요청 수신 결과로, 프로세스(1300)는 인증 요청의 제출(1304)과, 인증 응답의 수신(1306)을 포함할 수 있다. 인증 요청 제출(1304) 및 인증 응답 수신(1306)은 앞서 설명한 것과 같이 임의의 적절한 방식으로 수행될 수 있다. 인증 응답을 이용하여, GET 요청의 진위 여부를 결정할 수 있다(1308). GET 요청이 가짜라고 결정(1308)되면, 프로세스(1300)는 GET 요청의 거부(1310)를 포함할 수 있다. GET 요청 거부(1310)는 앞서 설명한 것과 같이 임의의 적절한 방식으로 수행될 수 있다. 그러나, GET 요청이 진짜라고 결정(1308)되면, 프로세스(1300)는 해역될 때, 암호화된 데이터 객체의 해역에 사용될 수 있는 암호화된 키와 함께, 암호화된 데이터 객체의 제공(1312)을 포함할 수 있다. 여기서 설명되는 모든 프로세스에서처럼, 수많은 변형예가 본 발명의 범위 내에 있는 것으로 간주된다. 예를 들어, 프로세스(1300)는 진짜일 때, 암호화된 키 제공없이, 암호화된 데이터 객체 제공에 의해, GET 요청에 응답하도록 구성될 수 있다. GET 요청을 제출한 사용자 또는 시스템인 요청자는, 다른 방식으로 암호화된 키를 획득할 수 있다. 예를 들어, 일부 실시예에서, 사용자는 사용자 제어 하에 데이터 저장 시스템에 암호화된 키 자체를 저장할 수 있다. 다른 예로서, 하나의 저장 서비스는 암호화된 데이터 객체를 저장할 수 있고, 다른 서비스는 암호화된 키를 저장할 수 있으며, 사용자는 각자의 서비스로부터 암호화된 데이터 객체 및 암호화된 키를 획득할 수 있다. 다른 예로서, 다른 서비스 또는 사용자에 대한 제3자를 이용하여 암호화된 키를 저장할 수 있고, 사용자는 요청시 암호화된 키를 획득할 수 있다. 일반적으로, 암호화된 키가 제공될 수 있다면 어떤 방식도 사용될 수 있다.
도 13에 도시되는 바와 같이, 프로세스(1300)에서는 일 실체가 데이터 객체와, 데이터 객체의 해역에 사용가능한 암호화된 키를 제공하였다. 다양한 실시예에서, 데이터 객체 해역을 위해 암호화된 키가 반드시 해역되어야 한다. 따라서, 도 14는 해역된 키를 이용하여 암호화된 데이터 객체를 해역하기 위해, 이러한 해역된 키를 필요로하는 실체에 해역된 키를 제공하는데 사용될 수 있는 프로세스(1400)의 예시적 예를 도시한다. 프로세스(1400)는 도 12와 연계하여 앞서 설명된 암호 기법 서비스 프론트엔드 시스템에 의해서와 같이, 임의의 적절한 시스템에 의해 수행될 수 있다. 일 실시예에서, 프로세스(1400)는 명시된 KeyID를 가진 다른 키를 이용하여 키 해역을 위한 해역의 수신(1402)을 포함한다. 프로세스(1400)가 키 해역과 연계하여 설명되지만, 프로세스(1400)는 일반적으로 데이터의 해역을 위해 적응될 수 있다. 해역 요청은 앞서 설명한 바와 같이 (가령, 적절히 구성된 API 콜을 통해) 임의의 적절한 방식으로 수신(1402)될 수 있다. 더욱이, 해역 요청은 프로세스(1400)가 수행 중인 범주에 적절한 임의의 실체에 의해 수신될 수 있다. 예를 들어, 해역 요청은 사용자로부터, 또는, 앞서 논의한 데이터 서비스 프론트엔드와 같은, 기타 시스템으로부터, 발원할 수 있다. 해역 요청은 해역될 데이터(가령, 키) 또는 그 기준을 또한 포함할 수 있다. KeyID는 또한 임의의 적절한 방식으로 명시될 수 있다. 예를 들어, 일부 실시예에서, 해역 요청은 KeyID, 또는, KeyID에 대한 기준, 즉, KeyID 결정에 사용될 수 있는 정보를 포함한다. 앞서 논의한 바와 같이, KeyID는 암묵적으로 또한 명시될 수 있다. 예를 들어, KeyID는 해역 요청을 제출한 요청자의 신원과 같이, 가용 데이터와 상관을 통해 획득될 수 있다. 예를 들어, KeyID에 대응하는 키는 요청자를 위한, 또는, 대신 요청을 제출한 실체를 위한, 디폴트 키일 수 있다.
프로세스(1400)는 일 실시예에서, 인증 요청 제출(1404) 및 인증 응답 수신(1406)을 포함한다. 인증 요청 제출(1404) 및 인증 응답 수신(1406)은 앞서 설명한 것과 같이 임의의 적절한 방식으로 수행될 수 있다. 더욱이, 앞서 논의한 바와 같이, 수신되는 인증 응답을 이용하여 GET 요청의 진위 여부를 결정할 수 있다(1408). GET 요청이 진짜가 아니라고 결정(1408)되면, 프로세스(1400)는 GET 요청의 거부(1410)를 포함할 수 있다. GET 요청 거부(1410)는 앞서 설명한 것과 같이 임의의 적절한 방식으로 수행될 수 있다. 그러나, GET 요청이 진짜라고 결정(1408)되면, 프로세스(1400)는 명시된 KeyID에 대한 및/또는 요청자에 대한 정책 정보의 액세스를 포함할 수 있다. 정책 정보는 KeyID 및/또는 요청자에 대한 하나 이상의 정책을 포함하는 정보를 포함할 수 있다.
일 실시예에서, 액세스되는 정책 정보를 이용하여, 임의의 적용가능한 정책이, 명시된 KeyID를 가진 키를 해역할 수 있는지 여부를 결정(1414)할 수 있다. 정책이 KeyID에 의해 명시된 키를 해역할 수 없다고 결정(1414)되면, 프로세스(1400)는 앞서 설명한 것과 같이 GET 요청 거부(1410)를 포함할 수 있다. 그러나, 정책이 명시된 KeyID를 가진 키를 해역할 수 있다고 결정(1414)되면, 프로세스(1400)는 KeyID에 의해 식별되는 키를 이용하여 키의 해역(1416)을 포함할 수 있다. 키가 해역되면, KeyID를 가진 키를 이용하여, 해역된 키가 그 후, 예를 들어, 해역 요청을 제출한 요청자(또는 일부 실시예에서, 다른 인가된 목표지)에게 네트워크를 통한 전송에 의해, 제공(1418)될 수 있다.
앞서 논의한 환경(1200)에 도시되는 바와 같이, 사용자는 암호화된 데이터 객체와, 다양한 방식으로 데이터 객체를 해역하기 위한 키를 획득할 수 있다. 도 15는 다양한 실시예에 따라 평문 획득에 사용될 수 있는 프로세스(1500)의 예시적 예를 도시한다. 프로세스(1500)는 도 12와 연계하여 설명되는 것과 같이 사용자에 의해 작동 및/또는 호스팅되는 시스템에 의해서와 같이, 임의의 적절한 시스템에 의해 수행될 수 있다. 다른 적절한 시스템은 제공되는 실시간 사용자 입력에 반드시 따르지는 않는, 그러나, 아마도 기프로그래밍된 프로세스에 따라, 사용자 대신에 작동하는 시스템을 포함한다.
일 실시예에서, 프로세스(1500)는 데이터 저장 서비스로부터 암호문의 수신(1502)을 포함한다. 데이터 저장 서비스로부터 암호문 요청(1502)은 앞서 설명한 것과 같이 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 프로세스(1500)를 수행하는 시스템은, 도 13과 연계하여 앞서 설명한 프로세스(1300)에 의해, 및/또는, 도 12와 연계하여 앞서 제시된 환경(1200) 내의 적절히 구성된 API 콜을 이용하여, 암호문을 요청(1502)할 수 있다.
프로세스(1500)는 암호문 및 암호화된 키의 수신을 또한 포함할 수 있다. 암호문 및 암호화된 키의 수신은 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 암호문 및 암호화된 키는 데이터 저장 서비스로부터 암호문에 대한 요청에 응답하여 수신될 수 있다. 그러나 일반적으로, 암호문 및 암호화된 키가 다른 적절한 방식으로 수신(1504)될 수 있다. 예를 들어, 데이터 저장 서비스로부터 암호문 수신 요청은 비동기식 요청일 수 있고, 암호문은 후속하여 제출된 다른 요청에 따라 수신(1504)될 수 있다. 더욱이, 암호문 및 암호화된 키는 단일 응답에서 제공될 수도 있고, 또는, 다른 응답에 의해서와 같이(동일 시스템으로부터일 수도 있고 다른 시스템으로부터일 수도 있음), 개별적으로 획득될 수도 있다. 다른 예로서, 프로세스(1500)를 수행하는 시스템은 암호화된 키를 국부적으로 또는 그렇지 않을 경우 저장할 수 있고, 암호화된 키는 로컬 메모리로부터 수신될 수 있다.
일 실시예에서, 프로세스(1500)는 명시된 KeyID를 가진 키를 이용하여, 암호화된 키의 해역 요청을 포함한다. KeyID는 앞서 설명한 바와 같이 임의의 적절한 방식으로 명시될 수 있다. 더욱이, 주목할 사항으로서, 프로세스(1500)를 수행하는 시스템은 임의의 적절한 방식으로 KeyID를 명시할 수 있다. 예를 들어, 암호화된 키 및/또는 이와 함께 제공되는 정보가 KeyID를 명시할 수 있다. 다른 예로서, 프로세스(1500)를 수행하는 시스템은 KeyID를 결정할 수 있는 정보에 대한 로컬 또는 원격 액세스를 가질 수 있다. 로컬 또는 원격 데이터베이스는, 예를 들어, 데이터 객체 암호화에 사용되는 키의 키 식별자와 데이터 객체 식별자를 연관시킬 수 있다. 일반적으로, KeyID 명시를 위해 시스템이 작동될 수 있는 어떤 방식도 사용될 수 있다. 더욱이, 일부 실시예에서, 가령, 암호 기법 서비스에 제공되는 정보가 KeyID 결정에 충분할 때와 같은 경우에, KeyID가 명시될 필요가 없다. 암호화된 키의 해역 요청(1506)은, 도 12와 연계하여 앞서 논의한 환경과 연계하여서와 같이, 및/또는 도 14와 연계하여 앞서 설명한 프로세스(1400)의 수행에 의해서와 같이, 임의의 적절한 방식으로 수행될 수 있다.
일 실시예에서, 프로세스(1500)는 해역된 키의 수신(1508)을 포함한다. 해역된 키의 수신(1508)은 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 해역된 키는 암호화된 키의 해역 요청에 응답하여 수신될 수 있다. 다른 예로서, 암호화된 키의 해역 요청은 비동기식 요청이고, 다른 요청이 해역된 키의 수신을 위해 제출되었을 수 있다. 일반적으로, 해역된 키는 임의의 적절한 방식으로 수신될 수 있다. 더욱이, 일 디바이스로부터 다른 디바이스로 흐르는 모든 정보의 경우처럼, 정보의 통과는 안전한 채널을 이용하여 수행될 수 있다. 예를 들어, 해역된 키는 해역된 키를 수신하는 실체에 의한 해역을 위해 다시 한번 암호화될 수 있다. 일반적으로, 일 실체로부터 다른 실체로 정보를 전달하는데 임의의 방식의 안전한 통신이 사용될 수 있다.
해역된 키가 수신되면(1508), 프로세스(1500)는 해역된 키를 이용(1510)하여 암호문을 해역(1510)하고, 따라서, 평문을 획득한다. 여기서 설명되는 모든 프로세스에서처럼, 변형예는 본 발명의 범위 내에 있는 것으로 간주된다. 예를 들어, 프로세스(1500)는 순차적으로 수행되는 암호문 요청과, 암호화된 키의 해역 요청을 도시한다. 그러나, 다양한 프로세스와 연계하여 여기서 설명되는 많은 작동들에서처럼, 다양한 실시예에서 작동들이 순차적으로 수행될 필요가 없다. 예를 들어, 프로세스(1500)를 수행하는 시스템이 암호문 요청 이전에 암호화된 키에 대한 액세스를 가질 경우, 또는 그렇지 않을 경우, 이렇게 할 수 있다면, 시스템은 암호문을 요청할 수 있고, 도시되는 것과는 다른 순서로 또는 병렬로 암호화된 키의 해역을 요청할 수 있다. 다른 변형예도 본 발명의 범이 내에 있는 것으로 또한 간주된다.
앞서 논의한 바와 같이, 본 발명의 다양한 실시예는 암호 기법 서비스의 제공을 지향한다. 암호 기법 서비스는 앞서 설명한 바와 같은 암호 기법 서비스 시스템에 의해 제공될 수 있다. 따라서 도 16은 다양한 실시예에 따른 암호 기법 서비스(1600)의 예시적 예를 도시한다. 도 16에 도시되는 바와 같이 그리고 앞서 논의한 바와 같이, 암호 기법 서비스(1600)는 프론트엔드 시스템 및 백엔드 시스템으로 논리적으로 구성된다. 프론트엔드 시스템 및 백엔드 시스템 모두는 여기서 설명되는 작동들을 수행하도록 구성되는 하나 이상의 컴퓨터 시스템에 의해 구현될 수 있다. 예를 들어, 도 16에 도시되는 바와 같이, 암호 기법 서비스(1600)의 프론트엔드 시스템은 요청 API 및 정책 구성 API를 구현한다. 요청 API는 일 실시예에서, 암호 기법 서비스에 의해 수행될 암호 기법 및 기타 작동들을 요청하도록 구성된 API다. 따라서, 요청은 이러한 암호 기법 작동들을 암호 기법 서비스에 의해 수행하기 위해, 요청 API를 통해 프론트엔드 시스템에 구현될 수 있다.
요청 API는 다음 예의 하이-레벨의, 가용한 요청을 갖도록 구성될 수 있다:
CreateKey(KeyID)
Encrypt(KeyID, Data, [AAD])
Decrypt(KeyID, Ciphertext, [AAD])
Shred(KeyID)
ReKey(Ciphertext, OldKeyID, NewKeyID).
CreateKey(KeyID) 요청은, 일 실시예에서, 요청에서 식별되는 KeyID에 의해 식별되는 키를 암호 기법 서비스로 하여금 생성할 수 있게 한다. 요청 수신시, 암호 기법 서비스는 키를 생성하여 키를 KeyID와 연관시킬 수 있다. KeyID는 고유 식별자일 수 있지만 반드시 그런 것은 아니다. 예를 들어, KeyID는 키의 패밀리를 식별할 수 있다. 예를 들어, 일부 실시예에서, 키 회전이 수행된다. 키 회전은 충분한 해역된 데이터의 집합들이, 사용되는 암호의 실제적 크래킹(cracking)을 일으키는 것을 방지하기 위해, 키를 다른 키로 대체하는 과정을 포함할 수 있다. 암호 기법 서비스와는 다른 실체의 방향에서 수행될 경우, CreateKey(KeyID) 요청을 이용함으로써, 암호 기법 서비스가 KeyID에 의해 식별되는 올드 키를 대체하기 위해 새 키를 생성할 수 있다. 올드 키는 KeyID에 의해 식별되는 상태를 유지할 수 있지만, 예를 들어, (올드 키를 이용하여 이미 암호화된 데이터의) 해역을 위해서만 사용되고 차후 암호화에는 사용되지 않을 수 있다. 다른 예로서, 일부 실시예에서, 암호 기법 서비스의 사용자는 자체 키 식별자를 제공하며, 서로 다른 두 고객이 동일 식별자를 제공할 가능성이 존재한다. 이러한 예에서, 식별자는 독자적으로 키를 식별하지 못할 수 있고, 또는, 심지어, 키들의 패밀리를 독자적으로 식별하지 못할 수도 있다. 다양한 측정법이 이를 해결하기 위해 대신할 수 있다. 예를 들어, 암호 기법 서비스의 사용자와 연관된 신원 또는 다른 정보를 이용하여, 적절한 키 또는 키 패밀리를 식별할 수 있다. 또 다른 실시예에서, 암호 기법 서비스는 KeyID를 임의적으로, 순차적으로, 또는 그외 다른 방법을 이용하여 할당할 수 있다.
KeyID가 키를 독자적으로 식별하지 않을 때, 다양한 시스템이 적절히 기능하도록 대신할 수 있다. 예를 들어, 다양한 실시예에서, KeyID에 의해 식별되는 키 패밀리는 유한하다. KeyID에 의해 식별되는 키를 이용한 해역 작동이 요청될 경우, 추가적인 데이터(가령, 암호화가 수행된 때의 시간 스탬프)가 이용할 적절한 키 결정을 가능하게 할 수 있다. 일부 실시예에서, 모든 가능한 키를 이용하여 데이터의 서로 다른 해역을 제공할 수 있다. 유한한 개수의 키가 존재하기 때문에, 제공되는 키들로부터 적절한 해역이 선택될 수 있다. 일부 실시예에서, 키를 이용한 해역은, 가령, 인증된 암호화를 이용함으로써와 같이, 키에 대해 적어도 부분적으로 기초하여 암호문이 발생되지 않았다는 점을 암호 기법 서비스가 검출할 수 있는 방식으로 수행된다. 다른 변형예도 본 발명의 범위 내에 있는 것으로 또한 간주된다.
Encrypt(KeyID, Data, [AAD]) 요청을 이용하여, KeyID에 의해 식별된 키를 이용하여 명시된 데이터를 암호 기법 서비스로 하여금 암호화시킬 수 있다. 추가적인 인증 데이터(AAD)를 다양한 용도로 이용할 수 있고, 이는 가령, 전자 시그너처, 메시지 인증 코드, 또는 일반적으로, AAD와 함께 포함된 키-해시 값에 의해, 반드시 암호화될 필요는 없으나 인증되는, 데이터일 수 있다. 일부 실시예에서, 암호문은 AAD의 적어도 일부분을 포함하면서 생성된다. 일부 실시예에서, AAD는 해역 중 개별적으로 제공된다. 일부 다른 실시예에서, AAD는 메타데이터가 통과할 때만 해역이 성공하도록 요청 또는 기타 메타 데이터에 적어도 부분적으로 기초하여 해역 시간에 발생된다. 일부 실시예에서는, 암호 기법 작동이 특정 AAD와 관련하여 수행될 수 있는지 여부를 정책이 제약할 수 있다. Encrypt(KeyID, Data, [AAD]) 요청의 프로세싱은 암호 기법 서비스에 의해 집행되는 로직 및/또는 정책을 프로그래밍함으로써, AAD가 특정 값을 지님을, 그리고, AAD가 진짜임(가령, 원본 전송 이후 변형되지 않음)을 요구할 수 있다. 마찬가지로, Decrypt(KeyID, Ciphertext, [AAD]) 요청을 이용하여, KeyID에 의해 식별되는 키를 이용하여 명시된 암호문을 암호 기법 서비스로 하여금 해역할 수 있게 한다. Decrypt(KeyID, Ciphertext, [AAD]) 요청의 AAD는 앞서 설명한 바와 같이 이용될 수 있다. 예를 들어, Decrypt(KeyID, Ciphertext, [AAD])의 프로세싱은, 암호 기법 서비스에 의해 집행되는 정책 및/또는 로직을 프로그래밍함으로써, AAD가 특정 값을 지님을, 그리고 AAD가 진짜임(가령, 원본 전송 후 변형되지 않음)을 요구할 수 있다.
Shred(KeyID)는, 일 실시예에서, 명시된 KeyID에 의해 식별되는 키 또는 키 패밀리를 암호 기법 서비스로 하여금 전자적으로 슈레딩(shred)하는데 이용될 수 있다. 전자적 슈레딩은 키를 더이상 액세스불가능하게 만드는 과정을 포함할 수 있다. 예를 들어, Shred(keyID) 요청을 이용함으로써, 암호 기법 시스템은 명시된 KeyID에 의해 식별되는 하나 이상의 키에 대한 SecureErase 작동을 수행하도록 하나 이상의 하드웨어 디바이스에 명령할 수 있다. 일반적으로, KeyID에 의해 식별되는 키는 예를 들어, 키를 인코딩하는 데이터를 다른 데이터(가령, 일련의 0 또는 1 또는 랜덤 스트링)로 덮어쓰는 방식과 같이, 임의의 적절한 방식으로, 전자적으로 슈레딩될 수 있다. 키가 키 하에 암호화되어 저장될 경우, 키의 암호화에 사용되는 키는 전자적으로 슈레딩될 수 있고, 따라서, 키에 대한 액세스 손실이 야기된다. 일부 실시예에서, 슈레드 작동에 의해, 슈레드 KeyID를 표시하는 해역 작동이, 차후의 소정의 결정된 시점에서 실패할 수 있다. 키에 대한 액세스 가능성을 안전하게 그리고 영구적으로 파괴하는 다른 방식이 사용될 수 있다.
일 실시예에서, ReKey(Ciphertext, OldKeyID, NewKeyID) 요청을 이용하여, 암호 기법 서비스가 다른 키 하에서 암호문을 암호화할 수 있다. 암호 기법 서비스가 ReKey(Ciphertext, OldKeyID, NewKeyID) 요청을 수신할 때, OldKeyID에 의해 식별되는 키를 이용하여 명시된 암호문을 해역할 수 있고, 그 후, NewKeyID에 의해 식별되는 키를 이용하여 해역된 암호문을 암호화할 수 있다. NewKeyID에 의해 식별되는 키가 존재하지 않을 경우, 암호 기법 서비스는 이용할 키를 생성하여, 앞서 설명한 Create(KeyID) 요청에서 설명되는 바와 같이, 생성된 키를 명시된 NewKeyID와 연관시킬 수 있다. 일부 실시예에서, ReKey 작동은 암호 기법 서비스의 분리된 인스턴스들 간에 데이터를 전달가능하도록 작동가능하다. 일부 실시예에서, 정책은 rekey 작동을 암호문에 대해 수행되게 할 수 있으나, 동일 요청자가 암호문을 직접 해역할 수 없게 한다. 일부 실시예에서, ReKey 는 제 1 계정 내의 제 1 KeyID에 의해 식별되는 키로부터, 제 2 계정 내의 KeyID에 의해 식별되는 키로, 암호문의 리키(rekeying)를 지원할 수 있다.
마찬가지로, 프론트엔드 시스템은, 일 실시예에서, 암호 기법 작동의 수행을 위한, 그리고 다른 정책-관련 작동을 위한, 정책을 구성하기 위한 요청을 사용자로 하여금 제출하게 하는 정책 구성 API를 구현할 수 있다. 정책은 다양한 실시예에서, 키, 키 그룹, 계정, 사용자, 및 그외 다른 논리적 실체와 연관될 수 있다. 정책 구성 API를 통해 구성될 수 있는, 예시적인 정책들이 아래에 제공된다. 일 실시예에서, 암호 기법 서비스 정책 구성 API는 다음의 요청들을 포함한다:
SetKeyPolicy(KeyID, Policy)
Suspend(KeyID, Public Key)
Reinstate(KeyID, Private Key)
일 실시예에서, SetKeyPolicy(KeyID, Policy) 요청을 이용하여, KeyID에 의해 식별되는 키(또는 키 패밀리) 상에 정책을 암호 기법 서비스로 하여금 저장하게 할 수 있다. 정책은 요청받은 암호 기법 작동들이 특정 범주 내에서 수행될 수 있는지 여부를 결정한다. 정책은 XACML(eXtensinble Access Control Markup Language), EPAL(Enterprise Privacy Authorization Language), Amazon Web Services Access Policy Language, Microsoft SecPol, 또는 암호기법 작동의 수행을 위해 충족되어야만 하는 하나 이상의 조건들을 인코딩하는 임의의 적절한 방식과 같이, 선언부 액세스 제어 정책 언어로 인코딩될 수 있다. 정책은 어떤 작동이 수행될 수 있는지, 언제 작동이 수행될 수 있는지, 어떤 실체가 작동 수행을 위한 인가 요청을 할 수 있는지, 특정 요청의 인가에 어떤 정보가 요구되는지, 등을 규정할 수 있다. 추가적으로, 정책은 액세스 제어 리스트, 사용자와 연관된 프리빌리지(privileges), 및/또는, 위에서 제시된 예에 추가하여 또는 그 대신에 작동 비트마스크를 이용하여 규정 및/또는 집행될 수 있다. 정책들의 예가 아래에 나타난다.
일부 실시예에서, 암호 기법 서비스는 가령, Suspend(KeyID, Public Key) API 콜을 이용하여, 서스펜드 작동을 지원할 수 있다. 서스펜드 작동을 이용하여, 암호 기법 서비스의 고객이 암호 기법 서비스의 조작자가 키를 이용하거나 키에 액세스하는 것을 거부할 수 있다. 이는 키를 이용하여 소정의 작동을 수행하도록 암호 기법 서비스의 조작자가 강요받을 수 있는 환경 또는 비밀스런 법적 지시에 관하여 우려하는 고객에게 유용할 수 있다. 이는 특정 데이터를 보고자 하는, 그리고 온라인으로 이를 액세스불가능하게 하고자하는 고객에게 또한 유용할 수 있다. 일부 실시예에서, 서스펜드 작동은 고객으로부터 퍼블릭 키를 수신하여 주어진 KeyID에 의해 명시된 키를 수신한 퍼블릭 키로 암호화하고, KeyID에 의해 명시된 키를 슈레딩하는 과정들을 포함하여, 가령, KeyID를 명시하는 그리고 프라이빗 키를 포함하는 Reinstate(KeyID, Private Key) API 콜을 이용하여, 퍼블릭 키와 연관된 프라이빗 키가 제공되지 않을 경우 제공자가 서스펜딩된 키에 액세스할 수 없게 된다. 일부 다른 실시예에서, 서스펜드 작동은 순간적인 서스펜드 작동의 용도를 위해 생성된 것을 제한없이 포함하는, 암호 기법 서비스에 의해 관리되는 다른 키를 이용하여, 명시된 KeyID와 연관된 키를 암호화하는 과정을 포함한다. 이러한 작동에 의해 생성된 암호문은 고객에게 제공될 수 있고, 암호 기법 서비스 내에 보유되지 않는다. KeyID에 의해 식별되는 원본 키는 그 후 슈레딩될 수 있다. 암호 기법 서비스는 제공되는 암호문을 수신하도록, 그리고, 서스펜딩된 키를 재-수신하도록 작동가능하다. 일부 실시예에서, 암호문은 암호 기법 서비스가 해역 버전을 고객에게 되돌려주는 것을 방지하는 방식으로 생성될 수 있다.
도 16에 도시되는 바와 같이, 암호 기법 서비스(1600)는 일부 실시예에서 자체로 다양한 구성요소들을 포함하는 백엔드 시스템을 포함한다. 예를 들어, 본 예의 백엔드 시스템은 요청 API 또는 정책 구성 API를 통해 수신되는 요청에 따라 작동을 수행하도록 구성되는 암호 기법 서비스(1600)의 서브시스템일 수 있는 요청 프로세싱 시스템을 포함한다. 예를 들어, 요청 프로세싱 구성요소는 요청 API를 통해 수신되는 요청들을 수신할 수 있고, 정책 구성 API는 이러한 요청들이 진짜인지 그리고 따라서 충족가능한지 여부를 결정하고, 요청을 충족시킬 수 있다. 요청 충족은 예를 들어, 암호 기법 작동을 수행하는 것과, 및/또는 수행한 것을 포함할 수 있다. 요청 프로세싱 유닛은 요청 프로세싱 유닛으로 하여금 요청이 진짜인지 여부를 결정하게 하는 인증 인터페이스와 상호작용하도록 구성될 수 있다. 인증 인터페이스는 앞서 설명되는 것처럼 인증 시스템과 상호작용하도록 구성될 수 있다. 예를 들어, 요청이 요청 프로세싱 유닛에 의해 수신될 때, 요청 프로세싱 유닛은 인증 인터페이스를 이용하여 인증 서비스와 상호작용할 수 있고, 인증 서비스는, 적용가능할 경우, 암호 기법 작동을 수행하기 위해 사용될 수 있는 인증 증거를 제공할 수 있다.
암호 기법 서비스(1600)의 백엔드 시스템은 본 예에서, 복수의 보안 모듈(암호 기법 모듈) 및 정책 집행 모듈을 또한 포함한다. 보안 모듈들 중 하나 이상은 하드웨어 보안 모듈일 수 있으나, 다양한 실시예에서, 보안 모듈은 여기서 설명되는 기능을 갖도록 구성되는 임의의 적절한 컴퓨터 디바이스일 수 있다. 일 실시예의 각각의 보안 모듈은 암호 기법 서비스(1600)의 다른 구성요소들 및/또는 타 시스템의 타 구성요소들에 의해 액세스될 수 없도록 키를 안전하게 저장하도록 구성될 수 있다. 일 실시예에서, 보안 모듈 일부 또는 전부는 적어도 하나의 보안 표준에 따른다. 예를 들어, 일부 실시예에서, 보안 모듈은 FIPS 공보 140-1 및/또는 140-2에서 개략적으로 제시되는 FIPS(Federal Information Processing Standard), 예를 들어, FIPS 공보 140-2에 개략적으로 제시된 하나 이상의 보안 레벨에 따르도록 각각 비준된다. 추가적으로, 일부 실시예에서, 각각의 보안 모듈은 아호 기법 모듈 비준 프로그램(CMVP) 하에서 인증된다. 보안 모듈은 하드웨어 보안 모듈(HSM) 또는 HSM의 기능 일부 또는 전부를 가진 다른 보안 모듈로 구현될 수 있다. 일부 실시예에서, 비준된 모듈을 이용하여 작동을 부트스트랩한다. 일부 실시예에서, 고객은 비준된 모듈에 저장되어 비준된 모듈에 의해서만 온 상태로 작동되는 일부 키와, 소프트웨어에 의해 온 상태로 작동하는 다른 키를 구성할 수 있다. 일부 실시예에서, 이러한 다양한 옵션과 연관된 성능 또는 비용은 다를 수 있다.
보안 모듈은 요청 프로세싱 유닛에 의해 제공되는 명령어에 따라 암호 기법 작동을 수행하도록 구성될 수 있다. 예를 들어, 요청 프로세싱 유닛은, KeyID와 연관된 키를 이용하여 암호문을 해역하고 응답으로 평문을 제공하기 위한, 적절한 보안 모듈에 대한 명령어와 함께, 보안 모듈에 암호문 및 KeyID를 제공할 수 있다. 일 실시예에서, 암호 기법 서비스(1600)의 백엔드 시스템은 키 공간을 형성하는 복수의 키를 안전하게 저장한다. 각각의 보안 모듈은 키 공간에 모든 키를 저장할 수 있다 - 그러나, 변형예도 본 발명의 범위 내에 있는 것으로 고려된다. 예를 들어, 각각의 보안 모듈은 키 공간의 서브공간을 저장할 수 있다. 보안 모듈에 의해 저장되는 키 공간의 서브공간들이 겹쳐져서, 키가 보안 모듈 전체에 걸쳐 잉여적으로 저장되게 된다. 일부 실시예에서, 소정의 키가 지정된 지리적 영역에만 저장될 수 있다. 일부 실시예에서, 소정의 키는 특정 인증 또는 승인 레벨을 가진 조작자에게만 액세스가능할 수 있다. 일부 실시예에서, 소정의 키가 데이터 저장 서비스의 제공자와 계약 하에 특정 제3자 제공자에 의해 작동되는 모듈에 저장될 수 있고, 이 모듈과 함께만 사용될 수 있다. 일부 실시예에서, 보안 모듈의 보강적 제어는 고객에 의해 인가된 것과는 다른 키의 이용을 강제하고자 하는 법적 지시가, 추가적 실체의 강제 또는 추가적 관할 강제 액션을 포함할 것을 요구할 수 있다. 일부 실시예에서, 고객은 암호문이 저장되고 키가 저장되는 관할용 독립적 옵션이 고객에게 제공될 수 있다. 일부 실시예에서, 키를 저장하는 보안 모듈은 키의 소유자에게 오딧(audit) 정보를 제공하도록 구성될 수 있고, 보안 모듈은 고객에 의해 억제가능하지 않은 오딧 정보를 생성 및 제공하도록 구성될 수 있다. 일부 실시예에서, 보안 모듈은 보안 모듈에 의해 저장되는 키 하에서 작동을 (가령, 보안 모듈을 호스팅하는) 제공자가 수행할 수 없도록, 고객에 의해 생성된 시그너처를 독립적으로 비준하도록 구성될 수 있다. 추가적으로, 일부 보안 모델은 키 공간 전부를 저장할 수 있고, 일부 보안 모듈은 키 공간의 서브공간을 저장할 수 있다. 다른 변형예도 본 발명의 범위 내에 있는 것으로 또한 간주된다. 서로 다른 보안 모듈이 키 공간의 서로 다른 서브공간을 저장하는 예에서, 요청 프로세싱 유닛은 다양한 요청에 따라 암호 기법 작동을 수행하도록 지시할 보안 모듈을 결정하기 위해, 예를 들어, 관계 표 또는 다른 메커니즘을 이용하여, 구성될 수 있다.
일 실시예에서, 정책 집행 모듈은 요청 프로세싱 유닛으로부터 정보를 획득하도록, 그리고, 상기 정보에 기초하여, API를 통해 수신된 요청이 수행될 수 있는지 여부를 결정하도록 구성된다. 예를 들어, 암호 기법 작동 수행 요청이 요청 API를 통해 수신될 때, 요청 프로세싱 유닛은 정책 집행 모듈과 상호작용하여, 요청 내 명시된 KeyID에 적용가능한 정책, 및/또는 요청자와 연관된 정책과 같은 기타 정책과 같이, 임의의 적용가능한 정책에 따라 요청 충족 여부를 결정할 수 있다. 정책 집행 모듈에 의해 요청이 충족될 경우, 요청 프로세싱 유닛은 따라서, 요청 충족에 따라 암호 기법 작동을 수행할 것을 적절한 보안 모듈에 지시할 수 있다.
여기서 설명되는 모든 도면에서처럼, 수많은 변형예가 본 발명의 범위 내에 있는 것으로 간주된다. 예를 들어, 도 16은 보안 모듈로부터 분리된 정책 집행 모듈을 도시한다. 그러나, 각각의 보안 모듈은 별도로 도시되는 정책 집행 모듈에 추가하여 또는 그 대신에, 정책 집행 모듈을 포함할 수 있다. 따라서, 각각의 보안 모듈은 정책을 집행하도록 독립적으로 구성될 수 있다. 추가적으로, 다른 예로서, 각각의 보안 모듈은 별도의 정책 집행 모듈에 의해 집행되는 정책과는 다른 정책을 집행하는 정책 집행 모듈을 포함할 수 있다. 수많은 다른 변형예들이 본 발명의 범위 내에 있는 것으로 간주된다.
앞서 논의한 바와 같이, 다양한 정책들이 KeyID와 연관된 사용자에 의해 구성될 수 있어서, KeyID에 대응하는 키와 연계하여 수행되는 암호 기법 작동을 요청이 명시할 때, 정책이 집행될 수 있다. 도 17은 다양한 실시예에 따라 정책을 업데이트하기 위한 프로세스(1700)의 예를 제공한다. 프로세스(1700)는 도 16과 연계하여 앞서 설명한 바와 같이, 암호 기법 서비스 시스템에 의해서와 같은, 임의의 적절한 시스템에 의해 수행될 수 있다. 일 실시예에서, 프로세스(1300)는 KeyID를 위한 정책 업데이트 요청의 수신(1302)을 포함한다. 요청은 임의의 적절한 방식으로 수신(1302)될 수 있다. 예를 들어, 한 예로서 도 16을 참조하면, 앞서 설명한 암호 기법 서비스(1600)의 프론트엔드 시스템의 정책 구성 API를 통해 요청이 수신될 수 있다. 요청은 임의의 적절한 방식으로 수신될 수 있다.
프로세스(1700)는 일 실시예에서, 인증 요청 제출(1704) 및 인증 응답 수신(1706)을 포함한다. 인증 요청 제출(1704) 및 인용 응답 수신(1706)은 앞서 설명한 바와 같이 임의의 적절한 방식으로 수행될 수 있다. 앞서 또한 설명한 바와 같이, 수신되는 인증 응답을 이용하여, KeyID에 대한 정책 업데이트 요청이 진짜인지 여부를 결정(1708)할 수 있다. KeyID에 대한 정책 업데이트를 위한 수신 요청이 진짜가 아니라고 결정(1708)될 경우, 요청은 거부(1710)될 수 있다. 요청 거부(1710)는 앞서 설명한 바와 같이 임의의 적절한 방식으로 수행될 수 있다. 그러나, KeyID에 대한 정책 업데이트를 위한 수신 요청이 진짜라고 결정(1708)될 경우, 프로세스(1700)는 요청자에게 적용가능한 정책 정보에 액세스(1712)를 포함할 수 있다. 정책 정보는 요청자에게 적용가능한 임의의 정책을 집행할 수 있도록 하는 정보일 수 있다. 예를 들어, 프로세스(1700)에 의해 수행되는 암호 기법 서비스를 이용하는 조직 내에서, 조직의 소정의 사용자들만이 KeyID에 대한 정책 업데이트를 허락받을 수 있다. 정책 정보는 어느 사용자들이 암호 기법 서비스로 하여금 KeyID에 대한 정책을 업데이트할 수 있게 하는지를 표시할 수 있고, 및/또는 심지어 기존 정책에 따라 정책 업데이트가 가능한지 여부를 표시할 수 있다. 예를 들어, 일부 실시예에서, 암호 기법 서비스는 새 정책 집행을 위한 요청을 수신할 수 있다. 암호 기법 서비스는 임의의 기존 정책이 새 정책을 자리에 배치할 수 있는지 여부를 점검할 수 있다. 기존 정책이 새 정책을 집행할 수 없다고 암호 기법 서비스가 결정할 경우, 요청이 거부될 수 있다. 일반적으로, 정책 정보는 요청자에게 적용가능한 정책의 집행을 위해 사용가능한 정보일 수 있다.
도 17에 도시되는 바와 같이, 프로세스(1700)는 액세스 정책 정보를 이용하여 정책이 요청된 업데이트를 수행할 수 있는지 여부의 결정(1704)을 포함한다. 정책이 요청된 업데이트를 수행할 수 없다고 결정(1714)되면, 프로세스(1700)는 앞서 설명한 바와 같이 요청의 거부(1710)를 포함할 수 있다. 그러나, 정책이 요청된 업데이트를 수행할 수 있다고 결정(1714)되면, 프로세스(1700)는 KeyID에 대한 정책의 업데이트(1716)를 포함할 수 있다. KeyID에 대한 정책 업데이트는 정책 정보의 업데이트와, KeyID에 따라 또는 이와 연관되어 업데이트 정보의 저장을 포함할 수 있다. 업데이트된 정책 정보는 가령, 도 16와 연계하여 앞서 설명한 바와 같이 암호 기법 서비스의 정책 집행 모듈에 의해 저장될 수 있다.
정책은 암호 기법 서비스와 연계하여 작동하는 전자 환경의 다른 구성요소에 의해 또한 집행될 수 있다. 예를 들어, 앞서 논의한 도 2를 참조하면, 암호 기법 서비스는 데이터 서비스 프론트엔드가 집행할 정책의 전자적 표현을 데이터 서비스 프론트엔드에 제공할 수 있다. 이는 데이터 서비스가 정책 집행에 더 적합한 경우의 상황에 유용할 수 있다. 예를 들어, 정책에 의해 한 액션이 허용되는지 여부는, 암호 기법 서비스에 기초하는 것인 아니라, 데이터 서비스 프론트엔드에 액세스가능한 정보에 기초할 수 있다. 한 예로서, 정책은 정책과 연관된 고객을 대행하여 데이터 서비스 백엔드 저장 시스템에 의해 저장되는 데이터에 좌우될 수 있다.
앞서 논의한 바와 같이, 암호 기법 서비스는 KeyID를 가진 키에 대한 정책에 따라 정책을 집행할 수 있는 다양한 시스템을 포함할 수 있다. 따라서, 도 18은 정책 집행에 사용될 수 있는 프로세스(1800)의 예를 도시한다. 프로세스(1800)는 도 16과 연계하여 앞서 설명한 것과 같은 암호 기법 서비스 시스템에 의해서와 같이, 임의의 적절한 시스템에 의해 수행될 수 있다. 일 실시예에서, 일 실시예에서, 프로세스(1800)는 KeyID를 가진 키를 이용하여 하나 이상의 암호 기법 작동 수행 요청의 수신(1802)을 포함한다. 도 18이 하나 이상의 암호 기법 작동 수행 요청과 연계하여 수행되는 것으로 프로세스(1800)를 도시하고 있으나, 프로세스(1800)는 반드시 암호 기법일 필요는 없는 작동의 수행 요청과 함께 이용하도록 구성될 수 있다. 예시적인 작동들이 앞서 설명되고 있다.
수신된 요청의 진위 여부가 결정(1804)될 수 있다. 수신된 요청의 진위 여부 결정은 앞서 설명한 바와 같이 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 요청의 진위 여부 결정(1804)은 앞서 설명한 바와 같이 인증 요청 제출 및 인증 응답 수신을 포함할 수 있다. 요청이 진짜가 아니라고 결정(1804)될 경우, 프로세스(1800)는 요청 거부(1806)를 포함할 수 있다. 요청 거부(1806)는 앞서 설명한 바와 같이 임의의 적절한 방식으로 수행될 수 있다. 그러나, 요청이 진짜라고 결정(1804)되면, 프로세스(1800)는 KeyID 및/또는 요청자의 정책 정보에 대한 액세스(1808)를 포함할 수 있다. 요청 및/또는 KeyID의 정책 정보에 대한 액세스는 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 요청자 및/또는 KeyID의 정책 정보에 대한 액세스는 이러한 정책 정보를 저장하는 하나 이상의 저장 시스템으로부터 저장 정책 정보에 액세스함으로써 수행될 수 있다. 액세스 정책 정보를 이용하여, 정책이 하나 이상의 작동을 수행할 수 있는지 여부를 결정(1810)할 수 있다.
정책이 하나 이상의 작동을 수행할 수 없다고 결정(1810)되면, 프로세스(1800)는 요청 거부(1806)를 포함할 수 있다. 그러나, 정책이 하나 이상의 작동을 수행할 수 있다고 결정되면, 프로세스(1800)는 요청된 하나 이상의 암호 기법 작동의 수행(1812)을 포함할 수 있다. 하나 이상의 암호 기법 작동의 수행의 하나 이상의 결과가 제공(1814)될 수 있고, 예를 들어, 하나 이상의 암호 기법 작동 수행을 위한 수신(1802) 요청을 제출한 요청자에게 제공될 수 있다. 일부 실시예에서, 허용된 요청 및/또는 거부된 요청으로부터 적어도 부분적으로 도출되는 정보가 오딧 서브시스템을 통해 제공될 수 있다.
논의되는 바와 같이, 본 발명의 실시예는 유연한 정책 구성 및 집행을 가능하게 한다. 일부 실시예에서, 어떤 서비스가 어느 작동을 어느 범주에서 수행할 수 있는지를 명시할 수 있다. 예를 들어, 키에 대한 정책에 따라, 데이터 저장 서비스가 암호 기법 서비스로 하여금 암호화 작동을 수행할 수 있게 하고, 해역 작동을 수행하지 못하게 한다. 키에 대한 정책은 암호문 및/또는 해역된 평문에 대한 하나 이상의 조건을 또한 포함할 수 있다. 예를 들어 정책은, 요청 응답으로 작동 결과가 제공되기 전에 암호문 및/또는 평문이 소정의 해시 값(키-해시 값일 수 있음)을 생성할 것을 요구할 수 있다. 정책은 시간, 요청을 발원시킨 인터넷 프로토콜(IP), 암호화/해역될 콘텐츠의 타입, AAD, 및/또는 기타 정보게 적어도 부분적으로 기초하는 하나 이상의 제약사항 및/또는 허가사항을 명시할 수 있다.
수많은 변형예가 본 발명의 범위 내에 있는 것으로 간주된다. 예를 들어, 앞서 논의한 다양한 실시예는 별도의 인증 서비스와의 상호작용을 논의한다. 그러나, 앞서 논의한 환경의 구성요소들은 자체 인가 구성요소를 가질 수 있고, 요청의 진위 여부 결정은 다른 실체와의 통신을 포함할 수도, 포함하지 않을 수도 있다. 더욱이, 앞서 논의한 각각의 환경은 환경에 의해 실현되는 특정 작동 및 기능과 연계하여 설명된다. 서로 다른 환경과 연계하여 앞서 논의한 기술들은 조합될 수 있고, 일반적으로, 본 발명에 따른 환경들은 다양한 기술의 유연한 이용을 가능하게 할 수 있다. 단 한가지 예로서, 암호 기법 서비스를 이용하여, 요청시, 키와, 키 아닌 데이터 객체와 같은, 다른 콘텐츠를 모두 암호화할 수 있다. 다른 예로서, 암호 기법 서비스는 사용자(가령, 컴퓨팅 리소스 제공자의 고객)로부터의 그리고 다른 서비스(가령, 데이터 저장 서비스)로부터의 요청을 수신 및 응답하도록 구성될 수 있다. 일부 실시예에서, 암호 기법 서비스 및/또는 관련 인증 서비스는 저장된 데이터의 암호화 수행을 위해 모바일 디바이스와 함께 이용하도록 구성될 수 있다. 일부 실시예에서, 암호 기법 서비스에 의해 적어도 하나의 언락 핀(unlock pin)이 비준될 수 있다. 또 다른 실시예에서, 작동의 일부분으로, 암호 기법 서비스는, 하드웨어 증명에 의해 생성된 정보를 수신할 수 있다. 일부 실시예에서, 암호 기법 서비스는 콘텐츠와 관련하여 디지털 권리 관리 서비스를 제공하도록 작동가능하다.
발명의 실시예는 다음의 항들에 비추어 설명될 수 있다:
1. 데이터 저장 서비스 제공을 위한 컴퓨터-구현 방법에 있어서,
컴퓨팅 리소스 서비스 제공자의 하나 이상의 컴퓨터 시스템의 제어 하에, 상기 하나 이상의 컴퓨터 시스템은 실행가능 명령어로 구성되며, 상기 방법은,
상기 컴퓨팅 리소스 서비스 제공자의 고객으로부터, 컴퓨팅 리소스 서비스 제공자의 데이터 저장 서비스 이용 요청을 수신하는 단계와,
데이터 저장 서비스 이용 요청을 수신한 결과로, 컴퓨팅 리소스 서비스 제공자의 암호 기법 서비스로 하여금, 데이터 저장 서비스에 액세스불가능한 키를 이용하여 암호 기법 서비스에 의해 암호화된 정보를 제공하게 하는 단계 - 상기 정보는 컴퓨팅 리소스 서비스 제공자의 복수의 고객을 대행하여 암호 기법 서비스에 의해 관리되는 복수의 키로부터 상기 키와, 암호화되지 않은 형태의 데이터 객체의 획득에 이용가능함 - 와,
상기 데이터 저장 서비스를 이용하여 암호화된 정보를 저장하는 단계를 포함하는, 컴퓨터-구현 방법.
2. 제 1 항에 있어서,
암호 기법 서비스로 하여금 암호화된 정보를 제공하게 하는 단계는, 암호 기법 서비스로 하여금 수신된 요청의 진위를 검증할 수 있게 하는 증거 정보를 암호 기법 서비스에 제공하는 단계를 포함하며,
상기 증거 정보는 상기 암호 기법 서비스가 암호화된 정보를 제공하는데 필요한, 컴퓨터-구현 방법.
3. 제 1 항 또는 제 2 항에 있어서,
상기 데이터 저장 서비스 이용 요청은, 데이터 저장 서비스를 이용하여 데이터 객체를 암호화된 형태로 저장하는 요청을 포함하고,
상기 정보는 데이터 객체의 암호화에 사용되는 제 2 키를 포함하며,
데이터 저장 서비스를 이용하여 암호화된 정보를 저장하는 단계는 데이터 저장 서비스를 이용하여 데이터 객체를 암호화된 형태로 저장하는 단계를 포함하는,
컴퓨터-구현 방법.
4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 방법은 또한,
데이터 저장 서비스로부터 데이터 객체를 불러오기하는 요청을 수신하는 단계와,
데이터 저장 서비스로부터 암호화된 정보를 획득하는 단계와,
암호 기법 서비스로 하여금 암호화된 정보를 해역하게 하는 단계와,
데이터 객체 불러오기를 위한 수신된 요청에 응답하여, 상기 정보를 이용하여 데이터 객체를 제공하는 단계를 포함하는, 컴퓨터-구현 방법.
5. 제 4 항에 있어서, 데이터 객체 불러오기를 위한 수신된 요청에 응답하여, 상기 정보를 이용하여 데이터 객체를 제공하는 단계는, 상기 키를 이용하여 암호화된 데이터 객체를 해역하는 단계를 포함하는, 컴퓨터-구현 방법.
6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서, 상기 방법은 또한,
암호화된 정보를 해역을 위해 암호 기법 서비스에 제공하는 단계와,
키에 대한 정책이, 사용될 키가 암호화된 정보를 해역할 수 있게 하는지 여부를 암호 기법 서비스로 하여금 점검하게 하고, 그리고 정책에 의해 허용될 때, 암호화된 정보를 암호 기법 서비스로 하여금 해역하게 하는 단계를 포함하는
컴퓨터-구현 방법.
7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서, 상기 방법은
키에 대한 정책을 나타내는 정보를 고객으로부터 수신하는 단계와,
나타나는 정책에 따라 암호 기법 서비스를 작동시키는 단계를 더 포함하는
컴퓨터-구현 방법.
8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
상기 키에 대한 정책을 암호 기법 서비스로부터 수신하는 단계와,
수신되는 정책이 요청을 충족시킬 수 있는지 여부를 점검하는 단계와,
상기 정책이 상기 요청을 충족시킬 수 있는지 여부에 좌우되도록, 암호 기법 서비스로 하여금 암호화된 정보를 제공하게 하는 단계와,
나타나는 정책에 따라 상기 암호 기법 서비스를 작동시키는 단계를 포함하는
컴퓨터-구현 방법.
9. 암호 기법 서비스 제공을 위한 컴퓨터-구현 방법에 있어서,
실행가능 명령어로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에,
서비스 이용을 위한 제 1 요청을 수신하는 서비스의 결과로, 상기 제 1 요청의 충족에 필요한 하나 이상의 암호 기법 작동 수행을 위한 제 2 요청을 수신하는 단계와,
요청된 하나 이상의 암호 기법 작동을 수행하는 단계와,
요청된 하나 이상의 암호 기법 작동의 하나 이상의 결과를 상기 서비스에 제공하는 단계 - 상기 하나 이상의 결과는 상기 서비스의 이용을 위한 수신된 요청을 충족시키는 적어도 하나의 방식을 위해 필요함 - 를 포함하는
컴퓨터-구현 방법.
10. 제 9 항에 있어서, 상기 하나 이상의 암호 기법 작동은 상기 데이터 서비스의 이용을 위한 수신되는 요청의 충족에 필요한 키의 해역을 포함하는, 컴퓨터-구현 방법.
11. 제 9 항 또는 제 10 항에 있어서,
상기 방법은 상기 데이터 서비스의 이용을 위한 수신된 요청이 진짜임을 검증하는 정보의 수신을 더 포함하고,
상기 하나 이상의 암호 기법 작동의 수행은 상기 서비스의 이용을 위한 수신된 요청이 진짜임을 검증하는 정보의 수신을 요구하는, 컴퓨터-구현 방법.
12. 제 9 항 내지 제 11 항 중 어느 한 항에 있어서, 상기 서비스의 이용을 위한 수신된 요청은 상기 서비스에 의해 저장되는 데이터의 획득 요청인, 컴퓨터-구현 방법.
13. 제 9 항 내지 제 12 항 중 어느 한 항에 있어서, 상기 서비스의 이용을 위한 수신된 요청은 상기 서비스를 이용한 데이터 저장 요청인, 컴퓨터-구현 방법.
14. 제 9 항 내지 제 13 항 중 어느 한 항에 있어서, 서로 다른 실체를 대행하여 상기 암호 기법 서비스에 의해 각기 관리되는 적어도 2개의 키를 포함하는 복수의 키로부터, 상기 하나 이상의 암호 기법 작동을 수행하기 위한 적어도 하나의 키를 선택하는 단계를 더 포함하는, 컴퓨터-구현 방법.
15. 제 9 항 내지 제 14 항 중 어느 한 항에 있어서,
상기 하나 이상의 암호 기법 작동은 키의 이용을 요구하고,
상기 방법은 상기 키에 대하여, 상기 키의 정책을 수신하는 단계를 더 포함하며,
상기 하나 이상의 암호 기법 작동의 수행은, 상기 하나 이상의 암호 기법 작동의 수행이 상기 수신되는 정책에 따를 것을 요구하는, 컴퓨터-구현 방법.
16. 제 9 항 내지 제 15 항 중 어느 한 항에 있어서,
상기 하나 이상의 암호 기법 작동의 수행에 이용가능한 키의 정책을 수신하는 단계와,
기존 정책이 상기 정책을 구현할 수 있는지 여부를 점검하는 단계와,
상기 정책의 구현을 불허하는 상기 기존 정책의 결과로 수신되는 정책을 거절하는 단계를 더 포함하는, 컴퓨터-구현 방법.
17. 컴퓨터 시스템에 있어서,
하나 이상의 프로세서와,
상기 컴퓨터 시스템을 통해 적어도 암호 기법 서비스를 구현하도록 하나 이상의 프로세서에 의해 실행가능한 명령어를 저장하는 메모리를 포함하되,
상기 암호 기법 서비스는 적어도,
상기 암호 기법 서비스와는 다른 서비스에 액세스불가능한 복수의 키를 저장하도록 구성되고,
상기 서비스에서 진행 중인 요청을 검출시, 상기 복수의 키로부터 일 키를 선택하고, 선택된 키를 이용하여, 진행 중인 요청의 충족에 필요한 하나 이상의 암호 기법 작동을 수행하도록 구성되는,
컴퓨터 시스템.
18. 제 17 항에 있어서,
상기 서비스에서 진행 중인 요청의 검출은, 상기 서비스로부터, 상기 서비스에서 진행 중인 요청의 통지 및 증거의 수신을 포함하는, 컴퓨터 시스템.
19. 제 17 항 또는 제 18 항에 있어서,
상기 컴퓨터 시스템은 컴퓨팅 리소스 서비스 제공자에 의해 작동되고,
상기 요청은 상기 컴퓨팅 리소스 제공자의 복수의 고객 중 일 고객에 의해 생성되며,
상기 복수의 키 중 각각의 키는 상기 컴퓨팅 리소스 제공자의 대응 고객을 갖는, 컴퓨터 시스템.
20. 제 17 항 내지 제 19 항 중 어느 한 항에 있어서,
상기 암호 기법 서비스는 진행 중인 요청이 인가됨을 검증하도록 또한 구성되는, 컴퓨터 시스템.
21. 제 17 항 내지 제 20 항 중 어느 한 항에 있어서,
상기 암호 기법 서비스의 출력을 수신하도록, 그리고, 상기 수신된 출력에 적어도 부분적으로 기초하여 어카운팅 레코드를 생성하도록, 구성되는 미터링 서비스를 더 포함하는, 컴퓨터 시스템.
22. 제 17 항 내지 제 21 항 중 어느 한 항에 있어서, 상기 암호 기법 서비스는 또한,
상기 복수의 키 중 적어도 일부분의 키 각각에 대해 하나 이상의 정책을 규정하는 정책 정보를 저장하도록 구성되고,
상기 규정된 하나 이상의 정책을 집행하도록 구성되는, 컴퓨터 시스템.
23. 제 22 항에 있어서,
상기 컴퓨터 시스템은 컴퓨팅 리소스 서비스 제공자에 의해 작동되고,
상기 복수의 키 중 각각의 키는 상기 컴퓨팅 리소스 제공자의 고객에 대응하며,
상기 암호 기법 서비스는,
상기 컴퓨팅 리소스 제공자의 고객으로부터 정책 업데이트를 수신하도록 구성되고,
상기 수신된 정책 업데이트에 따라 저장된 정책 정보를 업데이트하도록 구성되는, 컴퓨터 시스템.
24. 명령어를 저장한 컴퓨터-판독가능 저장 매체에 있어서, 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 명령어는 상기 컴퓨터 시스템으로 하여금, 적어도,
서비스 이용 요청을 수신하게 하고,
서비스 이용 요청을 수신한 결과로,
상기 요청에 적어도 부분적으로 기초하여, 상기 요청이 수신된 증거를 암호 기법 서비스에 제공하게 하며, 따라서, 암호 기법 서비스로 하여금, 키를 이용하여, 하나 이상의 암호 기법 작동이 수행된 후 서비스 이용 요청의 충족에 이용가능한 정보에 대한 하나 이상의 암호 기법 작동을 수행하게 하며,
하나 이상의 암호 기법 작동이 수행된 정보를 이용하여 서비스 이용 요청을 충족시키게 하는
컴퓨터-판독가능 저장 매체.
25. 제 24 항에 있어서, 상기 증거는 상기 서비스 이용 요청이 진짜임을 상기 암호 기법 서비스가 검증할 수 있게 하는 인증 정보를 포함하는
컴퓨터-판독가능 저장 매체.
26. 제 24 항 또는 제 25 항에 있어서,
서비스 이용 요청은 데이터 객체와 연계된 작동 수행 요청을 포함하고,
상기 정보는 데이터 객체 암호화에 사용되는 키인
컴퓨터-판독가능 저장 매체.
27. 제 24 항 내지 제 26 항 중 어느 한 항에 있어서,
상기 명령어는 하나 이상의 프로세서에 의해 실행될 때, 키에 대한 하나 이상의 정책을 암호 기법 서비스로 하여금 집행하게 하고, 상기 하나 이상의 정책은 상기 하나 이상의 암호 기법 작동이 상기 키를 이용하여 수행가능한지 여부를 결정할 수 있는
컴퓨터-판독가능 저장 매체.
28. 제 24 항 내지 제 27 항 중 어느 한 항에 있어서,
상기 서비스 이용 요청은 데이터 객체와 연계된 저장 작동 수행 요청인
컴퓨터-판독가능 저장 매체.
29. 제 24 항 내지 제 28 항 중 어느 한 항에 있어서,
암호 기법 서비스로 하여금 상기 키를 이용하여 하나 이상의 암호 기법 작동을 수행하게 함은, 암호 기법 서비스에 의해 저장되는 복수의 키로부터 상기 키를 암호 기법 서비스가 선택할 수 있도록 상기 키의 식별자를 제공함을 포함하는
컴퓨터-판독가능 저장 매체.
도 19는 다양한 실시예에 따른 형태들을 구현하기 위한 일례의 환경(1900)의 형태를 도시한다. 아다시피, 웹-기반 환경이 설명 용도로 사용되지만, 다양한 실시예의 구현을 위해, 적절하다면, 다른 환경이 사용될 수 있다. 환경은 적절한 네트워크(1904)를 통해 요청, 메시지, 또는 정보를 송신 및 수신하도록 작동가능한, 그리고 정보를 다시 디바이스 사용자에게 전달하도록 작동가능한, 임의의 적절한 디바이스를 포함할 수 있는 전자 클라이언트 디바이스(1902)를 포함한다. 이러한 클라이언트 디바이스의 예는 개인용 컴퓨터, 셀 폰, 핸드헬드 메시징 디바이스, 랩탑 컴퓨터, 셋탑 박스, PDA, 전자 북 리더, 등을 포함한다. 네트워크는 인트라넷, 인터넷, 셀룰러 네트워크, 근거리 네트워크, 또는 그외 다른 이러한 네트워크 또는 이들 간의 조합을 포함한, 임의의 적절한 네트워크를 포함할 수 있다. 이러한 시스템에 사용되는 구성요소들은 선택되는 환경 및/또는 네트워크의 타입에 적어도 부분적으로 좌우될 수 있다. 이러한 네트워크를 통해 통신하기 위한 프로토콜 및 구성요소는 잘 알려져 있고, 여기서 세부적으로 설명하지 않는다. 네트워크를 통한 통신은 유선 또는 무선 연결 및 이들의 조합을 통해 이네이블링될 수 있다. 본 예에서, 네트워크는 요청을 수신하고 그 응답으로 콘텐츠를 서빙하기 위한 웹 서버(1906)를 포함함에 따라, 인터넷을 포함하지만, 다른 네트워크의 경우, 유사 용도로 기능하는 대안의 디바이스들이 사용될 수 있고, 이는 당 업자에게 명백하다.
예시적인 환경은 적어도 하나의 애플리케이션 서버(1908) 및 데이터 스토어(1910)를 포함한다. 적절한 데이터 스토어로부터 데이터를 획득하는 것과 같이, 작업 수행을 위해 상호작용할 수 있도록, 사슬화되거나 구성될 수 있는, 여러 개의 애플리케이션 서버, 계층 또는 기타 요소, 프로세스, 또는 구성요소들이 존재할 수 있다. 여기서 사용되듯이, 용어 "데이터 스토어"는 임의의 표준적인, 분산형 또는 클러스터형 환경에서 임의의 조합 및 개수의 데이터 서버, 데이터베이스, 데이터 저장 디바이스, 및 데이터 저장 매체를 포함할 수 있는, 데이터를 저장, 액세스, 및 불러들일 수 있는 임의의 디바이스 또는 디바이스들의 조합을 의미한다. 애플리케이션 서버는 클라이언트 디바이스를 위한 하나 이상의 애플리케이션의 형태를 실행하기 위해 필요한 대로 데이터 스토어와 통합하기 위한, 그리고, 다수의 데이터 액세스 및 애플리케이션용 비즈니스 로직을 취급하기 위한, 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 애플리케이션 서버는 데이터 스토어와 연계하여 액세스 제어 서비스를 제공하고, 텍스트, 그래픽, 오디오, 및/또는 비디오와 같은 콘텐츠를 발생시킬 수 있으며, 이러한 콘텐츠는 본 예에서 "HTML"(HyperText Markup Language), "XML"(Extensible Markup Language), 또는 다른 적절한 구조의 언어의 형태로 웹 서버에 의해 사용자에게 서빙될 수 있다. 모든 요청 및 응답의 취급과, 클라이언트 디바이스(1902)와 애플리케이션 서버(1908) 사이의 콘텐츠의 전달은, 웹 서버에 의해 취급될 수 있다. 웹 및 애플리케이션 서버가 필수적인 것은 아니며, 단지 예시적인 구성요소일 뿐이며, 이는 여기서 논의되는 구조화된 코드가, 여기 다른 어디서 논의되는 임의의 적절한 디바이스 또는 호스트 기계 상에서 실행될 수 있기 때문이다.
데이터 스토어(1910)는 분리된 여러개의 데이터 테이블, 데이터베이스, 또는 특정 형태에 관한 데이터를 저장하기 위한 기타 데이터 저장 메커니즘 및 매체를 포함할 수 있다. 예를 들어, 도시되는 데이터 스토어는 생산 측의 콘텐츠 서빙에 사용될 수 있는 생산 데이터(1912) 및 사용자 정보(1916)를 저장하기 위한 메커니즘을 포함한다. 데이터 스토어는 또한, 보고, 분석, 또는 다른 이러한 용도로 사용될 수 있는, 로그 또는 데이터(1914)를 저장하기 위한 메커니즘을 포함하는 것으로 도시된다. 데이터 스토어(1910)에 적절한 것으로 또는 추가적인 메커니즘으로, 예를 들어, 위 나열된 메커니즘들 중 임의의 수단에 저장될 수 있는 페이지 이미지 정보를 위해, 그리고, 권리 정보로의 액세스를 위해, 데이터 스토어에 저장될 필요가 있는 많은 다른 형태들이 존재할 수 있다. 데이터 스토어(1910)는 연관 로직을 통해, 애플리케이션 서버(1908)로부터 명령어를 수신하도록 작동가능하고, 이에 응답하여 데이터를 획득, 업데이트, 또는 프로세싱하도록 작동가능하다. 한 예에서, 사용자는 소정 타입의 아이템에 대한 검색 요청을 제출할 수 있다. 이러한 경우에, 데이터 스토어는 사용자의 신원 검증을 위해 사용자 정보에 액세스할 수 있고, 카탈로그 상세 정보에 액세스하여 해당 타입의 위 아이템에 관한 정보를 획득할 수 있다. 정보는 그 후, 사용자 디바이스(1902) 상의 브라우저를 통해 사용자가 볼 수 있는 웹 페이지 상의 결과 리스팅에서와 같이, 사용자에게 되돌아올 수 있다. 특정 관심 아이템에 대한 정보는 브라우저의 전용 페이지 또는 윈도에서 볼 수 있다.
각각의 서버는 해당 서버의 일반적 관리 및 작동을 위한 실행가능 프로그램 명령어를 제공하는 운영 체제를 포함할 것이며, 통상적으로, 서버의 프로세서에 의해 실행될 때, 서버로 하여금 의도된 기능을 수행하게 하는 명령어를 저장한 컴퓨터-판독가능 매체(가령, 하드 디스크, 랜덤 액세스 메모리, 읽기 전용 메모리, 등)를 포함할 것이다. 운영 체제 및 서버의 일반적 기능에 대한 적절한 구현예가 잘 알려져 있거나 상업적으로 가용하며, 특히 여기 명세서에 비추어, 당 업자에 의해 쉽게 구현된다. 일부 실시예에서, 운영 체제는 EAL(Evaluation Assurance Level) 레벨 4와 같은 하나 이상의 비준 영역에 따라 구성되거나 이러한 영역 하에 비준될 수 있다.
일 실시예의 환경은 하나 이상의 컴퓨터 네트워크 또는 직접 연결을 이용하여, 통신 링크를 통해 상호연결되는 여러 개의 컴퓨터 시스템 및 구성요소를 이용하는 분산형 컴퓨팅 환경이다. 그러나, 이러한 시스템이 도 19에 도시되는 것보다 더 적은 수 또는 더 많은 수의 구성요소를 가지는 시스템에도 동등하게 잘 적용될 수 있음을 당 업자는 이해할 것이다. 따라서, 도 19의 시스템(1900)의 설명은 발명의 범위를 제한하는 것이 아니라 예시적인 속성으로 취급되어야 한다.
다양한 실시예는 또한, 일부 경우에, 다수의 애플리케이션 중 임의의 것의 작동에 사용될 수 있는, 하나 이상의 사용자 컴퓨터, 컴퓨팅 디바이스 또는 프로세싱 디바이스를 포함할 수 있는 폭넓고 다양한 작동 환경에서 구현될 수 있다. 사용자 또는 클라이언트 디바이스는 다수의 네트워킹 및 메시징 프로토콜을 지원할 수 있는, 모바일 소프트웨어를 가동하는 셀룰러, 무선, 및 핸드헬드 디바이스, 그리고, 표준 운영 체제를 가동하는 데스크탑 또는 랩탑 컴퓨터와 같은, 다수의 범용 개인용 컴퓨터 중 임의의 것을 포함할 수 있다. 이러한 시스템은 개발 및 데이터베이스 관리와 같은 용도를 위한, 다양한 상업적-가용 운영 체제 및 기타 알려진 애플리케이션 중 임의의 것을 가동하는 다수의 워크스테이션을 또한 포함할 수 있다. 이러한 디바이스들은 더미 터미널, 신(thin)-클라이언트, 게임 시스템, 및 네트워크를 통해 통신할 수 있는 기타 디바이스와 같은, 기타 전자 디바이스를 또한 포함할 수 있다.
대부분의 실시예는 "TCP/IP"(Transmission Control Protocol/Internet Protocol), "OSI"(Open System Interconnection), "FTP"(File Transfer Protocol), "UpnP"(Universal Plug and Play), "NFS"(Network File System), "CIFS"(Common Internet File System), 및 AppleTalk과 같은, 다양한 상업적-가용 모델 및 프로토콜 중 임의의 프로토콜을 이용하여 통신을 지원하기 위해 당 업자에게 친숙한 적어도 하나의 네트워크를 이용한다. 네트워크는 예를 들어, 근거리망, 광역망, 가상 사설망, 인터넷, 인트라넷, 엑스트라넷, 공중 교환 전화망, 적외선망, 무선망, 및 이들의 임의의 조합일 수 있다.
웹 서버를 이용하는 실시예에서, 웹 서버는 "HTTP"(Hypertext Transfer Protocol) 서버, FTP 서버, "CGI"(Common Gateway Interface) 서버, 데이터 서버, 자바 서버, 및 비즈니스 애플리케이션 서버를 포함한, 다양한 서버 또는 미드-타이어 애플리케이션 중 임의의 것을 가동할 수 있다. 서버는 자바®, C, C#, 또는 C++와 같은 임의의 프로그래밍 언어, 또는, Perl, Python, 또는 TCL과 같은 임의의 스트립팅 언어, 그리고 이들의 조합으로 기록된 하나 이상의 스크립트 또는 프로그램으로 구현될 수 있는 하나 이상의 웹 애플리케이션을 실행하는 등과 같은 방식으로, 사용자 디바이스로부터의 응답 요청에, 프로그램 또는 스크립트를 또한 실행할 수 있다. 서버는 Oracle®, Microsoft®, Sybase®, 및 IBM®으로부터 상업적으로 가용한 제품을 제한없이 포함하는 데이터베이스 서버를 또한 포함할 수 있다.
환경은 앞서 논의한 다양한 데이터 스토어 및 기타 메모리 및 저장 미디어를 포함할 수 있다. 이들은 네트워크 간 컴퓨터 전부 또는 일부로부터 떨어진, 또는 컴퓨터들 중 하나 이상에 대해 국부적인(및/또는 내부에 위치하는)저장 매체와 같이, 다양한 위치에 놓일 수 있다. 특정 세트의 실시예에서, 정보는 당 업자에게 친숙한 저장 영역 네트워크("SAN")에 위치할 수 있다. 마찬가지로, 컴퓨터, 서버, 또는 다른 네트워크 서비스에 기여하는 기능을 수행하기 위한 임의의 필요 파일들은 적절한 대로 국부적으로 및/또는 원격으로 저장될 수 있다. 시스템이 컴퓨터화된 디바이스를 포함하는 경우에, 이러한 각각의 디바이스는 버스를 통해 전기적으로 연결될 수 있는 하드웨어 요소들을 포함할 수 있으며, 상기 요소는 예를 들어, 적어도 하나의 중앙 프로세싱 유닛(CPU), 적어도 하나의 입력 디바이스(가령, 마우스, 키보드, 컨트롤러, 터치 스크린, 또는 키패드), 및 적어도 하나의 출력 디바이스(가령, 디스플레이 디바이스, 프린터, 또는 스피커)를 포함한다. 이러한 시스템은 하나 이상의 저장 디바이스, 가령, 디스크 드라이브, 광학 저장 디바이스, 그리고, 고상 저장 디바이스, 가령, 랜덤 액세스 메모리("RAM") 또는 읽기-전용 메모리("ROM"), 그리고 제거가능 매체 디바이스, 메모리 카드, 플래시 카드, 등을 또한 포함할 수 있다. 본 발명의 다양한 실시예는 또한, 주문형 암호 기법 프로세서, 스마트 카드, 및/또는 하드웨어 보안 모듈을 포함하는, 그러나 이에 제한되지 않는, 주문형 하드웨어를 이용하여 구현될 수 있다.
이러한 디바이스는 앞서 설명한 바의 컴퓨터 판독가능 저장 매체 판독기, 통신 디바이스(가령, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 카드, 등), 및 작업 메모리를 또한 포함할 수 있다. 컴퓨터-판독가능 저장 매체 판독기는 컴퓨터 판독가능 정보를 일시적으로 및/또는 더 영구적으로 지니고, 저장하며, 전송하고, 불러드리기 위한 저장 매체와, 원격, 로컬, 고정, 및/또는 제거가능형 저장 디바이스를 나타내는 컴퓨터 판독가능 저장 매체와 연결될 수 있고, 또는 이를 수용하도록 구성될 수 있다. 시스템 및 다양한 디바이스들은 또한, 클라이언트 애플리케이션 또는 웹 브라우저와 같은, 애플리케이션 프로그램 및 운영 체제를 포함한, 적어도 하나의 작업 메모리 디바이스 내에 위치한 다수의 소프트웨어 애플리케이션, 모듈, 서비스, 또는 기타 요소들을 통상적으로 포함할 것이다. 대안의 실시예는 앞서 설명한 것으로부터 수많은 변형을 가질 수 있다. 예를 들어, 주문형 하드웨어가 또한 사용될 수 있고, 및/또는 특정 요소들이 하드웨어적으로, 소프트웨어적으로(애플릿과 같은 포터블 소프트웨어 포함), 또는 둘 모두로 구현될 수 있다. 더욱이, 네트워크 입/출력 디바이스와 같은 다른 컴퓨팅 디바이스에 대한 연결이 이용될 수 있다.
코드 또는 코드의 일부분을 지니기 위한 저장 매체 및 컴퓨터 판독가능 매체는 당 분야에 알려진 또는 사용되는 임의의 적절한 매체를 포함할 수 있고, 저장 매체 및 통신 매체를 포함하되, 예를 들어, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장 및/또는 전송을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 제거가능 및 제거불가능 매체를 포함하며, 예를 들어, RAM, ROM, "EEPROM"(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리, 또는 다른 메모리 기술, "CD-ROM"(Compact Disc Read-Only Memory), 디지털 다용도 디스크(DVD), 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스, 또는 요망 정보 저장에 사용될 수 있는 그리고 시스템 디바이스에 의해 액세스될 수 있는 그외 다른 매체를 포함하지만, 이에 제한되지 않는다. 여기서 제공되는 개시내용 및 설명에 기초하여, 당 업자는 다양한 실시예의 구현을 위한 다른 방식 및/또는 방법을 이해할 것이다.
따라서, 명세서 및 도면은 제한적인 측면보다는 예시적인 면으로 간주되어야 한다. 그러나, 다양한 변형에 및 변화가 청구범위에서 제시되는 발명의 더 넓은 사상 및 범위로부터 벗어나지 않으면서 이루어질 수 있다.
다른 변형예도 본 발명의 범위 내에 있다. 따라서, 개시되는 기술이 다양한 변형예 및 대안의 구조를 가질 수 있지만, 소정의 예시되는 실시예들이 도면에 도시되고 앞서 세부적으로 설명된 바 있다. 그러나, 발명을 구체적 형태로 또는 개시되는 형태로 제한하고자 하는 의도가 전혀 없으며, 반대로, 발명은 첨부 청구범위에서 규정되는 바와 같이, 발명의 사상 및 범위 내에 있는 모든 변형예, 대안의 구조, 및 등가물을 커버할 것이다.
개시되는 실시예를 설명하는 범주에서 용어 "일", "하나의", "이러한" 및 유사 지시어들의 이용은, 여기서 달리 명시하지 않을 경우 또는 범주에 의해 명확하게 모순되지 않을 경우, 단수 및 복수를 모두 커버하는 것으로 간주되어야 한다. 용어 "포함하는", "가진", "구비한", 및 "지닌"은 달리 언급되지 않을 경우 열린 구간의 용어로 간주되어야 한다(즉, "포함하지만 제한되지 않는"의 의미). 용어 "연결된"은 중간에 무언가 껴있더라도, 부분적으로 또는 완전히 수용되거나, 부착되거나, 또는 함께 결합되는 것으로 간주되어야 한다. 여기서 값들의 범위의 언급은 달리 여기서 표시하지 않을 경우, 범위 내에 있는 각각의 개별 값을 개별적으로 언급하는 약칭법으로 기능하는 것을 의도할 뿐이며, 각각의 개별 값 마치 여기서 개별적으로 언급되는 것처럼 명세서에 포함된다. 여기서 설명되는 모든 방법은 달리 여기서 표시되지 않을 경우, 또는, 그렇지 않고 범주에 의해 명확히 모순되지 않을 경우, 임의의 적절한 순서로 수행될 수 있다. 여기서 제공되는 어떤 그리고 모든 예 또는 예시적인 언어(가령, "와 같은")의 이용은, 발명의 실시예를 더 잘 나타내기 위한 것일 뿐이고, 달리 청구되지 않을 경우 발명의 범위에 대한 제한을 가하지 않는다. 명세서 내 어떤 표현도 발명의 실시에 본질적인 것으로 청구되지 않는 요소를 표시하는 것으로 간주되면 안된다.
본 발명의 선호되는 실시예가 여기서 설명되며, 발명을 실시하기 위해 발명자에게 알려진 최적 모드를 포함한다. 선호되는 실시예의 변형예들이, 앞서의 설명을 읽고나면 당 업자에게 명백해질 수 있다. 발명자는 당 업자들이 이러한 변형을 적절히 이용하는 것을 기대하며, 발명자는 여기서 구체적으로 명시한 것과는 달리 발명이 실시되는 것을 의도한다. 따라서, 본 발명은 적용가능한 법에 의해 허용되는 한, 여기에 첨부된 청구범위에서 언급되는 본 발명의 모든 변형예 및 등가물을 포함한다. 더욱이, 모든 가능한 변형예에서 위에서 설명한 요소들의 임의의 조합이, 여기서 달리 표시되거나 범주에 의해 명백하게 모순되지 않을 경우, 발명에 의해 포괄된다.
여기서 언급되는 공보, 특허 출원, 및 특허를 포함한 모든 인용문헌은, 마치 각각의 인용문헌이 참고자료로 개별적으로 그리고 구체적으로 포함된다고 표시되어 그 전체가 여기서 제시되는 것과 동일한 수준으로 참고자료로 여기에 포함된다.

Claims (15)

  1. 암호 기법 서비스 제공을 위한 컴퓨터-구현 방법에 있어서,
    실행가능 명령어로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에,
    서비스 이용을 위한 제 1 요청을 수신하는 서비스의 결과로, 상기 제 1 요청의 충족에 필요한 하나 이상의 암호 기법 작동 수행을 위한 제 2 요청을 수신하는 단계와,
    요청된 하나 이상의 암호 기법 작동을 수행하는 단계와,
    요청된 하나 이상의 암호 기법 작동의 하나 이상의 결과를 상기 서비스에 제공하는 단계 - 상기 하나 이상의 결과는 상기 서비스의 이용을 위한 수신된 요청을 충족시키는 적어도 하나의 방식을 위해 필요함 - 를 포함하는
    컴퓨터-구현 방법.
  2. 제 1 항에 있어서, 상기 하나 이상의 암호 기법 작동은 상기 데이터 서비스의 이용을 위한 수신되는 요청의 충족에 필요한 키의 해역을 포함하는, 컴퓨터-구현 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 방법은 상기 데이터 서비스의 이용을 위한 수신된 요청이 진짜임을 검증하는 정보의 수신을 더 포함하고,
    상기 하나 이상의 암호 기법 작동의 수행은 상기 서비스의 이용을 위한 수신된 요청이 진짜임을 검증하는 정보의 수신을 요구하는, 컴퓨터-구현 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 서비스의 이용을 위한 수신된 요청은 상기 서비스에 의해 저장되는 데이터의 획득 요청인, 컴퓨터-구현 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 상기 서비스의 이용을 위한 수신된 요청은 상기 서비스를 이용한 데이터 저장 요청인, 컴퓨터-구현 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서, 서로 다른 실체를 대행하여 상기 암호 기법 서비스에 의해 각기 관리되는 적어도 2개의 키를 포함하는 복수의 키로부터, 상기 하나 이상의 암호 기법 작동을 수행하기 위한 적어도 하나의 키를 선택하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 하나 이상의 암호 기법 작동은 키의 이용을 요구하고,
    상기 방법은 상기 키에 대하여, 상기 키의 정책을 수신하는 단계를 더 포함하며,
    상기 하나 이상의 암호 기법 작동의 수행은, 상기 하나 이상의 암호 기법 작동의 수행이 상기 수신되는 정책에 따를 것을 요구하는, 컴퓨터-구현 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 하나 이상의 암호 기법 작동의 수행에 이용가능한 키의 정책을 수신하는 단계와,
    기존 정책이 상기 정책을 구현할 수 있는지 여부를 점검하는 단계와,
    상기 정책의 구현을 불허하는 상기 기존 정책의 결과로 수신되는 정책을 거절하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  9. 컴퓨터 시스템에 있어서,
    하나 이상의 프로세서와,
    상기 컴퓨터 시스템을 통해 적어도 암호 기법 서비스를 구현하도록 하나 이상의 프로세서에 의해 실행가능한 명령어를 저장하는 메모리를 포함하되,
    상기 암호 기법 서비스는 적어도,
    상기 암호 기법 서비스와는 다른 서비스에 액세스불가능한 복수의 키를 저장하도록 구성되고,
    상기 서비스에서 진행 중인 요청을 검출시, 상기 복수의 키로부터 일 키를 선택하고, 선택된 키를 이용하여, 진행 중인 요청의 충족에 필요한 하나 이상의 암호 기법 작동을 수행하도록 구성되는,
    컴퓨터 시스템.
  10. 제 9 항에 있어서,
    상기 서비스에서 진행 중인 요청의 검출은, 상기 서비스로부터, 상기 서비스에서 진행 중인 요청의 통지 및 증거의 수신을 포함하는, 컴퓨터 시스템.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 컴퓨터 시스템은 컴퓨팅 리소스 서비스 제공자에 의해 작동되고,
    상기 요청은 상기 컴퓨팅 리소스 제공자의 복수의 고객 중 일 고객에 의해 생성되며,
    상기 복수의 키 중 각각의 키는 상기 컴퓨팅 리소스 제공자의 대응 고객을 갖는, 컴퓨터 시스템.
  12. 제 9 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 암호 기법 서비스는 진행 중인 요청이 인가됨을 검증하도록 또한 구성되는, 컴퓨터 시스템.
  13. 제 9 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 암호 기법 서비스의 출력을 수신하도록, 그리고, 상기 수신된 출력에 적어도 부분적으로 기초하여 어카운팅 레코드를 생성하도록, 구성되는 미터링 서비스를 더 포함하는, 컴퓨터 시스템.
  14. 제 9 항 내지 제 13 항 중 어느 한 항에 있어서, 상기 암호 기법 서비스는 또한,
    상기 복수의 키 중 적어도 일부분의 키 각각에 대해 하나 이상의 정책을 규정하는 정책 정보를 저장하도록 구성되고,
    상기 규정된 하나 이상의 정책을 집행하도록 구성되는, 컴퓨터 시스템.
  15. 제 14 항에 있어서,
    상기 컴퓨터 시스템은 컴퓨팅 리소스 서비스 제공자에 의해 작동되고,
    상기 복수의 키 중 각각의 키는 상기 컴퓨팅 리소스 제공자의 고객에 대응하며,
    상기 암호 기법 서비스는,
    상기 컴퓨팅 리소스 제공자의 고객으로부터 정책 업데이트를 수신하도록 구성되고,
    상기 수신된 정책 업데이트에 따라 저장된 정책 정보를 업데이트하도록 구성되는, 컴퓨터 시스템.
KR1020157024666A 2013-02-12 2014-02-07 데이터 보안 서비스 KR101769282B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/764,963 US9590959B2 (en) 2013-02-12 2013-02-12 Data security service
US13/764,963 2013-02-12
PCT/US2014/015404 WO2014126813A1 (en) 2013-02-12 2014-02-07 Data security service

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177022249A Division KR102055116B1 (ko) 2013-02-12 2014-02-07 데이터 보안 서비스

Publications (2)

Publication Number Publication Date
KR20150119112A true KR20150119112A (ko) 2015-10-23
KR101769282B1 KR101769282B1 (ko) 2017-08-18

Family

ID=51298333

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177022249A KR102055116B1 (ko) 2013-02-12 2014-02-07 데이터 보안 서비스
KR1020157024666A KR101769282B1 (ko) 2013-02-12 2014-02-07 데이터 보안 서비스

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177022249A KR102055116B1 (ko) 2013-02-12 2014-02-07 데이터 보안 서비스

Country Status (10)

Country Link
US (2) US9590959B2 (ko)
EP (2) EP2956852B1 (ko)
JP (3) JP6290932B2 (ko)
KR (2) KR102055116B1 (ko)
CN (2) CN111147255B (ko)
AU (2) AU2014216607B2 (ko)
BR (1) BR112015019378B1 (ko)
CA (2) CA2898995C (ko)
SG (3) SG10202108884YA (ko)
WO (1) WO2014126813A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5982343B2 (ja) 2012-10-17 2016-08-31 ボックス インコーポレイテッドBox, Inc. クラウドベース環境におけるリモートキー管理
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9697358B2 (en) * 2013-06-13 2017-07-04 Google Inc. Non-volatile memory operations
US9456003B2 (en) 2013-07-24 2016-09-27 At&T Intellectual Property I, L.P. Decoupling hardware and software components of network security devices to provide security software as a service in a distributed computing environment
US9298942B1 (en) * 2013-12-31 2016-03-29 Google Inc. Encrypted augmentation storage
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10560441B2 (en) * 2014-12-17 2020-02-11 Amazon Technologies, Inc. Data security operations with expectations
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
CN104683350A (zh) * 2015-03-13 2015-06-03 北京深思数盾科技有限公司 一种可扩展的信息安全服务系统及方法
US9727742B2 (en) * 2015-03-30 2017-08-08 Airbnb, Inc. Database encryption to provide write protection
US10469477B2 (en) * 2015-03-31 2019-11-05 Amazon Technologies, Inc. Key export techniques
US10237246B1 (en) 2015-07-31 2019-03-19 Symphony Communication Services Holdings Llc Secure message search
US9767318B1 (en) 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
US10412068B2 (en) * 2015-12-07 2019-09-10 Salesforce.Com, Inc. API authentication
US20170187752A1 (en) * 2015-12-24 2017-06-29 Steffen SCHULZ Remote attestation and enforcement of hardware security policy
CN107347058B (zh) * 2016-05-06 2021-07-23 阿里巴巴集团控股有限公司 数据加密方法、数据解密方法、装置及系统
US10581807B2 (en) * 2016-08-29 2020-03-03 International Business Machines Corporation Using dispersal techniques to securely store cryptographic resources and respond to attacks
KR102163597B1 (ko) * 2016-09-23 2020-10-08 애플 인크. 전자 디바이스 상에서의 다수의 사용자의 크리덴셜 관리
US10819709B1 (en) * 2016-09-26 2020-10-27 Symphony Communication Services Holdings Llc Authorizing delegated capabilities to applications in a secure end-to-end communications system
US10579443B2 (en) * 2016-12-27 2020-03-03 Dropbox, Inc. Kernel event triggers for content item security
US10331623B2 (en) 2017-10-16 2019-06-25 Dropbox, Inc. Workflow functions of content management system enforced by client device
US10623183B2 (en) * 2017-11-01 2020-04-14 International Business Machines Corporation Postponing entropy depletion in key management systems with hardware security modules
CN108259169B (zh) * 2018-01-09 2021-07-20 北京大学深圳研究生院 一种基于区块链云存储的文件安全分享方法及系统
US10728025B2 (en) 2018-04-13 2020-07-28 Amazon Technologies, Inc. Encryption by default in an elastic computing system
US11132673B1 (en) * 2018-04-25 2021-09-28 Dmitry Mikhailov Use of secure chips for storage of hashed data and private keys in hardware cryptowallets
US11005971B2 (en) * 2018-08-02 2021-05-11 Paul Swengler System and method for user device authentication or identity validation without passwords or matching tokens
US10867052B1 (en) * 2018-09-25 2020-12-15 Amazon Technologies, Inc. Encryption intermediary for volume creation
US20200111080A1 (en) * 2018-10-08 2020-04-09 BitGo Holdings, Inc. Security Secret Interface and Token Wrap Structure Apparatuses, Methods and Systems
US11128459B2 (en) * 2018-11-28 2021-09-21 Its, Inc. Mitigating service disruptions in key maintenance
EP3622665B1 (en) 2019-03-29 2021-07-28 Advanced New Technologies Co., Ltd. Cryptography chip with identity verification
CA3058242C (en) 2019-03-29 2022-05-31 Alibaba Group Holding Limited Managing cryptographic keys based on identity information
AU2019204711B2 (en) 2019-03-29 2020-07-02 Advanced New Technologies Co., Ltd. Securely performing cryptographic operations
KR102381153B1 (ko) 2019-03-29 2022-03-30 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 신원 정보에 기초한 암호화 키 관리
EP3748526A1 (en) * 2019-06-05 2020-12-09 Mastercard International Incorporated Security model for distributed computing system
EP4184365A1 (en) * 2019-06-05 2023-05-24 Mastercard International Incorporated Credential management in distributed computing system
WO2020247093A1 (en) * 2019-06-05 2020-12-10 Mastercard International Incorporated Security model for distributed computing system
CN112003690B (zh) * 2019-08-16 2024-01-12 华控清交信息科技(北京)有限公司 密码服务系统、方法及装置
US11411731B2 (en) * 2019-09-03 2022-08-09 Fujitsu Limited Secure API flow
US11790092B1 (en) * 2020-05-26 2023-10-17 Amazon Technologies, Inc. Cryptoprocessor access management
US11475140B1 (en) * 2020-11-24 2022-10-18 Amazon Technologies, Inc. Enclave-based cryptography services in edge computing environments
US11556659B1 (en) 2021-03-03 2023-01-17 Amazon Technologies, Inc. Partially encrypted snapshots

Family Cites Families (234)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US809112A (en) * 1905-06-28 1906-01-02 Dolphis Joyal Lamp-burner.
US6175625B1 (en) 1944-12-15 2001-01-16 The United States Of America As Represented By The National Security Agency Control circuits for electric coding machines
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4918728A (en) 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
US5054067A (en) 1990-02-21 1991-10-01 General Instrument Corporation Block-cipher cryptographic device based upon a pseudorandom nonlinear sequence generator
US5146498A (en) 1991-01-10 1992-09-08 Motorola, Inc. Remote key manipulations for over-the-air re-keying
US5201000A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5495533A (en) 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
US7904722B2 (en) * 1994-07-19 2011-03-08 Certco, Llc Method for securely using digital signatures in a commercial cryptographic system
US5826245A (en) 1995-03-20 1998-10-20 Sandberg-Diment; Erik Providing verification information for a transaction
US5633931A (en) 1995-06-30 1997-05-27 Novell, Inc. Method and apparatus for calculating message signatures in advance
US5675653A (en) 1995-11-06 1997-10-07 Nelson, Jr.; Douglas Valmore Method and apparatus for digital encryption
US5761306A (en) 1996-02-22 1998-06-02 Visa International Service Association Key replacement in a public key cryptosystem
US5933503A (en) 1996-03-15 1999-08-03 Novell, Inc Controlled modular cryptography apparatus and method
US5862220A (en) 1996-06-03 1999-01-19 Webtv Networks, Inc. Method and apparatus for using network address information to improve the performance of network transactions
US6012144A (en) 1996-10-08 2000-01-04 Pickett; Thomas E. Transaction security method and apparatus
JP3542895B2 (ja) 1997-08-22 2004-07-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 時間制約暗号システム
US6182216B1 (en) 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
US6259789B1 (en) 1997-12-12 2001-07-10 Safecourier Software, Inc. Computer implemented secret object key block cipher encryption and digital signature device and method
US6185679B1 (en) 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
JP3659791B2 (ja) 1998-03-23 2005-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 小時間鍵生成の方法及びシステム
US6336186B1 (en) 1998-07-02 2002-01-01 Networks Associates Technology, Inc. Cryptographic system and methodology for creating and managing crypto policy on certificate servers
JP3939453B2 (ja) * 1999-01-22 2007-07-04 三菱電機株式会社 情報仲介システム
US6356941B1 (en) 1999-02-22 2002-03-12 Cyber-Ark Software Ltd. Network vaults
US6505299B1 (en) 1999-03-01 2003-01-07 Sharp Laboratories Of America, Inc. Digital image scrambling for image coding systems
US6546492B1 (en) 1999-03-26 2003-04-08 Ericsson Inc. System for secure controlled electronic memory updates via networks
JP2000295209A (ja) 1999-04-09 2000-10-20 Ntt Data Corp 鍵管理方法、鍵管理システム及び記録媒体
JP4132530B2 (ja) 2000-01-24 2008-08-13 株式会社リコー 電子保存装置
US8868914B2 (en) 1999-07-02 2014-10-21 Steven W. Teppler System and methods for distributing trusted time
SE9904094D0 (sv) 1999-11-12 1999-11-12 Protegrity Research & Dev Method for reencryption of a database
US6826609B1 (en) 2000-03-31 2004-11-30 Tumbleweed Communications Corp. Policy enforcement in a secure data file delivery system
DE10025626A1 (de) 2000-05-24 2001-11-29 Deutsche Telekom Ag Verschlüsseln von abzuspeichernden Daten in einem IV-System
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US7362868B2 (en) 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US20030021417A1 (en) 2000-10-20 2003-01-30 Ognjen Vasic Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US6986040B1 (en) 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel
GB2385177B (en) 2000-11-28 2005-06-22 Sanyo Electric Co Data terminal device for administering licence used for decrypting and utilizing encrypted content data
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7050583B2 (en) 2001-03-29 2006-05-23 Etreppid Technologies, Llc Method and apparatus for streaming data using rotating cryptographic keys
CA2358048A1 (en) 2001-09-25 2003-03-25 Luis Rueda A cryptosystem for data security
CA2358980A1 (en) 2001-10-12 2003-04-12 Karthika Technologies Inc. Distributed security architecture for storage area networks (san)
US7200747B2 (en) 2001-10-31 2007-04-03 Hewlett-Packard Development Company, L.P. System for ensuring data privacy and user differentiation in a distributed file system
US7243366B2 (en) 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US20020076044A1 (en) 2001-11-16 2002-06-20 Paul Pires Method of and system for encrypting messages, generating encryption keys and producing secure session keys
US7865446B2 (en) 2001-12-11 2011-01-04 International Businesss Machines Corporation Method for secure electronic commercial transaction on-line processing
US7580972B2 (en) 2001-12-12 2009-08-25 Valve Corporation Method and system for controlling bandwidth on client and server
JP4291970B2 (ja) 2001-12-20 2009-07-08 富士通株式会社 暗号処理装置
US7117366B2 (en) * 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US7376967B1 (en) * 2002-01-14 2008-05-20 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
US7146009B2 (en) * 2002-02-05 2006-12-05 Surety, Llc Secure electronic messaging system requiring key retrieval for deriving decryption keys
JP3897613B2 (ja) 2002-02-27 2007-03-28 株式会社日立製作所 公開鍵暗号方式における登録局サーバの運用方法、登録局サーバ、及びプログラム
US20030188188A1 (en) 2002-03-15 2003-10-02 Microsoft Corporation Time-window-constrained multicast for future delivery multicast
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
CA2486713A1 (en) 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
US20040009815A1 (en) 2002-06-26 2004-01-15 Zotto Banjamin O. Managing access to content
WO2004008676A2 (en) 2002-07-12 2004-01-22 Ingrian Networks, Inc. Network attached encryption
US7620680B1 (en) 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US7877607B2 (en) 2002-08-30 2011-01-25 Hewlett-Packard Development Company, L.P. Tamper-evident data management
FR2844656B1 (fr) 2002-09-18 2005-01-28 France Telecom Procede de signature electronique, programme et serveur pour la mise en oeuvre du procede
US8064508B1 (en) 2002-09-19 2011-11-22 Silicon Image, Inc. Equalizer with controllably weighted parallel high pass and low pass filters and receiver including such an equalizer
US20040107345A1 (en) 2002-10-21 2004-06-03 Brandt David D. System and methodology providing automation security protocols and intrusion detection in an industrial controller environment
US7565419B1 (en) 2002-11-22 2009-07-21 Symantec Operating Corporation Conflict resolution in a peer to peer network
US20040143733A1 (en) 2003-01-16 2004-07-22 Cloverleaf Communication Co. Secure network data storage mediator
GB2400699B (en) 2003-04-17 2006-07-05 Hewlett Packard Development Co Security data provision method and apparatus and data recovery method and system
US20050015471A1 (en) * 2003-07-18 2005-01-20 Zhang Pu Paul Secure cluster configuration data set transfer protocol
JP4062206B2 (ja) 2003-08-01 2008-03-19 日本電気株式会社 署名復号サービスシステム及びプログラム
JP2005151529A (ja) 2003-10-20 2005-06-09 Sony Corp データ伝送方法、データ伝送装置及びデータ受信装置
US7421079B2 (en) 2003-12-09 2008-09-02 Northrop Grumman Corporation Method and apparatus for secure key replacement
US8065720B1 (en) 2004-01-06 2011-11-22 Novell, Inc. Techniques for managing secure communications
JP2005197912A (ja) 2004-01-06 2005-07-21 Nippon Telegr & Teleph Corp <Ntt> 情報開示制御方法、情報開示制御プログラム、ならびに、耐タンパ装置
US7296023B2 (en) 2004-01-15 2007-11-13 International Business Machines Corporation Method and apparatus for persistent real-time collaboration
JP2005258801A (ja) 2004-03-11 2005-09-22 Matsushita Electric Ind Co Ltd 個人認証システム
EP2267625A3 (en) 2004-04-19 2015-08-05 Lumension Security S.A. On-line centralized and local authorization of executable files
US7894604B2 (en) 2004-05-17 2011-02-22 Mitsubishi Electric Corporation Quantum cryptographic communication apparatus
US20050273629A1 (en) 2004-06-04 2005-12-08 Vitalsource Technologies System, method and computer program product for providing digital rights management of protected content
US20060010323A1 (en) 2004-07-07 2006-01-12 Xerox Corporation Method for a repository to provide access to a document, and a repository arranged in accordance with the same method
JP4847328B2 (ja) 2004-07-15 2011-12-28 パナソニック株式会社 時刻認証装置、時刻認証方法、コンピュータプログラム、記録媒体、集積回路及び時刻認証システム
US20060021018A1 (en) 2004-07-21 2006-01-26 International Business Machines Corporation Method and system for enabling trust infrastructure support for federated user lifecycle management
US20060048222A1 (en) 2004-08-27 2006-03-02 O'connor Clint H Secure electronic delivery seal for information handling system
JP4794560B2 (ja) 2004-08-31 2011-10-19 株式会社エヌ・ティ・ティ・ドコモ 暗号デジタル証明書の失効
US8315387B2 (en) 2004-11-05 2012-11-20 Nucrypt Llc System and method for data transmission over arbitrary media using physical encryption
US7607164B2 (en) 2004-12-23 2009-10-20 Microsoft Corporation Systems and processes for managing policy change in a distributed enterprise
JP4714482B2 (ja) 2005-02-28 2011-06-29 株式会社日立製作所 暗号通信システムおよび方法
US7900247B2 (en) 2005-03-14 2011-03-01 Microsoft Corporation Trusted third party authentication for web services
US7774826B1 (en) 2005-03-18 2010-08-10 Novell, Inc. System and method for determining effective policy profiles in a client-server architecture
JP4622627B2 (ja) 2005-03-30 2011-02-02 ブラザー工業株式会社 通信装置、通信システム及びプログラム
US8051487B2 (en) 2005-05-09 2011-11-01 Trend Micro Incorporated Cascading security architecture
US8312064B1 (en) 2005-05-11 2012-11-13 Symantec Corporation Method and apparatus for securing documents using a position dependent file system
US7639819B2 (en) 2005-06-16 2009-12-29 Oracle International Corporation Method and apparatus for using an external security device to secure data in a database
US8295492B2 (en) 2005-06-27 2012-10-23 Wells Fargo Bank, N.A. Automated key management system
US7784087B2 (en) 2005-08-04 2010-08-24 Toshiba Corporation System and method for securely sharing electronic documents
US8917159B2 (en) 2005-08-19 2014-12-23 CLARKE William McALLISTER Fully secure item-level tagging
US8566607B2 (en) 2005-08-26 2013-10-22 International Business Machines Corporation Cryptography methods and apparatus used with a processor
JP2007081482A (ja) 2005-09-09 2007-03-29 Canon Inc 端末認証方法及びその装置、プログラム
JP4569464B2 (ja) 2005-12-20 2010-10-27 沖電気工業株式会社 マルチホップネットワークにおける鍵更新システム,鍵管理装置,通信端末および鍵情報構築方法
US7912994B2 (en) 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
US7925023B2 (en) 2006-03-03 2011-04-12 Oracle International Corporation Method and apparatus for managing cryptographic keys
US7751570B2 (en) 2006-04-04 2010-07-06 Oracle International Corporation Method and apparatus for managing cryptographic keys
US8064604B2 (en) 2006-04-04 2011-11-22 Oracle International Corporation Method and apparatus for facilitating role-based cryptographic key management for a database
JP2007293468A (ja) 2006-04-24 2007-11-08 Fujifilm Corp プリントサービスシステムおよびプリント処理方法
US9002018B2 (en) 2006-05-09 2015-04-07 Sync Up Technologies Corporation Encryption key exchange system and method
US20080005024A1 (en) 2006-05-17 2008-01-03 Carter Kirkwood Document authentication system
US20070283446A1 (en) 2006-06-05 2007-12-06 Kabushiki Kaisha Toshiba System and method for secure handling of scanned documents
US20080019516A1 (en) 2006-06-22 2008-01-24 Entriq Inc. Enforced delay of access to digital content
JP4943751B2 (ja) 2006-07-04 2012-05-30 株式会社内田洋行 電子データアクセス制御システム、プログラム及び情報記憶媒体
US20080025514A1 (en) 2006-07-25 2008-01-31 Coombs Jason S Systems And Methods For Root Certificate Update
US8689287B2 (en) 2006-08-17 2014-04-01 Northrop Grumman Systems Corporation Federated credentialing system and method
US20100316219A1 (en) 2007-08-06 2010-12-16 David Boubion Systems and methods for simultaneous integrated multiencrypted rotating key communication
US7953978B2 (en) 2006-09-07 2011-05-31 International Business Machines Corporation Key generation and retrieval using key servers
US8407806B2 (en) 2006-09-29 2013-03-26 Purusharth Agrawal Digital data distribution detection, deterrence and disablement system and method
GB2443244A (en) 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
US20100095118A1 (en) 2006-10-12 2010-04-15 Rsa Security Inc. Cryptographic key management system facilitating secure access of data portions to corresponding groups of users
US20100098248A1 (en) 2006-10-31 2010-04-22 Agency For Science Technology And Research Device and method of generating and distributing access permission to digital object
JP4712017B2 (ja) 2006-11-13 2011-06-29 韓國電子通信研究院 ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
US8213602B2 (en) 2006-11-27 2012-07-03 Broadcom Corporation Method and system for encrypting and decrypting a transport stream using multiple algorithms
WO2008127446A2 (en) 2006-12-01 2008-10-23 President And Fellows Of Harvard College A method and apparatus for time-lapse cryptography
BRPI0718738B1 (pt) 2006-12-12 2023-05-16 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Codificador, decodificador e métodos para codificação e decodificação de segmentos de dados representando uma corrente de dados de domínio de tempo
US20080172562A1 (en) 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
KR101391152B1 (ko) 2007-04-05 2014-05-02 삼성전자주식회사 Ums 기기의 컨텐츠를 보호하기 위한 방법 및 장치
US8218761B2 (en) 2007-04-06 2012-07-10 Oracle International Corporation Method and apparatus for generating random data-encryption keys
WO2008128212A1 (en) 2007-04-12 2008-10-23 Ncipher Corporation Ltd. Method and system for identifying and managing encryption keys
US8429406B2 (en) 2007-06-04 2013-04-23 Qualcomm Atheros, Inc. Authorizing customer premise equipment into a network
JP2008306418A (ja) 2007-06-07 2008-12-18 Kddi Corp ネットワーク負荷軽減システム、ネットワーク負荷軽減方法およびプログラム
US20080319909A1 (en) 2007-06-25 2008-12-25 Perkins George S System and method for managing the lifecycle of encryption keys
CA2693743C (en) 2007-07-17 2016-10-04 Chris Alexander Peirson Systems and processes for obtaining and managing electronic signatures for real estate transaction documents
US8111828B2 (en) 2007-07-31 2012-02-07 Hewlett-Packard Development Company, L.P. Management of cryptographic keys for securing stored data
US7894626B2 (en) 2007-08-31 2011-02-22 Xerox Corporation System and method for the generation of multiple angle correlation-based digital watermarks
WO2009029842A1 (en) 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
US8140847B1 (en) 2007-09-18 2012-03-20 Jianqing Wu Digital safe
CN101400059B (zh) 2007-09-28 2010-12-08 华为技术有限公司 一种active状态下的密钥更新方法和设备
US8549278B2 (en) 2007-10-20 2013-10-01 Blackout, Inc. Rights management services-based file encryption system and method
WO2009060283A1 (en) 2007-11-05 2009-05-14 Synaptic Laboratories Limited Method and apparatus for secure communication
KR100980831B1 (ko) 2007-12-12 2010-09-10 한국전자통신연구원 일회용 패스워드를 이용한 신뢰성 있는 통신 시스템 및방법
US8495357B2 (en) 2007-12-19 2013-07-23 International Business Machines Corporation Data security policy enforcement
US8175276B2 (en) 2008-02-04 2012-05-08 Freescale Semiconductor, Inc. Encryption apparatus with diverse key retention schemes
JP4896054B2 (ja) 2008-03-06 2012-03-14 イートライアル株式会社 個人情報管理装置,個人情報管理プログラムおよび個人情報管理システム
US8681990B2 (en) 2008-03-28 2014-03-25 International Business Machines Corporation Renewal management for data items
JP4526574B2 (ja) 2008-03-31 2010-08-18 富士通株式会社 暗号データ管理システム、および暗号データ管理方法
US8225106B2 (en) 2008-04-02 2012-07-17 Protegrity Corporation Differential encryption utilizing trust modes
US8494168B1 (en) 2008-04-28 2013-07-23 Netapp, Inc. Locating cryptographic keys stored in a cache
US8589697B2 (en) 2008-04-30 2013-11-19 Netapp, Inc. Discarding sensitive data from persistent point-in-time image
US20090300356A1 (en) 2008-05-27 2009-12-03 Crandell Jeffrey L Remote storage encryption system
US20100014662A1 (en) 2008-06-19 2010-01-21 Sami Antti Jutila Method, apparatus and computer program product for providing trusted storage of temporary subscriber data
CN102057618A (zh) 2008-06-23 2011-05-11 松下电器产业株式会社 信息处理装置、加密密钥的管理方法、计算机程序及集成电路
GB0811897D0 (en) 2008-06-30 2008-07-30 Steed Darren Intelligent file encapsulation
US8261320B1 (en) 2008-06-30 2012-09-04 Symantec Corporation Systems and methods for securely managing access to data
US8005859B2 (en) 2008-07-09 2011-08-23 The Go Daddy Group, Inc. Maintaining contact with a document storage file owner
JP4620146B2 (ja) 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
US8245039B2 (en) 2008-07-18 2012-08-14 Bridgewater Systems Corp. Extensible authentication protocol authentication and key agreement (EAP-AKA) optimization
JP2010072916A (ja) * 2008-09-18 2010-04-02 Hitachi Software Eng Co Ltd データ保護システム及びデータ保護方法
US8302170B2 (en) 2008-09-22 2012-10-30 Bespoke Innovations S.A.R.L. Method for enhancing network application security
US9742555B2 (en) 2008-09-25 2017-08-22 Nokia Technologies Oy Encryption/identification using array of resonators at transmitter and receiver
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US8392682B2 (en) 2008-12-17 2013-03-05 Unisys Corporation Storage security using cryptographic splitting
JP2010128824A (ja) 2008-11-27 2010-06-10 Hitachi Software Eng Co Ltd ポリシーグループ識別子を利用したクライアント制御システム
CN101753302B (zh) 2008-12-09 2012-07-04 北大方正集团有限公司 一种保证sip通信安全的方法和系统
US8555089B2 (en) 2009-01-08 2013-10-08 Panasonic Corporation Program execution apparatus, control method, control program, and integrated circuit
US8699704B2 (en) 2010-01-13 2014-04-15 Entropic Communications, Inc. Secure node admission in a communication network
US9165154B2 (en) * 2009-02-16 2015-10-20 Microsoft Technology Licensing, Llc Trusted cloud computing and services framework
US8245037B1 (en) 2009-02-17 2012-08-14 Amazon Technologies, Inc. Encryption key management
US9037844B2 (en) 2009-02-27 2015-05-19 Itron, Inc. System and method for securely communicating with electronic meters
US20100250965A1 (en) 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US8654970B2 (en) 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US20100266132A1 (en) 2009-04-15 2010-10-21 Microsoft Corporation Service-based key escrow and security for device data
US8251283B1 (en) 2009-05-08 2012-08-28 Oberon Labs, LLC Token authentication using spatial characteristics
US8284945B2 (en) 2009-06-02 2012-10-09 Hewlett-Packard Development Company, L.P. Automatic change of symmetrical encryption key
US9031876B2 (en) 2009-06-19 2015-05-12 Hewlett-Packard Development Company, L.P. Managing keys for encrypted shared documents
JP2011019129A (ja) 2009-07-09 2011-01-27 Nec Corp データ管理システム及びデータ管理方法
US8799322B2 (en) 2009-07-24 2014-08-05 Cisco Technology, Inc. Policy driven cloud storage management and cloud storage policy router
US9311465B2 (en) 2009-09-21 2016-04-12 James McNulty Secure information storage and retrieval apparatus and method
IL201351A0 (en) 2009-10-01 2010-05-31 Michael Feldbau Device and method for electronic signature via proxy
US9043877B2 (en) 2009-10-06 2015-05-26 International Business Machines Corporation Temporarily providing higher privileges for computing system to user identifier
US8572369B2 (en) * 2009-12-11 2013-10-29 Sap Ag Security for collaboration services
CN101741547B (zh) 2009-12-18 2012-05-23 西安西电捷通无线网络通信股份有限公司 节点间保密通信方法及系统
EP2513832A1 (en) 2009-12-18 2012-10-24 Koninklijke Philips Electronics N.V. Digital rights management using attribute-based encryption
US8478996B2 (en) 2009-12-21 2013-07-02 International Business Machines Corporation Secure Kerberized access of encrypted file system
GB201000288D0 (en) 2010-01-11 2010-02-24 Scentrics Information Security System and method of enforcing a computer policy
US8650129B2 (en) 2010-01-20 2014-02-11 American Express Travel Related Services Company, Inc. Dynamically reacting policies and protections for securing mobile financial transaction data in transit
WO2011089712A1 (ja) 2010-01-22 2011-07-28 富士通株式会社 認証方法、認証システムおよび認証プログラム
JP5070305B2 (ja) 2010-01-29 2012-11-14 株式会社日本総合研究所 取引中継方法および取引中継システム
US20110213971A1 (en) 2010-03-01 2011-09-01 Nokia Corporation Method and apparatus for providing rights management at file system level
US8370648B1 (en) 2010-03-15 2013-02-05 Emc International Company Writing and reading encrypted data using time-based encryption keys
US8667269B2 (en) 2010-04-02 2014-03-04 Suridx, Inc. Efficient, secure, cloud-based identity services
US8555059B2 (en) 2010-04-16 2013-10-08 Microsoft Corporation Secure local update of content management software
EP2378451B1 (en) 2010-04-19 2018-07-04 Vodafone Holding GmbH User authentication in a tag-based service
US8601263B1 (en) * 2010-05-18 2013-12-03 Google Inc. Storing encrypted objects
US9160738B2 (en) 2010-05-27 2015-10-13 Microsoft Corporation Delegation-based authorization
US20120079289A1 (en) 2010-09-27 2012-03-29 Skymedi Corporation Secure erase system for a solid state non-volatile memory device
JP2012073374A (ja) 2010-09-28 2012-04-12 Fujikura Ltd 光ファイバ切断装置
US8504837B2 (en) 2010-10-15 2013-08-06 Rockwell Automation Technologies, Inc. Security model for industrial devices
US9961550B2 (en) 2010-11-04 2018-05-01 Itron Networked Solutions, Inc. Physically secured authorization for utility applications
US20120114118A1 (en) 2010-11-05 2012-05-10 Samsung Electronics Co., Ltd. Key rotation in live adaptive streaming
US8832726B2 (en) 2010-11-17 2014-09-09 Verizon Patent And Licensing Inc. Video streaming entitlement determined based on the location of the viewer
US8401186B2 (en) 2010-11-29 2013-03-19 Beijing Z&W Technology Consulting Co., Ltd. Cloud storage data access method, apparatus and system based on OTP
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
KR101145766B1 (ko) 2010-12-10 2012-05-16 고려대학교 산학협력단 보안 서비스 제공 시스템 및 방법
CN102130768B (zh) 2010-12-20 2012-11-07 西安西电捷通无线网络通信股份有限公司 一种具有链路层加解密能力的终端设备及其数据处理方法
US8478858B2 (en) 2011-02-01 2013-07-02 Limelight Networks, Inc. Policy management for content storage in content delivery networks
US8588426B2 (en) 2011-02-21 2013-11-19 Blackberry Limited Methods and apparatus to secure communications in a mobile network
JP5564453B2 (ja) 2011-02-25 2014-07-30 株式会社エヌ・ティ・ティ・データ 情報処理システム、及び情報処理方法
WO2012122175A1 (en) 2011-03-07 2012-09-13 Security First Corp. Secure file sharing method and system
US8379857B1 (en) 2011-03-30 2013-02-19 Google Inc. Secure key distribution for private communication in an unsecured communication channel
US8789210B2 (en) 2011-05-04 2014-07-22 International Business Machines Corporation Key usage policies for cryptographic keys
US8850593B2 (en) * 2011-05-12 2014-09-30 Hewlett-Packard Development Company, L.P. Data management using a virtual machine-data image
US9076020B2 (en) 2011-05-13 2015-07-07 Microsoft Technology Licensing, Llc Protected mode for mobile communication and other devices
US8544070B2 (en) 2011-05-16 2013-09-24 Novell, Inc. Techniques for non repudiation of storage in cloud or shared storage environments
US9690941B2 (en) 2011-05-17 2017-06-27 Microsoft Technology Licensing, Llc Policy bound key creation and re-wrap service
US9049023B2 (en) 2011-05-24 2015-06-02 Zeutro Llc Outsourcing the decryption of functional encryption ciphertexts
US20120303310A1 (en) 2011-05-26 2012-11-29 First Data Corporation Systems and Methods for Providing Test Keys to Mobile Devices
KR20120134509A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 어플리케이션 개발 시스템에서 디바이스용 어플리케이션을 생성 및 설치하기 위한 장치 및 방법
US8516244B2 (en) 2011-06-10 2013-08-20 Zeutro Llc System, apparatus and method for decentralizing attribute-based encryption information
US20120323990A1 (en) 2011-06-15 2012-12-20 Microsoft Corporation Efficient state reconciliation
WO2012174427A2 (en) 2011-06-16 2012-12-20 OneID Inc. Method and system for determining authentication levels in transactions
US8891772B2 (en) 2011-06-17 2014-11-18 Microsoft Corporation Cloud key escrow system
US8751807B2 (en) 2011-06-23 2014-06-10 Azuki Systems Inc. Method and system for secure over-the-top live video delivery
US9009315B2 (en) 2011-07-28 2015-04-14 Telefonaktiebolaget L M Ericsson (Publ) Hierarchical delegation and reservation of lookup keys
US8798273B2 (en) 2011-08-19 2014-08-05 International Business Machines Corporation Extending credential type to group Key Management Interoperability Protocol (KMIP) clients
US8788843B2 (en) 2011-10-28 2014-07-22 LogMeln, Inc. Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
WO2013084054A1 (en) 2011-12-08 2013-06-13 Dark Matter Labs Inc. Key creation and rotation for data encryption
US8639951B2 (en) 2011-12-19 2014-01-28 International Business Machines Corporation States for breakout appliance in a mobile data network
US8954758B2 (en) 2011-12-20 2015-02-10 Nicolas LEOUTSARAKOS Password-less security and protection of online digital assets
SG11201403482TA (en) 2011-12-21 2014-07-30 Ssh Comm Security Oyj Automated access, key, certificate, and credential management
US9449183B2 (en) 2012-01-28 2016-09-20 Jianqing Wu Secure file drawer and safe
CN104169935B (zh) * 2012-03-28 2017-10-31 索尼公司 信息处理装置、信息处理系统、信息处理方法
US8964990B1 (en) 2012-05-17 2015-02-24 Amazon Technologies, Inc. Automating key rotation in a distributed system
US9237446B2 (en) 2012-05-24 2016-01-12 Blackberry Limited System and method for controlling access to media content
US20140012750A1 (en) 2012-07-09 2014-01-09 Jvl Ventures, Llc Systems, methods, and computer program products for integrating third party services with a mobile wallet
US9400890B2 (en) 2012-08-10 2016-07-26 Qualcomm Incorporated Method and devices for selective RAM scrambling
WO2014070134A2 (en) 2012-10-29 2014-05-08 Empire Technology Development Llc Quorum-based virtual machine security
US9137222B2 (en) 2012-10-31 2015-09-15 Vmware, Inc. Crypto proxy for cloud storage services
US8713311B1 (en) 2012-11-07 2014-04-29 Google Inc. Encryption using alternate authentication key
US8997197B2 (en) 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management

Also Published As

Publication number Publication date
WO2014126813A1 (en) 2014-08-21
CN105103119B (zh) 2020-01-17
CA2898995C (en) 2022-12-20
AU2014216607B2 (en) 2017-04-13
US9590959B2 (en) 2017-03-07
AU2017204853A1 (en) 2017-08-03
AU2017204853B2 (en) 2019-05-30
BR112015019378B1 (pt) 2022-05-03
JP2020009500A (ja) 2020-01-16
EP2956852B1 (en) 2019-09-04
JP6606156B2 (ja) 2019-11-13
US20140229729A1 (en) 2014-08-14
KR20170095404A (ko) 2017-08-22
CN111147255B (zh) 2023-08-18
KR102055116B1 (ko) 2020-01-22
CN105103119A (zh) 2015-11-25
CA3173681A1 (en) 2014-08-21
BR112015019378A2 (pt) 2017-07-18
CA2898995A1 (en) 2014-08-21
KR101769282B1 (ko) 2017-08-18
EP3585032A1 (en) 2019-12-25
SG10201709421SA (en) 2018-01-30
SG10202108884YA (en) 2021-09-29
EP3585032B1 (en) 2024-04-03
EP2956852A4 (en) 2016-09-21
CN111147255A (zh) 2020-05-12
JP6290932B2 (ja) 2018-03-07
EP2956852A1 (en) 2015-12-23
JP6941146B2 (ja) 2021-09-29
JP2018049650A (ja) 2018-03-29
US20170134348A1 (en) 2017-05-11
US10404670B2 (en) 2019-09-03
JP2016508643A (ja) 2016-03-22
SG11201505742PA (en) 2015-08-28
AU2014216607A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
KR101769282B1 (ko) 데이터 보안 서비스
JP7295068B2 (ja) フェデレーテッドキー管理
US9547771B2 (en) Policy enforcement with associated data
US11372993B2 (en) Automatic key rotation
CA2899027C (en) Data security service

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant