KR20160138450A - 스토리지 디바이스에 대한 신속한 데이터 보호 - Google Patents

스토리지 디바이스에 대한 신속한 데이터 보호 Download PDF

Info

Publication number
KR20160138450A
KR20160138450A KR1020167028179A KR20167028179A KR20160138450A KR 20160138450 A KR20160138450 A KR 20160138450A KR 1020167028179 A KR1020167028179 A KR 1020167028179A KR 20167028179 A KR20167028179 A KR 20167028179A KR 20160138450 A KR20160138450 A KR 20160138450A
Authority
KR
South Korea
Prior art keywords
key
request
storage device
encryption key
computing device
Prior art date
Application number
KR1020167028179A
Other languages
English (en)
Other versions
KR102340219B1 (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 KR20160138450A publication Critical patent/KR20160138450A/ko
Application granted granted Critical
Publication of KR102340219B1 publication Critical patent/KR102340219B1/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

컴퓨팅 디바이스는, 신뢰성 있는 런타임 및 인라인 암호화 프로세서를 포함하는 데이터 암호화 및 암호 해제 시스템을 사용한다. 신뢰성 있는 런타임은 신뢰성 있는 실행 환경을 제공하고, 인라인 암호화 프로세서는, 스토리지 디바이스 판독 및 기록 동작에 따른 데이터의 암호 해제 및 암호화를 제공한다. 스토리지 디바이스의 부분(예를 들면, 파티션)이 정의되면, 신뢰성 있는 런타임은 암호화 키를 생성하고 그 암호화 키를 인라인 암호화 프로세서로 제공하는데, 인라인 암호화 프로세서는 부분으로 기록되는 데이터를 암호화하기 위해 그리고 부분으로부터의 데이터를 암호 해제하기 위해 암호화 키를 사용한다. 부분에 대한 액세스는, 키를 유저 또는 다른 엔티티의 인증용 크리덴셜과 관련시키는 것에 의해 후속적으로 보호될 수 있다. 신뢰성 있는 런타임은 인증용 크리덴셜과 관련되는 인증 키에 기초하여 암호화 키를 보호하여, 적절한 인증용 크리덴셜이 제공되는 것에만 응답하여, 암호화 키에 대한 후속하는 액세스를 허용하게 된다.

Description

스토리지 디바이스에 대한 신속한 데이터 보호{RAPID DATA PROTECTION FOR STORAGE DEVICES}
컴퓨터는 더욱 더 보편화되었고 여러 상이한 설정에서 사용되고 있는데, 이것은, 유저가 컴퓨터 스토리지 디바이스 상에 저장된 데이터가 암호화되는 것을 소망하는 상황으로 이끌었다. 이들 상황은 유저의 개인적 소망, 유저의 컴퓨터는 퍼스널 컴퓨터의 스토리지 디바이스 상에 저장되는 회사 데이터를 암호화해야 한다는 것을 지시하는 회사 방침, 및 등등의 결과일 수 있다. 그러나, 전체 스토리지 디바이스가 암호화되는 것을 대기하는 것은, 유저에게 좌절감을 줄 수 있고, 열악한 유저 경험으로 나타나게 된다.
이 개요는 하기 상세한 설명에서 더 설명되는 엄선된 개념을 간소화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 주요 피쳐나 또는 본질적인 피쳐를 식별하도록 의도된 것이 아니며, 청구된 주제의 범위를 제한하는 데 사용되도록 의도된 것도 아니다.
하나 이상의 양태에 따르면, 컴퓨팅 디바이스에서의 다른 프로그램과는 분리되는 컴퓨팅 디바이스의 신뢰성 있는 런타임(trusted runtime)에서 한 방법이 구현된다. 스토리지 디바이스의 부분(portion)에 대한 키를 생성하려는 요청이 신뢰성 있는 런타임에서 수신된다. 키를 생성하기 위한 요청에 응답하여, 키는, 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 신뢰성 있는 런타임을 사용하여 생성되고 지속된다. 스토리지 디바이스의 부분에 대한 후속하는 기록이 키에 기초하여 암호화되도록, 컴퓨팅 디바이스의 인라인 암호화 프로세서(inline cryptographic processor)로, 키가 또한 프로비저닝된다. 추가적으로, 부분의 보호가 인에이블되어야(enabled) 한다는 요청에 응답하여, 부분의 적어도 일부(part)가 암호화되지 않고 있음에도 불구하고, 부분의 보호가 인에이블되어 있다는 표시가 리턴된다.
하나 이상의 양태에 따르면, 컴퓨팅 디바이스는 인라인 암호화 프로세서 및 컴퓨팅 디바이스의 운영체제로부터 분리되는 신뢰성 있는 런타임을 포함한다. 신뢰성 있는 런타임은, 스토리지 디바이스의 부분에 대한 키를 생성하도록, 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 키를 지속시키도록, 그리고, 스토리지 디바이스의 부분의 보호가 인에이블되어야 한다는 요청에 응답하여, 스토리지 디바이스의 부분의 하나 이상의 일부가 암호화되어 있지 않음에도 불구하고, 스토리지 디바이스의 부분의 보호가 인에이블되어 있다는 표시를 리턴하도록 구성된다. 인라인 암호화 프로세서는, 신뢰성 있는 런타임으로부터 키를 수신하도록, 키에 기초하여 스토리지 디바이스의 일부에 대한 후속 기록을 암호화하도록, 키에 기초하여 스토리지 디바이스의 부분으로부터의 후속하는 판독을 암호 해제하도록(decrypt) 구성된다.
첨부된 도면을 참조로 상세한 설명이 설명된다. 도면에서, 도면 부호의 가장 왼쪽의 숫자(들)는 그 도면 부호가 처음 나타나는 도면을 식별한다. 설명 및 도면의 상이한 사례에서의 동일한 도면 부호의 사용은 유사한 또는 동일한 아이템을 나타낼 수도 있다. 도면에서 표현되는 엔티티는 하나 이상의 엔티티를 나타낼 수도 있고 따라서 논의에서는 엔티티의 단수 형태 또는 복수 형태에 대한 참조가 상호교환적으로 이루어질 수도 있다.
도 1은, 하나 이상의 실시형태에 따른, 스토리지 디바이스에 대한 신속한 데이터 보호를 구현하는 예시적인 컴퓨팅 디바이스를 예시하는 블록도이다.
도 2는, 하나 이상의 실시형태에 따른, 스토리지 디바이스에 대한 신속한 데이터 보호를 구현하는 예시적인 시스템을 예시한다.
도 3은, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 신규로 정의된 부분에 대한 암호화 키를 생성하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 4는, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 부분에 대한 보호를 인에이블하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 5는, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 보호된 부분을 잠그기(lock) 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 6은, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 보호된 부분을 잠금 해제하기(unlocking) 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 7은, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 부분에 대한 보호를 디스에이블하기(disabling) 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 8은, 하나 이상의 실시형태에 따른, 부분의 복원 또는 마이그레이션을 위해 암호화 키를 노출시키기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 9는 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 시스템을 예시한다.
스토리지 디바이스에 대한 신속한 데이터 보호가 본원에서 논의된다. 컴퓨팅 디바이스는, 신뢰성 있는 런타임 및 인라인 암호화 프로세서를 포함하는 데이터 암호화 및 암호 해제 시스템을 사용한다. 신뢰성 있는 런타임은 신뢰성 있는 또는 보호된 실행 환경을 제공하고, 인라인 암호화 프로세서는, 스토리지 디바이스 판독 및 기록 동작에 따른 데이터의 암호 해제 및 암호화를 제공한다. 본원에서 논의되는 신속한 데이터 보호는, 스토리지 디바이스의 다양한 부분, 예컨대 스토리지 디바이스의 파티션과 함께 작동한다. 스토리지 디바이스의 부분이 작성되면, 신뢰성 있는 런타임은 부분에 대한 암호화 키를 생성하고 그 암호화 키를 인라인 암호화 프로세서로 제공한다. 인라인 암호화 프로세서는, 부분에 기록되는 데이터를 암호화하기 위해 그리고 부분으로부터 판독되는 데이터를 암호 해제하기 위해 암호화 키를 사용하지만, 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 암호화 키를 지속하지는 않는다. 신뢰성 있는 런타임은 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 암호화 키를 보안적으로 지속하여, 운영체제가, 부분에 저장된 데이터를 암호화하고 암호 해제하기 위한 암호화 키의 사용을 요청하는 것을 허용하지만, 암호화 키를 운영체제에게 노출시키지는 않는다.
그 후, 부분에 대한 액세스는, 키를 특정한 인증용 크리덴셜(authentication credential)과 관련시키는 것에 의해 보호될 수 있다. 유저 또는 다른 엔티티의 인증용 크리덴셜은 신뢰성 있는 런타임으로 제공되는데, 신뢰성 있는 런타임은 인증용 크리덴셜에 기초하여 암호화 키를 보호한다(예를 들면, 암호화 키를, 유저 또는 다른 엔티티의 인증용 키(authentication key)를 사용하여 암호화한다). 그 후, 신뢰성 있는 런타임은 보호된 암호화 키를 지속시킨다. 따라서, 그 후, 적절한 인증용 크리덴셜이 제공되는 것에만 응답하여 암호화 키에 대한 액세스가 신뢰성 있는 런타임에 의해 획득될 수 있고, 따라서 부분에 저장된 데이터에 대한 액세스를, 적절한 인증용 크리덴셜을 제공하는 유저 또는 엔티티로 제한하게 된다.
따라서, 부분의 작성시, 부분에 기록되는 데이터는 암호화 키를 사용하여 암호화되고 암호 해제된다. 이 암호화 및 암호 해제는, 부분 상의 데이터를 암호화되게 하려는 유저로부터의 어떠한 명령어 또는 요청과도 무관하게 발생한다. 부분 상의 데이터를 암호화되게 하려는 후속하는 유저 요청에 응답하여, 암호화 키에 대한 액세스는 유저의 인증용 크리덴셜에 기초하여 제어되거나 제한된다. 또한, 이러한 유저 요청에 응답하여, 부분 상의 데이터는 암호화되어 있거나 또는 보호되고 있다는 표시가 신속하게 리턴될 수 있다; 이전에 부분에 기록된 모든 데이터가 이미 암호화되어 있기 때문에 부분이 암호화되기를 기다릴 필요 없이 그 표시가 리턴될 수 있고, 후속하여 부분에 기록되는 데이터도 또한 암호화 키를 사용하여 암호화될 것이다. 그러나, 정확한 인증용 크리덴셜을 제공할 수 있는 유저만이, 인라인 암호화 프로세서가 암호화 키에 대한 액세스를 획득하는 것을 인가할 수 있고, 따라서 인라인 암호화 프로세서가 부분 상에 저장된 데이터를 후속하여 암호 해제하는 것 및 부분 상에서의 저장을 위해 데이터를 암호화하는 것을 허용할 수 있다.
도 1은 하나 이상의 실시형태에 따른 스토리지 디바이스에 대한 신속한 데이터 보호를 구현하는 예시적인 컴퓨팅 디바이스(100)를 예시하는 블록도이다. 컴퓨팅 디바이스(100)는 여러 상이한 타입의 디바이스, 예컨대 물리적 디바이스 또는 가상 디바이스일 수 있다. 예를 들면, 컴퓨팅 디바이스(100)는 데스크탑 컴퓨터, 서버 컴퓨터, 랩탑 또는 넷북 컴퓨터, 태블릿 또는 노트패드 컴퓨터, 이동국(mobile station), 엔터테인먼트 어플라이언스(entertainment appliance), 디스플레이 디바이스에 통신적으로 커플링되는 셋탑 박스, 텔레비전 또는 다른 디스플레이 디바이스, 셀룰러 또는 다른 무선 전화, 게임 콘솔, 자동차 컴퓨터, 및 등등과 같은 물리적 디바이스일 수 있다. 컴퓨팅 디바이스(100)는 또한, 물리적 디바이스 상에서 실행하는 가상 머신과 같은 가상 디바이스일 수 있다. 가상 머신은 여러 상이한 타입의 물리적 디바이스 중 임의의 것(예를 들면, 상기에서 열거된 다양한 타입 중 임의의 것) 상에서 실행할 수 있다. 따라서, 컴퓨팅 디바이스(100)는 상당한 메모리 및 프로세서 리소스를 갖는 풀 리소스 디바이스(full resource device)(예를 들면, 퍼스널 컴퓨터, 게임 콘솔)로부터 제한된 메모리 및/또는 프로세싱 리소스를 갖는 낮은 리소스 디바이스(예를 들면, 전통적인 셋탑 박스, 핸드헬드 게임 콘솔)까지의 범위에 이를 수도 있다.
컴퓨팅 디바이스(100)는, 데이터 암호화 및 암호 해제 시스템(102), 스토리지 디바이스(104), 스토리지 디바이스 보호 시스템(106), 및 운영체제(108)를 포함한다. 데이터 암호화 및 암호 해제 시스템(102)은 스토리지 디바이스(104)에 기록되는 그리고 스토리지 디바이스(104)로부터 판독되는 데이터의 암호화 및 암호 해제를 관리한다. 스토리지 디바이스(104)는, 여러 상이한 기술, 예컨대 플래시 메모리 디바이스, 자기 디스크, 광학 디스크, 이들의 조합, 및 등등을 사용하여 구현될 수 있다. 단일의 스토리지 디바이스(104)가 도 1에서 예시되지만, 컴퓨팅 디바이스(100)는 임의의 수의 스토리지 디바이스를 포함할 수 있다는 것이 이해되어야 한다.
데이터 암호화 및 암호 해제 시스템(102)은, 신뢰성 있는 런타임(112) 및 인라인 암호화 프로세서(114)를 포함한다. 신뢰성 있는 런타임은 신뢰성 있는 또는 보호된 실행 환경을 제공하고, 하기에서 더 상세히 설명되는 바와 같이, 인라인 암호화 프로세서(114)에게 키를 제공한다. 인라인 암호화 프로세서(114)는, 하기에서 더 상세히 논의되는 바와 같이, 스토리지 디바이스(104)로부터의 그리고 스토리지 디바이스(104)로의 디바이스 판독 및 기록 동작에 따라 데이터를 암호 해제하고 암호화한다.
스토리지 디바이스 보호 시스템(106)은 크리덴셜의 인증, 및 인증된 크리덴셜에 기초한 신뢰성 있는 런타임(112)의 구성(예를 들면, 인증된 크리덴셜에 기초한 신뢰성 있는 런타임(112)으로의 인증 키의 프로비저닝)을 관리한다. 운영체제(108)는 컴퓨팅 디바이스(100)에서의 다양한 하드웨어 디바이스의 동작, 및 컴퓨팅 디바이스(100) 상에서의 추가적인 프로그래밍의 실행을 관리한다. 운영체제(108)뿐만 아니라, 컴퓨팅 디바이스(100) 상에서 실행하는 다른 프로그램은 데이터 암호화 및 암호 해제 시스템(102)을 통해 스토리지 디바이스(104)로부터 판독할 수 있고 스토리지 디바이스(104)로 기록할 수 있다.
스토리지 디바이스(104)는 컴퓨팅 디바이스(100)의 일부로서 포함되는 것으로 예시된다. 예를 들면, 스토리지 디바이스(104)는 컴퓨팅 디바이스(100)의 내부 버스에 커플링되는 내부 스토리지 디바이스일 수 있다. 다른 예로서, 스토리지 디바이스(104)는, 시스템(102, 106, 및 108) 중 하나 이상을 구현하는 칩과 동일한 회로 기판 상에서 하나 이상의 칩으로서 구현되는 내부 스토리지 디바이스일 수 있고, 시스템(102, 106, 및 108) 중 하나 이상과 동일한 칩에서 구현되는 내부 스토리지 디바이스일 수 있고, 및 등등일 수 있다.
스토리지 디바이스(104)는, 대안적으로, 컴퓨팅 디바이스(100) 외부에 있을 수 있고 여러 상이한 유선 및/또는 무선 방식으로 컴퓨팅 디바이스(100)에 커플링될 수 있다. 예를 들면, 스토리지 디바이스(104)는 범용 직렬 버스(Universal Serial Bus; USB) 연결, 무선 USB 연결, IEEE 1394 연결, 외장형 SATA(external SATA; eSATA) 연결, 블루투스 연결, 및 등등을 통해 컴퓨팅 디바이스(100)에 커플링될 수 있다. 스토리지 디바이스(104)는 상이한 컴퓨팅 디바이스에 (동시에 또는 상이한 시간에) 커플링되도록 설계될 수 있다. 하나 이상의 실시형태에서, 스토리지 디바이스(104)는, 컴퓨팅 디바이스(100)에 쉽게 커플링되고 컴퓨팅 디바이스(100)로부터 쉽게 디커플링되도록 그리고 다른 컴퓨팅 디바이스에 쉽게 이식되도록 설계되는 것과 같은 착탈식 디바이스(removable device)이다. 이러한 착탈식 스토리지 볼륨의 예는, 썸(thumb) 드라이브 또는 USB 플래시 메모리 디바이스이다. 대안적으로, 스토리지 디바이스(104)는, 네트워크(예를 들면, 인터넷, 근거리 통신망(local area network; LAN), 셀룰러 또는 다른 전화 네트워크, 인트라넷, 스토리지 영역 네트워크(storage area network; SAN), 네트워크 부착형 스토리지(network-attached storage; NAS), 개인 영역 네트워크(personal area network; PAN), 다른 공개(public) 및/또는 독점적(proprietary) 네트워크, 이들의 조합, 및 등등)를 통해 컴퓨팅 디바이스(100)에 커플링되는 네트워크 스토리지 디바이스인 것과 같은 다른 형태를 취할 수 있다.
스토리지 디바이스 보호 시스템(106)은 여러 상이한 방식으로 구현될 수 있다. 운영체제(108)와는 별개인 것으로 예시되지만, 스토리지 디바이스 보호 시스템(106)은 운영체제(108)에서 적어도 부분적으로 구현될 수 있다. 스토리지 디바이스 보호 시스템(106)은, 추가적으로 또는 대안적으로, 프리 운영체제 환경(pre operating system environment)의 일부로서, 부팅 전 실행 환경(pre-boot execution environment)의 일부로서, 및 등등으로서 구현되는 것과 같이 다른 방식으로 구현될 수 있다.
도 2는 하나 이상의 실시형태에 따른 스토리지 디바이스에 대한 신속한 데이터 보호를 구현하는 예시적인 시스템(200)을 예시한다. 시스템(200)은 도 1의 컴퓨팅 디바이스(100)의 일부로서 구현된다. 시스템(200)은, 스토리지 디바이스 보호 시스템(106), 신뢰성 있는 런타임(112), 인라인 암호화 프로세서(114), 및 스토리지 디바이스(104)를 포함한다. 본원에서 논의되는 기술은 스토리지 디바이스(104)의 부분을 참조로 설명된다. 스토리지 디바이스(104)의 부분은, 스토리지 디바이스의 특정한 논리적 또는 물리적 일부를 가리킨다. 스토리지 디바이스(104)의 부분은, 파티션으로 칭해지는 그리고 별개의 물리적 스토리지 디바이스인 것처럼 간주되는(예를 들면, 폴더 또는 디렉토리에서 디스플레이되는) 스토리지 디바이스(104)의 일부를 가리킬 수 있다. 그러나, 본원에서 논의되는 기술은, 다른 단위(granularity)에서 마찬가지로 적용될 수 있고 그리고 스토리지 디바이스의 다양한 다른 부분과 함께 사용될 수 있다. 예를 들면, 파티션 대신, 본원에서 논의되는 기술은, 파일, 폴더 또는 디렉토리, 전체 스토리지 디바이스, 다수의 스토리지 디바이스의 집합체, 및 등등인 스토리지 디바이스의 부분에 마찬가지로 적용될 수 있다.
스토리지 디바이스 보호 시스템(106)은 인증 모듈(202) 및 신뢰성 있는 런타임 구성 모듈(204)을 포함한다. 신뢰성 있는 런타임(112)은, 하기에서 더 상세히 논의되는 바와 같이, 데이터에 액세스하기에 유효한 인증용 크리덴셜이 제공되는 경우에만, 인라인 암호화 프로세서(114)가 스토리지 디바이스(104) 상의 데이터를 암호 해제하는 것을 허용하도록 구성될 수 있다. 인증 모듈(202)은, 엔티티에 의해 제공되는 인증용 크리덴셜을 인증하고 제공된 인증용 크리덴셜이 유효한지의 여부를 결정한다. 하나 이상의 실시형태에서, 엔티티는 시스템(200)의 유저이지만, 엔티티는 대안적으로 다른 디바이스, 컴포넌트, 모듈, 및 등등일 수 있다. 스토리지 디바이스 보호 시스템(106)은 키 관리 시스템으로서 동작하여, 유효한 인증용 크리덴셜에 대응하는 인증 키를 신뢰성 있는 런타임(112)이 이용 가능하게 만든다.
인증용 크리덴셜은, 비밀 어구(phrase)(예를 들면, 패스워드)의 지식, 인증에 대응하는 개인 키(private key), 일시적 비밀(예를 들면, 일회용 패스워드), 및 등등과 같은 여러 상이한 형태를 취할 수 있다. 인증 모듈(202)은, 제공된 인증용 크리덴셜이 유효한지의 여부를 결정하기 위해, 제공된 인증용 크리덴셜에 대해 비교될 다양한 데이터의 레코드를 유지할 수 있거나 또는 다르게는 획득할 수 있고, 제공된 인증용 크리덴셜이 유효한지의 여부를 결정하기 위해, 다양한 프로세서 또는 알고리즘 중 임의의 것을 제공된 인증용 크리덴셜에 적용할 수 있고, 등등을 할 수 있다.
제공된 인증용 크리덴셜이 유효하다는 것을 인증 모듈(202)이 결정하는 것에 응답하여, 스토리지 디바이스 보호 시스템(106)은, 인증용 크리덴셜을 제공했던 엔티티와 관련되는 인증 키를 획득한다. 인증 키는 다양한 방식으로 획득될 수 있는데, 예컨대 스토리지 디바이스 보호 시스템(106)에 의해 제공될 수 있고, 스토리지 디바이스 보호 시스템(106)에 의해 유지되는 저장소로부터 취득될(retrieved) 수 있고, 인증용 크리덴셜을 제공했던 엔티티로부터(예를 들면, 유저의 스마트카드로부터) 수신될 수 있고, 인증용 크리덴셜 또는 인증용 크리덴셜을 제공했던 엔티티에 의해 제공되는 다른 정보로부터 생성될 수 있고, 등등일 수 있다.
신뢰성 있는 런타임 구성 모듈(204)은 신뢰성 있는 런타임(112)에 의해 지원되는 커맨드의 세트를 통해 신뢰성 있는 런타임(112)과 통신하여, 다양한 동작을 수행할 다양한 커맨드를 신뢰성 있는 런타임(112)으로 제공한다. 이들 동작은, 예를 들면, 스토리지 디바이스(104)의 부분에 관한 보호를 인에이블하는 것, 스토리지 디바이스(104)의 보호된 부분을 잠그는 것, 스토리지 디바이스(104)의 부분을 잠금 해제하는 것, 스토리지 디바이스(104)의 보호를 디스에이블하는 것, 및 키의 복원 및 마이그레이션을 포함할 수 있다. 이들 커맨드 중 몇몇은, 하기에서 더 상세히 논의되는 바와 같이, 스토리지 디바이스 보호 시스템(106)에 의해 획득되는 인증 키를 신뢰성 있는 런타임(112)으로 제공하는 것을 포함할 수 있다.
신뢰성 있는 런타임(112)은, 키 생성 모듈(206), 키 보호 모듈(208), 인라인 암호화 프로세서 구성 모듈(210), 및 영구적 키 저장소(212)를 포함한다. 신뢰성 있는 런타임(112)은, 신뢰성 있는 런타임(112)에서의 프로그램의 실행을, 동일한 디바이스 상에서 실행하는 운영체제와는 분리하여 허용하는 환경이다. 신뢰성 있는 런타임은, 메모리에서의 프로그램의 실행을 분리하고(실행시 분리된 프로그램에 의해 사용되는 메모리 공간에 운영체제가 액세스하는 것을 방지함), 프로세서에서의 프로그램의 실행을 분리하고(분리된 프로그램을 실행하고 있을 때 프로세서의 레지스터 또는 다른 상태에 운영체제가 액세스하는 것을 방지함), 스토리지에서의 프로그램의 실행을 분리한다(동작 동안 뿐만 아니라 컴퓨팅 디바이스가 턴오프된 동안 분리된 프로그램에 의해 사용되는 스토리지 위치에 운영체제 또는 임의의 외부 당사자(party)가 액세스하는 것을 방지함). 따라서, 신뢰성 있는 런타임(112)은, 모듈이, 컴퓨팅 디바이스 상에서 실행하는 (예를 들면, 신뢰성 있는 런타임(112)에서 실행되고 있지 않은) 임의의 다른 프로그램 및 운영체제와는 분리되고 무관한 컴퓨팅 디바이스 상의 프로그램으로서 실행하는 것을 허용한다. 운영체제 또는 컴퓨팅 디바이스 상에서 실행하는 다른 프로그램은, 신뢰성 있는 런타임(112)에 의해 노출되는 인터페이스(예를 들면, 인터페이스 커맨드의 세트)를 사용하여, 신뢰성 있는 런타임의 프로그램만을 액세스할 수 있다.
신뢰성 있는 런타임(112)은 여러 상이한 방식으로 구현될 수 있다. 하나 이상의 실시형태에서, 신뢰성 있는 런타임(112)은 컴퓨팅 디바이스의 ARM 아키텍쳐 프로세서 상에서 ARM 트러스트존(TrustZone)으로서 구현된다. 대안적으로, 신뢰성 있는 런타임(112)은, 예컨대 컴퓨팅 디바이스의 별개의 프로세서(예를 들면, 운영체제가 실행하는 프로세서 또는 프로세서 코어와는 별개의 프로세서 또는 프로세서 코어)에 의해 다른 방식으로 구현될 수 있다. 대안적으로, 신뢰성 있는 런타임은, 하이퍼바이저(hypervisor) 또는 컴퓨팅 디바이스의 다른 가상 머신 매니저에 의해 제공되는 또는 가능하게 되는 추가적인 보안 모드에 의해 구현될 수 있다.
키 생성 모듈(206)은 스토리지 디바이스(104)의 부분 상의 데이터를 암호화하기 위해 사용되는 암호화 키를 생성한다. 키 생성 모듈(206)은 다양한 공개 및/또는 독점적 기술 중 임의의 것을 사용하여 암호화 키를 생성할 수 있다. 하나 이상의 실시형태에서, 키 생성 모듈(206)은 스토리지 디바이스(104)의 각각의 부분에 대해 상이한 암호화 키를 생성하고, 이들 키를 영구적 키 저장소(212)에 유지할 수 있다. 영구적 키 저장소(212)에 유지되는 키는, 이들 키들이 생성되었던 스토리지 디바이스(104)의 각각의 부분과 관련된 것으로 유지된다. 하나 이상의(예를 들면, 다수의(x)) 키가 영구적 키 저장소(212)에 유지될 수 있는데, 예컨대 스토리지 디바이스(104)의 각각의 부분에 대해 하나의 키가 유지될 수 있다. 영구적 키 저장소(212)는 여러 상이한 방식으로 구현될 수 있고, 저장소(212)의 키가 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되는 것을 허용한다. 컴퓨팅 디바이스의 전력 싸이클은, 컴퓨팅 디바이스가 전력이 차단되고 그 다음 다시 전력이 인가되는 것, 또는 컴퓨팅 디바이스가 재부팅되는 것 또는 하드웨어 리셋을 가리킨다. 따라서, 시스템(200)을 구현하는 컴퓨팅 디바이스가 전력이 차단되었다 다시 전력이 인가된 이후, 또는 컴퓨팅 디바이스가 재부팅된 이후, 키는 영구적 키 저장소(212)에 남아 있다.
키 보호 모듈(208)은, 소정의 상황 하에서, 예컨대 하기에서 더 상세히 논의되는 바와 같이 스토리지 디바이스(104)의 부분에 대한 보호가 인에이블될 때 영구적 키 저장소(212)의 키를 보호한다(예를 들면, 암호화한다). 인라인 암호화 프로세서 구성 모듈(210)은 인라인 암호화 프로세서(114)와 통신하여, 하기에서 더 상세히 논의되는 바와 같이 인라인 암호화 프로세서(114)에게 암호화 키를 제공한다.
하나 이상의 실시형태에서, 운영체제(예를 들면, 도 1의 운영체제(108))는 신뢰성 있는 런타임(112)에 의해 지원되는 커맨드의 세트를 통해 신뢰성 있는 런타임(112)과 통신할 수 있다. 이들 커맨드는, 스토리지 디바이스의 보호된 부분을 잠그는 것과 같은 소정의 동작이 수행되는 것을 허용할 수 있다. 하나 이상의 실시형태에서, 신뢰성 있는 런타임(112)으로 제공되고 있는 인증 키를 포함하는 커맨드는 스토리지 디바이스 보호 시스템(106)에 의해 제공되고, 한편 인증 키가 신뢰성 있는 런타임으로 제공되는 것을 필요로 하지 않는 다른 커맨드(예를 들면, 스토리지 디바이스의 보호된 부분을 잠그는 것)는 운영체제(108) 또는 스토리지 디바이스 보호 시스템(106)에 의해 제공될 수 있다. 커맨드가 운영체제(108)로부터 수신되든지 또는 스토리지 디바이스 보호 시스템(106)으로부터 수신되든지의 여부에 무관하게, 신뢰성 있는 런타임(112)은 키 생성 모듈(206)에 의해 생성되는 암호화 키를 운영체제(108) 또는 스토리지 디바이스 보호 시스템(106)에게 공개하지 않는다는 것을 유의해야 한다.
대안적으로, 보호된 키를 영구적 키 저장소(212)에 유지하는 대신, 키 보호 모듈(208)은 보호된 암호화 키를 운영체제로 리턴할 수 있다. 운영체제는, 옵션적으로, 보호된 암호화 키가 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되도록, 보호된 암호화 키를 저장할 수 있다. 키 보호 모듈(208)은, 암호화 키를 보호하기 위해(예를 들면, 암호화하기 위해) 사용되는 키를 알고 있고 그 키를 운영체제에게 노출시키지 않는다. 따라서, 운영체제는 암호화 키에 액세스할 수 없지만, 운영체제는 보호된 암호화 키를 키 보호 모듈(208)로 제공할 수 있는데, 그 후, 키 보호 모듈(208)은 보호된 키로부터 암호화 키를 취득할(retrieve) 수 있다. 따라서, 신뢰성 있는 런타임(112)은, 보호된 키를 영구적 키 저장소(212)에 유지하는 대신(또는 유지하는 것 외에 대안적으로) 하나 이상의 보호된 키를 저장하기 위해 운영체제를 활용할 수 있다.
인라인 암호화 프로세서(114)는 암호화 및 암호 해제 모듈(214), 관리 모듈(216), 및 암호화 키 저장소(218)를 포함한다. 암호화 키는 신뢰성 있는 런타임(112)으로부터 수신되고 암호화 키로서 암호화 키 저장소(218)에 저장된다. 하나 이상의(예를 들면, 다수의(y)) 암호화 키가 암호화 키 저장소(218)에 저장될 수 있다. 하나 이상의 실시형태에서, 암호화 키 저장소(218)는 스토리지 디바이스(104)의 각각의 부분에 대해 하나의 암호화 키를 포함한다. 암호화 키 저장소(218)에 일단 저장되면, 암호화 키는, 암호화 키를 삭제하기 위한 커맨드가 (예를 들면, 신뢰성 있는 런타임(112)으로부터) 수신될 때까지, 또는 전력 싸이클이 발생할 때까지(예를 들면, 컴퓨팅 디바이스가 전력이 차단될 때까지, 컴퓨팅 디바이스가 재부팅될 때까지, 및 등등의 까지) 암호화 키 저장소(218)에서 유지된다. 암호화 키가 암호화 키 저장소(218)에서 지속되지 않지만, 전력 싸이클이 발생한 이후, 신뢰성 있는 런타임(112)은 (옵션적으로는, 하기에서 더 상세히 논의되는 바와 같이, 영구적 키 저장소(212)의 보호된 암호화 키로부터 획득된 이후에만) 암호화 키 저장소(218)에서의 포함을 위해 인라인 암호화 프로세서로 암호화 키를 다시 제공할 수 있다.
인라인 암호화 프로세서(114)는 I/O 요청(220)을 수신하여 응답한다. I/O 요청(220)은 운영체제(예를 들면, 도 1의 운영체제(108))로부터, 또는 대안적으로 시스템(200)을 구현하는 컴퓨팅 디바이스 상에서 실행하는 다른 프로그램으로부터 유래한다. 암호화 및 암호 해제 모듈(214)은, 데이터가 스토리지 디바이스(104)의 부분에 기록되기 이전에, I/O 요청(220)의 일부로서 수신되는 데이터를 암호화한다. 암호화 및 암호 해제 모듈(214)은 또한, 판독된 I/O 요청(220)의 일부로서 데이터가 요청자(requester)에게 리턴되기 이전에, 스토리지 디바이스(104)의 부분으로부터 판독된 데이터를 암호 해제한다.
암호화 키 저장소(218)가 다수의 암호화 키를 저장하는 실시형태에서, I/O 요청(220)에 대한 데이터를 암호화하거나 또는 암호 해제하기 위해 인라인 암호화 프로세서(114)에 의해 사용될 암호화 키의 표시가 I/O 요청(220)의 일부로서 제공될 수 있다. 그 표시는, (예를 들면, 하기에서 더 상세히 논의되는 바와 같이, 부분이 작성되거나 또는 부분이 잠금 해제될 때 신뢰성 있는 런타임에 의해 제공되는) 암호화 키의 식별자, 요청이 적용되는 부분의 표시, 및 등등과 같은 여러 상이한 형태를 취할 수 있다. 하나 이상의 실시형태에서, 암호화 키의 식별자는, 암호화 키가 저장되는 인라인 암호화 프로세서의 레지스터의 식별자이다.
대안적으로, 인라인 암호화 프로세서(114)에 의해 사용될 암호화 키의 어떠한 표시도 제공될 필요가 없다. 예를 들면, 인라인 암호화 프로세서(114) 또는 신뢰성 있는 런타임(112)은, 스토리지 디바이스(104)의 어떤 부분에 대해 어떤 암호화 키가 사용되는지의 레코드를 유지할 수 있는데, 이 경우 어떠한 표시도 제공될 필요가 없다. 다른 예로서, 암호화 키 저장소(218)가 단일의 암호화 키를 포함하면, 어떠한 이러한 표시도 제공될 필요가 없다.
콘텐트를 암호화하기 위해 그리고 암호 해제하기 위해 사용될 암호화 키의 표시가 인라인 암호화 프로세서(114)에 의해 수신될 수 있고, 암호화 키가 신뢰성 있는 런타임(112)에 의해 인라인 암호화 프로세서(114)로 제공되지만, 인라인 암호화 프로세서(114)는 인라인 암호화 프로세서(114) 외부의 디바이스 또는 프로그램에게 암호화 키를 공개하지 않는다는 것을 유의해야 한다. 특정한 조건 하에서, 예컨대 하기에서 더 상세히 논의되는 바와 같이 암호화 키를 암호화 키 저장소(218)에 스와핑(swapping)해 넣고 낼 때, 암호화 키의 보호된 버전이 인라인 암호화 프로세서(114)에 의해 공개될 수도 있지만, 이러한 특정한 조건 하 외에는, (보호된 또는 보호되지 않은) 암호화 키는 인라인 암호화 프로세서(114)에 의해 공개되지 않는다.
관리 모듈(216)은 인라인 암호화 프로세서(114)의 동작을 관리하는데, 옵션적으로는, 신뢰성 있는 런타임(112)과의 통신을 관리하는 것을 포함한다. 하나 이상의 실시형태에서, 신뢰성 있는 런타임(112)은, 보안(예를 들면, 암호화된) 통신 채널을 사용하여, 다른 모듈 또는 컴포넌트를 통해 인라인 암호화 프로세서(114)의 관리 모듈(216)과 통신한다. 예를 들면, 신뢰성 있는 런타임(112)은 암호화 키를 관리 모듈(216)로 제공할 수 있는데, 관리 모듈(216)은 암호화 키를 암호화 키 저장소(218)에 저장한다. 다른 실시형태에서, 신뢰성 있는 런타임(112)은, 예컨대 암호화 키를 암호화 키 저장소(218)의 레지스터에 직접적으로 저장하는 것에 의해, 인라인 암호화 프로세서(114)와 직접적으로 통신할 수 있다. 관리 모듈(216)은 또한, 상기에서 논의된 특정한 조건 하에서 암호화 키의 보호된 버전을 공개하는 것을 관리한다.
인라인 암호화 프로세서(114)는 적어도 부분적으로 하드웨어로(예를 들면, 하나 이상의 하드웨어 칩으로서) 구현되며, 스토리지 디바이스(104)에 대한 정규 판독 및 기록 동작에 따른다. 따라서, 스토리지 디바이스(104)의 부분으로 기록되는 모든 데이터는 인라인 암호화 프로세서(114)에 의해 암호화될 수 있고, 스토리지 디바이스의 부분으로부터 판독되는 모든 데이터는 인라인 암호화 프로세서(114)에 의해 암호 해제될 수 있다. 일반적으로, 인라인 암호화 프로세서(114)는, 암호화 키를 저장할 수 있는, 그리고 운영체제 또는 다른 프로그램이 레지스터를 참조하여 사용하는 것(예를 들면, 데이터를 암호하시키는 것)을 허용하지만, 그러나 운영체제 또는 다른 프로그램이 레지스터의 콘텐트를 추출하는 것을 허용하지 않는 하나 이상의 레지스터를 갖는 암호화 하드웨어이다.
하나 이상의 실시형태에서, 인라인 암호화 프로세서(114)는 스토리지 디바이스(104)에 대한 스토리지 컨트롤러의 일부로서 구현된다. 대안적으로, 인라인 암호화 프로세서(114)는 다른 방식으로, 예컨대 비디오 레코딩 또는 재생을 위한 비디오 경로(예를 들면, 비디오 카드 또는 다른 하드웨어)에서, 오디오 레코딩 또는 재생을 위한 오디오 경로(예를 들면, 오디오 카드 또는 다른 하드웨어)에서, 다른 디바이스로 데이터를 전송하고 수신하기 위한 통신 경로(예를 들면, 네트워크 카드 또는 다른 하드웨어)에서, 및 등등에서 구현될 수 있다.
암호화 및 암호 해제 모듈(214)은 다양한 공개 및/또는 독점적 기술 중 임의의 것을 사용하여 암호화 키 저장소(218)의 암호화 키에 기초하여 데이터를 암호화할 수 있고 암호 해제할 수 있다. 하나 이상의 실시형태에서, 암호화 및 암호 해제 모듈(214)은, 암호화 및 암호 해제에 대해 동일한 키(암호화 키)가 사용되는 대칭 키 암호기법(cryptography)을 사용한다. 대안적으로, 암호화 및 암호 해제 모듈(214)은, 암호화 및 암호 해제에 대해 상이한 키가 사용되는 비대칭 키 암호기법을 사용할 수 있다. 이러한 실시형태에서, 암호화 키 저장소(218)에서 암호화 키만이 예시되지만, 키 생성 모듈(206)은 암호화 키 및 암호 해제 키 둘 다를 생성하고, 암호화 키 저장소(218)는 암호화 키 및 암호 해제 키 둘 다를 유지한다. 따라서, 암호화 및 암호 해제 모듈(214)은, 스토리지 디바이스(104)의 부분에 기록될 데이터를 암호화할 때 저장소(218)로부터의 암호화 키를 사용하고, 스토리지 디바이스(104)의 부분으로부터 판독되는 데이터를 암호 해제할 때 저장소(218)로부터의 암호 해제 키를 사용한다. 따라서, 암호화 키를 사용한 암호 해제를 언급하는 본원의 논의에서, 이러한 언급은, 비대칭 키 암호기법이 사용되고 있는 상황에서는, 별개의 암호 해제 키를 대상으로 한다는 것을 유의해야 한다.
하나 이상의 실시형태에서, 암호화 키 저장소(218)는 암호화 키의 특정한 수(y)까지 저장할 수 있지만, 스토리지 디바이스(104)는 그 특정한 수보다 많은 부분을 포함할 수도 있다. 이러한 상황에서, I/O 요청(220)에 의해 식별되는 암호화 키가 암호화 키 저장소(218)에 포함되도록, 암호화 키는, 적절하다면, 암호화 키 저장소(218)에 스와핑해 들어가고 스와핑해 내어진다. 암호화 키의 스와핑은 다양한 방식으로 구현될 수 있다. 예를 들면, I/O 요청(220)에 의해 식별되는 암호화 키가 암호화 키 저장소(218)에 포함되지 않으면, 관리 모듈(216)은 식별된 암호화 키를 신뢰성 있는 런타임(112)에게 요청하여 수신할 수 있다.
다른 예로서, 관리 모듈(216)은 보호되는(예를 들면, 인라인 암호화 프로세서(114)에게만 알려진 비밀 키를 사용하는 암호화되는) 암호화 키 및 운영체제로 리턴되는 보호된 암호화 키를 구비할 수 있다. I/O 요청(220)에 의해 식별되는 암호화 키가 암호화 키 저장소(218)에 포함되지 않으면, 관리 모듈(216)은 식별된 암호화 키의 보호된 버전을 운영체제에게 요청하여 수신할 수 있고, 그 다음 암호화 키를 암호 해제하여 암호화 키 저장소(218)에 저장할 수 있다. 따라서, 운영체제 자체는 암호화 키의 스와핑에 참여할 수 있다. 이러한 상황에서, 관리 모듈(216)은, 옵션적으로, 특정한 양의 시간이 경과한 이후 또는 특정한 이벤트(예를 들면, 컴퓨팅 디바이스가 전력이 차단되거나 재부팅되는 것)에 응답하여, 암호화 키를 보호하기 위해 사용되는 비밀 키를 변경할 수 있다. 따라서, 특정한 양의 시간이 경과하거나 또는 특정한 이벤트가 발생한 이후, 운영체제에 의해 유지되는 보호 키는, 그 키가 변경되었기 때문에, 인라인 암호화 프로세서(114)에 의해 더 이상 사용될 수 없다.
신뢰성 있는 런타임(112) 및 인라인 암호화 프로세서(114)의 사용은, 시스템(200)이, 스토리지 디바이스(104) 상에 작성되는 각각의 부분에 대해 상이한 키를 생성하는 것, 및 데이터가 기록될 때/판독될 때 부분에 저장된 모든 데이터를 암호화하는 것/암호 해제하는 것을 허용한다. 스토리지 디바이스(104)의 일생의 아주 초기에 부분이 작성될 수 있고, 스토리지 디바이스(104)가 잠재적으로 신뢰되지 않는 당사자에 의해 핸들링될 수 있지만, 이러한 당사자가 스토리지 디바이스(104)에 물리적으로 액세스할 수 있고/있거나 시스템(200)을 구현하는 컴퓨팅 디바이스 상에 설치된 운영체제에 대한 관리자적 특권을 갖더라도, 부분 암호화 키는 절대 이러한 당사자에게 노출되지 않는다.
시스템(200)은, 상기에서 언급된 바와 같이, 여러 상이한 동작을 지원한다. 이들 동작은, 예를 들면, 스토리지 디바이스(104)의 신규로 정의된 부분에 대해 암호화 키를 생성하는 것, 스토리지 디바이스(104)의 부분에 대한 보호를 인에이블하는 것, 스토리지 디바이스(104)의 보호된 부분을 잠그는 것, 스토리지 디바이스(104)의 부분을 잠금 해제하는 것, 스토리지 디바이스(104)의 보호를 디스에이블하는 것, 및 키의 복원 및 마이그레이션을 포함한다. 이들 동작은 다음과 같이 추가 상세에서 논의된다.
신규로 작성된 부분에 대한 암호화 키 생성
부분 작성은, 스토리지 디바이스(104)의 새로운 부분의 작성 또는 정의를 가리킨다. 스토리지 디바이스(104) 상에서 하나 이상의 부분이 작성될 수 있다. 이들 부분은 컴퓨팅 디바이스의 유저, 컴퓨팅 디바이스의 관리자, 다른 디바이스 또는 모듈, 및 등등으로부터의 요청에 응답하여 작성될 수 있다. 부분의 작성은, 부분을 설명하는 다양한 데이터 구조체를 확립하고 유지하는 것을 비롯하여, 스토리지 디바이스의 어떤 일부(예를 들면, 디스크의 어떤 섹터)가 부분에 포함되는지와 같은 다양한 액트(act)를 포함한다. 부분은 다양한 공개 및/또는 독점적 기술 중 임의의 것을 사용하여 작성될 수 있다. 추가적으로, 부분 작성의 일부로서, 신뢰성 있는 런타임은 신규로 작성된(또한 "신규로 정의된"으로도 칭해짐) 부분에 대한 암호화를 생성할 것을 요청받는다.
도 3은 하나 이상의 실시형태에 따른 스토리지 디바이스의 신규로 정의된 부분에 대한 암호화 키를 생성하기 위한 예시적인 프로세스(300)를 예시하는 플로우차트이다. 프로세스(300)는 컴퓨팅 디바이스의 신뢰성 있는 런타임, 예컨대 도 1 및 도 2의 신뢰성 있는 런타임(112)에 의해 실행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(300)는 액트의 세트로서 도시되며, 다양한 액트의 동작을 수행하도록 도시된 순서에 제한되지 않는다. 프로세서(300)는 스토리지 디바이스의 신규로 정의된 부분에 대한 암호화 키를 생성하기 위한 예시적인 프로세스이며; 스토리지 디바이스의 신규로 정의된 부분에 대한 암호화 키를 생성하는 추가적인 논의는 상이한 도면을 참조로 본원에서 포함된다.
프로세서(300)에서, 스토리지 디바이스의 신규로 정의된 부분에 대한 암호화 키를 생성하기 위한 요청이 수신된다(액트 302). 그 요청은 커맨드의 형태로 수신될 수 있고, 여러 상이한 모듈로부터 수신될 수 있다. 예를 들면, 그 요청은 도 1의 운영체제(108), 도 1 또는 도 2의 스토리지 디바이스 보호 시스템(106), 및 등등으로부터 수신될 수 있다. 그 요청은, 예를 들면, 스토리지 디바이스의 신규로 정의된 부분을 작성하는 또는 정의하는 프로그램 또는 모듈로부터 수신될 수 있다. 이 부분은 다양한 공개 및/또는 독점적 기술을 사용하여 다양한 방식 중 임의의 방식으로 작성될 수 있거나 또는 정의될 수 있다.
수신된 요청에 응답하여, 신규의 암호화 키가 생성된다(액트 304). 신규의 암호화 키는, 상기에서 논의된 바와 같이, 다양한 방식 중 임의의 방식으로 생성될 수 있다.
추가적으로, 신규로 생성된 암호화 키는 신뢰성 있는 런타임을 사용하여 지속된다(액트 306). 신규로 생성된 암호화 키는 상이한 방식으로 지속될 수 있다. 하나 이상의 실시형태에서, 신규로 생성된 암호화 키는 신뢰성 있는 런타임의 지속적인 키 저장소에서 유지된다. 대안적으로, 암호화 키는 다른 방식으로 지속될 수 있다. 예를 들면, 암호화된 암호화 키가 생성될 수 있고(예를 들면, 신뢰성 있는 런타임에게만 알려진 비밀 키를 사용하여 암호화 키를 암호화하는 것에 의해 생성될 수 있고) 암호화된 암호화 키는 운영체제로 제공될 수 있다. 따라서, 운영체제는 암호화된 암호화 키를 유지할 수 있어서, 신뢰성 있는 런타임이 암호화 키를 유지할 필요성을 경감하게 된다.
신규로 생성된 암호화 키가 어떻게 지속되는지에 무관하게, 암호화 키는 전력 싸이클에 걸쳐 지속된다. 예를 들면, 신뢰성 있는 런타임의 영구적 키 저장소는 상기에서 논의된 바와 같이 전력 싸이클에 걸쳐 암호화 키를 지속시킬 수 있다. 다른 예로서, 운영체제는, 전력 싸이클에 걸쳐 암호화된 암호화 키를 지속시키는 불휘발성 메모리에서의 암호화된 암호화 키의 저장을 관리할 수 있다.
신규로 생성된 암호화 키는 또한 인라인 암호화 프로세서로 제공된다(액트 308). 신규로 생성된 암호화 키를 인라인 암호화 프로세서로 제공하는 것은, 인라인 암호화 프로세서에게 신규로 생성된 암호화 키를 프로비저닝하여, 인라인 암호화 프로세서가, 부분으로 기록되는 데이터를 암호화하는 것 및 신규로 생성된 암호화 키에 기초하여 부분으로부터 판독되는 데이터를 암호 해제하는 것을 허용하게 된다. 데이터를 암호화하고 암호 해제하기 위해 암호화 키가 사용되는 방식은, 암호화 및 암호 해제가 인라인 암호화 프로세서에 의해 수행되는 방식에 기초하여 변한다.
신규로 생성된 암호화 키의 식별자는 요청자에게 리턴된다(액트 310). 식별자는 여러 상이한 형태 중 임의의 것을 취할 수 있지만, (예를 들면, 상이한 부분에 대해 사용되는) 상이한 암호화 키가 식별되는 것을 허용한다. 따라서, 인라인 암호화 프로세서가, 스토리지 디바이스의 다수의 부분의 각각에 대해 하나씩, 다수의 암호화 키를 저장하고 있으면, 특정한 부분에 대한 정확한 암호화 키가 식별될 수 있다. 예를 들면, 운영체제는, 사용할 특정한 암호화 키의 식별자를 포함하는 판독 및 기록 요청을 발행할 수 있다. 암호화 키의 이 식별자는, 단지, 운영체제가 어떤 암호화 키를 사용할지를 인라인 암호화 프로세서에게 식별시키는 것을 허용하며; 식별자는 암호화 키를 제공하지 않거나 또는 다르게는 운영체제가 암호화 키를 획득하는 것을 허용하지 않는다는 것을 유의해야 한다.
따라서, 부분에 기록되는 모든 데이터는 인라인 암호화 프로세서에 의해 암호화되고, 부분으로부터의 모든 판독 데이터는 인라인 암호화 프로세서에 의해 암호 해제된다. 신뢰성 있는 런타임 및 인라인 암호화 프로세서 이외의 어떠한 컴포넌트, 모듈, 또는 디바이스도 신규로 생성된 암호화 키에 대한 액세스 권한을 갖지 못하거나 액세스할 수 없으며, 신뢰성 있는 런타임도 인라인 암호화 프로세서도, 상기에서 논의된 바와 같이, 신뢰성 있는 런타임 및 인라인 암호화 프로세서 외부에 있는 임의의 컴포넌트, 모듈, 또는 디바이스에게 암호화 키를 노출시키지 않는다.
부분의 작성 이후에, 부분에 저장된 데이터에 대한 액세스는 제한된다는 것을 유의해야 한다. 부분에 저장된 데이터가 암호화되지만, 암호화된 데이터를 판독하기 위해, 어떠한 인증용 크리덴셜도 신뢰성 있는 런타임으로 제공될 필요가 없다.
프로세서(300)는 스토리지 디바이스 상에 신규의 부분을 작성하기 위해 임의의 횟수 반복될 수 있다.
부분에 대한 보호 인에이블
부분에 대한 보호를 인에이블하는 것은, 부분을 특정한 인증용 크리덴셜과 관련시키는 것을 가리키는데, 인증된 엔티티만이 부분에 액세스하는 것을 허용하게 된다. 예를 들면, 부분이 보호될 것을, 그리고 결과로서 부분이 유저의 인증용 크리덴셜과 관련될 것을 유저가 요청할 수 있어서, 유저의 인증용 크리덴셜이 제공되는 경우에만, 부분 상에 저장된 데이터에 대한 액세스를 허용하게 된다(그리고 신규의 데이터가 부분 상에 저장되는 것을 허용하게 된다).
도 4는 하나 이상의 실시형태에 따른 스토리지 디바이스의 부분에 대한 보호를 인에이블하기 위한 예시적인 프로세스(400)를 예시하는 플로우차트이다. 프로세스(400)는 컴퓨팅 디바이스의 신뢰성 있는 런타임, 예컨대 도 1 및 도 2의 신뢰성 있는 런타임(112)에 의해 실행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(400)는 액트의 세트로서 도시되며 다양한 액트의 동작을 수행하기 위한 도시된 순서에 제한되지 않는다. 프로세스(400)는 스토리지 디바이스의 부분에 대한 보호를 인에이블하기 위한 예시적인 프로세스이고; 스토리지 디바이스의 부분에 대한 보호를 인에이블하는 추가적인 논의가 상이한 도면을 참조로 본원에 포함된다.
프로세스(400)에서, 스토리지 디바이스의 부분에 대한 보호를 인에이블하기 위한 요청이 수신된다(액트 402). 이 요청은 스토리지 디바이스의 부분을 암호화하기 위한 요청으로도 또한 칭해진다. 그 요청은 커맨드의 형태로 수신될 수 있고, 여러 상이한 모듈로부터 수신될 수 있다. 하나 이상의 실시형태에서, 그 요청은 도 1 또는 도 2의 스토리지 디바이스 보호 시스템(106)으로부터 수신되지만, 그 요청은 대안적으로 도 1의 운영체제(108)와 같은 다른 모듈로부터 수신될 수 있다.
요청에 응답하여, 부분에 대한 암호화 키는 인증 키에 기초하여 보호된다(액트 404). 인증 키는, 스토리지 디바이스 보호 시스템(106)으로 제공되는 유저 크리덴셜과 관련되는 인증 키이다. 하나 이상의 실시형태에서, 인증 키는, 액트 402에서 요청이 수신되는 시간에 도 2의 시스템(200)을 구현하는 컴퓨팅 디바이스에 현재 로그인되어 있는 엔티티(예를 들면, 유저)와 관련되는 인증 키이다. 대안적으로, 인증 키는, 도 2의 시스템(200)을 구현하는 컴퓨팅 디바이스에게 유저 크리덴셜을 제공하는 다른 엔티티와 관련되는 인증 키일 수 있다.
암호화 키는 인증 키에 기초하여 다양한 방식으로 보호될 수 있다(암호화 키를 인증 키로 래핑(wrapping)하는 것으로도 또한 칭해짐). 하나 이상의 실시형태에서, 암호화 알고리즘은, 암호화 키를 암호화하기 위한 키로서 인증 키를 사용한다. 암호화 키를 암호화하기 위해, 다양한 공개 및/또는 독점적 암호화 알고리즘 중 임의의 것이 사용될 수 있다. 일단 암호화되면, 암호화 키는 인증 키 및 적절한 암호 해제 알고리즘을 사용하여 취득될(암호 해제될) 수 있지만, 인증 키 없이는 취득될 수 없다(또는 취득되는 것이 계산적으로 아주 어렵다).
암호화 키를 보호하기 위해 사용할 인증 키는 신뢰성 있는 런타임에 의해 여러 상이한 방식으로 획득될 수 있다. 하나 이상의 실시형태에서, 인증 키는 액트 402에서의 요청의 일부로서 스토리지 디바이스 보호 시스템(106)에 의해 제공된다. 대안적으로, 인증 키는 스토리지 디바이스 보호 시스템(106), 또는 대안적으로 다른 모듈 또는 디바이스에 의해, 다른 방식으로 또는 다른 시간에 제공될 수 있다.
부분에 대한 보호된 암호화 키는 유지된다(액트 406). 부분에 대한 보호된 암호화 키는 상이한 방식으로 유지될 수 있다. 하나 이상의 실시형태에서, 보호된 암호화 키는 신뢰성 있는 런타임의 지속적인 키 저장소에서 유지된다. 신뢰성 있는 런타임의 영구적 키 저장소에 있는 부분에 대한 암호화 키는, 부분에 대한 보호된 암호화 키로 대체되고, 따라서 신뢰성 있는 런타임은 암호화 키를 명문으로(in the clear) 더 이상 유지할 수 없다 - 보호되지 않은 암호화 키는 제거되고 보호된 암호화 키만이 유지된다. 따라서, 인증 키를 제공받지 않으면, 신뢰성 있는 런타임은 스토리지 디바이스의 부분에 대한 암호화 키를 더 이상 결정할 수 없다. 대안적으로, 보호된 암호화 키는 다른 방식으로 유지될 수 있다. 예를 들면, 보호된 암호화 키는 운영체제로 제공될 수 있고, 암호화 키는 영구적 키 저장소로부터 제거될 수 있다(예를 들면, 삭제될 수 있다). 따라서, 인증 키를 제공받지 않으면, 신뢰성 있는 런타임은 스토리지 디바이스의 부분에 대한 암호화 키를 더 이상 결정할 수 없다.
신뢰성 있는 런타임은 또한 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되는 보호된 암호화 키를 갖는다. 신뢰성 있는 런타임은, 예컨대 보호된 암호화 키를 신뢰성 있는 런타임의 영구적 키 저장소에 저장하는 것에 의해, 또는 보호된 암호화 키를 운영체제로 제공하는 것에 의해, 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 상이한 방식으로 지속되는 보호된 암호화 키를 구비할 수 있다.
부분이 보호되고 있다는 표시가 또한 요청자에게 리턴된다(액트 408). 이 표시는 또한 부분이 암호화되어 있다는 표시로서 언급될 수 있다. 그 표시는 신속하게 요청자에게 리턴될 수 있다 - 부분에 기록된 모든 데이터가 인라인 암호화 프로세서에 의해 암호화되기 때문에, 신뢰성 있는 런타임은, 그 표시를 리턴하기 이전에, 부분에 이미 기록된 데이터가 암호화되는 것을 기다릴 필요가 없다. 부분의 일부가 여전히 암호화되지 않을 수도 있지만, 이들 암호화되지 않은 일부는, 아직 어떠한 데이터도 기록되지 않은 일부이다(데이터가 이들 부분에 기록되었다면, 그것은 인라인 암호화 프로세서에 의해 암호화되었을 것이다).
부분에 대한 보호가 인에이블된 이후, 신뢰성 있는 런타임이 암호화 키를 유도하고 암호화 키를 인라인 암호화 프로세서로 제공하기 위해서는, 인증 키가 필요로 된다. 암호화 키는, 보호된 암호화 키를 통하는 것 외에는, 신뢰성 있는 런타임에게 더 이상 이용 가능하지 않고(예를 들면, 암호화 키가 신뢰성 있는 런타임에서 보호된 암호화 키로 대체되었음), 따라서 신뢰성 있는 런타임은 인증 키 없이는 암호화 키를 취득할 수 없다.
보호된 부분 잠금
보호된 부분을 잠그는 것은, 보호가 이미 인에이블된 부분에 대한 액세스를 방지하는 것을 가리킨다. 예를 들면, 유저가 부분의 보호를 인에이블할 것을 요청한 이후의 어떤 시점에, 유저는 부분이 잠궈질 것을 요청할 수 있다. 결과적으로, 부분에 대한 액세스는 방지되고, 그 결과 부분 상에 저장된 데이터는 암호 해제될 수 없고, 신규의 암호화된 데이터가 부분에 기록될 수 없다.
도 5는 하나 이상의 실시형태에 따른 스토리지 디바이스의 보호된 부분을 잠그기 위한 예시적인 프로세스(500)를 예시하는 플로우차트이다. 프로세스(500)는 컴퓨팅 디바이스의 신뢰성 있는 런타임, 예컨대 도 1 및 도 2의 신뢰성 있는 런타임(112)에 의해 실행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(500)는 액트의 세트로서 도시되며 다양한 액트의 동작을 수행하기 위한 도시된 순서에 제한되지 않는다. 프로세스(500)는 스토리지 디바이스의 보호된 부분을 잠그기 위한 예시적인 프로세스이고; 스토리지 디바이스의 보호된 부분을 잠그는 추가적인 논의가 상이한 도면을 참조로 본원에 포함된다.
프로세스(500)에서, 스토리지 디바이스의 보호된 부분을 잠그기 위한 요청이 수신된다(액트 502). 그 요청은 커맨드의 형태로 수신될 수 있고, 여러 상이한 모듈로부터 수신될 수 있다. 하나 이상의 실시형태에서, 그 요청은 도 1 또는 도 2의 스토리지 디바이스 보호 시스템(106)으로부터 수신되지만, 그 요청은 대안적으로 도 1의 운영체제(108)와 같은 다른 모듈로부터 수신될 수 있다. 요청은 유저 또는 다른 모듈에 의해 개시될 수 있고, 명시적 요청(예를 들면, 유저가 원하기 때문에 보호된 부분이 잠금 상태로 되어야 한다는 요청) 또는 암시적 요청(예를 들면, 유저가 컴퓨팅 디바이스 상에서의 그의 또는 그녀의 계정을 로그 오프하기 때문에 보호 부분이 잠금 상태로 되어야 한다는 요청)일 수 있다.
하나 이상의 실시형태에서, 스토리지 디바이스 보호 시스템(106) 또는 운영체제(108)는, 부분에 대한 액세스를 방지하는 프로세스의 일부로서 액트 502에서 요청을 발행한다. 스토리지 디바이스 보호 시스템(106) 또는 운영체제(108)는 또한, 부분으로의 I/O 요청의 전송을 중지하는 것, 부분을 마운팅해제하는(dismounting) 것, 및 등등을 비롯하여, 부분에 대한 액세스를 방지함에 있어서의 추가적인 액트를 수행할 수 있다.
요청에 응답하여, 암호화 키는 인라인 암호화 프로세서로부터 제거된다(액트 504). 암호화 키는, 인라인 암호화 프로세서의 암호화된 키 저장소로부터 암호화 키를 삭제하기 위한 커맨드를 인라인 암호화 프로세서로 발행하는 것, 신뢰성 있는 런타임이 신규의 값(예를 들면, 모두 제로, 모두 1, 등등)을, 암호화 키가 저장되어 있는 인라인 암호화 프로세서의 레지스터로 기록하는 것, 및 등등과 같은 다양한 방식으로, 신뢰성 있는 런타임에 의해 인라인 암호화 프로세서로부터 제거될 수 있다.
추가적으로, 암호화 키의 어떠한 보호도 되지 않은 사본이 신뢰성 있는 런타임으로부터 제거된다(액트 506). 신뢰성 있는 런타임이, 암호화 키를 인라인 암호화 프로세서로 제공한 이후, 시간의 어떤 양 동안(예를 들면, 인라인 암호화 프로세서에서 암호화 키의 스와핑을 가능하게 하기 위한 몇 분 동안, 또는 더 길게) 암호화 키의 사본을 유지하는 상황이 발생할 수 있다. 암호화 키의 어떠한 보호도 되지 않은 사본이 신뢰성 있는 런타임에 남아 있으면, 이들 사본은 액트 506에서 삭제된다. 그러나, 보호된 암호화 키가 영구적 키 저장소에 저장되면, 영구적 키 저장소의 보호된 암호화 키는 삭제되지 않는다는 것을 유의해야 한다.
보호된 부분이 잠긴 이후, 신뢰성 있는 런타임도 인라인 암호화 프로세서도 암호화 키의 보호되지 않은 사본을 갖지 않는다. 신뢰성 있는 런타임은 암호화 키의 보호된 사본을 구비할(또는 획득할) 수도 있고, 신뢰성 있는 런타임이 암호화 키를 유도하고 다시 그 암호화 키를 인라인 암호화 프로세서로 제공하기 위해서는, 인증 키가 필요로 된다.
부분 잠금 해제
보호된 부분을 잠금 해제하는 것은, 이전에 잠궈진 부분에 대한 액세스를 허용하는 것을 가리킨다. 예를 들면, 부분이 잠궈진 이후의 어떤 시점에, 유저는 부분이 잠금 해제될 것을 요청할 수 있다. 결과적으로, 부분에 대한 액세스는 다시 허용되고, 그 결과, 부분에 저장된 데이터가 암호 해제될 수 있고, 데이터는 암호화되어 부분에 기록될 수 있다.
도 6은 하나 이상의 실시형태에 따른 스토리지 디바이스의 보호된 부분을 잠금 해제하기 위한 예시적인 프로세스(600)를 예시하는 플로우차트이다. 프로세스(600)는 컴퓨팅 디바이스의 신뢰성 있는 런타임, 예컨대 도 1 및 도 2의 신뢰성 있는 런타임(112)에 의해 실행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(600)는 액트의 세트로서 도시되며 다양한 액트의 동작을 수행하기 위한 도시된 순서에 제한되지 않는다. 프로세스(600)는 스토리지 디바이스의 보호된 부분을 잠금 해제하기 위한 예시적인 프로세스이고; 스토리지 디바이스의 보호된 부분을 잠금 해제하는 추가적인 논의가 상이한 도면을 참조로 본원에 포함된다.
프로세스(600)에서, 스토리지 디바이스의 부분을 잠금 해제하기 위한 요청이 수신된다(액트 602). 그 요청은 커맨드의 형태로 수신될 수 있고, 여러 상이한 모듈로부터 수신될 수 있다. 하나 이상의 실시형태에서, 그 요청은 도 1 또는 도 2의 스토리지 디바이스 보호 시스템(106)으로부터 수신되지만, 그 요청은 대안적으로 도 1의 운영체제(108)와 같은 다른 모듈로부터 수신될 수 있다. 요청은 유저 또는 다른 모듈에 의해 개시될 수 있고, 명시적 요청(예를 들면, 유저가 원하기 때문에 부분이 잠금 해제되어야 한다는 요청) 또는 암시적 요청(예를 들면, 유저가 컴퓨팅 디바이스 상에서의 그의 또는 그녀의 계정을 로그인하기 때문에 부분이 잠금 해제되어야 한다는 요청)일 수 있다.
요청에 응답하여, 부분에 대한 암호화된 키는 부분에 대한 보호된 암호화 키로부터 획득된다(액트 604). 부분에 대한 암호화 키는 보호된 암호화 키 및 인증 키 둘 다에 기초하여 획득된다. 부분에 대한 보호된 암호화 키는, 상기에서 논의된 바와 같이, 영구적 키 저장소에 유지되거나, 또는 운영체제로부터 수신될 수 있다. 인증 키는, 스토리지 디바이스 보호 시스템(106)으로 제공되는 유저 크리덴셜과 관련되는 인증 키이다. 하나 이상의 실시형태에서, 인증 키는, 액트 402에서 요청이 수신되는 시간에 도 2의 시스템(200)을 구현하는 컴퓨팅 디바이스에 현재 로그인되어 있는 엔티티(예를 들면, 유저)와 관련되는 인증 키이다. 대안적으로, 인증 키는, 도 2의 시스템(200)을 구현하는 컴퓨팅 디바이스에게 유저 크리덴셜을 제공하는 다른 엔티티와 관련되는 인증 키일 수 있다.
암호화 키는, 암호화 키가 이전에 보호되었던 방식에 적어도 부분적으로 기초하여, 보호된 암호화 키로부터 여러 상이한 방식으로 획득될 수 있다. 하나 이상의 실시형태에서, 암호 해제 알고리즘은, 암호화 키를 암호 해제하기 위한 키로서 인증 키를 사용한다. 암호화 키를 암호 해제하기 위해, 다양한 공개 및/또는 독점적 암호화 알고리즘 중 임의의 것이 사용될 수 있다.
암호화 키를 획득하기 위해 사용할 인증 키는 신뢰성 있는 런타임에 의해 여러 상이한 방식으로 획득될 수 있다. 하나 이상의 실시형태에서, 인증 키는 액트 602에서의 요청의 일부로서 스토리지 디바이스 보호 시스템(106)에 의해 제공된다. 대안적으로, 인증 키는 스토리지 디바이스 보호 시스템(106), 또는 대안적으로 다른 모듈 또는 디바이스에 의해, 다른 방식으로 또는 다른 시간에 제공될 수 있다.
획득된 암호화 키는 인라인 암호화 프로세서로 제공된다(액트 606). 획득된 암호화 키를 인라인 암호화 프로세서로 제공하는 것은, 인라인 암호화 프로세서에게 획득된 암호화 키를 프로비저닝하여, 인라인 암호화 프로세서가, 부분으로 기록되는 데이터를 암호화하는 것 및 획득된 암호화 키에 기초하여 부분으로부터 판독되는 데이터를 암호 해제하는 것을 허용하게 된다. 데이터를 암호화하고 암호 해제하기 위해 암호화 키가 사용되는 방식은, 암호화 및 암호 해제가 인라인 암호화 프로세서에 의해 수행되는 방식에 기초하여 변한다.
획득된 암호화 키의 식별자는 요청자에게 리턴된다(액트 608). 식별자는 여러 상이한 형태 중 임의의 것을 취할 수 있지만, 상기에서 논의된 바와 같이, (예를 들면, 상이한 부분에 대해 사용되는) 상이한 암호화 키가 식별되는 것을 허용한다. 암호화 키의 이 식별자는, 단지, 운영체제가 어떤 암호화 키를 사용할지를 인라인 암호화 프로세서에게 식별시키는 것을 허용하며; 식별자는 암호화 키를 제공하지 않거나 또는 다르게는 운영체제가 암호화 키를 획득하는 것을 허용하지 않는다는 것을 유의해야 한다.
부분이 잠금 해제된 이후, 인라인 암호화 프로세서로, 부분에 대한 암호화 키가 프로비저닝된다. 데이터는 암호화되어 부분으로 기록될 수 있고, 뿐만 아니라 부분으로부터 판독되어 암호 해제될 수 있다. 인라인 암호화 프로세서가 암호화 키의 보호되지 않은 사본을 구비하지만, 인라인 암호화 프로세서 및 신뢰성 있는 런타임 외부에 있는 어떠한 다른 디바이스, 모듈, 또는 컴포넌트도 암호화 키에 액세스할 수 없다. 하나 이상의 실시형태에서, 신뢰성 있는 런타임은, 일단 암호화 키가 인라인 암호화 프로세서에서 프로비저닝되었다면, 암호화 키의 모든 암호화되지 않은 사본을 폐기한다. 대안적으로, 신뢰성 있는 런타임은 특정한 양의 시간 동안 암호화 키의 사본을 유지할 수도 있다.
부분 보호의 디스에이블
부분의 보호를 디스에이블하는 것은, 특정한 인증용 크리덴셜과의 부분의 관련성을 해제하는(disassociating) 것을 가리키는데, 부분에 대한 액세스를 인증된 엔티티에게만 더 이상 제한하지 않게 된다. 예를 들면, 부분의 보호가 디스에이블될 것을, 그리고 결과로서 유저의 인증용 크리덴셜과의 부분의 관련성이 해제될 것을 유저가 요청할 수 있어서, 유저의 어떤(만약 있다면) 인증용 크리덴셜이 제공되는지에 관계 없이, 부분 상에 저장된 데이터에 대한 액세스를 허용하게 된다(그리고 신규의 데이터가 부분 상에 저장되는 것을 허용하게 된다).
도 7은 하나 이상의 실시형태에 따른 스토리지 디바이스의 부분에 대한 보호를 디스에이블하기 위한 예시적인 프로세스(700)를 예시하는 플로우차트이다. 프로세스(700)는 컴퓨팅 디바이스의 신뢰성 있는 런타임, 예컨대 도 1 및 도 2의 신뢰성 있는 런타임(112)에 의해 실행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(700)는 액트의 세트로서 도시되며 다양한 액트의 동작을 수행하기 위한 도시된 순서에 제한되지 않는다. 프로세스(700)는 스토리지 디바이스의 부분에 대한 보호를 디스에이블하기 위한 예시적인 프로세스이고; 스토리지 디바이스의 부분의 보호를 디스에이블하는 추가적인 논의가 상이한 도면을 참조로 본원에 포함된다.
프로세스(700)에서, 스토리지 디바이스의 부분의 보호를 디스에이블하기 위한 요청이 수신된다(액트 702). 그 요청은 커맨드의 형태로 수신될 수 있고, 여러 상이한 모듈로부터 수신될 수 있다. 하나 이상의 실시형태에서, 그 요청은 도 1 또는 도 2의 스토리지 디바이스 보호 시스템(106)으로부터 수신되지만, 그 요청은 대안적으로 도 1의 운영체제(108)와 같은 다른 모듈로부터 수신될 수 있다.
요청에 응답하여, 부분에 대한 암호화 키는 부분에 대한 보호된 암호화 키로부터 획득된다(액트 704). 부분에 대한 암호화 키는 보호된 암호화 키 및 인증 키 둘 다에 기초하여 획득된다. 부분에 대한 보호된 암호화 키는, 상기에서 논의된 바와 같이, 영구적 키 저장소에 유지되거나, 또는 운영체제로부터 수신될 수 있다. 인증 키는, 스토리지 디바이스 보호 시스템(106)으로 제공되는 유저 크리덴셜과 관련되는 인증 키이다. 하나 이상의 실시형태에서, 인증 키는, 액트 402에서 요청이 수신되는 시간에 도 2의 시스템(200)을 구현하는 컴퓨팅 디바이스에 현재 로그인되어 있는 엔티티(예를 들면, 유저)와 관련되는 인증 키이다. 대안적으로, 인증 키는, 도 2의 시스템(200)을 구현하는 컴퓨팅 디바이스에게 유저 크리덴셜을 제공하는 다른 엔티티와 관련되는 인증 키일 수 있다.
암호화 키는, 암호화 키가 이전에 보호되었던 방식에 적어도 부분적으로 기초하여, 보호된 암호화 키로부터 여러 상이한 방식으로 획득될 수 있다. 하나 이상의 실시형태에서, 암호 해제 알고리즘은, 암호화 키를 암호 해제하기 위한 키로서 인증 키를 사용한다. 암호화 키를 암호 해제하기 위해, 다양한 공개 및/또는 독점적 암호화 알고리즘 중 임의의 것이 사용될 수 있다.
암호화 키를 획득하기 위해 사용할 인증 키는 신뢰성 있는 런타임에 의해 여러 상이한 방식으로 획득될 수 있다. 하나 이상의 실시형태에서, 인증 키는 액트 702에서의 요청의 일부로서 스토리지 디바이스 보호 시스템(106)에 의해 제공된다. 대안적으로, 인증 키는 스토리지 디바이스 보호 시스템(106), 또는 대안적으로 다른 모듈 또는 디바이스에 의해, 다른 방식으로 또는 다른 시간에 제공될 수 있다.
대안적으로, 하나 이상의 실시형태에서, 신뢰성 있는 런타임은 부분이 잠금 해제되어 있는 동안, 보호되지 않은 키의 사본을 자신의 메모리에 갖는 것을 선택할 수도 있다. 이러한 실시형태에서, 액트 704에서, 보호되지 않은 암호화 키를 획득하기 위해 신뢰성 있는 런타임이 보호된 암호화 키를 암호 해제할 필요는 없다.
액트 704에서 획득되는 암호화 키는 신뢰성 있는 런타임을 사용하여 지속된다(액트 706). 암호화 키는, 도 3의 액트 306에 관한 상기의 논의와 마찬가지로, 상이한 방식으로 지속될 수 있다. 예를 들면, 암호화 키는 신뢰성 있는 런타임의 영구적 키 저장소에서 유지될 수 있거나, 또는 암호화된 암호화 키가 생성될 수 있고(예를 들면, 신뢰성 있는 런타임에게만 알려진 비밀 키를 사용하여 암호화 키를 암호화하는 것에 의해 생성될 수 있고) 그 암호화된 암호화 키는 운영체제로 제공될 수 있다. 암호화 키는, 상기에서 논의된 바와 같이, 전력 싸이클에 걸쳐 지속된다.
추가적으로, 보호된 암호화 키는 제거된다(액트 708). 보호된 암호화 키가 영구적 키 저장소에서 유지되는 상황에서, 획득된 암호화 키는 영구적 키 저장소의 보호된 암호화 키를 유효하게 대체하여, 예를 들면, 보호된 암호화 키를 덮어쓰게 된다. 따라서, 보호된 암호화 키는 영구적 키 저장소로부터 제거된다. 대안적으로, 보호된 암호화 키가 운영체제로 리턴되어 운영체제에 의해 유지되는 상황에서, 신뢰성 있는 런타임은 운영체제에게 보호된 암호화 키를 삭제할 것을 통지한다. 따라서, 보호된 암호화 키는 운영체제로부터 제거된다.
부분의 보호가 디스에이블된 이후, 부분에 저장된 데이터에 대한 액세스는 제한되지 않는다. 부분에 저장된 데이터가 암호화되지만, 암호화된 데이터를 판독하기 위해, 어떠한 인증용 크리덴셜도 신뢰성 있는 런타임으로 제공될 필요가 없다. 하나 이상의 실시형태에서, 부분의 데이터는, 부분의 보호를 디스에이블하기 이전에 몇몇 다른 방식으로 삭제되거나 또는 보호된다.
상기에서 논의된 바와 같이, 부분의 보호가 인에이블되고 부분이 잠금 해제되더라도, 암호화 키는 운영체제 또는 스토리지 디바이스 보호 시스템(106)에게 알려지지 않는다. 따라서, 부분의 보호는 디스에이블될 수 있고, 컴퓨팅 디바이스는, 신뢰성 있는 런타임 또는 인라인 암호화 프로세서의 암호화 키가, 컴퓨팅 디바이스의 이전의 유저에 의해 사용된 스토리지 디바이스 보호 시스템 또는 컴퓨팅 디바이스의 이전의 유저에게 알려지는 위험 없이, 상이한 유저에게 전달될 수 있다.
부분 복원 및 마이그레이션
신뢰성 있는 런타임에서 암호화 키 또는 보호된 암호화 키를 유지하는 것은, 스토리지 디바이스가 상이한 컴퓨팅 디바이스로 이동되면, 암호화 키, 따라서, 부분을, 액세스 불가능하게 만든다. 부분 복원 및 마이그레이션은, 부분의 복원 및 마이그레이션을 위해, 신뢰성 있는 런타임이 보호된 암호화 키, 또는 보호되지 않은 암호화 키를 노출시키는 것을 허용하는 것을 가리킨다. 예를 들면, 부분을 포함하는 스토리지 디바이스가 상이한 컴퓨팅 디바이스로 마이그레이션될 것을 요청할 수 있고, 이렇게 하기 위해 보호된 암호화 키가 노출될 것을 요청할 수 있다. 다른 예로서, 유저는, 유저가 그의 또는 그녀의 인증용 크리덴셜을 분실한 경우에, 복원의 목적을 위해, 암호화 키가 관리자 또는 다른 디바이스에게 노출될 것을 요청할 수 있다.
도 8은 하나 이상의 실시형태에 따른 부분의 복원 또는 마이그레이션을 위해 암호화 키를 노출시키기 위한 예시적인 프로세스(800)를 예시하는 플로우차트이다. 프로세스(800)는 컴퓨팅 디바이스의 신뢰성 있는 런타임, 예컨대 도 1 및 도 2의 신뢰성 있는 런타임(112)에 의해 실행되고, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 프로세스(800)는 액트의 세트로서 도시되며 다양한 액트의 동작을 수행하기 위한 도시된 순서에 제한되지 않는다. 프로세서(800)는 부분의 복원 또는 마이그레이션을 위한 암호화 키를 노출시키기 위한 예시적인 프로세스이며; 부분의 복원 또는 마이그레이션을 위한 암호화 키를 노출시키는 추가적인 논의는 상이한 도면을 참조로 본원에서 포함된다.
프로세스(800)에서, 스토리지 디바이스의 부분의 암호화 키의 마이그레이션 또는 복원에 대한 요청이 수신된다(액트 802). 그 요청은 커맨드의 형태로 수신될 수 있고, 여러 상이한 모듈로부터 수신될 수 있다. 하나 이상의 실시형태에서, 그 요청은 도 1 또는 도 2의 스토리지 디바이스 보호 시스템(106)으로부터 수신되지만, 그 요청은 대안적으로 도 1의 운영체제(108)와 같은 다른 모듈로부터 수신될 수 있다.
요청에 응답하여, 암호화 키 또는 보호된 암호화 키는 요청에 따라 노출된다(액트 804). 신뢰성 있는 런타임은, 요청된 키를 자신이 실제로 노출해야 한다는 것을 검증하기 위해, 옵션적으로, 다양한 인증 또는 승인 액션을 취할 수 있다. 요청에 따라, 키의 보호되지 않은 사본이 노출될 수도 있거나, 또는 대안적으로 키의 보호된 사본이 노출될 수 있다. 대안적으로, 신뢰성 있는 런타임의 비밀 키를 사용하여 보호된(예를 들면, 신뢰성 있는 런타임의 비밀 키에 기초하여 암호화된) 키의 사본이 노출될 수 있다. 다른 디바이스 또는 컴포넌트가 이러한 보호된 키를 저장할 수 있지만, 신뢰성 있는 런타임만이, 보호된 암호화 키로부터 암호화 키를 획득하기 위해 사용될 수 있는 비밀 키를 갖는다. 대안적으로, 신뢰성 있는 런타임은, 소망되는 경우, 비밀 키를 다른 유저 또는 디바이스(예를 들면, 관리자)에게 노출시킬 것을 선택할 수 있다.
하나 이상의 실시형태에서, 요청(802)은, 관리자 또는 네트워크 상의 다른 디바이스와 같은 백업 시스템으로부터 수신된다. 백업 시스템은, 암호화 키를 암호화하기 위해 사용될 키의 표시를 제공하고(예를 들면, 그 키를 제공하고), 암호화된 암호화 키는 백업 시스템으로 제공된다. 컴퓨팅 디바이스의 유저 및 운영체제는 암호화 키를 암호화하기 위해 사용되는 키에 액세스할 필요가 없다.
추가적으로, 암호화 키가 노출되었다는 표시가 신뢰성 있는 런타임에서 지속된다(액트 806). 그 표시는, 예를 들면, 노출된 키와 함께 영구적 키 저장소에서 지속된다. 그 표시는, 옵션적으로, 키가 어떻게 노출되었는지를(예를 들면, 보호되지 않은 암호화 키가 노출되었는지 또는 보호된 암호화 키가 노출되었는지의 여부를) 나타낼 수 있다.
운영체제 또는 스토리지 디바이스 보호 시스템(106)은, 액트 806에서 이 표시를 취득할 수 있고, 이 표시에 기초하여 소망에 따라 작용할 수 있다. 예를 들면, 스토리지 디바이스 보호 시스템(106)은, 부분에 대한 암호화 키가 노출되었다는 경고를 컴퓨팅 디바이스의 유저에게 디스플레이할 수도 있고, 인증 키를 신뢰성 있는 런타임에게 제공하기 이전에 부분을 계속 사용하기 위해 유저의 승인을 수신할 수도 있다.
도 2로 돌아가서, 부분에 관한 다양한 동작이 본원에서 논의된다. 이들 동작은 예이다는 것, 및 시스템(200)은 이들 동작 모두를 지원하지 않을 수도 있다는 것을 유의해야 한다. 예를 들면, 시스템(200)은 부분 복원 및 마이그레이션을 지원하지 않을 수도 있다. 추가적으로, 시스템(200)은 부분에 관한 추가적인 동작을 지원할 수 있다는 것을 유의해야 한다. 예를 들면, 시스템(200)은, 신뢰성 있는 런타임으로 하여금 부분에 대한 신규의 암호화 키를 생성하게 하고 영구적 키 저장소에 있는 이전의 암호화 키를 신규로 생성된 암호화 키로 대체하게 하는, 또는 이전의 보호된 암호화 키를 보호된 신규로 생성된 키로 대체하게 하는 키 교체 동작을 지원할 수도 있다. 이러한 키 교체가 부분에 이전에 기록된 임의의 데이터가 후속하여 암호 해제되는 것을 방지할 것이지만(이러한 데이터를 암호 해제하기 위해 사용되는 암호화 키가 삭제되었기 때문임), 이러한 키 교체는, (예를 들면, 부분 복원 및 마이그레이션 동작으로 인해) 이전의 암호화 키가 신뢰성 있는 런타임에 의해 노출되었다면, 유저의 부분의 계속된 사용을 허용할 수도 있고 유저에 대한 마음의 평화를 허용할 수도 있다. 대안적으로, 이러한 키 교체는 새롭게 생성된 키를 이용한 부분의 재암호화를 허용할 수 있을 것이고, 이전에 기록된 데이터(그리고 이러한 이전에 기록된 데이터를 암호 해제하기 위해 사용되는 암호화 키를 백업 시스템이 이용 가능하게 만들면, 또는 암호화 키가 다른 식으로 이용 가능하게 되면, 암호 해제될 부분에 이전에 기록된 데이터)를 부분에 보존하게 된다
부분에 기록되는 데이터 모두가 암호화되게 하고 부분으로부터 판독되는 데이터 모두가 암호 해제되는 것으로 스토리지 디바이스(104)의 부분이 논의되지만, 몇몇 상황에서는, 이러한 암호화 및 암호 해제는 수행될 필요가 없다는 것을 또한 유의해야 한다. 하나 이상의 실시형태에서, 부분 중 적어도 일부는, 옵션적으로, 암호화되지 않은 데이터를 포함할 수 있다. 이러한 부분은 부분에 관한 메타데이터, 예컨대, 부분 상에 저장된 키 프로텍터의 식별자, 부분에 액세스하는 방법, 및 등등을 포함할 수도 있다. 이러한 데이터는 암호화될 필요가 없거나 또는 암호 해제될 필요가 없다. 이러한 데이터는, 어떠한 암호화 키도 사용되지 않을 것(예를 들면, 암호화 없음과 관련되는 식별자, 예컨대 널 식별자를 제공하는 것, 또는 식별자를 전혀 제공하지 않는 것)이다는 표시를 운영체제가 제공하는 것과 같은 상이한 방식으로 식별될 수 있다.
추가적으로, 운영체제가 부분 상에 저장된 데이터를 그 암호화된 형태로 판독 및 기록하기를 소망하는 상황이 발생할 수 있다. 예를 들면, 운영체제가 암호화된 데이터를 하나의 스토리지 디바이스로부터 다른 스토리지 디바이스로 전송할 수도 있고, 암호화된 데이터를 백업할 수도 있고, 및 등등을 할 수도 있다. 운영체제는, 어떠한 암호화 키도 사용되지 않을 것이다는 것을 나타내는 I/O 요청을 제출할 수 있고, 인라인 암호화 프로세서(114)는 요청된 암호화된 콘텐트를 운영체제로 제공한다.
따라서, 부분으로의 몇몇 I/O 요청은, 부분이 잠겨져 있을 수도 있더라도, 지원될 수 있다는 것을 또한 유의해야 한다. 예를 들면, 암호화되지 않은 데이터는 부분으로부터 여전히 판독될 수 있거나, 또는 어떠한 암호화 키도 이러한 데이터를 암호 해제하는 데 사용되지 않기 때문에, 암호화된 데이터 자체는 I/O 요청에 응답하여 운영체제로 리턴될 수도 있다.
본원에서 논의되는 기술은 여러 상이한 사용 시나리오를 지원한다. 데이터는, 신뢰성 있는 런타임에 의해 생성되는 그리고 인라인 암호화 프로세서로 제공되는 암호화 키에 기초하여 스토리지 디바이스의 부분 상에서 암호화된다. 따라서, 암호화 키는 유저 요청에 응답하여 컴퓨팅 디바이스에서 생성될 수도 있고, 유저는 컴퓨팅 디바이스에게 암호화 키를 프로비저닝하는 써드파티(예를 들면, 컴퓨팅 디바이스의 제조자)에 의존할 필요가 없다. 또한, 신뢰성 있는 런타임도 인라인 암호화 프로세서도, 신뢰성 있는 런타임 및 인라인 암호화 프로세서 외부에 있는 다른 프로그램에게 암호화 키를 공개할 필요가 없다 - 어떤 써드파티 또는 다른 디바이스도 암호화 키를 제공받을 필요가 없다.
추가적으로, 부분을 암호화되게 하려는 또는 보호되게 하려는 유저 요청에 응답하여, 부분 상의 데이터가 암호화된다는 또는 보호된다는 표시가 신속하게(즉시) 리턴될 수 있다. 그 표시는, 부분으로 기록되는 임의의 데이터가 그 작성 이후 이미 암호화되어 있기 때문에, 부분 상의 데이터가 암호화되는 것을 대기할 필요 없이 리턴될 수 있다. 부분의 몇몇 일부는 암호화되지 않을 수도 있지만, 그러나 이들 일부는, 그 부분이 작성된 이후 어떠한 데이터도 기록되지 않은 부분의 일부이다. 따라서, 유저는 부분 상의 데이터가 암호화될 연장된 시간의 기간(예를 들면, 수 분 내지 수 시간)을 대기할 필요가 없다 대신, 그 표시는 신속하게(예를 들면, 시간의 임계량, 예컨대 1 내지 5초 내에) 리턴될 수 있고, 옵션적으로, 부분이 암호화되도록 또는 보호되도록 만들어진 통화의 일부로서 동시적으로 리턴될 수 있다.
특정한 기능성이 특정한 모듈을 참조로 본원에서 논의되지만, 본원에서 논의되는 개개의 모듈의 기능성은 다수의 모듈로 분리될 수 있고/있거나, 다수의 모듈의 적어도 몇몇 기능성은 단일의 모듈로 결합될 수 있다는 것을 유의해야 한다. 액션을 수행하는 것으로서 본원에서 논의되는 특정한 모듈은, 그 특정한 모듈 자체가 액션을 수행하는 것을 포함하거나, 또는 대안적으로 그 특정한 모듈이 그 액션을 수행하는(또는 그 특정한 모듈과 연계하여 그 액션을 수행하는) 다른 컴포넌트 또는 모듈을 호출하는 또는 다르게는 그 다른 컴포넌트 또는 모듈에 액세스하는 것을 포함한다. 따라서, 액션을 포함하는 특정한 모듈은 그 특정한 모듈 자체가 그 액션을 수행하는 것 및/또는 그 특정한 모듈에 의해 호출되는 또는 다르게는 액세스되는 다른 모듈이 그 액션을 수행하는 것을 포함한다.
도 9는 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 컴퓨팅 디바이스(902)를 포함하는 예시적인 시스템을 900에서 일반적으로 예시한다. 컴퓨팅 디바이스(902)는, 예를 들면, 서비스 공급자의 서버, 클라이언트와 관련되는 디바이스(예를 들면, 클라이언트 디바이스), 온칩(on-chip) 시스템, 및/또는 임의의 다른 적절한 컴퓨팅 디바이스 또는 컴퓨팅 시스템일 수도 있다.
예시된 바와 같은 예시적인 컴퓨팅 디바이스(902)는, 서로 통신적으로 커플링되는 프로세싱 시스템(904), 하나 이상의 컴퓨터 판독 가능 매체(906), 및 하나 이상의 I/O 인터페이스(908)를 포함한다. 도시되지는 않았지만, 컴퓨팅 디바이스(902)는, 다양한 컴포넌트를 서로 커플링하는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 더 포함할 수도 있다. 시스템 버스는, 메모리 버스 또는 메모리 컨트롤러, 주변장치 버스, 범용 직렬 버스, 및/또는 다양한 버스 아키텍쳐 중 임의의 것을 활용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조체 중 임의의 하나 또는 조합을 포함할 수 있다. 제어 라인 및 데이터 라인과 같은 다양한 다른 예도 또한 고려된다.
프로세싱 시스템(904)은 하드웨어를 사용하여 하나 이상의 동작을 수행하는 기능성을 묘사한다. 따라서, 프로세싱 시스템(904)은, 프로세서, 기능적 블록, 및 등등으로서 구성될 수도 있는 하드웨어 엘리먼트(910)를 포함하는 것으로 예시된다. 이것은 하드웨어의 구현예를, 주문형 반도체(application specific integrated circuit) 또는 하나 이상의 반도체를 사용하여 형성되는 다른 로직 디바이스로서, 포함할 수도 있다. 하드웨어 엘리먼트(910)는, 하드웨어 엘리먼트(910)를 형성하는 재료 또는 내부에서 활용되는 프로세싱 메커니즘에 의해 제한되지 않는다. 예를 들면, 프로세서는 반도체(들) 및/또는 트랜지스터(예를 들면, 전자 집적 회로(integrated circuit; IC))로 구성될 수도 있다. 이러한 맥락에서, 프로세서 실행 가능 명령어는 전자적으로 실행 가능한 명령어일 수도 있다.
컴퓨터 판독 가능 매체(906)는 메모리/스토리지(912)를 포함하는 것으로 예시된다. 메모리/스토리지(912)는 하나 이상의 컴퓨터 판독 가능 매체와 관련되는 메모리/스토리지 용량을 나타낸다. 메모리/스토리지(912)는 휘발성 매체(예컨대 랜덤 액세스 메모리(random access memory; RAM)) 및/또는 불휘발성 매체(예컨대 리드 온리 메모리(read only memory; ROM), 플래시 메모리, 광학 디스크, 자기 디스크, 및 등등)를 포함할 수도 있다. 메모리/스토리지(912)는 고정식 매체(예를 들면, RAM, ROM, 고정식 하드 드라이브, 및 등등)뿐만 아니라 착탈식 매체(예를 들면, 플래시 메모리, 착탈식 하드 드라이브, 광학 디스크, 및 등등)를 포함할 수도 있다. 컴퓨터 판독 가능 매체(906)는 하기에서 더 설명되는 바와 같이 다양한 다른 방식으로 구성될 수도 있다.
입/출력 인터페이스(들)(908)는, 유저가 커맨드 및 정보를 컴퓨팅 디바이스(902)에 입력하는 것을 허용하는, 그리고 정보가 다양한 입/출력 디바이스를 사용하여 유저 및/또는 다른 컴포넌트 또는 디바이스로 제공되는 것을 또한 허용하는 기능성을 묘사한다. 입력 디바이스의 예는 키보드, 커서 제어 디바이스(예를 들면, 마우스), 마이크(예를 들면, 보이스 입력용), 스캐너, 터치 기능성(예를 들면, 물리적 접촉을 검출하도록 구성되는 용량성 또는 다른 센서), 카메라(예를 들면, 카메라는 제스쳐처럼 터치를 수반하지 않는 움직임을 검출하기 위해, 가시 또는 불가시 파장 예컨대 적외선 주파수를 활용할 수도 있다), 및 등등을 포함한다. 출력 디바이스의 예는 디스플레이 디바이스(예를 들면, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 반응 디바이스, 및 등등을 포함한다. 따라서, 컴퓨팅 디바이스(902)는 유저 상호작용을 지원하기 위해 하기에서 더 설명되는 바와 같이 다양한 방식으로 구성될 수도 있다.
컴퓨팅 디바이스(902)는 또한, 데이터 암호화 및 암호 해제 시스템(914)을 포함한다. 데이터 암호화 및 암호 해제 시스템(914)은, 상기에서 논의된 바와 같은 신뢰성 있는 런타임 및 인라인 암호화 프로세서를 비롯하여, 다양한 데이터 암호화 및 암호 해제 지원을 제공한다. 데이터 암호화 및 암호 해제 시스템(914)은, 예를 들면, 도 1 및 도 2의 신뢰성 있는 런타임(112) 및 인라인 암호화 프로세서(114)를 포함한다.
소프트웨어, 하드웨어 엘리먼트, 또는 프로그램 모듈의 일반적인 맥락에서, 다양한 기술이 본원에서 설명될 수도 있다. 일반적으로, 이러한 모듈은, 특정한 태스크를 수행하는 또는 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 엘리먼트, 컴포넌트, 데이터 구조, 및 등등을 포함한다. 본원에서 사용되는 바와 같은 용어 "모듈", "기능성", 및 "컴포넌트"는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 일반적으로 나타낸다. 본원에서 설명되는 기술의 피쳐는 플랫폼 독립적인데, 그 기술이 다양한 프로세서를 구비하는 다양한 컴퓨팅 플랫폼 상에서 구현될 수도 있다는 것을 의미한다.
설명된 모듈 및 기술의 구현예는 몇몇 형태의 컴퓨터 판독 가능 매체 상에 저장되거나 또는 몇몇 형태의 컴퓨터 판독 가능 매체를 통해 전송될 수도 있다. 컴퓨터 판독 가능 매체는, 컴퓨팅 디바이스(902)에 의해 액세스될 수도 있는 다양한 매체를 포함할 수도 있다. 비제한적인 예로서, 컴퓨터 판독 가능 매체는 "컴퓨터 판독 가능 저장 매체" 및 "컴퓨터 판독 가능 신호 매체"를 포함할 수도 있다.
"컴퓨터 판독 가능 저장 매체"는, 신호 송신, 반송파, 또는 신호 그 자체와는 대조적으로, 정보의 영구적인 저장 및/또는 유형의(tangible) 저장을 가능하게 하는 매체 및/또는 디바이스를 가리킨다. 따라서, 컴퓨터 판독 가능 저장 매체는 비 신호 베어링 매체(non-signal bearing media)를 가리킨다. 컴퓨터 판독 가능 저장 매체는, 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 로직 엘리먼트/회로, 또는 다른 데이터와 같은 정보의 저장에 적합한 방법 또는 기술로 구현되는 휘발성 및 불휘발성의 착탈식 및 비착탈식 매체 및/또는 스토리지 디바이스와 같은 하드웨어를 포함한다. 컴퓨터 판독 가능 저장 매체의 예는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disks; DVD) 또는 다른 광학 스토리지, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 또는 다른 스토리지 디바이스, 유형의 매체, 또는 소망의 정보를 저장하기에 적합하며 컴퓨터에 의해 액세스될 수도 있는 제조 물품을 포함할 수도 있지만, 이들로 제한되는 것은 아니다.
"컴퓨터 판독 가능 신호 매체"는, 예컨대 네트워크를 통해 명령어를 컴퓨팅 디바이스(902)의 하드웨어로 송신하도록 구성되는 신호 베어링 매체를 가리킨다. 신호 매체는 통상적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 변조된 데이터 신호, 예컨대 반송파, 데이터 신호, 또는 다른 전송 메커니즘에서의 다른 데이터를 구현할 수도 있다. 신호 매체는 임의의 정보 전달 매체를 또한 포함한다. 용어 "변조된 데이터 신호"는, 자신의 특성 세트 중 하나 이상이 신호에 정보를 인코딩하는 것과 같은 방식으로 설정되거나 변경된 신호를 의미한다. 비제한적인 예로서, 통신 매체는 유선 네트워크 또는 직결 접속과 같은 유선 매체, 및 무선 매체 예컨대 음향, RF, 적외선 및 다른 무선 매체를 포함한다.
앞서 설명된 바와 같이, 하드웨어 엘리먼트(910) 및 컴퓨터 판독 가능 매체(906)는, 본원에서 설명되는 기술의 적어도 몇몇 양태를 구현하기 위해 몇몇 실시형태에서 활용될 수도 있는 하드웨어 형태로 구현되는 명령어, 모듈, 프로그래밍 가능 디바이스 로직 및/또는 고정식 디바이스 로직을 묘사한다. 하드웨어 엘리먼트는 집적 회로 또는 온칩 시스템, 주문형 반도체(application-specific integrated circuit; ASIC), 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA), 복합 프로그래머블 로직 디바이스(complex programmable logic device; CPLD), 및 실리콘 또는 다른 하드웨어 디바이스에서의 다른 구현예의 컴포넌트를 포함할 수도 있다. 이 맥락에서, 하드웨어 엘리먼트는, 하드웨어 엘리먼트뿐만 아니라 실행을 위한 명령어를 저장하기 위해 활용되는 하드웨어 디바이스, 예를 들면, 앞서 설명된 컴퓨터 판독 가능 저장 매체에 의해 구현되는 명령어, 모듈, 및/또는 로직에 의해 정의되는 프로그램 태스크를 수행하는 프로세싱 디바이스로서 동작할 수도 있다.
본원에서 설명되는 다양한 기술 및 모듈을 구현하기 위해, 상기의 조합이 또한 활용될 수도 있다. 따라서, 소프트웨어, 하드웨어, 또는 프로그램 모듈 및 다른 프로그램 모듈은, 몇몇 형태의 컴퓨터 판독 가능 저장 매체 상에서 및/또는 하나 이상의 하드웨어 엘리먼트(910)에 의해 구현되는 하나 이상의 명령어 및/또는 로직으로서 구현될 수도 있다. 컴퓨팅 디바이스(902)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정한 명령어 및/또는 기능을 구현하도록 구성될 수도 있다. 따라서, 소프트웨어와 같이 컴퓨팅 디바이스(902)에 의해 실행 가능한 모듈로서의 모듈의 구현예는, 예를 들면, 프로세싱 시스템의 하드웨어 엘리먼트(910) 및/또는 컴퓨터 판독 가능 저장 매체의 사용을 통해, 적어도 부분적으로 하드웨어로 달성될 수도 있다. 명령어 및/또는 기능은 본원에서 설명되는 기술, 모듈, 및 예를 구현하도록 하나 이상의 제조 물품(예를 들면, 하나 이상의 컴퓨팅 디바이스(902) 및/또는 프로세싱 시스템(904))에 의해 실행 가능할/동작 가능할 수도 있다.
도 9에서 더 예시되는 바와 같이, 예시적인 시스템(900)은, 퍼스널 컴퓨터(personal computer; PC), 텔레비전 디바이스, 및/또는 모바일 디바이스 상에서 애플리케이션을 실행하고 있을 때 원활한 유저 경험을 위한 유비쿼터스 환경(ubiquitous environment)을 가능하게 한다. 서비스 및 애플리케이션은, 애플리케이션을 활용하는 동안, 비디오 게임을 플레이하는 동안, 비디오를 시청하는 동안, 및 등등의 동안, 하나의 디바이스로부터 다음의 것으로 전이할 때 공통의 유저 경험에 대해 모든 세 개의 환경에서 실질적으로 유사하게 된다.
예시적인 시스템(900)에서, 다수의 디바이스는 중앙 컴퓨팅 디바이스를 통해 상호접속된다. 중앙 컴퓨팅 디바이스는 다수의 디바이스에 로컬할 수도 있거나 또는 다수의 디바이스로부터 원격에 위치될 수도 있다. 하나 이상의 실시형태에서, 중앙 컴퓨팅 디바이스는, 네트워크, 인터넷, 또는 다른 데이터 통신 링크를 통해 다수의 디바이스에 연결되는 하나 이상의 서버 컴퓨터의 클라우드일 수도 있다.
하나 이상의 실시형태에서, 이 상호접속 아키텍쳐(interconnection architecture)는, 다수의 디바이스의 유저에게 공통의 그리고 원활한 경험을 제공하도록, 기능성이 다수의 디바이스 전체에 전달되는 것을 가능하게 한다. 다수의 디바이스의 각각은 상이한 물리적 요건 및 성능을 구비할 수도 있으며, 중앙 컴퓨팅 디바이스는, 디바이스에 맞춤되면서도(tailored) 여전히 모든 디바이스에 대해 공통인 경험을 디바이스로 전달하는 것을 가능하게 하기 위한 플랫폼을 사용한다. 하나 이상의 실시형태에서, 목표 디바이스의 클래스가 생성되고 경험이 디바이스의 일반 클래스(generic class)에 맞춤된다. 디바이스의 클래스는 디바이스의 물리적 피쳐, 사용의 타입, 또는 다른 공통의 특성에 의해 정의될 수도 있다.
다양한 구현예에서, 컴퓨팅 디바이스(902)는, 예컨대 컴퓨터(916), 모바일(918), 및 텔레비전(920) 용도를 위해, 여러 상이한 구성을 취할 수도 있다. 이들 구성의 각각은, 일반적으로 상이한 구조 및 성능을 가질 수도 있는 디바이스를 포함하며, 따라서 컴퓨팅 디바이스(902)는 상이한 디바이스 클래스 중 하나 이상에 따라 구성될 수도 있다. 예를 들면, 컴퓨팅 디바이스(902)는, 퍼스널 컴퓨터, 데스크탑 컴퓨터, 멀티스크린 컴퓨터, 랩탑 컴퓨터, 넷북, 및 등등을 포함하는 디바이스의 컴퓨터(916) 클래스로서 구현될 수도 있다.
컴퓨팅 디바이스(902)는 또한, 모바일 디바이스, 예컨대 이동 전화, 휴대형 음악 플레이어, 휴대형 게임용 디바이스, 태블릿 컴퓨터, 멀티스크린 컴퓨터, 웨어러블 디바이스, 사물 인터넷(Internet of Things; IoT) 디바이스, 및 등등을 포함하는 디바이스의 모바일(918) 클래스로서 구현될 수도 있다. 컴퓨팅 디바이스(902)는 또한, 일상적인(casual) 시청 환경에서 일반적으로 더 큰 스크린을 갖는 또는 더 큰 스크린에 연결되는 디바이스를 포함하는 디바이스의 텔레비전(920) 클래스로서 구현될 수도 있다. 이들 디바이스는 텔레비전, 셋탑 박스, 게임용 콘솔, 및 등등을 포함한다.
본원에서 설명되는 기술은 컴퓨팅 디바이스(902)의 이들 다양한 구성에 의해 지원될 수도 있으며 본원에서 설명되는 기술의 특정 예로 제한되지는 않는다. 이 기능성은, 모두 또는 부분적으로 분산형 시스템의 사용을 통해, 예컨대 하기에서 설명되는 바와 같이 플랫폼(924)을 통한 "클라우드"(922)를 통해 구현될 수도 있다.
클라우드(922)는 리소스(926)에 대한 플랫폼(924)을 포함하고/하거나 플랫폼(924)을 묘사한다. 플랫폼(924)은 클라우드(922)의 하드웨어(예를 들면, 서버) 및 소프트웨어 리소스의 기저의 기능성을 추상화한다. 리소스(926)는, 컴퓨팅 디바이스(902)로부터 원격인 서버 상에서 컴퓨터 프로세싱이 실행되고 있는 동안 활용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수도 있다. 리소스(926)는 인터넷을 통해 및/또는 가입자 네트워크, 예컨대 셀룰러 또는 와이파이 네트워크를 통해 제공되는 서비스를 또한 포함할 수 있다.
플랫폼(924)은 컴퓨팅 디바이스(902)를 다른 컴퓨팅 디바이스와 연결하는 리소스 및 기능을 추상화할 수도 있다. 플랫폼(924)은, 플랫폼(924)을 통해 구현되는 리소스(926)에 대한 조우되는 요구에 대해, 대응하는 레벨의 스케일을 제공하기 위해, 리소스의 스케일링을 추상화하도록 또한 기능할 수도 있다. 따라서, 상호접속된 디바이스 실시형태에서, 본원에서 설명되는 기능성의 구현예는 시스템(900) 전체에 걸쳐 분산될 수도 있다. 예를 들면, 기능성은 컴퓨팅 디바이스(902) 상에서 뿐만 아니라 클라우드(922)의 기능성을 추상화하는 플랫폼(924)을 통해서도 부분적으로 구현될 수도 있다.
비록 본 주제가 구조적 피쳐 및/또는 방법론적 액트에 고유한 언어로 설명되었지만, 첨부의 청구범위에서 정의되는 주제가 상기에서 설명되는 특정 피쳐 또는 액트로 반드시 제한되는 것은 아니다는 것이 이해되어야 한다. 오히려, 상기에서 설명되는 특정 피쳐 및 액트는 청구범위를 구현하는 예시적인 형태로서 개시된다.

