KR20160138450A - 스토리지 디바이스에 대한 신속한 데이터 보호 - Google Patents
스토리지 디바이스에 대한 신속한 데이터 보호 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key 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
컴퓨터는 더욱 더 보편화되었고 여러 상이한 설정에서 사용되고 있는데, 이것은, 유저가 컴퓨터 스토리지 디바이스 상에 저장된 데이터가 암호화되는 것을 소망하는 상황으로 이끌었다. 이들 상황은 유저의 개인적 소망, 유저의 컴퓨터는 퍼스널 컴퓨터의 스토리지 디바이스 상에 저장되는 회사 데이터를 암호화해야 한다는 것을 지시하는 회사 방침, 및 등등의 결과일 수 있다. 그러나, 전체 스토리지 디바이스가 암호화되는 것을 대기하는 것은, 유저에게 좌절감을 줄 수 있고, 열악한 유저 경험으로 나타나게 된다.
이 개요는 하기 상세한 설명에서 더 설명되는 엄선된 개념을 간소화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 주요 피쳐나 또는 본질적인 피쳐를 식별하도록 의도된 것이 아니며, 청구된 주제의 범위를 제한하는 데 사용되도록 의도된 것도 아니다.
하나 이상의 양태에 따르면, 컴퓨팅 디바이스에서의 다른 프로그램과는 분리되는 컴퓨팅 디바이스의 신뢰성 있는 런타임(trusted runtime)에서 한 방법이 구현된다. 스토리지 디바이스의 부분(portion)에 대한 키를 생성하려는 요청이 신뢰성 있는 런타임에서 수신된다. 키를 생성하기 위한 요청에 응답하여, 키는, 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 신뢰성 있는 런타임을 사용하여 생성되고 지속된다. 스토리지 디바이스의 부분에 대한 후속하는 기록이 키에 기초하여 암호화되도록, 컴퓨팅 디바이스의 인라인 암호화 프로세서(inline cryptographic processor)로, 키가 또한 프로비저닝된다. 추가적으로, 부분의 보호가 인에이블되어야(enabled) 한다는 요청에 응답하여, 부분의 적어도 일부(part)가 암호화되지 않고 있음에도 불구하고, 부분의 보호가 인에이블되어 있다는 표시가 리턴된다.
하나 이상의 양태에 따르면, 컴퓨팅 디바이스는 인라인 암호화 프로세서 및 컴퓨팅 디바이스의 운영체제로부터 분리되는 신뢰성 있는 런타임을 포함한다. 신뢰성 있는 런타임은, 스토리지 디바이스의 부분에 대한 키를 생성하도록, 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 키를 지속시키도록, 그리고, 스토리지 디바이스의 부분의 보호가 인에이블되어야 한다는 요청에 응답하여, 스토리지 디바이스의 부분의 하나 이상의 일부가 암호화되어 있지 않음에도 불구하고, 스토리지 디바이스의 부분의 보호가 인에이블되어 있다는 표시를 리턴하도록 구성된다. 인라인 암호화 프로세서는, 신뢰성 있는 런타임으로부터 키를 수신하도록, 키에 기초하여 스토리지 디바이스의 일부에 대한 후속 기록을 암호화하도록, 키에 기초하여 스토리지 디바이스의 부분으로부터의 후속하는 판독을 암호 해제하도록(decrypt) 구성된다.
첨부된 도면을 참조로 상세한 설명이 설명된다. 도면에서, 도면 부호의 가장 왼쪽의 숫자(들)는 그 도면 부호가 처음 나타나는 도면을 식별한다. 설명 및 도면의 상이한 사례에서의 동일한 도면 부호의 사용은 유사한 또는 동일한 아이템을 나타낼 수도 있다. 도면에서 표현되는 엔티티는 하나 이상의 엔티티를 나타낼 수도 있고 따라서 논의에서는 엔티티의 단수 형태 또는 복수 형태에 대한 참조가 상호교환적으로 이루어질 수도 있다.
도 1은, 하나 이상의 실시형태에 따른, 스토리지 디바이스에 대한 신속한 데이터 보호를 구현하는 예시적인 컴퓨팅 디바이스를 예시하는 블록도이다.
도 2는, 하나 이상의 실시형태에 따른, 스토리지 디바이스에 대한 신속한 데이터 보호를 구현하는 예시적인 시스템을 예시한다.
도 3은, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 신규로 정의된 부분에 대한 암호화 키를 생성하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 4는, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 부분에 대한 보호를 인에이블하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 5는, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 보호된 부분을 잠그기(lock) 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 6은, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 보호된 부분을 잠금 해제하기(unlocking) 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 7은, 하나 이상의 실시형태에 따른, 스토리지 디바이스의 부분에 대한 보호를 디스에이블하기(disabling) 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 8은, 하나 이상의 실시형태에 따른, 부분의 복원 또는 마이그레이션을 위해 암호화 키를 노출시키기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 9는 본원에서 설명되는 다양한 기술을 구현할 수도 있는 하나 이상의 시스템 및/또는 디바이스를 묘사하는 예시적인 시스템을 예시한다.
도 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)
- 스토리지 디바이스 상의 데이터를 신속하게 보호하기 위한, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법에 있어서,
상기 신뢰성 있는 런타임 - 상기 신뢰성 있는 런타임은 상기 컴퓨팅 디바이스에서의 다른 프로그램과는 분리됨 - 에서, 상기 스토리지 디바이스의 부분(portion)에 대한 키를 생성하기 위한 요청을 수신하는 단계;
상기 키를 생성하기 위한 상기 요청에 응답하여,
상기 키를 생성하는 단계,
상기 신뢰성 있는 런타임을 사용하여, 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 상기 키를 지속시키는 단계,
상기 스토리지 디바이스의 상기 부분으로의 후속하는 기록이 상기 키에 기초하여 인라인 암호화 프로세서(inline cryptographic processor)에 의해 암호화되고 상기 스토리지 디바이스의 상기 부분에 기록되는 데이터가 보호되도록, 상기 컴퓨팅 디바이스의 상기 인라인 암호화 프로세서에게 상기 키를 프로비저닝하는(provisioning) 단계; 및
상기 부분의 보호가 인에이블되어야(enabled) 한다는 요청에 응답하여 상기 신뢰성 있는 런타임으로부터, 상기 부분의 적어도 일부(part)가 암호화되어 있지 않음에도 불구하고 상기 부분의 보호가 인에이블되어 있다는 표시를 리턴하는 단계
를 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법. - 제1항에 있어서,
상기 키를 생성하기 위한 상기 요청에 응답하여, 상기 컴퓨팅 디바이스의 운영체제로 상기 키의 식별자를 리턴하는 단계를 더 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법. - 제1항에 있어서,
상기 부분의 보호가 인에이블되어야 한다는 상기 요청에 응답하여,
인증 키에 기초하여 상기 키를 암호화하는 것에 의해, 상기 컴퓨팅 디바이스에 제공되는 인증용 크리덴셜(authentication credential)과 관련되는 상기 인증 키에 기초하여 상기 키를 보호하는 단계;
상기 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되는 것을 중지하는 단계; 및
상기 보호된 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되게 하는 단계를 더 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법. - 제3항에 있어서,
상기 부분의 보호가 인에이블되어야(enabled) 한다는 상기 요청을 수신한 이후, 상기 부분을 잠그기(lock) 위한 요청을 수신하는 단계; 및
상기 부분을 잠그기 위한 상기 요청에 응답하여, 상기 신뢰성 있는 런타임 및 상기 인라인 암호화 프로세서 둘 다로부터 상기 키를 제거하는 단계를 더 포함하는, 컴퓨팅 디바이스의 신뢰성 있는 런타임에서 구현되는 방법. - 스토리지 디바이스 상의 데이터를 신속하게 보호하기 위한 컴퓨팅 디바이스에 있어서,
상기 컴퓨팅 디바이스의 운영체제와는 분리되는 신뢰성 있는 런타임으로서,
상기 스토리지 디바이스의 부분에 대한 키를 생성하도록,
상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 상기 키를 지속시키도록,
상기 스토리지 디바이스의 상기 부분의 보호가 인에이블되어야 한다는 요청에 응답하여, 상기 스토리지 디바이스의 상기 부분의 하나 이상의 일부가 암호화되어 있지 않음에도 불구하고, 상기 스토리지 디바이스의 상기 부분의 보호가 인에이블되어 있다는 표시를 리턴하도록
구성되는 상기 신뢰성 있는 런타임; 및
상기 신뢰성 있는 런타임으로부터 상기 키를 수신하도록,
상기 키에 기초하여 상기 스토리지 디바이스의 상기 부분으로의 후속하는 기록을 암호화하도록,
상기 키에 기초하여 상기 스토리지 디바이스의 상기 부분으로부터의 후속하는 판독을 암호 해제하도록
구성되는 것에 의해 상기 스토리지 디바이스 상의 데이터를 보호하기 위한 인라인 암호화 프로세서(inline cryptographic processor)
를 포함하는, 컴퓨팅 디바이스. - 제5항에 있어서,
상기 신뢰성 있는 런타임은 또한, 상기 부분의 보호가 인에이블되어야 한다는 상기 요청에 응답하여,
상기 컴퓨팅 디바이스로 제공되는 인증용 크리덴셜과 관련되는 인증 키에 기초하여 상기 키를 보호하도록;
상기 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되는 것을 중지하도록;
상기 보호된 키가 상기 컴퓨팅 디바이스의 전력 싸이클에 걸쳐 지속되게 하도록
구성되는 것인, 컴퓨팅 디바이스. - 제6항에 있어서,
상기 신뢰성 있는 런타임은 또한,
상기 부분의 보호가 인에이블되어야 한다는 상기 요청을 수신한 이후, 상기 부분을 잠그기 위한 요청을 수신하도록;
상기 부분을 잠그기 위한 상기 요청에 응답하여, 상기 신뢰성 있는 런타임 및 상기 인라인 암호화 프로세서 둘 다로부터 상기 키를 제거하도록
구성되는 것인, 컴퓨팅 디바이스. - 제7항에 있어서,
상기 신뢰성 있는 런타임은 또한,
상기 신뢰성 있는 런타임 및 상기 인라인 암호화 프로세서 둘 다로부터 상기 키를 제거한 이후, 상기 부분을 잠금 해제하기(unlock) 위한 요청을 수신하도록;
상기 부분을 잠금 해제하기 위한 상기 요청에 응답하여,
상기 보호된 키에 기초하여, 상기 보호된 키로부터 상기 키를 획득하도록,
상기 컴퓨팅 디바이스의 상기 인라인 암호화 프로세서에게 상기 획득된 키를 프로비저닝하도록
구성되는 것인, 컴퓨팅 디바이스. - 제6항에 있어서,
상기 신뢰성 있는 런타임은 또한,
상기 부분의 보호가 인에이블되어야 한다는 상기 요청을 수신한 이후, 상기 부분의 보호를 디스에이블하기(disable) 위한 요청을 수신하도록;
상기 부분의 보호를 디스에이블하기 위한 상기 요청에 응답하여,
상기 보호된 키에 기초하여, 상기 보호된 키로부터 상기 키를 획득하도록,
상기 신뢰성 있는 런타임을 사용하여 상기 획득된 키를 지속시키도록
구성되는 것인, 컴퓨팅 디바이스. - 제6항에 있어서,
상기 신뢰성 있는 런타임은 또한,
상기 부분의 보호가 인에이블되어야 한다는 상기 요청을 수신한 이후, 상기 키의 마이그레이션 또는 복원에 대한 요청을 수신하도록;
상기 키의 마이그레이션 또는 복원에 대한 상기 요청에 응답하여, 상기 보호된 키를 요청자(requester)에게 노출시키도록
구성되는 것인, 컴퓨팅 디바이스.
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)
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)
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)
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)
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 |
-
2014
- 2014-03-20 US US14/221,105 patent/US10615967B2/en active Active
-
2015
- 2015-03-18 KR KR1020167028179A patent/KR102340219B1/ko active IP Right Grant
- 2015-03-18 EP EP15716217.3A patent/EP3120291B1/en active Active
- 2015-03-18 CN CN201580015099.5A patent/CN106462718B/zh active Active
- 2015-03-18 WO PCT/US2015/021125 patent/WO2015142970A1/en active Application Filing
Patent Citations (4)
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)
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 |