KR102396643B1 - Api 및 암호화 키의 비밀 관리 시스템 및 방법 - Google Patents

Api 및 암호화 키의 비밀 관리 시스템 및 방법 Download PDF

Info

Publication number
KR102396643B1
KR102396643B1 KR1020217026973A KR20217026973A KR102396643B1 KR 102396643 B1 KR102396643 B1 KR 102396643B1 KR 1020217026973 A KR1020217026973 A KR 1020217026973A KR 20217026973 A KR20217026973 A KR 20217026973A KR 102396643 B1 KR102396643 B1 KR 102396643B1
Authority
KR
South Korea
Prior art keywords
hardware security
security module
sovereign
primary
regions
Prior art date
Application number
KR1020217026973A
Other languages
English (en)
Other versions
KR20210119491A (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 KR20210119491A publication Critical patent/KR20210119491A/ko
Application granted granted Critical
Publication of KR102396643B1 publication Critical patent/KR102396643B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • 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
    • 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/2131Lost password, e.g. recovery of lost or forgotten passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

비밀 흐름, 비밀 검색 및 비밀 복제를 용이하게 하는 하나 이상의 오프사이트 위치들에서 비밀들을 관리하기 위한 호스팅된 비밀 관리 전송 시스템 및 방법. 방법은 2개 이상의 주권들(각각의 주권은 독립적인 마스터 레코드를 갖고, 각각의 주권은 2개 이상의 지역들을 포함함)에 대한 경계들을 정의하는 단계, 2개 이상의 지역들 내의 주 지역을 정의하는 단계, 주 지역 내에서 비밀들의 주 소스인 마스터 레코드 하드웨어 보안 모듈에 액세스하는 단계, 보조 지역을 정의하는 단계, 보조 지역 내에서 마스터 레코드 하드웨어 보안 모듈로부터의 비밀들의 데이터 백업들이 생성되는 백업 레코드 하드웨어 보안 모듈에 액세스하는 단계, 및 마스터 레코드 하드웨어 보안 모듈로부터, 동시에 다수의 개별 회사들의 멀티-테넌시(multi-tenancy) 비밀 관리를 지원하는 백업 레코드 하드웨어 보안 모듈로의 실시간 복제를 실행하는 단계를 포함한다.

Description

API 및 암호화 키의 비밀 관리 시스템 및 방법
본 개시는 일반적으로 비밀 관리 시스템들 및 방법들, 특히 API 및 암호화 키의 보안 관리 시스템들 및 방법들에 관한 것이다.
인터넷 보안은 사이버 공간, 전자 상거래, 그리고 전반적인 인터넷 분야에서 관심이 있고 잠재적인 책임이 있는 큰 분야 중 하나이다. 해커 또는 다른 악성 당사자가 악용할 수 있는 잠재적 취약성의 유형들이 많이 있다.
예를 들어, 웹사이트와 같은 소프트웨어 애플리케이션이 제3자 API를 활용하는 추세가 증가하고 있다. 많은 시스템들에서, API, 비밀번호, 비밀 키, 인증 정보, 암호화 키 및 기타 비밀들이 애플리케이션의 코드 저장소 및 데이터베이스에 저장된다. 이러한 시스템들에서는 애플리케이션의 키들이 웹사이트 외부에서 사용되는 것을 방지할 수 없다. 애플리케이션이 해킹을 당하는 경우, 해커가 하는 첫 번째 일은 해당 환경의 복사본을 만드는 것이다. 이는 해킹이 SQL 해킹일 경우 해커가 애플리케이션 데이터베이스를 복사하거나, 해킹이 서버 침입인 경우 해커가 서버를 복사한다는 것을 의미한다. 이와 같이, 비밀이 누설될 수 있고, 그들이 보호하는 데이터 및 서비스가 유출될 수 있다.
애플리케이션의 코드 저장소 또는 데이터베이스로부터 이러한 API 키를 제거하고 이를 암호화하며, 분리된 시스템에 안전하게 저장함으로써, 민감한 데이터, 웹 트랜잭션 및 통신을 보호하기 위한 큰 수요가 있다. 이는 애플리케이션이 유출된 경우 발생될 수 있는 손상을 제한하거나, 개발자가 애플리케이션의 코드 저장소 또는 데이터베이스의 로컬 복사본을 갖는 손상을 제한한다.
애플리케이션 개발 및 호스팅 부문에서 발생하는 또 다른 문제점은 개발 환경에서 복호화된 제품 데이터를 갖는 문제이다. 이는 악성 개발자 또는 기타 개인의 동작으로 인해 발생할 수 있다. 또는, 개발자가 제품 비밀번호를 분리하는 방법을 알지 못하는 경우에 우발적으로 발생할 수 있다. 또한 예를 들어, 개발자로부터 제품 사용자에게 테스트 알림을 보내는 등 제3자 제품 서비스를 의도하지 않게 트리거할 수 있다.
또한, 애플리케이션 개발 및 호스팅 부문에서 발생하는 또 다른 문제점은 데이터가 클라우드에 저장될 때 데이터가 지리적으로 위치하는 위치를 제어할 수 있어야 한다는 것이다. 대개, 회사들은 관리되는 클라우드에 데이터를 저장하는 경우, 보안 문제, 규제 문제 및/또는 기타 이슈로 인해 문제될 수 있는 데이터가 저장되는 위치에 대한 제어를 거의 하지 않는다.
인터넷 및 다양한 애플리케이션에 대해 보안을 제공하는 비밀 관리 기술에 대한 요구가 본 기술분야에 계속되고 있다.
일부 구현예들에 따르면, 하나 이상의 오프사이트 위치에서 비밀을 관리하기 위한 호스팅된 비밀 관리 전송 시스템이 개시된다. 일부 이러한 구현예들에서, 시스템은 컴포넌트들의 더 큰 기능적 그룹들인 2개 이상의 주권(sovereignty)들을 포함한다. 하나 이상의 구현예들에서, 각각의 주권은 독립적인 마스터 레코드를 갖고, 각각의 주권은 2개 이상의 지역들, 즉, 주 지역 및 임의의 수의 보조 지역들을 포함한다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템은 또한, 상기 주권에 대한 비밀의 주 저장 공간인 각각의 주권의 주 지역 내에 마스터 레코드 하드웨어 보안 모듈을 포함한다. 마스터 레코드 하드웨어 보안 모듈은 자신의 대응하는 주권 내의 비밀들에 대한 모든 동작들에 대한 참 레코드(truth record)이다. 일부 이러한 구현예들에서, 비밀들에 대한 동작들은 하나 이상의 생성 동작들, 업데이트 동작들, 및 삭제 동작들을 포함한다.
일부 구현예들의 다른 양태에서, 호스팅된 비밀 관리 전송 시스템은 상기 주권의 주 지역이 아닌 2개 이상의 보조 지역들 내에 백업 레코드 하드웨어 보안 모듈을 더 포함한다. 하나 이상의 구현예들에서, 백업 레코드 하드웨어 보안 모듈은 마스터 레코드 하드웨어 보안 모듈로부터 라이브 복제를 수신한다. 백업 레코드 하드웨어 보안 모듈은 주권이 있는 마스터 레코드 하드웨어 보안 모듈로부터 데이터 백업이 생성되는 곳이다. 일부 구현예들의 또 다른 양태에서, 호스팅된 비밀 관리 전송 시스템은, 2개 이상의 지역들 각각에 포함되고 백업 레코드 하드웨어 보안 모듈로부터 라이브 복제를 수신하는, 주 캐시 하드웨어 보안 모듈을 포함한다. 일부 구현예들의 또 다른 양태에서, 호스팅된 비밀 관리 전송 시스템은 2개 이상의 지역들 각각에 포함되는 하드웨어 보안 모듈 캐시 풀을 포함한다. 각각의 하드웨어 보안 모듈 캐시 풀은 특정 지역 내의 트래픽 요구들에 따라 자신의 대응하는 주 캐시 하드웨어 보안 모듈로부터 복제하도록 확장될 수 있다.
일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템은 2개 이상의 지역들 각각에 포함되는, 소프트웨어 컨테이너들의 클러스터 및 소프트웨어 컨테이너 관리 시스템을 더 포함한다. 소프트웨어 컨테이너 관리 시스템은 소프트웨어 컨테이너들이 이용가능하고 적절하게 동작하도록 보장한다. 이런 식으로, 특정 지역의 특정 클러스터 내의 소프트웨어 컨테이너들로부터의 값들에 대한 요청들은 모든 읽기 동작들에 대하여 주 캐시 하드웨어 보안 모듈 및 상기 하드웨어 보안 모듈 캐시 풀 사이에서 로드 밸런싱된다. 하나 이상의 구현예들에서, 값이 요청되는 경우, 시스템은 그 값의 원천 주권을 식별하고, 요청되는 원천 주권이 허용 권한을 갖는 주권과 상이한 경우, 원천 주권에 대해 값을 요청하고, 이를 요청이 발신된 지역의 주 캐시 하드웨어 보안 모듈에 캐싱한다. 그 후, 값이 복제를 통해 하드웨어 보안 모듈 캐시 풀에 분산된다.
호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 주권들은 지정학적 경계들에 기초하여 정의된다. 지정학적 경계들은 단지 제한적이지 않은 예로서, 국가들, 국가들의 연합들, 또는 국가들의 그룹들을 포함할 수 있다. 호스팅된 비밀 관리 전송 시스템의 다른 구현예들에서, 주권들은 지역들을 조직화하고 단일 그룹, 회사, 또는 기업에 속한 비밀들을 유지하도록 임의로 정의된다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들의 다른 양태에서, 지역들은 지역 방향들(동, 서, 남, 북) 또는 주권을 가진 국가들을 포함하는 실세계 경계들에 의해 정의된다. 호스팅된 비밀 관리 전송 시스템의 다른 구현예들에서, 지역들은 완전히 또는 부분적으로, 동일한 클라우드 제공자, 상이한 클라우드 제공자들, 온프레미스 시스템들 및 사설 클라우드들 중 하나 이상에 포함되는 고유한 데이터센터들에 기초한다.
하나 이상의 구현예들에서, 보조 지역은 주 지역 전체가 사용 불가능하게 되는 경우 높은 이용 가능성을 제공한다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들의 다른 양태에서, 마스터 레코드는 모든 쓰기 동작들이 발생하는 곳이다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들의 또 다른 양태에서, 긴급 상황들을 제외하면 마스터 레코드 상에서 어떠한 읽기 동작들도 발생하지 않는다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들의 또 다른 양태에서, 백업 레코드 하드웨어 보안 모듈은 데이터베이스 잠금이 발생할 가능성을 감소시키거나 제거하기 위해, 마스터 레코드 하드웨어 보안 모듈 상의 로드들을 가능한 한 낮게 유지한다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 주 캐시 하드웨어 보안 모듈은 자신의 대응하는 지역 내의 모든 캐싱된 값들에 대한 주 복제 소스로서의 역할을 한다.
일부 구현예들의 또 다른 양태에서, 호스팅된 비밀 관리 전송 시스템은 요청 지연을 감소시키기 위해 주권들 사이에 복제된 값들을 안전하게 분산시키고, 대응하는 주권들의 마스터 레코드 하드웨어 보안 모듈들이 항상 원래의 값들을 포함하는 동안 주 캐시 하드웨어 보안 모듈들 및 하드웨어 보안 모듈 캐시 풀들을 통해 복제된 값들을 분산시킨다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 하나의 지역은 주 데이터베이스 클러스터로 지정되고, 데이터는 주 데이터베이스 클러스터 내에 저장된다. 데이터는 주 데이터베이스 클러스터로부터, 각각의 지역에 배치되는 분산된 복제 데이터베이스들에 대해 전세계적으로 복제된다. 호스팅된 비밀 관리 전송 시스템의 하나 이상의 구현예들에서, 주 데이터베이스 클러스터에 저장된 데이터는, 이름, 내부 이름, 버전 번호, 원천 주권, 및 값들이 분산될 수 있는 곳을 보호하는 보안 정책들 중 하나 이상을 포함하는, 시스템에서 관리되는 비밀들의 메타데이터이다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 데이터는 메타데이터를 단일 엔티티로서 저장하는 것이 아니라, 메타데이터 엔티티를 구축하도록 렌더링되는 이벤트들의 스트림으로서 저장된다. 이러한 실시예에서, 이벤트들의 스트림은 수행되는 변이 동작들을 초래하는 모든 이벤트들의 지속적인 감사 로그를 제공한다. 호스팅된 비밀 관리 전송 시스템의 하나 이상의 구현예들에서, 지속적인 감사 로그의 이벤트들은 머신러닝을 이용하여 비정상 및 보안 문제들에 대해 분석된다.
호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 클라이언트는 사용자에 의해 생성되고 키링에 바인딩되며, 제품 및 개발과 같은 다양한 환경들에서의 값들이 교차되지 않게 보장하도록 특정 환경의 값들에 대한 액세스가 제한된다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 클라이언트는 환경에 바인딩된다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 상이한 유형들의 환경들은 단지 비제한적인 예로서, 제품, 스테이징(Staging), 테스트, 및 개발을 포함한다.
호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 모든 지역은 사설 서브넷을 포함한다. 일부 이러한 구현예들에서, 지역 내의 모든 컴포넌트들은 인터넷에 대한 외부 연결을 통한 직접적인 접속의 어떠한 가능성도 제거하는, 다양한 가용 지역들 내의 사설 서브넷들 내에 위치된다. 일부 구현예들의 다른 양태에서, 지역들 사이의 모든 통신 및 주권들 사이의 통신은 보안성 향상을 위해 가상 사설망 연결들과 같은 암호화된 연결들에 의해 처리된다.
호스팅된 비밀 관리 전송 방법의 다른 구현예에서, 방법은 하나 이상의 오프사이트 위치들에서 비밀을 관리한다. 방법은, 컴포넌트들의 보다 큰 기능적 그룹들인 2개 이상의 주권들에 대한 경계들을 정의하는 단계 - 각각의 주권은 독립적인 마스터 레코드를 갖고, 각각의 주권은 2개 이상의 지역들을 포함함 -, 2개 이상의 지역들 내의 주 지역을 정의하는 단계, 주 지역 내에서 비밀들의 주 소스인 마스터 레코드 하드웨어 보안 모듈에 액세스하는 단계 - 마스터 레코드 하드웨어 보안 모듈은 자신의 대응하는 주권 내의 비밀들에 대한 모든 동작들에 대한 참 레코드이고, 비밀들에 대한 동작들은 생성 동작들, 업데이트 동작들, 및 삭제 동작들 중 하나 이상을 포함함 -, 주 지역이 아닌 둘 이상의 보조 지역들의 오프-지역(off-region)을 정의하는 단계, 오프-지역 내에서 마스터 레코드 하드웨어 보안 모듈로부터 비밀들의 데이터 백업들이 생성되는 백업 레코드 하드웨어 보안 모듈에 액세스하는 단계, 마스터 레코드 하드웨어 보안 모듈로부터 백업 레코드 하드웨어 보안 모듈로의 실시간 복제를 실행하는 단계, 2개 이상의 지역들 각각에서, 백업 레코드 하드웨어 보안 모듈로부터 라이브 복제를 수신하는 주 캐시 하드웨어 보안 모듈에 액세스하는 단계, 2개 이상의 지역들 각각에서 하드웨어 보안 모듈 캐시 풀에 액세스하는 단계 - 하드웨어 보안 모듈 캐시 풀은 특정 지역 내의 트래픽 요구들에 따라 주 캐시 하드웨어 보안 모듈로부터 복제하도록 확장될 수 있음 -, 특정 주권의 2개 이상의 지역들 각각에서 소프트웨어 컨테이너들의 클러스터와, 소프트웨어 컨테이너들이 이용가능하고 적절하게 동작하도록 보장하는 소프트웨어 컨테이너 관리 시스템에 액세스하는 단계, 및 소프트웨어 컨테이너에서 값들에 대한 요청을 수신하는 단계 - 특정 지역의 특정 클러스터 내의 소프트웨어 컨테이너들로부터의 값들에 대한 요청은 모든 읽기 동작들에 대하여 주 캐시 하드웨어 보안 모듈 및 하드웨어 보안 모듈 캐시 풀 사이에서 로드 밸런싱됨 - 를 포함하고, 값이 요청되는 경우, 시스템은 값의 원천 주권을 찾고, 요청되는 원천 주권 및 허용 권한과 상이한 경우 원천 주권에 대해 값을 요청하고, 이를 요청이 발신된 지역의 주 캐시 하드웨어 보안 모듈에 캐싱하며, 그 후, 값이 라이브 복제를 통해 하드웨어 보안 모듈 캐시 풀에 분산된다.
호스팅된 비밀 관리 전송 방법의 일부 구현예들에서, 주권들은 지정학적 경계들에 기초하여 정의된다. 지정학적 경계들은 단지 제한적이지 않은 예로서, 국가들, 국가들의 연합들, 또는 국가들의 그룹들을 포함할 수 있다. 호스팅된 비밀 관리 전송 방법의 다른 구현예들에서, 주권들은 지역들을 조직화하고 단일 그룹, 회사, 또는 기업에 속한 비밀들을 유지하도록 임의로 정의된다. 호스팅된 비밀 관리 전송 방법의 일부 구현예들의 또 다른 양태에서, 지역들은 지역 방향들(동, 서, 남, 북) 또는 주권을 가진 국가들을 포함하는 실세계 경계들에 의해 정의된다. 호스팅된 비밀 관리 전송 방법의 다른 구현예들에서, 지역들은 완전히 또는 부분적으로, 동일한 클라우드 제공자, 상이한 클라우드 제공자들, 온프레미스 시스템들 및 사설 클라우드들 중 하나 이상에 포함되는 고유한 데이터센터들에 기초한다.
하나 이상의 구현예들에서, 보조 지역은 주 지역 전체가 사용 불가능하게 되는 경우 높은 이용 가능성을 제공한다. 호스팅된 비밀 관리 전송 방법의 일부 구현예들의 다른 양태에서, 마스터 레코드는 모든 쓰기 동작들이 발생하는 곳이다. 호스팅된 비밀 관리 전송 방법의 일부 구현예의 또 다른 양태에서, 긴급 상황들을 제외하면 마스터 레코드 상에서 어떠한 읽기 동작들도 발생하지 않는다. 호스팅된 비밀 관리 전송 방법의 일부 구현예들의 또 다른 양태에서, 백업 레코드 하드웨어 보안 모듈은 데이터베이스 잠금이 발생할 가능성을 감소시키거나 제거하기 위해, 마스터 레코드 하드웨어 보안 모듈 상의 로드들을 가능한 한 낮게 유지한다. 호스팅된 비밀 관리 전송 방법의 일부 구현예에서, 주 캐시 하드웨어 보안 모듈은 자신의 대응하는 지역 내의 모든 캐싱된 값들에 대한 주 복제 소스로서의 역할을 한다.
일부 구현예들의 또 다른 양태에서, 호스팅된 비밀 관리 전송 방법은 요청 지연을 감소시키기 위해 주권들 사이에 복제된 값들을 안전하게 분산시키고, 대응하는 주권들의 마스터 레코드 하드웨어 보안 모듈들이 항상 원래의 값들을 포함하는 동안 주 캐시 하드웨어 보안 모듈들 및 하드웨어 보안 모듈 캐시 풀들을 통해 복제된 값들을 분산시킨다. 호스팅된 비밀 관리 전송 방법의 일부 구현예에서, 하나의 지역은 주 데이터베이스 클러스터로 지정되고, 데이터는 주 데이터베이스 클러스터 내에 저장된다. 데이터는 주 데이터베이스 클러스터로부터, 각각의 지역에 배치되는 분산된 복제 데이터베이스들에 대해 전세계적으로 복제된다. 호스팅된 비밀 관리 전송 방법의 하나 이상의 구현예들에서, 주 데이터베이스 클러스터에 저장된 데이터는, 이름, 내부 이름, 버전 번호, 원천 주권, 및 값들이 분산될 수 있는 곳을 보호하는 보안 정책들 중 하나 이상을 포함하는, 본 방법에서 관리되는 비밀들의 메타데이터이다. 호스팅된 비밀 관리 전송 시스템의 일부 구현예들에서, 데이터는 메타데이터를 단일 엔티티로서 저장하는 것이 아니라, 메타데이터 엔티티를 구축하도록 렌더링되는 이벤트들의 스트림으로서 저장된다. 이러한 실시예에서, 이벤트들의 스트림은 수행되는 변이 동작들을 초래하는 모든 이벤트들의 지속적인 감사 로그를 제공한다. 호스팅된 비밀 관리 전송 시스템의 하나 이상의 구현예들에서, 지속적인 감사 로그의 이벤트들은 머신러닝을 이용하여 비정상 및 보안 문제들에 대해 분석된다.
호스팅된 비밀 관리 전송 방법의 일부 구현예들에서, 클라이언트는 사용자에 의해 생성되고 키링에 바인딩되며, 제품 및 개발과 같은 다양한 환경들에서의 값들이 교차되지 않게 보장하도록 특정 환경의 값들에 대한 액세스가 제한된다. 호스팅된 비밀 관리 전송 방법의 일부 구현예들에서, 클라이언트는 환경에 바인딩된다. 호스팅된 비밀 관리 전송 방법의 일부 구현예들에서, 상이한 유형들의 환경들은 단지 비제한적인 예로서, 제품, 스테이징(Staging), 테스트, 및 개발을 포함한다.
호스팅된 비밀 관리 전송 방법의 일부 구현예들에서, 모든 지역은 사설 서브넷을 포함한다. 일부 이러한 구현예들에서, 지역 내의 모든 다른 컴포넌트들은 인터넷에 대한 외부 연결을 통한 직접적인 접속의 어떠한 가능성도 제거하는, 다양한 가용 지역들 내의 사설 서브넷들 내에 위치된다. 일부 구현예들의 다른 양태에서, 지역들 사이의 모든 통신 및 주권들 사이의 통신은 보안성 향상을 위해 가상 사설망 연결들과 같은 암호화된 연결들에 의해 처리된다.
하나 이상의 다른 구현예들에서, 하나 이상의 오프사이트 위치들에서 비밀을 관리하기 위한 호스팅된 비밀 관리 전송 시스템이 개시된다. 일부 이러한 구현예들에서, 시스템은 컴포넌트들의 더 큰 기능적 그룹들인 2개 이상의 주권들을 포함한다. 하나 이상의 구현예들에서, 각각의 주권은 독립적인 마스터 레코드를 갖고, 각각의 주권은 적어도 주 지역 및 보조 지역을 더 포함하는 2개 이상의 지역들을 포함한다. 일부 구현예들에서, 상기 호스팅된 비밀 관리 전송 시스템은 또한 해당 주권에 대한 비밀의 주 저장소인 각각의 주권의 주 지역 내의 마스터 레코드 하드웨어 보안 모듈을 포함한다. 마스터 레코드 하드웨어 보안 모듈은 자신의 대응하는 주권 내의 비밀들에 대한 모든 동작들에 대한 참 레코드이다. 이러한 구현예들에서, 비밀들에 대한 동작들은 생성 동작들, 업데이트 동작들, 및 삭제 동작들 중 하나 이상을 포함한다.
일부 구현예들의 다른 양태에서, 호스팅된 비밀 관리 전송 시스템은 상기 주권의 주 지역이 아닌 하나 이상의 보조 지역들에 백업 레코드 하드웨어 보안 모듈을 더 포함한다. 하나 이상의 구현예들에서, 백업 레코드 하드웨어 보안 모듈은 마스터 레코드 하드웨어 보안 모듈로부터, 동시에 다수의 개별 회사들의 멀티-테넌시(multi-tenancy) 비밀 관리를 지원하는 실시간 복제를 수신한다. 하나 이상의 구현예들에서, 백업 레코드 하드웨어 보안 모듈은 마스터 레코드 하드웨어 보안 모듈로부터의 데이터 백업들이 생성되는 곳이다.
일부 구현예들의 또 다른 양태에서, 호스팅된 비밀 관리 전송 시스템은 2개 이상의 지역들 각각에 포함되는 주 캐시 하드웨어 보안 모듈을 포함하고, 주 캐시 하드웨어 보안 모듈은 백업 레코드 하드웨어 보안 모듈로부터 라이브 복제를 수신한다. 일부 구현예들의 또 다른 양태에서, 호스팅된 비밀 관리 전송 시스템은 2개 이상의 지역들 각각에 포함되는 하드웨어 보안 모듈 캐시 풀을 포함한다. 각각의 하드웨어 보안 모듈 캐시 풀은 특정 지역 내의 트래픽 요구들에 따라 자신의 대응하는 주 캐시 하드웨어 보안 모듈로부터 복제하도록 확장될 수 있다.
일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템은 2개 이상의 지역들 각각에 포함되는, 소프트웨어 컨테이너들의 클러스터 및 소프트웨어 컨테이너 관리 시스템을 더 포함한다. 소프트웨어 컨테이너 관리 시스템은 소프트웨어 컨테이너들이 이용가능하고 적절하게 동작하도록 보장한다. 이런 식으로, 특정 지역의 특정 클러스터 내의 소프트웨어 컨테이너들로부터의 요청들은 모든 읽기 동작들에 대하여 주 캐시 하드웨어 보안 모듈 및 하드웨어 보안 모듈 캐시 풀 사이에서 로드 밸런싱된다.
하나 이상의 구현예들에서, 존재하지 않는 값이 요청되는 경우, 시스템은 값의 원천 주권을 식별하고, 요청되는 원천 주권이 허용 권한을 갖는 주권과 상이한 경우, 원천 주권에 대해 값을 요청하고, 이를 요청이 발신된 지역의 주 캐시 하드웨어 보안 모듈에 캐싱한다. 그 후, 값이 라이브 복제를 통해 하드웨어 보안 모듈 캐시 풀에 분산된다.
도면들에서, 동일한 도면부호들은 유사한 구성요소들 또는 동작들을 식별한다. 도면들에서 구성요소들의 크기 및 상대적인 위치는 반드시 축척대로 도시되지는 않는다. 예를 들어, 다양한 구성요소들의 형상 및 각도들은 반드시 축척대로 도시되는 것이 아니며, 이들 요소들 중 일부는 도면 가독성을 향상시키도록 임의로 확대되고 위치된다. 또한, 도시된 바와 같은 구성요소들의 특정 형상은 반드시 특정 구성요소들의 실제 형상에 관한 임의의 정보를 전달하도록 의도되는 것이 아니며, 도면들에서의 인식의 용이함을 위해서만 선택되었다.
도 1은 시스템이 비밀 흐름, 비밀 검색, 및 비밀 복제를 용이하게 하는, 다수의 주권들 및 그 안에 포함된 다수의 지역들을 포함하는, 호스팅된 비밀 관리 전송 시스템을 도시하는 개략도이다.
도 2a는 하나의 주권 및 그 안에 포함된 다수의 지역들을 포함하는, 호스팅된 비밀 관리 전송 시스템의 일부를 도시하는 개략도이다.
도 2b는 단일 지역을 포함하는 호스팅된 비밀 관리 전송 시스템의 일부를 도시하는 개략도이다.
도 3은 다양한 키링(KeyRing), 클라이언트 및 사용자 간의 관계를 보여주는 개략도이다.
도 4는 사용자 계정, 키링, 개발 클라이언트 및 제품 클라이언트가 어떻게 생성되는지를 보여주는 개략도이다.
도 5는 사용자, 제품 클라이언트, 개발 클라이언트, 키링, 제품 비밀, 개발 비밀 및 이들의 다수의 버전들을 포함하는 비밀 저장 프로세스를 보여주는 개략도이다.
도 6은 호스팅된 비밀 관리 전송 시스템과 함께 사용되는 예시적인 프로세서 기반 클라이언트의 블록도이다.
통상의 기술자는 본 개시가 단지 예시적인 것이며 어떠한 방식으로든 제한하는 것은 아니라는 것을 이해할 것이다. 본원에 개시된 각각의 특징들 및 교시들은 호스팅된 비밀 관리 시스템 및 방법을 제공하기 위해 개별적으로 또는 다른 특징들 및 교시들과 함께 이용될 수 있다. 이러한 추가적인 특징들 및 교시들의 다수를 개별적으로 및 조합하여 이용하는 대표적인 예들은 첨부된 도면들을 참조하여 더 상세히 설명된다. 이러한 상세한 설명은 단지 본 교시들의 양태들을 실시하기 위한 상세한 설명을 통상의 기술자에게 교시하기 위한 것이며, 청구항들의 범위를 제한하도록 의도되지 않는다. 따라서, 상세한 설명에 개시된 특징들의 조합은 가장 넓은 의미로 교시들을 실시하기 위해 필요하지 않을 수 있고, 대신에 단지 본 교시들의 특정한 대표적인 예들을 설명하기 위해 교시된다.
본원에서 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 알고리즘들 및 기호적 표현들의 관점에서 제시된다. 이러한 알고리즘적 설명들 및 표현들은 데이터 처리 분야의 통상의 기술자가 그들의 작업의 내용을 다른 통상의 기술자에게 가장 효과적으로 전달하기 위해 사용되는 수단이다. 알고리즘은 본원에서, 일반적으로, 원하는 결과를 초래하는 단계들의 일관성 있는 시퀀스가 되도록 고안된다. 단계들은 물리적 양들의 물리적 조작들을 필요로 하는 단계들이다. 통상적으로, 반드시는 아니지만, 이들 양들은 저장, 전달, 조합, 비교, 및 달리 조작될 수 있는 전기적 또는 자기적 신호들의 형태를 취한다. 일반적인 사용되기 때문에 주로, 이러한 신호들을 비트들, 값들, 구성요소들, 기호들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 종종 편리한 것으로 입증되었다.
그러나, 이들 및 유사한 용어들 모두가 적절한 물리적 양들과 연관되어야 하고, 이들 양들에 적용되는 편리한 라벨들에 불과하다는 것을 명심해야 한다. 아래의 설명으로부터 명확하게 달리 언급되지 않는 한, 상세한 설명 전체에 걸쳐, "프로세싱", "컴퓨팅", "계산하는", "결정하는", "디스플레이하는", "구성하는", "구성하는" 등과 같은 용어를 이용하는 설명은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현된 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 정보 저장, 전송 또는 디스플레이 장치들과 같은 다른 장치들 내의 물리적 양들로서 유사하게 표현되는 다른 데이터로 조작 및 변환하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작들 및 프로세스들을 지칭한다.
또한, 대표적인 예들 및 종속 청구항들의 다양한 특징들은 본 교시들의 추가적인 유용한 실시예들을 제공하기 위해 구체적으로 그리고 명시적으로 열거되지는 않은 방식들로 조합될 수 있다. 또한, 엔티티들의 그룹들의 모든 값 범위들 또는 표시들은, 청구 대상을 제한하기 위한 목적뿐만 아니라, 원래의 개시의 목적을 위해, 모든 가능한 중간 값 또는 중간 엔티티를 개시한다는 점에 명백하게 유의해야 한다. 도면들에 도시된 컴포넌트들의 치수들 및 형상들은 본 교시들이 어떻게 실시되는지를 이해하는 것을 돕도록 설계되지만, 예들에 도시된 치수들 및 형상들을 제한하도록 의도되지는 않음 또한 명백하게 유의해야 한다.
문맥상 달리 요구하지 않는 한, 명세서 및 청구항 전체에 걸쳐 "포함한다"와 "포함하는"과 같은, "포함하다" 및 그 변형된 단어들은 개방적이고 포괄적인 의미, 즉, "포함하지만, 이에 제한되지 않는다"로 해석되어야 한다. 본 명세서 전반에 걸쳐 "일 구현예" 또는 "하나의 구현예"에 대한 언급은 특정한 특징, 구조들, 또는 특성들이 하나 이상의 구현예들에서 임의의 적절한 방식으로 조합될 수 있음을 의미한다.
본 명세서 및 첨부된 특허청구범위에서 사용되는 바와 같이, 단수 형태 "a", "an" 및 "the"는 내용이 명백하게 달리 지시하지 않는 한 복수형을 포함한다. 또한, 용어 "또는"은 일반적으로 그의 가장 넓은 의미, 즉, 내용이 명확하게 달리 지시하지 않는 한, "및/또는"의 의미로서 이용됨에 유의해야 한다. 본원에 제공된 발명의 명칭 및 요약서는 단지 편의를 위한 것이며, 구현예들의 범위 또는 의미를 해석하지 않는다.
보안되는 오프사이트 호스팅 환경에서 애플리케이션 비밀(예를 들어, API 및 암호화 키 관리)에 대한 액세스를 적절히 관리할 수 있게 하는 Drupal 및 WordPress와 같은 최신 컨텐츠 관리 시스템(CMS: content management system)을 위한, 호스팅된 비밀 관리 전송 시스템 및 방법(100)이 본원에 개시된다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 API 토큰들, 패스워드들 및 암호화 키들과 같은 값들을 저장하기 위한 안전한 방법을 제공하기 위해 임의의 애플리케이션에 통합된다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)은, 심각한 취약점으로부터 보호하는 오프사이트 키 관리 솔루션을 이용하고, 애플리케이션이 많은 산업 규제(예를 들어, PCI DSS, HIPAA 및 기타 보안 요건 및 규정)를 준수하는 것을 도우며, 애플리케이션의 데이터를 보호하기 위해 심층 방어(Defense in Depth) "다중 계층" 접근법을 제공한다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 애플리케이션 내의 유휴(at rest) 데이터를 보호하기 위해 끊김 없는(seamless) 방식으로 애플리케이션의 커스텀 플러그인에 AES-256 암호화를 제공하는 한편, 엔터프라이즈급 HSM(Hardware Security Module) 키 관리를 전달한다.
일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 암호화된 값들을 취하여 이들을 오프사이트 위치(예를 들어 Townsend Security에 의해 제공되는, HSM 내에서 유휴 시 암호화되어 저장되는 위치)로 라우팅하는 인증, 전송, 및 라우팅 시스템이다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 애플리케이션 관리자에게 그들의 민감한 키들이 어떻게 그리고 어디에 저장되는지를 제어할 수 있는 능력을 제공하여, 애플리케이션의 전반적인 보안을 향상시키고, 애플리케이션이 키 관리를 위한 특정 규제 및 준수 요건들을 충족시킬 수 있게 한다.
하나 이상의 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 모든 크기의 애플리케이션들로 하여금, 관리되는 확장 가능한 클라우드 키 관리 시스템을 이용한 키 관리용 산업 표준을 충족할 수 있게 한다. 다른 제3자 키 관리자와는 달리, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 보안 및 시스템 모니터링의 추가적인 계층들을 제공한다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 애플리케이션들이 HIPAA, FERPA, 및 FISMA를 준수하는 것을 돕기 위해 오프사이트 API 및 암호화 키 관리를 포함한다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 애플리케이션의 키들의 끊김없는 통합 및 보안을 위해 다수의 제3자 플러그인들에 대한 API 키들을 보안시키도록 자동으로 구성된다. 호스팅된 비밀 관리 시스템 및 방법(100)의 하나 이상의 구현예들에서, 시스템은 다수의 지역 리던던시(redundancy), 보편적 통합을 위한 플랫폼 중립적(platform agnostic) rest API, 및 애플리케이션의 관리자가 데이터 주권을 위해 자신의 데이터가 어디에 저장되는지를 선택할 수 있게 하는 지역 특정 데이터 격리를 제공한다.
일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 보안적인 암호화된 HSM에 애플리케이션의 값들을 저장하는 것에 더하여, 개발 환경들 및 제품 환경들에 대한 값들을 서로 격리시킨다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 이러한 특징은 몇 가지 기술적 개선을 제공한다. 먼저, 애플리케이션 관리자가 호스팅된 비밀 관리 시스템 및 방법(100)에 저장된 키를 사용하여 제품 환경으로부터의 값들을 암호화하는 경우, 해당 값들은 개발 환경에서 복호화될 수 없다. 이는 암호화된 데이터에 대한 액세스 권한을 가진 사람을 애플리케이션 관리자가 제어할 수 있어야 하는 규제 환경에서 중요한다. 둘째로, 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 제공되는 데이터 격리는, 개발 환경으로부터 제품 서비스로 이메일이 우발적으로 전송되는 경우, 암호화된 값들이 유출되는 것을 방지한다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 애플리케이션의 제품 토큰들 및 키들을 개발자들로부터 멀리 유지함으로써 애플리케이션의 개발 환경을 격리시킨다.
즉, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 "환경별(per environment)" 기준으로 키들을 관리하며, 이는 제품으로부터 개발 환경들로 공유되는 키들의 가능성을 감소시키거나 제거한다. 호스팅된 비밀관리 시스템 및 방법(100)을 사용하는 경우, 민감한 정보가 제품 환경에서 암호화되면, 해당 데이터는 해당 제품 환경에서는 어디에서나 복호화되지 않을 수 있다. 이 시나리오에서, 해당 데이터는 제품 환경 외부에서 검색할 수 없는 제품 키를 사용하여, 제품 내에서 암호화된다. 데이터베이스가 개발 환경에 복제되는 경우, CMS가 액세스할 수 있는 키들은 데이터를 복호화할 수 없다.
일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 회사의 관리 사용자가 회사의 비밀을 저장할 지리적 지역을 선택할 수 있게 한다(예를 들어, 미국 내의 사용자는 그들의 회사의 비밀을 미국에 저장하기를 원할 수 있다). 애플리케이션 관리자가 미국 외부에 있는 경우, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 애플리케이션 관리자가 자신의 비밀을 저장하기 위해 다른 사용 가능한 지역을 선택할 수 있게 한다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 지역들은 격리되기 때문에, 한 지역에서 설정된 값들은 임의의 다른 지역에서는 이용될 수 없다.
도 1을 참조하면, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 하나 이상의 구현예들은 다수의 주권들(110) 및 다수의 지역들(120)의 사용을 포함한다. 구체적으로, 호스팅된 비밀 관리 이송 시스템 및 방법(100)은 컴포넌트들의 보다 큰 기능적인 그룹들인 2개 이상의 주권들(110)을 포함한다. 하나 이상의 구현예들에서, 각각의 주권(110)는 독립적인 마스터 레코드를 가지며, 각각의 주권(110)는 적어도 주 지역(120) 및 보조 지역(120)을 각각 더 포함하는 2개 이상의 지역들(120)을 포함한다. 일부 구현예들에서, 주권들(110)은 지정학적 경계들(예를 들어, 미국, 유럽 연합 등)에 기초하여 그려질 수 있다. 다른 구현예들에서, 주권들(110)은 지역들(120)을 조직화하고 비밀들을 단일 그룹(예를 들어, 단일 회사 또는 기업) 내에 유지하기 위해 임의로 그려질 수 있다. 주권(110) 내의 지역들(120)은 실세계 경계들(예를 들어, 주권 내의 동쪽 국가들, 서쪽 국가들)로 기술될 수 있다. 추가적으로, 주권(110) 내의 지역들(120)은 완전히 고유한 데이터센터들(동일한 클라우드 제공자, 상이한 클라우드 제공자들, 온프레미스(on-premises) 시스템들, 사설 클라우드들 등 내에 있음)에 기초할 수 있다. 각각의 주권(110) 내의 주 지역(120) 및 보조 지역(120)(및 잠재적으로 추가적인 지역들)은 주 지역 전체가 이용가능하지 않게 되는 경우, 높은 이용가능성을 제공한다.
일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템(100)은 또한 각각의 주권(110)의 주 지역(120) 내에, 비밀의 주요 소스인, 마스터 레코드 하드웨어 보안 모듈(130)을 포함한다. 마스터 레코드 하드웨어 보안 모듈(130)은 대응하는 주권(110) 내의 비밀들에 대한 모든 동작들에 대한 참 레코드이다. 일부 이러한 구현예들에서, 비밀들에 대한 동작들은 하나 이상의 생성 동작들, 업데이트 동작들, 및 삭제 동작들을 포함한다. 해당 마스터 레코드 하드웨어 보안 모듈(130)은 모든 쓰기 동작들이 발생하는 곳이다. 그러나, 읽기 동작들은 긴급 시나리오들을 제외하면 마스터 레코드 하드웨어 보안 모듈(130)에서는 발생하지 않는다.
또 다른 양태에서, 호스팅된 비밀 관리 전송 시스템(100)은 주권(110)의 보조 지역(120) 내에 백업 레코드 하드웨어 보안 모듈(140)을 더 포함한다. 하나 이상의 구현예들에서, 백업 레코드 하드웨어 보안 모듈(140)은 마스터 레코드 하드웨어 보안 모듈(130)로부터 라이브 복제를 수신한다. 백업 레코드 하드웨어 보안 모듈(140)은 데이터 백업들이 주권(110)의 마스터 레코드 하드웨어 보안 모듈(130)로부터 생성되고, 마스터 레코드 하드웨어 보안 모듈(130) 상의 로드(load)를 가능한 한 낮게 유지하여, 데이터베이스 잠금(lock)이 발생할 가능성을 감소시키거나 제거하는 곳이다.
이제 다른 컴포넌트를 참조하면, 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템은 백업 레코드 하드웨어 보안 모듈(140)로부터 라이브 복제를 수신하는 2개 이상의 지역들(120) 각각에 포함된 주 캐시 하드웨어 보안 모듈(150)을 포함한다. 일부 구현예들의 또 다른 컴포넌트에서, 호스팅된 비밀 관리 전송 시스템(100)은 2개 이상의 지역들(120) 각각에 포함되는 하드웨어 보안 모듈 캐시 풀(160)을 포함한다. 각각의 하드웨어 보안 모듈 캐시 풀(160)은 지역(120) 내의 트래픽 요구들에 따라, 대응하는 주 캐시 하드웨어 보안 모듈(150)로부터 복제하도록 확장될 수 있다. 일부 구현예들에서, 주 캐시 하드웨어 보안 모듈(150)은 그의 대응하는 지역(120) 내의 모든 캐시된 값들에 대한 주 복제 소스로서의 역할을 한다.
이제 또 다른 컴포넌트를 참조하면, 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템(100)은 2개 이상의 지역들(120) 각각에 포함된 소프트웨어 컨테이너들(170)의 클러스터 및 소프트웨어 컨테이너 관리 시스템(180)을 더 포함한다. 소프트웨어 컨테이너 관리 시스템(180)은 소프트웨어 컨테이너들(170)이 이용 가능하고 적절하게 동작하는 것을 보장한다. 호스팅된 비밀 관리 전송 시스템(100)에서, 지역(120) 내의 컨테이너들(170)로부터 들어오는 요청들은 모든 판독들에 대해 주 캐시 하드웨어 보안 모듈(150) 및 하드웨어 보안 모듈 캐시 풀(160) 사이에서 로드 밸런싱된다. 컨테이너들(170)은 애플리케이션 및 그의 종속성이 자원 분리된 프로세스에서 실행될 수 있게 하는 시스템 가상화를 동작시키는 방법이다. 컨테이너들(170)은 배치 환경에 관계없이 애플리케이션들이 신속하고 안정적이며 일관되게 배치되도록 보장한다.
호스팅된 비밀 관리 전송 시스템(100)에서, 존재하지 않는 값이 요청되는 경우, 시스템(100)은 그 값의 원천(originating) 주권(110)을 식별한다. 요청된 원천 주권 및 허용 권한과 상이한 경우, 시스템은 원천 주권(110)에 대해 그 값을 요청하고, 이 값은 그 후 요청이 발신된 지역(120)의 주 캐시 하드웨어 보안 모듈(150)에 캐싱된다. 그 후, 그 값은 복제를 통해 하드웨어 보안 모듈 캐시 풀(160)에 분산된다. 이러한 기능으로 인해, 호스팅된 비밀 관리 시스템(100)은 대응하는 주권들(110)의 마스터 레코드 하드웨어 보안 모듈들(130)이 항상 원래의 값들을 포함하는 동안, 주권들(110) 사이에 복제된 값들을 분산하여 요청 레이턴시를 감소시키고, 주 캐시 하드웨어 보안 모듈(150) 및 하드웨어 보안 모듈 캐시 풀(160)을 통해 복제된 값들을 분산시킨다.
호스팅된 비밀 관리 시스템(100)의 일부 구현예들에서, 2개 이상의 지역들(120) 각각은 데이터가 저장되는 주 데이터베이스 클러스터(190)를 포함한다. 주 데이터베이스 클러스터(190)로부터, 데이터는 전 세계적으로 분산 복제 데이터베이스(194)에 복제된다. 호스팅된 비밀 관리 시스템(100)의 하나 이상의 구현예들에서, 주 데이터베이스 클러스터(190)에 저장된 데이터는, 이름, 내부 이름, 버전 번호, 원천 주권, 및 값이 분산될 수 있는 곳을 보호하는 보안 정책 중 하나 이상을 포함하는, 시스템에서 관리되는 비밀의 메타데이터이다. 메타데이터를 단일 엔티티로서 저장하는 대신에, 데이터는 이벤트들의 스트림으로 저장된다. 이러한 이벤트들은 메타데이터 엔티티를 빌드하기 위해 렌더링되는 반면, 이벤트 스트림은 시스템에서 수행된 모든 변이 동작의 지속적인 감사(audit) 로그를 제공한다. 이 감사 로그는 머신러닝을 사용하여 비정상 및 보안 문제에 대한 이벤트를 추가 분석할 수 있게 한다.
이제 도 3 및 도 4를 참조하면, 호스팅된 비밀 관리 전송 시스템(100)에서, 클라이언트는 사용자에 의해 생성되고 키링(KeyRing)에 바인딩(bound)되는 한편, 제품 및 개발과 같은 다양한 환경에서의 값들이 교차되지 않도록 보장하면서, 특정 환경의 값들에 대한 액세스를 제한한다. 이런 식으로, 클라이언트는 호스팅된 비밀 관리 전송 시스템(100) 내의 환경에 바인딩된다. 호스팅된 비밀 관리 전송 시스템(100)에서, 상이한 유형의 환경들은 단지 예로서, 비제한적으로, 제품, 스테이징(Staging), 테스트, 및 개발을 포함한다.
다시 도 1, 도 2a, 및 도 2b를 참조하면, 호스팅된 비밀 관리 전송 시스템(100)에서, 모든 지역(120)은 사설 서브넷(198)을 포함한다. 하나 이상의 구현예들에서, 사설 서브넷(198)은 소프트웨어 컨테이너들(170) 및 소프트웨어 컨테이너 관리 시스템들(180)을 포함한다. 일부 이러한 구현예들에서, 지역(120) 내의 모든 컴포넌트들은 다양한 가용 지역들(120) 내의 사설 서브넷들(198) 내에 위치되며, 이는 인터넷에 대한 외부 연결을 통해 직접적인 접속의 가능성을 제거한다. 또 다른 양태에서, 지역들(120) 사이의 모든 통신 및 주 권들(110) 사이의 통신은, 보안성 향상을 위해 예를 들어, 가상 사설망(Virtual Private Network) 접속을 통해 사설 암호화된 접속들에 의해 처리된다.
다른 시스템 및 방법들이 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 해결되는 문제점들을 해결하려고 시도해왔으나, 이들은 성공적이지 않았다. 일부 이러한 제3자 시도는 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 말단 기능과 몇 가지 유사점이 있지만, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 설계 및 능력은 고유하다. 예를 들어, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 인증, 라우팅, 및 호스팅을 가능하게 하지만, 저장 공간을 제공하지는 않는 전송 계층 시스템이다. 중요하게는, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 시스템 내의 비밀의 전달에 대한 제한들이 동적으로 생성될 수 있게 한다. 추가적으로, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 저장 방법들을 다르게 할 수 있는, 상이한 종단점들을 가질 수 있게 한다. 특히, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 저장 방법의 유형 및 환경에 대해 중립적(agnostic)이다. 또한, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은, 비밀 관리를 위해 다수의 클라우드들을 갖는 하이브리드 지역들의 생성을 가능하게 하는 것뿐만 아니라, 주권 경계들의 생성 시 임의의 라인들이 그려질 수 있게 한다.
일부 경쟁하는 시스템들은 하나의 "주(primary)" 장치/서비스 및 임의의 수의 "보조(secondary)" 장치들/서비스들 사이에 디폴트 복제를 사용하는 하드웨어 보안 모듈(HSM)들을 사용한다. 그러나, 주 장치에 포함된 비밀들을 보조 장치들에 분산시킴으로써, 위치 및/또는 시스템들 중 임의의 하나의 정전들에 기초하여 시스템의 로드가 균형을 이룰 수 있기 때문에, 이러한 유형의 디폴트 복제는 단지 성능 및 가용성을 위해서만 수행된다. 그러나, 이러한 유형의 제3자 복제는 단순히 데이터를 모두 복사하거나 모두 복사하지 않는 택일적인 것(all-or-nothing)이다. 즉, 이 유형의 제3자 복제에서는, 주 장치에 있는 모든 것들이 보조 장치에 복제된다. 각각의 국가가 자체적인 데이터 프라이버시 보호 규정을 갖고 있는 전세계의 많은 고객(예를 들어, 회사들)과 위치들을 연결짓는 시스템을 다루는 경우, 이러한 택일적인 모든 것의 복제 방식은 허용될 수 없다.
대신에, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 무엇을 주권(110)으로서 정의하는지를 생성한다. 이러한 각각의 주권(110)들은 지역들(120)의 그룹화로 하여금 대응하는 주권(110) 내에서 생성될 수 있게 한다. 중요하게, 이러한 각각의 주권들(110)은 데이터가 설정되는 주권(110)에 대해 해당 데이터가 비공개로 유지될 수 있게 한다. 주권들(110)은 전세계적인 경계들에 기초할 수 있지만, 특정 조직 또는 조직들의 그룹의 비밀들을 분리하기 위해, 주권들(110)은 또한 가상의 경계들일 수 있다. 각각의 주권(110)은 해당 비밀의 감사(audit) 추적을 제공하기 위해 그의 모든 값들 및 로그들이 유지되는 마스터 레코드를 갖는다. 그러나, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 이 데이터를 다른 모든 주권들(110)에게 복사하지는 않는다. 대신에, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 제1 회사의 비밀들을 제2 회사의 비밀들과 분리시키는 데 사용될 수 있는, 비밀들의 분산 및 전송에 대한 "비밀별(secret by secret)" 제어를 가능하게 하며, 이들 회사의 비밀들은 모두 시스템(100) 내의 주권(110)의 지역(120)에서 호스팅될 수 있다. 일부 구현예들에서, 이는 비밀이 분산될 주권들(110) 및 비밀이 캐싱될 주권들(110)의 화이트 리스트(white list)를 사용함으로써 수행될 수 있다. 중요하게, 원천 주권(110) 외부의 영구적인 저장은 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 허용되지 않는다.
이 전세계적인 캐싱은 호스팅된 비밀 관리 전송 시스템 및 방법(100)이 영구 저장을 필요로 하지 않고 전세계적인 리던던시의 성능 이점을 제공할 수 있게 하여, 데이터 "주권"이 유지될 수 있게 한다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 제공되는 "비밀별" 방식의 이러한 정교한 허가 시스템은 시스템으로 하여금 각각의 비밀을 유지하면서 멀티-테넌시(multi-tenancy)(즉, 동시에 다수의 별개의 회사들을 지원함)를 안전하게 제공할 수 있게 하고, 각각의 사용자로 하여금 그들이 위치하는 관할 지역들의 데이터 규정들을 준수하도록 한다. 이는 특히 GDPR(General Data Protection Regulation)과 같은 새로운 규정이 유럽 연합의 사용자들에게 미국의 사용자들과는 다른 데이터 규제들을 갖게 할 가능성이 있기 때문에 특히 주목할 만하다.
비밀을 동적으로 그리고 개별적으로 제한하는 능력에 더하여, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 또한, 주권(110) 내의 각각의 지역(120)이 특정한 주권(110) 또는 더 큰 시스템에 대해 독립적인 저장 방법들을 갖게 하는 고유한 능력을 제공한다. 이런 식으로, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 각각의 지역(120)이 해당 지역에 위치되는 하드웨어 및 환경의 서비스들을 이용할 수 있게 하는 반면, 주권(110) 내의 다른 지역들(120)은 상이한 하드웨어 및 서비스들을 이용할 수 있다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 이러한 저장 방법 독립성은 최종 사용자에게는 투명하다. 따라서 최종 사용자들은 상이한 저장 유형에 대한 방법들, API 인터페이스 등을 변경할 필요가 없다.
반면에, 일부 경쟁 시스템 및 방법들은, 비밀들이 네임스페이스 지정되거나, 값들의 이름에 의해 제한되는 상이한 "키 저장소"에 걸친 저장을, 비밀들이 위치하고 있되 임의의 클러스터 내의 접근을 그 안의 가용한 저장 방법으로만 제한시키는 키 저장소에 대해 허용한다.
즉, 비밀을 검색하기 위해, 최종 사용자는 비밀이 위치된 스토리지의 유형을 알아야 한다. 중요하게, 호스팅된 비밀 관리 전송 시스템 및 방법(100)에서, 값들은 하나의 지역(120)(또는 주권(110)) 내에 설정되고 다른 지역(120)(또는 주권(110))에서 검색될 수 있다. 또한, 호스팅된 비밀 관리 전송 시스템 및 방법(100)에서, 값은 하나의 지역(120)에서 제1 저장 방법으로 저장될 수 있고, 다른 값은 동일한 주권(110) 내의 제2 지역(120)에서 제2 저장 방법으로 저장될 수 있다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 이러한 저장 유연성은 각각의 지역(120)이, 일부 제3자 시스템들에서 사용되는 보조 장치 복제에 대한 표준 주 장치에 요구되는 네트워크 측면의 요건들이 아니라, 개별 지역(120)의 요건들에 맞춰 실행될 수 있게 한다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 저장 방법의 독립성에 추가하여, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 또한 환경적으로 독립적이다. 즉, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 임의의 환경에서 동작할 수 있고, 특정 값은 제1 환경에서의 하나의 지역(120)에서 저장될 수 있는 반면, 다른 값은 동일한 주권(110) 내의 제2 환경에서의 제2 지역(120)에 저장될 수 있다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 인증 및 라우팅 계층의 코어는 컨테이터화로도 알려져 있는, 운영체제 레벨의 가상화를 수행하는 소프트웨어 프로그램을 실행할 수 있는 리눅스에 기초한 임의의 운영체제에서 동작할 수 있다. 이러한 운영체제는 단지 비제한적인 예로서, Ubuntu, RedHat, CentOS 및 Oracle Linux를 포함한다. 이러한 운영체제는 Amazon Web Services, Azure, Google Cloud Platform, IBM Cloud, Rackspace 와 같은 모든 주요 클라우드 인프라 제공자에서 확인될 수 있다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)은 특히 보안 웹사이트들에 적용가능하지만, 상기 시스템은 안전한 웹사이트들을 넘어 광범위한 적용성을 갖는다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 또한, 기업용 소프트웨어에서의 비밀 관리뿐만 아니라, 기업 네트워크 내의 내부 소프트웨어에 대해 사용될 수 있다. 추가적으로, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 기업 시스템 내의 다른 기술 기반 프로세스들에서 이용될 수 있다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 비밀 관리에 이용되고, 소프트웨어가 하드웨어 장치 상에 로딩되고 있는 생산 라인과 같은, 비-기술적 기업에서 이용될 수 있다. 다른 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은, 비밀 관리에 이용되고, 자동차들이 생성되고 소프트웨어를 이용하여 로딩되는 공장에서와 같은, 비-기술적 기업에서 이용될 수 있다. 사물인터넷(IoT)이 확산되면서, 많은 인터넷 연결 기기들은 그들을 운영하고 있는 서비스 제공자에게 정보를 안전하게 연결하고 전송할 수 있는 능력을 필요로 한다. 이러한 비밀들은 인터넷 연결된 기기들 상에 로컬로 저장될 수 있지만, 이러한 로컬 저장소는 인터넷 연결된 기기들 시스템이 유출될 때 문제를 일으킬 수 있다.
대신에, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 인터넷 연결된 기기들이 동작하기 위해 필요한 비밀들 없이도 선적될 수 있게 하고, 그 후 그들의 최종 사용자 위치에 도착한 후에 비밀들에 대한 액세스를 허가받을 수 있게 한다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 이러한 구현예에서, 인터넷 연결된 기기들에 부여되었던 비밀들에 대한 액세스는 언제라도 취소될 수 있다.
이제 도 3을 참조하면, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 키링(KeyRing)(300)이 도시되어 있다. 키링(300)은 이러한 비밀들이 단지 비제한적인 예로서, 개발 및 제품과 같은, 환경들로 함께 그룹화되는 곳이다. 관리 계정 사용자(310)만이 발행 수준, 키링의 이름과 같은 키링(300) 상의 정보를 변경할 수 있고, 개발 클라이언트(330)를 생성하기 위해 사용자 계정들(320)에 허가를 제공할 수 있다. 개발 클라이언트(330)는 관리 계정 사용자(310)에 의해 지정된 바와 같이 키링(300)에 대한 액세스를 갖는 모든 사람에 의해 생성될 수 있다. 생성 클라이언트(340)는 관리 계정 사용자(310)에 의한 인증된 요청, 및 요청을 생성하기 위한 개발 클라이언트(330)에 의해서만 생성될 수 있고, 따라서, 사용자 인증은 단지 비제한적인 예로서, 시간 기반 일회성 패스워드 알고리즘을 통해 또는 등록된 장치에 대한 SMS 메시지를 통해 수행될 수 있는 2-팩터 인증을 갖기 때문에 인증의 제3 지점을 제공할 수 있다.
이제 도 4를 참조하면, 호스팅된 비밀 관리 전송 시스템 및 방법(100)에서 키링(300)을 생성하기 위해, 다음의 프로세스가 구현될 수 있다: 단계(410)에서 사용자 계정(320)이 생성되고, 단계(420)에서 사용자 계정(320)을 인증하는 것을 통해 키링(300)이 생성되며, 단계(430)에서 사용자 계정(320)을 인증하는 것을 통해 개발 환경을 위한 키링(300)으로의 연결을 허용하는 클라이언트가 생성되고, 단계(440)에서 사용자 계정을 인증하는 것을 통해, 그리고 2-팩터 인증을 통해, 키링(300) 상의 제품 비밀에 대한 액세스를 허용하는 클라이언트가 생성된다. 이 구현예에서, 클라이언트는 인증의 제3 소스로서 개발 인증서를 사용하여 생성된다.
도 5는 다른 제3자 시스템들과 달리, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 기술적 고유성을 더 설명한다. 도 5에 도시된 바와 같이, 사용자 계정은 사용자(510)를 인증함으로써 생성될 수 있다. 해당 사용자(510)는 등록된 제품 클라이언트(510), 등록된 제품 클라이언트(520), 및 등록된 개발 클라이언트(530)에 의해 키링(530)과 연관될 수 있다. 하나 이상의 구현예들에서, 등록된 제품 클라이언트(510)는 그 후, 키링(530)을 이용하여 제품 비밀(540)에 액세스할 수 있다. 하나 이상의 구현예들의 다른 양태에서, 등록된 개발 클라이언트(530)는 그 후, 키링(530)을 이용하여 개발 비밀(550)에 액세스할 수 있다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 동일한 제품 비밀(540)의 상이한 버전들(예를 들어, 버전 1(542), 버전 2(544))을 저장할 수 있다. 일부 구현예들의 다른 양태에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 동일한 개발 비밀(550)의 상이한 버전들(예를 들어, 버전 1(552), 버전 2(554))을 저장할 수 있다.
특히, 호스팅된 비밀 관리 전송 시스템 및 방법(100)에서, 클라이언트들은 변경될 수 없는 내장된 허용 권한 및 아이덴티티를 갖는다. 즉, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 클라이언트들은 그들의 생성 시점으로부터 특정 환경들에 대해 등록된다. 문제되는 것은, 다른 제3자 시스템들은 사용자가 생성된 후 나중에 추가 권한을 부여할 수 있는 것이다. 그러나 이러한 제3자 시스템들은 상이한 환경들에서 새로운 비밀에 액세스할 수 있는 권한 상승(permission escalation) 공격을 받기 쉽다. 이러한 유형의 공격에서, 메인 시스템(예를 들어, 해커)에 대한 부적절한 액세스를 갖는 사람은 사용자의 권한을 해당 사용자가 허가되지 않았던 환경으로 상승시킨다.
중요하게, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 고유한 아키텍처는 클라이언트가 생성될 때 클라이언트로의 아이덴티티 및 허가를 안전하게 만들기 때문에, 클라이언트의 아이덴티티 및 허가는 미래의 임의의 시점에서 변경될 수 없다. 즉, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 암호화 서명의 일부로서 클라이언트에 대한 아이덴티티 및 허가를 강제하고, 따라서 임의의 시점에 변경될 수 없어서, 이러한 유형의 공격을 제거할 수 있다. 이는 호스팅된 비밀 관리 전송 시스템 및 방법(100)으로 하여금, 사용자들이 서로 교차할 수 없는 상이한 그룹들로부터 존재하는 공유 시스템을 생성할 수 있게 하는 기술적 개선이다.
특히, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 일부 구현예들에서, 시스템은 주요 비밀의 네임스페이스 아래에 키들의 다수의 버전들을 저장한다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 가능하게 되는 이러한 기술적 개선은 하나의 비밀 이름 하에서 모든 액세스된 동일한 비밀의 다수의 버전들을 가질 수 있는 능력을 제공한다. 이와 관련하여, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 사용자로 하여금 비밀의 다양한 버전들의 값을 설정할 수 있게 한다.
일부 다른 제3자 시스템들은 키 버전들을 비밀 v1, 비밀 v2 등으로 이름 지정해야만 하는, 원치 않는 유형의 "버전들"을 허용한다. 또한, 다른 제3자 시스템들은 종종, 인스턴스들 및 버전들을 허용하지만, 이들은 수평으로 저장되며, 사용자 입력에 의해 생성되기 보다는, 새로운 키가 프로그램적으로 생성되고 이전의 키에 링크되는 "키 롤링" 프로시저(key rolling procedure)의 일부이다. 이와 달리, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 사용자로 하여금 키 버전들 및 그들의 값들을 제어할 수 있게 한다. 또한, 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 지원되는 버전 관리는 두 명의 상이한 사용자들이 동일한 비밀을 사용할 수 있게 하고, 만약 하나의 사용자가 비밀을 업데이트하는 겨우, 다른 사용자는 영향을 받지 않는다.
하나 이상의 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 비밀들을 보호하기 위해 다수의 암호화 계층들을 배치한다. 암호화의 첫 번째 계층은 값이 사용자의 애플리케이션을 떠나기 전에 발생한다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 암호화된 값을 저장하고, 이를 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 서버로 암호화된 보안 연결을 통해 전송한다. 일단 호스팅된 비밀 관리 전송 시스템 및 방법(100)에서 암호화된 값은, 예를 들어 Townsend Security에 의해 제공되는 HSM(Hardware Security Module)로 라우팅되고 그 안에 유휴 시(at rest) 저장되고 암호화된다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 전송되는 값은 암호화되고, 그것이 시작된 위치에서만 복호화될 수 있으므로 이는 "종단간(end to end) 암호화"이다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)이나, 어느 누구도, 암호화된 값을 언제든지 보거나 수정하거나 분실할 수 없다. 일 구현예에서, 애플리케이션이 암호화/복호화 또는 API 요청에 대한 키를 필요로 하는 경우, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 사용자를 대신하여 인증하기 위해 파트너 호스팅 제공자 서버의 인증서를 사용하고, 키를 해제한다. 이런 식으로, 호스팅된 비밀 관리 전송 시스템들 및 방법들(100)에 액세스하는데 사용되는 보안정보들은 하이재킹 및 위변조를 방지하기 위해, 애플리케이션 호스트 또는 애플리케이션 플랫폼에 의해 제공된다.
키 랩핑(key wrapping) 프로세스를 사용하여, 키들은 웹사이트 또는 애플리케이션 환경 외부에서 사용되지 않도록 무효화된다. 키 랩핑 프로세스에서, 하나의 값은 제2 키를 사용하여 획득되고 암호화(랩핑)된다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 대개 KEK(키 암호화 키)라 불리는 제2 키를 획득하고, 이를 원래의 값 대신에 애플리케이션에 저장한다. 이 KEK는 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 저장된 값을 안전하게 하는 기능을 갖지 않기 때문에, 애플리케이션 상에 저장하는 것이 안전하다. 이 키에 대한 액세스를 획득하는 누구든지 아직 원래 값을 가지고 있지 않으며, 이 키는 그 값에 관련되지 않았거나 그로부터 유도된 것이 아니기 때문에 공격자에게는 쓸모가 없다.
이는 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 저장된 키들이 프로세스에 다른 보안 계층을 추가함으로써 보여지거나 또는 유출되는 것을 방지한다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 Townsend Security의 FIPS 140-2 준수 키 매니저를 이용하여, 산업 표준들의 최고 수준에 맞추어 키들을 안전하게 만든다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 SHA256 HMAC을 이용하여 AES 256비트 CBC 암호화를 사용하여 저장될 값을 암호화한다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 하나의 기술적 개선은 시스템이 다수의 현재 및 예상되는 저장 기술들을 이용하여 동작하도록 구성된다는 것이다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 물리적 또는 클라우드 기반의 하드웨어 보안 모듈들을 사용하여, 최상위 레벨의 보호를 제공하기 위해 시스템 내에 유휴 시 안전하게 비밀들을 저장한다. 호스팅된 비밀 관리 전송 시스템 및 방법(100)과 함께 사용되는 임의의 하드웨어 보안 모듈은 최소한 NIST 140-2를 준수하며, 이는 업계 최고의 암호화되고 보안된 환경에서 저장될 수 있게 한다. 또한 이러한 하드웨어 보안 모듈은 PCI-DSS, HIPAA, GDPR 등과 같은 글로벌 규제를 준수하는 인증서들을 보유할 수 있다.
다른 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 비-하드웨어 보안 모듈 저장 방법들을 사용하며, 이들은 유휴 시 암호화되고, 규제 준수를 충족할 필요가 없는 비밀들에 대해 기본적인 보안 레벨을 제공한다. 이들 저장 방법들은 업계에서 검증될 것이고, 비-하드웨어 보안 모듈로서, 또는 잠재적으로 비-준수 저장 방법들로서 광고될 것이다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)은 하드웨어 보안 모듈들로부터 발행된 x.509 인증서들, 또는 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 신뢰되는 공통 인증 기관(Certificate Authority)을 통해, 인증 동작한다. 이들 인증서들은 암호적으로 서명된 것이며, 이는 위변조 방지될 뿐만 아니라, 아이덴티티 데이터를 포함한다. 추가적으로, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 일부 구현예들에서, 인증은 다른 암호적으로 서명된 토큰들, 예를 들어, Kubernetes 서비스 계정 토큰(Service Account Token)을 통해 발생한다. 이러한 토큰은 시작 서비스에 대해 암호화 서명을 사용하여 저장 기술로부터 검증된다. 이는 x.509 인증서들을 통해 사용되는 유사한 암호화 및 위변조 방지 서명 방법을 생성한다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 제공되는 많은 기술적 개선들 중 하나는 시스템(100)과 상호작용하는 기저의 저장 기술이 시스템(100)에 의해 사용되는 동일한 운영체제에서 동작할 필요가 없다는 것이다. 일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 리눅스에 기초하지만, 다른 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)은 윈도우즈와 같은 다른 운영체제에서 실행되는 저장 기술에 연결된다. 네트워크가 기반하는 환경(예를 들어, 클라우드)뿐만 아니라 저장 기술의 운영체제에 걸친 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 능력은 호스팅된 비밀 관리 전송 시스템 및 방법(100)이 비밀 관리를 위한 진정하게 보편적으로 적용 가능한 네트워크일 수 있게 한다. 이와 달리, 경쟁기술의 비밀 관리 시스템들은 저장 기술의 교차된 환경에서 및/또는 교차된 운영체제에서 동작할 수 없다. 그 대신, 이러한 경쟁기술의 비밀 관리 시스템들은 특정 클라우드 환경에서만 작동하고/하거나 저장 기술의 특정 운영체제에서만 동작한다.
특히, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 하나 이상의 구현예들은 다수의 연결된 환경들에 비밀들을 분산시키고, 비밀들의 검색, 내보내기, 또는 이들 모두를 가능하게 한다. 그러나 일부 하드웨어 보안 모듈 기술은 비밀의 검색이 아닌 비밀의 가져오기만을 허용한다. 따라서, 이는 일부 경쟁기술 시스템들에 비해, 호스팅된 비밀 관리 전송 시스템 및 방법(100)에 의해 제공되는 또 다른 기술적 개선이다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)과 함께 사용하기 위해, 도 6은 도 3 내지 도 5에 기술된 바와 같이, 개발 클라이언트 및 제품 클라이언트를 위한 컴퓨팅 인프라스트럭처를 구현하기에 적절한 프로세서 기반 장치를 도시한다. 비록 필수적인 것은 아니지만, 구현예들의 일부 부분은 프로세서 실행가능 명령들 또는 로직, 예를 들어, 하나 이상의 프로세서들에 의해 실행되는 프로그램 애플리케이션 모듈들, 객체들, 또는 매크로들과 같은 일반적인 맥락에서 설명될 것이다. 통상의 기술자는, 설명된 구현예들뿐만 아니라, 다른 구현예들이, 스마트폰 및 태블릿 컴퓨터과 같은 핸드헬드(handheld) 장치, 웨어러블 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능한 가전 제품, 개인용 컴퓨터들("PC"), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 프로세서 기반 시스템 구성들로 실시될 수 있음을 이해할 것이다.
일부 구현예들에서, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 클라이언트들은 하나 이상의 프로세서들(606), 시스템 메모리(608), 및 시스템 메모리(608)를 포함하는 다양한 시스템 컴포넌트들을 프로세서(들)(606)에 연결시키는 시스템 버스(610)를 포함할 수 있다. 프로세서 기반 클라이언트들은 종종, 본원에서 단수로 지칭될 것이지만, 특정 구현예들에서는 둘 이상의 시스템 또는 다른 네트워킹된 컴퓨팅 장치가 포함될 것이기 때문에, 이는 구현예들을 단일 시스템으로 제한하기 위한 것이 아니다. 상업적으로 입수 가능한 시스템들의 비제한적인 예는 다양한 제조사로부터의 ARM 프로세서, 미국 Intel사의 Core 마이크로프로세서, IBM사의 PowerPC 마이크로프로세서, Sun Microsystems사의 Sparc 마이크로프로세서, Hewlett-Packard사의 PA-RISC 시리즈 마이크로프로세서, 및 Motorola사의 68xxx 시리즈 마이크로프로세서를 포함할 수 있으나, 이들에 제한되는 것은 아니다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트들에서의 프로세서(들)(606)는, 하나 이상의 중앙 처리 유닛(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 등과 같은 임의의 논리 프로세싱 유닛일 수 있다. 다르게 설명되지 않는 한, 도 6에 도시된 다양한 블록들의 구성 및 동작은 통상적인 설계이다. 결과적으로, 이러한 블록들은 관련 분야의 통상의 기술자에 의해 이해될 것이므로, 본원에서 더 상세히 설명될 필요는 없다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트들 내의 시스템 버스(610)는 메모리 컨트롤러를 갖는 메모리 버스, 주변장치 버스, 및 로컬 버스를 포함하는 임의의 공지된 버스 구조들 또는 아키텍처들을 이용할 수 있다. 시스템 메모리(608)는 읽기 전용 메모리("ROM")(612) 및 랜덤 액세스 메모리("RAM")(614)를 포함한다. ROM(612)의 일부를 형성할 수 있는 기본 입출력 시스템("BIOS")(616)은 예를 들어 스타트업(start-up) 동안, 프로세서 기반 장치 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본 루틴들을 포함한다. 일부 구현예들은 데이터, 명령들 및 전력을 위해 개별적인 버스들을 이용할 수 있다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트들은 또한, 하나 이상의 솔리드 스테이트 메모리, 예를 들어 플래시 메모리 또는 솔리드 스테이트 드라이브(SSD)를 포함할 수 있으며, 이는 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 및 프로세서 기반 장치를 위한 다른 데이터의 비휘발성 저장을 제공한다. 도시되지 않았지만, 프로세서 기반 장치는 다른 비-일시적인 컴퓨터-판독가능 매체 또는 프로세서-판독가능 매체, 예를 들어, 하드디스크 드라이브, 광학 디스크 드라이브, 또는 메모리 카드 매체 드라이브를 이용할 수 있다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트들 내의 프로그램 모듈들은 운영체제(630), 하나 이상의 애플리케이션 프로그램들(632), 다른 프로그램들 또는 모듈들(634), 드라이버들(636) 및 프로그램 데이터(638)와 같은 시스템 메모리(608)에 저장될 수 있다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트들 내의 시스템 메모리(608)는 또한 통신 프로그램들(640), 예를 들어, 프로세서 기반 장치로 하여금 사용자 컴퓨팅 시스템들, 인터넷 상의 웹사이트들, 기업 인트라넷들, 또는 아래에서 설명되는 다른 네트워크들과 같은 다른 시스템들과 데이터를 액세스 및 교환하도록 허용하기 위한 서버 및/또는 웹 클라이언트 또는 브라우저를 포함할 수 있다. 도시된 구현예들에서 통신 프로그램(640)은 HTML(Hypertext Markup Language), XML(Extensible Markup Language) 또는 WML(Wireless Markup Language)과 같은 마크업 언어 기반이고, 문서의 구조를 나타내기 위해 문서의 데이터에 부가되는 구문적으로 분리된 문자들을 사용하는 마크업 언어들을 이용하여 동작한다. 다수의 서버들 및/또는 웹 클라이언트들 또는 브라우저들, 예를 들면, 캘리포니아주 소재 Mozilla사 및 워싱턴주 소재 Microsoft사의 것들이 상업적으로 이용될 수 있다.
도 6에 도시된 바와 같이, 시스템 메모리(608), 운영체제(630), 애플리케이션 프로그램들(632), 다른 프로그램들/모듈들(634), 드라이버들(636), 프로그램 데이터(638), 및 서버 및/또는 브라우저는 매우 다양한 비일시적인 프로세서-판독가능 매체(예를 들어, 하드디스크 드라이브, 광학 디스크 드라이브, SSD 및/또는 플래시 메모리) 중 임의의 것에 저장될 수 있다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트의 사용자는 포인터를 통해, 예를 들어, 손가락(644a)이나 스타일러스(644b)를 통한 터치스크린(648)과 같은 입력 장치를 통해, 또는 커서를 제어하는 컴퓨터 마우스 또는 트랙볼(644c)을 통해, 명령들 및 정보를 입력할 수 있다. 다른 입력 장치들은 마이크로폰, 조이스틱, 게임 패드, 태블릿, 스캐너, 생체인식 스캐닝 장치 등을 포함할 수 있다. 이들 및 다른 입력 장치들(즉, "I/O 장치들")은 터치스크린 컨트롤러 및/또는 사용자 입력을 시스템 버스(610)에 연결시키는 USB(universal serial bus) 인터페이스(병렬 포트, 게임 포트 또는 무선 인터페이스 또는 직렬 포트와 같은 다른 인터페이스가 사용될 수 있지만)와 같은 인터페이스(646)를 통해 프로세서(들)(606)에 연결된다. 터치스크린(648)은 터치스크린(648)을 통해 디스플레이하기 위한 이미지 데이터 또는 이미지 정보를 수신하는 비디오 어댑터와 같은 비디오 인터페이스(650)를 통해 시스템 버스(610)에 연결될 수 있다. 도시되지 않았지만, 프로세서 기반 클라이언트는 스피커, 진동자, 햅틱 액추에이터 또는 햅틱 엔진 등과 같은 다른 출력 장치들을 포함할 수 있다.
호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트는 하나 이상의 통신 채널들, 예를 들어 하나 이상의 네트워크(614a, 614b)를 통해 하나 이상의 원격 컴퓨터들, 서버들 및/또는 장치들과 통신하기 위한 하나 이상의 논리적 연결들을 사용하여 네트워크 환경에서 동작한다. 이러한 논리적 연결들은, 예를 들어, 인터넷, 및/또는 셀룰러 통신 네트워크들과 같은 하나 이상의 LAN들 및/또는 WAN들을 통하는 것과 같이, 컴퓨터들이 통신하게 하는 임의의 공지된 방법을 용이하게 할 수 있다. 이러한 네트워크 환경들은 유선 및 무선 엔터프라이즈-와이드 컴퓨터 네트워크, 인트라넷, 익스트라넷, 인터넷, 및 다른 유형들의 통신 네트워크에 공지되어 있다. 이러한 다른 유형의 통신 네트워크는 통신 네트워크, 셀룰러 네트워크, 페이징 네트워크, 및 다른 모바일 네트워크를 포함한다.
네트워크 환경에서 사용될 때, 호스팅된 비밀 관리 전송 시스템 및 방법(100)의 프로세서 기반 클라이언트들은, 예를 들어, 인터넷(614a) 또는 셀룰러 네트워크(614b)를 통해 통신을 확립하기 위한 하나 이상의 네트워크, 유선 또는 무선 통신 인터페이스들(652a, 656)(예를 들어, 네트워크 인터페이스 컨트롤러들, 셀룰러 라디오들, WI-FI 라디오들, 블루투스 라디오들)을 포함할 수 있다.
네트워크 환경에서, 프로그램 모듈들, 애플리케이션 프로그램들, 또는 데이터 또는 이들의 부분들은 서버 컴퓨팅 시스템(도시되지 않음)에 저장될 수 있다. 통상의 기술자는 도 6에 도시된 네트워크 연결들이 단지 컴퓨터들 사이의 통신을 확립하는 방법들의 일부 예들이고, 무선 연결을 포함한 다른 연결들이 이용될 수 있음을 이해할 것이다.
편의상, 프로세서(들)(606), 시스템 메모리(608), 및 네트워크 및 통신 인터페이스들(652a, 656)은 시스템 버스(610)를 통해 서로 통신 가능하게 연결되는 것으로 도시되어 있으며, 이에 따라 전술한 컴포넌트들 사이의 연결을 제공한다. 프로세서 기반 장치의 다른 구현예들에서, 전술한 컴포넌트들은 도 6에 도시된 것과는 상이한 방식으로 통신 가능하게 연결될 수 있다. 예를 들어, 전술한 컴포넌트들 중 하나 이상은 다른 컴포넌트들에 직접 연결될 수 있거나, 중간 컴포넌트들(도시되지 않음)을 통해 서로 연결될 수 있다. 일부 구현예들에서, 시스템 버스(610)는 생략되고, 컴포넌트들은 적절한 연결들을 사용하여 서로 직접 연결된다.
본 명세서 및 첨부된 청구항들 전반에 걸쳐, "통신 가능한 경로", "통신가능한 연결"에서와 같은 용어 "통신가능한" 것, 및 "통신가능하게 연결된"과 같은 그 변형들은 일반적으로 정보를 전달 및/또는 교환하기 위한 임의의 조작된 배열을 지칭하기 위해 사용된다. 예시적인 통신가능한 경로는, 전기 전도성 경로(예를 들어, 전기 전도성 와이어, 전기 전도성 트레이스), 자기 경로(예를 들어, 자기 매체), 하나 이상의 무선 통신 프로토콜(들)을 통한 하나 이상의 통신 링크(들), 및/또는 광학 경로(예를 들어, 광섬유)를 포함하지만, 이들로 제한되지 않으며, 예시적인 통신가능한 연결은 전기적 연결, 자기 연결, 무선 연결, 및/또는 광학적 연결을 포함하지만 이에 제한되지 않는다.
본 명세서 및 첨부된 청구항들 전반에 걸쳐, 부정사 동사 형태가 종종 사용된다. 그 예들은, "검출하기 위해", "제공하기 위해", "전송하기 위해", "통신하기 위해", "처리하기 위해", "라우팅하기 위해" 등을 포함하지만 이에 제한되지 않는다. 구체적인 맥락이 달리 요구되지 않는 한, 이러한 부정사 동사 형태들은 "적어도 검출하기 위해", "적어도 제공하기 위해", "적어도 전송하기 위해" 등과 같은 개방적이고 포괄적인 의미로 사용된다.
요약서에서 설명되는 것을 포함하는, 예시된 구현예들의 상기 설명은 배타적인 것으로 의도되지 않거나, 또는 개시된 정확한 형태들로 구현예들을 제한하도록 의도되지 않는다. 본원에서 구체적인 구현예들 및 예들이 예시를 위해 설명되어 있지만, 통상의 기술자에 의해 이해되는 바와 같이, 본 개시의 사상 및 범위를 벗어나지 않고 다양한 균등한 변형이 이루어질 수 있다.
예를 들어, 전술한 상세한 설명은 블록도, 개략도 및 예의 사용을 통해 장치들 및/또는 프로세스들의 다양한 구현예들을 설명하고 있다. 이러한 블록도, 개략도 및 예가 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 통상의 기술자는 이러한 블록도, 흐름도, 또는 예의 각각의 기능 및/또는 동작이 넓은 범위의 하드웨어, 소프트웨어, 펌웨어, 또는 실질적으로 그들의 임의의 조합에 의해 개별적으로 및/또는 집합적으로 구현될 수 있음을 이해할 것이다. 일 구현예에서, 본 청구 대상은 ASIC(Application Specific Integrated Circuits)을 통해 구현될 수 있다. 그러나, 통상의 기술자는 본원에 개시된 구현예들이 전체적으로 또는 부분적으로, 하나 이상의 컴퓨터들에 의해 실행되는 하나 이상의 프로그램들(예를 들어, 하나 이상의 컴퓨터 시스템들에서 실행되는 하나 이상의 프로그램들)로서, 하나 이상의 컨트롤러들(예를 들어, 마이크로컨트롤러)에 의해 실행되는 하나 이상의 프로그램들로서, 하나 이상의 프로세서들(예를 들어, 마이크로프로세서, 중앙 처리 장치, 그래픽 처리 장치)에 의해 실행되는 하나 이상의 프로그램들로서, 펌웨어로서, 또는 실질적으로 이들의 임의의 조합으로서, 표준 집적 회로에서 균등하게 구현될 수 있음을 이해할 것이고, 해당 소프트웨어 및/또는 펌웨어에 대한 코드를 작성하는 것 및/또는 회로를 설계하는 것은 본 개시의 교시들의 관점에서 통상의 기술자의 기술 범위 내에 있을 것이다.
로직이 소프트웨어로서 구현예되고 메모리에 저장될 때, 로직 또는 정보는 임의의 프로세서-관련 시스템 또는 방법에 의해 또는 그와 관련하여 사용하기 위한, 임의의 프로세서 판독가능 매체에 저장될 수 있다. 본 개시의 문맥에서, 메모리는 컴퓨터 및/또는 프로세서 프로그램을 포함하거나 저장하는 전자, 자기, 광학, 또는 다른 물리적 장치 또는 수단인 프로세서 판독가능 매체이다. 로직 및/또는 정보는 컴퓨터 기반 시스템, 프로세서 수반 시스템과 같은 명령 실행 시스템 또는 장치나, 명령 실행 시스템 또는 장치로부터 명령들을 인출할 수 있고 로직 및/또는 정보와 연관된 명령들을 실행할 수 있는 다른 시스템에 의해 또는 그와 관련하여 사용하기 위한, 임의의 프로세서 판독가능 매체에 구현될 수 있다.
본 명세서의 맥락에서, "비일시적인 프로세서-판독가능 매체"는 명령 실행 시스템 및/또는 장치에 의해 또는 그와 관련하여 사용하기 위한 로직 및/또는 정보와 연관된 프로그램을 저장할 수 있는 임의의 구성요소일 수 있다. 프로세서 판독가능 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템 또는 장치일 수 있지만, 이들로 제한되지 않는다. 컴퓨터 판독가능 매체의 보다 구체적인 예들(비-배타적인 리스트)은 휴대용 컴퓨터 디스켓(자기, 컴팩트 플래시 카드, 보안 디지털 등), 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 가능한 프로그램 가능 읽기 전용 메모리(EPROM, EEPROM, 또는 플래시 메모리), 휴대용 컴팩트 디스크 읽기 전용 메모리(CDROM), 디지털 테이프, 및 다른 비일시적인 매체를 포함할 것이다.
전술한 다양한 구현예들은 추가적인 구현예들을 제공하기 위해 조합될 수 있다. 본원의 특정 교시들 및 정의들과 일관되지 않는 범위에서, 본 명세서 및/또는 열거된 출원 데이터시트에 참조되는 미국 특허들, 미국 특허 출원 공개들, 미국 특허출원들, 해외 특허들, 해외 특허출원들 및 비-특허 공개문헌들은 그 전체가 본원에 참고로 포함된다. 구현예들의 양태들은, 필요한 경우, 추가적인 구현예들을 제공하기 위해 다양한 특허들, 출원들 및 공개 문헌들의 시스템들, 회로들 및 개념들을 이용하도록 수정될 수 있다.
본 출원은 2019년 1월 29일 출원된 미국 특허출원 제16/261,443호에 대한 우선권을 주장하며, 그 전문이 본원에 참조로 포함된다.
이들 및 다른 변경들이 상기 상세한 설명의 관점에서 구현예들에 대해 이루어질 수 있다. 일반적으로, 이하의 청구항들에서, 사용되는 용어들은 명세서 및 청구항들에 개시된 특정 구현예들에 대해 청구항들을 제한하는 것으로 해석되지 않아야 하며, 그러한 청구항들이 커버하는 균등물들의 전체 범위와 함께 모든 가능한 구현예들을 포함하는 것으로 해석되어야 한다. 따라서, 청구항들은 본 개시에 의해 제한되지 않는다.

Claims (35)

  1. 하나 이상의 오프사이트 위치에서 비밀을 관리하기 위한 호스팅된 비밀 관리 전송 시스템으로서, 상기 시스템은,
    하나 이상의 프로세서들 및 명령들의 집합을 저장하는 메모리 장치를 포함하는 서버를 포함하고, 상기 명령들의 집합은 상기 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 하나 이상의 프로세서들로 하여금,
    컴포넌트들의 보다 큰 기능적 그룹들인 2개 이상의 주권들에 대한 경계들을 정의하게 하고 - 각각의 주권은 독립적인 마스터 레코드를 갖고, 각각의 주권은 2개 이상의 지역들을 포함함 -;
    상기 2개 이상의 지역들 내의 주 지역을 정의하게 하며;
    상기 주 지역 내에서, 해당 주권에 대한 비밀들의 주 저장소인 마스터 레코드 하드웨어 보안 모듈에 액세스하게 하고 - 상기 마스터 레코드 하드웨어 보안 모듈은 자신의 대응하는 주권 내의 비밀들에 대한 모든 동작들에 대한 참 레코드이고, 상기 비밀들에 대한 상기 동작들은 생성 동작들, 업데이트 동작들, 및 삭제 동작들 중 하나 이상을 포함함 -;
    상기 주 지역이 아닌 하나 이상의 보조 지역들을 정의하게 하며;
    상기 하나 이상의 보조 지역들 내에서, 상기 마스터 레코드 하드웨어 보안 모듈로부터 상기 비밀들의 데이터 백업들이 생성되는, 백업 레코드 하드웨어 보안 모듈에 액세스하게 하고;
    상기 마스터 레코드 하드웨어 보안 모듈로부터, 동시에 다수의 개별 회사들의 멀티-테넌시(multi-tenancy) 비밀 관리를 지원하는 상기 백업 레코드 하드웨어 보안 모듈로의 실시간 복제를 실행하게 하며;
    상기 2개 이상의 지역들 각각에서, 상기 백업 레코드 하드웨어 보안 모듈로부터 라이브 복제를 수신하는 주 캐시 하드웨어 보안 모듈에 액세스하게 하고;
    상기 2개 이상의 지역들 각각에서, 하드웨어 보안 모듈 캐시 풀에 액세스하게 하며 - 상기 하드웨어 보안 모듈 캐시 풀은 특정 지역 내의 트래픽 요구들에 따라 상기 주 캐시 하드웨어 보안 모듈로부터 복제하도록 확장될 수 있음 -;
    특정 주권의 상기 2개 이상의 지역들 각각에서, 소프트웨어 컨테이너들의 클러스터와, 상기 소프트웨어 컨테이너들이 이용가능하고 적절하게 동작하도록 보장하는 소프트웨어 컨테이너 관리 시스템에 액세스하게 하고;
    소프트웨어 컨테이너에서 값들에 대한 요청을 수신하게 하며 - 특정 지역의 특정 클러스터 내의 상기 소프트웨어 컨테이너들로부터의 값들에 대한 상기 요청은 모든 읽기 동작들에 대하여 상기 주 캐시 하드웨어 보안 모듈 및 상기 하드웨어 보안 모듈 캐시 풀 사이에서 로드 밸런싱됨 -;
    상기 주 캐시 하드웨어 보안 모듈 및 상기 하드웨어 보안 모듈 캐시 풀 중에 존재하지 않는 값이 요청되는 경우, 상기 시스템은 상기 값이 원래(originally) 저장되었던 원천 주권을 찾고, 이것이 상기 값의 현재 요청이 수신된 요청 원천 주권과 상이하고 허용 권한을 갖는 경우, 상기 원천 주권에 대해 상기 값을 요청하고, 이를 상기 요청 원천 주권의 지역의 상기 주 캐시 하드웨어 보안 모듈에 캐싱하며, 그 후, 상기 값이 라이브 복제를 통해 상기 하드웨어 보안 모듈 캐시 풀에 분산되는, 시스템.
  2. 제1항에 있어서, 상기 주권들은 지정학적 경계들에 기초하여 정의되고, 상기 지정학적 경계들은 국가들, 국가들의 연합들, 또는 국가들의 그룹들을 포함하며, 상기 주권들은 지역들을 조직화하고 단일 그룹, 회사, 또는 기업에 속한 비밀들을 유지하도록 임의로 정의되며, 상기 지역들은 상기 주권들 중 하나 내의 지역적 방향들 또는 국가들을 포함하는 실세계 경계들에 의해 정의되고, 상기 지역들은 동일한 클라우드 제공자, 상이한 클라우드 제공자들, 온프레미스 시스템들 및 사설 클라우드들 중 하나 이상에 포함되는 완전히 고유한 데이터센터들에 기초하며, 보조 지역은 상기 주 지역 전체가 사용 불가능하게 되는 경우 높은 이용 가능성을 제공하는, 시스템.
  3. 제1항에 있어서, 상기 마스터 레코드는 모든 쓰기 동작들이 발생하는 곳인, 시스템.
  4. 제1항에 있어서, 긴급 상황들을 제외하면 상기 마스터 레코드 상에서 어떠한 읽기 동작들도 발생하지 않는, 시스템.
  5. 제1항에 있어서, 상기 백업 레코드 하드웨어 보안 모듈은 데이터베이스 잠금이 발생할 가능성을 감소시키거나 제거하기 위해, 상기 마스터 레코드 하드웨어 보안 모듈 상의 로드들을 가능한 한 낮게 유지하는, 시스템.
  6. 제1항에 있어서, 상기 주 캐시 하드웨어 보안 모듈은 자신의 대응하는 지역 내의 모든 캐싱된 값들에 대한 주 복제 소스로서의 역할을 하는, 시스템.
  7. 제1항에 있어서, 상기 시스템은 요청 지연을 감소시키기 위해 상기 주권들 사이에 상기 복제된 값들을 안전하게 분산시키고, 상기 대응하는 주권들의 상기 마스터 레코드 하드웨어 보안 모듈들이 항상 원래의 값들을 포함하는 동안 상기 주 캐시 하드웨어 보안 모듈들 및 하드웨어 보안 모듈 캐시 풀들을 통해 상기 복제된 값들을 분산시키는, 시스템.
  8. 제1항에 있어서, 상기 둘 이상의 지역들 각각은 데이터베이스 클러스터를 포함하고, 상기 데이터베이스 클러스터 중 하나는 주 데이터베이스 클러스터로 지정되며, 데이터는 상기 주 데이터베이스 클러스터 내에 저장되고, 상기 데이터는 상기 주 데이터베이스 클러스터로부터, 분산된 복제 데이터베이스들에 대해 전세계적으로 복제되는, 시스템.
  9. 제8항에 있어서, 상기 주 데이터베이스 클러스터에 저장된 상기 데이터는, 이름, 내부 이름, 버전 번호, 원천 주권, 및 상기 값들이 분산될 수 있는 곳을 보호하는 보안 정책들 중 하나 이상을 포함하는, 상기 시스템에서 관리되는 상기 비밀들의 메타데이터인, 시스템.
  10. 제9항에 있어서, 상기 데이터는 상기 메타데이터를 단일 엔티티로서 저장하는 것이 아니라, 메타데이터 엔티티를 구축하기 위해 렌더링되는 이벤트들의 스트림으로서 저장되는, 시스템.
  11. 제10항에 있어서, 상기 이벤트들의 스트림은 수행되는 변이 동작들을 초래하는 모든 이벤트들의 지속적인 감사 로그를 제공하는, 시스템.
  12. 제11항에 있어서, 상기 지속적인 감사 로그의 이벤트들은 머신러닝을 이용하여 비정상 및 보안 문제들에 대해 분석되는, 시스템.
  13. 제1항에 있어서, 클라이언트는 사용자에 의해 생성되고 키링에 바인딩되며, 제품 및 개발 값들이 교차되지 않게 보장하도록 특정 환경의 값들에 대한 상기 클라이언트의 액세스가 제한되는, 시스템.
  14. 제13항에 있어서, 상기 클라이언트는 상기 특정 환경에 바인딩되는, 시스템.
  15. 제13항에 있어서, 상이한 유형들의 특정 환경들은 제품, 스테이징, 테스트, 및 개발을 포함하는, 시스템.
  16. 제1항에 있어서, 모든 지역은 상기 지역 내의 모든 컴포넌트들을 포함하는 사설 서브넷을 포함하고, 상기 지역들 중 하나의 모든 컴포넌트들은, 인터넷에 대한 외부 연결을 통한 직접적인 접속의 어떠한 가능성도 제거하는, 다양한 가용 지역들 내의 사설 서브넷들 내에 위치되는, 시스템.
  17. 제1항에 있어서, 상기 지역들 사이의 모든 통신 및 상기 주권들 사이의 통신은 암호화된 연결들에 의해 처리되는, 시스템.
  18. 하나 이상의 오프사이트 위치들에서 비밀들을 관리하기 위한 호스팅된 비밀 관리 전송 방법으로서, 상기 방법은,
    컴포넌트들의 보다 큰 기능적 그룹들인 2개 이상의 주권들에 대한 경계들을 정의하는 단계 - 각각의 주권은 독립적인 마스터 레코드를 갖고, 각각의 주권은 2개 이상의 지역들을 포함함 -;
    상기 2개 이상의 지역들 내의 주 지역을 정의하는 단계;
    상기 주 지역 내에서, 해당 주권에 대한 비밀들의 주 저장소인 마스터 레코드 하드웨어 보안 모듈에 액세스하는 단계 - 상기 마스터 레코드 하드웨어 보안 모듈은 자신의 대응하는 주권 내의 비밀들에 대한 모든 동작들에 대한 참 레코드이고, 상기 비밀들에 대한 상기 동작들은 생성 동작들, 업데이트 동작들, 및 삭제 동작들 중 하나 이상을 포함함 -;
    상기 주 지역이 아닌 하나 이상의 보조 지역들을 정의하는 단계;
    상기 하나 이상의 보조 지역들 내에서, 상기 마스터 레코드 하드웨어 보안 모듈로부터 상기 비밀들의 데이터 백업들이 생성되는, 백업 레코드 하드웨어 보안 모듈에 액세스하는 단계;
    상기 마스터 레코드 하드웨어 보안 모듈로부터, 동시에 다수의 개별 회사들의 멀티-테넌시(multi-tenancy) 비밀 관리를 지원하는 상기 백업 레코드 하드웨어 보안 모듈로의 실시간 복제를 실행하는 단계;
    상기 2개 이상의 지역들 각각에서, 상기 백업 레코드 하드웨어 보안 모듈로부터 라이브 복제를 수신하는 주 캐시 하드웨어 보안 모듈에 액세스하는 단계;
    상기 2개 이상의 지역들 각각에서, 하드웨어 보안 모듈 캐시 풀에 액세스하는 단계 - 상기 하드웨어 보안 모듈 캐시 풀은 특정 지역 내의 트래픽 요구들에 따라 상기 주 캐시 하드웨어 보안 모듈로부터 복제하도록 확장될 수 있음 -;
    특정 주권의 상기 2개 이상의 지역들 각각에서, 소프트웨어 컨테이너들의 클러스터와, 상기 소프트웨어 컨테이너들이 이용가능하고 적절하게 동작하도록 보장하는 소프트웨어 컨테이너 관리 시스템에 액세스하는 단계; 및
    소프트웨어 컨테이너에서 값들에 대한 요청을 수신하는 단계 - 특정 지역의 특정 클러스터 내의 상기 소프트웨어 컨테이너들로부터의 값들에 대한 상기 요청은 모든 읽기 동작들에 대하여 상기 주 캐시 하드웨어 보안 모듈 및 상기 하드웨어 보안 모듈 캐시 풀 사이에서 로드 밸런싱됨 -를 포함하고,
    상기 주 캐시 하드웨어 보안 모듈 및 상기 하드웨어 보안 모듈 캐시 풀 중에 존재하지 않는 값이 요청되는 경우, 상기 시스템은 상기 값이 원래 저장되었던 원천 주권을 찾고, 이것이 상기 값의 현재 요청이 수신된 요청 원천 주권과 상이하고 허용 권한을 갖는 경우, 상기 원천 주권에 대해 상기 값을 요청하고, 이를 상기 요청 원천 주권의 지역의 상기 주 캐시 하드웨어 보안 모듈에 캐싱하며, 그 후, 상기 값이 라이브 복제를 통해 상기 하드웨어 보안 모듈 캐시 풀에 분산되는, 방법.
  19. 제18항에 있어서, 상기 주권들은 지정학적 경계들에 기초하여 정의되고, 상기 지정학적 경계들은 국가들, 국가들의 연합들, 또는 국가들의 그룹들을 포함하며, 상기 주권들은 지역들을 조직화하고 단일 그룹, 회사, 또는 기업에 속한 비밀들을 유지하도록 임의로 정의되며, 상기 지역들은 상기 주권들 중 하나 내의 지역적 방향들 또는 국가들을 포함하는 실세계 경계들에 의해 정의되고, 상기 지역들은 동일한 클라우드 제공자, 상이한 클라우드 제공자들, 온프레미스 시스템들 및 사설 클라우드들 중 하나 이상에 포함되는 완전히 고유한 데이터센터들에 기초하며, 보조 지역은 상기 주 지역 전체가 사용 불가능하게 되는 경우 높은 이용 가능성을 제공하는, 방법.
  20. 제18항에 있어서, 상기 마스터 레코드는 모든 쓰기 동작들이 발생하는 곳인, 방법.
  21. 제18항에 있어서, 긴급 상황들을 제외하면 상기 마스터 레코드 상에서 어떠한 읽기 동작들도 발생하지 않는, 방법.
  22. 제18항에 있어서, 상기 백업 레코드 하드웨어 보안 모듈은 데이터베이스 잠금이 발생할 가능성을 감소시키거나 제거하기 위해, 상기 마스터 레코드 하드웨어 보안 모듈 상의 로드들을 가능한 한 낮게 유지하는, 방법.
  23. 제18항에 있어서, 상기 주 캐시 하드웨어 보안 모듈은 자신의 대응하는 지역 내의 모든 캐싱된 값들에 대한 주 복제 소스로서의 역할을 하는, 방법.
  24. 제18항에 있어서, 상기 방법은 요청 지연을 감소시키기 위해 상기 주권들 사이에 상기 복제된 값들을 안전하게 분산시키고, 상기 대응하는 주권들의 상기 마스터 레코드 하드웨어 보안 모듈들이 항상 원래의 값들을 포함하는 동안 상기 주 캐시 하드웨어 보안 모듈들 및 하드웨어 보안 모듈 캐시 풀들을 통해 상기 복제된 값들을 분산시키는, 방법.
  25. 제18항에 있어서, 하나의 지역은 주 데이터베이스 클러스터로 지정되고, 데이터는 상기 주 데이터베이스 클러스터 내에 저장되며, 상기 데이터는 상기 주 데이터베이스 클러스터로부터, 각각의 지역에 배치되는 분산된 복제 데이터베이스들에 대해 전세계적으로 복제되는, 방법.
  26. 제25항에 있어서, 상기 주 데이터베이스 클러스터에 저장된 상기 데이터는, 이름, 내부 이름, 버전 번호, 원천 주권, 및 상기 값들이 분산될 수 있는 곳을 보호하는 보안 정책들 중 하나 이상을 포함하는, 상기 시스템에서 관리되는 상기 비밀들의 메타데이터인, 방법.
  27. 제26항에 있어서, 상기 데이터는 상기 메타데이터를 단일 엔티티로서 저장하는 것이 아니라, 메타데이터 엔티티를 구축하도록 렌더링되는 이벤트들의 스트림으로서 저장되는, 방법.
  28. 제27항에 있어서, 상기 이벤트들의 스트림은 수행되는 변이 동작들을 초래하는 모든 이벤트들의 지속적인 감사 로그를 제공하는, 방법.
  29. 제28항에 있어서, 상기 지속적인 감사 로그의 이벤트들은 머신러닝을 이용하여 비정상 및 보안 문제들에 대해 분석되는, 방법.
  30. 제18항에 있어서, 클라이언트는 사용자에 의해 생성되고 키링에 바인딩되며, 제품 및 개발 값들이 교차되지 않게 보장하도록 특정 환경의 값들에 대한 상기 클라이언트의 액세스가 제한되는, 방법.
  31. 제30항에 있어서, 상기 클라이언트는 상기 특정 환경에 바인딩되는, 방법.
  32. 제30항에 있어서, 상이한 유형들의 특정 환경들은 제품, 스테이징, 테스트, 및 개발을 포함하는, 방법.
  33. 제18항에 있어서, 모든 지역은 상기 지역 내의 모든 컴포넌트들을 포함하는 사설 서브넷을 포함하고, 상기 지역들 중 하나의 모든 컴포넌트들은, 인터넷에 대한 외부 연결을 통한 직접적인 접속의 어떠한 가능성도 제거하는, 다양한 가용 지역들 내의 사설 서브넷들 내에 위치되는, 방법.
  34. 제23항에 있어서, 상기 지역들 사이의 모든 통신 및 상기 주권들 사이의 통신은 암호화된 연결들에 의해 처리되는, 방법.
  35. 하나 이상의 오프사이트 위치들에서 비밀들을 관리하기 위한 호스팅된 비밀 관리 전송 시스템으로서, 상기 시스템은,
    컴포넌트들의 보다 큰 기능적 그룹들인 2개 이상의 주권들 - 각각의 주권은 독립적인 마스터 레코드를 갖고, 각각의 주권은 적어도 주 지역 및 보조 지역을 더 포함하는 2개 이상의 지역들을 포함함 -;
    상기 주 지역에 포함되고 해당 주권에 대한 비밀들의 주 저장소인 마스터 레코드 하드웨어 보안 모듈 - 상기 마스터 레코드 하드웨어 보안 모듈은 자신의 대응하는 주권 내의 비밀들에 대한 모든 동작들에 대한 참 레코드이고, 상기 비밀들에 대한 상기 동작들은 생성 동작들, 업데이트 동작들, 및 삭제 동작들 중 하나 이상을 포함함 -;
    상기 주 지역이 아닌 하나 이상의 보조 지역에 포함되고, 상기 마스터 레코드 하드웨어 보안 모듈로부터, 동시에 다수의 개별 회사들의 멀티-테넌시(multi-tenancy) 비밀 관리를 지원하는 실시간 복제를 수신하는 백업 레코드 하드웨어 보안 모듈 - 상기 백업 레코드 하드웨어 보안 모듈은 상기 마스터 레코드 하드웨어 보안 모듈로부터의 데이터 백업들이 생성되는 곳임 -;
    상기 2개 이상의 지역들 각각에 포함되고, 상기 백업 레코드 하드웨어 보안 모듈로부터 라이브 복제를 수신하는, 주 캐시 하드웨어 보안 모듈;
    상기 2개 이상의 지역들 각각에 포함되는 하드웨어 보안 모듈 캐시 풀 - 각각의 하드웨어 보안 모듈 캐시 풀은 특정 지역 내의 트래픽 요구들에 따라 자신의 대응하는 주 캐시 하드웨어 보안 모듈로부터 복제하도록 확장될 수 있음 -; 및
    상기 2개 이상의 지역들 각각에 포함되는, 소프트웨어 컨테이너들의 클러스터 및 소프트웨어 컨테이너 관리 시스템 - 상기 소프트웨어 컨테이너 관리 시스템은 상기 소프트웨어 컨테이너들이 이용가능하고 적절하게 동작하도록 보장하고, 특정 지역의 특정 클러스터 내의 상기 소프트웨어 컨테이너들로부터의 요청들은 모든 읽기 동작들에 대하여 상기 주 캐시 하드웨어 보안 모듈 및 상기 하드웨어 보안 모듈 캐시 풀 사이에서 로드 밸런싱됨 -을 포함하고,
    상기 주 캐시 하드웨어 보안 모듈 및 상기 하드웨어 보안 모듈 캐시 풀 중에 존재하지 않는 값이 요청되는 경우, 상기 시스템은 상기 값이 원래 저장되었던 원천 주권을 찾고, 이것이 상기 값의 현재 요청이 수신된 요청 원천 주권과 상이하고 허용 권한을 갖는 경우, 상기 원천 주권에 대해 상기 값을 요청하고, 이를 상기 요청 원천 주권의 지역의 상기 주 캐시 하드웨어 보안 모듈에 캐싱하며, 그 후, 상기 값이 라이브 복제를 통해 상기 하드웨어 보안 모듈 캐시 풀에 분산되는, 시스템.
KR1020217026973A 2019-01-29 2020-01-22 Api 및 암호화 키의 비밀 관리 시스템 및 방법 KR102396643B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/261,443 2019-01-29
US16/261,443 US11212096B2 (en) 2019-01-29 2019-01-29 API and encryption key secrets management system and method
PCT/US2020/014641 WO2020159774A1 (en) 2019-01-29 2020-01-22 Api and encryption key secrets management system and method

Publications (2)

Publication Number Publication Date
KR20210119491A KR20210119491A (ko) 2021-10-05
KR102396643B1 true KR102396643B1 (ko) 2022-05-12

Family

ID=71732869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217026973A KR102396643B1 (ko) 2019-01-29 2020-01-22 Api 및 암호화 키의 비밀 관리 시스템 및 방법

Country Status (8)

Country Link
US (2) US11212096B2 (ko)
EP (2) EP3903442B1 (ko)
JP (1) JP7102621B2 (ko)
KR (1) KR102396643B1 (ko)
CN (1) CN113498589B (ko)
AU (1) AU2020216787B2 (ko)
CA (1) CA3126952C (ko)
WO (1) WO2020159774A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11212096B2 (en) * 2019-01-29 2021-12-28 Cellar Door Media, Llc API and encryption key secrets management system and method
US11849037B1 (en) * 2021-02-22 2023-12-19 Amazon Technologies, Inc. Cross-region replication of secrets
US11991188B2 (en) 2021-06-11 2024-05-21 Bank Of America Corporation Cognitive auditing of client bound data
US11470182B1 (en) * 2021-10-04 2022-10-11 Monday.com Ltd. Multi-region cloud architecture
US20230155817A1 (en) * 2021-11-15 2023-05-18 Sap Se Managing secret values using a secrets manager
US11997215B2 (en) * 2022-01-31 2024-05-28 Salesforce, Inc. Secret protection during software development life cycle
CN118056379A (zh) * 2022-06-14 2024-05-17 微软技术许可有限责任公司 开发环境中的生产秘密的缓解

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230797A1 (en) 2002-03-16 2004-11-18 Yoram Ofek Remotely authenticated operation method
US20090292914A1 (en) 2007-02-01 2009-11-26 Huawei Technologies Co., Ltd. Nodes and systems and methods for distributing group key control message
WO2012040231A2 (en) 2010-09-20 2012-03-29 Orsini Rick L Systems and methods for secure data sharing
US20150019870A1 (en) 2008-04-02 2015-01-15 Cisco Technology, Inc. Master key generation and distribution for storage area network devices
US20180254901A1 (en) 2016-05-06 2018-09-06 ZeroDB, Inc. Method and system for secure delegated access to encrypted data in big data computing clusters

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494168B1 (en) * 2008-04-28 2013-07-23 Netapp, Inc. Locating cryptographic keys stored in a cache
JP2011165125A (ja) 2010-02-15 2011-08-25 Toppan Printing Co Ltd Icカード発行検査システム及び方法
US9052939B2 (en) * 2011-05-27 2015-06-09 Red Hat, Inc. Data compliance management associated with cloud migration events
US10789373B2 (en) * 2011-10-31 2020-09-29 Reid Consulting Group, Inc. System and method for securely storing and sharing information
US9277026B2 (en) * 2013-07-03 2016-03-01 Facebook, Inc. Cache stickiness index for content delivery networking systems
US9286948B2 (en) * 2013-07-15 2016-03-15 Advanced Micro Devices, Inc. Query operations for stacked-die memory device
US9467477B2 (en) * 2013-11-06 2016-10-11 Intuit Inc. Method and system for automatically managing secrets in multiple data security jurisdiction zones
GB2541572A (en) * 2014-05-01 2017-02-22 Sequitur Labs Inc Applications of secured memory areas and secure environments in policy-based access control systems for mobile devices
US11210212B2 (en) * 2017-08-21 2021-12-28 Western Digital Technologies, Inc. Conflict resolution and garbage collection in distributed databases
US11212096B2 (en) * 2019-01-29 2021-12-28 Cellar Door Media, Llc API and encryption key secrets management system and method
US11442960B2 (en) * 2019-12-17 2022-09-13 Verizon Patent And Licensing Inc. Edge key value store for a distributed platform
US11321324B2 (en) * 2019-12-31 2022-05-03 Huawei Technologies Co., Ltd. Systems and methods for cross-region data management in an active-active architecture
US11469880B2 (en) * 2020-08-20 2022-10-11 EMC IP Holding Company LLC Data at rest encryption (DARE) using credential vault
US11799839B2 (en) * 2021-03-29 2023-10-24 Oracle International Corporation Cross-regional replication of keys

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230797A1 (en) 2002-03-16 2004-11-18 Yoram Ofek Remotely authenticated operation method
US20090292914A1 (en) 2007-02-01 2009-11-26 Huawei Technologies Co., Ltd. Nodes and systems and methods for distributing group key control message
US20150019870A1 (en) 2008-04-02 2015-01-15 Cisco Technology, Inc. Master key generation and distribution for storage area network devices
WO2012040231A2 (en) 2010-09-20 2012-03-29 Orsini Rick L Systems and methods for secure data sharing
US20180254901A1 (en) 2016-05-06 2018-09-06 ZeroDB, Inc. Method and system for secure delegated access to encrypted data in big data computing clusters

Also Published As

Publication number Publication date
US20200244455A1 (en) 2020-07-30
KR20210119491A (ko) 2021-10-05
EP3903442B1 (en) 2023-07-19
CN113498589A (zh) 2021-10-12
CA3126952C (en) 2022-02-22
EP3903442A1 (en) 2021-11-03
EP3903442A4 (en) 2022-02-23
WO2020159774A1 (en) 2020-08-06
CA3126952A1 (en) 2020-08-06
US11212096B2 (en) 2021-12-28
US11616647B2 (en) 2023-03-28
AU2020216787B2 (en) 2022-02-03
US20220094539A1 (en) 2022-03-24
EP4221073A1 (en) 2023-08-02
EP3903442C0 (en) 2023-07-19
JP7102621B2 (ja) 2022-07-19
JP2022517133A (ja) 2022-03-04
AU2020216787A1 (en) 2021-08-19
CN113498589B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
KR102396643B1 (ko) Api 및 암호화 키의 비밀 관리 시스템 및 방법
US11475137B2 (en) Distributed data storage by means of authorisation token
US11075955B2 (en) Methods and systems for use in authorizing access to a networked resource
US11328077B2 (en) Systems and methods for providing data loss prevention via an embedded browser
US10726137B2 (en) Copy protection for secured files
US20140007215A1 (en) Mobile applications platform
US10043017B2 (en) Systems and methods for jurisdiction independent data storage in a multi-vendor cloud environment
US10015173B1 (en) Systems and methods for location-aware access to cloud data stores
CA3083722C (en) Re-encrypting data on a hash chain
US10984116B2 (en) Systems and methods for digital currency or crypto currency storage in a multi-vendor cloud environment
US11450069B2 (en) Systems and methods for a SaaS lens to view obfuscated content
Solsol et al. Security mechanisms in NoSQL dbms’s: A technical review
WO2018031342A1 (en) Jurisdiction independent data storage in a multi-vendor cloud environment
TR2023006911T2 (tr) Şi̇freli̇ dosya kontrolü

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right