Claims (10)

  1. 스토리지 디바이스 상의 데이터를 신속하게 보호하기 위한, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법에 있어서,
    상기 신뢰성 있는 런타임 - 상기 신뢰성 있는 런타임은 상기 컴퓨팅 디바이스에서의 다른 프로그램과는 분리됨 - 에서, 상기 스토리지 디바이스의 부분(portion)에 대한 키를 생성하기 위한 요청을 수신하는 단계;
    상기 키를 생성하기 위한 상기 요청에 응답하여,
    상기 키를 생성하는 단계,
    상기 신뢰성 있는 런타임을 사용하여, 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 상기 키를 지속시키는 단계,
    상기 스토리지 디바이스의 상기 부분으로의 후속하는 기록이 상기 키에 기초하여 인라인 암호화 프로세서(inline cryptographic processor)에 의해 암호화되고 상기 스토리지 디바이스의 상기 부분에 기록되는 데이터가 보호되도록, 상기 컴퓨팅 디바이스의 상기 인라인 암호화 프로세서에게 상기 키를 프로비저닝하는(provisioning) 단계; 및
    상기 부분의 보호가 인에이블되어야(enabled) 한다는 요청에 응답하여 상기 신뢰성 있는 런타임으로부터, 상기 부분의 적어도 일부(part)가 암호화되어 있지 않음에도 불구하고 상기 부분의 보호가 인에이블되어 있다는 표시를 리턴하는 단계
    를 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법.
  2. 제1항에 있어서,
    상기 키를 생성하기 위한 상기 요청에 응답하여, 상기 컴퓨팅 디바이스의 운영체제로 상기 키의 식별자를 리턴하는 단계를 더 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법.
  3. 제1항에 있어서,
    상기 부분의 보호가 인에이블되어야 한다는 상기 요청에 응답하여,
    인증 키에 기초하여 상기 키를 암호화하는 것에 의해, 상기 컴퓨팅 디바이스에 제공되는 인증용 크리덴셜(authentication credential)과 관련되는 상기 인증 키에 기초하여 상기 키를 보호하는 단계;
    상기 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되는 것을 중지하는 단계; 및
    상기 보호된 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되게 하는 단계를 더 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법.
  4. 제3항에 있어서,
    상기 부분의 보호가 인에이블되어야(enabled) 한다는 상기 요청을 수신한 이후, 상기 부분을 잠그기(lock) 위한 요청을 수신하는 단계; 및
    상기 부분을 잠그기 위한 상기 요청에 응답하여, 상기 신뢰성 있는 런타임 및 상기 인라인 암호화 프로세서 둘 다로부터 상기 키를 제거하는 단계를 더 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법.
  5. 스토리지 디바이스 상의 데이터를 신속하게 보호하기 위한 컴퓨팅 디바이스에 있어서,
    상기 컴퓨팅 디바이스의 운영체제와는 분리되는 신뢰성 있는 런타임으로서,
    상기 스토리지 디바이스의 부분에 대한 키를 생성하도록,
    상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 상기 키를 지속시키도록,
    상기 스토리지 디바이스의 상기 부분의 보호가 인에이블되어야 한다는 요청에 응답하여, 상기 스토리지 디바이스의 상기 부분의 하나 이상의 일부가 암호화되어 있지 않음에도 불구하고, 상기 스토리지 디바이스의 상기 부분의 보호가 인에이블되어 있다는 표시를 리턴하도록
    구성되는 상기 신뢰성 있는 런타임; 및
    상기 신뢰성 있는 런타임으로부터 상기 키를 수신하도록,
    상기 키에 기초하여 상기 스토리지 디바이스의 상기 부분으로의 후속하는 기록을 암호화하도록,
    상기 키에 기초하여 상기 스토리지 디바이스의 상기 부분으로부터의 후속하는 판독을 암호 해제하도록
    구성되는 것에 의해 상기 스토리지 디바이스 상의 데이터를 보호하기 위한 인라인 암호화 프로세서(inline cryptographic processor)
    를 포함하는, 컴퓨팅 디바이스.
  6. 제5항에 있어서,
    상기 신뢰성 있는 런타임은 또한, 상기 부분의 보호가 인에이블되어야 한다는 상기 요청에 응답하여,
    상기 컴퓨팅 디바이스로 제공되는 인증용 크리덴셜과 관련되는 인증 키에 기초하여 상기 키를 보호하도록;
    상기 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되는 것을 중지하도록;
    상기 보호된 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되게 하도록
    구성되는 것인, 컴퓨팅 디바이스.
  7. 제6항에 있어서,
    상기 신뢰성 있는 런타임은 또한,
    상기 부분의 보호가 인에이블되어야 한다는 상기 요청을 수신한 이후, 상기 부분을 잠그기 위한 요청을 수신하도록;
    상기 부분을 잠그기 위한 상기 요청에 응답하여, 상기 신뢰성 있는 런타임 및 상기 인라인 암호화 프로세서 둘 다로부터 상기 키를 제거하도록
    구성되는 것인, 컴퓨팅 디바이스.
  8. 제7항에 있어서,
    상기 신뢰성 있는 런타임은 또한,
    상기 신뢰성 있는 런타임 및 상기 인라인 암호화 프로세서 둘 다로부터 상기 키를 제거한 이후, 상기 부분을 잠금 해제하기(unlock) 위한 요청을 수신하도록;
    상기 부분을 잠금 해제하기 위한 상기 요청에 응답하여,
    상기 보호된 키에 기초하여, 상기 보호된 키로부터 상기 키를 획득하도록,
    상기 컴퓨팅 디바이스의 상기 인라인 암호화 프로세서에게 상기 획득된 키를 프로비저닝하도록
    구성되는 것인, 컴퓨팅 디바이스.
  9. 제6항에 있어서,
    상기 신뢰성 있는 런타임은 또한,
    상기 부분의 보호가 인에이블되어야 한다는 상기 요청을 수신한 이후, 상기 부분의 보호를 디스에이블하기(disable) 위한 요청을 수신하도록;
    상기 부분의 보호를 디스에이블하기 위한 상기 요청에 응답하여,
    상기 보호된 키에 기초하여, 상기 보호된 키로부터 상기 키를 획득하도록,
    상기 신뢰성 있는 런타임을 사용하여 상기 획득된 키를 지속시키도록
    구성되는 것인, 컴퓨팅 디바이스.
  10. 제6항에 있어서,
    상기 신뢰성 있는 런타임은 또한,
    상기 부분의 보호가 인에이블되어야 한다는 상기 요청을 수신한 이후, 상기 키의 마이그레이션 또는 복원에 대한 요청을 수신하도록;
    상기 키의 마이그레이션 또는 복원에 대한 상기 요청에 응답하여, 상기 보호된 키를 요청자(requester)에게 노출시키도록
    구성되는 것인, 컴퓨팅 디바이스.
