KR20110008202A - 데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템 - Google Patents
데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템 Download PDFInfo
- Publication number
- KR20110008202A KR20110008202A KR1020107024453A KR20107024453A KR20110008202A KR 20110008202 A KR20110008202 A KR 20110008202A KR 1020107024453 A KR1020107024453 A KR 1020107024453A KR 20107024453 A KR20107024453 A KR 20107024453A KR 20110008202 A KR20110008202 A KR 20110008202A
- Authority
- KR
- South Korea
- Prior art keywords
- blob
- key
- storage device
- server
- encryption
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/40—Combinations of multiple record carriers
- G11B2220/41—Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
- G11B2220/415—Redundant array of inexpensive disks [RAID] systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
실시예는 저장 장치 데이터 암호화를 위한 방법, 장치, 및 시스템을 포함한다. 한 방법은 키로 저장 장치에 데이터를 암호화하는 단계 및 BLOB(Binary Large Object)를 형성하기 위해 키를 암호화하는 암호화 모듈에 그 키를 송신하는 단계를 포함한다. BLOB는 BLOB를 저장하는 저장 장치에 연결된 어레이 컨트롤러에 송신된다.
Description
많은 저장 시스템에 있어서 디스크 드라이브는 호스트 컴퓨터로부터 판독 및 기록 요청을 수신한다. 보안을 위해, 디스크 드라이브에 저장된 데이터는 암호화될 필요가 있다. 데이터를 보호하기 위해, 저장되는 데이터를 어떻게 보호할 것인지, 암호화 키를 어디에 저장할지와 같은 중요한 문제가 대두된다.
몇몇 저장 시스템에서, 호스트 컴퓨터는 드라이브에 암호화 키 및 데이터를 보낸다. 이 동작에서, 호스트는 암호화 키 및 데이터 흐름을 제어한다.
다른 저장 시스템에서, 암호화 키는 중앙 키 서버에 저장된다. 단일 서버에서 많은 수의 암호화 키를 적시에 안전하게 관리하는 것은 어려운 과제이다. 예컨대, 암호화 키에 액세스하기 위해 많은 다른 사용자 또는 호스트가 서버에서 인증을 받을 필요가 있으므로 문제가 일어날 수 있다. 또한, 암호화 키가 서버 내에 저장된다면, 대응하는 디스크 어레이 컨트롤러를 지원하는 서버는 각 암호화 키를 저장하는 것과 관련된 특정 요건을 알아야 한다.
또 다른 저장 시스템에서, 암호화 키는 디스크 어레이 컨트롤러에 저장된다. 그러나, 어레이 컨트롤러가 고장나면, 저장된 암호화 키는 고장난 컨트롤러 내에 갇히게 되고, 디스크에 저장된 관련 데이터에 액세스할 수 없다.
본 발명에 따른 실시예는 저장 시스템에서 암호화 키 관리를 자동화하는 장치, 시스템 및 방법을 대상으로 한다. 한 예시적인 실시예는 데이터를 암호화하고 복호화하기 위해 사용되는 암호화 키를 안전하게 획득하고 운반하여 디스크 드라이브와 같은 저장 장치에 저장한다. 또한, 예시적인 실시예는, 착탈 가능한 매체(예컨대 하드디스크 드라이브)가 옮겨지거나 인증되지 않은 기기에 설치되었을 때, 인증되지 않은 액세스로부터 착탈 가능한 매체를 보호한다.
도 1(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 흐름도이다.
도 1(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 시스템의 블록도이다.
도 2(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 흐름도이다.
도 2(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 시스템의 블록도이다.
도 3(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 흐름도의 다른 예이다.
도 3(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 시스템의 블록도이다.
도 4(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 흐름도의 다른 예이다.
도 4(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 시스템의 블록도이다.
도 5는 본 발명의 예시적인 실시예에 따른 암호화를 사용하는 저장 시스템이다.
도 6은 본 발명의 예시적인 실시예에 따른 암호화를 사용하는 컴퓨터 또는 저장 시스템이다.
도 1(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 시스템의 블록도이다.
도 2(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 흐름도이다.
도 2(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 시스템의 블록도이다.
도 3(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 흐름도의 다른 예이다.
도 3(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 시스템의 블록도이다.
도 4(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 흐름도의 다른 예이다.
도 4(b)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브로부터 암호화 키를 검색하는 시스템의 블록도이다.
도 5는 본 발명의 예시적인 실시예에 따른 암호화를 사용하는 저장 시스템이다.
도 6은 본 발명의 예시적인 실시예에 따른 암호화를 사용하는 컴퓨터 또는 저장 시스템이다.
한 예시적인 실시예에서, 암호화 키는 디스크 컨트롤러로부터 키 서버에 제공된다. 암호화 키는 디스크 드라이브에서 데이터를 암호화하고 복호화하기 위해 사용된다. 암호화 키를 수신하면, 키 서버는 암호화 키에 데이터를 부가한 후 이를 암호화하여 BLOB(Binary Large Object)를 형성한다. 봉인(seal)되거나 암호화된 BLOB는 컨트롤러에 다시 보내지고, 컨트롤러는 BLOB를 저장용 디스크 드라이브에 전달한다.
BLOB를 봉인 해제(unseal)하기 위해, 디스크 컨트롤러는 봉인된 BLOB를 키 서버에 송신한다. BLOB를 수신하면, 키 서버는 BLOB를 봉인 해제하고 컨트롤러 및 디스크 드라이브에 원래의 암호화 키를 리턴한다. 이제 데이터는 암호화 키를 사용하여 디스크 드라이브로부터 판독되고 디스크 드라이브에 기입될 수 있다.
디스크 드라이브는 실제로 BLOB를 저장하므로, 디스크 드라이브는 저장된 데이터로의 액세스를 제공하면서 한 컨트롤러로부터 다른 컨트롤러로 이동할 수 있다. 이동 후, 디스크 드라이브는 BLOB를 키 서버에 다시 제공하고, 키 서버는 원래의 암호화 키를 디스크 드라이버에 리턴한다.
한 실시예에서, 키 서버는 BLOB를 생성하기 위한 암호화 모듈(예컨대 TPM(Trusted Platform Module))을 포함한다. 키 서버는 BLOB를 영구히 저장하지 않고, 저장용 디스크 드라이브에 보낸다. 그와 같이, 키 서버는 많은 디스크 드라이브에 대하여 상태 정보(예컨대 키 및 BLOB)를 저장할 책임이 없다. 대신에, BLOB의 저장은 각각의 디스크 드라이브에서 일어나고, 키 서버는 수신된 BLOB를 봉인 및 봉인 해제하도록 변환하기 위해 사용된다.
각 키 서버는 고유의 신원(identity) 또는 식별(identification)을 갖는다. 한 실시예에서, 이 고유의 신원은 어레이 컨트롤러로부터 수신된 암호화 키를 봉인 및 봉인 해제하기 위해 사용된다. 신원은 특정한 키 서버에 대해 고유하므로, BLOB를 봉인한 키 서버만이 이후에 BLOB를 봉인 해제하고 원래의 키를 추출할 수 있다. 예로서, 각 키 서버는 특정한 저장 장치에 대하여 데이터를 봉인 및 봉인 해제하기 위해 사용된 다양한 고유 키(예컨대 각 고객 또는 호스트는 하나 이상의 고유 키를 가짐)를 저장할 수 있다.
한 실시예는 디스크 드라이브의 메타데이터 영역에 계산 노드 키 BLOB 또는 키 서버 키 BLOB를 저장한다. 예컨대, 서버 TPM을 사용하여 RAID(Redundant Array of Independent/Inexpensive Disk) 컨트롤러 계산 노드 키를 바인딩 또는 봉인하기 위한 BLOB는 디스크 드라이브의 비사용자(non-user) 액세스 가능 메타데이터 영역에 저장된다. 디스크 드라이브의 메타데이터 영역은 어플리케이션 데이터로부터 분리되고 사용자가 액세스할 수 없는 디스크 드라이브의 섹션이다.
도 1(a)는 저장 장치에 암호화 키를 저장/봉인하는 흐름도를 나타내고, 도 1(b)는 본 발명의 예시적인 실시예에 따른 저장 장치에 암호화 키를 저장/봉인하는 시스템(150)의 블록도를 나타낸다. 예시를 위해, 저장 장치는 디스크 드라이브로서 나타냈고, 암호화 키는 계산 노드 키로 나타냈다.
한 실시예에서, 볼륨 액세스 정책은 디스크 드라이브에 액세스하는 일련의 규칙 또는 정책을 규정한다. 볼륨 액세스 정책이 계산 노드를 포함하도록 설정된다면, 암호화된 디스크 데이터는 RAID 컨트롤러가 적합한 서버에 있는 경우에만 적절히 복호화될 수 있다. 볼륨 액세스 정책이 계산 노드 구성을 포함하도록 설정된다면, 암호화된 디스크 데이터는 RAID 컨트롤러가 적합하게 구성된 서버를 포함하는 적합한 서버에 있는 경우에만 적절히 복호화될 수 있다. 서버 및 서버 구성은 TPM BLOB 봉인 메커니즘을 사용하여 검증된다. RAID 컨트롤러마다 하나 이상의 계산 노드 키가 있을 수 있다(예컨대 블레이드 환경(blade environment)에 복수의 계산 노드 키가 존재함). 설계 구현은 저장 볼륨마다 다른 계산 노드 키를 허용한다.
한 실시예에서, 계산 노드 키는 플레인 텍스트의 암호화 경계를 벗어나지 않고 비휘발성 메모리에 저장되지 않는다. 대신에, 암호화 경계를 벗어나기 전에 키가 암호화된다. 파워업 초기화 처리마다 서버 TPM에 의해 계산 노드 키가 재생성된다.
블록 100에 따르면, 관리 도구(180)는 계산 노드 키를 생성한다. 예컨대, 관리 도구(하드웨어 및/또는 소프트웨어로 구현됨)는 랜덤 숫자 생성기를 사용하여 256비트 계산 노드 키를 생성한다.
블록 105에 따르면, 관리 도구(180)는 계산 노드 키를 어레이 컨트롤러(170)에 보낸다. 수신되면, 어레이 컨트롤러(170)는 계산 노드 키를 볼륨 액세스 정책에 부가한다.
블록 110에 따르면, 관리 도구(180)는 봉인을 위해 계산 노드 키를 서버(190)에 보낸다. 예로서, 관리 도구(180)는 계산 노드 키를 서버(190)의 암호화 모듈(예컨대 TPM)에 전송하고 BLOB를 생성하기 위해 계산 노드 키가 봉인되도록 요청한다.
블록 115에 따르면, 서버(190)는 BLOB를 생성하기 위한 계산 노드 키를 봉인 또는 암호화하기 위해 암호화 모듈을 사용한다. 봉인된 계산 노드 키(이하 암호화된 BLOB)는 관리 도구(180)에 리턴된다. 예로서, TPM은 계산 노드 키를 봉인하고 결과로서 생긴 BLOB를 관리 도구에 리턴한다.
블록 120에 따르면, 관리 도구(180)는 BLOB를 어레이 컨트롤러(170)에 보낸다. 한 실시예에서, 이 교환은 암호화될 필요가 없는데, 이는 BLOB 자체는 암호적인 비밀을 드러내지 않기 때문이다.
블록 125에 따르면, 어레이 컨트롤러(170)는 BLOB가 저장되는 디스크 드라이브(160)에 BLOB를 제공한다. 예컨대, 어레이 컨트롤러(170)는 봉인된 계산 노드 키를 적합한 볼륨에 대한 볼륨 특정 정보 영역인 메타데이터 영역에 저장한다.
도 2(a)는 저장 장치에서 암호화 키를 검색/봉인 해제하는 흐름도를 나타내고, 도 2(b)는 본 발명의 예시적인 실시예에 따른 저장 장치에서 암호화 키를 검색/봉인 해제하는 시스템(250)의 블록도를 나타낸다. 도 2(b)는 도 1(b)와 같은 참조 번호를 공유한다.
블록 200에 따르면, 호스트에서 실행하는 소프트웨어 코드(260)는 어레이 컨트롤러(170)에 봉인된 계산 노드 키(예컨대 BLOB)를 요청한다. 예시를 위해, 코드는 실행 옵션 ROM 코드로서 나타냈다.
블록 205에 따르면, 어레이 컨트롤러(170)는 디스크 드라이브(160)로부터 BLOB를 검색하여 호스트에 리턴한다. 예컨대, RAID 컨트롤러는 디스크 드라이브로부터 적합한 봉인된 계산 노드 키를 검색하여 RAID 컨트롤러 NVRAM으로부터 리턴한다.
블록 210에 따르면, 실행 옵션 ROM 코드(260)는 봉인 해제를 위한 서버(190)의 암호화 모듈에 BLOB를 제공한다. 예컨대, 실행 옵션 ROM 코드는 계산 노드 키가 봉인 해제되도록 요청하는 서버 TPM에 BLOB를 송신한다.
블록 215에 따르면, 암호화 모듈은 BLOB를 봉인 해제하여 원래의 계산 노드 키를 실행 옵션 ROM 코드에 다시 리턴한다. RAID 컨트롤러(170)가 적합한 서버(적합하게 구성된 서버를 포함함)에 있다면 서버 TPM은 원래의 계산 노드 키를 실행 옵션 ROM 코드에 리턴할 것이다.
블록 220에 따르면, 실행 옵션 ROM 코드(260)는 계산 노드를 어레이 컨트롤러(170)에 보낸다. 그러면 데이터는 디스크 드라이브와 암호화 또는 복호화를 행할 수 있다.
예시적인 실시예는 키 서버 및 대응하는 키 서버 키와 함께 사용될 수도 있다. 예컨대, 볼륨 액세스 정책이 키 서버 키(예컨대 256비트 키)를 포함하도록 설정된다면, 암호화된 디스크 데이터는 어레이 컨트롤러가 키 서버와 통신할 수 있는 경우(즉 적합한 네트워크에 있는 경우)에만 복호화될 수 있다. 한 실시예에서, 볼륨마다 하나의 키 서버 키가 있고, 키 서버 키는 키 서버에 의해 생성된다. 키 서버 정책에 따라 모든 볼륨이 같은 키 서버 키를 사용할 수도 있고, 각 볼륨 키 서버 키는 고유할 수도 있다.
키 서버 키는 볼륨 LUN(Logical Unit Number) 식별자에 근거한 특정한 볼륨에 관련된다. 한 실시예에서, 볼륨 LUN 식별자는, 드라이브 이동(drive migration) 후에도 암호화된 볼륨이 계속 액세스 가능한 것을 보장하는 외부 컨트롤러로의 볼륨 이동 후에도 지속된다(컨트롤러 액세스 정책은 다른 서버의 계산 노드 키를 포함하지 않았다고 가정).
키 서버 키는 키가 비휘발성 메모리에 저장되는 키 서버상을 제외하고, 휘발성 메모리에 저장된다. 키 서버 키가 암호화 경계를 지나면, 전송 키와 같은 다른 키로 먼저 암호화된다. 예로서, 전송 키는 어레이 컨트롤러와 관리 도구 사이의 인증되지 않은 Diffie-Hellman 교환(IKEv2-SCSI)으로 생성된다.
전송 키는 암호화 경계를 지나 키를 보내는 요구에 응답하여 생성된다. 전송 키가 확립되면 어레이 컨트롤러의 휘발성 메모리에 저장된다. 전송 키는 암호화 경계를 지나는 복수의 키 또는 패스워드에 대하여 여러 번 사용될 수 있다. 새로운 전송 키의 생성(기존 전송 키를 교체하기 위해)은 관리 도구에 의해 언제라도 요청될 수 있다.
한 실시예에서, 어레이 컨트롤러는 키 서버와 직접적으로 통신하지 않는다. 대신에, 어레이 컨트롤러는 키 서버와 통신하는 관리 도구와 통신한다. 통신 교환 중에, 어레이 컨트롤러는 자신을 인증하지 않는다(일부러). 볼륨 액세스가 특정한 어레이 컨트롤러로 제한된다면, 컨트롤러 액세스 정책은 로컬 키를 포함하도록 설정된다.
어레이 컨트롤러가 키 서버에 키 서버 키를 요청하고(관리 도구의 도움으로) 키 서버가 적당한 타임아웃 및 재시도 뒤에 거절하면(어떤 이유로), 그 키와 관련된 볼륨은 무효가 된다.
볼륨 액세스 정책이 키 서버 키를 포함하도록 설정된다면 암호화된 디스크 데이터는 어레이 컨트롤러가 키 서버와 통신할 수 있는 경우(즉 적합한 네트워크에서)에만 복호화될 수 있다. 한 실시예에서, 볼륨마다 하나의 키 서버 키가 있고, 키 서버 키는 키 서버에 의해 생성된다. 키 서버 정책에 따라 모든 볼륨이 같은 키 서버 키를 사용할 수도 있고, 각 볼륨 키 서버 키는 고유할 수도 있다.
한 실시예에서, 키 서버 키는 플레인 텍스트의 암호화 경계를 벗어나지 않고 비휘발성 메모리에 저장되지 않는다(암호화 경계를 벗어나기 전에 암호화된다). 파워업 초기화 처리마다 키 서버에 의해 키 서버 키가 재생성된다.
블록 300에 따르면, 관리 도구(380)는 키 서버 키를 생성한다. 예컨대, 관리 도구(하드웨어 및/또는 소프트웨어로 구현됨)는 랜덤 숫자 생성기를 사용하여 256비트 키 서버 키를 생성한다.
블록 305에 따르면, 관리 도구(380)는 키 서버 키를 어레이 컨트롤러(370)에 보낸다. 수신되면, 어레이 컨트롤러(370)는 키 서버 키를 볼륨 액세스 정책에 부가한다.
블록 310에 따르면, 관리 도구(380)는 봉인을 위해 키 서버 키를 서버(390)에 보낸다. 예로서, 관리 도구(380)는 키 서버 키를 서버(390)의 암호화 모듈(예컨대 TPM)에 전송하고 BLOB를 생성하기 위해 키 서버 키가 봉인되도록 요청한다.
블록 315에 따르면, 서버(390)는 BLOB를 생성하기 위한 키 서버 키를 봉인 또는 암호화하기 위해 암호화 모듈을 사용한다. 봉인된 키 서버 키(이하 암호화된 BLOB)는 관리 도구(380)에 리턴된다. 예로서, TPM은 키 서버 키를 봉인하고 결과로서 생긴 BLOB를 관리 도구에 리턴한다.
블록 320에 따르면, 관리 도구(380)는 BLOB를 어레이 컨트롤러(370)에 보낸다. 한 실시예에서, 이 교환은 암호화될 필요가 없는데, 이는 BLOB 자체는 암호적인 비밀을 드러내지 않기 때문이다.
블록 325에 따르면, 어레이 컨트롤러(370)는 BLOB가 저장되는 디스크 드라이브(360)에 BLOB를 제공한다. 예컨대, 어레이 컨트롤러(370)는 봉인된 키 서버 키를 적합한 볼륨에 대한 볼륨 특정 정보 영역인 메타데이터 영역에 저장한다.
도 4(a)는 저장 장치에서 암호화 키를 검색/봉인 해제하는 흐름도를 나타내고, 도 4(b)는 본 발명의 예시적인 실시예에 따른 저장 장치에서 암호화 키를 검색/봉인 해제하는 시스템(450)의 블록도를 나타낸다. 도 4(b)는 도 3(b)와 같은 참조 번호를 공유한다.
블록 400에 따르면, 호스트에서 실행하는 소프트웨어 코드(460)는 어레이 컨트롤러(370)에 봉인된 키 서버 키(예컨대 BLOB)를 요청한다. 예시를 위해, 코드는 실행 옵션 ROM 코드로서 나타냈다.
블록 405에 따르면, 어레이 컨트롤러(370)는 디스크 드라이브(360)로부터 BLOB를 검색하여 호스트에 리턴한다. 예컨대, RAID 컨트롤러는 디스크 드라이브로부터 적합한 봉인된 키 서버 키를 검색하여 RAID 컨트롤러 NVRAM으로부터 리턴한다.
블록 410에 따르면, 실행 옵션 ROM 코드(460)는 봉인 해제를 위해 서버(390)의 암호화 모듈에 BLOB를 제공한다. 예컨대, 실행 옵션 ROM 코드는 키 서버 키가 봉인 해제되도록 요청하는 서버 TPM에 BLOB를 송신한다.
블록 415에 따르면, 암호화 모듈은 BLOB를 봉인 해제하여 원래의 키 서버 키를 실행 옵션 ROM 코드에 다시 리턴한다. RAID 컨트롤러(370)가 적합한 서버(적합하게 구성된 서버를 포함함)에 있다면 서버 TPM은 원래의 키 서버 키를 실행 옵션 ROM 코드에 리턴할 것이다.
블록 420에 따르면, 실행 옵션 ROM 코드(460)는 키 서버를 어레이 컨트롤러(370)에 보낸다. 그러면 데이터는 디스크 드라이브와 암호화 또는 복호화를 행할 수 있다.
본 발명에 따른 실시예는 다양한 시스템, 방법 및 장치에서 활용된다. 예시를 위해, 하드디스크 드라이브 저장 시스템과 함께 예시적인 실시예를 설명한다. 그러나, 예시적인 실시예는 테이프 카트리지, 광디스크, 또는 착탈 가능한 매체를 사용하는 저장 장치와 같은 다른 타입의 저장 시스템에도 적용 가능하다.
도 5는 본 발명의 예시적인 실시예에 따른 예시적인 분산된 파일 또는 저장 시스템(500)의 블록도이다. 예로서, 시스템은 복수의 호스트 컴퓨터(502) 및 하나 이상의 저장 컨트롤러(504)(예로서 어레이 컨트롤러로 나타냄)를 포함하는 하나 이상의 저장 장치 또는 어레이(503A, 503B)와, 복수의 저장 장치(506)(예로서 디스크 어레이 1~디스크 어레이 N으로 나타냄)를 포함하는 저장 네트워크 및/또는 저장 영역 네트워크(SAN)이다.
호스트 컴퓨터(502)(호스트 1~호스트 N으로 나타냄)는 하나 이상의 패브릭 또는 네트워크(510)를 통해 어레이 컨트롤러(504)에 연결되고, 저장 장치 또는 어레이(503)는 하나 이상의 패브릭 또는 네트워크(511)를 통해 저장 장치(506)에 연결된다. 관리 도구(517)는 어레이 컨트롤러(504) 및 키 서버와 같은 하나 이상의 서버(519)와의 통신을 위해 네트워크(510)에 연결된다. 예컨대, 호스트는 소형 컴퓨터 시스템 인터페이스(SCSI) 또는 다른 인터페이스/커맨드를 사용하여 FC(Fibre Channel)를 통해 어레이 컨트롤러와 통신한다. 예로서, 네트워크(510, 511)는 하나 이상의 이더넷, 파이버 채널(FC), 직렬 연결 SCSI(SAS), iSCSI, 인터넷, 근거리 통신망(LAN), 광역 통신망(WAN), 공공 및/또는 사설 네트워크 등을 포함한다. 통신 링크(512)는 호스트, 컨트롤러, 저장 장치, 관리 도구 및 서버 사이의 통신 경로 또는 커플링을 나타내기 위해 도형으로 표시된다.
한 예시적인 실시예에서, 어레이 컨트롤러(504) 및 디스크 어레이(506)는, 몇몇 예를 들면, 랜덤 액세스 메모리(RAM) 및/또는 디스크 공간(저장을 위한 가상 RAM) 및/또는 자기 메모리(예컨대 테이프), 초소형 기계 시스템(MEMS), 또는 광디스크와 같은 몇몇 다른 형태의 저장 장치를 제공하는 네트워크 접속 장치이다. 일반적으로, 어레이 컨트롤러 및 디스크 어레이는 많은 RAM 및/또는 디스크 공간과, 네트워크 디스크 드라이브 또는 디스크 드라이브 어레이(예컨대 RAID(Redundant Array of Inexpensive Disk)), 고속 테이프, 자기 랜덤 액세스 메모리(MRAM) 시스템 또는 다른 장치와 같은 하나 이상의 특화된 장치와, 그 조합을 포함한다. 한 예시적인 실시예에서, 어레이 컨트롤러(504) 및 디스크 어레이(506)는 하나 이상의 서버를 포함하는 메모리 노드이다.
저장 컨트롤러(504)는 다양한 데이터 저장 및 검색 동작을 관리한다. 저장 컨트롤러(504)는 호스트 컴퓨터(502)로부터 데이터 판독 요청, 데이터 기록 요청, 유지 요청 등과 같은 I/O 요청 또는 커맨드를 수신한다. 저장 컨트롤러(504)는 복수의 디스크 어레이(506) 및 디스크 그룹에서의 데이터의 저장 및 검색을 다룬다. 한 예시적인 실시예에서, 저장 컨트롤러(504)는 분리된 장치이거나 서버와 같은 컴퓨터 시스템의 일부일 수 있다. 추가적으로, 저장 컨트롤러(504)는 디스크 어레이(506)에 가깝게 위치할 수도 있고 디스크 어레이(506)로부터 지리적으로 큰 거리를 갖고 위치할 수도 있으며, 서로 가깝게 위치할 수도 있고 서로 큰 거리를 갖고 위치할 수도 있다.
어레이 컨트롤러(504)는 많은 전자 장치, 회로 보드, 전자 부품 등을 포함한다. 예로서, 어레이 컨트롤러(504)는 펌웨어(520), 입력/출력(I/O) 스케줄러(522), 버퍼 또는 큐(queue)(524)(예컨대 소유권 이전 중에 메타데이터 구조를 일시적으로 저장하기 위해 사용됨), 하나 이상의 인터페이스(526), 하나 이상의 프로세서(528)(예로서 CPU(Central Processing Unit)로서 나타냄), 메모리(530)(판독 및 기록 캐시를 포함)를 포함한다. CPU(528)는 호스트 컴퓨터(502)로부터 수신되는 다양한 데이터 저장 및 데이터 검색 요청을 관리하기 위해 필요한 동작 및 과업을 행한다. 예컨대, 프로세서(528)는 하나 이상의 호스트 컴퓨터(502)로의 양방향 데이터 통신을 제공하는 호스트 인터페이스(526A)에 연결된다. 프로세서(528)는 디스크 어레이(506)로의 양방향 데이터 통신을 제공하는 어레이 인터페이스(526B)에도 연결된다.
메모리(530)는 프로세서(528)에 연결되고 그 태스크를 수행할 때 프로세서에 의해 사용되는 다양한 정보를 저장한다. 예로서, 메모리(530)는 하나 이상의 휘발성 메모리, 비휘발성 메모리, 또는 휘발성 및 비휘발성 메모리의 조합을 포함한다. 메모리(530)는 예컨대 어플리케이션, 데이터, 제어 프로그램, 알고리즘(본 발명에 따른 실시예를 구현하거나 구현하는 것에 도움을 주는 소프트웨어를 포함) 및 저장 장치와 관련된 다른 데이터(예컨대 맵핑 메타데이터, 구성 메타데이터, 캐시된 사용자 데이터와 같은 상태 데이터)를 저장한다. 프로세서(528)는 하나 이상의 버스(532)를 통해 메모리(530), 인터페이스(526), 및 다른 요소와 통신한다.
적어도 한 실시예에서, 저장 장치는 기존의 복제, 디스크 로깅, 디스크 이미징 시스템 및 RAID(Redundant Array of Inexpensive Disk)의 하나 이상의 레벨을 포함하지만 이에 제한되지 않는 다른 방법을 사용하여 결함에 내성을 갖는다. 하나 이상의 디스크 어레이가 크래시 또는 고장날 때, 복제는 높은 가용성을 제공한다. 또한, 한 예시적인 실시예에서, 저장 장치는 어드레스될 데이터 아이템이 디스크에 저장된 각각의 블록으로서 액세스되는 디스크 또는 디스크의 어레이(예컨대 512, 1024, 4096, …(각각 바이트))의 형태 또는 스트라이프 프래그먼트(예컨대 4K, 16K, 32K, …)의 형태로 메모리를 제공한다.
한 실시예에서 저장 장치(503A, 503B)는 디스크 어레이이다. 각 디스크 어레이는 하나 이상의 컨트롤러를 가질 수 있다. 예컨대, 어레이는 리던던시를 위한 두 개의 컨트롤러를 갖는다. 또한, 저장 장치는 여기에 설명한 것처럼 생산 디스크 및 백업 디스크를 포함한다.
한 실시예에서, 저장 장치(503A, 503B)는 물리적으로 같은 데이터 센터에 위치한다. 다른 실시예에서, 저장 장치는 분리된 데이터 센터에 지리적으로 먼 거리에 떨어져 위치한다. 또한, 두 개의 저장 장치만을 도시했지만, SAN은 그러한 장치를 수 백 또는 수 천 개 포함할 수 있다.
도 6은 컴퓨터 또는 저장 시스템(600)의 예시적인 실시예를 나타낸다. 시스템은 암호화 모듈(620)을 사용하는 컴퓨터(602)(예컨대 키 서버)를 포함한다. 컴퓨터(602)는 네트워크(652)를 통해 적어도 하나의 원거리 요소(remote entity)(654)에 연결된다. 컴퓨터(602)는 예컨대 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터 또는 이동 장치일 수도 있다. 컴퓨터(602)는 적어도 하나의 근거리 요소(local entity)(650)에 연결된 프로세서(640)를 포함한다. 여기에 사용된 것처럼 “근거리 요소”는 컴퓨터(602) 내부의 하드웨어/펌웨어/소프트웨어 요소를 말하고 “원거리 요소”는 컴퓨터(602) 외부의 하드웨어/펌웨어/소프트웨어 요소를 말한다. 근거리 요소의 예는 오퍼레이팅 시스템 및 스마트카드 리더, 하드디스크 드라이브, 네트워크 컨트롤러, 그래픽 컨트롤러와 같은 주변 기기를 포함하지만 이에 제한되지는 않는다. 장치 및 시스템이 이동 가능하거나 이동 불가하더라도, 원거리 요소의 예는 다양한 이동 가능 및 이동 불가 컴퓨터 및/또는 호스트, 디스크 어레이, 컨트롤러, 서버, 메인 프레임 컴퓨터, 분산 컴퓨팅 장치, 랩탑, 및 다른 전자 장치와 같은 전자 장치 및 시스템을 포함하지만 이에 제한되지는 않는다.
프로세서(640)는 네트워크 인터페이스(648) 및 컴퓨터(602)의 오퍼레이팅 시스템(OS)(644)을 저장하는 메모리(642)에 연결된다. 도시한 바와 같이, 메모리(642)는 프로세서(640)에 연결된 TPM(Trusted Platform Module)(620)에 보내진 요청을 처리하는 TSS(Trusted Platform Module Software Stack)(646)를 저장할 수도 있다.
TPM(620)은 디지털 서명 및 암호화를 위한 RSA 비대칭 알고리즘, SHA-1 해싱, HMAC(High-based Message Authentication Code) 기능, 보안 저장, 랜덤 숫자 생성, 또는 다른 기능과 같은 암호화 기능을 제공하도록 구성된다. TPM(620)은 소프트웨어, 펌웨어 및/또는 하드웨어를 사용하여 구현된다. 도 6에 나타낸 TPM 요소는 일반화되었고 포괄적이지 않다. 또한, TPM 아키텍처 및 기능은 TCG(Trusted Computing Group)에 의해 인증되어 시간에 따라 변화할 수 있다.
도 6에 나타낸 바와 같이, TPM(620)은 프로세서(640)와 통신하는 입력/출력(I/O) 인터페이스(622)를 포함한다. I/O 인터페이스(622)는 암호화 서비스(624), 랜덤 숫자 소스(626), 비대칭 알고리즘(628), 저장 장치(630), PCR(Platform Configuration Register)(632)과 같은 다른 TPM 요소에 연결된다. 암호화 서비스(624)는 해싱, 디지털 서명, 암호화 및 복호화와 같은 기능을 지원한다. 랜덤 숫자 소스(626)는 암호화 서비스(624)를 위해 랜덤 숫자를 생성한다. 예컨대, 몇몇 실시예에서, 암호화 서비스(624)는 암호화 키를 생성하기 위해 랜덤 숫자를 사용한다. 비대칭 알고리즘(628)은 TPM(620)이 비대칭 키 동작을 행할 수 있게 한다. 저장 장치(630)는 TPM(620)에 의해 보호되는 비밀(예컨대 암호화 키 또는 다른 데이터)을 안전하게 저장한다. PCR(632)은 컴퓨터(602)의 현재 상태에 관한 정보를 저장한다. 예컨대, 몇몇 실시예에서, PCR(632)은 컴퓨터(602)에 관련된 각각의 무결성 측정(integrity measurement) 및 무결성 측정의 시퀀스를 저장한다.
예시적인 실시예는 TPM을 수용한 서버로부터 독립된(서버 특유의 지원을 필요로 하지 않음) TPM 생성 BLOB를 저장하는 방법을 제공한다. 그와 같이, 데이터를 암호화한 RAID 컨트롤러가 고장나서 다른 암호화 RAID 컨트롤러로 대체된 경우에도(즉 BLOB가 고장난 RAID 컨트롤러에 갇히거나 저장되지 않고 드라이브에 저장됨) 실시예는 디스크 데이터로의 액세스를 보증한다. 또한, BLOB가 멀티-드라이브 RAID 세트의 각 드라이브에서 RAID 컨트롤러에 의해 저장되므로 예시적인 실시예는 컴퓨터 노드 키 백업 동작을 행하기 위해 사람의 개입을 필요로 하지 않는다. 한 서버에서 다른 서버로 TPM이 이동하는 경우, 암호화 관리자가 관여하지 않아도 관련된 디스크 드라이브는 새로운 서버로 이동될 수 있다.
예시적인 실시예는 다른 RAID 컨트롤러로부터 어레이 컨트롤러(하드웨어 및 소프트웨어의 양쪽에 기반함)를 보호한다. 특정한 컨트롤러를 설정하는 특징이 제공될 것이며(즉 드라이브를 이동하는 어려움) 암호화 어플리케이션은 보통 그들의 키 관리 아키텍처를 공개한다는 사실 때문에 RAID 컨트롤러 BLOB가 저장되는 곳은 분명하다. 또한, BLOB는 드라이브의 메타데이터 부분에 저장되므로, 인증의 증명은 자격 또는 개인 키가 아닌 BLOB 자체이다.
정의 :
여기에서 또한 청구항에서 사용된 것처럼, 이하의 용어는 다음과 같은 정의를 갖는다 :
여기에서 사용된 것처럼, “BLOB”는 TPM과 같은 암호화 모듈 또는 프로세서에 의해 생성된 암호화된 데이터이다(보호된 저장 장치에서 사용되거나, TPM 외부의 콘텍스트를 저장하기 위해 사용).
여기에서 사용된 것처럼, “저장 장치”라는 용어는 하나 이상의 디스크 어레이, 디스크 드라이브, 테이프 드라이브, 고체 상태 드라이브, 광드라이브, SCSI 장치, 또는 파이버 채널 장치를 포함하지만 이에 제한되지 않는 데이터를 저장할 수 있는 모든 데이터 저장 장치를 의미한다. 여기에서 사용된 것처럼, “디스크 어레이” 또는 “어레이”는 복수의 디스크 드라이브, 캐시, 컨트롤러를 포함하는 저장 시스템이다. 어레이는 네트워크 접속 저장 장치(NAS) 어레이, 모듈러 SAN 어레이, 모노리틱 SAN 어레이, 유틸리티 SAN 어레이, 저장 장치 가상화를 포함하지만 이에 제한되지는 않는다.
여기에서 사용된 것처럼, “TPM” 또는 “신뢰 플랫폼 모듈”은 TCG 신뢰 플랫폼 모듈 사양에 규정된 사양에 따라 구현된 암호화 프로세서이다. TPM은 암호화 키의 보안 생성, 원격 증명, 봉인된 저장, 바인딩, 하드웨어 랜덤 숫자 생성기와 같은 다양한 기능을 제공한다.
한 예시적인 실시예에서, 흐름도에 있어서의 하나 이상의 블록은 자동화된다. 다시 말해서, 장치, 시스템, 방법은 자동적으로 동작한다. 여기에서 사용된 것처럼, “자동화” 및 “자동적으로”라는 용어(그 비슷한 변형도 포함)는 사람이 개입, 감시, 노력 및/또는 결정하지 않는 장치, 시스템, 및/또는 컴퓨터 및/또는 기계적/전기적 장치를 사용한 처리의 제어된 작동을 의미한다.
본 발명의 예시적인 실시예에 따른 흐름도는 예로서 제공되며 본 발명의 범위 내의 다른 실시예를 제한하는 것으로 이해되어서는 안 된다. 예컨대, 블록은 특정한 순서로 진행되어야 하는 단계로 이해되어서는 안 된다. 추가적인 블록/단계가 추가될 수 있고, 몇몇 블록/단계가 제거될 수 있고, 블록/단계의 순서는 변경될 수 있지만, 여전히 본 발명의 범위 내에 있다. 또한, 서로 다른 숫자 내의 블록이 다른 숫자 내의 다른 블록에 추가되거나 그와 교환될 수 있다. 또한, 특정한 숫자 데이터 값(예컨대 특정한 양, 수, 범주 등) 또는 다른 특정한 정보는 예시적인 실시예를 설명하는 예시로서 이해되어야 한다. 그러한 특정한 정보는 본 발명을 제한하기 위해 제공되는 것이 아니다.
본 발명에 따른 다양한 실시예에서, 실시예는 방법, 시스템, 및/또는 장치로서 구현된다. 한 예로서, 예시적인 실시예는 여기에서 설명된 방법을 구현하는 하나 이상의 컴퓨터 소프트웨어 프로그램으로서 구현된다. 소프트웨어는 하나 이상의 모듈(코드 서브루틴 또는 객체 지향 프로그래밍에서 “객체”로도 불림)로서 구현된다. 소프트웨어의 위치는 다양한 대안적인 실시예에 따라 다를 것이다. 소프트웨어 프로그래밍 코드는 예컨대 CD-ROM 드라이브, 플래시 메모리, 또는 하드 드라이브와 같은 몇몇 형태의 장기 저장 매체로부터 프로세서 또는 컴퓨터 또는 서버의 프로세서에 의해 액세스된다. 소프트웨어 프로그래밍 코드는, 데이터 처리 시스템에서 사용하기 위한 많은 기존의 매체, 또는 디스크, 하드 드라이브, CD-ROM, ROM, 플래시 메모리 등을 포함하는 반도체, 자기 및 광학 장치와 같은 모든 메모리 장치에 구체화 또는 저장된다. 코드는 그러한 매체에 분산되거나, 또는 그러한 다른 시스템의 사용자에 의해 사용을 위한 다른 컴퓨터 시스템으로의 몇몇 형태의 네트워크를 통해 하나의 컴퓨터 시스템의 메모리 또는 저장 장치로부터 사용자에 분산된다. 또는, 프로그래밍 코드는 메모리에 구체화되고 버스를 사용하여 프로세서에 의해 액세스된다. 소프트웨어 프로그래밍 코드를 메모리, 물리적 매체에 구체화하는 기술 및 방법 및/또는 네트워크를 통해 소프트웨어 코드를 분산시키는 기술 및 방법은 잘 알려져 있고 여기에서 더 설명하지 않을 것이다.
상술한 설명은 본 발명의 원리 및 다양한 실시예의 예를 의미한다. 상술한 설명이 완전히 이해된다면 많은 변경 및 수정은 당업자에게 명확해질 것이다. 이하의 청구항은 그러한 모든 변경 및 수정을 포괄하는 것으로 이해되도록 의도된다.
Claims (20)
- 암호화 키로 저장 장치상의 데이터를 암호화하는 단계와,
상기 암호화 키를 암호화하여 BLOB(Binary Large Object)를 형성하는 암호화 모듈에 상기 암호화 키를 송신하는 단계와,
상기 BLOB를 상기 저장 장치에 연결된 어레이 컨트롤러에 송신하는 단계와,
상기 BLOB를 상기 저장 장치에 저장하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 저장 장치상의 상기 데이터를 복호화하기 위한 요청을 수신하는 단계와,
상기 요청에 응답하여, 상기 저장 장치로부터 상기 BLOB를 상기 BLOB로부터 상기 암호화 키를 추출하는 상기 암호화 모듈에 송신하는 단계와,
상기 BLOB로부터 추출된 상기 암호화 키를 상기 어레이 컨트롤러에 보내는 단계와,
상기 암호화 키로 상기 저장 장치상의 상기 데이터를 복호화하는 단계를 더 포함하는
방법. - 제 1 항에 있어서,
상기 저장 장치의 액세스 가능한 메타데이터 부분에 상기 BLOB를 저장하는 단계를 더 포함하는
방법.
- 제 1 항에 있어서,
신뢰 플랫폼 모듈(Trusted Platform Module : TPM)로 상기 암호화 키를 봉인하는 단계를 더 포함하는
방법.
- 제 1 항에 있어서,
상기 저장 장치의 파워업 초기 처리마다 상기 암호화 키를 재생성하는 단계를 더 포함하는
방법.
- 제 1 항에 있어서,
상기 저장 장치는 디스크 드라이브인
방법.
- 제 1 항에 있어서,
상기 저장 장치를 다른 어레이 컨드롤러에 연결하기 위해 이동시키는 단계와,
서버에서 상기 BLOB가 봉인 해제된 후 상기 데이터를 상기 저장 장치에서 판독하도록 허용하는 단계를 더 포함하는
방법.
- 저장 장치에 BLOB를 저장하는 단계와,
상기 저장 장치로부터 상기 BLOB를 상기 BLOB로부터 암호화된 키를 추출하는 암호화 모듈에 송신하는 단계와,
암호화 키를 상기 저장 장치에 연결된 컨트롤러에 송신하는 단계와,
상기 저장 장치에 저장된 데이터를 암호화 또는 복호화하기 위해 상기 암호화 키를 사용하는 단계
를 포함하는 방법을 컴퓨터가 실행하게 하는 명령을 갖는
컴퓨터 판독 가능한 매체. - 제 8 항에 있어서,
랜덤 숫자 생성기로 상기 키를 생성하는 단계를 더 포함하는
컴퓨터 판독 가능한 매체.
- 제 8 항에 있어서,
상기 키가 상기 저장 장치에 저장된 상기 데이터를 암호화 또는 복호화하기 위해 사용된 후에 상기 키를 상기 서버에 다시 보내는 단계와,
상기 BLOB를 형성하기 위해 상기 서버에서 암호화 모듈을 사용하는 단계와,
상기 BLOB를 저장하기 위해 상기 저장 장치에 송신하는 단계를 더 포함하는
컴퓨터 판독 가능한 매체.
- 제 8 항에 있어서,
어플리케이션 데이터로부터 분리되고 사용자가 액세스할 수 없는 상기 저장 장치의 보안 섹션에 상기 BLOB를 저장하는 단계를 더 포함하는
컴퓨터 판독 가능한 매체.
- 제 8 항에 있어서,
상기 BLOB를 상기 컨트롤러의 서버가 아닌 상기 저장 장치에만 영구적으로 저장하는 단계를 더 포함하는
컴퓨터 판독 가능한 매체.
- 제 8 항에 있어서,
상기 컨트롤러에 의해 멀티-드라이브 RAID(Redundant Array of Independent/Inexpensive Disk) 세트의 각 저장 장치에 상기 BLOB를 저장하는 단계를 더 포함하는
컴퓨터 판독 가능한 매체.
- 제 8 항에 있어서,
상기 서버가 상기 BLOB를 저장하도록 요구하는 것 없이 상기 저장 장치에 대한 인증 정책을 설정하고 실시하는 데에 상기 컨트롤러를 사용하는 단계를 더 포함하는
컴퓨터 판독 가능한 매체.
- 제 8 항에 있어서,
상기 키를 봉인하고 상기 BLOB를 형성하기 위해 상기 서버에 고유한 신원(identity)을 사용하는 단계를 더 포함하는
컴퓨터 판독 가능한 매체.
- BLOB를 형성하기 위해 키를 봉인하는 암호화 모듈과,
상기 암호화 모듈과 통신하는 어레이 컨트롤러와,
상기 BLOB를 저장하고 상기 어레이 컨트롤러에 연결된 저장 장치를 포함하되,
상기 저장 장치는 상기 저장 장치에 저장된 데이터를 암호화 또는 복호화하기 위해 상기 키를 추출하여 상기 키를 상기 어레이 컨트롤러에 보내는 상기 암호화 모듈에 상기 BLOB를 송신하는
저장 시스템.
- 제 16 항에 있어서,
상기 암호화 모듈은 서버에 위치한 신뢰 플랫폼 모듈(TPM)인
저장 시스템. - 제 16 항에 있어서,
랜덤 숫자 생성기로 상기 키를 생성하는 소프트웨어 관리 도구를 더 포함하는
저장 시스템.
- 제 16 항에 있어서,
상기 BLOB는 상기 저장 장치에만 저장되는
저장 시스템.
- 제 16 항에 있어서,
상기 BLOB가 상기 어레이 컨트롤러에 저장되지 않고 상기 저장 장치에 저장되므로, 상기 어레이 컨트롤러가 고장난 후에도 상기 저장 장치에 저장된 데이터가 액세스 가능한
저장 시스템.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2008/059072 WO2009123630A1 (en) | 2008-04-02 | 2008-04-02 | Disk drive data encryption |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110008202A true KR20110008202A (ko) | 2011-01-26 |
KR101379172B1 KR101379172B1 (ko) | 2014-03-28 |
Family
ID=41135867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107024453A KR101379172B1 (ko) | 2008-04-02 | 2008-04-02 | 데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8417967B2 (ko) |
EP (1) | EP2260397A4 (ko) |
JP (1) | JP5230797B2 (ko) |
KR (1) | KR101379172B1 (ko) |
CN (1) | CN101983379B (ko) |
WO (1) | WO2009123630A1 (ko) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2260397A4 (en) * | 2008-04-02 | 2013-05-29 | Hewlett Packard Development Co | CHANGING DISK DRIVE DATA |
US8332604B2 (en) * | 2008-09-30 | 2012-12-11 | Intel Corporation | Methods to securely bind an encryption key to a storage device |
US8266290B2 (en) * | 2009-10-26 | 2012-09-11 | Microsoft Corporation | Scalable queues on a scalable structured storage system |
US8516137B2 (en) | 2009-11-16 | 2013-08-20 | Microsoft Corporation | Managing virtual hard drives as blobs |
US8390805B2 (en) | 2010-07-29 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Surface enhanced raman spectroscopy system |
WO2012023050A2 (en) | 2010-08-20 | 2012-02-23 | Overtis Group Limited | Secure cloud computing system and method |
WO2014091535A1 (ja) * | 2012-12-10 | 2014-06-19 | 株式会社日立製作所 | 計算機システム及び記憶部の暗号化方法 |
US9369445B2 (en) * | 2013-11-08 | 2016-06-14 | MustBin Inc. | Bin enabled data object encryption and storage apparatuses, methods and systems |
US9864874B1 (en) | 2014-05-21 | 2018-01-09 | Amazon Technologies, Inc. | Management of encrypted data storage |
US9565250B2 (en) | 2014-05-30 | 2017-02-07 | Microsoft Technology Licensing, Llc | Data transfer service |
US9684608B2 (en) * | 2014-10-28 | 2017-06-20 | Intel Corporation | Maintaining a secure processing environment across power cycles |
US10025932B2 (en) | 2015-01-30 | 2018-07-17 | Microsoft Technology Licensing, Llc | Portable security device |
JP6492731B2 (ja) * | 2015-02-16 | 2019-04-03 | 富士通株式会社 | ストレージシステム、ストレージ制御装置及びストレージ制御プログラム |
CN105119719B (zh) * | 2015-10-16 | 2018-05-04 | 成都卫士通信息产业股份有限公司 | 一种安全存储系统的密钥管理方法 |
CN105243344B (zh) * | 2015-11-02 | 2020-09-01 | 上海兆芯集成电路有限公司 | 具有硬盘加密功能的芯片组以及主机控制器 |
US10868805B2 (en) | 2016-06-16 | 2020-12-15 | Microsoft Technology Licensing, Llc | Enhanced management of passwords for printing applications and services |
CN109033849A (zh) * | 2018-06-29 | 2018-12-18 | 无锡艾立德智能科技有限公司 | 对存入磁盘阵列数据进行加密的加密方法及装置 |
JP2020119298A (ja) | 2019-01-24 | 2020-08-06 | キオクシア株式会社 | メモリシステム |
CN111367505A (zh) * | 2020-03-02 | 2020-07-03 | 广州致远电子有限公司 | 一种JavaScript源代码保密方法、装置、设备及存储介质 |
CN111881461A (zh) * | 2020-06-12 | 2020-11-03 | 福建亿能达信息技术股份有限公司 | 一种设备维修工分核算方法、系统、设备及介质 |
CN112601219A (zh) * | 2021-03-03 | 2021-04-02 | 四川微巨芯科技有限公司 | 数据加解密的方法及系统、服务器、存储设备和移动设备 |
US11989300B2 (en) * | 2021-07-19 | 2024-05-21 | Dell Products L.P. | Firmware secure boot customization extensions |
JP2024536924A (ja) * | 2021-08-27 | 2024-10-08 | タレス ディアイエス シーピーエル ユーエスエー インク. | 実行プラットフォームに接続されたディスク装置へのアクセスを制御する方法及びディスク装置へのアクセスを制御するための実行プラットフォーム |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638445A (en) * | 1995-09-19 | 1997-06-10 | Microsoft Corporation | Blind encryption |
US20030028664A1 (en) * | 2001-08-02 | 2003-02-06 | Kaijun Tan | Method and system for secure distribution and utilization of data over a network |
US7502754B2 (en) * | 2002-01-08 | 2009-03-10 | Bottomline Technologies (De), Inc. | Secure web server system for unattended remote file and message transfer |
US7095859B2 (en) * | 2002-03-18 | 2006-08-22 | Lenovo (Singapore) Pte. Ltd. | Managing private keys in a free seating environment |
US7318235B2 (en) * | 2002-12-16 | 2008-01-08 | Intel Corporation | Attestation using both fixed token and portable token |
WO2005013797A2 (en) * | 2003-04-23 | 2005-02-17 | Hemchandra Shertukde | Apparatus and method for non-invasive diagnosing of coronary artery disease |
US7093120B2 (en) * | 2003-05-29 | 2006-08-15 | International Business Machines Corporation | Method, apparatus, and program for performing boot, maintenance, or install operations on a storage area network |
US8145898B2 (en) | 2003-12-23 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Encryption/decryption pay per use web service |
US20050246529A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Isolated persistent identity storage for authentication of computing devies |
US7526805B2 (en) * | 2004-06-12 | 2009-04-28 | Microsoft Corporation | Thread protection |
US7640593B2 (en) * | 2005-04-21 | 2009-12-29 | Nokia Corporation | User-controlled management of TPM identities |
US7613921B2 (en) * | 2005-05-13 | 2009-11-03 | Intel Corporation | Method and apparatus for remotely provisioning software-based security coprocessors |
US8839450B2 (en) * | 2007-08-02 | 2014-09-16 | Intel Corporation | Secure vault service for software components within an execution environment |
US7940934B2 (en) * | 2005-09-21 | 2011-05-10 | Broadcom Corporation | System and method for securing computing management functions |
JP4643427B2 (ja) * | 2005-12-08 | 2011-03-02 | 株式会社日立製作所 | 暗号化機能内蔵ストレージシステム |
US20080022412A1 (en) * | 2006-06-28 | 2008-01-24 | David Carroll Challener | System and method for TPM key security based on use count |
US20080063198A1 (en) | 2006-09-07 | 2008-03-13 | Jaquette Glen A | Storing EEDKS to tape outside of user data area |
US8259948B2 (en) * | 2007-12-29 | 2012-09-04 | Intel Corporation | Virtual TPM key migration using hardware keys |
JP4991592B2 (ja) * | 2008-02-18 | 2012-08-01 | 株式会社リコー | ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器 |
EP2260397A4 (en) * | 2008-04-02 | 2013-05-29 | Hewlett Packard Development Co | CHANGING DISK DRIVE DATA |
JP5369502B2 (ja) * | 2008-06-04 | 2013-12-18 | 株式会社リコー | 機器、管理装置、機器管理システム、及びプログラム |
US8127146B2 (en) * | 2008-09-30 | 2012-02-28 | Microsoft Corporation | Transparent trust validation of an unknown platform |
US8204228B2 (en) * | 2008-12-09 | 2012-06-19 | Cisco Technology, Inc. | Group key management re-registration method |
US8213618B2 (en) * | 2008-12-30 | 2012-07-03 | Intel Corporation | Protecting content on client platforms |
JP5493946B2 (ja) * | 2010-02-08 | 2014-05-14 | 株式会社リコー | 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体 |
US8375437B2 (en) * | 2010-03-30 | 2013-02-12 | Microsoft Corporation | Hardware supported virtualized cryptographic service |
-
2008
- 2008-04-02 EP EP08744892.4A patent/EP2260397A4/en not_active Withdrawn
- 2008-04-02 CN CN200880128467.7A patent/CN101983379B/zh active Active
- 2008-04-02 WO PCT/US2008/059072 patent/WO2009123630A1/en active Application Filing
- 2008-04-02 US US12/935,715 patent/US8417967B2/en active Active
- 2008-04-02 KR KR1020107024453A patent/KR101379172B1/ko not_active IP Right Cessation
- 2008-04-02 JP JP2011502919A patent/JP5230797B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20110029785A1 (en) | 2011-02-03 |
US8417967B2 (en) | 2013-04-09 |
EP2260397A4 (en) | 2013-05-29 |
EP2260397A1 (en) | 2010-12-15 |
CN101983379A (zh) | 2011-03-02 |
CN101983379B (zh) | 2014-04-02 |
WO2009123630A1 (en) | 2009-10-08 |
KR101379172B1 (ko) | 2014-03-28 |
JP2011517205A (ja) | 2011-05-26 |
JP5230797B2 (ja) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101379172B1 (ko) | 데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템 | |
US8166314B1 (en) | Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown | |
US9047468B2 (en) | Migration of full-disk encrypted virtualized storage between blade servers | |
US8392682B2 (en) | Storage security using cryptographic splitting | |
US20190238323A1 (en) | Key managers for distributed computing systems using key sharing techniques | |
US20170277898A1 (en) | Key management for secure memory address spaces | |
US8261068B1 (en) | Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit | |
US8161222B1 (en) | Method and system and apparatus for use in data storage | |
US20100153749A1 (en) | Device-access control program, device-access control process, and information processing apparatus for controlling access to device | |
US8719594B2 (en) | Storage availability using cryptographic splitting | |
US20100125730A1 (en) | Block-level data storage security system | |
US10007807B2 (en) | Simultaneous state-based cryptographic splitting in a secure storage appliance | |
US20100162002A1 (en) | Virtual tape backup arrangement using cryptographically split storage | |
US20100150341A1 (en) | Storage security using cryptographic splitting | |
US20100154053A1 (en) | Storage security using cryptographic splitting | |
US20100153703A1 (en) | Storage security using cryptographic splitting | |
JP2017537381A (ja) | 複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするためのマルチレベルセキュリティシステムおよびその方法 | |
US20140129844A1 (en) | Storage security using cryptographic splitting | |
EP2359296B1 (en) | Simultaneous state-based cryptographic splitting in a secure storage appliance | |
US20140164790A1 (en) | Storage security using cryptographic splitting | |
US9384149B2 (en) | Block-level data storage security system | |
US20140108797A1 (en) | Storage communities of interest using cryptographic splitting | |
US20100161981A1 (en) | Storage communities of interest using cryptographic splitting | |
US20100162001A1 (en) | Secure network attached storage device using cryptographic settings | |
US20110188651A1 (en) | Key rotation for encrypted storage media using a mirrored volume revive operation |
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 | ||
LAPS | Lapse due to unpaid annual fee |