KR101379172B1 - 데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템 - Google Patents

데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템 Download PDF

Info

Publication number
KR101379172B1
KR101379172B1 KR1020107024453A KR20107024453A KR101379172B1 KR 101379172 B1 KR101379172 B1 KR 101379172B1 KR 1020107024453 A KR1020107024453 A KR 1020107024453A KR 20107024453 A KR20107024453 A KR 20107024453A KR 101379172 B1 KR101379172 B1 KR 101379172B1
Authority
KR
South Korea
Prior art keywords
key
blob
encryption
storage device
controller
Prior art date
Application number
KR1020107024453A
Other languages
English (en)
Other versions
KR20110008202A (ko
Inventor
조셉 포스터
로버트 엘리오트
제프리 플랭크
Original Assignee
휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. filed Critical 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Publication of KR20110008202A publication Critical patent/KR20110008202A/ko
Application granted granted Critical
Publication of KR101379172B1 publication Critical patent/KR101379172B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat 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/415Redundant 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

데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템{DISK DRIVE DATA ENCRYPTION}
많은 저장 시스템에 있어서 디스크 드라이브는 호스트 컴퓨터로부터 판독 및 기록 요청을 수신한다. 보안을 위해, 디스크 드라이브에 저장된 데이터는 암호화될 필요가 있다. 데이터를 보호하기 위해, 저장되는 데이터를 어떻게 보호할 것인지, 암호화 키를 어디에 저장할지와 같은 중요한 문제가 대두된다.
몇몇 저장 시스템에서, 호스트 컴퓨터는 드라이브에 암호화 키 및 데이터를 보낸다. 이 동작에서, 호스트는 암호화 키 및 데이터 흐름을 제어한다.
다른 저장 시스템에서, 암호화 키는 중앙 키 서버에 저장된다. 단일 서버에서 많은 수의 암호화 키를 적시에 안전하게 관리하는 것은 어려운 과제이다. 예컨대, 암호화 키에 액세스하기 위해 많은 다른 사용자 또는 호스트가 서버에서 인증을 받을 필요가 있으므로 문제가 일어날 수 있다. 또한, 암호화 키가 서버 내에 저장된다면, 대응하는 디스크 어레이 컨트롤러를 지원하는 서버는 각 암호화 키를 저장하는 것과 관련된 특정 요건을 알아야 한다.
또 다른 저장 시스템에서, 암호화 키는 디스크 어레이 컨트롤러에 저장된다. 그러나, 어레이 컨트롤러가 고장나면, 저장된 암호화 키는 고장난 컨트롤러 내에 갇히게 되고, 디스크에 저장된 관련 데이터에 액세스할 수 없다.
본 발명에 따른 실시예는 저장 시스템에서 암호화 키 관리를 자동화하는 장치, 시스템 및 방법을 대상으로 한다. 한 예시적인 실시예는 데이터를 암호화하고 복호화하기 위해 사용되는 암호화 키를 안전하게 획득하고 운반하여 디스크 드라이브와 같은 저장 장치에 저장한다. 또한, 예시적인 실시예는, 착탈 가능한 매체(예컨대 하드디스크 드라이브)가 옮겨지거나 인증되지 않은 기기에 설치되었을 때, 인증되지 않은 액세스로부터 착탈 가능한 매체를 보호한다.
도 1(a)는 본 발명의 예시적인 실시예에 따른 디스크 드라이브에 암호화 키를 저장하는 흐름도이다.
도 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)

  1. 어레이 컨트롤러를 이용하여, 암호화 키로 저장 장치 상의 데이터를 암호화하는 단계와,
    BLOB(Binary Large Object)를 형성하기 위해, 상기 암호화 키를 암호화하는 암호화 모듈로 상기 암호화 키를 송신하는 단계 - 상기 암호화 모듈은 상기 어레이 컨트롤러로부터 분리된 키 서버 내에 있음 - 와,
    상기 저장 장치에 연결된 상기 어레이 컨트롤러를 이용하여 상기 BLOB를 수신하는 단계와,
    상기 BLOB를 상기 저장 장치 상에 저장하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 저장 장치 상의 상기 데이터를 복호화하기 위한 요청을 수신하는 단계와,
    상기 요청에 응답하여, 상기 저장 장치로부터 검색된 상기 BLOB를 상기 BLOB로부터 상기 암호화 키를 추출하는 상기 암호화 모듈로 송신하는 단계와,
    상기 BLOB로부터 추출된 상기 암호화 키를 상기 어레이 컨트롤러를 이용하여 상기 암호화 모듈로부터 수신하는 단계와,
    상기 수신된 암호화 키로 상기 저장 장치 상의 상기 데이터를 복호화하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 저장 장치 상에 상기 BLOB를 저장하는 단계는 상기 저장 장치의 액세스 가능한 메타데이터 부분 내에 상기 BLOB를 저장하는 단계를 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 암호화 모듈은 신뢰 플랫폼 모듈(Trusted Platform Module : TPM)인
    방법.
  5. 제 1 항에 있어서,
    상기 암호화 키는 키 서버의 키인
    방법.
  6. 제 1 항에 있어서,
    상기 저장 장치는 디스크 드라이브인
    방법.
  7. 제 1 항에 있어서,
    다른 저장 장치를 상기 어레이 컨트롤러에 연결하는 단계와,
    상기 다른 저장장치로부터 검색된 다른 BLOB를 상기 암호화 모듈로 송신하는 단계 - 상기 암호화 모듈은 상기 다른 BLOB로부터 다른 암호화 키를 추출함 - 와,
    상기 다른 암호화 키를 이용하여 상기 다른 저장 장치로부터 데이터를 판독하는 단계를 더 포함하는
    방법.
  8. 명령어를 가진 컴퓨터 판독 가능한 매체로서,
    상기 명령어는, 컨트롤러의 프로세서로 하여금,
    상기 컨트롤러에 연결된 저장 장치 상에 BLOB를 저장하게 하고,
    상기 저장 장치로부터 검색된 상기 BLOB를 상기 BLOB로부터 암호화 키를 추출하는 암호화 모듈로 송신- 상기 암호화 모듈은 상기 컨트롤러로부터 분리된 키 서버 내에 있음 - 하게 하고,
    상기 암호화 키를 상기 컨트롤러에서 수신하는 단계와,
    상기 컨트롤러를 이용하여, 상기 저장 장치 상에 저장된 데이터를 암호화하거나 복호화하기 위해 상기 암호화 키를 사용하게 하는
    컴퓨터 판독 가능한 매체.
  9. 제 8 항에 있어서,
    상기 프로세서로 하여금 상기 BLOB를 송신하게 하는 명령어는, 상기 프로세서로 하여금 상기 BLOB를 호스트로 송신하게 하는 명령어 - 상기 호스트는 상기 BLOB를 봉인 해제하기 위한 요청과 함께 상기 BLOB를 상기 암호화 모듈로 송신함 - 를 포함하는
    컴퓨터 판독 가능한 매체.
  10. 제 8 항에 있어서,
    상기 프로세서로 하여금,
    상기 암호화 키가 상기 저장 장치 상에 저장된 상기 데이터를 암호화하거나 복호화하는 데 사용된 후에 상기 암호화 키를 상기 암호화 모듈을 포함하는 상기 키 서버로 전송 - 상기 암호화 모듈은 상기 암호화 키에 근거하여 상기 BLOB를 형성함 - 하게 하고,
    상기 암호화 모듈에 의해 형성된 상기 BLOB를 저장을 위한 상기 저장 장치로 송신하게 하는 명령어를 더 포함하는
    컴퓨터 판독 가능한 매체.
  11. 제 8 항에 있어서,
    상기 프로세서로 하여금 상기 BLOB를 저장하게 하는 명령어는,
    상기 프로세서로 하여금 애플리케이션 데이터로부터 분리되고 사용자가 액세스할 수 없는 상기 저장 장치의 보안 섹션 내에 상기 BLOB를 저장하게 하는 명령어를 포함하는
    컴퓨터 판독 가능한 매체.
  12. 제 8 항에 있어서,
    상기 암호화 키는 계산 노드 키이고 상기 컨트롤러는 저장 컨트롤러인
    컴퓨터 판독 가능한 매체.
  13. 제 8 항에 있어서,
    상기 프로세서로 하여금 상기 BLOB를 저장하게 하는 명령어는,
    상기 프로세서로 하여금 멀티-드라이브 RAID(Redundant Array of Independent/Inexpensive Disk) 세트 내의 각각의 저장 장치 상에 상기 BLOB를 저장하게 하는 명령어를 포함하되, 상기 컨트롤러는 RAID 컨트롤러인
    컴퓨터 판독 가능한 매체.
  14. 제 8 항에 있어서,
    상기 프로세서로 하여금,
    상기 암호화 모듈을 포함하는 상기 키 서버가 상기 BLOB를 저장하도록 요구하지 않으면서 상기 저장 장치에 대한 인증 정책을 설정하고 실시하게 하는 명령어를 더 포함하는
    컴퓨터 판독 가능한 매체.
  15. 제 8 항에 있어서,
    상기 프로세서로 하여금,
    상기 암호화 모듈을 포함하는 상기 키 서버로 상기 암호화 키를 전송 - 상기 암호화 모듈은 상기 암호화 키를 봉인하고 상기 BLOB를 형성하기 위해 상기 키 서버에 고유한 신원(identity)을 사용함 - 하게 하는 명령어를 더 포함하는
    컴퓨터 판독 가능한 매체.
  16. BLOB를 형성하기 위해 키를 봉인하는 암호화 모듈과,
    상기 암호화 모듈과 통신하는 어레이 컨트롤러를 포함하되,
    상기 암호화 모듈은 상기 어레이 컨트롤러로부터 분리된 키 서버 내에 있고,
    상기 어레이 컨트롤러는,
    상기 어레이 컨트롤러에 연결된 저장 장치 상에 상기 BLOB를 저장하고, 상기 BLOB를 상기 BLOB로부터 상기 키를 추출하는 상기 암호화 모듈로 송신하고, 상기 암호화 모듈로부터 상기 키를 수신하고, 상기 수신된 키를 이용하여 상기 저장 장치 상에 저장된 데이터를 암호화하거나 복호화하는
    저장 시스템.
  17. 제 16 항에 있어서,
    상기 암호화 모듈은 상기 키 서버 내에 위치한 신뢰 플랫폼 모듈(TPM)인
    저장 시스템.
  18. 제 16 항에 있어서,
    상기 어레이 컨트롤러는 RAID 컨트롤러이고, 상기 저장 장치의 액세스 가능한 메타데이터 부분 내에 상기 BLOB를 저장하는
    저장 시스템.
  19. 제 16 항에 있어서,
    상기 어레이 컨트롤러는 상기 암호화 모듈과 통신하는 호스트를 통해 상기 암호화 모듈로 상기 BLOB를 송신하는
    저장 시스템.
  20. 제 16 항에 있어서,
    상기 키는 계산 노드 키인
    저장 시스템.