KR1020167028179A 2014-03-20 2015-03-18 스토리지 디바이스에 대한 신속한 데이터 보호 KR102340219B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/221,105 2014-03-20
US14/221,105 US10615967B2 (en) 2014-03-20 2014-03-20 Rapid data protection for storage devices
PCT/US2015/021125 WO2015142970A1 (en) 2014-03-20 2015-03-18 Rapid data protection for storage devices

Publications (2)

Publication Number Publication Date
KR20160138450A true KR20160138450A (ko) 2016-12-05
KR102340219B1 KR102340219B1 (ko) 2021-12-15

Family

ID=52829329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028179A KR102340219B1 (ko) 2014-03-20 2015-03-18 스토리지 디바이스에 대한 신속한 데이터 보호

Country Status (5)

Country Link
US (1) US10615967B2 (ko)
EP (1) EP3120291B1 (ko)
KR (1) KR102340219B1 (ko)
CN (1) CN106462718B (ko)
WO (1) WO2015142970A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461490B1 (en) 2020-09-23 2022-10-04 Cru Data Security Group, Llc Systems, methods, and devices for conditionally allowing processes to alter data on a storage device

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874935B2 (en) 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
US9524249B2 (en) * 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US9565169B2 (en) * 2015-03-30 2017-02-07 Microsoft Technology Licensing, Llc Device theft protection associating a device identifier and a user identifier
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
CN108496159A (zh) * 2016-01-21 2018-09-04 惠普发展公司,有限责任合伙企业 数据密码引擎
US10367794B2 (en) * 2016-05-06 2019-07-30 Ian L Sayers Method and apparatus for securing a sensor or device
US10389517B2 (en) * 2016-06-27 2019-08-20 Nxp B.V. Using secure key storage to bind a white-box implementation to one platform
EP3340147A1 (en) * 2016-12-22 2018-06-27 Mastercard International Incorporated Method for providing key identifier in transaction data
CN108429719B (zh) * 2017-02-14 2020-12-01 华为技术有限公司 密钥保护方法及装置
EP3625927A4 (en) 2017-07-12 2020-12-09 Hewlett-Packard Development Company, L.P. Storage device migration
CN107358109A (zh) * 2017-07-17 2017-11-17 山东超越数控电子有限公司 一种安全增强智能终端加密存储系统
JP6899308B2 (ja) * 2017-10-16 2021-07-07 株式会社日立製作所 情報処理装置および情報処理装置のデータ処理方法
SE1751451A1 (en) * 2017-11-24 2019-05-25 Fingerprint Cards Ab Biometric template handling
CN110414245B (zh) * 2018-04-28 2023-09-22 伊姆西Ip控股有限责任公司 用于在存储系统中管理加密密钥的方法、装置和计算机程序产品
US10891385B2 (en) * 2018-05-16 2021-01-12 Microsoft Technology Licensing, Llc Encryption at rest for cloud-resourced virtual machines
EP3787219A4 (en) * 2018-06-14 2021-04-28 Huawei Technologies Co., Ltd. KEY PROCESSING PROCESS AND DEVICE
CN111698080B (zh) * 2019-03-14 2024-03-15 西安诺瓦星云科技股份有限公司 节目文件导出、导入方法及其装置和多媒体播放盒
SG11202005059PA (en) * 2019-06-28 2020-06-29 Alibaba Group Holding Ltd System and method for updating data in blockchain
EP3688710B1 (en) * 2019-06-28 2022-05-25 Advanced New Technologies Co., Ltd. System and method for blockchain address mapping
JP7306964B2 (ja) * 2019-11-05 2023-07-11 ルネサスエレクトロニクス株式会社 仮想化システムおよび動作管理方法
US11436343B2 (en) * 2019-12-31 2022-09-06 Arm Limited Device, system, and method of policy enforcement for rich execution environment
US11562057B2 (en) 2020-02-05 2023-01-24 Quantum Digital Solutions Corporation Ecosystem security platforms for enabling data exchange between members of a digital ecosystem using digital genomic data sets
KR20240005674A (ko) 2021-02-04 2024-01-12 퀀텀 디지털 솔루션즈 코포레이션 사이퍼제닉스 기반 생태계 보안 플랫폼들
US20220358235A1 (en) * 2021-05-05 2022-11-10 EMC IP Holding Company LLC Access Control of Protected Data Using Storage System-Based Multi-Factor Authentication
US20210319121A1 (en) * 2021-06-25 2021-10-14 Intel Corporation Concurrent volume and file based inline encryption on commodity operating systems
CN113672973B (zh) * 2021-07-20 2024-04-16 深圳大学 基于可信执行环境的risc-v架构的嵌入式设备的数据库系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249866B1 (en) * 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
KR20120096019A (ko) * 2009-12-21 2012-08-29 인텔 코포레이션 피보호 장치 관리
WO2013026662A1 (en) * 2011-08-19 2013-02-28 Gemalto Sa Method for hard partitioning the resources of a secure computer system
US8458491B1 (en) * 2010-06-23 2013-06-04 Raytheon Bbn Technologies Corp. Cryptographically scrubbable storage device

