KR20230036032A - 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법 및 시스템 - Google Patents

처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법 및 시스템 Download PDF

Info

Publication number
KR20230036032A
KR20230036032A KR1020220087965A KR20220087965A KR20230036032A KR 20230036032 A KR20230036032 A KR 20230036032A KR 1020220087965 A KR1020220087965 A KR 1020220087965A KR 20220087965 A KR20220087965 A KR 20220087965A KR 20230036032 A KR20230036032 A KR 20230036032A
Authority
KR
South Korea
Prior art keywords
key
secure
random key
data
encrypted
Prior art date
Application number
KR1020220087965A
Other languages
English (en)
Other versions
KR102616291B1 (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 KR20230036032A publication Critical patent/KR20230036032A/ko
Application granted granted Critical
Publication of KR102616291B1 publication Critical patent/KR102616291B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/606Protecting data by securing the transmission between two devices or processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

데이터를 처리하도록 구성된 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 비일시적 컴퓨터 판독가능 저장 매체, 보안 애플리케이션 프레임워크, 시스템 및 컴퓨터 구현 방법이 개시된다. 이 방법은 신뢰할 수 있는 실행 환경에서 실행되는 보안 애플리케이션 프레임워크 내에서 수행되는 단계를 포함한다. 제1 랜덤 키를 사용하여 암호화된 데이터를 수신하고, 제1 랜덤 키는 안전한 방식으로 수신되고, 암호화된 데이터를 제1 랜덤 키를 사용하여 복호화된다. 그런 다음, 데이터가 처리 애플리케이션에 입력되고, 처리 애플리케이션이 입력된 데이터를 처리하기 위해 실행되며, 출력 데이터가 처리 애플리케이션으로부터 수신된다. 제2 랜덤 키가 생성되고, 출력 데이터는 제2 랜덤 키를 사용하여 암호화되고, 제2 랜덤 키는 저장 장치의 공개 키를 사용하여 암호화되고, 암호화된 출력 데이터 및 암호화된 제2 랜덤 키는 저장 장치로 전송된다.

Description

처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법 및 시스템{METHOD AND SYSTEM FOR ENABLING SECURE PROCESSING OF DATA USING A PROCESSING APPLICATION}
본 발명은 암호화된 데이터의 안전한 처리에 관한 것으로, 특히 신뢰할 수 없는 처리 애플리케이션을 사용할 때 데이터의 안전한 처리를 가능하게 하는 것에 관한 것이다. 이러한 안전한 처리는 신뢰할 수 있는 실행 환경에서 실행되는 보안 애플리케이션 프레임워크에 의해 신뢰할 수 없는 처리 애플리케이션을 실행함으로써 가능하다.
카메라에 캡처되어 암호화된 형식으로 저장된 비디오 데이터 또는 기타 이미지 데이터와 같은 암호화된 데이터를 승인된 당사자가 처리하려는 애플리케이션들에서 보안이 보장되지 않는 애플리케이션을 처리할 때 보안 문제가 발생한다. 예를 들어, 암호화된 데이터는 처리 애플리케이션을 실행하기 전에 먼저 복호화(해독)되어야 하므로 처리 애플리케이션이 승인되지 않은 당사자가 복호화된 데이터에 액세스할 수 있도록 하지 않는다는 것은 보장할 수 없다. 또한, 보안을 보장하기 위해 처리 애플리케이션을 조정하는 것이 어렵거나 번거롭거나 허용되지 않을 수도 있다. 처리 애플리케이션이 복호화 없이 암호화된 데이터를 처리하고 암호화된 결과를 제공할 수 있는 동형 암호화를 사용하는 솔루션이 제안되었다. 그러나, 이러한 솔루션은 계산량이 많고 모든 알고리즘에 적용할 수 없다.
본 발명의 목적은 알려진 방법들 및 시스템들의 문제를 극복하거나 완화하는 데이터를 처리하도록 구성된 신뢰할 수 없는 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 컴퓨터 구현 방법, 보안 애플리케이션 프레임워크, 및 시스템을 제공하는 것이다.
제1 양태에 따르면, 데이터를 처리하도록 구성된 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하기 위한 컴퓨터 구현 방법이 제공된다. 이 방법은 신뢰할 수 있는 실행 환경에서 실행되는 보안 애플리케이션 프레임워크 내에서 수행되며, 제1 랜덤 키를 사용하여 암호화된 데이터를 수신하는 단계, 안전한 방식으로 제1 랜덤 키를 수신하고, 제1 랜덤 키를 사용하여 암호화된 데이터를 복호화하여 데이터를 획득하는 단계를 포함한다. 이 방법은 데이터를 처리 애플리케이션에 입력하는 단계, 입력된 데이터를 처리하기 위해 처리 애플리케이션을 실행하는 단계, 및 처리 애플리케이션으로부터 출력 데이터를 수신하는 단계를 더 포함한다. 이 방법은 제2 랜덤 키를 생성하는 단계, 제2 랜덤 키를 사용하여 출력 데이터를 암호화하는 단계, 저장 장치의 공개 키를 사용하여 제2 랜덤 키를 암호화하는 단계, 암호화된 출력 데이터 및 암호화된 제2 랜덤 키를 저장 장치로 전송하는 단계를 더 포함한다.
신뢰할 수 있는 실행 환경은 처리 장치의 보안 환경이다. 신뢰할 수 있는 실행 환경은 표준 운영 체제와 같은 신뢰할 수 없는 실행 환경과 관련하여 향상된 보안 수준을 제공하는 실행 공간을 제공한다. 신뢰할 수 있는 실행 환경에서 실행되는 애플리케이션은 코드와 애플리케이션의 모든 데이터의 프라이버시가 보장되도록 격리된다.
보안 애플리케이션 프레임워크는 처리 애플리케이션에 대한 모든 입력 및 출력을 제어하도록 구성된다. 신뢰할 수 있는 실행 환경에서 보안 애플리케이션 프레임워크를 실행하여, 복호화된 데이터가 처리 애플리케이션에서 신뢰할 수 있는 실행 환경 외부로 누출되지 않도록 보장될 수 있다.
안전한 방식으로 제1 랜덤 키를 수신한다는 것은 제1 랜덤 키의 프라이버시가 보호되는 방식으로, 즉 제1 랜덤 키가 비암호화된 형태로 승인되지 않은 당사자에게 누출되지 않는 방식으로 제1 랜덤 키가 수신된다는 것을 의미한다. 이것은 예를 들어 암호화된 형태로 또는 보안 채널을 통해 제1 랜덤 키를 수신함으로써 달성될 수 있다.
제2 양태에 따르면, 처리 능력을 갖는 시스템에 의해 실행될 때, 제1 양태에 따른 방법을 구현하기 위한 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체가 제공된다.
제3 양태에 따르면, 신뢰할 수 있는 실행 환경에서 실행되도록 구성된 보안 애플리케이션 프레임워크가 제공된다. 보안 애플리케이션 프레임워크는 제1 랜덤 키를 사용하여 암호화된 데이터를 수신하도록 구성된 암호화된 데이터 수신 기능, 제1 랜덤 키를 안전한 방식으로 수신하도록 구성된 보안 키 수신 기능, 및 제1 랜덤 키를 사용하여 암호화된 데이터를 복호화하여 데이터를 획득하도록 구성된 데이터 복호화 기능을 포함하도록 구성된다. 보안 애플리케이션 프레임워크는 처리 애플리케이션에 데이터를 입력하도록 구성된 입력 기능, 입력된 데이터를 처리하기 위해 처리 애플리케이션을 실행하도록 구성된 실행 기능, 및 처리 애플리케이션으로부터 출력 데이터를 수신하도록 구성된 출력 데이터 수신 기능을 실행하도록 추가로 구성된다. 보안 애플리케이션 프레임워크는 제2 랜덤 키를 생성하도록 구성된 제2 랜덤 키 생성 기능, 제2 랜덤 키를 사용하여 출력 데이터를 암호화하는 출력 데이터 암호화 기능, 저장 장치의 공개 키를 사용하여 제2 랜덤 키를 암호화하는 제2 랜덤 키 암호화 기능, 그리고, 암호화된 출력 데이터 및 암호화된 제2 랜덤 키를 저장 장치로 전송하도록 구성된 암호화된 출력 데이터 전송 기능을 실행하도록 추가로 구성된다.
제4 양태에 따르면, 제2 양태에 따른 보안 애플리케이션 프레임워크, 및 보안 모듈을 포함하는 장치를 포함하는 시스템이 제공된다. 보안 모듈은 저장 장치에 대한 개인/공개 키 쌍을 생성하도록 구성된 저장 장치 키 생성 기능, 저장 장치의 공개 키를 사용하여 암호화된 제1 랜덤 키를 수신하는 암호화 키 수신 기능, 저장 장치의 개인 키를 사용하여 제1 랜덤 키를 복호화하는 제1 랜덤 키 복호화 기능, 그리고 보안 애플리케이션 프레임워크에 안전한 방식으로 제1 랜덤 키를 전송하도록 구성된 보안 키 전송 기능을 실행하도록 구성된다.
본 발명의 적용 가능성의 추가 범위는 하기에 주어진 상세한 설명으로부터 명백해질 것이다. 그러나, 본 발명의 범위 내에서 다양한 변경 및 수정이 이 상세한 설명으로부터 당업자에게 명백해질 것이기 때문에, 상세한 설명 및 특정 예들은 본 발명의 바람직한 실시예들을 나타내며, 단지 예시로서 제공된다는 것을 이해해야 한다.
따라서, 본 발명은 설명된 시스템의 특정 구성 부품들 또는 설명된 방법의 동작들로 제한되지 않음을 이해해야 한다. 또한, 본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위한 것이며 한정하려는 의도가 아님을 이해해야 한다. 명세서 및 첨부된 청구범위에 사용된 바와 같이 단수 표현 및 "상기"는 문맥이 달리 명시하지 않는 한, 하나 이상의 요소들이 있음을 의미한다는 점에 유의해야 한다. 따라서, 예를 들어 "유닛" 또는 "상기 유닛"에 대한 언급은 여러 장치 등을 포함할 수 있다. 또한, "포함하는" 및 유사한 문구는 다른 요소 또는 단계를 배제하지 않는다.
본 발명의 상기 및 기타 양태들은 이제 첨부된 도면들을 참조하여 보다 상세하게 설명될 것이다. 도면들은 제한적인 것으로 간주되어서는 안 되며 대신 설명 및 이해를 위해 사용된다. 동일한 참조 번호는 전체에 걸쳐 동일한 요소를 지칭한다.
도 1은 본 발명의 실시예들이 구현될 수 있는 예시적인 시스템의 개략적인 블록도이다.
도 2는 데이터를 처리하도록 구성된 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법의 실시예의 흐름도이다.
도 3은 데이터를 처리하도록 구성된 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법의 실시예의 시그널링(signalling) 다이어그램이다.
도 4는 신뢰할 수 있는 실행 환경에서 실행되도록 구성된 보안 애플리케이션 프레임워크의 실시예들의 개략적인 블록도이다.
도 5는 데이터를 처리하도록 구성된 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 시스템의 실시예들의 개략적인 블록도이다.
본 발명은 이제 본 발명의 현재 바람직한 실시예들이 도시된 첨부 도면들을 참조하여 이하에서 더욱 완전하게 설명될 것이다. 그러나, 본 발명은 여러 가지 상이한 형태들로 구현될 수 있으며 여기에서 설명하는 실시예들에 한정되는 것으로 해석되어서는 안 된다. 오히려, 이들 실시예는 철저성과 완전성을 위해 그리고 본 발명의 범위를 당업자에게 전달하기 위해 제공된다.
도 1은 본 발명의 실시예들이 구현될 수 있는 예시적인 시스템의 개략적인 블록도이다. 비디오 데이터 또는 기타 이미지 데이터 형태의 데이터는 카메라(100)에서 캡처되고 랜덤 키에 의해 암호화된다. 암호화된 데이터는 카메라(100)로부터 카메라(100) 또는 다른 위치에 위치할 수 있는 저장 장치(110)로 전송되어 저장 장치(110)에 저장된다. 데이터는 랜덤 키로 암호화되어 저장 장치(110)를 운용하는 당사자와 카메라(100)를 소유한 당사자가 다르더라도 데이터를 안전하게 저장 장치(110)에 저장할 수 있다. 또한, 카메라(100)는 저장 장치(110)에 대한 개인/공개 키 쌍이 생성되고 보안 모듈(145)을 포함하는 제2 장치(140)에 연결되고, 저장 장치(110)에 대한 개인/공개 키 쌍의 공개 키는 제2 장치(140)에서 카메라(100)로 제공된다. 그 다음, 카메라(100)는 저장 장치(110)에 대한 공개 키로 랜덤 키를 키 엔벨로프에 래핑(암호화)할 수 있다. 그런 다음, 키 엔벨로프(저장 장치(110)에 대한 공개 키로 암호화된 랜덤 키)가 저장 장치(110)로 전송되어 저장 장치(110)에 저장된다. 그러면 랜덤 키는 일반적으로 카메라(100)에서 폐기된다. 처리 애플리케이션(126)이 데이터를 처리하도록 구성된 경우, 예를 들어 데이터의 프라이버시가 보장될 수 없는 처리 애플리케이션(126)이 사용되는 데이터를 분석하거나 조정하는 경우, 보안 애플리케이션 프레임워크(125), 그리고 이와 관련된 방법 및 시스템의 실시예들이 도 2 내지 5와 관련하여 다음에서 기술된 바와 같이 제공된다. 보안 애플리케이션 프레임워크(125)는 제1 장치(120)에 위치할 수 있는 신뢰할 수 있는 실행 환경(122)에서 실행되도록 구성된다. 보안 애플리케이션 프레임워크(125)는 일반적으로 소프트웨어로 구현되고 신뢰할 수 있는 실행 환경(122)에서 실행된다. 보안 애플리케이션 프레임워크(125)는 신뢰할 수 있는 실행 환경(122)에서도 실행되는 처리 애플리케이션(126)의 실행을 담당한다. 보안 애플리케이션 프레임워크(125)는 신뢰할 수 있는 실행 환경(122) 외부에서 실행되는 애플리케이션 프레임워크(128)의 소프트웨어에 의해 로드(load)되고 개시된다.
저장 장치(110), 제1 장치(120) 및 제2 장치(140)가 별도의 장치일 필요는 없음에 유의해야 한다. 예를 들어, 보안 애플리케이션 프레임워크(125)는 저장 장치(110)의 일반 프로세서(미도시)의 보안 영역으로 구성된 신뢰할 수 있는 실행 환경(122)에서 실행될 수 있고, 제2 장치(140)는 저장 장치(110)의 프로세서에 연결된 저장 장치(110) 내의 별도의 칩일 수 있다.
데이터를 처리하도록 구성된 처리 애플리케이션(126)을 사용하여 데이터의 안전한 처리를 가능하게 하는 컴퓨터 구현 방법(200)의 실시예들이 이제 도 2와 관련하여 설명될 것이다. 방법의 실시예들은 예를 들어 도 1과 관련하여 설명된 시스템에서 구현될 수 있다.
방법(200)의 실시예들에 따르면, OP-TEE(open Portable TEE)와 같은 신뢰할 수 있는 실행 환경(122)에서 실행되는 보안 애플리케이션 프레임워크(125) 내에서 다음 단계들이 수행된다. 먼저, 제1 랜덤 키를 사용하여 암호화된 데이터를 수신한다(S210). 그런 다음, 보안 방식으로 제1 랜덤 키를 수신하고(S215), 제1 랜덤 키를 사용하여 암호화된 데이터를 복호화한다(S220). 이에 의해, 데이터가 복호화된 형태로 획득되고 처리 애플리케이션(126)에 입력된다(S225). 그 다음, 처리 애플리케이션(126)은 입력된 데이터를 처리하기 위해 실행된다(S230). 처리는 데이터 분석 또는 데이터 조정과 같은 모든 유형의 처리일 수 있다. 데이터는 예를 들어 비디오 데이터일 수 있다. 그런 다음, 분석은 움직임의 히트맵 생성을 위한 사람들의 움직임 분석과 관련될 수 있으며 조정은 예를 들어 픽셀화에 의한 얼굴의 마스킹일 수 있다.
처리 애플리케이션(126)은 보안 애플리케이션 프레임워크(125)에 의해 실행된다. 처리 애플리케이션(126)이 신뢰할 수 있는 실행 환경(122)에서 실행되고 있기 때문에, 제한된 수의 기능들만이 처리 애플리케이션(126)에 허용되고 이들은 보안 애플리케이션 프레임워크(125)에 의해 실행된다. 보안 애플리케이션 프레임워크(125)는 신뢰할 수 있는 실행 환경(122)에서 실행되기 때문에, 또한 보안 애플리케이션 프레임워크(125)에 의해 제어되는 것 이외의 어떤 데이터도 처리 애플리케이션(126)에서 신뢰할 수 있는 실행 환경(122) 외부로 제공될 수 없다는 것이 보장될 수 있다.
처리 애플리케이션(126)이 입력된 데이터를 처리하면, 처리 애플리케이션(126)으로부터의 출력 데이터가 수신된다(S235). 출력 데이터는 일반적으로 처리 결과를 포함한다. 그런 다음, 제2 랜덤 키가 생성되고(S240) 출력 데이터가 제2 랜덤 키를 사용하여 암호화된다(S245). 그런 다음, 저장 장치(110)의 공개 키를 사용하여 제2 랜덤 키를 암호화한다(S250). 이를 포뮬레이팅하는(formulating) 다른 방법은 제2 랜덤 키가 저장 장치(110)의 공개 키와 함께 키 엔벨로프에 래핑되는 것이다. 마지막으로, 암호화된 출력 데이터 및 암호화된 제2 랜덤 키는 저장을 위해 저장 장치(110)로 전송된다(S255).
도 2의 단계들의 순서는 반드시 순서도에 표시된 순서대로 수행되는 것은 아니라는 점에 유의해야 한다. 구체적으로, 이전 단계로부터의 입력에 의존하는 것으로 표시되지 않은 단계는 이전 단계 이전에 수행될 수 있다. 유사하게, 나중 단계에 출력을 제공하도록 표시되지 않은 단계는 그 나중 단계 이후에 수행될 수 있다.
보안 애플리케이션 프레임워크(125) 내에서 저장 장치(110)의 공개 키를 제공하기 위해 다른 장치, 예를 들어 보안 모듈(145)을 포함하는 장치(140)와 같이, 저장 장치(110)에 대한 개인/공개 키 쌍이 생성되는 장치에 요청이 이루어질 수 있다. 그 다음, 저장 장치(110)의 공개 키는 보안 애플리케이션 프레임워크(125)에서 수신된다.
보안 모듈(145)을 포함하는 장치(140)는 저장 장치(110) 내부의 기능 또는 칩과 같이 관련 애플리케이션에 의해 요구되는 보안 수준으로 민감한 데이터의 처리를 가능하게 하는 모듈을 포함하는 임의의 장치일 수 있다. 보안 모듈(145)은 공개 키 또는 기타 민감한 데이터가 승인되지 않은 당사자에게 누출되는 것을 방지하도록 개인/공개 키 쌍을 안전한 방식으로 관리할 수 있는 모듈이다. 구체적으로, 보안 모듈(145)은 개인/공개 키 쌍을 생성하고, 생성된 개인/공개 키 쌍의 공개 키로 암호화된 랜덤 키와 같은 데이터를 복호화하고, 복호화된 데이터를 안전한 방식으로 다른 장치로 전송할 수 있는 모듈이다. 안전한 방식으로 데이터를 전송한다는 것은 데이터의 프라이버시가 보호되는 방식으로 데이터가 전송됨을 의미한다.
보안 모듈(145)은, 예를 들면, 신뢰할 수 있는 플랫폼 모듈(trusted platform module; TPM) 또는 보안 요소(secure element; SE)일 수 있다. 보안 모듈(145)은 하드웨어나 소프트웨어, 또는 이들의 조합으로 구현될 수 있다.
보안 모듈(145)을 포함하는 장치(140) 내에서, 저장 장치(110)에 대한 개인/공개 키 쌍이 생성될 수 있다. 또한, 저장 장치(110)의 공개 키를 사용하여 암호화된 제1 랜덤 키는 예를 들어 저장 장치(110)로부터 수신될 수 있고, 보안 모듈(145)을 포함하는 장치(140)에서 저장 장치(110)의 개인 키를 사용하여 복호화될 수 있다. 그 다음, 제1 랜덤 키는 보안 애플리케이션 프레임워크(125)에 안전한 방식으로 전송될 수 있다.
보안 애플리케이션 프레임워크(125)에 안전한 방식으로 제1 랜덤 키를 전송하는 것은 예를 들어 암호화된 형태로 또는 보안 채널(미도시)을 통해 제1 랜덤 키를 전송함으로써 달성될 수 있다.
제1 랜덤 키를 암호화된 형태로 전송할 때, 처리 애플리케이션(126)을 위한 개인/공개 키 쌍은 먼저 신뢰할 수 있는 실행 환경(122)에서 실행되는 보안 애플리케이션 프레임워크(125)에서 생성된다. 처리 애플리케이션(126)의 공개 키는 보안 모듈(145)을 포함하는 장치(140)로 전송된다. 보안 모듈(145)을 포함하는 장치(140)에서, 제1 랜덤 키는 처리 애플리케이션(126)의 공개 키를 사용하여 암호화되고, 처리 애플리케이션(126)의 공개 키를 사용하여 암호화된 제1 랜덤 키는 보안 애플리케이션 프레임워크(125)로 전송된다. 보안 애플리케이션 프레임워크(125)에서, 제1 랜덤 키는 처리 애플리케이션(126)의 개인 키를 사용하여 복호화된다.
보안 채널을 통해 제1 랜덤 키를 전송할 때, 보안 모듈(145)을 포함하는 장치(140)와 신뢰할 수 있는 실행 환경(122)에서 실행되는 보안 애플리케이션 프레임워크(125) 사이의 통신을 위해 보안 채널이 설정될 수 있다. 그런 다음, 제1 랜덤 키는 보안 채널을 통해 신뢰할 수 있는 실행 환경(122)에서 실행되는 보안 애플리케이션 프레임워크(125)로 전송함으로써 안전한 방식으로 전송된다. 보안 채널은 채널에 대한 개인/공개 키 쌍을 생성하는 신뢰할 수 있는 실행 환경(122)에 의해 구현될 수 있다. 그 다음, 보안 모듈(145)을 포함하는 장치(140)는 채널에 대한 개인/공개 키 쌍의 공개 키로 데이터를 암호화할 수 있다. 대안적으로, 보안 모듈(145)을 포함하는 장치(140)는 채널에 대한 개인/공개 키 쌍의 공개 키를 사용하여 보안 모듈(145)을 포함하는 장치(140)에 의해 생성된 대칭 키를 암호화하고 암호화된 대칭 키를 신뢰할 수 있는 실행 환경(122)로 전송할 수 있다. 보안 채널을 사용하여 전송될 데이터는 대칭 키를 사용하여 암호화될 수 있다.
데이터를 처리하도록 구성된 처리 애플리케이션(126)을 사용하여 데이터의 안전한 처리를 가능하게 하기 위한 컴퓨터 구현 방법의 실시예들은 이제 방법과 관련하여 상이한 엔티티들 간의 시그널링(signalling)을 나타내는 도 3과 관련하여 설명될 것이다. 관련된 엔티티들은 저장 장치(110), 보안 모듈(145), 애플리케이션 프레임워크(128), 신뢰할 수 있는 실행 환경(122), 보안 애플리케이션 프레임워크(125) 및 처리 애플리케이션(126)이다.
방법의 실시예들은 예를 들어 도 1과 관련하여 설명된 시스템에서 구현될 수 있다. 그러한 경우에, 카메라(100)는 카메라(100)에서 생성된 제1 랜덤 키에 의해 비디오 데이터 또는 다른 이미지 데이터의 형태로 데이터를 캡처하고 암호화하였다. 저장 장치(110)에 대한 개인/공개 키 쌍이 장치, 예를 들어 보안 모듈(145)을 포함하는 장치(140)에서 생성되었으며, 저장 장치(110)에 대한 공개 키가 카메라(100)에 제공되었다. 그런 다음, 카메라(100)는 저장 장치(110)에 대한 공개 키를 사용하여 제1 랜덤 키를 암호화하고 바람직하게는 카메라(100)에서 더 이상 사용할 수 없도록 제1 랜덤 키를 폐기한다. 암호화된 데이터 및 암호화된 제1 랜덤 키는 이후 저장 장치(110)로 전송되어 저장 장치(110)에 저장된다. 복호화된 형식의 데이터에 접근하는 유일한 방법은 제1 랜덤 키를 복호화한 다음 제1 랜덤 키를 사용하여 암호화된 데이터를 복호화하는 것이다. 이를 위해서는 보안 모듈(145)에 보유된 저장 장치(110)의 개인 키에 대한 접근이 필요하다.
데이터의 프라이버시가 보장될 수 없는 처리 애플리케이션(126)에 의해 데이터가 처리되어야 할 때, 처리 애플리케이션(126)을 사용하여 이러한 데이터 처리를 시작하라는 요청이 애플리케이션 프레임워크(128)로 전송된다(301). 요청은 처리 애플리케이션(126)을 포함할 수 있거나 처리 애플리케이션(126)은 처리 애플리케이션(126)의 제공자의 장치와 같은 다른 장치로부터 다운로드될 수 있거나 이미 다운로드되었을 수 있다. 애플리케이션 프레임워크(128)는 일반적으로 보안 애플리케이션 프레임워크(125) 및 신뢰할 수 있는 실행 환경(122)과 동일한 장치에 구성된다. 그 다음, 애플리케이션 프레임워크(128)는 선택된 데이터에 대해 처리 애플리케이션(126)을 실행하기 위해 보안 애플리케이션 프레임워크(125)에 대한 명령을 준비하고(302), 또한 선택된 데이터에 대한 랜덤 키의 복호화 및 결과에 대한 랜덤 키의 암호화에 필요한 암호화 키를 사용하도록 보안 애플리케이션 프레임워크(125)를 구성한다. 이는 처리 애플리케이션(126)이 단지 데이터를 수신 및 제공할 수 있고 보안 애플리케이션 프레임워크(125)에 의해 개시되는 명령에 기초하여 실행될 수 있도록 처리 애플리케이션(126) 및 보안 애플리케이션 프레임워크(125)가 구성된다는 것을 의미한다.
이제, 데이터에 접근하기 위해서는 저장 장치(110)의 데이터를 암호화하는데 사용되는 제1 랜덤 키가 필요하고, 제1 랜덤 키는 저장 장치(110)의 개인 키를 사용하여 암호화되어 저장되므로, 제1 랜덤 키에 접근하기 위해서는 저장 장치(110)의 개인 키가 필요하다. 그러나, 안전한 방식으로 보안 애플리케이션 프레임워크(125)에 저장 장치(110)의 개인 키를 제공하는 대신에, 대안이 사용되어 보안 모듈(145) 외부에 저장 장치(110)의 개인 키를 제공할 필요 없이 데이터에 대한 액세스가 제공되도록 대안이 사용된다. 이는 보안 애플리케이션 프레임워크(125)가 액세스하도록 승인되지 않을 수 있는 다른 데이터를 암호화하는 데 저장 장치(110)의 개인 키가 사용될 수 있기 때문에 유익하다. 보안 모듈(145)로부터 보안 애플리케이션 프레임워크(125)로 제1 랜덤 키를 제공하는 제1 방법은 보안 채널을 사용하는 것이다. 제2 방법은 예를 들어 처리 애플리케이션(126)과 관련된 다른 개인/공개 키 쌍을 사용하여 암호화된 제1 랜덤 키를 전송하는 것이다. 이 두 가지 방법이 모두 위에서 설명되었다. 다음에서는 제2 방법에 따른 솔루션이 사용된다.
보안 애플리케이션 프레임워크(125)는 처리 애플리케이션(126)에 대한 개인/공개 키 쌍을 생성하도록 구성된다(303). 이 키 쌍은 처리 애플리케이션(126)에 대해 고유할 수 있거나 다수의 처리 애플리케이션에 대해 동일할 수 있다. 보안 애플리케이션 프레임워크(125)는 신뢰할 수 있는 실행 환경(122)에서 실행되도록 구성되므로 처리 애플리케이션(126)의 개인 키가 신뢰할 수 있는 실행 환경(122) 외부로 누출되지 않는 것이 보장될 수 있다. 처리 애플리케이션(126)에 대한 공개 키는 보안 애플리케이션 프레임워크(125)에서 보안 모듈(145)로 전송(304)된다. 보안 모듈은 처리 애플리케이션(126)을 위한 공개 키를 사용하여 제1 랜덤 키를 재포장(305)한다. 이는 보안 모듈(145)이 먼저 저장 장치(110)에 대한 개인 키를 사용하여 암호화된 제1 랜덤 키를 해독한 다음 처리 애플리케이션(126)에 대한 공개 키를 사용하여 제1 랜덤 키를 암호화한다는 것을 의미한다.
이제 처리 애플리케이션(126)이 실행될 수 있으므로 애플리케이션 프레임워크는 처리 애플리케이션(126)이 저장 장치(110)에 암호화된 저장된 데이터를 참조하여 실행되어야 함을 신뢰할 수 있는 실행 환경(122)에 표시한다(306). 신뢰할 수 있는 실행 환경(122)은 처리 애플리케이션(126)의 실행을 시작하기 위해 보안 애플리케이션 프레임워크(125)를 시작한다(307). 보안 애플리케이션 프레임워크(125)는 저장 장치(110)로부터 제1 랜덤 키로 암호화된 데이터를 수신하고(308) 보안 모듈(145)로부터 재래핑된(rewrapped) 제1 랜덤 키를 수신한다(309). 수신된 제1 랜덤 키는 처리 애플리케이션(126)을 위한 공개 키를 사용하여 재래핑되었기 때문에, 보안 애플리케이션 프레임워크(125)는 처리 애플리케이션(126)을 위한 개인 키를 사용하여 제1 랜덤 키를 해독할 수 있다(301). 제1 랜덤 키를 사용하여, 보안 애플리케이션 프레임워크(125)는 보안 애플리케이션 프레임워크(125)에 생성되고 보유된 제1 랜덤 키를 사용하여 데이터를 복호화할 수 있다(311). 그리고 나서, 복호화된 데이터는 처리 애플리케이션(126)에 제공되고(312), 처리 애플리케이션(126)은 신뢰할 수 있는 실행 환경(122)을 실행하는 보안 애플리케이션 프레임워크(125)에서 실행된다. 처리 애플리케이션(126)이 데이터를 처리하면, 처리의 결과를 포함하는 출력 데이터가 처리 애플리케이션(126)으로부터 보안 애플리케이션 프레임워크(125)에서 수신된다(313).
데이터뿐만 아니라 처리의 결과(출력 데이터)도 프라이버시(접근)가 통제되어야 하는 민감한 데이터일 수 있으므로, 출력 데이터는 또한 신뢰할 수 있는 실행 환경(122) 외부로 전송하기 전에 암호화되어야 한다. 구체적으로, 암호화는 저장 장치(110) 상의 원본 데이터에 접근하는 당사자만이 결과(출력 데이터)에 접근할 수 있도록 하는 것일 수 있다. 이를 위해 보안 애플리케이션 프레임워크(125)에서 제2 랜덤 키가 생성된다(314). 또한, 저장 장치(110)에 대한 공개 키는 보안 모듈(145)로부터 보안 애플리케이션 프레임워크(125)에서 수신되고(315), 제2 랜덤 키는 저장 장치(110)의 공개 키를 사용하여 암호화된다(키 파일에 래핑됨)(316). 암호화된 제2 랜덤 키(키 파일)는 그 다음으로 저장 장치(110)로 전송된다(317). 마지막으로, 출력 데이터는 제2 랜덤 키를 사용하여 암호화되고(318), 저장 장치(110)로 전송된다(319). 출력 데이터는 제2 랜덤 키를 사용하여 암호화되고 제2 랜덤 키는 저장 장치(110)의 공개 키를 사용하여 암호화되므로 저장 장치(110)의 원본 데이터에 액세스할 수 있는 당사자, 즉 저장 장치(110)에 대한 개인 키에 액세스할 수 있는 당사자만이 출력 데이터에 액세스할 수 있다.
도 1과 관련하여 설명된 신뢰할 수 있는 실행 환경과 같은 신뢰할 수 있는 실행 환경에서 실행되도록 구성된, 도 1과 관련하여 설명된 보안 애플리케이션 프레임워크(125)와 같은 보안 애플리케이션 프레임워크(425)의 실시예들이 이제 도4와 관련하여 설명된다. 보안 애플리케이션 프레임워크(425)의 실시예들은 예를 들어 도 1과 관련하여 설명된 시스템에서 구현될 수 있다.
실시예들에 따르면, 보안 애플리케이션 프레임워크(425)는 신뢰할 수 있는 실행 환경(122)에서 실행되도록 구성되고, 제1 랜덤 키를 사용하여 암호화된 데이터를 수신하도록 구성된 암호화된 데이터 수신 기능(430), 안전한 방식으로 제1 랜덤 키를 수신하도록 구성된 보안 키 수신 기능(432), 및 제1 랜덤 키를 사용하여 암호화된 데이터를 복호화하여 복호화된 형태의 데이터를 획득하도록 구성된 데이터 복호화 기?(434)를 실행하도록 구성된다. 보안 애플리케이션 프레임워크(425)는 데이터를 처리 애플리케이션(126)에 입력하도록 구성된 입력 기능(436), 입력된 데이터를 처리하기 위해 처리 애플리케이션(126)을 실행하도록 구성된 실행 기능(438), 및 처리 애플리케이션(126)으로부터 출력 데이터를 수신하도록 구성된 출력 데이터 수신 기능(440)을 실행하도록 추가로 구성된다. 보안 애플리케이션 프레임워크(425)는 제2 랜덤 키를 생성하도록 구성된 제2 랜덤 키 생성 기능(442), 제2 랜덤 키를 사용하여 출력 데이터를 암호화하도록 구성된 출력 데이터 암호화 기능(444), 저장 장치(110)의 공개 키를 사용하여 제2 랜덤 키를 암호화하도록 구성된 제2 랜덤 키 암호화 기능(446), 및 암호화된 출력 데이터 및 암호화된 제2 랜덤 키를 저장 장치(110)에 전송하도록 구성된 전송 기능(448)을 실행하도록 추가로 구성된다.
보안 키 수신 기능(432)에서 안전한 방식으로 제1 랜덤 키를 수신하기 위해, 보안 키 수신 기능은 예를 들어 암호화된 형태로 또는 보안 채널을 통해 제1 랜덤 키를 수신하도록 구성될 수 있다.
제1 랜덤 키가 암호화된 형태로 수신되는 구성에서, 보안 애플리케이션 프레임워크(425)는 처리 애플리케이션(126)에 대한 개인/공개 키 쌍을 생성하도록 구성된 처리 애플리케이션 키 생성 기능(450)을 실행하도록 추가로 구성된다. 보안 키 수신 기능(432)은 처리 애플리케이션(126)의 공개 키를 사용하여 암호화된 제1 랜덤 키를 수신하고 처리 애플리케이션(126)의 개인 키를 사용하여 제1 랜덤 키를 복호화하도록 추가로 구성된다.
제1 랜덤 키가 보안 채널을 통해 수신되는 구성에서, 보안 키 수신 기능(432)은 보안 채널을 통해 제1 랜덤 키를 수신하도록 추가로 구성된다. 이러한 보안 채널은 보안 모듈(145)을 포함하는 장치(140)와 신뢰할 수 있는 실행 환경(122)에서 실행되는 보안 애플리케이션 프레임워크(125, 425) 사이의 통신을 위해 설정될 수 있다. 그런 다음, 제1 랜덤 키는 보안 채널을 통해 신뢰할 수 있는 실행 환경(122)에서 실행되는 보안 애플리케이션 프레임워크(425)로 전송함으로써 안전한 방식으로 전송된다. 보안 채널은 신뢰할 수 있는 실행 환경(122)에서 채널에 대한 개인/공개 키 쌍을 생성함으로써 구현될 수 있으며, 그런 다음, 보안 모듈(145)을 포함하는 장치(140)는 채널에 대한 개인/공개 키 쌍의 공개 키로 데이터를 암호화할 수 있다. 따라서, 제1 랜덤 키와 같은 데이터가 보안 애플리케이션 프레임워크(425)에서 안전하게 수신되어야 할 때, 채널에 대한 개인/공개 키 쌍의 공개 키를 사용하여 암호화된다. 대안적으로, 보안 모듈(145)을 포함하는 장치(140)는 보안 모듈(145)을 포함하는 장치(140)에 의해 생성된 대칭 키를 암호화하기 위해 채널에 대한 개인/공개 키 쌍의 공개 키를 사용할 수 있고 암호화된 대칭 키를 신뢰할 수 있는 실행 환경(122)으로 전송할 수 있다. 보안 채널을 사용하여 안전하게 수신되어야 하는 제1 랜덤 키와 같은 데이터는 대칭 키를 사용하여 암호화된다.
제1 랜덤 키는 보안 모듈(145)을 포함하는 장치(140)로부터 안전한 방식으로 수신될 수 있으며, 보안 모듈(145)은 관련 애플리케이션에 의해 요구되는 보안 레벨로 민감한 데이터의 처리를 가능하게 하는 모듈을 포함하는 임의의 장치일 수 있다. 안전한 방식으로 데이터를 수신한다는 것은 데이터의 프라이버시가 보호되는 방식으로 데이터가 수신됨을 의미한다. 보안 모듈(145)은 예를 들면, 신뢰할 수 있는 플랫폼 모듈(trusted platform module; TPM) 또는 보안 요소(secure element; SE)일 수 있다. 보안 모듈은 하드웨어나 소프트웨어, 또는 이 둘의 조합으로 구현될 수 있다.
보안 애플리케이션 프레임워크(425)는 저장 장치(110)의 공개 키를 제공하도록 보안 모듈(145)을 포함하는 장치(140)에 요청하도록 구성된 요청 기능(452), 및 보안 모듈(145)을 포함하는 장치(140)로부터 저장 장치(110)의 공개 키를 수신하도록 구성된 저장 장치 공개 키 수신 기능(454)을 실행하도록 추가로 구성될 수 있다.
보안 애플리케이션 프레임워크(425)의 기능은 도 2 및 도 3과 관련하여 설명된 방법(200)의 대응하는 단계들에 따라 더 조정될 수 있고 추가 기능들이 추가될 수 있다.
데이터를 처리하도록 구성된 처리 애플리케이션(126)을 사용하여 데이터의 안전한 처리를 가능하게 하는 시스템(500)의 실시예가 이제 도 5와 관련하여 설명될 것이다. 시스템(500)의 실시예는 예를 들어 도 1과 관련하여 설명된 시스템에서 구현될 수 있다.
시스템(500)은 도 4와 관련하여 설명된 보안 애플리케이션 프레임워크(425) 또는 도 1과 관련하여 설명된 보안 애플리케이션 프레임워크(125)와 같은, 신뢰할 수 있는 실행 환경(122)에서 실행되도록 구성된 보안 애플리케이션 프레임워크(525)를 포함한다. 보안 애플리케이션 프레임워크(525)는 신뢰할 수 있는 실행 환경(122)을 실행하는 프로세서(미도시)를 포함하는 제1 장치(520)에 구성될 수 있다.
시스템은 저장 장치(110)에 대한 개인/공개 키 쌍을 생성하도록 구성된 저장 장치 키 생성 기능(550), 및 저장 장치(110)의 공개 키를 사용하여 암호화된 제1 랜덤 키를 수신하도록 구성된 암호화된 키 수신 기능(552)을 실행하도록 구성된 보안 모듈(545)을 포함하는 제2 장치(540)를 더 포함한다. 보안 모듈(545)은 저장 장치(110)의 개인 키를 사용하여 제1 랜덤 키를 복호화하도록 구성된 제1 랜덤 키 복호화 기능(554), 및 보안 애플리케이션 프레임워크(525)에 안전한 방식으로 제1 랜덤 키를 전송하도록 구성된 보안 키 전송 기능(556)을 실행하도록 추가로 구성된다.
보안 모듈(545)을 포함하는 장치(540)는 관련 애플리케이션에 의해 요구되는 보안 레벨로 민감한 데이터의 핸들링을 가능하게 하는 모듈을 포함하는 임의의 장치일 수 있다. 보안 모듈(545)은 공개 키 또는 기타 민감한 데이터가 승인되지 않은 당사자에게 누출되는 것을 방지하도록 개인/공개 키 쌍을 안전한 방식으로 관리할 수 있는 모듈이다.
보안 모듈(545)은, 예를 들면, 신뢰할 수 있는 플랫폼 모듈(trusted platform module; TPM) 또는 보안 요소(secure element; SE)일 수 있다. 보안 모듈은 하드웨어나 소프트웨어, 또는 이 둘의 조합으로 구현될 수 있다.
시스템(500)의 보안 애플리케이션 프레임워크(525)의 기능은 도 2 및 3과 관련하여 기술된 방법(200)의 대응하는 단계들 및 도 4와 관련하여 기술된 보안 애플리케이션 프레임워크(425)의 대응하는 기능들에 따라 더 조정될 수 있고 추가 기능들이 추가될 수 있다. 시스템(500)의 보안 모듈(545)의 기능은 도 2 및 도 3과 관련하여 설명된 방법(200)의 대응하는 단계들에 따라 더 조정될 수 있고 추가 기능이 추가될 수 있다.
당업자는 본 발명이 전술한 실시예들에 제한되지 않는다는 것을 인식할 것이다. 반대로, 첨부된 청구범위 내에서 많은 수정 및 변형이 가능하다. 이러한 수정 및 변형은 도면, 개시내용 및 첨부된 청구범위의 연구로부터 청구된 발명을 실시하는 당업자에 의해 이해되고 영향을 받을 수 있다.

Claims (15)

  1. 데이터를 처리하도록 구성된 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하기 위한 컴퓨터 구현 방법으로서,
    신뢰할 수 있는 실행 환경에서 실행되는 보안 애플리케이션 프레임워크 내에서:
    제1 랜덤 키를 사용하여 암호화된 데이터를 수신하는 단계;
    안전한 방식으로 상기 제1 랜덤 키를 수신하는 단계;
    상기 제1 랜덤 키를 사용하여 상기 암호화된 데이터를 복호화하여 데이터를 획득하는 단계;
    상기 데이터를 처리 애플리케이션에 입력하는 단계;
    입력된 데이터를 처리하기 위해 상기 처리 애플리케이션을 실행하는 단계;
    상기 처리 애플리케이션으로부터 출력 데이터를 수신하는 단계;
    제2 랜덤 키를 생성하는 단계;
    제2 랜덤 키를 사용하여 상기 출력 데이터를 암호화하는 단계;
    저장 장치의 공개 키를 사용하여 상기 제2 랜덤 키를 암호화하는 단계; 및
    암호화된 출력 데이터 및 암호화된 제2 랜덤 키를 상기 저장 장치로 전송하는 단계;를 포함하는, 방법.
  2. 제1항에 있어서,
    보안 모듈을 포함하는 장치 내에서:
    상기 저장 장치에 대한 개인/공개 키 쌍을 생성하는 단계;
    상기 저장 장치의 공개 키를 이용하여 암호화된 제1 랜덤 키를 수신하는 단계;
    상기 저장 장치의 개인 키를 이용하여 상기 제1 랜덤 키를 복호화하는 단계; 및
    상기 제1 랜덤 키를 안전한 방식으로 상기 보안 애플리케이션 프레임워크에 전송하는 단계;를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 신뢰할 수 있는 실행 환경에서 실행되는 상기 보안 애플리케이션 프레임워크 내에서:
    상기 처리 애플리케이션을 위한 개인/공개 키 쌍 생성하는 단계를 더 포함하고,
    안전한 방식으로 상기 제1 랜덤 키를 수신하는 단계는,
    상기 처리 애플리케이션의 공개 키를 사용하여 암호화된 제1 랜덤 키를 수신하는 단계; 및
    상기 처리 애플리케이션의 개인 키를 사용하여 상기 제1 랜덤 키를 복호화하는 단계;를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 신뢰할 수 있는 실행 환경에서 실행되는 상기 보안 애플리케이션 프레임워크 내에서:
    보안 모듈을 포함하는 장치에 상기 처리 애플리케이션의 공개 키를 전송하는 단계,
    상기 보안 모듈을 포함하는 장치 내에서:
    상기 처리 애플리케이션의 공개 키를 수신하는 단계;
    상기 처리 애플리케이션의 공개 키를 사용하여 상기 제1 랜덤 키를 암호화하는 단계; 및
    상기 처리 애플리케이션의 공개 키를 사용하여 암호화된 제1 랜덤 키를 상기 보안 애플리케이션 프레임워크로 전송하는 단계;를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 보안 모듈을 포함하는 장치 내에서:
    상기 저장 장치에 대한 개인/공개 키 쌍을 생성하는 단계;
    상기 저장 장치의 공개 키를 이용하여 암호화된 제1 랜덤 키를 수신하는 단계; 및
    상기 저장 장치의 개인 키를 사용하여 제1 랜덤 키를 복호화하는 단계;를 포함하는, 방법.
  6. 제2항에 있어서,
    상기 보안 모듈을 포함하는 장치와 상기 신뢰할 수 있는 실행 환경에서 실행되는 상기 보안 애플리케이션 프레임워크 간의 통신을 위한 보안 채널을 설정하는 단계;를 더 포함하고,
    여기서, 상기 보안 모듈을 포함하는 장치 내에서, 안전한 방식으로 상기 보안 애플리케이션 프레임워크에 상기 제1 랜덤 키를 전송하는 단계는:
    상기 보안 채널을 통해 상기 신뢰할 수 있는 실행 환경에서 실행되는 상기 보안 애플리케이션 프레임워크에 제1 랜덤 키를 전송하는 단계;를 포함하는, 방법.
  7. 처리 능력을 갖는 시스템에 의해 실행될 때, 제1항에 따른 방법을 구현하기 위한 명령들이 저장된 비일시적 컴퓨터 판독 가능 저장 매체.
  8. 신뢰할 수 있는 실행 환경에서 실행되는 보안 애플리케이션 프레임워크로서,
    제1 랜덤 키를 사용하여 암호화된 데이터를 수신하도록 구성된 암호화된 데이터 수신 기능;
    안전한 방식으로 상기 제1 랜덤 키를 수신하도록 구성된 보안 키 수신 기능;
    상기 암호화된 데이터를 상기 제1 랜덤 키를 이용하여 복호화하여 데이터를 획득하는 데이터 복호화 기능;
    상기 데이터를 처리 애플리케이션에 입력하도록 구성된 입력 기능;
    입력된 데이터를 처리하기 위해 상기 처리 애플리케이션을 실행하도록 구성된 실행 기능;
    상기 처리 애플리케이션으로부터 출력 데이터를 수신하도록 구성된 출력 데이터 수신 기능;
    제2 랜덤 키를 생성하도록 구성된 제2 랜덤 키 생성 기능;
    상기 제2 랜덤 키를 사용하여 상기 출력 데이터를 암호화하도록 구성된 출력 데이터 암호화 기능;
    저장 장치의 공개 키를 이용하여 상기 제2 랜덤 키를 암호화하는 제2 랜덤 키 암호화 기능; 및
    암호화된 출력 데이터 및 암호화된 제2 랜덤 키를 상기 저장 장치로 전송하도록 구성된 전송 기능;을 실행하도록 구성된, 보안 애플리케이션 프레임워크.
  9. 제8항에 있어서,
    상기 처리 애플리케이션에 대한 개인/공개 키 쌍을 생성하도록 구성된 처리 애플리케이션 키 생성 기능을 실행하도록 추가로 구성되고,
    여기서, 상기 보안 키 수신 기능은
    상기 처리 애플리케이션의 공개 키를 사용하여 암호화된 상기 제1 랜덤 키를 수신하고;
    상기 처리 애플리케이션의 개인 키를 사용하여 상기 제1 랜덤 키를 복호화하도록 추가로 구성된, 보안 애플리케이션 프레임워크.
  10. 제8항에 있어서,
    상기 보안 키 수신 기능은 보안 채널을 통해 상기 제1 랜덤 키를 수신하도록 추가로 구성된, 보안 애플리케이션 프레임워크.
  11. 제8항에 따른 보안 애플리케이션 프레임워크; 및
    저장 장치에 대한 개인/공개 키 쌍을 생성하도록 구성된 저장 장치 키 생성 기능;
    상기 저장 장치의 공개 키를 이용하여 암호화된 제1 랜덤 키를 수신하는 암호화 키 수신 기능;
    상기 저장 장치의 개인 키를 이용하여 상기 제1 랜덤 키를 복호화하는 제1 랜덤 키 복호화 기능; 및
    상기 보안 애플리케이션 프레임워크에 안전한 방식으로 상기 제1 랜덤 키를 전송하도록 구성된 보안 키 전송 기능;을 실행하도록 구성된 보안 모듈을 포함하는 장치;를 포함하는 시스템.
  12. 제11항에 있어서,
    상기 보안 애플리케이션 프레임워크는 상기 처리 애플리케이션에 대한 개인/공개 키 쌍을 생성하도록 구성된 처리 애플리케이션 키 생성 기능을 실행하도록 추가로 구성되고,
    여기서, 상기 보안 키 수신 기능은
    상기 처리 애플리케이션의 공개 키를 사용하여 암호화된 상기 제1 랜덤 키를 수신하고;
    상기 처리 애플리케이션의 개인 키를 사용하여 제1 랜덤 키를 복호화하도록 추가로 구성된, 시스템.
  13. 제12항에 있어서,
    상기 보안 애플리케이션 프레임워크는;
    상기 보안 모듈을 포함하는 장치에 상기 처리 애플리케이션의 공개 키를 전송하도록 구성된 처리 애플리케이션 키 전송 기능을 실행하도록 구성되고,
    여기서, 상기 보안 모듈을 포함하는 장치는:
    상기 처리 애플리케이션의 공개 키를 수신하도록 구성된 처리 애플리케이션 키 수신 기능;
    상기 처리 애플리케이션의 공개 키를 사용하여 상기 제1 랜덤 키를 암호화하도록 구성된 제1 랜덤 키 암호화 기능; 및
    상기 처리 애플리케이션의 공개 키를 사용하여 암호화된 상기 제1 랜덤 키를 상기 보안 애플리케이션 프레임워크에 전송하도록 구성된 암호화된 제1 랜덤 키 전송 기능을 포함하는, 시스템.
  14. 제 13 항에 있어서,
    상기 보안 모듈을 포함하는 장치는:
    상기 저장 장치에 대한 개인/공개 키 쌍을 생성하도록 구성된 저장 장치 키 생성 기능;
    상기 저장 장치의 공개 키를 이용하여 암호화된 제1 랜덤 키를 수신하도록 구성된 암호화된 제1 랜덤 키 수신 기능; 및
    상기 저장 장치의 개인 키를 이용하여 상기 제1 랜덤 키를 복호화하는 제1 랜덤 키 복호화 기능;을 실행하도록 구성된, 시스템.
  15. 제11항에 있어서,
    상기 보안 모듈을 포함하는 장치와 상기 신뢰할 수 있는 실행 환경에서 실행되는 상기 보안 애플리케이션 프레임워크 간의 통신을 위한 보안 채널을 설정하도록 구성된 보안 채널 설정 기능을 실행하도록 추가로 구성되고,
    여기서, 상기 보안 키 전송 기능은 상기 보안 채널을 통해 상기 보안 애플리케이션 프레임워크에 상기 제1 랜덤 키를 전송하도록 구성된, 시스템.
KR1020220087965A 2021-09-06 2022-07-18 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법 및 시스템 KR102616291B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP21194959.9 2021-09-06
EP21194959.9A EP4145762B1 (en) 2021-09-06 2021-09-06 Method and system for enabling secure processing of data using a processing application

Publications (2)

Publication Number Publication Date
KR20230036032A true KR20230036032A (ko) 2023-03-14
KR102616291B1 KR102616291B1 (ko) 2023-12-19

Family

ID=77640539

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220087965A KR102616291B1 (ko) 2021-09-06 2022-07-18 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법 및 시스템

Country Status (6)

Country Link
US (1) US11934516B2 (ko)
EP (1) EP4145762B1 (ko)
JP (1) JP7454020B2 (ko)
KR (1) KR102616291B1 (ko)
CN (1) CN115765958A (ko)
TW (1) TWI829303B (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019227208A1 (en) * 2018-05-28 2019-12-05 Royal Bank Of Canada System and method for secure electronic transaction platform

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101715638A (zh) * 2007-03-20 2010-05-26 迪姆威奇软件有限责任公司 为获取解密密钥而请求密钥获取的安全电子消息系统
US8868925B2 (en) 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
US8996887B2 (en) * 2012-02-24 2015-03-31 Google Inc. Log structured volume encryption for virtual machines
ES2947562T3 (es) * 2013-09-13 2023-08-11 Alcatel Lucent Método y sistema para controlar el intercambio de información sensible a la privacidad
CN105812332A (zh) * 2014-12-31 2016-07-27 北京握奇智能科技有限公司 数据保护方法
KR102582266B1 (ko) 2016-05-30 2023-09-27 삼성전자주식회사 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법
WO2019012956A1 (ja) 2017-07-11 2019-01-17 株式会社Seltech センシング装置、センシングシステム、およびサーバ
CN110324138B (zh) * 2018-03-29 2022-05-24 阿里巴巴集团控股有限公司 数据加密、解密方法及装置
US10977381B2 (en) 2018-06-28 2021-04-13 Mohammad Mannan Protection system and method against unauthorized data alteration
EP3664399B1 (en) * 2018-12-03 2021-06-23 Bildosund SL A computer-implemented method, a system, and computer programs for digital files management and preservation in digital licenses
CN109617698B (zh) * 2019-01-09 2021-08-03 腾讯科技(深圳)有限公司 发放数字证书的方法、数字证书颁发中心和介质
US11251942B2 (en) * 2019-01-09 2022-02-15 Alibaba Group Holding Limited Secure communication channel between encryption/decryption component and trusted execution environment
SG11201908946PA (en) * 2019-03-26 2019-10-30 Alibaba Group Holding Ltd Program execution and data proof scheme using multiple key pair signatures
US11295014B2 (en) 2019-05-08 2022-04-05 Baidu Usa Llc TPM-based secure multiparty computing system using a non-bypassable gateway
CN111262694A (zh) 2020-01-10 2020-06-09 杭州趣链科技有限公司 一种基于tee的安全代理重加密方法
CN111917540B (zh) * 2020-08-07 2023-05-12 广州市百果园信息技术有限公司 一种数据加解密方法、装置、移动终端和存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019227208A1 (en) * 2018-05-28 2019-12-05 Royal Bank Of Canada System and method for secure electronic transaction platform

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP4145762B1 (en) 2023-10-25
EP4145762A1 (en) 2023-03-08
JP2023038172A (ja) 2023-03-16
CN115765958A (zh) 2023-03-07
TW202318238A (zh) 2023-05-01
TWI829303B (zh) 2024-01-11
EP4145762C0 (en) 2023-10-25
US11934516B2 (en) 2024-03-19
US20230070484A1 (en) 2023-03-09
JP7454020B2 (ja) 2024-03-21
KR102616291B1 (ko) 2023-12-19

Similar Documents

Publication Publication Date Title
US20210099286A1 (en) Cryptographic operation method, working key creation method, cryptographic service platform, and cryptographic service device
CN108566381A (zh) 一种安全升级方法、装置、服务器、设备和介质
CN111275202A (zh) 一种面向数据隐私保护的机器学习预测方法及系统
JP2018182736A (ja) 秘密かつ相互認証される鍵交換
WO2019109852A1 (zh) 一种数据传输方法及系统
CN103973443A (zh) 用于遵守隐私的数据处理的方法和设备
US10887085B2 (en) System and method for controlling usage of cryptographic keys
US11606202B2 (en) Methods and systems for secure data transmission
US11005828B1 (en) Securing data at rest
KR20210015264A (ko) 화이트박스 암호화를 이용한 puf 기반 사물인터넷 디바이스 인증 장치 및 방법
JP2021039719A (ja) セキュアapiフロー
CN113301036A (zh) 通信加密方法和装置、设备及存储介质
CN114244524B (zh) 一种基于区块链的数据共享方法及系统
KR20210039499A (ko) 통신 프로토콜
KR20230124027A (ko) 격리 암호화를 통한 프라이버시 강화 컴퓨팅
KR20200104084A (ko) Puf 기반 사물인터넷 디바이스 인증 장치 및 방법
CN109450899B (zh) 密钥管理方法及装置、电子设备、存储介质
KR102616291B1 (ko) 처리 애플리케이션을 사용하여 데이터의 안전한 처리를 가능하게 하는 방법 및 시스템
US20190109828A1 (en) Data processing method, device and system, and storage medium
Marquet et al. Secure key management for multi-party computation in mozaik
Whelihan et al. Shamrock: a synthesizable high assurance cryptography and key management coprocessor
CN111541652B (zh) 一种用于提高秘密信息保管及传递安全性的系统
CN114866312A (zh) 一种保护数据隐私的共有数据确定方法及装置
Bojanova et al. Cryptography classes in bugs framework (BF): Encryption bugs (ENC), verification bugs (VRF), and key management bugs (KMN)
CN113672954A (zh) 特征提取方法、装置和电子设备

Legal Events

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