KR1020107024453A 2008-04-02 2008-04-02 데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템 KR101379172B1 (ko)

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 KR20110008202A (ko) 2011-01-26
KR101379172B1 true 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)

* Cited by examiner, † Cited by third party
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 タレス ディアイエス シーピーエル ユーエスエー インク. 実行プラットフォームに接続されたディスク装置へのアクセスを制御する方法及びディスク装置へのアクセスを制御するための実行プラットフォーム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007157049A (ja) 2005-12-08 2007-06-21 Hitachi Ltd 暗号化機能内蔵ストレージシステム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007157049A (ja) 2005-12-08 2007-06-21 Hitachi Ltd 暗号化機能内蔵ストレージシステム

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
KR20110008202A (ko) 2011-01-26
CN101983379A (zh) 2011-03-02
CN101983379B (zh) 2014-04-02
WO2009123630A1 (en) 2009-10-08
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
US10389709B2 (en) Securing client-specified credentials at cryptographically attested resources
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
US8416954B1 (en) Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
US20100153749A1 (en) Device-access control program, device-access control process, and information processing apparatus for controlling access to device
US10007807B2 (en) Simultaneous state-based cryptographic splitting in a secure storage appliance
US20100125730A1 (en) Block-level data storage security system
US8719594B2 (en) Storage availability using cryptographic splitting
US20100162002A1 (en) Virtual tape backup arrangement using cryptographically split storage
US20100150341A1 (en) Storage security using cryptographic splitting
EP2359296B1 (en) Simultaneous state-based cryptographic splitting in a secure storage appliance
US20100154053A1 (en) Storage security using cryptographic splitting
US20100153703A1 (en) Storage security using cryptographic splitting
JP2017537381A (ja) 複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするためのマルチレベルセキュリティシステムおよびその方法
US20140129844A1 (en) Storage security using cryptographic splitting
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
JP2011048661A (ja) 仮想サーバ暗号化システム

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