KR102413497B1 - 보안 전자 데이터 전송을 위한 시스템 및 방법 - Google Patents

보안 전자 데이터 전송을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102413497B1
KR102413497B1 KR1020217027498A KR20217027498A KR102413497B1 KR 102413497 B1 KR102413497 B1 KR 102413497B1 KR 1020217027498 A KR1020217027498 A KR 1020217027498A KR 20217027498 A KR20217027498 A KR 20217027498A KR 102413497 B1 KR102413497 B1 KR 102413497B1
Authority
KR
South Korea
Prior art keywords
client device
key
broker
dasb
client
Prior art date
Application number
KR1020217027498A
Other languages
English (en)
Other versions
KR20210109667A (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 KR20210109667A publication Critical patent/KR20210109667A/ko
Application granted granted Critical
Publication of KR102413497B1 publication Critical patent/KR102413497B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • 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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/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/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/083Key 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 central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key

Landscapes

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

Abstract

데이터의 암호화 및 복호화를 위해 일시적인 키를 활용하는 보안 전자 데이터 전송을 위한 시스템들 및 방법들.

Description

보안 전자 데이터 전송을 위한 시스템 및 방법
본 개시내용은 보안 전자 데이터 전송에 관한 것이다. 더 구체적으로, 본 개시내용은 일시적인(ephemeral) 키들을 사용하는 데이터의 암호화 및 복호화를 위한 시스템들 및 방법들에 관한 것이다.
사이버 보안 그리고 더 구체적으로는 개인 및 컴퓨팅 디바이스 정보의 보호는 개인 및 국가적 우려가 되었다. 데이터 및 하드웨어 침해들은 계속 증가하고 있다. 신원 도난, 랜섬웨어, 의료 디바이스 침입, 사이버-카재킹(cyber-carjacking), 에너지 그리드 사이버 공격들, 금융 서비스들 및 뱅킹 해킹들, 및 의료 및 건강 정보 도난은 개인들, 민간 부문 직원들, 및 정부들 사이에서 상당한 우려를 제기한다.
인코딩된 데이터의 보안 전송을 제공하는 것은 공개 및 개인 키들, 신뢰 인증서 기술, 및/또는 토큰화의 사용을 포함할 수 있다. 이러한 기술들의 사용은 데이터 보안을 강화하기 위해 사용될 때 효과적이지만, 기본 데이터의 최적이 아닌 사용 및 유연성이 트레이드오프된다. 이러한 균형 문제에 대한 솔루션들은 대개 데이터 사용의 유연성을 높이는 쪽으로 기울어지고, 그에 따라, 개인 및 컴퓨팅 디바이스 식별 정보에 대한 보호 수준이 낮아지게 된다.
암호화는 대개 기밀 정보의 전자 전송에서 이용되고, 이에 의해, 전송되는 정보, 메시지, 데이터 패키지 등은 인가된 당사자들만이 액세스할 수 있는 방식으로 암호화 또는 인코딩된다. 암호화 체계는 전형적으로, 의사-랜덤 키(들)를 사용하여 관심 정보를 암호화/복호화한다. 암호화 자체는 비인가된 수신자가 메시지 또는 암호화된 정보를 인터셉트하는 것을 방지하지 않는다. 그러나, 인가된 뷰어만이 암호화된 정보를 복호화하는 데 필요한 키(들)에 액세스할 수 있을 것이고; 키(들)가 없으면, 비인가된 사용자는 정보를 쉽게 복호화할 수 없을 것이다.
전자 데이터 전송을 위한 보안 암호화는 대칭 체계(개인 키/개인 키) 또는 비대칭 체계(공개 키/개인 키)를 이용할 수 있다. 이러한(및 다른) 키 기반 암호화 아키텍처들에서, 해당 키(들)가 랜덤으로 생성되는 동안, 적어도 개인 키(들)는 대개 비교적 긴 시간 기간 동안 저장된다. 결과적으로, 저장된 키들은 공격(사이버 공격 또는 다른 방법으로)을 받는다. 비인가된 사용자가 개인 키에 대한 액세스를 획득하면, 인터셉트된 암호화된 정보는 더 이상 안전하지 않다. 암호화 키들에 대한 공격들에 대해 보호하기 위해, 암호화 키 관리 시스템들이 개발되었다. 예컨대, 특정 조직에 의해 유지되는 개인 키들의 전자 저장소(또는 키 관리 서버)가 암호화될 수 있고, 전자 데이터베이스에 액세스하는 데 필요한 키(들) 또는 다른 정보는 다른 곳에 저장된다. 이러한 추가된 보안 계층은 또한 공격을 받고, 구현하기에 복잡하고 유지하는 데 비용이 많이 들 수 있다. 추가하여 또는 대안적으로, 조직은 모든 저장된 키들이 주기적으로 비활성화(또는 취소)되고 새로운 키로 교체되는 것을 요구할 수 있다. 이러한 접근법은 마찬가지로 비용이 많이 들고 비효율적이다.
본 개시내용의 발명자들은 위에서 언급된 문제들 중 하나 이상을 해결할 필요성을 인식하였다.
본 개시내용의 일부 양태들은 보안 전자 데이터 전송을 위한 시스템들에 관한 것이다. 본 개시내용의 일부 양태들은 보안 전자 데이터 전송을 위한 방법들에 관한 것이다.
도 1은 본 개시내용의 원리들에 따른 시스템을 예시하는 블록도이다.
도 2a 내지 도 2c는, 보안 전자 데이터 전송을 위한 방법을 포함하는, 본 개시내용의 일부 방법들에 따라 수행되는 단계들의 흐름도이다.
도 3은, 임의적인 보안 스트리밍 동작 모드를 포함하는, 본 개시내용의 일부 방법들에 따라 수행되는 단계들의 타이밍도이다.
도 4는, 하나 초과의 신뢰 환경을 포함하는, 본 개시내용의 원리들에 따른 다른 시스템을 예시하는 블록도이다.
도 5는, 데이터를 암호화하기 위한 요청을 검토하기 위한 인터셉터 디바이스의 임의적인 동작을 포함하는, 본 개시내용의 일부 방법들에 따라 수행되는 단계들의 흐름도이다.
도 6은, 데이터를 복호화하기 위한 요청을 검토하기 위한 인터셉터 디바이스의 임의적인 동작을 포함하는, 본 개시내용의 일부 방법들에 따라 수행되는 단계들의 흐름도이다.
도 7은, 도 1의 시스템 내의 클라이언트 디바이스를 프로비저닝(provisioning)하는 것을 포함하는, 본 개시내용의 일부 방법들에 따라 수행되는 단계들의 흐름도이다.
도 8은, 도 1의 시스템의 브로커(broker) 디바이스 및 클라이언트 디바이스에 의해 이용되는 키들의 임의적인 교체(rotation)를 포함하는, 본 개시내용의 일부 방법들에 따라 수행되는 단계들의 흐름도이다.
도 9는, 세션 관리를 수행하는 임의적인 방법을 포함하는, 본 개시내용의 일부 방법들에 따라 수행되는 단계들의 흐름도이다.
도 10은, 임의적인 리쉬 디바이스를 포함하는, 본 개시내용의 원리들에 따른 다른 시스템을 예시하는 블록도이다.
도 11은, 임의적인 논리 노드 배열을 포함하는, 본 개시내용의 원리들에 따른 다른 시스템을 예시하는 블록도이다.
본 개시내용의 일부 양태들은 데이터의 보안 전자 전송을 위한 시스템들 및 방법들에 관한 것이다. 본 개시내용의 원리들에 따른 그리고 본 개시내용의 방법들이 수행될 수 있는 시스템(10)의 일 예가 도 1에 도시된다. 시스템(10)은 브로커 디바이스(20), 및 2개 이상의 클라이언트 디바이스, 이를테면 제1 클라이언트 디바이스(22) 및 제2 클라이언트 디바이스(24), 및 임의적인 인터셉터 디바이스(26)를 포함한다. 브로커 디바이스(20)는 적어도 프로세서 및 메모리를 갖는 컴퓨터 또는 컴퓨팅 디바이스일 수 있거나 또는 이와 유사할 수 있고, 일부 비-제한적인 실시예들에서는, 관련 기술분야에 공지된 바와 같은 컴퓨터 서버(예컨대, 전형적인 서버 클래스 운영 시스템들(예컨대, 리눅스)을 실행하는 (예컨대, 멀티-코어 프로세서(들), RAM, 네트워크 인터페이스 어댑터(들), 및 하드 드라이브들을 갖는) 하나 이상의 전용의 상업적으로 이용가능한 하드웨어 서버들)이다. 다른 실시예들에서, 브로커 디바이스(20)는 다수의 이러한 서버, 솔리드 스테이트 드라이브, 및/또는 다른 적용가능한 고성능 하드웨어를 포함하는 스케일러블 인프라스트럭처에 걸쳐 구현될 수 있다. 클라이언트 디바이스들(22, 24) 및 인터셉터 디바이스(26)(제공되는 경우)는 관련 기술분야에 공지된 바와 같은, 데스크톱 컴퓨터, 랩톱 컴퓨터, 스마트폰, 칩셋, 시스템 온 칩(system on a chip), ASIC 등과 같은, 적어도 프로세서 및 메모리를 갖는 컴퓨터 또는 컴퓨팅 디바이스일 수 있거나 또는 이와 유사할 수 있다. 디바이스들(20, 22, 24, 26)은 관련 기술분야에 공지된 바와 같이, 다양한 방식들로, 이를테면, 무선 통신 시스템, 유선 통신 시스템 등 상에서 서로 전자적으로 통신하도록 구성된다.
참고로, 본 개시내용의 시스템들 및 방법들은, 키를 사용하여 데이터가 암호화 및 복호화되는 암호화 아키텍처를 사용하여, 예컨대 신뢰 환경 내의 보안 데이터 전송을 용이하게 한다. 일부 실시예들에서, 본 개시내용의 보안 통신을 위한 키 생성 및 분배의 협력(coordination)은 "디바이스 액세스 보안 브로커(device access security broker)" 또는 "DASB"로 지칭될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 적절한 프로그래밍(즉, 컴퓨터 프로그램, 소프트웨어, 하드웨어, 펌웨어 등)이 브로커 디바이스(20), 클라이언트 디바이스들(22, 24), 및 인터셉터(26)(제공되는 경우) 각각에 설치 또는 제공되고, 협력 방식으로 동작하여 본 개시내용 방법들을 수행한다.
예컨대, 소프트웨어 또는 모듈(30)("DASB 브로커 소프트웨어")은 브로커 디바이스(20) 상에 설치되거나 또는 브로커 디바이스(20)에 의해 동작된다. DASB 브로커 소프트웨어(30)는 아래에서 설명되는 바와 같은 사전 키(pre-key) 데이터(또는 "키 DNA")의 생성을 구현하는 프로그래밍을 포함한다. 키 DNA는 암호화 키(예컨대, 대칭 키)의 후속 생성을 가능하게 하는(또는 "시드"로서 기능할 수 있는) 완전한 또는 부분적인 데이터를 지칭한다. DASB 브로커 소프트웨어(30)는 아래에서 설명되는 바와 같은 완전한 또는 부분적인 모니커(moniker)의 생성을 구현하는 프로그래밍을 더 포함할 수 있다. 모니커는 대응하는 키 DNA에 대한 단축 식별자(short-hand identifier)(예컨대, 문자 스트링)를 지칭한다. 일부 비-제한적인 실시예들에서, DASB 브로커 소프트웨어(30)는, 아래에서 설명되는 바와 같이, 시스템(10) 내의 2개의 디바이스 사이의, 예컨대, 제1 및 제2 클라이언트 디바이스들(22, 24) 사이의 데이터의 요청된 전송을 허가 또는 거절하는 규칙 엔진 또는 모듈(32)을 동작시킨다. 본 개시내용 전체에 걸쳐 사용되는 바와 같이, DASB 브로커 소프트웨어가 로딩된(또는 이를 동작시키는) 브로커 디바이스는 "브로커"로 지칭된다. 따라서, 예컨대, 도 1의 브로커 디바이스(20)는 시스템(10)의 브로커로 또한 지칭될 수 있다.
소프트웨어 또는 모듈(40)("DASB 클라이언트 소프트웨어")이 제1 클라이언트 디바이스(22) 상에 설치된다. DASB 클라이언트 소프트웨어(40)는 수신된 키 DNA에 기초하여 암호화 키(예컨대, 대칭 키)를 생성하기 위해 DASB 브로커 소프트웨어(30)와 인터페이스하고, 제1 클라이언트 디바이스(22)에 의해 실행되는 하나 이상의 애플리케이션과 인터페이스하도록 프로그래밍된다. 예컨대, 도 1에서, 하나의 그러한 애플리케이션(42)이 일반적으로 제1 클라이언트 디바이스(22)에 대해 식별되고; 애플리케이션(42)이 일반적으로 제1 클라이언트 디바이스(22) 상에 저장되는 것으로 반영되지만, 다른 실시예들에서, 관심 애플리케이션(들)은 제1 클라이언트 디바이스(22) 상에 저장되지 않고 오히려, 예컨대, 제1 클라이언트 디바이스(22)와 통신하는 동일한 로컬 네트워크(LAN) 내의 다른 컴퓨팅 디바이스 상에서 실행될 수 있다. 애플리케이션(들)(42)은 최종 사용자를 위해 설계 또는 기입된 임의의 프로그램 또는 그룹 또는 프로그램들, 이를테면, 데이터베이스 프로그램들, 디지털 문서 프로그램들(예컨대, PDF), 워드 프로세서들, 스프레드시트들, 메시징 프로그램들(예컨대, 이메일), CAD 등일 수 있다. DASB 클라이언트 소프트웨어(40)와 애플리케이션(들)(42) 사이의 상호작용은 아래에서 더 상세히 설명된다. 더 일반적으로 말하면, 애플리케이션(들)(42)이 제1 클라이언트 디바이스(22)에 설치된 DASB 클라이언트 소프트웨어(40)와 인터페이스하도록 기입 또는 코딩될 수 있거나, 애플리케이션(들)(42)과 DASB 클라이언트 소프트웨어(40) 사이의 인터페이스를 용이하게 하는 소프트웨어 패치 또는 플러그-인이 애플리케이션(들)(42)에 코딩 또는 설치될 수 있거나, 또는 다른 공지된 컴퓨터 프로그래밍 기법들이 이용될 수 있다.
또한, DASB 클라이언트 소프트웨어(50)가 제2 클라이언트 디바이스(24) 상에 설치된다. 일부 실시예들에서, 제2 클라이언트 디바이스(24) 상의 DASB 클라이언트 소프트웨어(50)는 제1 클라이언트 디바이스(22) 상에 설치된 DASB 클라이언트 소프트웨어(40)와 동일할 수 있다. 이를 유념하면서, DASB 클라이언트 소프트웨어(50)는 제2 클라이언트 디바이스(24) 상에 저장되고 제2 클라이언트 디바이스(24)에 의해 실행되는 하나 이상의 애플리케이션과 인터페이스하고, 이들 중 하나는 도 1에서 52로 일반적으로 식별된다. 제2 클라이언트 디바이스(24)와 연관된 애플리케이션(들)(52)은 제1 클라이언트 디바이스(22)의 애플리케이션(들)(42)에 대해 위에서 설명된 형태들 중 임의의 것을 가질 수 있다. 도 1에서 파선으로 표시된 바와 같이, 제1 클라이언트 디바이스(22)와 연관된 애플리케이션(42) 및 제2 클라이언트 디바이스(24)와 연관된 애플리케이션(52)은, 예컨대, 컴퓨터화된 네트워크의 일부로서 공지된 기술들 및 기법들을 사용하여 서로 전자적으로 통신할 수 있다.
인터셉터(26)가 제공되는 임의적인 실시예들에서, 제어 소프트웨어(60)("인터셉터 소프트웨어")가 인터셉터(26) 상에 설치될 수 있다. 제어 소프트웨어(60)는, DASB 브로커 소프트웨어(30)로부터 승인 요청들을 수신하는 것 및 DASB 브로커 소프트웨어(30)로 그러한 요청들에 대한 판정들을 통신하는 것을 포함하여, 아래에서 더 상세히 설명되는 바와 같이 DASB 브로커 소프트웨어(30)와 인터페이스하도록 프로그래밍된다. 이와 관련하여, 제어 소프트웨어(60)는 인터셉터(26)의 포맷과 협력하여, 인간 사용자에게 승인 요청 정보를 임의로 제공(예컨대, 시각적으로 디스플레이)하고/하거나 특정 승인 요청에 대한 인간 사용자의 판정의 전달을 용이하게 할 수 있다. 다른 실시예들에서, 시스템(10)은, 일부 전자 송신 요청들이 인터셉터(26)를 통과하도록 요구되는 반면 다른 송신 요청들은 그렇지 않도록, 포맷될 수 있다(예컨대, 제1 클라이언트 디바이스(22)의 애플리케이션으로부터 제2 클라이언트 디바이스(24)의 애플리케이션으로 데이터를 전송하기 위한 요청은 승인을 위해 인터셉터(26)를 통과해야만 하는 반면, 제2 클라이언트 디바이스(24)의 애플리케이션으로부터 제1 클라이언트 디바이스(22)의 애플리케이션으로 데이터를 전송하기 위한 요청은 승인을 위해 인터셉터(26)를 통과할 필요가 없음). 다른 실시예들에서, 인터셉터(26)(그리고 그에 따른 제어 소프트웨어(60))는 생략될 수 있다.
도 2a 내지 도 2c 및 도 3 내지 도 11의 흐름도들 및 블록도들은 본 개시내용의 다양한 구성요소들의 기능성 및 동작과 함께 본 개시내용의 일부 방법들 및 배열들을 예시한다. 이와 관련하여, 흐름도들의 블록들 중 일부는 특정된 논리 기능 또는 기능들을 구현 또는 실시하기 위한 하나 이상의 실행가능 명령어를 포함하는 본 개시내용의 프로그램의 코드의 일부 또는 모듈 세그먼트를 표현할 수 있다. 다른 실시예들에서, 다양한 블록들에서 언급되는 기능들은 도시된 순서와 상이한 순서로 발생할 수 있다.
도 1 및 도 2a 내지 도 2c를 참조하면, 본 개시내용의 일부 방법들은 시스템(10) 내의 전송자 클라이언트 디바이스의 애플리케이션으로부터 수신자 클라이언트 디바이스의 애플리케이션으로의 보안 전자 데이터 전송을 제공한다.
단계(100)에서, 제1 클라이언트 디바이스(22)의 DASB 클라이언트 소프트웨어(40)는 DASB 브로커 소프트웨어(30)와 프로비저닝된다(예컨대, DASB 클라이언트 소프트웨어(40)가 제1 클라이언트 디바이스(22) 상에 로딩 또는 저장된 경우, 단계(100)에서, 제1 클라이언트 디바이스(22)가 DASB 브로커 소프트웨어(30)와 프로비저닝되거나 또는 DASB 브로커 소프트웨어(30)에 의해 프로비저닝되는 것이 고려될 수 있고; 제1 클라이언트 디바이스(22)가 별개의 포털을 통해 DASB 클라이언트 소프트웨어(40)를 동작시키고 있는 경우, 단계(100)의 프로비저닝은 DASB 클라이언트 소프트웨어(40)만을 프로비저닝하는 것으로 고려될 수 있음). 단계(102)에서, 제2 클라이언트 디바이스(24)의 DASB 제2 클라이언트 소프트웨어(50)는 DASB 브로커 소프트웨어(30)와 유사하게 프로비저닝된다. 프로비저닝은 다양한 포맷들을 취할 수 있고, 아래에서 설명되는 바와 같이, DASB 브로커 소프트웨어(30), 제1 클라이언트 디바이스(22)의 DASB 클라이언트 소프트웨어(40), 및 제2 클라이언트 디바이스(24)의 DASB 클라이언트 소프트웨어(50) 중 하나 이상에 관한 다양한 정보의 생성을 수반할 수 있다. 일부 실시예들에서, 단계(100)에서의 프로비저닝은 제1 클라이언트 디바이스(22)의 DASB 클라이언트 소프트웨어(40)에 대한 고유 클라이언트 ID(또는 "제1 클라이언트 ID")를 확립하고, 제1 클라이언트 ID를 DASB 브로커 소프트웨어(30)를 갖는 브로커 디바이스(20) 상에 그리고 제1 클라이언트 디바이스(22)의 DASB 클라이언트 소프트웨어(40) 상에 저장하는 것을 포함한다. 제1 클라이언트 ID는 제1 클라이언트 디바이스(22)에 의해 동작되는 DASB 제1 클라이언트 소프트웨어(40)에 대해 고유하다. 유사하게, 단계(102)에서의 프로비저닝은 제2 클라이언트 디바이스(24)의 DASB 클라이언트 소프트웨어(50)에 대한 고유 클라이언트 ID(또는 "제2 클라이언트 ID")를 확립하고, 제2 클라이언트 ID를 DASB 브로커 소프트웨어(30)를 갖는 브로커 디바이스(20) 상에 그리고 제2 클라이언트 디바이스(24)의 DASB 클라이언트 소프트웨어(50) 상에 저장하는 것을 포함한다. 제2 클라이언트 ID는 제2 클라이언트 디바이스(24)에 의해 동작되는 DASB 제2 클라이언트 소프트웨어(50)에 대해 고유하다.
본 개시내용 전체에 걸쳐 사용되는 바와 같이, 할당된 DASB 클라이언트 소프트웨어(또는 클라이언트 디바이스 상에 구현될 수 있는 아래에서 설명되는 바와 같은 임의의 다른 기능 세트)가 로딩되거나 또는 이를 동작시키고, DASB 브로커 소프트웨어(50)(또는 더 간단하게는 브로커)에 의해 프로비저닝된 임의의 타입의 "클라이언트 디바이스"는 "DASB 클라이언트"로 지칭된다. 본 개시내용의 신뢰 환경들에서, DASB 클라이언트들은 브로커와 그리고 서로 통신한다. 이 용어를 추가로 확인하기 위해, 제1 클라이언트 디바이스(22)는 단계(100) 후에 DASB 클라이언트로 고려되거나 또는 지칭될 수 있고, 마찬가지로, 제2 클라이언트 디바이스(24)는 단계(102) 후에 DASB 클라이언트로 고려되거나 또는 지칭될 수 있다. 따라서, 예컨대, 도 1의 신뢰 환경에서, 제1 및 제2 클라이언트 디바이스들(22, 24)은 제1 및 제2 DASB 클라이언트들(22, 24)로 또한 지칭될 수 있다.
도 2a 내지 도 2c와 관련된 방법들의 나머지는 전송자로부터 수신자로의 의도된 데이터 전송을 참조하여 더 쉽게 이해될 수 있다. 설명의 편의를 위해, 하나의 비-제한적인 예는 제1 DASB 클라이언트(22)의 애플리케이션(42)으로부터 제2 DASB 클라이언트(24)의 애플리케이션(52)으로의 의도된 데이터 전송의 콘텍스트에서 이루어진다. 이러한 하나의 비-제한적인 예에 상응하여, 아래의 설명들에서, 제1 DASB 클라이언트(22)는 "전송자 DASB 클라이언트"로서 역할을 하고 "전송자 DASB 클라이언트"로 상호교환 가능하게 지칭되고, 제1 DASB 클라이언트(22)와 연관된 DASB 클라이언트 소프트웨어(40) 및 애플리케이션(42)은 각각 "전송자 DASB 클라이언트 소프트웨어" 및 "전송자 애플리케이션"으로 상호교환 가능하게 지칭되고; 제2 DASB 디바이스(24)는 "수신자 DASB 클라이언트"로서 역할을 하고 "수신자 DASB 클라이언트"로 상호교환 가능하게 지칭되고, DASB 클라이언트 소프트웨어(50) 및 애플리케이션(52)은 각각 "수신자 DASB 클라이언트 소프트웨어" 및 "수신자 애플리케이션"으로 상호교환 가능하게 지칭된다.
일부 임의적인 실시예들에서, 단계(104)에서, 할당된 풀(pool) 식별자 하에서 전송자 DASB 클라이언트(22)가 수신자 DASB 클라이언트(24)로 정보를 전송하는 것을 일반적으로 허가하는 풀이 DASB 브로커 소프트웨어(30) 상에 생성된다. 풀 식별자는 시스템(10)의 2개의 프로비저닝된 클라이언트 디바이스와 인간 판독가능 식별자 사이의 가상 관계로서 역할을 한다. 이러한 하나의 예에서, 확립된 풀은 2개의 클라이언트 디바이스(즉, 전송자 및 수신자 DASB 클라이언트들(22, 24))만을 수반하지만, 다른 상황들에서, 특정 풀은 3개 이상의 DASB 클라이언트를 수반할 수 있다(예컨대, 제1 DASB 클라이언트(22)가 DASB 클라이언트들의 그룹(예컨대, 엔지니어링 그룹, 판매 그룹 등과 같은 조직의 특정 서브-세트와 연관된 DASB 클라이언트들의 그룹)으로 정보를 전송하는 것을 허가하는 풀). 풀은 다양한 방식들로 생성 또는 발생될 수 있고, 일부 실시예들에서, DASB 브로커 소프트웨어(30)를 통해 풀 및 대응하는 풀 식별자를 수동으로 입력 또는 등록하는 브로커(20)의 인가된 관리자를 포함할 수 있다. 예컨대, 암호화 및/또는 복호화(또는 다른 트랜잭션)하기 위한 요청의 승인이 인터셉터(26)를 통해 게이팅되어야만 하는지 여부, 특정 수신자 디바이스 애플리케이션이 수신된 데이터를 복호화해야만 하는 시간 길이 등과 같은 규칙들이 특정 풀에 임의로 포함될 수 있다. 일부 임의적인 실시예들에서, 풀 및 풀 식별자(및 특정 풀과 연관된 임의의 규칙들)는 규칙 엔진(32)에 저장된다.
이렇게 생성된 풀에 할당된 풀 식별자는 전송자 DASB 클라이언트(22)의 하나 이상의 관심 애플리케이션(예컨대, 전송자 DASB 클라이언트(22)와 연관된 전송자 애플리케이션(42))에 또는 이에 의해, 예컨대, 해당 애플리케이션(들)의 생성자, 특정 풀의 생성자(예컨대, 인가된 관리자) 등에 의해 저장된다. 특정 클라이언트 디바이스와 연관된(또는 이에 의해 사용되는) 상이한 애플리케이션들은 동일한 풀 세트를 사용할 수 있거나 또는 사용하지 않을 수 있다. 풀들은 완전히 별개일 수 있거나, 동일할 수 있거나, 또는 일부 오버랩을 가질 수 있다. 또 다른 실시예들에서, 특정 클라이언트 디바이스와 연관된(또는 이에 의해 사용되는) 애플리케이션(들)은 풀 식별자들의 리스트를 제공하는 "디렉토리 서비스"에 액세스할 수 있다.
도 1은 엇갈린 파선 화살표 "풀 AB"에 의해 예시적인 예를 위한 풀을 개략적으로 예시한다(엇갈린 파선 화살표 풀 AB가 한정적인 데이터 경로를 반영하는 것으로 의도되지 않는다는 것이 이해되어야 함). 참고로, 단계(104)에서 생성된 풀은 대안적으로, 제1 DASB 클라이언트(22) 및 제2 DASB 클라이언트(24)가 (제1 DASB 클라이언트(22)만이 제2 DASB 클라이언트(24)로 정보를 전송하는 것이 허가되는 것과 대조적으로) 서로 정보를 전송하는 것이 일반적으로 허가된다는 것을 지정할 수 있고; 이러한 상황들 하에서, 할당된 풀 식별자는 제2 DASB 클라이언트(24)와 연관된 하나 이상의 관심 애플리케이션(예컨대, 애플리케이션(52))에 또는 이에 의해 또한 저장될 것이다. 브로커(20)에 저장된 할당된 풀 식별자와 연관된 풀링 규칙들(존재하는 경우)은 시간 경과에 따라 (예컨대, 인가된 관리자에 의해) 변화 또는 변경될 수 있다. 또 다른 실시예들에서, 본 개시내용의 방법들은 데이터의 암호화, 전송, 및 복호화의 일부로서 확립된 풀에 대한 구현 또는 액세스를 수반하지 않고, 그에 따라, 단계(104)(및 풀을 참조하여 이하에서 설명되는 다른 단계들)는 생략될 수 있다.
단계(106)에서, 전송자 애플리케이션(42)은 전송자 DASB 클라이언트 소프트웨어(40)에게 수신자 애플리케이션(52)(다른 방식으로 수신자 클라이언트 디바이스(24) 상에서 동작함)으로 전송하기 위해 전송자 애플리케이션(42)의 데이터("데이터 X")를 암호화할 것을 요청하도록 동작된다. 위에서 설명된 바와 같이, 전송자 애플리케이션(42)이 기입되거나 또는 소프트웨어 플러그-인 또는 패치가 설치되고, 이에 의해, 전송자 애플리케이션(42)은 (예컨대, 암호화에 대한 사용자 프롬프팅 요청(user-prompted request) 또는 유사한 보안 송신 요청에 응답하여) 암호화 동작을 위해 전송자 DASB 클라이언트 소프트웨어(40)와 자동으로 인터페이스한다.
단계(108)에서 그리고 단계(106)에서의 요청에 응답하여, 전송자 DASB 클라이언트(22)는 키 DNA에 대한 요청("요청 X")을 브로커(20)로 통신한다. 단계(108)에서의 요청의 일부로서, 전송자 DASB 클라이언트(22)는 제1 클라이언트 ID 및 요청 풀 식별자를 브로커(20)에 제공할 것이다. 요청 풀 식별자는 위에서 설명된 풀 식별자들에 대응하는 포맷으로 이루어지고, 전송될 데이터의 의도된 수신자(들)를 나타낸다. 따라서, 이러한 하나의 예에서, 요청 X는 전송자 DASB 클라이언트(22)의 애플리케이션으로부터 수신자 DASB 클라이언트(24)의 애플리케이션으로 정보를 전송하려는 의도를 나타내는 요청 풀 식별자를 포함할 것이다. 참고로, 전송자 DASB 클라이언트(22)로부터 브로커(20)로의 키 DNA에 대한 후속 요청들은 동일한 제1 클라이언트 ID를 포함할 것이지만; 이러한 후속 요청들과 함께 제공되는 요청 풀 식별자는 의도된 수신자(들) 기능에 따라 상이할 수 있다.
일부 임의적인 실시예들에서, 단계(110)에서, 브로커(20)는 요청 X를 허가 또는 거절하기 위해 저장된 풀들을 검토한다. 예컨대, DASB 브로커 소프트웨어(30)는 (요청 X와 함께 제공된) 요청 풀 식별자를 저장된 풀 식별자들과 비교하도록 동작할 수 있다. 매칭이 발견되지 않는 경우, 요청 X는 거부된다(즉, 전송자 DASB 클라이언트(22)가 수신자 DASB 클라이언트(24)로 데이터를 전송하는 것을 허가하는 관계가 브로커(20)에 존재하지 않음). 추가하여, 브로커(20)는, 예컨대, 요청 X가 규칙(들)을 만족시키는지 여부, 다른 액션들이 요구되는지 여부 등을 결정하기 위해, 매칭된 풀 식별자와 연관된 규칙(들)(존재하는 경우)을 검토하도록 동작할 수 있다(예컨대, 요청 X가 10:00 PM에 수신되고, 매칭된 풀 식별자와 연관된 규칙들이 8:00 AM에서 5:00 PM까지 암호화들을 허가하는 경우, 규칙이 만족되지 않고, 요청 X가 거부됨). 또 다른 임의적인 실시예들에서, 본 개시내용의 시스템들 및 방법들은 (예컨대, 정보의 특정 클라이언트 디바이스-대-클라이언트 디바이스 전송에 대해 풀이 생성 또는 활용되지 않는 상황들 하에서) 단계(110)를 생략할 수 있다.
단계(110)에서, 브로커(20)가 요청 X를 거절하는 경우("아니오"), 브로커(20)는 전송자 DASB 클라이언트(22)에 키 DNA를 제공하지 않고, 데이터 X는 암호화될 수 없다(단계(112)). 단계(110)에서, 브로커(20)가 요청 X를 수락하는 경우("예"), 단계(114)에서, DASB 브로커 소프트웨어(30)는 키 DNA("키 DNA X") 및 매칭 모니커("모니커 X")를 생성한다. 아래에서 더 상세히 설명되는 일부 임의적인 실시예들에서, 하나 이상의 추가적인 단계가 단계들(110 및 114) 사이에서 발생할 수 있다(예컨대, 인터셉터(26)가 요청 X를 승인 또는 거부하도록 프롬프팅될 수 있음). 단계(116)에서, 키 DNA X 및 모니커 X는 브로커(20)에 키 값 쌍으로서 저장된다. 단계(118)에서, 키 DNA X 및 모니커 X는 전송자 DASB 클라이언트(22)에 전달된다.
단계(120)에서, 전송자 DASB 클라이언트 소프트웨어(40)는 공급된 키 DNA X에 적어도 부분적으로 기초하여 대칭 키("키 X")를 생성한다. 전송자 DASB 클라이언트 소프트웨어(40)는 설치된 키 소프트웨어 프로그래밍, 예컨대, AES(Advanced Encryption Standard)와 같은 공지된 암호화 알고리즘을 포함하거나 또는 활용한다. 생성된 키 X가 키 DNA X(및 임의로 다른 곳에서 생성된 비트들)에 기초하지만, 키 X는 키 DNA X와 동일하지 않을 것이다.
단계(122)에서, 전송자 DASB 클라이언트 소프트웨어(40)는, 예컨대, 공지된 암호화 기법들을 통해, 키 X를 사용하여 데이터 X를 암호화하여, 암호화된 데이터 X를 생성한다. 단계(123)에서, 암호화된 데이터 X 및 모니커 X는 전송자 DASB 클라이언트 소프트웨어(40)에 의해 전송자 애플리케이션(42)으로 통신된다. 암호화된 데이터 X가 완성되면, 단계(124)에서, 전송자 DASB 클라이언트 소프트웨어(40)는 키 X를 제거하거나 또는 영구적으로 삭제하도록 동작한다. 다시 말하면, 단계(124) 후에, 키 X는 저장되지 않고, 전송자 DASB 클라이언트(22) 상에 존재하지 않는다.
단계(126)에서, 전송자 DASB 클라이언트(22)는 암호화된 데이터 X 및 모니커 X를 수신자 DASB 클라이언트(24)로 전자적으로 전송하고; 예컨대, 전송자 애플리케이션(42)은 암호화된 데이터 X 및 모니커 X를 수신자 애플리케이션(52)으로 전자적으로 전송하도록 동작한다. 참고로, 전송자 애플리케이션(42)은, 암호화 프로세스를 완료하기 위해 대응하는 전송자 DASB 클라이언트 소프트웨어(40)를 사용한 후에, 암호화된 데이터 X를 원하는 대로 전달하도록 선택할 수 있다. 이는 SMTP(이메일)을 통해 이루어지거나, FTP를 통해 이루어지거나, 드롭박스(DropBox) 또는 다른 콘텐츠 공유 서비스를 통해 이루어지거나, 또는 휴대용 매체들 상에 저장되는 등으로 이루어질 수 있다. 더 일반적으로 말하면, 클라이언트 애플리케이션은, 암호화될 데이터로 대응하는 DASB 클라이언트 소프트웨어를 호출할 시에, 할당된 모니커 및 암호화된 데이터 페이로드를 돌려받을 것이다(예컨대, 위에서 설명된 단계(123)). 본 개시내용의 인프라스트럭처를 사용하기 위해 기입된 애플리케이션들은, 암호화된 데이터를 다른 클라이언트 디바이스/애플리케이션으로 전자적으로 전송할 때, 할당된 모니커 및 암호화된 페이로드를 공급해야만 한다는 것을 "알" 것이다. 일부 실시예들에서, 암호화된 데이터 페이로드로부터 모니커를 구별하는 것은 클라이언트 디바이스가 노출시키는 API의 일부이다. 페이로드의 해시를 컴퓨팅하는 것, 페이로드에 모니커를 프리픽싱하는 것 등에 의해 모니커가 도출될 수 있는 경우와 같은 다른 변형들이 또한 용인가능하다.
단계(128)에서, 수신자 애플리케이션(52)은 암호화된 데이터 X를 암호화된 것으로서 식별하고, 수신자 DASB 클라이언트 소프트웨어(50)에게 복호화할 것을 요청하도록 동작된다(또는 자동으로 동작함). 이러한 예의 목적들을 위해, 전송자 애플리케이션(42)과 수신자 애플리케이션(52)이 동일한 타입인 것(예컨대, 둘 모두 워드 프로세서들임)으로 가정된다. 참고로, 수신자 애플리케이션(52)의 자동 인보킹(invoking)은 운영 시스템(OS) 레벨 피처일 수 있다. 이는 상이한 환경들에서 상이하게 작동할 것이고, 특정 애플리케이션이 콘텐츠를 패키징한 방법에 따라 달라질 수 있는 편리한 피처일 수 있다. 대부분의 OS들에서, 애플리케이션의 자동 론칭은 수신된 데이터의 파일 확장자에 의해 트리거링된다. 하나의 비-제한적인 구현에서, 수신된 모니커(모니커 X), 암호화된 페이로드(암호화된 데이터 X), 및 가능하게는 다른 메타데이터는, 수신 클라이언트 애플리케이션으로의 전달을 위해, 확장자 ".docsecret"(또는 유사한 확장자)을 갖는 파일로 번들링될 수 있다. 이러한 확장자를 찾기 위해 OS에 등록된 애플리케이션은 모니커 및 암호화된 페이로드에 대해 파일을 파싱하는 방법을 알고, 그 비트들을 단계(128)에서의 복호화 요청의 일부로서 DASB 클라이언트 소프트웨어(50)로 공급하도록 프로그래밍될 것이다. 더 일반적으로 말하면, 수신자 애플리케이션은 다양한 상이한 방식들로 대응하는 DASB 클라이언트 소프트웨어와 인터페이스할 수 있다. DASB 클라이언트 소프트웨어는 복호화 동작을 수행하도록 자동으로 또는 의도적으로 인보킹될 수 있고, 통상의 기술자에게 명백한 바와 같은 다수의 상이한 방식 중 임의의 것으로 암호화된 데이터의 존재를 통보받을 수 있다.
단계(130)에서 그리고 단계(128)에서의 요청에 응답하여, 수신자 DASB 클라이언트(24)는 키 DNA에 대한 요청을 브로커(20)로 통신한다. 단계(130)에서의 요청의 일부로서, 수신자 DASB 클라이언트(24)는 브로커(20)에 모니커 X(그에 따라, 요청이 키 DNA X에 대해 효과적으로 특정됨) 및 할당된 클라이언트 ID(즉, 설명되는 예에서, 제2 클라이언트 ID)를 제공할 것이다.
아래에서 설명되는 일부 임의적인 실시예들에서, 브로커(20)가 수신자 DASB 클라이언트(24)에 키 DNA X를 제공하도록 동작하기 전에, 승인 동작이 수행된다. 예컨대, 인터셉터(26)가 제공되는 실시예들에서, 수신자 DASB 클라이언트(24)로 키 DNA X를 전송하기 위한 요청은 먼저 승인을 위해 인터셉터(26)를 통과해야만 하는 것이 요구될 수 있다. 이러한 요건은 시스템(10)의 보편적인 규칙일 수 있거나, 또는 제1 DASB 클라이언트(22)로부터 제2 DASB 클라이언트(24)로의 전송들에 대해 특정된 규칙일 수 있다. 브로커(20)는, 복호화하기 위한 키 DNA에 대한 요청과 함께 공급된 모니커(즉, 이 예에서는 모니커 X)에 기초하여, 관련 정보(예컨대, 인터셉터(26)의 사용, 풀 식별자 또는 풀링 규칙들, 시스템(10) 내의 클라이언트 디바이스 멤버십 등)를 결정 또는 검색할 수 있다.
단계(132)에서, 브로커(20)는 공급된 모니커에 대응하는 키 DNA를 검색한다(즉, DASB 브로커 소프트웨어(30)는 키 DNA X를 찾기 위해 모니커 X에 대한 저장된 키 값 쌍들을 검토함). 단계(134)에서, 브로커(20)는 수신자 DASB 클라이언트(24)로 검색된 키 DNA X를 전달하거나 또는 그 전달을 프롬프팅한다. 단계(136)에서, DASB 브로커 소프트웨어(30)는 브로커(20)로부터 키 DNA X 및 모니커 X를 삭제하도록 동작한다(예컨대, 즉시, 아래에서 설명되는 바와 같은 다른 이벤트(들)의 발생 시 등).
단계(138)에서, 수신자 DASB 클라이언트 소프트웨어(50)는 공급된 키 DNA X에 적어도 부분적으로 기초하여 대칭 키를 생성한다. 수신자 DASB 클라이언트(24)가 전송자 DASB 클라이언트(22)와 동일한 설치된 키 소프트웨어 프로그래밍을 포함하거나 또는 활용하기 때문에, 키 DNA X를 사용하여 수신자 DASB 클라이언트 소프트웨어(50)에 의해 생성된 대칭 키는 단계(120)에서 전송자 DASB 클라이언트 소프트웨어(40)에 의해 생성된 대칭 키와 동일할 것이다(즉, 수신자 DASB 클라이언트 소프트웨어(50)는 동일한 키 X를 생성할 것임). 이어서, 단계(140)에서, 수신자 DASB 클라이언트 소프트웨어(50)는 암호화된 데이터 X를 복호화하여 데이터 X를 생성한다(즉, 단계(140) 후에, 이제 데이터 X는 수신자 애플리케이션(52)에서 유용하게 됨). 마지막으로, 단계(142)에서, 수신자 DASB 클라이언트 소프트웨어(50)는 키 X를 제거하거나 또는 영구적으로 삭제하도록 동작한다. 다시 말하면, 단계(142) 후에, 키 X는 저장되지 않고, 제2 DASB 클라이언트(24) 상에 존재하지 않는다.
위에서 설명된 방법들에서, 전자적으로 전송되는 데이터를 암호화 및 복호화하는 데 활용되는 대칭 키들은 일시적이고, 브로커(20) 상에 존재하거나 또는 저장되지 않는다. 종래의 키 기반 암호화 시스템들 및 방법들과 달리, 브로커(20)로부터 대칭 키가 불법적으로 검색될 수 없고, 복잡한 키 관리 프로토콜들이 필요하지 않다. 추가로, 전송자 클라이언트 디바이스에서 데이터를 암호화하기 위해 일시적인 대칭 키가 사용되면, 그 일시적인 대칭 키는 그 디바이스로부터 즉시 삭제되고; 유사하게, 수신자 클라이언트 디바이스에서 데이터를 복호화하기 위해 일시적인 대칭 키가 사용되면, 그 일시적인 대칭 키는 그 디바이스로부터 즉시 삭제된다.
일부 임의적인 실시예들에서, 본 개시내용의 시스템들 및 방법들은 시스템(10)의 DASB 클라이언트들(그리고 구체적으로는, DASB 클라이언트들에 의해 동작되는 스트리밍 타입 애플리케이션들) 사이의 보안 스트리밍 타입 통신들을 촉진한다. 일반적으로 말하면, 모니커에 대한 데이터 스트리밍을 시작하기 위한 사용자 개시 액션 후에, 키 변경이 강제로 발생되고; 키 변경들 사이에서, 예컨대 그리고 도 1 내지 도 3을 참조하여, 전송자 DASB 클라이언트(22)의 애플리케이션(150)에 의해 스트리밍 애플리케이션이 개시되어, 수신자 DASB 클라이언트(24)의 애플리케이션(152)으로 통신될 수 있다. 전송자 애플리케이션(150)은 "EncryptStream" 동작을 개방하고, 이에 의해, 전송자 DASB 클라이언트 디바이스(22)는 키 DNA에 대한 요청을 브로커(20)로 통신한다(도 3의 "genkey"). 위의 설명들과 상응하여, 키 DNA(및 임의로 모니커)가 브로커(20)에 의해 생성되고(그러한 제1 요청에 대한 "키 DNA1"), 전송자 DASB 클라이언트(22)로 리턴되고; 전송자 DASB 클라이언트 소프트웨어(40)는 공급된 키 DNA에 적어도 부분적으로 기초하여 키를 생성하고(예컨대, 제1 경우에서, 전송자 DASB 클라이언트(22)가 키 DNA1에 기초하여 키1을 생성함); 공급된 키 DNA 및/또는 생성된 키는 "현재 키 DNA" 및/또는 "현재 키"로서 전송자 DASB 클라이언트(22)에 의해 메모리에 저장되고(예컨대, 제1 경우에서, 키 DNA1이 현재 키 DNA로서 저장되고/되거나 생성된 키1이 현재 키로서 저장됨); 전송자 DASB 클라이언트 소프트웨어(40)는 키를 사용하여 전송 애플리케이션(150)에서 스트림의 데이터 블록 또는 패킷을 암호화하고; 전송자 DASB 클라이언트(22)는 스트림의 암호화된 데이터 블록 또는 패킷을 수신자 DASB 클라이언트(24)로 전송한다. 수신자 애플리케이션(152)은, 스트림의 초기 데이터 블록 또는 패킷을 수신할 시에, "DecryptStream" 동작을 개방하고, 이에 의해, 수신자 DASB 클라이언트는 키 DNA1에 대한 요청을 브로커(20)로 통신한다(도 3의 "fetchKeyForIndex"). 위의 설명들과 상응하여, 브로커(20)는 키 DNA1을 검색하여 수신자 DASB 클라이언트(24)에 전달하고; 수신자 DASB 클라이언트(24)는 키 DNA1에 기초하여 키1을 생성하고; 수신자 DASB 클라이언트(24)는 수신자 애플리케이션(152)에 의한 액션을 위해 암호화된 데이터 블록 또는 패킷을 복호화하고, 키 DNA1 또는 키1 중 하나 또는 둘 모두를 현재 키 DNA 또는 현재 키로서 저장한다.
전송자 애플리케이션(150)은, 암호화된 데이터가 암호화되고 있을 때, 암호화된 데이터를 수신자 애플리케이션(152)으로 전송할 수 있거나, 또는 단일 데이터 블록 또는 패킷으로서 모두 함께 전송할 수 있다. 이와 상관없이, 위의 프로세스는 스트리밍 통신 동안 계속되고, 데이터 블록들 또는 패킷들은 연속적으로 암호화된다. 각각의 연속적인 데이터 블록 또는 패킷에 대해, 전송자 애플리케이션(150)은 전송자 DASB 클라이언트 소프트웨어(40)로 암호화를 위한 요청을 전송한다(도 3의 "다수의 encryptStream 호출"). 각각의 경우에서, 전송자 DASB 클라이언트 소프트웨어(40)는, 현재 키 또는 현재 키 DNA가 암호화하기 위해 활용될 수 있는지 또는 새로운 키가 생성되어야 하는지를 결정하기 위해, 스트리밍 통신 키 교체 규칙을 참조한다. 예컨대, 스트리밍 통신 키 교체 규칙은 특정 수의 데이터 블록이 현재 키를 사용하여 암호화된 후 및/또는 특정 시간 길이 후에 키 교체 또는 변경이 요구된다는 것을 지시할 수 있다. 스트리밍 통신 키 교체 규칙이 현재 키의 변경을 요구하지 않는 한, 전송자 DASB 클라이언트(22)에 저장된 현재 키(또는 현재 키 DNA)는 암호화가 요청되는 데이터 블록 또는 패킷을 암호화하기 위해 활용된다. 유사하게, 각각의 연속적으로 수신된 데이터 블록 또는 패킷에 대해, 수신자 애플리케이션(152)은 수신자 DASB 클라이언트 소프트웨어(50)로 복호화를 위한 요청을 전송한다(도 3의 "다수의 decryptStream 호출"). 각각의 경우에서, 수신자 DASB 클라이언트 소프트웨어(50)는, 현재 키 또는 현재 키 DNA가 복호화하기 위해 활용될 수 있는지 또는 새로운 키가 생성되어야 하는지를 결정하기 위해, 전송자 DASB 클라이언트 소프트웨어(40)에 의해 활용된 것과 동일한 스트리밍 통신 키 교체 규칙을 참조한다. 스트리밍 통신 키 교체 규칙이 현재 키의 변경을 요구하지 않는 한, 수신자 DASB 클라이언트(24)에 저장된 현재 키(또는 현재 키 DNA)는 복호화가 요청되는 데이터 블록 또는 패킷을 복호화하기 위해 활용된다.
현재 키(또는 현재 키 DNA)를 교체하기 위한 시간이 가까워짐에 따라, 전송자 DASB 클라이언트(22)는 브로커(20)로부터 새로운 키 DNA를 획득하도록 프롬프팅 또는 동작되고(도 3의 "makeKeyForIndex"), 수신자 DASB 클라이언트(24)는 브로커(20)로부터 이러한 동일한 새로운 키 DNA를 획득하도록 프롬프팅 또는 동작된다(도 3의 "fetchKeyForIndex"). 위의 예를 계속하면, 이어서, 전송자 DASB 클라이언트(22)와 수신자 DASB 클라이언트(24) 사이의 스트리밍 타입 통신의 시작에서, 키 DNA1은 암호화/복호화하기 위해 활용되는 키에 대한 기초이다. 어떤 시점에서, 전송자 DASB 클라이언트(22)는 브로커(20)로부터 새로운 키 DNA(키 DNA2)를 요청 및 수신하고, 새로운 키 DNA를 새로운 키(키2)에 대한 기초로서 사용할 것이다. 수신자 DASB 클라이언트(24)로부터 대응하는 요청이 수신될 때, 브로커(20)는 이러한 동일한 새로운 키 DNA2를 수신자 DASB 클라이언트(24)에 전달할 것이다. 이어서, 스트리밍 통신 키 교체 규칙에 따라, Key2는 다음 연속적인 데이터 블록들 또는 패킷들을 암호화/복호화하는 데 사용되고, Key2(및/또는 키 DNA2)는, 스트리밍 통신 키 교체 규칙이 새로운 키를 요구할 때까지, 후속 암호화/복호화 동작들을 위한 현재 키(또는 현재 키 DNA)로서 전송자 DASB 클라이언트(22) 및 수신자 DASB 클라이언트(24)에 저장되고, 프로세스는 자체적으로 반복된다. 다른 실시예들에서, 새로운 키 DNA에 대한 요청은 스트리밍 통신 키 교체 규칙이 키 교체를 요구하는 정확한 시점에 이루어질 수 있지만, 이는 성능 문제를 제시할 수 있다.
위에서 설명된 임의적인 스트리밍 타입 통신 방법들은 전송자 DASB 클라이언트가 2개 이상의 수신자 DASB 클라이언트로 스트리밍하는 것(예컨대, 그룹 비디오)에 의해 구현될 수 있다. 이러한 상황들 하에서, 전송자 DASB 클라이언트는, 새로운 키 DNA에 대한 선택된 수신자 클라이언트 디바이스(들)의 액세스를 거부함으로써, 스트리밍 통신으로부터 수신자 DASB 클라이언트들 중 하나(또는 그 초과)를 효과적으로 드롭하도록 동작될 수 있다. 키 교체 후에, 선택된 수신자 클라이언트 디바이스(들)는 착신 암호화된 데이터 블록들 또는 패킷들을 더 이상 복호화할 수 없을 것이다.
위에서 나타낸 바와 같이, 본 개시내용의 시스템들 및 방법들은 전송자 DASB 클라이언트가 암호화된 데이터를 단일 수신자 DASB 클라이언트로 전송하는 것으로 제한되지 않는다. 전송자 DASB 클라이언트에 대한 특정 풀이 다수의 수신자 DASB 클라이언트를 지정하는 경우, 위에서 설명된 바와 같이, 전송자 DASB 클라이언트는 브로커(20)로부터 요청된 암호화 동작을 위한 키 DNA 및 모니커를 수신(또는 그렇지 않으면 생성)하고, 해당 데이터를 암호화하고, 전송자 애플리케이션에 제공할 것이다. 이어서, 전송자 애플리케이션은 암호화된 데이터 및 모니커 정보를 다수의 관심 DASB 클라이언트 각각으로 전송하도록 동작한다. 이어서, 각각의 개별 수신자 DASB 클라이언트는 위에서 설명된 바와 같이 동작한다(예컨대, 수신자 애플리케이션은 대응하는 수신자 DASB 클라이언트 소프트웨어에게 암호화된 데이터를 복호화할 것을 요청하고, 차례로, 수신자 DASB 클라이언트는 브로커(20)로부터 대응하는 키 DNA를 요청함). 이들 및 관련 실시예들에서, 브로커(20)는 수신된 복호화를 위한 요청들에 기초하여 브로커(20)로부터의 키 DNA의 삭제를 통제하는 규칙들로 프로그래밍될 수 있다(예컨대, 브로커(20)는, 지정된 풀의 모든 클라이언트 디바이스들이 복호화를 요청할 때까지, 키 DNA 및 대응하는 모니커를 삭제하지 않음; 브로커(20)는 설정된 시간 기간 후에 키 DNA 및 대응하는 모니커를 삭제함 등).
본 개시내용의 방법들에서, DASB 클라이언트 디바이스는 특정 신뢰 환경의 브로커와 인터페이스하도록 프로비저닝되어 2개(또는 그 초과)의 신뢰 환경에서 동작할 수 있다. 예컨대, 제1 DASB 클라이언트(22)는 위에서 설명된 바와 같이 시스템(10)의 브로커(20)와 인터페이스할 뿐만 아니라, 본 개시내용의 별개의 신뢰 환경/시스템의 완전히 상이한 브로커와 인터페이스하도록 프로비저닝될 수 있다.
디폴트로, 시스템(10)의 하나의 DASB 클라이언트는 주어진 신뢰 환경의 제어 하에서 다른 DASB 클라이언트와 신뢰 관계를 확립한다(그리고 구체적으로는, 각각의 DASB 클라이언트의 DASB 클라이언트 소프트웨어는 동일한 브로커에 의해 검증 및 제어됨). 예컨대 그리고 도 1 및 도 4를 참조하면, 제1 DASB 클라이언트("DASB 클라이언트 A")는 제1 브로커("브로커 A")를 갖는 제1 신뢰 환경("신뢰 환경 A")에 의해 제어되고; 제2 DASB 클라이언트("DASB 클라이언트 B")는 제2 브로커("브로커 B")를 갖는 제2 신뢰 환경("신뢰 환경 B")에 의해 제어된다. 보안 협력을 사용하여, 본 개시내용의 일부 비-제한적인 실시예들에서, 신뢰 환경들 A 및 B는 DASB 클라이언트 A에서 생성된 페이로드들(예컨대, 암호화된 데이터)이 DASB 클라이언트 B에 의해 성공적으로 핸들링될 수 있게 하도록 구성될 수 있고, 모든 적절한 로깅 등은 각각의 신뢰 환경들 A, B에서 가시적이다. 예컨대, 브로커 A에 의해 생성되고 암호화 키를 생성하기 위해 DASB 클라이언트 A에 제공되는 키 DNA는 DASB 클라이언트 B로의 전달을 위해 브로커 B에 제공될 수 있다.
다른 예에서, DASB 클라이언트는 하나의 신뢰 환경으로부터 그의 신뢰 관계를 이동시킬 수 있고, 여기서, 초기 "소유" 환경은 제어, 검증 등을 새로운 환경으로 핸드오프한다. 예컨대, DASB 클라이언트 A는 브로커 A와 브로커 B가 서로 통신하고 DASB 클라이언트 A와 협력함으로써 신뢰 환경 A로부터 신뢰 환경 B로 이동할 수 있고, 그에 따라, 제어가 협력 방식으로 브로커 A로부터 브로커 B로 핸드오프된다. 핸드오프가 완료되면, DASB 클라이언트 A는 신뢰 환경 B 내의 다른 DASB 클라이언트와의 신뢰 관계(예컨대, DASB 클라이언트 B와의 신뢰 관계)를 자유롭게 확립한다. 참고로, 일부 예들에서, "새로운" 신뢰 환경은 의도된 곧 이동될 DASB 클라이언트에 대한 플레이스홀더(placeholder)를 생성하여, 임의의 추가 구성을 요구하지 않으면서, 이동하는 DASB 클라이언트가 즉시 슬롯 인(slot in)되는 것을 가능하게 할 수 있다.
다른 예에서, 신뢰 환경은 다수의 지역에 걸쳐 있다(즉, 다양한 브로커들이 지리적으로 상이한 데이터 센터들에서 실행되고 있지만 여전히 집합적으로 단일의 전체 신뢰 환경을 정의하거나 또는 그의 일부임). 시스템/신뢰 환경의 조직 또는 소유자는 DASB 클라이언트들 중 일부를 특정 지역의 브로커에 "고정"되거나 또는 구속되는 것으로 나타낼 수 있지만(예컨대, 해당 브로커들과 DASB 클라이언트들 중 하나 이상에서 확립된 프로그래밍 또는 다른 기능들); 다른 DASB 클라이언트들(예컨대, 스마트폰)은 로밍하는 것이 가능하게 될 수 있다. 어떤 브로커가 선택되는지는 지리적 IP 규칙(geo IP rule)들에 의해 결정될 가능성이 있을 것이지만, 또한, 시간 기간들 또는 명시적 방향들과 같은 규칙들에 의해 통제될 수 있다. 로밍 DASB 클라이언트가 지리적으로 상이한 브로커에 가까워짐에 따라, 로밍 DASB 클라이언트의 제어 정보는 이전의 브로커로부터 자동으로 전송된다. 다시 말하면, 모든 DASB 클라이언트들이 하나의 신뢰 환경의 일부이지만, DASB 클라이언트들의 브로커 구현 관리는 더 양호한 성능을 용이하게 하기 위해 지리적으로 근접한 위치들에 위임된다.
위에서 나타낸 바와 같이, 일부 임의적인 실시예들에서, 본 개시내용의 시스템들 및 방법들은 인터셉터(26)의 사용 또는 동작을 수반할 수 있다. 예컨대, 일부 실시예들에서, 브로커(20)에서 키 DNA에 대한 요청이 수신된 후에(즉, 단계(110)) 그리고 요청에 응답하여 키 DNA가 생성 및 전달되기 전에(즉, 단계(114)), 본 개시내용의 방법들은 도 5에 도시된 바와 같이 인터셉터(26)와 인터페이스하는 것을 포함할 수 있다. 예컨대 그리고 도 1 내지 도 5를 참조하면, 단계(110) 후에, 방법들은, 단계(200)에서, 브로커(20)가 수신된 키 DNA에 대한 요청을 인터셉터(26)(그리고 구체적으로는 제어 소프트웨어(60))에 통지하는 것을 포함할 수 있다. 위의 예를 계속하면, 인터셉터(26)는 요청 X(다른 방식에서는, 전송자 DASB 클라이언트(22)로부터 수신자 DASB 클라이언트(24)로 정보를 전송하려는 의도를 나타내는 요청 풀 식별자를 포함함)를 통보받는다. 일부 실시예들에서, 단계(200)에서, 일반적인 정보가 인터셉터(26)에 제공된다. 다른 실시예들에서, 단계(200)에서, 콘텍스트 정보가 인터셉터(26)에 제공된다(즉, 예컨대, 전송자 및 수신자 클라이언트 디바이스들, 요청 시간 등과 같은, 암호화를 위한 특정 요청에 관한 소정 레벨의 정보를 인터셉터(26)에 제공함).
단계(202)에서, 인터셉터(26)는 요청 X의 승인 또는 거부를 용이하게 하도록 동작된다. 예컨대, 인터셉터(26)는 요청 X에 관한 정보를 인가된 인간 관리자에게 제시(예컨대, 디스플레이)할 수 있고, 이어서, 인가된 인간 관리자는 요청을 승인 또는 거부한다. 단계(204)에서, 요청 X를 승인 또는 거부하기 위한 판정이 인터셉터(26)로부터 브로커(20)로 통신된다. 일부 임의적인 실시예들에서, 브로커(20)가 미리 결정된 시간 기간(예컨대, 1분) 후에 인터셉터(26)로부터 응답을 수신하지 않은 경우, 단계(206)에서와 같이, 브로커(20)는 요청 X에 대한 승인 상태가 계류 중인 것을 전송자 DASB 클라이언트(22)에 통보한다(이 메시지는, 차례로, 전송자 DASB 클라이언트(22)의 사용자에게 전달될 수 있음). 추가 상태 업데이트들이 주기적 기준으로 제공될 수 있다. 단계(204)에서, 브로커(20)가 요청 X가 승인된 것을 통보받는 경우("예"), 브로커(20)는 위에서 설명된 바와 같이 키 DNA X 및 모니커 X를 생성한다(즉, 방법은 도 2a의 단계(114)로 계속됨). 단계(204)에서, 브로커(20)가 요청 X가 거절된 것을 통보받는 경우("아니오"), 브로커(20)는 전송자 DASB 클라이언트(22)에 키 DNA를 제공하지 않고, 데이터 X는 암호화될 수 없다(단계(208)). 다른 임의적인 실시예들에서, 시스템(10)은, 인터셉터(26)가 미리 결정된 시간 기간 후에 승인을 위한 요청에 응답하지 않는 상황들 하에서, 브로커(20)가 키 DNA 및 모니커를 생성하여 전송자 DASB 클라이언트에 전달하고, 전송자 DASB 클라이언트가 수신된 키 DNA에 기초하여 키를 생성하고, 그렇게 생성된 키를 사용하여 해당 데이터를 암호화하고, 전송자 애플리케이션이, 암호화된 데이터 및 모니커가 수신자 애플리케이션으로 전송될 수 있는지 여부에 대한 판정을 위해, 암호화된 데이터 및 모니커를 인터셉터(26)로 전송하도록 구성 또는 프로그래밍될 수 있다.
다른 실시예들에서, 브로커(20)에서 모니커 X를 포함하는 키 DNA X에 대한 요청이 수신된 후에(즉, 단계(130)) 그리고 요청에 응답하여 키 DNA X가 생성 및 전달되기 전에(즉, 단계(132)), 본 개시내용의 방법들은 도 6에 도시된 바와 같이 인터셉터(26)와 인터페이스하는 것을 포함할 수 있다. 예컨대 그리고 도 1 내지 도 6을 참조하면, 단계(130) 후에, 방법들은, 단계(250)에서, 브로커(20)가, 복호화의 목적들을 위해, 수신된 키 DNA X에 대한 요청을 인터셉터(26)(그리고 구체적으로는 제어 소프트웨어(60))에 통지하는 것을 포함할 수 있다. 일부 실시예들에서, 단계(250)에서, 일반적인 정보가 인터셉터(26)에 제공된다. 다른 실시예들에서, 단계(250)에서, 콘텍스트 정보가 인터셉터(26)에 제공된다(즉, 브로커(20)가 풀, 클라이언트 디바이스들, 인터셉터 규칙들 등을 검색할 수 있게 하는 할당된 모니커의 지식을 통해 브로커(20)가 다른 방식으로 이용가능한, 예컨대 전송자 및 수신자 클라이언트 디바이스들, 요청 시간 등과 같은 암호화를 위한 특정 요청에 관한 소정 레벨의 정보를 인터셉터(26)에 제공함; 커스터마이징된 메시지가 또한 인터셉터(26)에 제공될 수 있음).
단계(252)에서, 인터셉터(26)는 키 DNA X에 대한 요청의 승인 또는 거부를 용이하게 하도록 동작된다. 예컨대, 인터셉터(26)는 인가된 인간 관리자에게 요청을 제시(예컨대, 디스플레이)할 수 있고, 이어서, 인가된 인간 관리자는 요청을 승인 또는 거부한다. 단계(254)에서, 키 DNA X에 대한 요청을 승인 또는 거부하기 위한 판정이 인터셉터(26)로부터 브로커(20)로 통신된다. 일부 임의적인 실시예들에서, 브로커(20)가 미리 결정된 시간 기간(예컨대, 1분) 후에 인터셉터(26)로부터 응답을 수신하지 않은 경우, 단계(256)에서와 같이, 브로커(20)는 요청에 대한 승인 상태가 계류 중인 것을 수신자 DASB 클라이언트(24)에 통보한다(이 메시지는, 차례로, 수신자 DASB 클라이언트(24)의 사용자에게 전달될 수 있음). 추가 상태 업데이트들이 주기적 기준으로 제공될 수 있다. 단계(254)에서, 브로커(20)가 키 DNA X에 대한 요청이 승인된 것을 통보받는 경우("예"), 브로커(20)는 위에서 설명된 바와 같이 키 DNA X를 검색한다(즉, 방법은 도 2b의 단계(132)로 계속됨). 단계(254)에서, 브로커(20)가 키 DNA X에 대한 요청이 거절된 것을 통보받는 경우("아니오"), 브로커(20)는 수신자 DASB 클라이언트(24)에 키 DNA X를 제공하지 않고, 암호화된 데이터 X는 복호화될 수 없다(단계(258)).
위에서 언급된 바와 같이, 본 개시내용의 일부 방법들에서, 시스템(10)과 함께 활용되는 각각의 DASB 클라이언트 및 대응하는 DASB 클라이언트 소프트웨어는 브로커(20)와의 인가된 보안 인터페이스를 위해 프로비저닝된다(예컨대, 도 2a의 단계들(100 및 102)). DASB 클라이언트 프로비저닝은 다양한 방식들로 달성될 수 있고, 일부 실시예들에서, 특정 클라이언트 디바이스에 설치된 DASB 클라이언트 소프트웨어와 브로커(20) 사이의 확인되고 보안된 통신을 용이하게 한다. 본 개시내용의 원리들에 따른 프로비저닝을 위한 방법의 하나의 비-제한적인 예가 도 7에 제공된다. 참고로, DASB 클라이언트 프로비저닝 동작의 시작 전에, DASB 클라이언트 소프트웨어가 클라이언트 디바이스에 설치되었고, 브로커(20) 상에서 동작하는 DASB 포털에 관리자 계정이 확립되었다.
단계(300)에서, 관리자 계정("관리자(Admin)")을 사용하도록 인가된 인간 사용자는 DASB 포털에 대해 인증하고, DASB 클라이언트 프로비저닝 프로세스를 개시한다. 단계(302)에서, 관리자는 또한 (브라우저를 통해 또는 애플리케이션 특정 뷰를 통해) 해당 클라이언트 디바이스 상의 DASB 클라이언트 소프트웨어에 연결한다. 단계(304)에서, 브로커(20)는 DASB 포털에서 관리자에게 제공되는 코드(예컨대, 시간 제한 일회용 코드)를 생성한다. 단계(306)에서, 관리자는 해당 클라이언트 디바이스에서(그리고 그에 따른 대응하는 DASB 클라이언트 소프트웨어에) 코드를 반복 또는 입력한다. 단계(308)에서, 해당 클라이언트 디바이스의 DASB 클라이언트 소프트웨어는 브로커(20)와 통신하기 위해, 입력된 코드를 사용한다. 입력된 코드를 수신할 시에, 단계(310)에서, 브로커(20)는 DASB 클라이언트 ID 및 DASB 클라이언트 공개 키를 생성하고, 이어서, 단계(312)에서, DASB 클라이언트 ID 및 DASB 클라이언트 공개 키는 해당 클라이언트 디바이스의 DASB 클라이언트 소프트웨어로 통신된다. 이어서, 단계(314)에서, 관리자(또는 다른 인간 사용자)는 브로커(20)와 해당 DASB 클라이언트 사이의 통신을 검증하고, 해당 DASB 클라이언트 소프트웨어를 프로비저닝된 것으로서 지정한다. 일부 실시예들에서, 브로커(20)와 그렇게 프로비저닝된 DASB 클라이언트 사이의 통신들은 신뢰 또는 보안되는 것으로 고려된다. 단계(316)에서, 관리자가 브로커(20)와 해당 클라이언트 디바이스가 안전하게 통신하고 있지 않다고 결정하는 경우, 해당 클라이언트 디바이스는 브로커(20)로부터 제거되고, 프로비저닝 프로세스는 다시 개시되어야만 한다. 예컨대, 임포스터(imposter) DASB 클라이언트 디바이스가 프로비저닝 프로세스 동안 브로커(20)와 통신하기 시작하는 경우(즉, 임포스터 DASB 클라이언트 디바이스가 인증 정보를 인터셉트함), 이 통신은 관리자의 클라이언트 디바이스가 브로커(20)와 통신하는 것을 방지할 것이다. 관리자는 그의/그녀의 디바이스가 통신하고 있지 않은 것을 인식할 것이고, 그에 따라, 임포스터 디바이스가 연결된 것을 알게 될 것이다.
본 개시내용의 일부 방법들에서, 시스템(10)(또는 신뢰 환경) 내의 임의의 DASB 클라이언트와 브로커(20) 사이의 보안 통신은 통상의 기술자에 의해 이해되는 키 암호화 기법들(예컨대, 대칭 키 암호화)을 사용함으로써 제공된다. 이를 유념하면서, 본 개시내용의 일부 임의적인 방법들은, 브로커-DASB 클라이언트 통신들에 사용되는 키들을 교체함으로써, 시스템(10)의 클라이언트 디바이스들 각각과 브로커(20) 사이의 보안 통신들을 촉진 및 확인한다. 예컨대 그리고 도 8을 참조하면, 본 개시내용의 일부 임의적인 방법들은, 특정 클라이언트 디바이스의 프로비저닝에 의해, 단계(350)에서, DASB 클라이언트가 고유 DASB 클라이언트 개인 키를 확립 및 저장하는 것, 및 해당 DASB 클라이언트 상에(그리고 임의로 브로커에) 저장되는 DASB 클라이언트 공개 키를 확립하는 것을 포함할 수 있다. 단계(352)에서, 브로커와 해당 DASB 클라이언트는, DASB 클라이언트 공개 키에 기초하여, 통신을 위한 대칭 키를 협정하고; 이러한 협정된 대칭 키는 보안 통신들을 위한 초기 "현재" 대칭 키로서 역할을 한다. 단계(354)에서, 브로커와 해당 DASB 클라이언트 사이의 확인된 보안 통신을 위한 새로운 대칭 키는 해당 DASB 클라이언트에 의해 주기적으로(예컨대, 랜덤 간격들로) 생성되거나, 또는 브로커와 해당 DASB 클라이언트 사이에서 협정된다. 단계(356)에서, 새로운 대칭 키는 현재 대칭 키 및 할당된 DASB 클라이언트 공개 키를 사용하여 암호화되고, 브로커 또는 해당 DASB 클라이언트로 전송된다. 단계(358)에서, 암호화된 새로운 대칭 키는 (예컨대, 할당된 DASB 개인 키에 의해) 복호화되고, 브로커와 해당 DASB 클라이언트 사이의 후속 통신들을 위해 저장된다(저장된 현재 대칭 키를 새로운 대칭 키로 대체하고; 다시 말하면, 새로운 대칭 키가 현재 대칭 키가 됨).
단계(360)에서, 해당 DASB 클라이언트에 대한 새로운 DASB 클라이언트 공개 키는 브로커에 의해 주기적으로(예컨대, 랜덤 간격들로) 생성된다. 단계(362)에서, 브로커는 현재 대칭 키를 사용하여 새로운 DASB 클라이언트 공개 키를 암호화하고, 해당 DASB 클라이언트로 전송한다. 단계(364)에서, 해당 DASB 클라이언트는 암호화된 새로운 DASB 클라이언트 공개 키를 복호화하고, 브로커와의 후속 통신들을 위해 새로운 DASB 클라이언트 공개 키를 저장하도록 동작된다.
전술한 것과 관련된 바와 같이, 본 개시내용의 시스템들 및 방법들은 DASB 클라이언트와 브로커(20) 사이의 통신들과 함께 세션 관리 피처들을 제공한다. 예컨대, DASB 클라이언트들은 데이터 페이로드를 보안하기 위해 이들 자신의 세션들을 관리함으로써 브로커(20)와 통신할 수 있다(즉, DASB 클라이언트와 브로커(20) 사이의 통신들(커맨드들, 연관된 데이터 페이로드들 등)은 보안 프로토콜들을 적용받음). 본 개시내용의 키 DNA 방법들은 DASB 클라이언트들 사이의 보안 통신들을 용이하게 하는 반면, 세션 관리는 브로커와 DASB 클라이언트 사이의 보안 통신을 제공한다. 도 1 내지 도 9를 참조하면, 브로커(20)와 DASB 클라이언트(22) 사이의 본 개시내용의 세션 관리 방법의 하나의 비-제한적인 예는, 단계(400)에서, 브로커(20)가 비대칭 암호화 알고리즘(예컨대, RSA)을 활용하여 개인/공개 키 쌍들을 생성하는 것을 포함할 수 있다. 단계(402)에서, DASB 클라이언트(22)로부터의 요청에 응답하여, 브로커(20)는 그렇게 생성된 공개 키를 DASB 클라이언트에 전달한다. 단계(404)에서, DASB 클라이언트(22)는 대칭 키를 생성하고, 그렇게 생성된 대칭 키를 공개 키를 사용하여 암호화한다. 단계(406)에서, DASB 클라이언트(22)는 대칭 키를 활용하여, 브로커(20)로 전송될 데이터(커맨드들, 페이로드 등)를 암호화한다. 단계(408)에서, 암호화된 데이터는 브로커(20)로 전달된다. 단계(410)에서, 브로커는 수신된 암호화된 데이터를 대칭 키를 사용하여 복호화한다. 단계(412)에서, 브로커(20)는 필요에 따라 수신된(그리고 이제 복호화된) 데이터에 대해 작동하고; 단계(414)에서, 임의의 응답 통신, 데이터, 커맨드 등이 동일한 대칭 키를 사용하여 암호화되고, DASB 클라이언트(22)로 리턴된다. 특정 신뢰 환경 내의 각각의 DASB 클라이언트는 이러한 동일한 세션 관리 접근법을 사용하여 브로커(20)와 안전하게 상호작용할 수 있지만, 그 자신의 고유한 세트의 공개/개인 키들/대칭 키들을 가질 것이라는 것이 이해될 것이다(예컨대, 제1 DASB 클라이언트(22)와 브로커(20) 사이의 보안 통신들을 위해 사용되는 대칭 키는 제2 DASB 클라이언트(24)와 브로커(20) 사이의 보안 통신들을 위해 사용되는 대칭 키와 상이할 것임). 일부 관련된 비-제한적인 예들에서, 각각의 DASB 클라이언트는 상이한 비대칭 암호화 알고리즘을 사용할 수 있다.
일부 실시예들에서, 본 개시내용의 세션 관리 피처들 또는 모드들은 임의로, 랜덤 간격(예컨대, 1 내지 15분)으로 대칭 키를 교체하는 것을 더 포함할 수 있고, 해당 DASB 클라이언트에 의해 제어될 수 있다. 일부 실시예들에서, 개인/공개 키 쌍이 또한 교체될 수 있지만 더 넓은 간격으로 이루어질 수 있다. 이와 관련하여, 세션 관리 피처들 또는 모드들은, 예컨대, 시스템(10)의 소유자 또는 운영자의 선호도들에 기초하여, 개인/공개 키 쌍을 교체할 때, 상이한 비대칭 암호화 알고리즘을 선택하는 것을 포함할 수 있다. 비-제한적인 예로서, 시스템(10)의 소유자 또는 운영자는, 세션 관리 동작 모드에서, 시스템(10)이 이용가능한 암호화 알고리즘들의 세트 사이에서 랜덤으로 선택하도록, 시스템(10)을 구성할 수 있다. 브로커는, 변경들이 발생할 필요가 있는 시간을 모니터링할 뿐만 아니라, 공개/개인 키 쌍들을 생성하기 위한 적절한 암호화 알고리즘들을 선택하기 위해, 특정 구성(프로그래밍)을 사용하거나 또는 특정 구성이 없는 경우 미리 정의된 디폴트들을 사용한다. 브로커는 또한, 세션 관련 대칭 키 교체 시간 간격을 DASB 클라이언트에 공급한다. DASB 클라이언트는 대칭 키 교체 주기마다 1 내지 특정 값 사이의 랜덤 시간 간격을 고르도록 프로그래밍된다. 더 새로운 알고리즘들이 배포됨에 따라, 각각의 DASB 클라이언트의 소유자는 이러한 새로운 알고리즘들을 활용하기 위해 이들의 대응하는 DASB 클라이언트 소프트웨어를 업그레이드하는 능력을 갖는다. 일 예에서, 새로운 알고리즘들은, 전체 클라이언트 디바이스를 업그레이드할 필요 없이, 클라이언트 디바이스 사용자들의 기존(및 프로비저닝된) DASB 클라이언트에 대한 패치로서, 클라이언트 디바이스 사용자들에 대해 이용가능하게 될 수 있다.
일부 비-제한적인 실시예들에서, 본 개시내용의 시스템들 및 방법들은 DASB 클라이언트들 사이의 커스터마이징된 암호화 알고리즘들("페이로드 관리"로 또한 지칭됨)의 구현을 가능하게 한다. 예컨대, 시스템(10)의 선택된 DASB 클라이언트 디바이스들과 함께 제공되는 DASB 클라이언트 소프트웨어는 시스템(10)의 소유자 또는 운영자가 커스터마이징된 암호화 알고리즘을 입력하는 것을 허가할 수 있고, 그 커스터마이징된 암호화 알고리즘으로부터 DASB 클라이언트들은 (위에서 설명된 바와 같이 브로커(20)로부터 제공되는 키 DNA를 활용하여) 키를 생성한다. 예로서, 신뢰 관계에 있는 2개의 DASB 클라이언트(예컨대, DASB 클라이언트 A 및 DASB 클라이언트 B)는 커스터마이징된 암호화 알고리즘들의 동일한 세트를 가져야만 한다. 신뢰 환경의 소유자 또는 운영자는, 표시자(들)(예컨대, 텍스트 스트링, 숫자 시퀀스 등)와 함께, 이러한 커스터마이징된 암호화 알고리즘들을 DASB 클라이언트 A 및 DASB 클라이언트 B 각각에 설치한다. 소유자/운영자는 추가로, 어떤 DASB 클라이언트들이 커스터마이징된 알고리즘들을 갖고 있는지를 브로커에서 특정하고, 그렇게 지정된 커스터마이징된 암호화 알고리즘들을 표현하는 대응하는 표시자(들)를 제공한다. 따라서, 표시자(들)만이 브로커에 남게 된다. DASB 클라이언트 A가 전송자이고 DASB 클라이언트 B가 수신자인 상황들 하에서, DASB 클라이언트 A로부터 새로운 키 DNA에 대한 요청을 수신할 시에, 브로커는 위에서 설명된 바와 같이 키 DNA를 생성하고, 커스터마이징된 암호화 알고리즘을 랜덤으로 선택할 수 있다. 이어서, 브로커는 키 DNA 및 선택된 커스터마이징된 암호화 알고리즘에 대응하는 표시자를 DASB 클라이언트 A로 전송한다. 이어서, DASB 클라이언트 A는, 차례로, 표시자를 확인할 시에, 대응하는 암호화 알고리즘을 사용하여, 해당 데이터/페이로드를 암호화하고 DASB 클라이언트 B로 전송할 것이다. 따라서, 키의 생성을 가능하게 하는 키 DNA의 "일부"인 것으로 표시자를 보는 것이 가능할 수 있다. 암호화된 데이터/페이로드를 수신할 시에, DASB 클라이언트 B는 위에서 설명된 바와 같이 키 DNA에 대한 요청을 브로커로 전송한다. 브로커는, 차례로, DASB 클라이언트 A에 제공된 것과 동일한 표시자 및 키 DNA를 DASB 클라이언트 B로 전송한다. DASB 클라이언트 B가 동일한 표시자를 갖기 때문에, 동일한 커스터마이징된 암호화 알고리즘이 복호화하기 위해 선택될 것이다. 표시자에 대응하는 알고리즘이 DASB 클라이언트 B 상에 설치되지 않은 경우, 동작은 에러를 초래한다. 대안적으로 또는 추가하여, 시스템(10) 내의 2개 이상의 DASB 클라이언트는 알려진 신뢰 관계를 갖는 것으로 구성 또는 프로비저닝될 수 있고(즉, 2개 이상의 DASB 클라이언트는 신뢰 관계에 관여되는 것으로 알려짐), 몇몇(또는 그 초과)의 선택된 대칭 암호화 알고리즘(예컨대, AES, Salsa20 등)이 미리 설치될 수 있다. 페이로드 관리는 임의로, 브로커가, 고객 구성에 기초하여, 특정 암호화된 데이터 전송을 위해 사용할 암호화 알고리즘을 선택하는 것(예컨대, 랜덤으로 선택하는 것)을 포함할 수 있다. 이들은 관련된 실시예들이고, 여기서, 시스템(10)의 운영자 또는 소유자는 DASB 클라이언트(들)(그렇지 않으면 신뢰 관계에 있음)를 필드 업그레이드하여, 그렇지 않으면 브로커에게 알려지지 않은 하나 이상의 커스텀 암호화 알고리즘을 사용할 수 있거나, 또는 미리 설치된 암호화 알고리즘들을 사용할 수 있다. 이러한 커스텀 암호화 알고리즘(들)은 시스템(10)의 운영자 또는 소유자에 의해 구성되는 시스템 제공 알고리즘들 대신에 또는 이들과 함께 사용될 수 있다.
본 개시내용의 시스템들 및 방법들은 임의로, 하나 이상의 추가적인 피처 또는 동작을 포함할 수 있다. 예컨대, 일부 실시예들에서, 본 개시내용의 시스템들 및 방법들은 프로비저닝된 DASB 클라이언트와 브로커(20) 사이의 지정된 트랜잭션들(모든 트랜잭션들을 포함함)이 (예컨대, 브로커(20)에서) 추적 또는 로깅되고 저장되는 로깅 피처를 포함한다. 일부 실시예들에서, 암호화하기 위한 요청과 함께 키 DNA에 대한 모든 각각의 요청이 추적되고, 관련 실시예들에서, 복호화하기 위한 요청과 함께 키 DNA에 대한 모든 각각의 요청이 저장된다. 로깅 또는 추적되는 정보는, 예컨대, 암호화 또는 복호화하기 위한 요청이 언제 수신되었는지(예컨대, 날짜, 시간 등), 특정 요청과 연관된 클라이언트 ID 등을 포함할 수 있다. 로깅된 정보는 생성 후에 변형될 수 없도록 암호화 서명들을 사용하여 보안될 수 있다. 일부 구현들에서, 로그들을 보안하는 방법은 분산 원장 또는 블록체인을 통해 달성될 수 있다.
일부 실시예들에서, 임의적인 로깅 동작들은 감사가능 보안을 추가로 제공하여, 특정 데이터 전송이 보안되었는지 여부에 대해 높은 신뢰 레벨로 알 수 있는 능력을 제공할 수 있다. 전송 로그들이 변경 불가능하기 때문에, 그리고 각각의 데이터 전송과 연관된 암호화가 고유하기 때문에, 누가 또는 어떤 디바이스가 특정 키 DNA에 액세스했는지를 확실히 "아는 것"이 가능하다. 기존의 로그들을 사용하여, 사용자는 본 개시내용의 원리들에 따라 다양한 방식들로 특정 데이터 전송의 보안을 검증할 수 있다. 예컨대, 사용자는 (예컨대, 대응하는 모니커에 의해 식별되는) 특정된 메시지 또는 스트림에 대한 모든 활동을 요청할 수 있다. 이어서, 활동 리포트 또는 로그는 모든 암호화들이 해당 전송자 DASB 클라이언트에 의해 행해진 것을 보장하기 위해 검토될 수 있다. 암호화들의 리스팅은 브로커(20)에 저장된 전송자 DASB 클라이언트의 암호화 로그에 대해 상관될 수 있다. 유사하게, 활동 리포트 또는 로그는 모든 복호화들이 해당 의도된 수신자 DASB 클라이언트(들)에 의해 행해진 것을 보장하기 위해 검토될 수 있다. 복호화들의 리스팅은 브로커(20)에 저장된 수신자 DASB 클라이언트의 복호화 로그에 대해 상관될 수 있다. 대안적으로 또는 추가하여, 지정된 데이터 전송과 연관된 키에 액세스하려는 임의의 비인가된 시도들이 로깅될 수 있다. 이는 침해를 나타내지 않을 것이지만, 시도된 침해를 나타낼 뿐만 아니라 공격자가 암호문/암호화된 데이터에 대한 액세스를 획득했다는 것을 나타낼 것이다. 참고로, "비인가된 시도"는, (시스템(10)의 일부가 아닌) 알려지지 않은 당사자에 의해 시도된 액세스; 암호화된 데이터 또는 메시지가 인코딩되지 않은 (시스템(10)의) 알려진 당사자에 의해 시도된 액세스; 의도된 수신자 클라이언트 디바이스에 의한 것이지만 이들이 허용되는 횟수보다 더 많이 액세스하려고 시도한 시도된 액세스(예컨대, 시스템(10)은 복호화하기 위한 단일 시도만을 허가하도록 구성될 수 있지만, N회의 복호화 시도들이 허용되더라도, 의도된 수신자 DASB 클라이언트는 N+1회 디코딩하려고 시도할 수 있고, 이는 에러를 생성할 것임) 등과 같은 다양한 형태들을 취할 수 있다.
위에서 설명된 방법들은 브로커(20)가 암호화하기 위한 요청에 응답하여 DASB 클라이언트로의 전달을 위해 키 DNA를 생성하고, 복호화하기 위한 요청에 응답하여 DASB 클라이언트로의 후속 전달을 위해 키 DNA를 저장하는 것을 포함하지만, 다른 기법들이 이용될 수 있다. 예컨대, 일부 대안적인 실시예들에서, DASB 클라이언트 소프트웨어가 특정 암호화 트랜잭션을 위해 활용될 키 DNA의 일부 또는 전부를 생성하고, (전송자 애플리케이션을 통해) 키 DNA를 브로커(20)로 전송하도록 프로그래밍될 수 있다. 다른 실시예들에서, DASB 클라이언트 소프트웨어는 키 DNA의 일부를 생성하고, (전송자 애플리케이션을 통해) 부분적인 키 DNA 정보를 (수신자 애플리케이션을 통해) 수신자 DASB 클라이언트로 전송하도록 프로그래밍될 수 있고, 그에 따라, 브로커(20)를 바이패스할 수 있다. 이들 및 관련 실시예들에서, 브로커(20)는 복호화 동작을 요청하는 DASB 클라이언트에 전달되는 키 DNA의 나머지를 생성하도록 프로그래밍될 수 있고; 수신자 DASB 클라이언트는 전송자 애플리케이션 및 브로커(20)에 의해 제공된 부분적인 키 DNA로부터 완전한 키 DNA를 생성하도록 프로그래밍될 것이다.
유사하게, 위에서 설명된 방법들은 브로커(20)가 암호화하기 위한 요청에 응답하여 모노커를 생성하는 것을 포함하지만, 다른 기법들이 이용될 수 있다. 예컨대, 일부 대안적인 실시예들에서, DASB 클라이언트 소프트웨어는 브로커(20)로의 요청과 함께 (전송자 애플리케이션을 통해) 포함될 모니커를 생성하도록 프로그래밍된다. 브로커(20)는 요청 DASB 클라이언트로의 전달을 위해 모니커를 저장할 수 있거나, 또는 모니커는 전송자 애플리케이션을 통해 수신자 애플리케이션으로 전달될 수 있다.
일부 비-제한적인 실시예들에서, 본 개시내용의 시스템들 및 방법들은 임의로, DASB 클라이언트 디바이스로부터의 DASB 클라이언트 소프트웨어의 비인가된 복사(그리고 복사된 DASB 클라이언트 소프트웨어를 사용하여, 프로비저닝된 또는 인가된 DASB 클라이언트를 가장하는 것)의 위험을 최소화하도록 동작할 수 있다. 예컨대, 본 개시내용의 시스템들 및 방법들은 브로커와 DASB 클라이언트 사이의 제어 중개자로서 작동하는 독립형 "리쉬(leash)" 또는 "리쉬 홀더(leash holder)" 디바이스(또는 중개 디바이스)를 실시 또는 구현할 수 있다. 이러한 관계의 하나의 표현이 도 10에 제공되고, 여기서, DASB 클라이언트(22)는 브로커(20)와 프로비저닝되고, 리쉬 디바이스(500)(예컨대, 달리 프로그래밍되거나 또는 대응하는 리쉬 소프트웨어(502)를 동작시키는 컴퓨터 또는 컴퓨터 유사 디바이스)에 전자적으로 링크된다. 리쉬 디바이스(500), DASB 클라이언트(22), 및 브로커(20) 사이의 지속적인 통신은 DASB 클라이언트(22)가 가장되는 것을 방지하는 것을 돕는다. 이러한 배열을 용이하게 할 수 있는 하나의 피처는 리쉬 디바이스(500)가 DASB 클라이언트(22)와 동일한 서브넷 상에 구성되고(도 10에서 파선으로 표현됨), 이 서브넷 외부로부터 도달가능하지 않다는 것이다. 그러나, 리쉬 디바이스(500)는 브로커(20)에 대한 아웃바운드 "호출들"을 행할 수 있다.
하나의 예시적인 배열에서, 시스템의 소유자 또는 운영자는 DASB 클라이언트(22)와 리쉬 디바이스(500) 사이의 원하는 통신 빈도에 따르도록 브로커(20)를 구성(예컨대, 프로그램 또는 명령)하고, 토큰 유효성 규칙들을 구성한다. DASB 클라이언트(22)는, 예컨대, 기동 시에 항상 그리고 후속하여 정의된 간격으로 리쉬 디바이스(500)와 접촉하고, 리쉬 디바이스(500)로부터 토큰을 수신한다. 이어서, 리쉬 디바이스(500)는, 이러한 상호작용의 일부로서, 브로커(20)와 통신하고, 토큰의 암호화 해시를 제공한다. DASB 클라이언트(22)가 브로커(20)와 통신할 때, DASB 클라이언트(22)는 브로커(20)에 토큰을 제공한다. 브로커(20)는 수신된 토큰으로부터 암호화 해시를 컴퓨팅하고, 이 컴퓨팅된 해시를 리쉬 디바이스(500)로부터 이전에 수신된 암호화 해시와 비교한다. 값들이 매칭하는 경우, 브로커(20)에 의해 수신된 통신은, 그렇지 않으면 안전하게 테더링 또는 리쉬되는, DASB 클라이언트(22)로부터 전달된 것으로 고려된다. 브로커(20)는 또한, DASB 클라이언트(22)로부터의 통신의 빈도를 계속 추적할 수 있다. DASB 클라이언트(22)가 특정된 시간 기간 내에 통신하는 것을 실패하는 경우, DASB 클라이언트(22)는, 브로커(20)에 의해, 기능하지 않는 것으로 마킹될 수 있다. 이러한 상황들 하에서, 프로세스의 수동 리셋이 개시되어, 고객/시스템 운영자가 DASB 클라이언트(22)의 소재를 확인하게 강제할 수 있다.
위의 설명들에서, 암호화 알고리즘들이 참조된다. 일부 실시예들에서, (예컨대, 세션 관리, 키 DNA 생성 등을 위한) 모든 암호화 알고리즘들은 CSPRNG(Cryptographically Secure Pseudo Random Number Generators)의 사용을 요구한다. 일부 실시예들에서, 본 개시내용의 시스템들 및 방법들은 운영 시스템(OS) 제공 툴들을 활용하여 이러한 수들을 생성한다. 그러나, 사용자 또는 시스템 소유자는 이들 자신의 커스텀 암호화 보안 난수 생성기를 사용하여 난수들을 생성하는 호출가능 프로세스들을 제공할 수 있다. 이러한 생성기는 REST, gRPC 등과 같은 호출 프로토콜들을 사용함으로써 해당 신뢰 환경에 액세스가능하게 될 수 있다. 다양한 배치 접근법들이 브로커(20)와의 액세스를 보안하기 위해 사용될 수 있다. 사용자 또는 시스템 소유자는 어떤 DASB 클라이언트 디바이스들/풀들이 어떤 생성기를 사용할지를 구성하여, 상이한 목적들을 위한 상이한 난수 생성기들의 사용을 용이하게 할 수 있다. 이러한 임의적인 접근법의 결과는 시스템(10)이 브로커(20)로의 난수들의 전달을 보호하기 위해 자신을 사용하는 것을 가능하게 할 수 있다. 예컨대, 특정 DASB 클라이언트는 시스템 제공 난수 생성기를 사용하도록 구성될 수 있고, 난수들을 안전하게 생성 및 전달하기 위해 생성기에 의해 사용되고; 브로커(20)는 수들을 복호화하기 위한 매칭 디바이스를 갖는다. 이어서, 브로커(20)는 이러한 난수들을 사용하도록 구성된 DASB 클라이언트들에 대해 이러한 난수들을 사용할 수 있다.
한 위치에서 높은 가용성 또는 더 큰 스케일(부하 균형으로 또한 지칭됨)을 용이하게 하기 위해, 백업 또는 다수의 활성 하드웨어 디바이스를 갖는 것이 일반적으로 사용되는 기법이다. 높은 가용성/부하 균형을 가능하게 하기 위해, 본 개시내용의 일부 비-제한적인 실시예들은 다수의 DASB 클라이언트로 구성되는 "노드"로 지칭되는 논리 유닛으로서 신뢰 통신의 엔드포인트(즉, 풀의 하나의 엔드)의 추상화를 생성할 수 있다. 도 11을 참조하면, 예컨대, DASB 클라이언트 A, DASB 클라이언트 B, DASB 클라이언트 C, 및 DASB 클라이언트 D는 모두 브로커(20)에 의해 관리되는 신뢰 환경의 임시 DASB 클라이언트 디바이스들이다. 추가로, DASB 클라이언트 A 및 DASB 클라이언트 B는 노드 "위치 1"의 멤버 DASB 클라이언트들로서 독립적으로 프로비저닝되는 반면, DASB 클라이언트 C 및 DASB 클라이언트 D는 노드 "위치 2"의 멤버 DASB 클라이언트들로서 독립적으로 프로비저닝된다. 노드 위치들 1 및 2는 브로커(20)에 가상적으로 존재하고; 독립적으로 프로비저닝 및 관리되면서, 2개의 노드, 즉, 위치 1과 위치 2 사이에서 브로커(20)에 풀(풀-Loc12)이 확립된다. 이러한 배열에서, 노드 위치 1을 구성하는 DASB 클라이언트들 중 임의의 것(즉, DASB 클라이언트 A 및 DASB 클라이언트 B)은 노드 위치 1에 대한 DASB 클라이언트로서 작동할 수 있다. 유사하게, 노드 위치 2를 구성하는 DASB 클라이언트들 중 임의의 것(즉, DASB 클라이언트 C 및 DASB 클라이언트 D)은 노드 위치 2에 대한 DASB 클라이언트로서 작동할 수 있다. 시스템의 소유자 또는 운영자는 브로커(20)에 이러한 논리 유닛들을 정의할 수 있고, 이러한 논리 유닛들에 필요한 DASB 클라이언트들을 할당한다. 신뢰 관계는 이러한 2개의 논리 유닛을 연결하는 풀을 정의함으로써 확립된다.
본 개시내용이 바람직한 실시예들을 참조하여 설명되었지만, 관련 기술분야의 통상의 기술자는 본 개시내용의 사상 및 범위로부터 벗어나지 않으면서 형태 및 세부사항에서 변경들이 이루어질 수 있다는 것을 인식할 것이다.

Claims (20)

  1. 전송자 클라이언트 디바이스와 수신자 클라이언트 디바이스 사이의 보안 전자 데이터 전송을 가능하게 하기 위한 방법으로서,
    상기 전송자 클라이언트 디바이스 및 상기 수신자 클라이언트 디바이스는 각각 컴퓨팅 디바이스를 포함하고, 상기 방법은,
    상기 전송자 클라이언트 디바이스에서 키 DNA 및 모니커(Moniker)를 수신하는 단계;
    브로커(broker) 디바이스에서 상기 키 DNA 및 상기 모니커를 저장하는 단계;
    상기 전송자 클라이언트 디바이스에서 상기 키 DNA에 기초하여 키를 생성하는 단계;
    암호화된 데이터를 생성하기 위해, 상기 키를 사용하여, 상기 전송자 클라이언트 디바이스 상에 저장된 데이터를 암호화하는 단계;
    상기 전송자 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로 상기 암호화된 데이터 및 상기 모니커를 전자적으로 전송하는 단계;
    상기 수신자 클라이언트 디바이스에 의해 상기 브로커 디바이스로 상기 모니커를 전달하는 단계;
    상기 수신자 클라이언트 디바이스에 의해 상기 브로커 디바이스로부터 상기 키 DNA를 수신하는 단계;
    상기 수신자 클라이언트 디바이스에서 상기 키 DNA에 기초하여 상기 키를 생성하는 단계; 및
    상기 수신자 클라이언트 디바이스에 의해 상기 키를 사용하여 상기 암호화된 데이터를 복호화하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 데이터를 암호화하는 단계 후에, 상기 전송자 클라이언트 디바이스로부터 상기 키를 제거하는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 암호화된 데이터를 복호화하는 단계 후에, 상기 수신자 클라이언트 디바이스로부터 상기 키를 제거하는 단계를 더 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 전송자 클라이언트 디바이스에서 브로커 디바이스로부터 키 DNA 및 모니커를 수신하는 단계 전에, 상기 방법은
    상기 전송자 클라이언트 디바이스로부터 상기 브로커 디바이스로 키 DNA에 대한 요청을 전달하는 단계; 및
    상기 키 DNA에 대한 요청을 승인 또는 거절하도록 상기 브로커 디바이스를 동작시키는 단계
    를 더 포함하는, 방법.
  5. 제4항에 있어서,
    상기 요청을 승인 또는 거절하도록 상기 브로커 디바이스를 동작시키는 단계 후에, 상기 방법은
    상기 전송자 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로의 데이터의 의도된 전송의 검증을 위한 요청을 상기 브로커 디바이스로부터 인터셉터 디바이스로 전달하는 단계; 및
    상기 검증을 위한 요청을 승인 또는 거절하도록 상기 인터셉터 디바이스를 동작시키는 단계
    를 더 포함하는, 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 전송자 클라이언트 디바이스로부터 제2 수신자 클라이언트 디바이스로 상기 암호화된 데이터 및 상기 모니커를 전자적으로 전송하는 단계;
    상기 제2 수신자 클라이언트 디바이스에 의해 상기 브로커 디바이스로 상기 모니커를 전달하는 단계;
    상기 제2 수신자 클라이언트 디바이스에 의해 상기 브로커 디바이스로부터 상기 키 DNA를 수신하는 단계;
    상기 제2 수신자 클라이언트 디바이스에서 상기 키 DNA에 기초하여 상기 키를 생성하는 단계; 및
    상기 제2 수신자 클라이언트 디바이스에 의해 상기 키를 사용하여 상기 암호화된 데이터를 복호화하는 단계
    를 더 포함하는, 방법.
  7. 제6항에 있어서,
    미리 결정된 규칙들에 기초하여, 상기 브로커 디바이스로부터 상기 키 DNA 및 상기 모니커를 삭제하는 단계를 더 포함하는, 방법.
  8. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 브로커 디바이스가 상기 전송자 클라이언트 디바이스 또는 상기 수신자 클라이언트 디바이스로부터 상기 키 DNA에 대한 요청을 수신한 것을 나타내는 정보를 상기 브로커 디바이스에서 로깅(logging)하는 단계를 더 포함하는, 방법.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 키 DNA 및 상기 모니커는 상기 브로커 디바이스에 의해 생성되는, 방법.
  10. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 모니커는 상기 전송자 클라이언트 디바이스에 의해 생성되는, 방법.
  11. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 키 DNA의 적어도 일부는 상기 전송자 클라이언트 디바이스에 의해 생성되는, 방법.
  12. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 키 DNA의 일부는 상기 전송자 클라이언트 디바이스에 의해 생성되고,
    상기 전송자 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로 상기 암호화된 데이터 및 상기 모니커를 전자적으로 전송하는 단계는, 상기 전송자 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로 상기 키 DNA의 일부를 전자적으로 전송하는 단계를 더 포함하는, 방법.
  13. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 전자 데이터 전송은 상기 전송자 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로의 스트리밍 통신의 일부이고, 상기 키 DNA는 제1 키 DNA이고, 상기 키는 제1 키이고, 데이터는 상기 스트리밍 통신의 데이터의 제1 패킷이고, 상기 암호화된 데이터는 상기 스트리밍 통신의 암호화된 데이터의 제1 패킷이고,
    추가로, 상기 전송자 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로 상기 암호화된 데이터의 제1 패킷 및 상기 모니커를 전자적으로 전송하는 단계 후에, 상기 방법은,
    상기 전송자 클라이언트 디바이스에서 제2 키 DNA를 수신하는 단계 ― 상기 제2 키 DNA는 상기 제1 키 DNA와 상이함 ―;
    상기 전송자 클라이언트 디바이스에서 상기 제2 키 DNA에 기초하여 제2 키를 생성하는 단계;
    암호화된 데이터의 제2 패킷을 생성하기 위해, 상기 제2 키를 사용하여, 상기 스트리밍 통신의 데이터의 제2 패킷을 암호화하는 단계;
    상기 전송자 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로 상기 암호화된 데이터의 제2 패킷을 전자적으로 전송하는 단계;
    상기 수신자 클라이언트 디바이스에 의해 상기 브로커 디바이스로부터 상기 제2 키 DNA를 수신하는 단계;
    상기 수신자 클라이언트 디바이스에서 상기 제2 키 DNA에 기초하여 상기 제2 키를 생성하는 단계; 및
    상기 수신자 클라이언트 디바이스에 의해 상기 제2 키를 사용하여 상기 암호화된 데이터의 제2 패킷을 복호화하는 단계
    를 더 포함하는, 방법.
  14. 제13항에 있어서,
    상기 스트리밍 통신의 과정 동안 상기 제1 키 DNA로부터 상기 제2 키 DNA로의 변경 타이밍은 상기 전송자 클라이언트 디바이스에서 키 교체 규칙으로서 저장되는, 방법.
  15. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 브로커 디바이스와 상기 전송자 클라이언트 디바이스 및 상기 수신자 클라이언트 디바이스 각각 사이의 통신들은 보안되는, 방법.
  16. 제15항에 있어서,
    비대칭 암호화 알고리즘을 사용하여 제1 개인/공개 키 쌍 및 제2 개인/공개를 생성하도록 상기 브로커 디바이스를 동작시키는 단계;
    상기 전송자 클라이언트 디바이스로 상기 제1 공개 키를 전달하는 단계;
    상기 수신자 클라이언트 디바이스로 상기 제2 공개 키를 전달하는 단계;
    대칭 키를 생성하도록 상기 전송자 클라이언트 디바이스를 동작시키는 단계;
    상기 제1 공개 키를 사용하여 상기 대칭 키를 암호화하도록 상기 전송자 클라이언트 디바이스를 동작시키는 단계;
    상기 대칭 키를 사용하여 상기 브로커 디바이스로의 통신을 암호화하도록 상기 전송자 클라이언트 디바이스를 동작시키는 단계;
    상기 전송자 클라이언트 디바이스로부터 상기 브로커 디바이스로 암호화된 대칭 키 및 암호화된 통신을 전달하는 단계;
    상기 공개 키를 사용하여 상기 암호화된 대칭 키를 복호화하도록 상기 브로커 디바이스를 동작시키는 단계; 및
    복호화된 대칭 키를 사용하여 상기 암호화된 통신을 복호화하도록 상기 브로커 디바이스를 동작시키는 단계
    를 더 포함하는, 방법.
  17. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 전송자 클라이언트 디바이스 및 상기 수신자 클라이언트 디바이스에서 적어도 제1 암호화 알고리즘 및 제2 암호화 알고리즘, 및 대응하는 제1 표시자 및 제2 표시자를 확립하는 단계; 및
    상기 브로커 디바이스에서 상기 제1 표시자 및 상기 제2 표시자를 확립하는 단계
    를 더 포함하고,
    상기 전송자 클라이언트 디바이스에서 키 DNA를 수신하는 단계는, 상기 제1 표시자와 상기 제2 표시자 중 하나를 수신하는 단계를 더 포함하고,
    상기 전송자 클라이언트 디바이스에서 키를 생성하는 단계는, 상기 제1 표시자와 상기 제2 표시자 중 수신된 것과 관련된 상기 제1 암호화 알고리즘 또는 상기 제2 암호화 알고리즘에 추가로 기초하고,
    상기 수신자 클라이언트 디바이스에서 상기 키 DNA를 수신하는 단계는, 상기 브로커 디바이스로부터 상기 제1 표시자와 상기 제2 표시자 중 하나를 수신하는 단계를 더 포함하고,
    상기 수신자 클라이언트 디바이스에서 상기 키를 생성하는 단계는, 상기 제1 표시자와 상기 제2 표시자 중 수신된 것과 관련된 상기 제1 암호화 알고리즘 또는 상기 제2 암호화 알고리즘에 추가로 기초하는, 방법.
  18. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 브로커 디바이스는 상기 전송자 클라이언트 디바이스 및 상기 수신자 클라이언트 디바이스를 포함하는 신뢰 환경에서의 동작들을 관리하는 제1 브로커 디바이스이고, 상기 신뢰 환경은 상기 신뢰 환경에서의 동작들을 관리하는 제2 브로커 디바이스를 더 포함하고, 상기 방법은,
    상기 제1 브로커 디바이스로부터 상기 제2 브로커 디바이스로 상기 전송자 클라이언트 디바이스의 관리를 핸드오프(handing off)하는 단계를 더 포함하는, 방법.
  19. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 전송자 클라이언트 디바이스 및 상기 브로커 디바이스는 상기 전송자 클라이언트 디바이스로부터의 통신들이 상기 브로커 디바이스에 의해 관리되는 신뢰 환경에서 동작하고, 상기 방법은,
    상기 전송자 클라이언트 디바이스에 리쉬(leash) 디바이스를 전자적으로 링크하는 단계;
    상기 전송자 클라이언트 디바이스에 의해 상기 리쉬 디바이스로부터 토큰을 수신하는 단계;
    상기 브로커 디바이스로 상기 토큰의 암호화 해시를 전송하도록 상기 리쉬 디바이스를 동작시키는 단계;
    상기 브로커 디바이스에서 통신을 수신하는 단계 ― 상기 통신은 가능하게는 상기 전송자 클라이언트 디바이스로부터 전송되고 토큰을 포함함 ―;
    수신된 통신에 응답하여, 수신된 토큰으로부터 암호화 해시를 컴퓨팅하도록 상기 브로커 디바이스를 동작시키는 단계;
    컴퓨팅된 암호화 해시를 상기 리쉬 디바이스로부터 수신된 암호화 해시와 비교하도록 상기 브로커 디바이스를 동작시키는 단계; 및
    상기 브로커 디바이스에 의해, 상기 비교에 기초하여, 상기 수신된 통신이 상기 전송자 클라이언트 디바이스로부터 전달되었는지를 결정하는 단계
    를 더 포함하는, 방법.
  20. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 전송자 클라이언트 디바이스는 제1 노드에 프로비저닝되고(provisioned), 상기 수신자 클라이언트 디바이스는 제2 노드에 프로비저닝되고, 상기 제1 노드 및 상기 제2 노드는 상기 브로커 디바이스에서 가상적으로 확립되고, 추가로, 상기 제1 노드 및 상기 제2 노드는 상기 브로커 디바이스에서 확립된 풀(pool)에 의해 링크되는, 방법.
KR1020217027498A 2019-01-28 2020-01-28 보안 전자 데이터 전송을 위한 시스템 및 방법 KR102413497B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962797439P 2019-01-28 2019-01-28
US62/797,439 2019-01-28
PCT/US2020/015448 WO2020219136A2 (en) 2019-01-28 2020-01-28 System and method for secure electronic data transfer

Publications (2)

Publication Number Publication Date
KR20210109667A KR20210109667A (ko) 2021-09-06
KR102413497B1 true KR102413497B1 (ko) 2022-06-24

Family

ID=71732851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217027498A KR102413497B1 (ko) 2019-01-28 2020-01-28 보안 전자 데이터 전송을 위한 시스템 및 방법

Country Status (9)

Country Link
US (1) US11165568B2 (ko)
EP (1) EP3918749A4 (ko)
JP (1) JP2022523068A (ko)
KR (1) KR102413497B1 (ko)
CN (1) CN113647051A (ko)
AU (1) AU2020260951A1 (ko)
CA (1) CA3128161A1 (ko)
IL (1) IL285176A (ko)
WO (1) WO2020219136A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174100B (zh) * 2022-06-21 2024-04-12 武汉理工大学 一种针对gRPC数据的密码处理方法及系统
CN115643017B (zh) * 2022-12-23 2023-03-31 云加速(北京)科技有限公司 一种基于混合编码模型的软件标识有效性校验方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084570A1 (en) 2010-09-30 2012-04-05 Microsoft Corporation Remote Resources Single Sign On
US20140351586A1 (en) 2012-02-20 2014-11-27 Lock Box Pty Ltd Cryptographic method and system
US20150319151A1 (en) 2014-05-01 2015-11-05 At&T Intellectual Property I, Lp Apparatus and method for secure delivery of data utilizing encryption key management
US20160241390A1 (en) 2015-02-17 2016-08-18 Visa International Service Association Cloud Encryption Key Broker Apparatuses, Methods and Systems

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455862A (en) * 1993-12-02 1995-10-03 Crest Industries, Inc. Apparatus and method for encrypting communications without exchanging an encryption key
JP3595109B2 (ja) * 1997-05-28 2004-12-02 日本ユニシス株式会社 認証装置、端末装置、および、それら装置における認証方法、並びに、記憶媒体
EP1075108A1 (en) * 1999-07-23 2001-02-07 BRITISH TELECOMMUNICATIONS public limited company Cryptographic data distribution
US7272230B2 (en) 2001-04-18 2007-09-18 Pumpkin House Incorporated Encryption system and control method thereof
JP2003110576A (ja) * 2001-09-26 2003-04-11 Toshiba Corp 無線ネットワークシステム、無線ネットワークの管理方法、及び、コンピュータで実行可能な無線ネットワークの管理プログラム
US9544297B2 (en) * 2002-03-08 2017-01-10 Algorithmic Research Ltd. Method for secured data processing
US8239446B2 (en) * 2003-11-19 2012-08-07 Sony Computer Entertainment America Llc Content distribution architecture
US9158467B2 (en) * 2006-02-21 2015-10-13 Spectra Logic Corporation Optional data encryption by partition for a partitionable data storage library
EP1865656A1 (en) * 2006-06-08 2007-12-12 BRITISH TELECOMMUNICATIONS public limited company Provision of secure communications connection using third party authentication
US7971017B1 (en) 2006-08-21 2011-06-28 Rockwell Automation Technologies, Inc. Memory card with embedded identifier
US8412947B2 (en) * 2006-10-05 2013-04-02 Ceelox Patents, LLC System and method of secure encryption for electronic data transfer
EP2485453B1 (en) * 2009-02-19 2016-04-20 SecureKey Technologies Inc. Method for online authentication
US8588410B2 (en) * 2009-04-06 2013-11-19 Elster Electricity, Llc Simplified secure symmetrical key management
CN101989984A (zh) * 2010-08-24 2011-03-23 北京易恒信认证科技有限公司 电子文件安全共享系统及方法
US8850543B2 (en) 2012-12-23 2014-09-30 Mcafee, Inc. Hardware-based device authentication
US20160125416A1 (en) 2013-05-08 2016-05-05 Acuity Systems, Inc. Authentication system
WO2014196969A1 (en) 2013-06-05 2014-12-11 American Express Travel Related Services Company, Inc. System and method for multi-factor mobile user authentication
US9344407B1 (en) 2013-09-05 2016-05-17 Amazon Technologies, Inc. Centrally managed use case-specific entity identifiers
JP2015056861A (ja) * 2013-09-13 2015-03-23 株式会社東芝 復号装置、暗号化装置、方法、プログラム、記録媒体および製造方法
CN103561044B (zh) * 2013-11-20 2017-06-27 无锡儒安科技有限公司 数据传输方法和数据传输系统
US20150278545A1 (en) 2014-03-28 2015-10-01 Aruba Networks, Inc. Anonymization of client data
CN104023013B (zh) * 2014-05-30 2017-04-12 上海帝联信息科技股份有限公司 数据传输方法、服务端和客户端
US9576149B2 (en) * 2014-06-13 2017-02-21 BicDroid Inc. Methods, systems and computer program product for providing verification code recovery and remote authentication
SE539271C2 (en) * 2014-10-09 2017-06-07 Kelisec Ab Mutual authentication
US10320785B2 (en) 2015-02-16 2019-06-11 Knectiq Inc. Method of protecting the identifying information of persons and computing devices, specifically those devices which are capable of sensing, capturing, receiving, transmitting, processing and storing digital information
US10020940B2 (en) 2015-02-23 2018-07-10 Oracle International Corporation Identity-based encryption for securing access to stored messages
KR102460096B1 (ko) 2015-05-27 2022-10-27 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US9705859B2 (en) * 2015-12-11 2017-07-11 Amazon Technologies, Inc. Key exchange through partially trusted third party
EP3340094B1 (en) 2016-12-22 2021-04-28 Mastercard International Incorporated Method for renewal of cryptographic whiteboxes under binding of new public key and old identifier
US10116443B1 (en) 2018-02-02 2018-10-30 ISARA Corporation Pairing verification in supersingular isogeny-based cryptographic protocols

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084570A1 (en) 2010-09-30 2012-04-05 Microsoft Corporation Remote Resources Single Sign On
US20140351586A1 (en) 2012-02-20 2014-11-27 Lock Box Pty Ltd Cryptographic method and system
US20150319151A1 (en) 2014-05-01 2015-11-05 At&T Intellectual Property I, Lp Apparatus and method for secure delivery of data utilizing encryption key management
US20160241390A1 (en) 2015-02-17 2016-08-18 Visa International Service Association Cloud Encryption Key Broker Apparatuses, Methods and Systems

Also Published As

Publication number Publication date
US11165568B2 (en) 2021-11-02
WO2020219136A3 (en) 2020-12-30
KR20210109667A (ko) 2021-09-06
JP2022523068A (ja) 2022-04-21
CA3128161A1 (en) 2020-10-29
WO2020219136A2 (en) 2020-10-29
AU2020260951A1 (en) 2021-09-09
US20200244447A1 (en) 2020-07-30
EP3918749A2 (en) 2021-12-08
IL285176A (en) 2021-09-30
CN113647051A (zh) 2021-11-12
EP3918749A4 (en) 2022-10-26
US20220060321A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
US9537864B2 (en) Encryption system using web browsers and untrusted web servers
US8196186B2 (en) Security architecture for peer-to-peer storage system
KR101265873B1 (ko) 분산된 단일 서명 서비스 방법
US8059818B2 (en) Accessing protected data on network storage from multiple devices
US11902262B2 (en) System and method for encryption, storage and transmission of digital information
US11349646B1 (en) Method of providing secure communications to multiple devices and multiple parties
KR101648364B1 (ko) 대칭키 암호화와 비대칭키 이중 암호화를 복합적으로 적용한 암/복호화 속도개선 방법
EP4096147A1 (en) Secure enclave implementation of proxied cryptographic keys
EP4096160A1 (en) Shared secret implementation of proxied cryptographic keys
CA3149910A1 (en) Advanced security control implementation of proxied cryptographic keys
KR102413497B1 (ko) 보안 전자 데이터 전송을 위한 시스템 및 방법
US11888822B1 (en) Secure communications to multiple devices and multiple parties using physical and virtual key storage
US11804957B2 (en) Exporting remote cryptographic keys
US11870899B2 (en) Secure device access recovery based on validating encrypted target password from secure recovery container in trusted recovery device
US12003620B2 (en) System and method for secure electronic data transfer
KR20140004703A (ko) 제어된 보안 도메인
KR102544084B1 (ko) 보안 인스턴트 메시징 방법 및 장치
JP7433620B1 (ja) 通信方法、通信装置及びコンピュータプログラム
EP4047871A1 (en) Advanced security control implementation of proxied cryptographic keys
CN106921623B (zh) 标识密钥更新方法及系统

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
GRNT Written decision to grant