Family Cites Families (211)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495533A (en) 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
US5787131A (en) 1995-12-22 1998-07-28 Ericsson Inc. Method and apparatus for mitigation of self interference using array processing
US6016402A (en) 1996-05-21 2000-01-18 Iomega Corporation Method for integrating removable media disk drive into operating system recognized as fixed disk type and modifying operating system to recognize as floppy disk type
US5897661A (en) 1997-02-25 1999-04-27 International Business Machines Corporation Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information
US6067199A (en) 1997-06-30 2000-05-23 Emc Corporation Method and apparatus for increasing disc drive performance
US5974503A (en) 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US6076143A (en) 1997-09-02 2000-06-13 Emc Corporation Method and apparatus for managing the physical storage locations for blocks of information in a storage system to increase system performance
US6028725A (en) 1997-06-30 2000-02-22 Emc Corporation Method and apparatus for increasing disc drive performance
US5944783A (en) 1997-07-29 1999-08-31 Lincom Corporation Apparatus and method for data transfers through software agents using client-to-server and peer-to-peer transfers
US5966263A (en) 1997-08-01 1999-10-12 International Business Machines Corporation Method and apparatus to increase head/AE select robustness for a system using multiple head servo write
JP3548529B2 (ja) 1997-08-20 2004-07-28 パワークエスト・コーポレーション イメージ形成中のコンピュータ・パーティション操作
US6292790B1 (en) 1997-10-20 2001-09-18 James E. Krahn Apparatus for importing and exporting partially encrypted configuration data
US6170055B1 (en) 1997-11-03 2001-01-02 Iomega Corporation System for computer recovery using removable high capacity media
US6041386A (en) 1998-02-10 2000-03-21 International Business Machines Corporation Data sharing between system using different data storage formats
US6298446B1 (en) 1998-06-14 2001-10-02 Alchemedia Ltd. Method and system for copyright protection of digital images transmitted over networks
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US6438235B2 (en) 1998-08-05 2002-08-20 Hewlett-Packard Company Media content protection utilizing public key cryptography
US7380140B1 (en) 1998-12-30 2008-05-27 Spyrus, Inc. Providing a protected volume on a data storage device
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US7451484B1 (en) 1999-05-27 2008-11-11 International Business Machines Corporation Method for enabling a program written in untrusted code to interact with a security subsystem of a hosting operating system
JP2000341263A (ja) 1999-05-27 2000-12-08 Sony Corp 情報処理装置及び方法
US6292317B1 (en) 1999-09-02 2001-09-18 Maxtor Corporation Method and apparatus for performing a flaw scan of a disk drive
US6665784B2 (en) 1999-09-03 2003-12-16 Roxio, Inc. Method for writing and reading data to and from a compact disc media
US7216251B2 (en) 2000-02-19 2007-05-08 Powerquest Corporation Computer imaging recovery without a working partition or a secondary medium
US6944742B1 (en) 2000-04-28 2005-09-13 Microsoft Corporation Compressed file system for non-volatile RAM
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7197638B1 (en) 2000-08-21 2007-03-27 Symantec Corporation Unified permissions control for remotely and locally stored files whose informational content may be protected by smart-locking and/or bubble-protection
US6789162B1 (en) 2000-10-17 2004-09-07 Sun Microsystems, Inc. Storage controller configured to select unused regions of a storage device for data storage according to head position
US6727896B2 (en) 2001-08-01 2004-04-27 Microsoft Corporation Correction of alignment and linearity errors in a stylus input system
US20030084298A1 (en) 2001-10-25 2003-05-01 Messerges Thomas S. Method for efficient hashing of digital content
US7171557B2 (en) 2001-10-31 2007-01-30 Hewlett-Packard Development Company, L.P. System for optimized key management with file groups
US7903549B2 (en) 2002-03-08 2011-03-08 Secure Computing Corporation Content-based policy compliance systems and methods
US7614077B2 (en) 2002-04-10 2009-11-03 International Business Machines Corporation Persistent access control of protected content
US7269612B2 (en) 2002-05-31 2007-09-11 International Business Machines Corporation Method, system, and program for a policy based storage manager
CA2496664C (en) 2002-08-23 2015-02-17 Exit-Cube, Inc. Encrypting operating system
CA2496779C (en) 2002-08-26 2011-02-15 Guardednet, Inc. Determining threat level associated with network activity
US20060190984A1 (en) 2002-09-23 2006-08-24 Credant Technologies, Inc. Gatekeeper architecture/features to support security policy maintenance and distribution
KR100492800B1 (ko) 2002-11-12 2005-06-07 주식회사 하이닉스반도체 불휘발성 강유전체 메모리 제어 장치
US7181016B2 (en) 2003-01-27 2007-02-20 Microsoft Corporation Deriving a symmetric key from an asymmetric key for file encryption or decryption
US20090177664A9 (en) 2003-05-07 2009-07-09 Hotchkiss Lynette I System and Method for Regulatory Rules Repository Generation and Maintenance
WO2004107646A1 (en) 2003-05-14 2004-12-09 Threatguard, Inc. System and method for application-level virtual private network
US7360073B1 (en) 2003-05-15 2008-04-15 Pointsec Mobile Technologies, Llc Method and apparatus for providing a secure boot for a computer system
US6968973B2 (en) 2003-05-31 2005-11-29 Microsoft Corporation System and process for viewing and navigating through an interactive video tour
US7389273B2 (en) 2003-09-25 2008-06-17 Scott Andrew Irwin System and method for federated rights management
GB2406403B (en) 2003-09-26 2006-06-07 Advanced Risc Mach Ltd Data processing apparatus and method for merging secure and non-secure data into an output data stream
US7730318B2 (en) 2003-10-24 2010-06-01 Microsoft Corporation Integration of high-assurance features into an application through application factoring
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
US7536536B1 (en) 2003-12-15 2009-05-19 American Megatrends, Inc. Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device
US7930540B2 (en) 2004-01-22 2011-04-19 Mcafee, Inc. Cryptographic policy enforcement
US7254669B2 (en) 2004-01-29 2007-08-07 International Business Machines Corporation Create virtual track buffers in NVS using customer segments to maintain newly written data across a power loss
US7559088B2 (en) 2004-02-04 2009-07-07 Netapp, Inc. Method and apparatus for deleting data upon expiration
WO2005078606A2 (en) 2004-02-11 2005-08-25 Storage Technology Corporation Clustered hierarchical file services
US20050262361A1 (en) * 2004-05-24 2005-11-24 Seagate Technology Llc System and method for magnetic storage disposal
CN100353787C (zh) 2004-06-23 2007-12-05 华为技术有限公司 一种移动终端内存储的资料信息的安全保障方法
US7409623B2 (en) 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
US7725703B2 (en) 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7308525B2 (en) 2005-01-10 2007-12-11 Sandisk Il Ltd. Method of managing a multi-bit cell flash memory with improved reliablility and performance
WO2006089092A2 (en) 2005-02-16 2006-08-24 Ziyad Dahbour Hierarchal data management
WO2006095335A2 (en) 2005-03-07 2006-09-14 Noam Camiel System and method for a dynamic policies enforced file system for a data storage device
US7277986B2 (en) 2005-03-30 2007-10-02 Emc Corporation Sector-edge cache
US7516478B2 (en) 2005-06-03 2009-04-07 Microsoft Corporation Remote management of mobile devices
US20070028231A1 (en) 2005-08-01 2007-02-01 International Business Machines Corporation System and method for start menu and application uninstall synchronization
US7602906B2 (en) 2005-08-25 2009-10-13 Microsoft Corporation Cipher for disk encryption
US7730327B2 (en) 2005-09-09 2010-06-01 Netapp, Inc. Managing the encryption of data
US7694134B2 (en) 2005-11-11 2010-04-06 Computer Associates Think, Inc. System and method for encrypting data without regard to application
TW200723093A (en) 2005-12-14 2007-06-16 Inventec Corp Method for establishing mirror storage equipment and synchronously storing equipment update data
US8286159B2 (en) 2005-12-22 2012-10-09 Alan Joshua Shapiro Method and apparatus for gryphing a data storage medium
US7594087B2 (en) 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
JP4838610B2 (ja) 2006-03-24 2011-12-14 キヤノン株式会社 文書管理装置、文書管理方法、プログラム
CA2649449A1 (en) 2006-04-14 2007-10-25 Advanced Solutions, Inc. Method, apparatus and computer-readabele medium to provide customized classification of documents in a file management system
JP4749930B2 (ja) 2006-04-24 2011-08-17 株式会社日立製作所 計算機システム及び管理計算機とストレージ装置並びにボリューム割当確認方法
US20080010468A1 (en) 2006-06-06 2008-01-10 Ruiz R P Method and technique for enforcing transience and propagation constraints on data transmitted by one entity to another entity by means of data division and retention
US7711923B2 (en) 2006-06-23 2010-05-04 Microsoft Corporation Persistent flash memory mapping table
US8307148B2 (en) 2006-06-23 2012-11-06 Microsoft Corporation Flash management techniques
US8416954B1 (en) * 2008-09-30 2013-04-09 Emc Corporation Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
GB0614515D0 (en) 2006-07-21 2006-08-30 Ibm An apparatus for managing power-consumption
US8607308B1 (en) * 2006-08-07 2013-12-10 Bank Of America Corporation System and methods for facilitating privacy enforcement
US8015433B2 (en) 2006-09-13 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory for storage of failure-related data
US20080091613A1 (en) 2006-09-28 2008-04-17 Microsoft Corporation Rights management in a cloud
US8601598B2 (en) 2006-09-29 2013-12-03 Microsoft Corporation Off-premise encryption of data storage
US7912223B2 (en) * 2006-09-29 2011-03-22 Hitachi, Ltd. Method and apparatus for data protection
US7890796B2 (en) 2006-10-04 2011-02-15 Emc Corporation Automatic media error correction in a file server
US8396214B2 (en) * 2006-11-02 2013-03-12 SAP Portals Israel Limited Method and apparatus for centrally managed encrypted partition
US8135135B2 (en) 2006-12-08 2012-03-13 Microsoft Corporation Secure data protection during disasters
US7702973B2 (en) 2007-01-05 2010-04-20 Broadcom Corporation Modified defect scan over sync mark/preamble field
US8056143B2 (en) 2007-01-19 2011-11-08 Research In Motion Limited Selectively wiping a remote device
JP4903071B2 (ja) * 2007-03-15 2012-03-21 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
WO2008116346A1 (en) * 2007-03-26 2008-10-02 Intel Corporation Enhanced digital right management framework
US8369411B2 (en) 2007-03-29 2013-02-05 James Au Intra-macroblock video processing
JP2008250779A (ja) 2007-03-30 2008-10-16 Hitachi Ltd 暗号機能を備えた記憶制御装置、データ暗号化方法及び記憶システム
US7864960B2 (en) 2007-05-31 2011-01-04 Novell, Inc. Techniques for securing content in an untrusted environment
US8474054B2 (en) 2007-06-26 2013-06-25 Digital Keystone, Inc. Systems and methods for conditional access and digital rights management
JP4405533B2 (ja) 2007-07-20 2010-01-27 株式会社東芝 キャッシュ方法及びキャッシュ装置
US8452967B2 (en) 2007-08-31 2013-05-28 Microsoft Corporation Using flash storage device to prevent unauthorized use of software
US8554176B2 (en) 2007-09-18 2013-10-08 Qualcomm Incorporated Method and apparatus for creating a remotely activated secure backup service for mobile handsets
US8249257B2 (en) * 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
CN101436192B (zh) 2007-11-16 2011-03-16 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备
WO2009069043A2 (en) 2007-11-26 2009-06-04 Koninklijke Philips Electronics N.V. Method of managing data in communication network comprising at least a first and a second node
US20090196417A1 (en) * 2008-02-01 2009-08-06 Seagate Technology Llc Secure disposal of storage data
US8707385B2 (en) 2008-02-11 2014-04-22 Oracle International Corporation Automated compliance policy enforcement in software systems
US20090210267A1 (en) 2008-02-18 2009-08-20 Bryan David Fish System and method for automatically mapping security controls to subjects
US7962739B2 (en) 2008-02-25 2011-06-14 Lenovo (Singapore) Pte. Ltd. Recovering from hard disk errors that corrupt one or more critical system boot files
US7890664B1 (en) 2008-03-31 2011-02-15 Emc Corporation Methods and apparatus for non-disruptive upgrade by redirecting I/O operations
US7979626B2 (en) 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
US20110078760A1 (en) 2008-05-13 2011-03-31 Nxp B.V. Secure direct memory access
US8423792B2 (en) * 2008-06-05 2013-04-16 International Business Machines Corporation Apparatus, system, and method for communication between a driver and an encryption source
US20090307563A1 (en) 2008-06-05 2009-12-10 Ibm Corporation (Almaden Research Center) Replacing bad hard drive sectors using mram
US8943551B2 (en) 2008-08-14 2015-01-27 Microsoft Corporation Cloud-based device information storage
US9432184B2 (en) 2008-09-05 2016-08-30 Vixs Systems Inc. Provisioning of secure storage for both static and dynamic rules for cryptographic key information
US8332604B2 (en) 2008-09-30 2012-12-11 Intel Corporation Methods to securely bind an encryption key to a storage device
US8341430B2 (en) 2008-10-03 2012-12-25 Microsoft Corporation External encryption and recovery management with hardware encrypted storage devices
US8411863B2 (en) 2008-10-03 2013-04-02 Microsoft Corporation Full volume encryption in a clustered environment
TW201015322A (en) 2008-10-08 2010-04-16 Ee Solutions Inc Method and system for data secured data recovery
US8387109B2 (en) 2008-10-23 2013-02-26 Microsoft Corporation Access control state determination based on security policy and secondary access control state
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US20100306180A1 (en) 2009-01-28 2010-12-02 Digitiliti, Inc. File revision management
KR100928467B1 (ko) 2009-02-02 2009-11-25 주식회사 파수닷컴 클립보드 보안 시스템 및 방법
US8341427B2 (en) 2009-02-16 2012-12-25 Microsoft Corporation Trusted cloud computing and services framework
TWI493950B (zh) 2009-02-24 2015-07-21 Fineart Technology Co Ltd 條件式電子文件權限控管系統及方法
US8046533B2 (en) 2009-03-10 2011-10-25 Emulex Design & Manufacturing Corporation System and method for sector remapping
TW201035754A (en) 2009-03-25 2010-10-01 Inventec Corp RAID processing method
US20100266132A1 (en) 2009-04-15 2010-10-21 Microsoft Corporation Service-based key escrow and security for device data
US8516264B2 (en) 2009-10-09 2013-08-20 Lsi Corporation Interlocking plain text passwords to data encryption keys
US8538919B1 (en) 2009-05-16 2013-09-17 Eric H. Nielsen System, method, and computer program for real time remote recovery of virtual computing machines
US20100299152A1 (en) 2009-05-20 2010-11-25 Mobile Iron, Inc. Selective Management of Mobile Devices in an Enterprise Environment
US8588422B2 (en) 2009-05-28 2013-11-19 Novell, Inc. Key management to protect encrypted data of an endpoint computing device
US8578157B2 (en) 2009-05-29 2013-11-05 Adobe Systems Incorporated System and method for digital rights management with authorized device groups
US8321688B2 (en) 2009-06-12 2012-11-27 Microsoft Corporation Secure and private backup storage and processing for trusted computing and data services
US8719486B2 (en) 2009-06-24 2014-05-06 Micron Technology, Inc. Pinning content in nonvolatile memory
US9141489B2 (en) 2009-07-09 2015-09-22 Uniloc Luxembourg S.A. Failover procedure for server system
US20110055559A1 (en) 2009-08-27 2011-03-03 Jun Li Data retention management
US8498418B2 (en) * 2009-08-31 2013-07-30 International Business Machines Corporation Conversion of cryptographic key protection
US20110060915A1 (en) 2009-09-10 2011-03-10 International Business Machines Corporation Managing Encryption of Data
US8726407B2 (en) 2009-10-16 2014-05-13 Deviceauthority, Inc. Authentication of computing and communications hardware
EP2348450B1 (en) 2009-12-18 2013-11-06 CompuGroup Medical AG Database system, computer system, and computer-readable storage medium for decrypting a data record
KR101654774B1 (ko) 2010-02-08 2016-09-06 시게이트 테크놀로지 엘엘씨 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체
US9703586B2 (en) 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
WO2011109865A1 (en) 2010-03-09 2011-09-15 Lock Box Pty Ltd Method and system for sharing encrypted content
US8930713B2 (en) 2010-03-10 2015-01-06 Dell Products L.P. System and method for general purpose encryption of data
US8375437B2 (en) * 2010-03-30 2013-02-12 Microsoft Corporation Hardware supported virtualized cryptographic service
FR2958478B1 (fr) 2010-04-02 2012-05-04 Sergio Loureiro Procede de securisation de donnees et/ou des applications dans une architecture informatique en nuage
US8433901B2 (en) 2010-04-07 2013-04-30 Apple Inc. System and method for wiping encrypted data on a device having file-level content protection
US20110264925A1 (en) 2010-04-23 2011-10-27 Russo Leonard E Securing data on a self-encrypting storage device
US8935384B2 (en) 2010-05-06 2015-01-13 Mcafee Inc. Distributed data revocation using data commands
WO2011142996A2 (en) 2010-05-09 2011-11-17 Madhav Chinta Methods and systems for forcing an application to store data in a secure storage location
US8458490B2 (en) 2010-05-28 2013-06-04 Dell Products, Lp System and method for supporting full volume encryption devices in a client hosted virtualization system
US8625802B2 (en) 2010-06-16 2014-01-07 Porticor Ltd. Methods, devices, and media for secure key management in a non-secured, distributed, virtualized environment with applications to cloud-computing security and management
US20120017095A1 (en) * 2010-07-19 2012-01-19 Coreguard Software Service for Encrypting and Decrypting Data
WO2012016091A2 (en) 2010-07-28 2012-02-02 Nextlabs, Inc. Protecting documents using policies and encryption
US8539245B2 (en) * 2010-08-06 2013-09-17 Intel Corporation Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode
JP2012080295A (ja) * 2010-09-30 2012-04-19 Toshiba Corp 情報記憶装置、情報記憶方法、及び電子機器
US8385014B2 (en) 2010-10-11 2013-02-26 Lsi Corporation Systems and methods for identifying potential media failure
US8661193B1 (en) 2010-10-29 2014-02-25 Western Digital Technologies, Inc. Disk drive with partial sector management
US9071580B2 (en) 2010-11-01 2015-06-30 Blackberry Limited Method and system for securing data of a mobile communications device
US9715598B2 (en) * 2010-11-17 2017-07-25 Invysta Technology Group Automatic secure escrowing of a password for encrypted information an attachable storage device
US8352749B2 (en) 2010-12-17 2013-01-08 Google Inc. Local trusted services manager for a contactless smart card
US8924739B2 (en) 2011-01-05 2014-12-30 Apple Inc. System and method for in-place encryption
US20120239618A1 (en) 2011-03-16 2012-09-20 I O Interconnect, Ltd. File sharing mechanism
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US8769305B2 (en) 2011-03-21 2014-07-01 Moncana Corporation Secure execution of unsecured apps on a device
EP2509275A1 (en) 2011-04-04 2012-10-10 Buntinx Method and system for authenticating entities by means of mobile terminals
US8527561B1 (en) 2011-05-17 2013-09-03 Crossroads Systems, Inc. System and method for implementing a networked file system utilizing a media library
US9141779B2 (en) 2011-05-19 2015-09-22 Microsoft Technology Licensing, Llc Usable security of online password management with sensor-based authentication
WO2012167392A2 (en) 2011-06-06 2012-12-13 ETH Zürich Method and devices for secure deletion of data in a log structured file system
US10496824B2 (en) 2011-06-24 2019-12-03 Microsoft Licensing Technology, LLC Trusted language runtime on a mobile platform
US8689279B2 (en) 2011-08-30 2014-04-01 Microsoft Corporation Encrypted chunk-based rapid data encryption policy compliance
US8874935B2 (en) 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US8856553B2 (en) * 2011-09-12 2014-10-07 Microsoft Corporation Managing self-encrypting drives in decentralized environments
FR2980285B1 (fr) * 2011-09-15 2013-11-15 Maxim Integrated Products Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise
US10165007B2 (en) 2011-09-15 2018-12-25 Microsoft Technology Licensing, Llc Securing data usage in computing devices
US8479021B2 (en) 2011-09-29 2013-07-02 Pacid Technologies, Llc Secure island computing system and method
US20140032733A1 (en) 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US9043480B2 (en) 2011-10-11 2015-05-26 Citrix Systems, Inc. Policy-based application management
US9143530B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
US9100235B2 (en) 2011-11-07 2015-08-04 At&T Intellectual Property I, L.P. Secure desktop applications for an open computing platform
US10291658B2 (en) 2011-11-09 2019-05-14 Microsoft Technology Licensing, Llc Techniques to apply and share remote policies on mobile devices
US9990473B2 (en) 2011-12-08 2018-06-05 Intel Corporation Method and apparatus for policy-based content sharing in a peer to peer manner using a hardware based root of trust
US9052824B2 (en) * 2012-01-26 2015-06-09 Upthere, Inc. Content addressable stores based on sibling groups
US20130208893A1 (en) 2012-02-13 2013-08-15 Eugene Shablygin Sharing secure data
US8875298B2 (en) 2012-02-16 2014-10-28 Nec Laboratories America, Inc. Method for scalable analysis of android applications for security vulnerability
CN102646077B (zh) 2012-03-28 2016-06-15 山东超越数控电子有限公司 一种基于可信密码模块的全盘加密的方法
US9253209B2 (en) 2012-04-26 2016-02-02 International Business Machines Corporation Policy-based dynamic information flow control on mobile devices
US20130318361A1 (en) 2012-05-22 2013-11-28 Partnet, Inc. Encrypting and storing biometric information on a storage device
EP2680487B1 (en) 2012-06-29 2019-04-10 Orange Secured cloud data storage, distribution and restoration among multiple devices of a user
US20140019753A1 (en) 2012-07-10 2014-01-16 John Houston Lowry Cloud key management
US10079678B2 (en) * 2012-07-24 2018-09-18 Intel Corporation Providing access to encrypted data
US20140075493A1 (en) 2012-09-12 2014-03-13 Avaya, Inc. System and method for location-based protection of mobile data
US10268775B2 (en) 2012-09-17 2019-04-23 Nokia Technologies Oy Method and apparatus for accessing and displaying private user information
US9053340B2 (en) 2012-10-12 2015-06-09 Citrix Systems, Inc. Enterprise application store for an orchestration framework for connected devices
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8875304B2 (en) 2012-11-08 2014-10-28 International Business Machines Corporation Application and data removal system
US9454670B2 (en) 2012-12-03 2016-09-27 International Business Machines Corporation Hybrid file systems
US8997197B2 (en) 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
CN103092938A (zh) 2013-01-07 2013-05-08 浙江鸿程计算机系统有限公司 一种智能清理Android手机SD卡垃圾文件的方法
CN103092664B (zh) 2013-02-07 2016-08-03 珠海市君天电子科技有限公司 一种安卓系统的数据文件的处理方法和装置
US9547771B2 (en) * 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9892284B2 (en) 2013-03-11 2018-02-13 Lantiq Beteiligungs-GmbH & Co. KG Trusted execution thread in an embedded multithreaded system
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
US9369289B1 (en) 2013-07-17 2016-06-14 Google Inc. Methods and systems for performing secure authenticated updates of authentication credentials
US9465947B2 (en) 2013-08-05 2016-10-11 Samsung Sds America, Inc. System and method for encryption and key management in cloud storage
CN103577567A (zh) 2013-10-29 2014-02-12 广东欧珀移动通信有限公司 一种Android系统卸载应用删除垃圾文件的方法
CN103500116A (zh) 2013-10-29 2014-01-08 中科创达软件股份有限公司 一种清除应用程序生成的数据的方法及系统
US9411975B2 (en) 2014-03-31 2016-08-09 Intel Corporation Methods and apparatus to securely share data
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
US9935767B2 (en) 2014-12-15 2018-04-03 Blackberry Limited Secure storage
US10387665B2 (en) 2015-03-25 2019-08-20 Vera Policy enforcement
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249866B1 (en) * 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
KR20120096019A (ko) * 2009-12-21 2012-08-29 인텔 코포레이션 피보호 장치 관리
US8458491B1 (en) * 2010-06-23 2013-06-04 Raytheon Bbn Technologies Corp. Cryptographically scrubbable storage device
WO2013026662A1 (en) * 2011-08-19 2013-02-28 Gemalto Sa Method for hard partitioning the resources of a secure computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461490B1 (en) 2020-09-23 2022-10-04 Cru Data Security Group, Llc Systems, methods, and devices for conditionally allowing processes to alter data on a storage device

