KR20180011074A - 클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법 - Google Patents

클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20180011074A
KR20180011074A KR1020177031318A KR20177031318A KR20180011074A KR 20180011074 A KR20180011074 A KR 20180011074A KR 1020177031318 A KR1020177031318 A KR 1020177031318A KR 20177031318 A KR20177031318 A KR 20177031318A KR 20180011074 A KR20180011074 A KR 20180011074A
Authority
KR
South Korea
Prior art keywords
encrypted
data
data set
client device
function
Prior art date
Application number
KR1020177031318A
Other languages
English (en)
Other versions
KR102442269B1 (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 KR20180011074A publication Critical patent/KR20180011074A/ko
Application granted granted Critical
Publication of KR102442269B1 publication Critical patent/KR102442269B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Telephonic Communication Services (AREA)

Abstract

개시된 시스템 및 방법은 클라우드 서비스가 민감한 데이터의 처리를 신뢰성 있는 사용자 디바이스에 위임할 수 있게 한다. 예시적인 방법에서, 클라우드 서비스는 데이터를 저장하며, 그 중 일부는 암호화되어 서비스에 의해 해독될 수 없다. 서비스는 클라이언트 디바이스로부터 데이터 세트에 대해 기능을 수행하라는 요청을 수신한다. 서비스는 데이터 세트가 암호화되어 있는지 여부를 결정한다. 데이터 세트가 암호화되어 있으면, 그것은 처리를 위해 클라이언트 디바이스에 전송된다. 클라이언트 디바이스는 데이터를 해독하고, 해독된 데이터를 처리하며, 처리된 데이터를 저장을 위해 클라우드 서비스에 반환한다. 데이터 세트가 암호화되어 있지 않은 경우, 그것은 클라우드 서비스에 의해 처리되어 저장된다.

Description

클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법
본 발명개시는 일반적으로 데이터 처리에 관한 것이다. 보다 구체적으로, 본 발명개시는 클라우드 기반 데이터 저장소의 콘텍스트에서 암호화된 데이터의 처리에 관한 것이다.
관련 출원에 대한 상호 참조
본 출원은 2015년 4월 10일자에 출원된 발명의 명칭이 "클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법(System and Method for Delegation of Cloud Computing Processes)"인 미국 가출원 번호 제62/145,959호의 일반 출원으로 미국 특허법 35 U.S.C.§119(e) 규정하에서 제62/145,959호의 우선권을 주장하고, 그 전체 내용은 본 명세서에 참조로 포함된다.
클라우드 기반 데이터 서비스는 여러 프라이버시 문제를 발생시킨다. 사용자는 클라우드 서비스 제공자를 신뢰하거나 암호화된 개인 데이터를 위한 저장소로서 오직 클라우드만 이용해야 한다. 완전 동형 암호화(fully homomorphic encryption), 프라이빗 클라우드(private cloud) 또는 격리된 실행 환경 및 증명(attestation)의 이용과 같은 많은 솔루션이 제안되었지만 각각의 단점이 있다.
데이터 저장소 및 서비스는 점점 더 클라우드 기반 서비스 포맷으로 이동하고 있다. 고속의 고정 및 이동 네트워크 연결은, 사용자가 클라우드 기반 저장소로부터 데이터를 원활하게 업로드 및 다운로드 할 수 있게 한다. Google Doc와 같은 클라우드 기반 애플리케이션이 또한 여러 다른 디바이스들의 문서에 액세스하려는 사용자에게 유용하다. 클라우드 기반 저장소는 또한 모바일 디바이스가 고장나거나 분실되거나 도난당할 위험이 있으므로 데이터 백업의 어려움을 방지하는 데 도움이 된다. 클라우드 서비스는 또한 필요할 때 데이터 저장소 볼륨이 확장될 수 있으므로 확장성(scalability) 과 내고장성(fault tolerance) 장점을 제공한다. 또한, 애플리케이션 전망이 변화하기 시작했으며, 앞으로 많은 애플리케이션이 분산 애플리케이션 플랫폼을 이용하여 컨테이너 환경에서 실행될 것으로 예측된다.
동시에, 사람들은 보다 강력한 디바이스를 가지고 있다. 현재의 랩톱, 데스크톱 컴퓨터, 홈 서버, 태블릿, 휴대 전화 및 기타 컴퓨팅 디바이스들이 많은 컴퓨팅 능력을 가지고 있다. 많은 컴퓨팅 디바이스들은 멀티 코어 프로세서를 이용하며, 컴퓨팅 플랫폼으로도 이용될 수 있는 강력한 코프로세서(co-processor)가 있다.
클라우드 기반 서비스 및 저장소가 여러 가지 이점을 제공하지만, 많은 사람들은 신뢰 문제로 인해 자신들의 모든 정보를 클라우드 서비스와 공유할 의향이 없다. 개인 데이터를 업로드하고 클라우드 기반 서비스를 활용하는 것은, 사용자가 클라우드 서비스 제공자와 제공자가 구현하는 운영 절차 및 보안 협약을 신뢰해야 한다는 것을 요구한다. 공격자는 설계자가 예상하지 못한 방식으로 시스템 기능을 활용할 수 있다. 때때로 보안과 사용의 용이성은 모순된다. 최근의 유명 인사 사진 유출은 클라우드 서비스가 프라이버시 문제가 있다는 인식을 증가시켰다.
프라이버시 문제에 대한 한 가지 가능한 솔루션은, 각 개인이 다른 사람과 공유하지 않는, 심지어 클라우드 제공자와도 공유하지 않는 고유 키를 이용하여 자신의 데이터를 암호화하는 것이다. 일부 시스템은 이러한 보호 기능을 구현한다. 이러한 보호 기능을 구현하는 한 회사인 나수니(Nasuni)는 클라우드 저장소의 보안 과제를 나열했다.
데이터 유출(Data leakage) - 가장 좋은 전략은 처음부터 클라우드 벤더가 손상되었다고 가정하여 클라우드에 암호화된 파일만 전송하는 것이다.
클라우드 자격 증명(Cloud credential) - 저장소의 지정된 풀에 대한 액세스는 자격 증명을 기반으로 하며, 당신이 다른 고객 집합과 함께 일괄 처리되어 동일한 자격 증명을 공유하면, 그들 중 한 명이 해당 자격 증명을 획득하여 당신의 데이터에 액세스할 위험이 있다.
스누핑 (Snooping) - 데이터 및 메타 데이터는 유선 상에서 그리고 클라우드에서 완전히 불투명해야 한다. 아무것도 - 어떠한 파일 이름, 타임 스탬프도 - 당신의 구내(premise)를 떠나면 해독할 수 없어야 한다.
키 관리(Key management) - 키 관리는 사용자가 그것을 인식하지도 못하도록 매우 단순해야 한다. 암호화는 자동적이어야 한다.
성능(Performance) - 보안이 성능에 심각한 영향을 미치지 않아야 한다.
나수니는 OpenPGP 암호화를 활용하여 이러한 문제를 다룬다. 그러나 이는 암호화된 저장소의 제공만을 다루고 있으며, 클라우드 기반 소프트웨어 애플리케이션 서비스를 제공하는 프라이버시 과제를 해결하지 못한다.
외부 클라우드 서비스 제공자에 의존하는 대신에, 회사는 자체 프라이빗 클라우드를 설정하고, 모든 민감한 컴퓨팅을 자체 구내에서 처리할 수 있다. 또한, 클라우드 서비스 제공자가 자신의 서비스만을 실행시키는 전용 서버를 자신의 고객들에게 제공하는 하이브리드 솔루션도 있다. 이 접근 방식은 시스템 관리자가 프라이빗 클라우드 인프라를 유지할 수 있는 회사에 적합하다. 프라이빗 클라우드는 회사 특정의 민감한 데이터를 처리하는 데 필요한 서비스 세트를 호스팅할 수 있다. 그러나 이 접근 방식은 개인이 자신의 프라이빗 클라우드를 유지하고 클라우드 서비스 소프트웨어를 구입하기가 어려울 수 있으므로, 자신의 프라이버시를 보호하고자 하는 개인에게는 덜 편리하다.
또 다른 대안으로는 동형 암호화 솔루션으로, 이 솔루션은 암호화된 데이터를 처리하여 그 결과가 암호화된 상태로 유지되도록 한다. 이는 사용자가 자신의 암호화된 개인 데이터를 클라우드 환경에 업로드 할 수 있게 하고, 클라우드 환경에서 데이터 마이닝 소프트웨어가 암호화된 개인 데이터를 처리하고 역시 암호화된 처리 결과를 반환할 수 있다. 사용자는 결과를 해독하고, 원하는 경우 다른 사람들과 그 결과를 공유하기로 결정할 수 있다. 클라우드 서비스 제공자는 해독된 콘텐츠나 결과 데이터에 대한 액세스 권한이 없으며 완전히 신뢰될 필요는 없다.
암호화된 데이터에 대한 계산을 수행하는 것이 RSA 암호화 알고리즘에서 실제로 가능하다. RSA는 곱셈에 대해서는 동형이지만, 덧셈에 대해서는 동형이 아니다. 예를 들어, RSA 암호화된 값에 2를 곱하고 결과가 해독되는 경우, 결과는 원래의 암호화되지 않은 값에 2를 곱한 값과 동일하다(패딩되지 않은 RSA 표기법을 이용한다고 가정). 또한, 덧셈에 대해 동형인 동형 암호화 방식이 있다. 덧셈 및 곱셈 모두에 대해 동형인 암호화 시스템을 완전 동형 시스템이라고 한다. 최근에는 완전 동형 암호화가 매우 활발한 연구 주제가 되었다.
불행하게도, 완전 동형 암호화는 일반적으로 실제 이용하기에는 너무 느리다. 암호문의 크기와 암호화 및 해독화 동작의 복잡성은 수행될 동작의 수와 함께 엄청나게 증가한다.
또 다른 보안 옵션은 클라우드 서비스가 통상적으로 ARM 기반 모바일 디바이스에서 이용할 수 있는 ARM TrustZone과 유사한 격리된 실행 환경을 제공하는 것이다. 냉각 요건 및 전기의 비용이 주요 비용 요소이므로, ARM 기반 칩의 낮은 소비 전력은 ARM 아키텍처를 대형 데이터 센터의 인텔 기반 아키텍처에 비해 경쟁력 있게 만들었다. 또한, ARM 기반 서버는 나머지 시스템으로부터 격리된 신뢰성 있는 애플리케이션을 실행시킬 수 있는 ARM TrustZone을 포함한다. 그러나 클라우드 및 서버 필드는 일반적으로 인텔(Intel) 아키텍처가 지배한다.
전하는 바에 따르면, 인텔은 인텔 칩에 보호된 컨테이너 환경을 추가할 계획이 있다고 한다. 인텔은 2013년 6월 보안 및 프라이버시를 위한 하드웨어 및 아키텍처 지원 워크샵에서, 향후 인텔 칩은 인텔® 소프트웨어 보호 확장(인텔® SGX)이라는 개념을 포함할 것이라고 발표했다. 인텔 SGX는 다음과 같은 8가지 목표를 보고한다.
1. 애플리케이션 개발자가 높은 특권 수준에서 실행되는 불량 소프트웨어에 의한 무단 액세스 또는 수정으로부터 민감한 데이터를 보호할 수 있게 함.
2. 애플리케이션이 플랫폼 리소스의 이용을 스케줄링 및 관리하기 위해 적법한 시스템 소프트웨어의 능력을 방해하지 않으면서 민감한 코드 및 데이터의 기밀성 및 무결성을 보존할 수 있게 함.
3. 컴퓨팅 디바이스의 소비자가 플랫폼 제어권 및 소비자가 선택하는 대로 애플리케이션과 서비스를 설치 및 삭제할 수 있게 하는 자유를 유지할 수 있게 함.
4. 플랫폼이 애플리케이션의 신뢰성 있는 코드를 측정하고, 이 측정치 및 코드가 신뢰할 수 있는 환경에서 올바르게 초기화되었다는 다른 인증(certification)을 포함하는 프로세서에 뿌리를 두는 서명된 증명을 생성할 수 있게 함.
5. 친숙한 툴 및 프로세스를 이용하여 신뢰성 있는 애플리케이션의 개발을 가능하게 함.
6. 신뢰성 있는 애플리케이션의 성능이 기본 애플리케이션 프로세서의 능력을 통해 확장될 수 있게 함.
7. 소프트웨어 벤더가 자신이 선택한 분배 채널을 이용하여 신뢰성 있는 애플리케이션을 전달하고 자신의 케이던스(cadence)에 업데이트할 수 있게 함.
8. 공격자가 플랫폼의 물리적 제어권을 갖고 메모리에 직접 공격을 수행할 수 있는 경우에도, 애플리케이션이 기밀성을 유지하는 코드 및 데이터의 보안 영역을 정의할 수 있게 함.
인텔 SGX는 향후 인텔 아키텍처 프로세서에 추가되는 메모리 액세스를 위한 메커니즘 및 명령어의 세트이다. 인텔 SGX 기술은 인클레이브(enclave)의 개념, 즉 특권을 가진 멀웨어(malware)가 있는 경우에도 기밀성과 무결성을 제공하는 보호 영역을 애플리케이션의 주소 공간에 포함한다. 인클레이브에 내재하지 않는 소프트웨어로부터 인클레이브 메모리 영역에 대한 액세스가 방지된다. 또한, 애플리케이션은 인클레이브 특정 및 플랫폼 특정 키를 요구할 수 있고, 이것은 인클레이브 외부에 저장하기를 원하는 키와 데이터를 보호하기 위해 이용할 수 있다.
클라우드 서버는 통상적으로 이용 가능한 신뢰성 있는 실행 환경이 없지만, 클라우드 서비스의 신뢰성을 확인하는 방법은 여전히 있다. 이는 신뢰성 있는 부팅(또는 측정된 부팅) 개념을 지원하며, 통상적으로 신뢰 플랫폼 모듈(Trusted Platform Module; TPM)이라는 칩인 하드웨어 보안 모듈(Hardware Security Module; HSM)을 포함하는 시스템에서 수행될 수 있다. TPM에는 공용/개인 RSA 키 쌍이 포함된다. 개인 키는 TPM으로부터 추출될 수 없지만 공개 키는 인증될 수 있다. TPM에는 또한 서명(TPM_Sign)과 같은 정적 동작 세트도 포함된다. TPM에는 또한 20바이트 SHA1 해시 값을 저장할 수 있는 플랫폼 구성 레지스터(Platform Configuration Register; PCR)라는 두서너 개의 레지스터가 포함된다. PCR은 판독될 수 있지만, 그 값은 TPM_Extend 동작을 통해서만 수정될 수 있다. TPM_Extend 동작은 이전 PCR 레지스터 값을 새로운 해시 값과 연관시키고, 연관된 바이트의 SHA1 해시를 계산하며, 그 결과를 PCR 레지스터에 저장한다.
원격 증명 개념은 플랫폼이 호출되는 각각의 실행 가능 구성 요소를 측정한다고 가정한다. 측정은 구성 요소의 SHA1 해시 값을 계산하여 수행된다. 또한, 일련의 검증이 있고, 예를 들어, 부트 로더는 로딩하기 전에 커널을 측정해야 하며, 커널은 실행 전에 사용자 공간 구성 요소를 측정해야 한다. 측정이 수행될 때마다, 그 측정치와 측정된 실행 파일의 이름이 포함되는 측정 로그가 첨부된다. 커널은 적어도 모든 고유의 실행 가능 및 공유 라이브러리를 측정할 것이고, 구성 요소가 통상적으로 각각의 부팅 이후에 한 번만 측정되도록 이러한 측정치를 추적할 것이다. 원격 사이트는, 시스템 구성 요소의 예상 SHA1 해시 값 및 시스템 구성을 알고 있다고 가정한다. 원격 사이트는 증명 요청(랜덤 임시 값을 포함)을 전송할 수 있다. 그런 다음, 증명될 시스템은 PCR 레지스터 값과 수신된 임시 값을 포함하는 서명된 메시지를 제공하는 TPM_Quote 명령어(파라미터로서 수신된 랜덤 임시 값을 포함함)를 발행해야 한다. 그런 다음, 서명된 메시지 및 측정 로그가 원격 사이트에 반환되고, 원격 사이트는 해시 계산을 체크해야 하고, 측정된 해시 값이 예상 값을 갖는지를 또한 체크해야 한다. 원격 사이트는 측정될 모든 구성 요소의 SHA1 해시를 알도록 요구받는다.
리눅스(Linux) 커널에는 이러한 측정치를 생성하는 데 이용할 수 있는 IMA라는 구성 요소가 포함되어 있다. 여러 가상 머신을 호스팅하는 하드웨어 플랫폼에 TPM 칩이 하나만 있는 경우, 여러 가상 머신 인스턴스로부터의 TPM 측정은 혼합될 수 있어 결과가 거의 쓸모 없게 될 수 있다. 이 문제를 해결하기 위해 가상화된 TPM(Virtualized TPM; vTPM)이 제안되었다. 또한, 증명은 인텔의 신뢰 실행 기술(Trusted Execution Technology; TXT)의 중요한 구성 요소이다.
증명 기반 방법은 사용자가 전체 참조 무결성 메트릭을 갖고, 보안 요소가 인증된 키 쌍을 이용해야 하며, 사용자가 증명 로그를 재생하고 그 결과를 비교할 수 있어야 하는 것을 요구한다. 이것은 회사 및 대기업에서는 가능하지만 개인에게는 어려울 수 있다.
프라이빗코어(PrivateCore)는 증명 및 암호화를 결합한 클라우드 기술 제공자의 일례이다. 프라이빗코어는 시스템에서 신뢰될 필요가 있는 유일한 요소가 중앙 처리 장치(Central Processing Unit; CPU)라고 가정한다. 프라이빗코어는 RAM에 AES 암호화를 이용한다. 프라이빗코어는 TRESOR 프로젝트와 유사한 CPU 바운드 암호화 방식을 이용하고, 이 방식은 RAM을 이용하는 대신 마이크로 프로세서 레지스터만을 이용하여 AES 암호화와 키 관리를 구현하는 리눅스 커널 패치를 제시했다. TRESOR는 디스크 암호화를 위한 것이었으며, 잠재적으로 DMA 기반 공격에는 취약하다.
프라이빗코어는 공용 클라우드에서의 민감한 데이터 처리와 관련된 많은 문제를 다룰 수 있지만, 여전히 문제가 있다. 그 중 하나가 키 관리이다. 프라이빗코어가 AES 키를 CPU 내부에 유지할 수 있다고 해도, 키는 어떻게든 삽입되어야 한다. 또한, 원격 증명을 이용하고 측정된 구성을 확인할 필요가 있다. 프라이빗코어는 향상된 기밀 보호 기능을 제공할지라도, 사용자가 프라이빗코어 클라우드 인프라에 의존해야 하기 때문에 여전히 신뢰 문제가 있다.
본 명세서의 실시예들은 클라우드 기반 데이터 저장소의 콘텍스트에서 암호화된 데이터의 처리에 관한 것이다. 보다 구체적으로, 클라우드가 암호화된 데이터의 암호화되지 않은 버전에 액세스하지 않도록 클라이언트와 클라우드 간에 암호화된 데이터의 분할에 관한 것이다.
일 실시예에서, 방법은 클라이언트 디바이스로부터 제 1 동작을 수행하라는 요청을 수신하는 단계를 포함하고, 상기 제 1 동작은 제 1 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함한다. 상기 방법은 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계를 더 포함한다. 제 1 데이터 세트가 암호화되어 있는 경우, 제 1 데이터 세트 및 제 1 기능을 수행하라는 명령어가 클라이언트 디바이스에 전송되고, 명령어는 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함하고; 제 1 데이터 세트에 대한 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터가 클라이언트 디바이스로부터 수신된다. 제 1 데이터 세트가 암호화되지 않은 경우, 제 1 기능은 제 1 데이터 세트에 대해 수행되어 제 1 처리된 데이터를 생성한다.
일 실시예에서, 시스템은 프로세서 및 비일시적 데이터 저장 매체를 갖는 적어도 하나의 서버를 포함하는 클라우드 서비스를 포함하고, 상기 매체는 프로세서에 의해 실행될 때, 클라이언트 디바이스로부터 제 1 동작 - 상기 제 1 동작은 제 1 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 수신하고; 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하도록 동작 가능한 명령어를 저장한다. 제 1 데이터 세트가 암호화되어 있는 경우, 명령어는 클라이언트 디바이스에 제 1 기능을 수행하라는 명령어 - 제 1 기능을 수행하라는 명령어는 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함함 - 및 제 1 데이터 세트를 전송하고; 클라이언트 디바이스로부터 제 1 데이터 세트에 대한 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하도록 동작 가능하다. 제 1 데이터 세트가 암호화되지 않은 경우, 명령어는 제 1 데이터 세트에 대해 제 1 기능을 수행하여 제 1 처리된 데이터를 생성하도록 추가로 동작 가능하다.
도 1은 본 명세서에 설명된 실시예들에서 사용자 디바이스, 애플리케이션 서버, 통지 서버 및/또는 다른 네트워크 노드로서 이용될 수 있는 예시적인 무선 송수신 유닛(wireless transmit/receive unit; WTRU)을 도시한다.
도 2는 본 명세서에 설명된 실시예들에서 사용자 디바이스, 클라우드 서버 및/또는 다른 네트워크 노드로서 이용될 수 있는 예시적인 네트워크 엔티티를 도시한다.
도 3은 민감한 데이터의 처리를 위임하는 방법을 나타내는 흐름도이다.
도 4는 이미지 처리를 수행하기 위해 이용된, 민감한 데이터의 처리를 위임하는 방법을 나타내는 흐름도이다.
본 발명개시의 시스템 및 방법에서, 데이터 처리의 민감한 부분이 사용자의 개인 디바이스에 위임된다. 상이한 접근 방식들이 논의된다.
본 명세서에 개시된 예시적인 실시예들은 무선 송수신 유닛(WTRU) 또는 다른 네트워크 엔티티와 같은 하나 이상의 유선 및/또는 무선 네트워크 노드를 이용하여 구현된다. 도 1은 본 명세서에 설명된 실시예들에서 사용자 디바이스로서 이용될 수 있는 예시적인 WTRU(102)의 시스템 다이어그램이다. 도 1에 도시된 바와 같이, WTRU(102)는 프로세서(118), 트랜스시버(120)를 포함하는 통신 인터페이스(119), 송수신 요소(122), 스피커/마이크로폰(124), 키패드(126), 디스플레이/터치패드(128), 비착탈식 메모리(non-removable memory)(130), 착탈식 메모리(removable memory)(132), 전원(134), 위성 위치 확인 시스템(global positioning system; GPS) 칩셋(136), 및 주변 장치(138)를 포함할 수 있다. WTRU(102)는 본 실시예와 일치를 유지하면서 앞서 말한 요소들의 임의의 하위 조합을 포함할 수 있음을 이해할 것이다.
프로세서(118)는 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, 디지털 신호 프로세서(digital signal processor; DSP), 복수의 마이크로 프로세서, DSP 코어와 관련된 하나 이상의 마이크로 프로세서, 컨트롤러, 마이크로 컨트롤러, 주문형 반도체(Application Specific Integrated Circuit; ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA) 회로, 임의의 다른 타입의 집적 회로(IC), 상태 머신(state machine) 등일 수 있다. 프로세서(118)는 WTRU(102)가 무선 환경에서 동작하는 것을 가능하게 하는 신호 코딩, 데이터 처리, 전력 제어, 입출력 처리 및/또는 임의의 다른 기능을 수행할 수 있다. 프로세서(118)는 송수신 요소(122)에 결합될 수 있는 트랜스시버(120)에 결합될 수 있다. 도 1은 프로세서(118)와 트랜스시버(120)를 별도의 구성 요소로서 도시하였지만, 프로세서(118)와 트랜스시버(120)는 전자 패키지 또는 칩 내에 함께 통합될 수 있음을 이해할 것이다.
송수신 요소(122)는 무선 인터페이스(115/116/117)를 통해 기지국에 신호를 송신하거나 기지국으로부터 신호를 수신하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 송수신 요소(122)는 RF 신호를 송신 및/또는 수신하도록 구성된 안테나일 수 있다. 다른 실시예에서, 송수신 요소(122)는, 예로서 IR, UV, 또는 가시광 신호를 송신 및/또는 수신하도록 구성된 이미터(emitter)/검출기(detector)일 수 있다. 또 다른 실시예에서, 송수신 요소(122)는 RF와 광 신호 모두를 송신 및 수신하도록 구성될 수 있다. 송수신 요소(122)는 무선 신호의 임의의 조합을 송신 및/또는 수신하도록 구성될 수 있음을 이해할 것이다.
또한, 송수신 요소(122)가 도 1에서 단일 요소로서 도시되어 있지만, WTRU(102)는 임의의 수의 송수신 요소(122)를 포함할 수 있다. 보다 구체적으로, WTRU(102)는 MIMO 기술을 이용할 수 있다. 따라서, 일 실시예에서, WTRU(102)는 무선 인터페이스(115/116/117)를 통해 무선 신호를 송신 및 수신하기 위한 2개 이상의 송수신 요소(122)(예컨대, 다중 안테나)를 포함할 수 있다.
트랜스시버(120)는 송수신 요소(122)에 의해 송신될 신호를 변조하고, 송수신 요소(122)에 의해 수신되는 신호를 복조하도록 구성될 수 있다. 앞서 언급한 바와 같이, WTRU(102)는 다중 모드 능력을 가질 수 있다. 따라서, 트랜스시버(120)는 예로서 WTRU(102)가 UTRA 및 IEEE 802.11과 같은 다수의 RAT를 통해 통신하는 것을 가능하게 하는 다수의 트랜스시버를 포함할 수 있다.
WTRU(102)의 프로세서(118)는 스피커/마이크로폰(124), 키패드(126) 및/또는 디스플레이/터치패드(128)(예컨대, 액정 디스플레이(liquid crystal display; LCD) 디스플레이 유닛 또는 유기 발광 다이오드(organic light-emitting diode; OLED) 디스플레이 유닛)에 결합될 수 있고, 이들로부터 사용자 입력 데이터를 수신할 수 있다. 프로세서(118)는 또한 스피커/마이크로폰(124), 키패드(126) 및/또는 디스플레이/터치패드(128)에 사용자 데이터를 출력할 수도 있다. 게다가, 프로세서(118)는 비착탈식 메모리(130) 및/또는 착탈식 메모리(132)와 같은 임의의 타입의 적합한 메모리로부터 정보를 액세스하고, 이 메모리에 데이터를 저장할 수 있다. 비착탈식 메모리(130)는 랜덤 액세스 메모리(random-access memory; RAM), 읽기 전용 메모리(read-only memory; ROM), 하드 디스크 또는 임의의 다른 타입의 메모리 저장 디바이스를 포함할 수 있다. 착탈식 메모리(132)는 가입자 식별 모듈(subscriber identity module; SIM) 카드, 메모리 스틱, 시큐어 디지털(Secure Digital; SD) 메모리 카드 등을 포함할 수 있다. 다른 실시예들에서, 프로세서(118)는 서버 또는 홈 컴퓨터(도시되지 않음)와 같이 WTRU(102) 상에 물리적으로 위치하지 않는 메모리로부터 정보를 액세스하고 이 메모리에 데이터를 저장할 수 있다.
프로세서(118)는 전원(134)으로부터 전력을 수신할 수 있고, WTRU(102) 내의 다른 구성 요소에 전력을 분배 및/또는 제어하도록 구성될 수 있다. 전원(134)은 WTRU(102)에 전력을 공급하기 위한 임의의 적합한 디바이스일 수 있다. 예로서, 전원(134)은 하나 이상의 건전지(예를 들어, 니켈-카드뮴(NiCd), 니켈-아연(NiZn), 니켈 금속 하이드라이드(NiMH), 리튬-이온(Li-ion) 등), 태양 전지, 연료 전지 등을 포함할 수 있다.
프로세서(118)는 또한 WTRU(102)의 현재 위치에 관한 위치 정보(예를 들어, 경도 및 위도)를 제공하도록 구성될 수 있는 GPS 칩셋(136)에 결합될 수 있다. GPS 칩셋(136)으로부터의 정보에 더하여 또는 대신에, WTRU(102)는 기지국으로부터 무선 인터페이스(115/116/117)를 통해 위치 정보를 수신하고/수신하거나 신호의 타이밍이 2개 이상의 인접한 기지국으로부터 수신되는 것에 기초하여 자신의 위치를 결정할 수 있다. WTRU(102)는 본 실시예와 일치를 유지하면서 임의의 적합한 위치 결정 방법에 의해 위치 정보를 획득할 수 있다는 것이 이해될 것이다.
프로세서(118)는 추가의 특징, 기능 및/또는 유무선 연결을 제공하는 하나 이상의 소프트웨어 및/또는 하드웨어 모듈을 포함할 수 있는 다른 주변 장치(138)에 또한 결합될 수 있다. 예를 들어, 주변 장치(138)는 가속도계와 같은 센서, 전자 나침반, 위성 트랜스시버, 디지털 카메라(사진 또는 비디오용), 범용 직렬 버스(Universal Serial Bus; USB) 포트, 진동 디바이스, 텔레비전 트랜스시버, 핸즈프리 헤드셋, 블루투스® 모듈, 주파수 변조(frequency modulated; FM) 무선 유닛, 디지털 뮤직 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저 등을 포함할 수 있다.
도 2는 본 발명개시의 실시예들에서, 예를 들어 클라우드 서비스의 서버로서 이용될 수 있는 예시적인 네트워크 엔티티(190)를 도시한다. 도 2에 도시된 바와 같이, 네트워크 엔티티(190)는 통신 인터페이스(192), 프로세서(194), 및 비일시적 데이터 저장소(196)를 포함하고, 이들 모두는 버스, 네트워크, 또는 다른 통신 경로(198)에 의해 통신 가능하게 연결된다.
통신 인터페이스(192)는 하나 이상의 유선 통신 인터페이스 및/또는 하나 이상의 무선 통신 인터페이스를 포함할 수 있다. 유선 통신에 대하여, 통신 인터페이스(192)는 예로서 이더넷(Ethernet) 인터페이스와 같은 하나 이상의 인터페이스를 포함할 수 있다. 무선 통신에 대하여, 통신 인터페이스(192)는 하나 이상의 무선 통신 타입(예컨대, LTE)을 위해 설계되고 구성된 하나 이상의 안테나, 하나 이상의 트랜스시버/칩셋과 같은 구성 요소 및/또는 관련 기술 분야의 당업자에 의해 적합한 것으로 여겨지는 임의의 다른 구성 요소를 포함할 수 있다. 또한, 무선 통신에 대하여, 통신 인터페이스(192)는 무선 통신(예컨대, LTE 통신, Wi-Fi 통신 등)의 네트워크 측 - 클라이언트 측에 반대- 에서 작용하기에 적합한 규모와 구성을 갖출 수 있다. 따라서, 통신 인터페이스(192)는 커버리지 영역에서 다수의 이동국, UE, 또는 다른 액세스 단말기를 서비스하기 위한 적절한 장비 및 회로(아마도 다수의 트랜스시버를 포함함)를 포함할 수 있다.
프로세서(194)는 관련 기술 분야의 당업자에 의해 적합한 것으로 여겨지는 임의의 타입의 하나 이상의 프로세서를 포함할 수 있고, 일부 예들은 범용 마이크로 프로세서 및 전용 DSP를 포함한다.
데이터 저장소(196)는 임의의 비일시적 컴퓨터 판독 가능 매체 또는 이러한 매체의 조합의 형태를 취할 수 있으며, 관련 기술 분야의 당업자에 의해 적합한 것으로 여겨지는 임의의 하나 이상의 타입의 비일시적 데이터 저장소가 이용될 수 있기 때문에, 일부 예들은, 몇 가지만 말하자면, 플래시 메모리, 읽기 전용 메모리(ROM) 및 랜덤 액세스 메모리(RAM)를 포함한다. 도 2에 도시된 바와 같이, 데이터 저장소(196)는 본 명세서에 설명된 다양한 네트워크 엔티티 기능의 다양한 조합을 수행하기 위해 프로세서(194)에 의해 실행 가능한 프로그램 명령어(197)를 포함한다.
본 발명개시는 클라우드 서비스에 저장된 데이터를 보호하는 시스템 및 방법을 설명한다. 클라우드 인프라를 신뢰할 수 있다는 것을 보장하는 대신 (또는 그에 추가하여), 상이한 접근 방식이 설명된다. 예시적인 실시예들에서, 민감한 데이터 처리가 클라우드 서버 대신 사용자의 개인 디바이스를 이용하여 수행되며, 클라우드 인프라는 그러한 위임을 허용하는 메커니즘을 포함한다. 클라우드 서버는 암호화된 개인 데이터를 위한 저장소로 이용된다. 암호화되지 않은 데이터의 처리는 신뢰성 있는 구내에서 수행되어, 민감한 데이터는 신뢰성 없는 구내에서는 절대 해독되지 않으므로 많은 공격 시나리오를 무의미하게 만든다. 본 명세서에 개시된 실시예들은 민감한 개인 데이터의 처리를 여전히 허용하면서 프라이버시를 유지하도록 동작한다.
일부 실시예들은 원격 절차 호출(remote procedure call; RPC)의 이용에 기초한다. 이 접근 방식은 문제의 분할을 필요로 하여 신뢰성 없는 시스템에 저장된 암호화된 민감한 데이터가 처리를 위해 신뢰성 있는 시스템에 전달되고 암호화된 결과가 처리 이후에 신뢰성 없는 시스템에 반환된다.
일부 실시예들은 원격 프로세스에 기초한다. 사용자 디바이스 상에서 암호화된 데이터를 처리하기 위해 이용되는 프로그램이 배포된다. 이것은 분할 알고리즘이 필요 없다는 장점이 있다. 그러나 이것은 프로그램을 두 가지 범주로 분류하는 것을 필요로 한다.
일부 실시예들은 원격 운영 체제(OS)에 기초한다. 전체 OS 인스턴스가 가상화 메커니즘을 이용하여 사용자 디바이스에서 실행된다. 프라이버시 민감도를 요구하는 사용자가 전체 클라우드 환경을 자신의 디바이스에 배포하고 데이터 소스로서 클라우드만 이용한다.
세 가지 접근 방식 모두 가능하며, 실현 가능성은 애플리케이션 도메인에 달려있다. 또한, 다른 신뢰 의존성도 있다. 클라우드 소프트웨어 제공자는 기밀 알고리즘이 포함된 독점적 서비스를 제공한다. 그것들을 클라이언트 디바이스에 노출시키는 것은, 경쟁자가 알고리즘을 리버스 엔지니어링하고 복사할 수 있다는 것을 의미한다. 데이터 처리에는 클라우드 제공자의 소프트웨어 실행이 포함되기 때문에, 악의적인 클라우드 제공자가 사용자의 개인 데이터를 유출하는 것이 여전히 가능하다. 그러나 사용자의 구내에서 계산을 수행하면, 증명 기반 기술이 이용되더라도 검출하는 것이 매우 어려운 하드웨어 기반 공격을 완화시킨다. 많은 하드웨어 기반 공격은 "공격자로서의 사용자" 범주에 속하며, 여기에서 사용자는 컴퓨팅 인프라를 소유하므로 이러한 공격에 대한 동기는 매우 낮다.
원격 절차 호출.
예시적인 실시예에서, 개인 클라우드에 저장된 개개의 개인 데이터 값은, 민감하거나 비민감한 것으로 태깅된다. 민감한 부분은 암호화된 형태로 저장된다. 데이터 처리가 이러한 민감한 데이터 필드에 액세스할 때마다, 실행은 사용자의 로컬 시스템으로 이동된다. 비민감한 데이터의 처리는 클라우드 환경에서 수행될 수 있다. 암호화된 민감한 자료의 해독 키는 사용자의 로컬 시스템에서만 이용 가능하다.
일부 구현예들에서, 모든 데이터가 데이터베이스에 저장되고, 모든 데이터 항목에는 민감도 값 필드가 있다. 오직 두 개의 민감도 레벨이 있는 경우, 이 값은 2진 플래그 값이 될 수 있다. 클라우드 제공자는 메타 데이터 정보에 여전히 액세스할 수 있지만, 데이터 자체는 암호화된다는 것을 유념한다. 제공자는 '급여', '질병', '범죄 기록'과 같은 데이터 필드의 이름을 모니터링할 수 있지만, 콘텐츠 자체는 암호화된다. 일부 실시예들에서, 데이터의 민감도를 확인하기 위해 이용되는 함수가 있다. 클라이언트 시스템은 데이터를 처리하기 위해 이용되는 원격 절차 호출 세트를 이용한다. 다음의 파이썬(Python) 프래그먼트는 예시적인 프로그램 흐름 시나리오를 입증한다.
field1 = get_field(indexl)
field2 = get_field(index2)
if sensitive(field1) or sensitive(field2) :
ret = rpc_functionA(field1, field2, Personal)
else :
ret = functionA(fieldl, field2)
이 예제의 모든 데이터 필드에는 민감도 태그가 포함되어 있으므로, 파라미터로 이용될 필드 중 하나가 민감한 필드인 것으로 검출되면 민감한 데이터의 처리가 사용자의 개인 디바이스에 포워딩된다.
위의 예시적인 코드에서, 비민감한 데이터의 처리는 클라우드 프로그램의 서브 루틴(functionA)으로 구현된 코드를 이용하지만, 민감한 데이터의 처리는 원격 절차 호출의 클라이언트 스텁 함수(rpc_functionA)를 호출하여 사용자 시스템에 위임된다. 이 함수는 또한 데이터를 처리해야 할 위치를 지정하는 파라미터(Personal)를 가질 수 있다. 사용자의 로컬 디바이스에는 각각의 지정된 RPC 호출을 구현하기 위한 실행 코드 및 RPC 수신기 구성 요소가 제공된다. RPC 호출은 원격 시스템에 민감도 정보를 전달한다. RPC 함수 호출은 동일한 함수 호출에 암호화된 텍스트 파라미터 및 일반 텍스트 파라미터 모두를 가질 수 있다. 민감도 정보가 변수와 함께 전달되기 때문에, 구현 함수는 필요에 따라 파라미터를 해독할 수 있다.
원격 절차 호출을 이용하는 일부 구현예들에서, 사용자 디바이스에서 함수를 수행한다는 결정에 대한 응답으로, 클라우드 서버는 스텁 함수에 대한 호출을 수행하고, 파라미터는 스택에 푸시된다. 스텁은 파라미터를 메시지로 마샬링하고, 메시지를 전송하기 위해 시스템 호출을 한다. 클라우드 서버의 운영 체제는 클라우드 서버에서 사용자의 디바이스에 메시지를 전송한다.
사용자의 운영 체제는 들어오는 패킷을 스텁 함수에 전달한다. 스텁 함수는 메시지로부터 파라미터를 언팩(언마샬링)한다. 클라이언트 머신 상의 스텁 함수는 필수 로컬 함수를 호출한다. 클라우드에 대한 응답은 반대 방향으로 동일한 단계를 추적한다.
일부 실시예들에서, 클라우드와 개인 디바이스 간의 네트워크 통신이 또한 보호된다. 예를 들어, 전송 계층 보안(Transport Layer Security; TLS) 또는 IPSEC 기반 가상 사설망(virtual private network; VPN)을 이용하여 통신을 터널링할 수 있다.
원격 프로세스.
일부 실시예들에서, 프로세스 내에서 데이터 처리를 분할하는 대신에, 전체 프로세스가 사용자 구내로 이동된다. 암호화된 콘텐츠를 갖는 클라우드 기반 데이터베이스가 있는 경우, 사용자 구내에서 실행 중인 프로세스는 암호화된 저장소에 액세스하고 콘텐츠를 다운로드한다. 콘텐츠는 사용자의 디바이스에서 해독되고 처리된다. 비민감한 데이터 처리는 여전히 클라우드 서비스로서 수행된다.
예를 들어, 소프트웨어의 일부분이 클라우드 서버에 의해 사용자 디바이스에 제공될 수 있다. 그런 다음, 사용자 디바이스 상에서 인스턴스화된 소프트웨어는 신뢰성 있는 컴퓨팅 환경에서 실행될 수 있다. 이와 같이, 클라우드 서버는 클라우드의 암호화된 데이터에 따라 행동하라는 요청에 응답하여, 암호화된 데이터와 함께 컴퓨터 코드를 사용자 디바이스에 제공한다. 사용자 디바이스는 신뢰성 있는 컴퓨팅 환경에서 소프트웨어의 일부분을 인스턴스화하기 위해 코드를 실행하고, 사용자 디바이스에서 콘텐츠를 해독하며, 해독된 콘텐츠를 통해 소프트웨어를 실행한다. 사용자 디바이스는 콘텐츠를 재암호화하고, 처리되고 재암호화된 콘텐츠를 다시 클라우드 서버에 전달한다. 일부 실시예들에서, 컴퓨터 코드는 클라우드에서 이용 가능한 소프트웨어의 일부분(예를 들어, 사용자 인터페이스가 없는 특정 포토 필터와 같은 더 큰 프로그램의 단일 동작)을 포함할 수 있다.
RPC 실시예와 비교하여, 사용자 디바이스에서 요청된 프로세스를 수행하기 위한 기존의 로컬 함수가 없으므로, 그러한 함수를 위한 컴퓨터 코드는 사용자 디바이스에 전달된다.
원격 운영 체제.
사용자 디바이스에서 실행되는 원격 프로세스가 또한 사용자 환경을 모니터링할 수 있으므로 프라이버시 위협이 될 수 있다. 이러한 위협을 완화시키기 위해, 가상화된 환경을 이용하여 로컬 처리를 수행할 수 있다. 이 솔루션은 전체 가상화를 기반으로 할 수도 있고, 도커(Docker) 시스템에서처럼 이름 공간 기반 분할과 같은 더 가벼운 것을 기반으로 할 수도 있다.
예시적인 서비스.
예시적인 실시예에서, 사진 조작 클라우드 서비스가 제공된다. 예를 들어, 사진 조작 클라우드 서비스를 이용하여 개인 이미지에 필터와 같은 다양한 효과를 추가할 수 있다. 이미지는 암호화된 형태로 저장되지만, 사용자에게 이미지를 처리하는 능력이 제공된다. 예시적인 서비스는 사용자가 선택할 수 있는 필터 세트를 제공한다.
도 3에 도시된 예시적인 방법(300)에서, 사용자 디바이스(302)는 데이터를 암호화하고(단계 305), 암호화된 데이터를 클라우드 서비스(304)에 업로드하며(단계 310), 클라우드 서비스(304)는 업로드된 데이터를 저장한다(단계 315). 클라우드 서비스는 하나 이상의 서버를 포함할 수 있다. 사용자는 또한 클라우드 서비스에 암호화되지 않은 데이터를 업로드할 수도 있고(단계 312), 클라우드 서비스(304)는 업로드된 데이터를 저장한다(단계 315). 사용자 디바이스는 선택된 데이터를 처리하라는 요청을 클라우드 서비스에 전송할 수 있다(단계 320). 클라우드 서비스는 선택된 데이터를 처리하라는 요청을 수신하고(단계 325), 선택된 데이터가 암호화되어 있는지 여부를 결정한다(단계 330). (이 예시적인 실시예에서, 클라우드 서비스에 대응하는 해독 키가 제공되지 않으면, 데이터는 암호화된 상태로 간주된다는 것을 유념한다. 예를 들어, 클라우드 서비스가 해독 키를 갖는 데이터는 이 예제에서 암호화된 것으로 간주되지 않는다.)
처리될 데이터가 암호화되어 있는 경우(단계 332a), 그 데이터는 그 데이터를 처리하는 방법에 대한 명령어와 함께, 해독 및 처리를 위해 사용자 디바이스에 암호화된 형태로 전송된다(단계 335). 데이터 처리 방법에 대한 명령어는 다양한 형태로 제공될 수 있다. 예를 들어, 명령어는 원격 절차 호출의 일부로서 제공될 수 있거나, 또는 클라우드 서비스는 사용자 디바이스에 데이터 처리를 수행하기 위한 컴퓨터 코드(예를 들어, 사진 편집 필터 등과 같은 데이터에 대해 요구된 처리를 수행하기 위한 소프트웨어의 실행 가능한 부분)를 전달할 수 있다. 사용자 디바이스는 암호화된 데이터를 수신하고(단계 340), 데이터를 해독하며(단계 345), 수신된 명령어에 따라 데이터를 처리한다(단계 350). 일부 실시예들에서, 데이터를 처리하는 단계는, 데이터에 대한 처리를 수행하기 위해 사용자 디바이스에서 소프트웨어를 인스턴스화하도록 컴퓨터 코드를 실행하는 단계를 더 포함할 수 있다. 그런 다음, 사용자 디바이스는 결과적인 처리된 데이터를 재암호화하고(단계 355), 암호화된 처리된 데이터를 클라우드 서비스에 다시 전송하며(단계 360), 클라우드 서비스는 암호화된 처리된 데이터를 저장한다(단계 365). 일부 실시예들에서, 컴퓨터 코드는 데이터 처리 후에 및/또는 재암호화된 처리된 데이터를 클라우드에 업로드한 후에 사용자 디바이스로부터 제거될 수 있다.
클라우드 서비스가 데이터 처리를 수행하기 위해 이용된 컴퓨터 코드를 사용자 디바이스에 전달하는 일부 실시예들에서, 복사 및/또는 리버스 엔지니어링으로부터 컴퓨터 코드를 보호하는 단계들이 취해질 수 있다. 예를 들어, 컴퓨터 코드는 암호화된 형태로 사용자 디바이스에 전송될 수 있으며,이 코드는 ARM TrustZone과 같은 격리된 실행 환경에서 해독되고 실행된다. 일부 실시예들에서, 원격 증명, 밀폐된 저장소 및/또는 메모리 커튼과 같은 신뢰성 있는 컴퓨팅 기술이 클라우드 서비스의 지적 재산권을 보호하기 위해 이용된다. 일부 실시예들에서, 클라우드 서비스는 직접적인 익명의 증명(direct anonymous attestation)과 같은 원격 증명 프로토콜을 이용하여 사용자 디바이스로부터 증명을 요청할 수 있고, 사용자 디바이스로부터 만족스러운 응답을 수신한 이후에만 사용자 디바이스에 컴퓨터 코드를 전송할 수 있다.
처리될 데이터가 암호화되지 않은 경우(단계 332b), 데이터는 클라우드 서비스에 의해 처리되고(단계 370), 그런 다음 처리된 데이터를 저장한다(단계 375). 일부 실시예들에서, 처리된 데이터는 또한 클라이언트 디바이스에 전달될 수 있다. 일부 실시예들에서, 처리된 데이터는 부분적 형태 또는 저해상도 형태로만 클라이언트 디바이스에 전달된다. 예를 들어, 큰 이미지 파일은 (예컨대, 필터를 적용하거나 안면 인식을 수행하기 위해) 클라우드 서비스에 의해 처리될 수 있고, 전체 해상도의 처리된 이미지는 클라우드 서비스에 의해 저장되고, 처리된 이미지의 저해상도 버전은 사용자 디바이스에 제공되어, 사용자가 이미지의 전체 해상도 버전을 다운로드할 필요 없이 처리가 올바르게 수행되었음을 사용자가 확인할 수 있게 한다.
도 4에 도시된 예시적인 방법에서, 사용자(401)는 하나 이상의 사진을 촬영하거나 획득한다(단계 405). 사진은 암호화되어 개인의 암호화된 데이터 클라우드에 저장(예컨대, 업로드)된다(단계 410). 각각의 새로운 사진은 모두 투명하게 암호화되어 암호화된 클라우드 사진 갤러리(402)에 업로드된다. 사용자에게는 갤러리 이미지를 투명하게 해독하고 그러한 이미지를 사용자에게 디스플레이하는 뷰어 소프트웨어가 제공된다(단계 415).
신뢰 데이터 마이닝 샌드 박스(trusted data mining sandbox; TDMS)와 같은 신뢰성 있는 컴퓨팅 환경이 사용자 디바이스 상에 인스턴스화된다(단계 420). 사용자는 이미지를 조작하기 위해 이용될 수 있는 이미지 필터링 서비스(403)를 선택한다(단계 425). 선택된 조작 필터는 신뢰성 있는 컴퓨팅 환경에 설치된다(단계 430). 사용자는 필터 파라미터를 구성하고(단계 435) 조정한다(단계 440). 필터링된 이미지는 사용자에게 보여진다(단계 445). 필터링된 이미지는 투명하게 암호화되어 암호화된 개인 클라우드 사진 갤러리에 업로드된다(단계 450). 그런 다음, 신뢰성 있는 컴퓨팅 환경은 삭제된다(단계 455).
일부 실시예들에서, 시스템은 들어오는 데이터 패킷의 처리를 다루는 사용자 디바이스 상의 기존 소프트웨어에 대한 하나 이상의 파라미터와 함께 암호화된 데이터를 사용자 디바이스에 전달할 수 있다. 일부 실시예들에서, 시스템은 데이터와 연관된 디스크립터(예를 들어, MIME 타입)와 함께 암호화 데이터를 사용자 디바이스에 전달하여 적절한 프로세스를 론칭할 수 있다. 일부 실시예들에서, 시스템은 스크립팅 언어 코드(최소 1 라인을 가짐)의 일부분과 함께 암호화된 데이터를 사용자 디바이스에 전달할 수 있다. 이러한 경우, 사용자 디바이스는 암호화된 데이터를 적절하게 처리할 수 있는 신뢰성 있는 런타임 환경을 가질 수 있다.
특징들 및 요소들이 특정한 조합으로 앞서 설명되었지만, 각각의 특징 또는 요소는 단독으로 이용될 수 있거나, 또는 다른 특징들 및 요소들과 임의의 조합으로 이용될 수 있다는 것을 관련 기술 분야의 당업자는 이해할 것이다. 게다가, 본 명세서에서 설명된 방법은, 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독 가능 저장 매체에 통합된 컴퓨터 프로그램, 소프트웨어 또는 펌웨어로 구현될 수 있다. 컴퓨터 판독 가능 저장 매체의 예에는 읽기 전용 메모리(ROM), 램덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내부 하드 디스크와 제거형 디스크와 같은 자기 매체, 광자기 매체, 및 CD-ROM 디스크와 디지털 다용도 디스크(digital versatile disk; DVD)와 같은 광학 매체가 포함될 수 있지만, 이에 한정되는 것은 아니다. WTRU, UE, 단말기, 기지국, RNC, 또는 임의의 호스트 컴퓨터에서 이용하기 위한 무선 주파수 트랜스시버를 구현하기 위해 소프트웨어와 관련된 프로세서가 이용될 수 있다.
추가의 실시예들은 다음 사항을 포함하지만 이에 한정되는 것은 아니다.
일 실시예에서, 방법은 클라이언트 디바이스로부터 제 1 동작 - 상기 제 1 동작은 제 1 데이터 세트 및 제 2 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 수신하는 단계; 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 암호화되어 있는지 여부를 결정하는 단계; 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 암호화된다는 결정에 응답하여, 클라이언트 디바이스에 제 1 데이터 세트 및 제 2 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계; 및 클라이언트 디바이스로부터 제 1 데이터 세트에 대한 상기 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하는 단계를 포함한다. 일부 실시예들에서, 제 1 데이터 세트 및 제 2 데이터 세트 중 오직 하나만 암호화된다. 일부 실시예들에서, 제 1 기능을 수행하라는 명령어는 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함한다. 일부 실시예들에서, 컴퓨터 코드는 암호화된 형태로 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스의 원격 증명을 요청하는 단계를 더 포함하고, 컴퓨터 코드는 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 제 1 처리된 암호화된 데이터를 저장하는 단계를 더 포함한다. 일부 실시예들에서, 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 암호화되어 있는지 여부를 결정하는 단계는, 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 민감한 것으로 표시되는지 여부를 결정하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 의해 수행된다. 일부 실시예들에서, 제 1 데이터 세트 및 제 2 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계는, 원격 절차 호출을 이용하여 수행된다. 일부 실시예들에서, 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함한다.
일 실시예에서, 방법은 클라이언트 디바이스로부터 제 1 동작 - 상기 제 1 동작은 제 1 데이터 세트 및 제 2 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 수신하는 단계; 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 암호화되어 있는지 여부를 결정하는 단계; 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 암호화되어 있으면, 클라이언트 디바이스에 제 1 데이터 세트 및 제 2 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계; 및 클라이언트 디바이스로부터 제 1 데이터 세트 및 제 2 데이터 세트에 대한 제 1 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하는 단계; 제 1 데이터 세트 및 제 2 데이터 세트 중 어느 것도 암호화되어 있지 않은 경우, 제 1 처리된 데이터를 생성하기 위해 제 1 데이터 세트 및 제 2 데이터 세트에 대해 제 1 기능을 수행하는 단계를 포함한다. 일부 실시예들에서, 제 1 데이터 세트 및 제 2 데이터 세트 중 오직 하나만 암호화된다. 일부 실시예들에서, 제 1 기능을 수행하라는 명령어는 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함한다. 일부 실시예들에서, 컴퓨터 코드는 암호화된 형태로 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스의 원격 증명을 요청하는 단계를 더 포함하고, 컴퓨터 코드는 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 제 1 처리된 암호화된 데이터를 저장하는 단계를 더 포함한다. 일부 실시예들에서, 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 암호화되어 있는지 여부를 결정하는 단계는, 제 1 데이터 세트 및 제 2 데이터 세트 중 적어도 하나가 민감한 것으로 표시되는지 여부를 결정하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스에 제 1 처리된 데이터를 전송하는 단계를 더 포함한다. 일부 실시예들에서, 상기 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 의해 수행된다. 일부 실시예들에서, 제 1 데이터 세트 및 제 2 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계는, 원격 절차 호출을 이용하여 수행된다. 일부 실시예들에서, 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함한다.
일 실시예에서, 방법은 클라이언트 디바이스로부터 제 1 동작 - 상기 제 1 동작은 적어도 제 1 데이터 세트에 대해 수행되는 제 1 기능 및 제 2 데이터 세트에 대해 수행되는 제 2 기능을 포함함 - 을 수행하라는 요청을 수신하는 단계; 제 1 데이터 세트 및 제 2 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계; 제 1 데이터 세트가 암호화된다는 결정에 응답하여, 클라이언트 디바이스에 제 1 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계; 및 클라이언트 디바이스로부터 제 1 데이터 세트에 대한 상기 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하는 단계; 및 제 2 데이터 세트가 암호화되지 않는다는 결정에 응답하여, 제 2 처리된 데이터를 생성하기 위해 제 2 데이터 세트에 대해 제 2 기능을 수행하는 단계를 포함한다. 일부 실시예들에서, 제 1 기능을 수행하라는 명령어는 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함한다. 일부 실시예들에서, 컴퓨터 코드는 암호화된 형태로 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스의 원격 증명을 요청하는 단계를 더 포함하고, 컴퓨터 코드는 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 제 1 처리된 암호화된 데이터를 저장하는 단계를 더 포함한다. 일부 실시예들에서, 제 1 데이터 세트 및 제 2 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계는, 제 1 데이터 세트 및 제 2 데이터 세트가 민감한 것으로 표시되는지 여부를 결정하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스에 제 2 처리된 데이터를 전송하는 단계를 더 포함한다. 일부 실시예들에서, 상기 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 의해 수행된다. 일부 실시예들에서, 제 1 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계는, 원격 절차 호출을 이용하여 수행된다. 일부 실시예들에서, 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함한다.
일 실시예에서, 방법은 클라이언트 디바이스로부터 제 1 동작 - 상기 제 1 동작은 제 1 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 수신하는 단계; 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계; 제 1 데이터 세트가 암호화된다는 결정에 응답하여, 클라이언트 디바이스에 제 1 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계; 및 클라이언트 디바이스로부터 제 1 데이터 세트에 대한 상기 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하는 단계; 클라이언트 디바이스로부터 제 2 동작 - 상기 제 2 동작은 적어도 제 2 데이터 세트에 대해 제 1 기능을 수행하는 것을 포함함 - 을 수행하라는 요청을 수신하는 단계; 제 2 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계; 제 2 데이터 세트가 암호화되지 않는다는 결정에 응답하여, 제 2 처리된 데이터를 생성하기 위해 제 2 데이터 세트에 대해 제 1 기능을 수행하는 단계를 포함한다. 일부 실시예들에서, 제 1 기능을 수행하라는 명령어는 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함한다. 일부 실시예들에서, 컴퓨터 코드는 암호화된 형태로 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스의 원격 증명을 요청하는 단계를 더 포함하고, 컴퓨터 코드는 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 제 1 처리된 암호화된 데이터를 저장하는 단계를 더 포함한다. 일부 실시예들에서, 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계는, 제 1 데이터 세트가 민감한 것으로 표시되는지 여부를 결정하는 단계를 포함한다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스에 제 2 처리된 데이터를 전송하는 단계를 더 포함한다. 일부 실시예들에서, 상기 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 의해 수행된다. 일부 실시예들에서, 제 1 데이터 세트 및 제 1 기능을 수행하라는 명령어를 전송하는 단계는, 원격 절차 호출을 이용하여 수행된다. 일부 실시예들에서, 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함한다.
일 실시예에서, 방법은 제 1 세트의 암호화된 데이터 레코드 및 제 2 세트의 암호화되지 않은 데이터 레코드를 포함하는 복수의 이미지 파일을 저장하는 단계; 클라이언트 디바이스로부터 복수의 데이터 레코드를 처리하라는 요청을 수신하는 단계; 복수의 데이터 레코드 중 어느 것이 제 1 세트에 있고 복수의 데이터 레코드 중 어느 것이 제 2 세트에 있는지를 결정하는 단계; 클라이언트 디바이스에 제 1 세트의 데이터 레코드 및 제 1 세트의 데이터 레코드를 처리하라는 명령어를 전송하는 단계; 제 2 세트의 데이터 레코드를 처리하는 단계; 클라이언트 디바이스로부터 제 1 세트의 데이터 레코드의 상기 처리의 암호화된 결과를 나타내는 제 3 세트의 암호화된 처리된 데이터 레코드를 수신하는 단계를 포함한다. 일부 실시예들에서, 제 1 세트의 데이터 레코드를 처리하라는 명령어는, 제 1 세트의 데이터 레코드를 처리하기 위한 컴퓨터 코드를 포함한다. 일부 실시예들에서, 컴퓨터 코드는 암호화된 형태로 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스의 원격 증명을 요청하는 단계를 더 포함하고, 컴퓨터 코드는 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 클라이언트 디바이스에 전송된다. 일부 실시예들에서, 상기 방법은 제 3 세트의 암호화된 처리된 데이터 레코드를 저장하는 단계를 더 포함한다. 일부 실시예들에서, 복수의 이미지 파일 중 어느 것이 제 1 세트에 있고 복수의 이미지 파일 중 어느 것이 제 2 세트에 있는지를 결정하는 단계는, 복수의 이미지 파일 중 어느 것이 민감한 것으로 표시되는지를 결정하는 단계를 포함한다. 일부 실시예들에서, 제 2 세트의 데이터 레코드의 처리는 제 4 세트의 처리된 데이터 레코드를 생성하고, 상기 방법은 클라이언트 디바이스에 제 4 세트의 처리된 데이터 레코드를 전송하는 단계를 더 포함한다. 일부 실시예들에서, 상기 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 의해 수행된다. 일부 실시예들에서, 제 1 세트의 데이터 레코드 및 제 1 기능을 수행하라는 명령어를 전송하는 단계는, 원격 절차 호출을 이용하여 수행된다. 일부 실시예들에서, 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함한다.
일 실시예에서, 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 제 1 세트의 암호화된 데이터를 전송하는 단계; 클라우드 서비스에 제 1 동작 - 상기 제 1 동작은 제 1 세트의 암호화된 데이터에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 전송하는 단계; 제 1 동작을 수행하라는 요청에 응답하여, 제 1 세트의 암호화된 데이터 및 제 1 기능을 수행하라는 명령어를 수신하는 단계; 제 1 해독화된 데이터를 생성하기 위해 제 1 세트의 암호화된 데이터를 해독하는 단계; 제 1 처리된 데이터를 생성하기 위해 제 1 해독화된 데이터에 대해 제 1 기능을 수행하는 단계; 제 1 처리된 암호화된 데이터를 생성하기 위해 제 1 처리된 데이터를 암호화하는 단계; 및 클라우드 서비스에 제 1 처리된 암호화된 데이터를 전송하는 단계를 포함한다. 일부 실시예들에서, 제 1 세트의 데이터 레코드를 처리하라는 명령어는 제 1 세트의 데이터 레코드를 처리하기 위한 컴퓨터 코드를 포함한다. 일부 실시예들에서, 제 1 기능은 클라이언트 디바이스 상의 신뢰성 있는 컴퓨팅 환경에서 수행된다. 일부 실시예들에서, 상기 방법은 클라우드 서비스에 원격 증명을 제공하는 단계를 더 포함한다. 일부 실시예들에서, 컴퓨터 코드는 암호화되고, 상기 방법은 실행을 위해 컴퓨터 코드를 해독화하는 단계를 더 포함한다. 일부 실시예들에서, 컴퓨터 코드의 해독화는 신뢰성 있는 컴퓨팅 환경에서 수행된다. 일부 실시예들에서, 상기 방법은 클라이언트 디바이스에 의해 수행된다. 일부 실시예들에서, 제 1 세트의 데이터 레코드 및 제 1 기능을 수행하라는 명령어의 수신은, 원격 절차 호출을 이용하여 수행된다. 일부 실시예들에서, 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함한다.
일 실시예에서, 방법은 제 1 이미지 파일을 포함하는 복수의 이미지 파일을 저장하는 단계; 클라이언트 디바이스로부터 제 1 이미지 파일을 처리하라는 요청을 수신하는 단계; 제 1 이미지 파일이 암호화되어 있는지 여부를 결정하는 단계; 제 1 이미지 파일이 암호화되어 있으면, 클라이언트 디바이스에 제 1 이미지 파일 및 제 1 이미지 파일을 처리하라는 명령어를 전송하는 단계; 및 클라이언트 디바이스로부터 제 1 이미지 파일의 상기 처리의 암호화된 결과를 나타내는 제 1 암호화된 처리된 이미지 파일을 수신하는 단계; 제 1 이미지 파일이 암호화되어 있지 않은 경우, 제 1 처리된 이미지 파일을 생성하기 위해 제 1 이미지 파일을 처리하는 단계를 포함한다.
일 실시예에서, 방법은 제 1 이미지 파일을 포함하는 복수의 이미지 파일을 저장하는 단계; 클라이언트 디바이스로부터 제 1 이미지 파일을 처리하라는 요청을 수신하는 단계; 제 1 이미지 파일이 암호화되어 있는지 여부를 결정하는 단계; 제 1 이미지 파일이 암호화된다는 결정에 응답하여, 클라이언트 디바이스에 제 1 이미지 파일 및 제 1 이미지 파일을 처리하라는 명령어를 전송하는 단계; 및 클라이언트 디바이스로부터 제 1 이미지 파일의 상기 처리의 암호화된 결과를 나타내는 제 1 암호화된 처리된 이미지 파일을 수신하는 단계를 포함한다.
일 실시예에서, 방법은 제 1 세트의 암호화된 이미지 파일 및 제 2 세트의 암호화되지 않은 이미지 파일을 포함하는 복수의 이미지 파일을 저장하는 단계; 클라이언트 디바이스로부터 복수의 이미지 파일을 처리하라는 요청을 수신하는 단계; 복수의 이미지 파일 중 어느 것이 제 1 세트에 있고 복수의 이미지 파일 중 어느 것이 제 2 세트에 있는지를 결정하는 단계; 클라이언트 디바이스에 제 1 세트의 이미지 파일 및 제 1 세트의 이미지 파일을 처리하라는 명령어를 전송하는 단계; 제 2 세트의 이미지 파일을 처리하는 단계; 클라이언트 디바이스로부터 제 1 세트의 이미지 파일의 상기 처리의 암호화된 결과를 나타내는 제 3 세트의 암호화된 처리된 이미지 파일을 수신하는 단계를 포함한다.

Claims (20)

  1. 방법에 있어서,
    클라이언트 디바이스로부터, 제 1 동작 - 상기 제 1 동작은 제 1 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 수신하는 단계;
    상기 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계;
    상기 제 1 데이터 세트가 암호화되어 있으면,
    상기 클라이언트 디바이스에, 상기 제 1 데이터 세트 및 상기 제 1 기능을 수행하라는 명령어 - 상기 명령어는 상기 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함함 - 을 전송하는 단계; 및
    상기 클라이언트 디바이스로부터, 상기 제 1 데이터 세트에 대한 상기 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하는 단계; 및
    상기 제 1 데이터 세트가 암호화되어 있지 않은 경우,
    제 1 처리된 데이터를 생성하기 위해 상기 제 1 데이터 세트에 대해 상기 제 1 기능을 수행하는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 컴퓨터 코드는 암호화된 형태로 상기 클라이언트 디바이스에 전송되는 것인, 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 클라이언트 디바이스의 원격 증명(remote attestation)을 요청하는 단계를 더 포함하고, 상기 컴퓨터 코드는 상기 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 상기 클라이언트 디바이스에 전송되는 것인, 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 1 처리된 암호화된 데이터를 저장하는 단계를 더 포함하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계는, 상기 제 1 데이터 세트가 민감한 것으로서 표시되어 있는지 여부를 결정하는 단계를 포함하는 것인, 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 클라이언트 디바이스에, 상기 제 1 처리된 데이터를 전송하는 단계를 더 포함하는 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 의해 수행되는 것인, 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함하는 것인, 방법.
  9. 방법에 있어서,
    클라이언트 디바이스로부터, 제 1 동작 - 상기 제 1 동작은 제 1 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 수신하는 단계;
    상기 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계;
    상기 제 1 데이터 세트가 암호화되어 있다는 결정에 응답하여,
    상기 클라이언트 디바이스에, 상기 제 1 데이터 세트 및 상기 제 1 기능을 수행하라는 명령어 - 상기 제 1 기능을 수행하라는 명령어는 상기 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함함 - 을 전송하는 단계; 및
    상기 클라이언트 디바이스로부터, 상기 제 1 데이터 세트에 대한 상기 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하는 단계
    를 포함하는 방법.
  10. 제 9 항에 있어서, 상기 컴퓨터 코드는 암호화된 형태로 상기 클라이언트 디바이스에 전송되는 것인, 방법.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 클라이언트 디바이스의 원격 증명을 요청하는 단계를 더 포함하고,
    상기 컴퓨터 코드는 상기 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 상기 클라이언트 디바이스에 전송되는 것인, 방법.
  12. 제 9 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 제 1 처리된 암호화된 데이터를 저장하는 단계를 더 포함하는 방법.
  13. 제 9 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하는 단계는, 상기 제 1 데이터 세트가 민감한 것으로서 표시되어 있는지 여부를 결정하는 단계를 포함하는 것인, 방법.
  14. 제 9 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 방법은 적어도 하나의 서버를 포함하는 클라우드 서비스에 의해 수행되는 것인, 방법.
  15. 제 9 항 내지 제 14 항 중 어느 한 항에 있어서, 상기 컴퓨터 코드는 실행 가능한 컴퓨터 코드를 포함하는 것인, 방법.
  16. 프로세서 및 비일시적 데이터 저장 매체를 갖는 적어도 하나의 서버를 포함하는 클라우드 서비스에 있어서,
    상기 비일시적 데이터 저장 매체는 상기 프로세서에 의해 실행될 때,
    클라이언트 디바이스로부터, 제 1 동작 - 상기 제 1 동작은 제 1 데이터 세트에 대해 수행되는 적어도 제 1 기능을 포함함 - 을 수행하라는 요청을 수신하고;
    상기 제 1 데이터 세트가 암호화되어 있는지 여부를 결정하도록 동작 가능한 명령어를 저장하고,
    상기 명령어는, 상기 제 1 데이터 세트가 암호화되어 있는 경우,
    상기 클라이언트 디바이스에, 상기 제 1 데이터 세트 및 상기 제 1 기능을 수행하라는 명령어 - 상기 제 1 기능을 수행하라는 명령어는 상기 제 1 기능을 수행하기 위한 컴퓨터 코드를 포함함 - 을 전송하고;
    상기 클라이언트 디바이스로부터, 상기 제 1 데이터 세트에 대한 상기 기능의 암호화된 결과를 나타내는 제 1 처리된 암호화된 데이터를 수신하도록 동작 가능하며,
    상기 명령어는, 상기 제 1 데이터 세트가 암호화되지 않은 경우,
    제 1 처리된 데이터를 생성하기 위해 상기 제 1 데이터 세트에 대해 상기 제 1 기능을 수행하도록 동작 가능한 것인, 클라우드 서비스.
  17. 제 16 항에 있어서, 상기 클라우드 서비스는 암호화된 형태로 상기 클라이언트 디바이스에 상기 컴퓨터 코드를 전송하도록 동작 가능한 명령어를 포함하는 것인, 시스템.
  18. 제 16 항 또는 제 17 항에 있어서,
    상기 클라우드 디바이스의 원격 증명을 요청하도록 동작 가능한 명령어를 더 포함하고,
    상기 컴퓨터 코드는 상기 클라이언트 디바이스의 만족스러운 증명을 수신한 이후에만 상기 클라이언트 디바이스에 전송되는 것인, 시스템.
  19. 제 16 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 명령어는 또한 상기 제 1 처리된 암호화된 데이터를 저장하도록 동작 가능한 것인, 시스템.
  20. 제 16 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 제 1 데이터 세트가 암호화되어 있는지 여부에 대한 결정은, 상기 제 1 데이터 세트가 민감한 것으로 표시되는지 여부를 결정하도록 동작 가능한 명령어를 이용하여 수행되는 것인, 시스템.
KR1020177031318A 2015-04-10 2016-03-31 클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법 KR102442269B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562145959P 2015-04-10 2015-04-10
US62/145,959 2015-04-10
PCT/US2016/025337 WO2016164253A1 (en) 2015-04-10 2016-03-31 System and method for delegation of cloud computing processes

Publications (2)

Publication Number Publication Date
KR20180011074A true KR20180011074A (ko) 2018-01-31
KR102442269B1 KR102442269B1 (ko) 2022-09-08

Family

ID=55755733

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031318A KR102442269B1 (ko) 2015-04-10 2016-03-31 클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US20180063092A1 (ko)
EP (1) EP3281379B1 (ko)
JP (1) JP6723263B2 (ko)
KR (1) KR102442269B1 (ko)
CN (1) CN107646189B (ko)
WO (1) WO2016164253A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190128532A (ko) * 2018-05-08 2019-11-18 한국과학기술원 암호화폐 계좌 분석 및 Remote Attestation을 활용한 안전한 암호화폐 거래 방법
KR20210157245A (ko) * 2020-06-19 2021-12-28 재단법인대구경북과학기술원 통합보안을 제공하는 시스템 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10855566B2 (en) * 2016-09-30 2020-12-01 Sap Se Efficiency and performance in Internet-of-Things scenarios
US11005890B2 (en) * 2017-03-30 2021-05-11 Mcafee, Llc Secure software defined storage
US11516154B2 (en) 2017-07-13 2022-11-29 Apple Inc. Systems for managing messaging conversations
US10437580B2 (en) 2017-09-11 2019-10-08 Apple Inc. Software updating methods and systems
US10612940B2 (en) * 2017-11-21 2020-04-07 International Business Machines Corporation Flow meter reading with image recognition secured with mask and software connected by mobile device
US11138315B2 (en) * 2018-01-17 2021-10-05 Hewlett Packard Enterprise Development Lp Data structure measurement comparison
US11119789B2 (en) * 2018-04-25 2021-09-14 Hewlett Packard Enterprise Development Lp Kernel space measurement
CN111259401B (zh) 2018-11-30 2023-05-02 阿里巴巴集团控股有限公司 可信度量方法、装置、系统、存储介质及计算机设备
JP7249248B2 (ja) 2019-08-30 2023-03-30 株式会社日立製作所 秘匿情報処理システム及び秘匿情報処理方法
KR20210132928A (ko) 2020-04-28 2021-11-05 삼성전자주식회사 메모리 컨트롤러의 구동방법, 클라우드 컴퓨팅 장치의 구동방법 및 에지 컴퓨터의 구동 방법
US20220382590A1 (en) * 2021-05-28 2022-12-01 HashiCorp Cloud provider account mappings
US11954226B2 (en) 2021-08-17 2024-04-09 International Business Machines Corporation Verifiable privacy preserving computation
CN114244620B (zh) * 2021-12-24 2023-06-09 湖南云箭智能科技有限公司 一种板卡入网验证方法、装置及板卡控制中心
CN114268652A (zh) * 2021-12-26 2022-04-01 枣庄帐管家财税管理有限公司 一种基于arm构架实现多税务UKey同时在线的税控托管系统及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010042124A1 (en) * 2000-03-27 2001-11-15 Barron Robert H. Web-based method, apparatus, and system for secure data storage
US20110154031A1 (en) * 2009-12-21 2011-06-23 International Business Machines Corporation Secure Kerberized Access of Encrypted File System
US20130263233A1 (en) * 2012-03-27 2013-10-03 Francis Dinha Data access and control
US20140281511A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Secure data processing on sensitive data using trusted hardware
US20140281531A1 (en) * 2013-03-14 2014-09-18 Vinay Phegade Trusted data processing in the public cloud
US20150058629A1 (en) * 2013-08-21 2015-02-26 Mark D. Yarvis Processing Data Privately in the Cloud

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09233067A (ja) * 1990-07-31 1997-09-05 Hiroichi Okano 知的情報処理方法および装置
JP2002278970A (ja) * 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2003202931A (ja) * 2002-01-09 2003-07-18 Toshiba Corp ソフトウェアダウンロードシステム、サーバ装置、端末装置、サーバ制御プログラム、端末制御プログラム、サーバ制御方法、端末制御方法
JP2005209181A (ja) * 2003-12-25 2005-08-04 Sorun Corp ファイル管理システム及び管理方法
JP4434886B2 (ja) * 2004-08-31 2010-03-17 キヤノン株式会社 印刷処理を管理するサーバ及びその制御方法並びにコンピュータプログラム
JP4747749B2 (ja) * 2005-02-18 2011-08-17 富士ゼロックス株式会社 ドキュメント管理システムおよび情報処理装置
JP3814655B1 (ja) * 2005-07-27 2006-08-30 クオリティ株式会社 ファイル管理システム,情報処理装置およびファイル管理プログラム
JP5042800B2 (ja) * 2007-01-09 2012-10-03 ドコモ・テクノロジ株式会社 ネットワークデータ分散共有システム
US20090158035A1 (en) * 2007-12-13 2009-06-18 Stultz John G Public Key Encryption For Web Browsers
US8407190B2 (en) * 2009-06-30 2013-03-26 Commvault Systems, Inc. Performing data storage operations with a cloud environment, including containerized deduplication, data pruning, and data transfer
US8862895B2 (en) * 2010-04-27 2014-10-14 Fuji Xerox Co., Ltd. Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data
US8935317B2 (en) * 2010-06-23 2015-01-13 Microsoft Corporation Dynamic partitioning of applications between clients and servers
US9419841B1 (en) * 2011-06-29 2016-08-16 Amazon Technologies, Inc. Token-based secure data management
CN103392178B (zh) * 2011-11-11 2015-08-26 日本电气株式会社 数据库加密系统、方法和程序
CN102420854A (zh) * 2011-11-14 2012-04-18 西安电子科技大学 面向云存储的分布式文件系统
CN102655508B (zh) * 2012-04-19 2015-03-04 华中科技大学 云环境下的用户隐私数据保护方法
CN103379148A (zh) * 2012-04-19 2013-10-30 北京智慧风云科技有限公司 一种云计算器及其处理文件的方法
CN103888485B (zh) * 2012-12-19 2018-03-09 华为技术有限公司 云计算资源的分配方法、装置及系统
US9064125B2 (en) * 2013-05-03 2015-06-23 Citrix Systems, Inc. Image analysis and management
US9141820B2 (en) * 2013-07-25 2015-09-22 Adobe Systems Incorporated Network-based service content protection
US20150188890A1 (en) * 2013-12-26 2015-07-02 Bare Said Client side encryption in on-demand applications
US9596235B2 (en) * 2015-03-30 2017-03-14 Microsoft Technology Licensing, Llc Power efficient storage management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010042124A1 (en) * 2000-03-27 2001-11-15 Barron Robert H. Web-based method, apparatus, and system for secure data storage
US20110154031A1 (en) * 2009-12-21 2011-06-23 International Business Machines Corporation Secure Kerberized Access of Encrypted File System
US20130263233A1 (en) * 2012-03-27 2013-10-03 Francis Dinha Data access and control
US20140281531A1 (en) * 2013-03-14 2014-09-18 Vinay Phegade Trusted data processing in the public cloud
US20140281511A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Secure data processing on sensitive data using trusted hardware
US20150058629A1 (en) * 2013-08-21 2015-02-26 Mark D. Yarvis Processing Data Privately in the Cloud

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190128532A (ko) * 2018-05-08 2019-11-18 한국과학기술원 암호화폐 계좌 분석 및 Remote Attestation을 활용한 안전한 암호화폐 거래 방법
KR20210157245A (ko) * 2020-06-19 2021-12-28 재단법인대구경북과학기술원 통합보안을 제공하는 시스템 및 방법

Also Published As

Publication number Publication date
EP3281379A1 (en) 2018-02-14
JP6723263B2 (ja) 2020-07-15
WO2016164253A1 (en) 2016-10-13
KR102442269B1 (ko) 2022-09-08
US20180063092A1 (en) 2018-03-01
CN107646189B (zh) 2021-03-26
JP2018515836A (ja) 2018-06-14
CN107646189A (zh) 2018-01-30
EP3281379B1 (en) 2019-01-09

Similar Documents

Publication Publication Date Title
KR102442269B1 (ko) 클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법
US20240160795A1 (en) Peripheral device
US11075955B2 (en) Methods and systems for use in authorizing access to a networked resource
CN107533609B (zh) 用于对系统中的多个可信执行环境进行控制的系统、设备和方法
US10341321B2 (en) System and method for policy based adaptive application capability management and device attestation
US11258773B2 (en) System and method for providing a privacy layer to secure client data in a network
CN109154972B (zh) 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊
US20230325492A1 (en) Secure Runtime Systems And Methods
US9524394B2 (en) Method and apparatus for providing provably secure user input/output
EP3720042B1 (en) Method and device for determining trust state of tpm, and storage medium
Lee et al. S2Net: Preserving privacy in smart home routers
US11768948B1 (en) Enclave-based cryptography services in edge computing environments
Shah et al. Tamec: trusted augmented mobile execution on cloud
CN117763553A (zh) 计算机设备及其运行方法、安全芯片

Legal Events

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