Also Published As

Publication number Publication date
CN106462718A (zh) 2017-02-22
CN106462718B (zh) 2019-06-28
WO2015142970A1 (en) 2015-09-24
KR102340219B1 (ko) 2021-12-15
US20150270956A1 (en) 2015-09-24
EP3120291A1 (en) 2017-01-25
US10615967B2 (en) 2020-04-07
EP3120291B1 (en) 2019-04-24

Similar Documents

Publication Publication Date Title
KR102340219B1 (ko) 스토리지 디바이스에 대한 신속한 데이터 보호
CN109416720B (zh) 跨重置维护操作系统秘密
US10423791B2 (en) Enabling offline restart of shielded virtual machines using key caching
CN107408183B (zh) 通过安全硬化管理代理进行的设备证实
US20190238323A1 (en) Key managers for distributed computing systems using key sharing techniques
US20210141902A1 (en) Provision of domains in secure enclave to support multiple users
TWI540453B (zh) 以區段映射表為基礎之快速資料加密策略順從
US10841089B2 (en) Key managers for distributed computing systems
JP5724118B2 (ja) 保護デバイス管理
US8745386B2 (en) Single-use authentication methods for accessing encrypted data
US20170277898A1 (en) Key management for secure memory address spaces
CN107431924B (zh) 将设备标识符和用户标识符相关联的设备盗窃防护
JP6073320B2 (ja) デジタル署名するオーソリティ依存のプラットフォームシークレット
WO2017062236A1 (en) Passive encryption of organization data
EP3195555A1 (en) Secure key management for roaming protected content
CN107077567B (zh) 标识计算设备上的安全边界
US9529733B1 (en) Systems and methods for securely accessing encrypted data stores
US10691837B1 (en) Multi-user storage volume encryption via secure enclave
US10454679B2 (en) File system support for rolling keys on file extents
US20170359175A1 (en) Support for changing encryption classes of files
JP6669929B2 (ja) シングルサインオンアプリケーション用の暗号化鍵を管理するためのシステム及び方法
WO2015196525A1 (zh) 加密方法及装置、内核加密数据的操作方法及装置
CN114006695B (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