KR102111558B1 - 스토리지 장치 - Google Patents

스토리지 장치 Download PDF

Info

Publication number
KR102111558B1
KR102111558B1 KR1020180026739A KR20180026739A KR102111558B1 KR 102111558 B1 KR102111558 B1 KR 102111558B1 KR 1020180026739 A KR1020180026739 A KR 1020180026739A KR 20180026739 A KR20180026739 A KR 20180026739A KR 102111558 B1 KR102111558 B1 KR 102111558B1
Authority
KR
South Korea
Prior art keywords
command
storage device
data
erasing
receiving
Prior art date
Application number
KR1020180026739A
Other languages
English (en)
Other versions
KR20190033413A (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 KR20190033413A publication Critical patent/KR20190033413A/ko
Application granted granted Critical
Publication of KR102111558B1 publication Critical patent/KR102111558B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Holo Graphy (AREA)

Abstract

실시 형태는, 목적에 따라 데이터를 처리할 수 있는 스토리지 장치를 제공한다.
실시 형태에 따르면, 암호화되지 않은 유저 데이터를 기억하는 스토리지 장치는 적어도 하나의 데이터 소거 방식을 구비한다. 스토리지 장치는, 호스트 장치로부터 문의를 수신하는 수단과, 문의를 수신하면, 적어도 하나의 데이터 소거 방식을 나타내는 응답 정보를 호스트 장치에 송신하는 수단을 구비한다.

Description

스토리지 장치 {STORAGE DEVICE}
본 발명의 실시 형태는 스토리지 장치에 관한 것이다.
종래, 대용량의 스토리지 장치에 요구되는 시큐리티 기능은 다양화되고 있다. 시큐리티 기능의 일례로서, 필요에 따라 데이터를 처리하는 경우가 있다.
실시 형태는, 목적에 따라 데이터를 처리할 수 있는 스토리지 장치를 제공한다.
실시 형태의 스토리지 장치는, 암호화되지 않은 유저 데이터를 기억하고, 적어도 하나의 데이터 소거 방식을 구비한다. 스토리지 장치는, 호스트 장치로부터 소거 방식의 문의를 수신하는 수단과, 문의를 수신하면, 적어도 하나의 데이터 소거 방식을 나타내는 응답 정보를 호스트 장치에 송신하는 수단을 구비한다.
도 1의 (a) 및 (b)는 제1 실시 형태의 스토리지 장치와 호스트 장치의 접속예를 도시한다.
도 2는 제1 실시 형태의 스토리지 장치의 구성의 일례를 도시한다.
도 3의 (a) 내지 (c)는 제1 실시 형태에서 정의되는 PIN의 일례를 도시한다.
도 4는 스토리지 장치의 상태 천이의 일례를 도시한다.
도 5a는 제1 실시 형태에 있어서의 데이터 소거 시퀀스의 일례를 도시한다.
도 5b는 제1 실시 형태에 있어서의 데이터 소거 시퀀스의 일례를 도시한다.
도 6의 (a) 및 (b)는 도 5a, 도 5b에 도시한 시퀀스에 있어서의 소거 방식 표시 요구의 일례를 도시한다.
도 7의 (a) 내지 (c)는 도 5a, 도 5b에 도시한 시퀀스에 있어서의 소거 방식 반송의 일례를 도시한다.
도 8은 영역마다 액세스 권한을 설정하는 일례를 도시한다.
도 9의 (a) 및 (b)는 전원 끊김 발생에 대비한 데이터 관리를 포함하는 데이터 소거의 일례를 도시하는 흐름도이다.
도 10은 데이터 소거 중에 액세스를 거부하는 데이터 소거의 일례를 도시하는 흐름도이다.
도 11은 소거 중인 영역으로의 액세스를 거부하는 데이터 소거의 일례를 도시하는 흐름도이다.
도 12는 복수 영역에 대한 동시 소거 지시를 거부하는 데이터 소거의 일례를 도시하는 흐름도이다.
도 13은 Namespace와 Range의 관계의 일례를 도시한다.
도 14의 (a) 내지 (c)는 Namespace 단위의 데이터 소거의 일례를 도시하는 흐름도이다.
도 15의 (a) 및 (b)는 파괴 상태를 포함하는 상태 천이의 일례를 도시한다.
도 16은 파괴 동작의 일례를 도시하는 흐름도이다.
도 17은 파괴 기능을 구비하는 제2 실시 형태의 스토리지 장치의 구성의 일례를 도시한다.
도 18은 데이터 암호화 기능을 구비하는 제3 실시 형태의 스토리지 장치의 구성의 일례를 도시한다.
도 19는 파괴 기능과 데이터 암호화 기능을 구비하는 제4 실시 형태의 스토리지 장치의 구성의 일례를 도시한다.
도 20은 제5 실시 형태의 스토리지 장치의 구성의 일례를 도시한다.
도 21은 제5 실시 형태에 있어서의 관리자 PIN에 의한 Set 커맨드, Get 커맨드의 권한의 일례를 도시한다.
도 22는 제6 실시 형태의 스토리지 장치의 구성의 일례를 도시한다.
도 23은 제6 실시 형태에 있어서의 Set 커맨드, Get 커맨드의 발행 권한의 일례를 도시한다.
이하, 도면을 참조하여 실시 형태를 설명한다. 이하의 설명은, 실시 형태의 기술적 사상을 구체화하기 위한 장치나 방법을 예시하는 것이며, 실시 형태의 기술적 사상은 이하에 설명하는 구성 부품의 구조, 배치 등으로 한정되는 것은 아니다. 당업자가 용이하게 상도할 수 있는 변형은, 당연히 개시된 범위에 포함된다. 설명을 보다 명확히 하기 위해, 복수의 도면에 있어서, 대략 동일한 기능 및 구성을 갖는 구성 요소에는 동일한 참조 숫자를 붙이고, 중복된 설명은 생략하는 경우도 있다.
[제1 실시 형태]
도 1은 제1 실시 형태의 스토리지 장치와 호스트 장치의 접속예를 도시한다. 스토리지 장치(12)는 호스트 장치(14)에 접속되고, 호스트 장치(14)로부터 송신되는 데이터를 자신의 기억 매체에 기입하거나, 혹은 기억 매체로부터 판독한 데이터를 호스트 장치(14)로 송신한다. 스토리지 장치(12)와 호스트 장치(14)의 인터페이스는, SCSI, ATA, NVM Express(등록 상표), e·MMC 등이 있다. 스토리지 장치(12)는, 도 1의 (a)에 도시한 바와 같이 호스트 장치(14)에 대하여 일대일로 접속되어도 되고, 도 1의 (b)에 도시한 바와 같이 네트워크(16)를 통해 호스트 장치(14)에 대하여 다대일로 접속되어도 된다. 호스트 장치(14)는, 도 1의 (a)에서는 퍼스널 컴퓨터(이하, PC라고 함) 등의 전자 기기이고, 도 1의 (b)에서는 서버 등이다. 도 1의 (a)에 나타내는 스토리지 장치(12)는 PC 벤더에 의해 PC의 하우징 내에 내장되어도 된다. 1대의 스토리지 장치(12)를 사용하는 유저의 인원수는 1명으로 제한하지 않는다. 1대의 스토리지 장치(12)가 복수의 유저에 의해 사용되는 경우도 있다. 예를 들어, 도 1의 (b)에 도시한 바와 같이 호스트 장치(14)가 다수의 유저에 대하여 가상 머신을 제공하는 서비스를 행하는 경우, 1대의 스토리지 장치(12)가 복수의 영역(예를 들어 Namespace, Range, 파티션)으로 분할되어, 각 영역이 각 유저의 가상 머신이 되는 것이 가능하다.
[개략 구성]
도 2는 스토리지 장치(12)의 구성의 일례를 도시한다. 스토리지 장치(12)는 I/F 처리부(22)를 구비하고, I/F 처리부(22)는 호스트 인터페이스(I/F)를 통해 호스트 장치(14)와 접속된다. I/F 처리부(22)에는, 인증 처리부(102), 인가 허가부(104), 소거 방식 표시부(106), 소거 방식 표시 요구 수신부(108)가 접속된다.
인증 처리부(102)는 스토리지 장치(12)로의 액세스 제어를 행하기 위해 PIN(Personal Identification Number)을 사용하여 유저 인증을 행한다. 인증 처리부(102)에는 PIN 관리부(112)가 접속된다. PIN 관리부(112)는 복수의 PIN, 예를 들어 소유자 PIN(Security Identifier: SID라고도 함)(112a), 관리자 PIN(AdminPIN이라고도 함)(112b), 라벨 PIN(PSID라고도 함)(112c), 유저 PIN(112d) 등을 관리한다. 유저 권한을 계층화하기 위해, 관리자 PIN과 유저 PIN이 설정되어 있다.
유저는 스토리지 장치(12)를 어떠한 이유로 공장 출하시의 상태로 되돌리고자 하는 경우가 있다. 예를 들어, 스토리지 장치(12)를 파기할 때, 데이터 축적부(34)에 저장된 유저 데이터가 스토리지 장치(12)로부터 유출되는 것을 방지하고자 한다. 본 명세서에서, 스토리지 장치(12)를 공장 출하시의 상태로 되돌리는 것을 리셋이라고 한다. 리셋은, 유저 데이터의 소거(판독할 수 없도록 하는 것)와 공장 출하 후에 설정된 PIN의 초기화의 양쪽을 포함한다. 여기에서는, 리셋에는 특정한 PIN, 예를 들어 소유자 PIN 또는 라벨 PIN이 필요한 것으로 한다. 또한, 스토리지 장치(12)는 로크 기능을 구비하고, 로크하거나(언로크 상태로부터 로크 상태로 함) 혹은 언로크(로크 상태로부터 언로크 상태로 함)하기 위해서는 특정한 PIN이 필요한 것으로 한다.
인가 처리부(104)에는 인증 처리부(102)와 로크 관리부(110)와 영역 정보 관리부(114)와 데이터 소거부(118)와 리드/라이트 처리부(122)가 접속된다. 인증 처리부(102)는 호스트 장치(14)로부터 리셋이 지시되면, 지시한 유저를 인증한다. 구체적으로는 입력된 PIN의 값이 PIN 관리부(112)에 저장된 PIN의 값과 일치하는지 체크하는 처리를 행한다. 예를 들어, 호스트 장치(14)로부터 소유자로서 인증 요구를 받은 경우, 인증 요구에 포함되는 PIN의 값이, PIN 관리부(114)에 저장된 소유자 PIN(112a)과 일치하는지 검사를 행하여, 일치하면 성공으로 판정하고, 일치하지 않으면 실패로 판정한다. 인가 처리부(104)는, 커맨드의 발행원(호스트 장치(14)의 유저)이 그 커맨드를 발행할 권한을 갖는지 여부를 판정하고, 그 결과에 따라 커맨드를 로크 관리부(110)와 리드/라이트 처리부(122)와 데이터 소거부(118) 등에 전송한다. 즉, 인가 처리부(104)는, 어떤 커맨드가 어떤 실행 권한으로 실행 가능한지를 판정하는 Table을 관리하고 있으며, 커맨드 수신시에 그 권한으로 실행 가능한 처리인지 여부의 판정 처리를 행한다. 예를 들어, 소유자 PIN과 라벨 PIN으로 인증되어 있는 경우에 한하여, 스토리지 장치(12)를 리셋하기 위한 Revert 커맨드를 실행 가능하다고 인가 처리부(104)가 관리하고 있다고 하자. 이때, 소유자 PIN으로 인증에 성공한 유저가 호스트 장치(14)로부터 스토리지 장치(12)를 리셋하기 위한 Revert 커맨드를 송신했다고 하자. 인가 처리부(104)는 Revert 커맨드의 발행원이 Revert 커맨드를 발행 가능한 권한을 갖는지 판정 처리를 행한다. 이 예에서는 소유자 PIN으로 Revert 커맨드의 실행이 허가되어 있기 때문에, 권한이 있다고 판정한다. 만일 유저 PIN으로 인증에 성공한 유저가 Revert 커맨드를 실행하고자 한 경우에는 권한이 없다고 판정한다. 권한이 있다고 판정된 경우, 스토리지 장치(12)를 리셋하기 위해 Revert 커맨드를 실행 데이터 소거부(118)에 전송하고, 데이터 소거를 실행시킴과 함께, PIN을 초기값으로 재설정한다.
또한, 인가 처리부(104)는 언로크 커맨드를 유저 PIN 또는 관리자 PIN으로 인증된 발행원이 발행한 경우, 언로크 커맨드를 로크 관리부(110)에 전송하고, 로크 관리부(110)는 스토리지 장치(12)를 언로크 한다. 로크 관리부(110)는 영역 정보 관리부(114)에서 관리되는 데이터 축적부(34)의 유저 영역 전체의 로크·언로크가 가능하도록 설정할 수 있게 되어 있어도 되고, 데이터 축적부(34)의 특정한 영역의 로크·언로크를 설정할 수 있게 되어 있어도 된다. 또한, 라벨 PIN을 사용하는 인증에 성공한 발행원이 언로크 커맨드를 발행하여도, 인가 처리부(104)는 언로크 커맨드를 로크 관리부(110)에 전송하지 않으므로, 스토리지 장치(12)는 언로크되지 않는다.
소거 방식 표시부(106)에는 소거 방식 표시 요구 수신부(108)와 소거 정보 관리부(124)가 접속된다. 소거 방식 표시 요구 수신부(108)는 호스트 장치(14)로부터의 데이터 소거 방식 문의를 수신하여, 소거 방식 표시부(106)에 전송한다. 소거 방식 표시부(106)는 스토리지 장치(12)가 서포트하고 있는 데이터 소거의 방식을 호스트 장치(14)에 제시한다.
데이터 소거 방식의 예는, 덮어쓰기 소거, 블록 소거, 언맵, 라이트 포인터 리셋, 크립토 이레이즈(암호키 갱신) 등이 있다. 덮어쓰기 소거란, 소거할 데이터가 보존되어 있는 영역에 대하여 모두 "0"이나 난수에 의해 발생한 데이터를 덮어쓰는 것이다. 블록 소거는 소거할 데이터를 포함하는 블록 전체를 원래의 데이터를 판독 불가능하게 하는 것이다. 언맵은 데이터가 기억 매체의 어느 블록에 기억되어 있는지를 나타내는 맵핑 Table을 당해 데이터에 대하여 리셋하는 것이다. 라이트 포인터 리셋은 데이터가 기억 매체의 어느 블록에 기억되어 있는지를 나타내는 포인터를 리셋하는 것이다. 크립토 이레이즈는 스토리지 장치(12)가 갖는 키에 의해 입력 데이터를 암호화하고, 데이터 축적부(34)에 암호화 데이터를 기억하고 있는 경우, 데이터의 암호에 사용한 키를 갱신하는 것이다. 이에 의해, 암호화 데이터를 복호할 수 없으며, 입력한 데이터를 판독할 수 없다.
소거 정보 관리부(124)는 데이터 소거부(118)에 접속된다. 소거 정보 관리부(124)는 데이터 소거 중에 리드/라이트 커맨드를 접수하지 않고, 데이터 소거 중의 전원 끊김에 대비하여 데이터 소거 처리의 스테이터스를 관리하여, 전원 끊김시의 재기동 후에 어디까지 데이터를 소거했는지를 나타내는 정보를 호스트 장치(12)에 제시한다.
데이터 소거부(118)와 리드/라이트 처리부(122)가 데이터 축적부(34)에 접속된다. 데이터 축적부(34)는 대용량의 불휘발성의 기억 매체, 예를 들어 플래시 메모리, 하드 디스크를 포함한다. 데이터 축적부(34)는 호스트 장치(14)로부터의 리드 명령, 라이트 명령을 접수하고, 데이터의 기입, 읽어들이기를 행한다.
스토리지 장치(12)의 각 부는, CPU(24)에 의해 제어된다.
[PIN]
도 3을 참조하여 PIN에 대하여 설명한다. 도 3의 (a)는 PIN의 종류에 따라 발행할 수 있는 커맨드를 나타낸다. 소유자 PIN은 액티베이트/Revert 커맨드를 발행할 권한을 갖는다. 어떤 PIN이 무슨 커맨드를 발행할 수 있는지는 인가 처리부(104)에서 관리되고 있다. Activate 커맨드는 로크 기능을 유효화하기 위한 커맨드이다. Revert 커맨드는 PIN을 초기값으로 설정하고, 로크 기능을 무효로 하고, 데이터를 강제 소거하기 위한 커맨드이다. 관리자 PIN(AdminPIN이라고도 함)은 Revert SP 커맨드를 발행할 권한을 갖는다. Revert SP 커맨드는 PIN을 초기값으로 설정하고, 로크 기능을 무효로 하기 위한 커맨드이며, 데이터 강제 소거에 대해서는 소거할지 여부를 파라미터로 지정할 수 있는 커맨드이다. 라벨 PIN(PSID라고도 함)은 Revert 커맨드를 발행할 권한을 갖는다. 유저 PIN은 커맨드를 발행할 권한을 갖지 않지만, 유저에게 할당된 영역을 언로크할 수 있다.
도 3의 (b)는 스토리지 장치(12)의 리셋에 관한 것이며, 커맨드에 의해 개시되는 액션, 즉 초기화할 PIN의 종류와 소거할 데이터의 종류를 나타낸다. Activate 커맨드는 리셋이 아니라, 그 반대인 활성화(activate)에 관한 것이며, PIN의 초기화와 데이터의 소거는 하지 않는다. Revert 커맨드는 데이터 소거를 행하고, 소유자 PIN과 관리자 PIN을 초기화한다. Revert SP 커맨드는 데이터 소거를 행하고, 관리자 PIN을 초기화한다. Revert SP 커맨드는 데이터 소거할지, 하지 않고 남길지를 커맨드 발행시에 파라미터에 의해 지정 가능하다. Revert 커맨드에서는 데이터 소거함/하지 않음이라는 파라미터는 없고, 항상 데이터 소거된다.
커맨드에는 그 이외에도 PIN을 설정하기 위한 Set 커맨드가 있다. Set 커맨드는 어떤 종류의 PIN을 설정할지를 나타내는 파라미터를 포함하고, 파라미터의 값, 즉 어떤 종류의 PIN을 설정할지에 따라 발행자 권한이 상이하다. 예를 들어, 유저 PIN을 설정하는 Set 커맨드를 발행할 수 있는 것은 관리자와 유저이며, 소유자는 유저 PIN을 설정하는 권한을 갖지 않는다. 그 때문에, 라벨 PIN은 유저 PIN을 설정하는 Set 커맨드에 대하여 인증이 실패한다. 또한, Activate 커맨드, Revert 커맨드, Revert SP 커맨드는 파라미터에 상관없이 발행 권한이 정해져 있다.
제1 실시 형태는 2종류의 라벨 PIN(PSID)을 설정 가능하다. 도 3의 (c)에 도시한 바와 같이, 제1 종류의 라벨 PIN(PSID(1))은 상술한 스토리지 장치(14)의 리셋을 위한 PIN이며, 기억 영역 전체의 데이터 소거와 소유자 PIN과 관리자 PIN의 초기화를 행한다. 제2 종류의 라벨 PIN은 유저마다의 라벨 PIN(PSID(2), PSID(3), …)이다. 기억 영역이 복수의 유저(여기서는, 유저 1, 유저 2)에게 할당되어 있다고 하자. 유저 1의 라벨 PIN(PSID(2))에 의해 발행되는 Revert 커맨드는 유저 1에게 할당된 영역의 데이터 소거와 유저 1의 유저 PIN의 초기화를 행한다. 유저 2의 라벨 PIN(PSID(3))에 의해 발행되는 Revert 커맨드는 유저 2에게 할당된 영역의 데이터 소거와 유저 2의 유저 PIN의 초기화를 행한다. 바꾸어 말하면, 유저 1의 라벨 PIN(PSID(2))에 의해 발행되는 Revert 커맨드는 유저 2에게 할당된 영역의 데이터 소거와 유저 2의 유저 PIN의 초기화를 행할 수는 없다. 유저 2의 라벨 PIN(PSID(3))에 의해 발행되는 Revert 커맨드는 유저 1에게 할당된 영역의 데이터 소거와 유저 1의 유저 PIN의 초기화를 행할 수는 없다.
이에 의해, 유저마다의 시큐리티를 향상시킬 수 있다.
관리자 PIN은 스토리지 장치(12)를 공장 출하시의 상태로 리셋할 수 있지만, 관리자 PIN의 분실에 대비하여, 리셋용의 라벨 PIN이 스토리지 장치(12)의 어딘가, 예를 들어 스토리지 장치의 하우징에 부착되는 명판 라벨에 인쇄되어 있는 경우가 있다. 예를 들어, 기억 영역이 복수의 유저 1, 유저 2에게 할당되어 있는 경우, PSID(1), PSID(2), PSID(3)이 명판 라벨에 인쇄되어 있는 경우가 있다.
라벨 PIN을 스토리지 장치(12)에 인쇄하지 않고, PC 벤더나 유저에게 알리는 방법을 채용해도 된다. 예를 들어, PC 벤더가 유저에게 Web 사이트를 제공하고, PC의 시리얼 번호를 입력하면 라벨 PIN을 표시하도록 해도 된다. 또한, 마찬가지로 스토리지 장치의 벤더가 유저에게 Web 사이트를 제공하고, 스토리지 장치의 시리얼 번호를 입력하면 라벨 PIN을 표시하도록 해도 된다. 도 1의 (b)에 도시한 바와 같이, 서버와 같은 호스트 장치(14)에 복수의 스토리지 장치(12)가 접속되고, 서버 내의 스토리지 장치(12)를 일괄하여 리셋시키고자 하는 경우에 대비하여, 스토리지 장치(12)의 벤더가 복수의 스토리지 장치(12)에 대하여 동일한 값의 라벨 PIN을 설정하고, 서버 벤더에 대하여 전자 메일 등으로 라벨 PIN의 값을 통지해도 된다.
[스토리지 장치의 상태 천이]
도 4는 스토리지 장치(12)의 상태 천이의 일례를 도시한다. 공장 출하시에는 Inactive 상태(40A)이다. Inactive 상태(40A)는 관리자 PIN, 유저 PIN을 설정할 수 없는 상태이며, 로크 기능이 무효인 상태이다. SID(소유자 PIN)는 초기값이다. SID의 초기값으로서 MSID PIN이 정의되어 있는 경우도 있다. MSID PIN은 Get 커맨드를 사용하여 누구나 취득할 수 있다. SID의 초기값의 유저에 대한 통지 방법은 커맨드를 사용하는 것에 한정되지 않고, SID의 초기값을 매뉴얼에 기재해 두거나, SID의 초기값을 명판 라벨에 인쇄해 두는 것도 가능하다. 공장으로부터 출하된 직후의 스토리지 장치(12)는 SID의 초기값, 예를 들어 MSID PIN을 사용하여, SID로서 인증한다. SID의 초기값은 MSID PIN이므로, 인증은 성공한다. 그 후, SID를 초기값으로부터 임의의 값(소유자가 선호하는 PIN의 값)으로 설정할 수 있다.
스토리지 장치(12)는 Inactive 상태(40A)인 채로 예를 들어 PC 벤더에게 출하되고, PC 벤더는, 예를 들어 상기 방법으로 SID를 설정한다고 상정한다. Inactive 상태(40A)의 스토리지 장치(12)는 호스트 장치(14)로부터 SID를 설정하기 위한 Set 커맨드를 수신하면, Set 커맨드의 발행원 유저의 권한을 체크한다. Set 커맨드는 설정하고자 하는 SID를 파라미터에 포함한다. SID를 설정할 수 있는 권한은 소유자이다. 소유자로부터 Set 커맨드가 발행된 경우, SID가 설정된다. Inactive 상태(40B)에서는, SID는 Set 커맨드를 사용하여 소유자에 의해 설정된 값(초기값이 아님)이다.
Inactive 상태(40B)의 스토리지 장치(12)는 호스트 장치(14)로부터 Activate 커맨드를 수신하면, Activate 커맨드의 발행원 유저를 체크한다. Activate 커맨드는 스토리지 장치(12)를 Active 상태로 천이시키기 위한 커맨드이며, 발행 권한은 도 3의 (a)에 도시한 바와 같이 소유자이다. 소유자로부터 Activate 커맨드가 발행된 경우, 스토리지 장치(12)는 Active 상태(40C)가 된다. Active 상태(40C)에서는 관리자 PIN, 유저 PIN이 초기값이 되고, 로크 기능이 유효한 상태이다.
예를 들어 PC에 내장된 스토리지 장치(12)는 Active 상태(40C)인 채로 엔드 유저에게 출하되고, 엔드 유저측에서 관리자 PIN 혹은 유저 PIN을 설정한다고 상정한다. Active 상태(40C)의 스토리지 장치(12)는 호스트 장치(14)로부터 관리자 PIN을 설정하기 위한 Set 커맨드 혹은 유저 PIN을 설정하기 위한 Set 커맨드를 수신하면, Set 커맨드의 발행원 유저를 체크한다. Set 커맨드는 설정하고자 하는 관리자 PIN 또는 유저 PIN을 파라미터에 포함한다. 관리자 PIN을 설정할 수 있는 권한은 관리자에게 있다. 유저 PIN을 설정할 수 있는 권한은 관리자와 소유자이다. Set 커맨드가 발행 권한이 있는 유저로부터 발행된 경우, Set 커맨드를 사용하여 엔드 유저에 의해 관리자 PIN 혹은 유저 PIN이 설정(초기값이 아닌 상태)되어, 스토리지 장치(12)는 Active 상태(40D)가 된다.
Active 상태(40D)의 스토리지 장치(12)는 호스트 장치(14)로부터 스토리지 장치(12)를 리셋하기 위한 Revert 커맨드를 수신하면, Revert 커맨드의 발행원 유저를 체크한다. Revert 커맨드를 발행할 수 있는 권한은 소유자 PIN 혹은 라벨 PIN을 알고 있는 유저다. Revert 커맨드가 권한이 있는 유저로부터 발행된 경우, 데이터가 소거되고, 소유자 PIN, 관리자 PIN, 유저 PIN이 초기화되어, 스토리지 장치(12)는 Inactive 상태(공장 출하시)(40A)가 된다.
한편, Active 상태(40D)의 스토리지 장치(12)는 호스트 장치(14)로부터 스토리지 장치(12)를 리셋하기 위한 Revert SP 커맨드를 수신하면, Revert SP 커맨드의 발행원 유저를 체크한다. Revert SP 커맨드를 발행할 수 있는 권한은 관리자이다. Revert SP 커맨드가 권한이 있는 유저로부터 발행된 경우, 데이터가 소거되고, 관리자 PIN, 유저 PIN이 초기화되어, 스토리지 장치(12)는 Inactive 상태(40B)가 된다. 또한, Revert SP 커맨드에 의한 리셋 후에도 스토리지 장치는 Inactive 상태가 아니라 Active 상태에 머물도록 되어 있어도 된다. 또한, PIN이 초기화되면, 자동적으로 언로크된다. 소유자 PIN은 Revert 커맨드에 의해 PIN 초기화가 가능하므로, 언로크도 가능하다. 단, Revert 커맨드에 의해 데이터는 소거되므로, 언로크 후에는 유저가 기록한 데이터는 남아있지 않다.
라벨 PIN도 Revert 커맨드에 의해 PIN 초기화가 가능하므로, 언로크도 가능하다. 단, Revert 커맨드에 의해 데이터는 소거되므로, 언로크 후에는 유저가 기록한 데이터는 남아있지 않다.
스토리지 장치(12)는 Revert 커맨드를 수신하면, 내부 처리에 의해 데이터 소거를 행함과 동시에 언로크도 행한다. 단, 엄밀하게는 어느 한쪽이 먼저 실행되고, 다른 쪽이 나중에 실행된다. 전원 끊김을 고려하면, 데이터 소거한 후 언로크하는 편이 안전하다. 언로크하여 데이터 소거 직전에 전원 끊김이 발생하면, 데이터 소거 처리가 행해지지 않은 채 언로크되어 버릴 가능성이 있기 때문에다. 단, 전원 끊김의 발생시에 이러한 경우가 발생하지 않도록 대책을 강구하면, 언로크한 후 데이터 소거해도 된다.
[데이터 소거 시퀀스]
도 5a, 도 5b는 스토리지 장치(12)를 리셋하기 위한 데이터 소거 시퀀스의 일례를 도시한다. 리셋에 앞서 미리 호스트 장치(14)는 스토리지 장치(12)에, 스토리지 장치(12)가 서포트하고 있는 소거 방식을 문의하기 위한 소거 방식 표시 요구를 송신한다. 이 송신 타이밍의 일례는 호스트 장치(14)의 부팅시이다.
소거 방식 표시 요구 수신부(108)에서 수신된 소거 방식 표시 요구는 소거 방식 표시부(106)에 보내진다. 스텝 50A에서 소거 방식 표시부(106)는 서포트하고 있는 하나 또는 복수의 소거 방식을 나타내는 정보를 소거 정보 관리부(124)로부터 취득한다. 소거 방식 표시부(106)는 취득한 하나 또는 복수의 소거 방식을 나타내는 소거 방식 응답 정보를 호스트 장치(14)로 반송한다.
도 6을 참조하여 소거 방식 표시 요구와 소거 방식 응답 정보의 일례를 설명한다. 여기에서는, TCG Storage, Security Subsystem Class: Opal, Specification Version 2.01, Revision 1.00, August 5, 2015, URL:https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf(2017년 8월 29일 검색)에 정의되어 있는 Level 0 Discovery Header와 Level 0 Discovery Response를 응용하고 있다. 도 6의 (a)는 Level 0 Discovery Header를 이용하는 소거 방식 표시 요구의 일례를 도시한다. Level 0 Discovery Header는 스토리지 장치(12)에 대하여 Level 0 Discovery Response를 회신하도록 지시할 뿐이고, 헤더부뿐이지 콘텐츠부는 포함하지 않는다.
도 6의 (b)는 Level 0 Discovery Response를 응용하는 소거 방식 응답 정보의 일례를 도시한다. Level 0 Discovery Response는 도 6의 (a)에 도시하는 Level 0 Discovery Header와 콘텐츠부를 포함한다. 콘텐츠부인 퓨처 기술자에는 복수의 퓨처 기술자가 정의되어 있다.
도 7의 (a)에 도시한 바와 같이, 퓨처 기술자의 하나가 소거 방식이다. 퓨처 기술자의 데이터 구조의 일례를 도 7의 (b)에 나타낸다. 퓨처 기술자는 헤더부와 콘텐츠부로 구성되며, 바이트(0 내지 3)가 헤더부이고, 바이트(4 내지 n)가 콘텐츠부이다. 헤더부는 퓨처 코드를 포함한다. 스토리지 장치(12)가 서포트하고 있는 소거 방식의 퓨처 기술 데이터는 바이트(4)에 기술된다. 바이트(4)의 각 비트에 도 7의 (c)에 도시한 바와 같이 소거 방식이 할당되어 있다. 각 비트가 "1"이면, 그 소거 방식을 서포트하고 있음을 나타내고, "0"이면 그 소거 방식은 서포트하고 있지 않음을 나타낸다. 예를 들어, 퓨처 기술 데이터의 비트(0)가 "1"이면, 덮어쓰기 소거(Overwrite Data Erasure) 방식을 서포트하고 있음을 나타내고, 비트(1)가 "1"이면 블록 소거 방식(Block Erasure)을 서포트하고 있음을 나타내고, 비트(2)가 "1"이면 언맵 방식(Unmap)을 서포트하고 있음을 나타내고, 비트(3)가 "1"이면 라이트 포인터 리셋 방식(Reset Write Pointers)을 서포트하고 있음을 나타내고, 비트(4)가 "1"이면 암호키 갱신(크립토 이레이즈) 방식(Crypto Erasure)을 서포트하고 있음을 나타내는 것으로 한다.
도 5a, 도 5b에 나타내는 소거 시퀀스의 설명으로 되돌아가, 호스트 장치(14)는 스토리지 장치(12)로부터 하나의 소거 방식을 나타내는 정보가 반송된 경우, 당해 소거 방식을 지정하고, 복수의 소거 방식을 나타내는 정보가 반송된 경우, 그 중에서 하나를 선택하고, 선택한 소거 방식을 나타내는 정보를 스토리지 장치(12)에 통지하는 것이 상정되어 있다. 단, 호스트 장치(14)가 그 이외의 소거 방식을 지정할 가능성도 있다. 호스트 장치(14)는, 예를 들어 그 파라미터에 소거 방식 정보를 포함하는 Set 커맨드를 사용하여 소거 방식을 스토리지 장치(12)에 통지해도 된다.
스토리지 장치(12)에서 수신된 소거 방식 지정 정보는 인증 처리부(102)에 공급된다. 인증 처리부(102)는 스텝 50B에서 소거 방식을 지정하는 Set 커맨드의 발행원 유저를 인증한다. 인가 처리부(104)는 커맨드의 발행원이 커맨드의 발행 권한이 있는지 여부를 체크하기 위해 어느 PIN을 사용하여 인증된 발행원(authority)에 의해 Set 커맨드가 송신되었는지를 스텝 50C에서 체크한다. 라벨 PIN 또는 유저 PIN을 사용하여 인증된 발행원에 의해 Set 커맨드가 발행된 경우에는, 스텝 50D에서 인가 실패가 되고, 인가 처리부(104)는 인가 실패를 나타내는 정보를 호스트 장치(14)에 송신한다. 소유자 PIN 또는 관리자 PIN을 사용하여 인증된 발행원에 의해 Set 커맨드가 발행된 경우에는 인가 성공이 된다. 인가 성공의 경우, 소거 정보 관리부(124)는 호스트 장치(14)에 의해 지정된 소거 방식은 자신이 서포트하고 있는 소거 방식인지 여부를 스텝 50C-1에서 체크한다. 호스트 장치(14)에 의해 지정된 소거 방식을 서포트하고 있지 않은 경우(스텝 50C-1의 아니오), 스텝 50D-1에서 소거 정보 관리부(124)는 지정 에러를 나타내는 정보를 호스트 장치(14)에 송신한다. 호스트 장치(14)에 의해 지정된 소거 방식을 서포트하고 있는 경우(스텝 50C-1의 예), 소거 정보 관리부(124)는 스텝 50E에서 호스트 장치(14)에 의해 지정된 소거 방식을 데이터 소거부(118)에 설정한다.
그 후, 스토리지 장치(12)를 리셋할 필요가 발생하면, 호스트 장치(14)는 스토리지 장치(12)에 리셋 지시(소거 지시)를 통지한다. 호스트 장치(14)는, 예를 들어 Revert 커맨드 혹은 Revert SP 커맨드를 사용하여 소거 지시를 스토리지 장치(12)에 통지해도 된다.
스토리지 장치(12)에서 수신된 소거 지시는 인증 처리부(102)에 공급된다. 인증 처리부(102)는 스텝 50F에서 소거 지시인 Revert 커맨드 혹은 Revert SP 커맨드의 발행원 유저를 인증한다. 인가 처리부(104)는 스텝 50G에서 수신한 커맨드는 Revert 커맨드인지 Revert SP 커맨드인지를 체크한다.
Revert 커맨드를 수신한 경우, 인가 처리부(104)는 발행원이 Revert 커맨드를 발행할 권한이 있는지 여부를 체크하기 위해, 어느 PIN을 사용하여 인증된 발행원에 의해 Revert 커맨드가 송신되었는지를 스텝 50H에서 체크한다. 관리자 PIN 또는 유저 PIN을 사용하여 인증된 발행원에 의해 Revert 커맨드가 발행된 경우에는, 스텝 50I에서 인가 실패가 되고, 데이터 소거 및 PIN의 초기화는 행해지지 않는다. 소유자 PIN 또는 라벨 PIN을 사용하여 인증된 발행원에 의해 Revert 커맨드가 발행된 경우에는 인가 성공이 되고, 스텝 50J에서 데이터 소거부(118)가 데이터 소거를 실행하고, PIN 관리부(112)가 소유자 PIN, 관리자 PIN, 유저 PIN을 초기화한다. 이에 의해, 스토리지 장치(12)는 도 4에 도시한 Inactive 상태(공장 출하시)(40A)가 된다.
Revert SP 커맨드를 수신한 경우, 인가 처리부(104)는 발행원이 Revert SP 커맨드를 발행할 권한이 있는지 여부를 체크하기 위해, 어느 PIN을 사용하여 인증된 발행원에 의해 Revert SP 커맨드가 송신되었는지를 스텝 50K에서 체크한다. 소유자 PIN, 라벨 PIN 또는 유저 PIN을 사용하여 인증된 발행원에 의해 Revert SP 커맨드가 발행된 경우에는, 스텝 50L에서 인가 실패가 되고, 데이터 소거 및 PIN의 초기화는 행해지지 않는다. 관리자 PIN을 사용하여 인증된 발행원에 의해 Revert SP 커맨드가 발행된 경우에는 인가 성공이 되고, Revert SP 커맨드에 있어서 데이터 소거가 파라미터로 지정되어 있는지 여부가 스텝 50M에서 체크된다. 데이터 소거가 지정되어 있는 경우(스텝 50M의 예), 스텝 50J에서 데이터 소거부(118)가 데이터 소거를 실행하고, PIN 관리부(112)가 관리자 PIN, 유저 PIN을 초기화한다. 데이터 소거가 지정되어 있지 않은 경우(스텝 50M의 아니오), 스텝 50N에서 PIN 관리부(112)가 관리자 PIN, 유저 PIN을 초기화한다. 이에 의해, 스토리지 장치(12)는 도 4에 도시한 Inactive 상태(40B)가 된다.
이상 설명한 바와 같이, 스토리지 장치(12)는 자신이 서포트하고 있는 소거 방식을 호스트 장치(14)에 알리고, 호스트 장치(14)가 그 정보에 기초하여 스토리지 장치(12)에 대하여 소거 방식을 지정할 수 있다. 스토리지 장치(12)는 지정자의 권한을 체크하고, 권한이 있는 경우, 지정된 소거 방식을 설정한다. 실제의 리셋시에는, 호스트 장치(14)는 스토리지 장치에 리셋 지시를 내린다. 스토리지 장치(12)는 리셋 지시자의 권한을 체크하고, 권한이 있는 경우, 먼저 설정된 소거 방식에 따른 데이터의 소거와, PIN의 초기화를 행한다.
이에 의해, 암호화되지 않은 데이터를 저장하는 스토리지 장치(12)도 리셋할 수 있다. 리셋된 스토리지 장치(12)로부터는 폐기 후에 데이터가 유출될 일이 없어, 시큐리티를 확보할 수 있다. 스토리지 장치(12)는 암호화 데이터를 저장하지 않으므로, 호스트 장치(14)가 암호화 애플리케이션을 구비할 필요가 없어, 호스트 장치(14)의 처리 부하가 낮다. 암호화 회로가 불필요하기 때문에, 스토리지 장치(12)의 제조 비용을 억제할 수 있다. 스토리지 장치(12)는 기억 영역 전체에서 균일한 액세스 권한(언로크)을 설정하는 것이 아니라, 기억 영역을 LBA 범위에 따라 복수의 영역(Range라고도 함)으로 분할하고, Range마다 상이한 액세스 권한(언로크에 필요한 PIN)을 설정 가능하다. Range의 개념은 도 13을 참조하여 후술한다. 예를 들어, 도 8에 도시한 바와 같이, Range(2)는 누구나 액세스 가능한 언로크 상태로 하고, Range(1)는 스토리지 장치를 통상 사용하는 유저와 관리자만이 언로크할 수 있는 로크 상태로 하고, Range(3)는 관리자만이 언로크할 수 있는 로크 상태로 할 수 있다. 이와 같이 스토리지 장치(12)의 기억 영역을 복수의 Range로 분할함으로써, 복수의 유저가 서로의 시큐리티를 유지한 채 스토리지 장치(12)를 공유할 수 있다.
[소거 처리의 관리]
도 9의 (a)는 전원 끊김 발생에 대비한 소거 처리의 일례의 흐름도이다. 스토리지 장치(12)는 스텝 222에서 Revert/Revert SP 커맨드("/"는 "혹은"을 의미함)를 수신한다. 스텝 224에서 인가 처리부(104)는 커맨드의 발행 권한을 체크하고, 발행 권한이 있는 유저로부터 커맨드가 발행되었는지 여부를 스텝 226에서 판정한다. 발행 권한이 있는 유저로부터 커맨드가 발행되지 않은 경우, 스텝 228에서 인가 실패가 된다.
발행 권한이 있는 유저로부터 커맨드가 발행된 경우, 스텝 230에서 인가 처리부(104)는 데이터 소거부(118)로 Revert/Revert SP 커맨드를 보낸다. 스텝 232에서 데이터 소거부(118)는 Revert/Revert SP 커맨드를 해석하여, 어떤 Range에 해당하는 Revert/Revert SP 커맨드인지를 판정한다. 데이터 소거부(118)는 판정 결과의 Range에 대응하는 LBA 범위, 예를 들어 LBA X-Y를 취득하고, 그 최초의 LBA X로부터 데이터 소거를 개시한다. 소거 정보 관리부(124)는 데이터를 소거하는 동안, 스텝 234에서 소거 완료 LBA를 불휘발성 메모리에 기입한다. 이 불휘발성 메모리는 소거 정보 관리부(124)에 설치한 플래시 메모리에 의해 실현해도 되고, 데이터 축적부(34)의 일부에 의해 실현해도 된다. 데이터 소거부(118)는 판정 결과의 Range에 대응하는 LBA 범위의 데이터 소거가 완료되었는지를 스텝 236에서 판단하여, 완료되지 않은 경우, 데이터 소거를 계속한다. 완료된 경우, 스텝 238에서 데이터 소거부(118)는 소거 정보 관리부(124)에 Revert/Revert SP 커맨드의 처리 완료를 나타내는 완료 플래그를 불휘발성 메모리에 기입시킨다.
이와 같이, Revert/Revert SP 커맨드의 처리 중에 전원 끊김이 발생하여도, Revert/Revert SP 커맨드의 처리가 미완료인 것 및 소거 완료 LBA가 불휘발성 메모리에 기억되어 있으므로, 스토리지 장치(12)는 미완료 Revert/Revert SP 커맨드를 전원 복구시에 데이터 미소거 LBA로부터 효율적으로 재개할 수 있다. 재개 후에 처음부터 데이터 소거를 행할 필요가 없으므로, 데이터 소거 시간이 불필요하게 길어지는 일이 없다.
도 9의 (b)는 전원 복구시 Revert/Revert SP 커맨드의 재개 처리의 일례를 도시하는 흐름도이다. 전원을 온하면, 스텝 242에서 소거 정보 관리부(124)는 미완료 Revert/Revert SP 커맨드가 있는지 여부를 판정한다. 미완료 Revert/Revert SP 커맨드가 없을 경우, 스텝 246에서 통상 처리가 행해진다. 미완료 Revert/Revert SP 커맨드가 있을 경우, 스텝 244에서 소거 정보 관리부(124)는 불휘발성 메모리로부터 소거 완료 LBA를 판독하고, 소거 완료 LBA를 데이터 소거부(118)의 소거 개시 어드레스에 설정하여, 데이터 소거부(118)에 미소거 LBA로부터 데이터 소거를 개시시킨다. 소거 정보 관리부(124)는 데이터를 소거하는 동안, 스텝 248에서 소거 완료 LBA를 불휘발성 메모리에 기입한다. 데이터 소거부(118)는 현재 소거 중인 Range의 데이터 소거가 완료되었는지를 스텝 250에서 판단하여, 완료되지 않은 경우, 데이터 소거를 계속한다. 완료된 경우, 스텝 252에서 데이터 소거부(118)는 소거 정보 관리부(124)에 Revert/Revert SP 커맨드의 처리 완료를 나타내는 완료 플래그를 불휘발성 메모리에 기입시킨다. 그 후, 스텝 254에서 통상 처리가 행해진다.
도 9에 도시한 소거 처리는, 도 5a, 도 5b에 도시한 바와 같이, 스토리지 장치(12)가 호스트 장치(14)에 자신이 서포트하고 있는 소거 방식을 통지하고, 호스트 장치(14)가 소거 방식을 지정한 후에 실행해도 되고, 도 5a, 도 5b에 도시한 수순과는 무관하게 단독으로 실행해도 된다.
[데이터 소거의 배타적 제어]
도 10 내지 도 12를 참조하여, 실행 중인 데이터 소거 처리를 우선하는 배타적 제어를 설명한다.
도 10은 소거 중에 액세스를 거부하여, 소거 처리를 우선하는 처리의 일례를 도시하는 흐름도이다. 스토리지 장치(12)는 스텝 262에서 Revert/Revert SP 커맨드를 수신한다. 스텝 264에서 인가 처리부(104)는 커맨드의 발행 권한을 체크하고, 발행 권한이 있는 유저로부터 커맨드가 발행되었는지 여부를 스텝 266에서 판정한다. 발행 권한이 있는 유저로부터 커맨드가 발행되지 않은 경우, 스텝 268에서 인가 실패가 된다.
발행 권한이 있는 유저로부터 커맨드가 발행된 경우, 스토리지 장치(12)는 커맨드의 실행 중에 스텝 270에서 호스트 장치(14)로부터 리드/라이트 커맨드를 수신했는지 여부를 판정한다. 리드/라이트 커맨드를 수신한 경우, 스토리지 장치(12)는 커맨드를 큐에 저장 하거나, 혹은 에러를 호스트 장치(14)로 반송한다. 큐는 예를 들어 리드/라이트 처리부(122) 내에 설치해도 된다. 리드/라이트 커맨드를 수신하지 않는 경우, 스토리지 장치(12)는 스텝 274에서 커맨드의 실행을 계속한다.
도 10에 도시한 소거 처리는, 도 5a, 도 5b에 도시한 바와 같이, 스토리지 장치(12)가 호스트 장치(14)에 자신이 서포트하고 있는 소거 방식을 통지하고, 호스트 장치(14)가 소거 방식을 지정한 후에 실행해도 되고, 도 5a, 도 5b에 도시한 수순과는 무관하게 단독으로 실행해도 된다.
도 11은 데이터 소거 처리의 배타적 제어의 제2 예로서의 소거 중인 Range로의 액세스 거부(소거 중인 영역 이외의 영역으로의 액세스는 가능)의 일례를 도시하는 흐름도이다. 도 10의 처리에서는 기억 영역에 복수의 영역이 정의되어 있지 않지만, 도 11의 처리에서는 기억 영역에 복수의 영역(Range)이 정의되어 있는 것으로 한다. 스토리지 장치(12)는 스텝 282에서 Revert SP 커맨드를 수신한다. 스텝 284에서 인가 처리부(104)는 커맨드의 발행 권한을 체크하고, 발행 권한이 있는 유저로부터 커맨드가 발행되었는지 여부를 스텝 286에서 판정한다. 발행 권한이 있는 유저로부터 커맨드가 발행되지 않은 경우, 스텝 288에서 인가 실패가 된다.
발행 권한이 있는 유저로부터 커맨드가 발행된 경우, 스텝 290에서 인가 처리부(104)는 데이터 소거부(118)로 Revert SP 커맨드를 보낸다. 스텝 292에서 데이터 소거부(118)는 Revert SP 커맨드를 해석하여, 어느 Range에 해당하는 Revert SP 커맨드인지를 판정한다. 데이터 소거부(118)는 판정 결과의 Range에 대응하는 LBA 범위의 데이터 소거를 개시한다. 스토리지 장치(12)는 데이터 소거의 실행 중에 스텝 294에서 호스트 장치(14)로부터 리드/라이트 커맨드를 수신했는지 여부를 판정한다. 리드/라이트 커맨드를 수신하지 않는 경우, 스토리지 장치(12)는 스텝 296에서 Revert SP 커맨드의 실행을 계속한다.
리드/라이트 커맨드를 수신한 경우, 스토리지 장치(12)는 수신한 리드/라이트 커맨드는 소거 중인 Range에 관한 리드/라이트 커맨드인지 여부를 스텝 298에서 판정한다. 소거 중인 Range에 관한 리드/라이트 커맨드인 경우, 스토리지 치(12)는 스텝 300에서 커맨드를 큐에 저장하거나, 혹은 에러를 호스트 장치(14)로 반송한다. 소거 중인 Range에 관한 리드/라이트 커맨드가 아닌 경우, 스토리지 장치(12)는 스텝 302에서 소거 중인 Range 이외의 Range에 대하여 리드/라이트 커맨드를 실행한다.
이와 같이, 어떤 영역에 대한 데이터 소거가 한창 행해지고 있는 동안에 다른 영역으로의 기입이 행해졌다고 해도, 그 다른 영역에서는 데이터 소거는 행하고 있지 않으므로 통상의 데이터 라이트, 리드는 행할 수 있다. 한편, 데이터 소거를 행하고 있는 영역은, 상술한 바와 같이 소거 이외의 액세스를 실행하지 않는 배타제어를 행하므로, 유저의 기대에 반하여 데이터가 남거나 소거되는 일이 없다.
도 11에 도시한 소거 처리는, 도 5a, 도 5b에 도시한 바와 같이, 스토리지 장치(12)가 호스트 장치(14)에 자신이 서포트하고 있는 소거 방식을 통지하고, 호스트 장치(14)가 소거 방식을 지정한 후에 실행해도 되고, 도 5a, 도 5b에 도시한 수순과는 무관하게 단독으로 실행해도 된다.
도 12는 데이터 소거 처리의 배타적 제어의 제3 예로서의 복수의 Revert/Revert SP 커맨드의 실행 제어의 일례를 도시하는 흐름도이다. 스토리지 장치(12)는 스텝 312에서 제1 Revert/Revert SP 커맨드를 수신한다. 스텝 314에서 인증 처리부(102)는 커맨드의 발행 권한을 체크하고, 발행 권한이 있는 유저로부터 커맨드가 발행되었는지 여부를 스텝 316에서 판정한다. 발행 권한이 있는 유저로부터 커맨드가 발행되지 않은 경우, 스텝 318에서 인가 실패가 된다.
발행 권한이 있는 유저로부터 커맨드가 발행된 경우, 스텝 320에서 인가 처리부(104)는 데이터 소거부(118)로 제1 Revert/Revert SP 커맨드를 보낸다. 스텝 322에서 데이터 소거부(118)는 제1 Revert/Revert SP 커맨드를 해석하여, 어느 Range에 해당하는 Revert/Revert SP 커맨드인지를 판정한다. 데이터 소거부(118)는 판정 결과의 Range에 대응하는 LBA 범위의 데이터 소거를 개시한다. 스토리지 장치(12)는 데이터 소거의 실행 중에 스텝 324에서 제2 Revert/Revert SP 커맨드를 수신했는지 여부를 판정한다. 또한, 스텝 324는 스텝 322 전에 실행해도 된다.
제2 Revert/Revert SP 커맨드를 수신하지 않는 경우, 스토리지 장치(12)는 스텝 328에서 제1 Revert/Revert SP 커맨드의 실행을 계속한다. 제2 Revert/Revert SP 커맨드를 수신한 경우, 스텝 322에서 인증 처리부(102)는 커맨드의 발행 권한을 체크하고, 발행 권한이 있는 유저로부터 커맨드가 발행되었는지 여부를 스텝 334에서 판정한다. 발행 권한이 있는 유저로부터 커맨드가 발행되지 않은 경우, 스텝 336에서 인가 실패가 된다.
발행 권한이 있는 유저로부터 커맨드가 발행된 경우, 스텝 338에서 인가 처리부(104)는 데이터 소거부(118)로 제2 Revert/Revert SP 커맨드를 보낸다. 스텝 342에서 데이터 소거부(118)는 제2 Revert/Revert SP 커맨드를 해석하여, 어느 Range에 해당하는 Revert/Revert SP 커맨드인지를 판정하고, 제1 Revert/Revert SP 커맨드의 Range와 제2 Revert/Revert SP 커맨드의 Range가 상이한지 여부를 판정한다.
제2 Revert/Revert SP 커맨드의 Range와 제1 Revert/Revert SP 커맨드의 Range가 상이한 경우, 데이터 소거부(118)는 스텝 344에서, 수신한 2개의 커맨드가 제1 Revert SP 커맨드와 제2 Revert SP 커맨드였는지 판정한다. 2개의 커맨드가 제1 Revert SP 커맨드와 제2 Revert SP 커맨드인 경우, 상이한 Range에 관한 2개의 Revert SP 커맨드를 수신했으므로, 스텝 346에서 데이터 소거부(118)는 제2 Revert SP 커맨드도 실행한다. 또한, 스텝 346에서 제2 Revert SP 커맨드를 실행하는 대신에, 제2 Revert SP 커맨드의 소거 작업을 큐에 저장해도 된다.
스텝 342에서 제2 Revert/Revert SP 커맨드의 Range와 제1 Revert/Revert SP 커맨드의 Range가 같다고 판정된 경우, 및 스텝 344에서 2개의 커맨드가 제1 Revert SP 커맨드와 제2 Revert SP 커맨드가 아니라고 판정된 경우, 데이터 소거부(118)는 스텝 348에서, 제2 Revert/Revert SP 커맨드의 소거 작업을 큐에 저장하거나, 혹은 에러를 호스트 장치(14)로 반송한다. 제1 커맨드와 제2 커맨드의 조합은, (제1 Revert 커맨드, 제2 Revert 커맨드), (제1 Revert 커맨드, 제2 Revert SP 커맨드), (제1 Revert SP 커맨드, 제2 Revert 커맨드), (제1 Revert SP 커맨드, 제2 Revert SP 커맨드)가 있다. 이 중(제1 Revert SP 커맨드, 제2 Revert SP 커맨드)에 대해서는, 제1, 제2 커맨드의 Range가 상이한 경우에는, 스텝 346에 도시한 바와 같이 제1 Revert SP 커맨드와 함께 제2 Revert SP 커맨드도 실행된다. 다른 (제1 Revert 커맨드, 제2 Revert 커맨드), (제1 Revert 커맨드, 제2 Revert SP 커맨드), (제1 Revert SP 커맨드, 제2 Revert 커맨드)에 대해서는, 제1, 제2 커맨드의 Range가 동일한 경우에도 상이한 경우에도, 스텝 348에 도시한 바와 같이 제2 커맨드는 실행되지 않는다.
이에 의해, 스토리지 장치(12)는 각 Revert/Revert SP 커맨드를 집중하여 실행할 수 있다. 이 때문에, 데이터 소거 시간이 길어지는 일이 없다.
도 12에 도시한 소거 처리는, 도 5a, 도 5b에 도시한 바와 같이, 스토리지 장치(12)가 호스트 장치(14)에 자신이 서포트하고 있는 소거 방식을 통지하고, 호스트 장치(14)가 소거 방식을 지정한 후에 실행해도 되고, 도 5a, 도 5b에 도시한 수순과는 무관하게 단독으로 실행해도 된다.
[Namespace에 의한 복수 영역 소거]
도 13은 스토리지 장치(12)의 기억 영역을 개념적으로 나타낸다. NVM Express, Revision 1.3, May 1, 2017에 Namespace(네임스페이스)가 정의되어 있다. Namespace는 스토리지 장치(12)의 기억 영역 전체를 분할한 부분 영역이며, 구체적으로는 논리 블록의 집합이다. 하나의 스토리지 장치에 대하여 Namespace ID로 식별되는 적어도 하나의 Namespace가 정의 가능하다. 사이즈 n의 Namespace는 논리 블록 어드레스 0 내지 (n-1)의 논리 블록을 포함한다. 각 Namespace 내에는 Namespace Gloval Range가 있고, 각 Namespace Gloval Range는 복수의 Range를 포함한다. 상술한 바와 같이 각 Range에는 각각 상이한 PIN을 설정 가능하다. 복수의 Namespace에 걸치는 Gloval Range가 있다.
또한, 기억 영역 전체를 분할한 부분 영역으로서 파티션이 있지만, 파티션은 호스트 장치(14)가 관리하는 부분 영역이며, Namespace는 스토리지 장치(12)가 관리하는 부분 영역이다. 호스트 장치(14)가 파티션에 액세스할 때에는, 호스트 장치(14)는 액세스 대상의 파티션에 포함되는 논리 어드레스를 지정하지만, Namespace에 액세스할 때에는, 호스트 장치(14)는 액세스 대상의 Namespace를 지정한다. 스토리지 장치(12)의 Range 정보 관리부(114)는 도 13에 도시한 바와 같은 Namespace와 Range의 관계를 관리하고 있다.
도 14의 (a)는 Namespace 단위의 소거의 일례를 도시하는 흐름도이다. 스텝 402에서 스토리지 장치(12)는 호스트 장치(14)로부터 Namespace 단위의 소거 커맨드를 수신한다. 소거 커맨드에는 파라미터를 추가할 수 있으므로, Namespace라는 파라미터를 추가하여, Namespace 단위의 소거 커맨드로 해도 된다. 혹은, 상술한 Revert/Revert SP 커맨드에도 파라미터를 추가할 수 있으므로, Namespace라는 파라미터를 추가하여, Namespace 단위의 소거를 실행시키는 Revert/Revert SP 커맨드를 Namespace 단위의 소거 커맨드로 해도 된다. 또한, 도 14의 (b)에 도시한 바와 같이, Revert/Revert SP 커맨드가 어느 Namespace에 대한 소거 처리를 실행시킬지를 나타내는 Namespace Table을 정의해 두어도 된다. Namespace Table로의 Namespace의 등록은 Set 커맨드를 이용하고, Set 커맨드의 파라미터로 Namespace ID를 지정하는 것이 가능하다. 또한, Namespace 단위의 소거란 하나의 Namespace의 소거와, 전부의 Namespace(즉, Gloval Range)의 소거의 양쪽을 포함한다. 그 때문에, 파라미터로 00h 또는 FFh가 지정된 경우에는, 전부의 Namespace가 지정되었다고 간주해도 된다.
Namespace Table의 설정의 일례를 도 14의 (c)에 나타낸다. 스토리지 장치(12)는 스텝 412에서 Set 커맨드를 수신하면, 파라미터로 지정된 Namespace ID를 Namespace Table에 설정한다. 만약, Namespace ID=00h 또는 FFh인 경우, 모든 Namespace ID가 Namespace Table에 설정된다. 그 후, 스토리지 장치(12)는 호스트 장치로부터 Revert/Revert SP 커맨드를 수신하면(스텝 414), 스텝 416에서 Namespace Table을 참조하여 Namespace ID를 취득하고, 취득한 Namespace ID에 대응하는 Namespace에 포함되는 모든 Range의 데이터 소거를 실행한다.
이에 의해, 스토리지 장치(12)가 복수의 Namespace를 구비하고, 각 Namespace가 복수의 Range를 구비하고 있는 경우, 호스트 장치(14)는 Namespace 단위의 소거를 지시하는 것만으로, 스토리지 장치(12)는 지시된 Namespace에 포함되는 전체 Range의 데이터 소거를 간단하게 행할 수 있다. 호스트 장치(14)는 Namespace와 Range의 관계에 관한 관리가 불필요하므로, 호스트 장치(14)의 애플리케이션의 구성이 심플해져, 비용도 낮출 수 있다.
도 14에 도시한 소거 처리는, 도 5a, 도 5b에 도시한 바와 같이, 스토리지 장치(12)가 호스트 장치(14)에 자신이 서포트하고 있는 소거 방식을 통지하고, 호스트 장치(14)가 소거 방식을 지정한 후에 실행해도 되고, 도 5a, 도 5b에 도시한 수순과는 무관하게 단독으로 실행해도 된다.
또한, 도 9 내지 도 14를 참조하여 몇 가지의 소거 동작을 설명했지만, 이들 소거 동작을 자유롭게 조합하여 실행해도 된다.
제1 실시 형태에 의하면, 스토리지 장치(12)는 자신이 서포트하고 있는 소거 방식을 호스트 장치(14)에 통지하여, 호스트 장치(14)는 소거 방식을 지정하고, 스토리지 장치(12)는 지정된 소거 방식에 의해 데이터를 소거하므로, 암호화되지 않은 데이터를 저장하는 스토리지 장치(12)도 리셋할 수 있다. 리셋된 스토리지 장치(12)로부터는 폐기 후에 데이터가 유출될 일이 없어, 시큐리티를 확보할 수 있다. 스토리지 장치(12)는 암호화 데이터를 저장하지 않으므로, 호스트 장치(14)가 암호화 애플리케이션을 구비할 필요가 없어, 호스트 장치(14)의 처리 부하가 낮다. 암호화 회로가 불필요하기 때문에, 스토리지 장치(12)의 제조 비용을 억제할 수 있다. 이하, 다른 실시 형태에 대하여 설명한다. 다른 실시 형태는 제1 실시 형태와 상이한 개소만 설명하고, 동일한 설명은 생략한다.
[제2 실시 형태]
리셋하고 나서 폐기한 스토리지 장치(12)로부터 데이터가 유출될 가능성은 0은 아니다. 이 가능성을 가능한 한 0으로 하고자 하는 경우, 폐기할 때, 스토리지 장치(12)를 기계적으로 파괴·파쇄하여 스토리지 장치(12)가 물리적으로 존재하지 않는 상태로 하는 것이 생각된다. 기계적으로 파괴·파쇄하는 것은 수고와 시간이 걸린다. 제2 실시 형태에서는, 스토리지 장치(12)를 전기적으로 파괴 상태로 하는 것을 가능하게 한다.
제2 실시 형태에서는, 도 15에 도시한 바와 같이, 스토리지 장치(12)의 상태로서 Active 상태, Inactive 상태에 더하여 Destroy(파괴) 상태가 정의된다. Active 상태의 스토리지 장치(12)에 대하여 호스트 장치(14)가 Destroy 커맨드를 발행하면, 스토리지 장치(12)는 Destroy 상태가 된다.
Destroy 상태로 설정될 수 있는 제2 실시 형태의 스토리지 장치(12A)의 개략을 도 17에 나타낸다. 스토리지 장치(12A)는 도 2에 도시한 스토리지 장치(12)에 대하여 파괴 처리부(116)가 추가되어 있는 점이 상이하다. 파괴 처리부(116)는 I/F 처리부(22)와, 인가 처리부(104)와, 리드/라이트 처리부(122)와, 데이터 소거부(118)에 접속된다. 파괴 처리부(116)는 스토리지 장치(12)가 Destroy 상태인 경우, 리드/라이트 처리부(122)에 커맨드 접수 불가(확인 커맨드는 접수해 가능)를 지시한다.
도 16의 (a)는 스토리지 장치(12)가 Destroy 상태로 설정되는 흐름의 일례를 도시한다. 스토리지 장치(12)는 스텝 422에서 Destroy 커맨드를 수신한다. Destroy 커맨드도 Revert/Revert SP 커맨드와 마찬가지로 발행하기 위해서는 소유자 PIN 또는 관리자 PIN이 필요하며, 소유자 또는 관리자 이외의 유저는 Destroy 커맨드를 발행할 수 없고, 스토리지 장치(12)를 파괴할 수 없는 것으로 한다. 스텝 424에서 인가 처리부(104)는 커맨드의 발행 권한을 체크하고, 발행 권한이 있는 유저로부터 커맨드가 발행되었는지 여부를 스텝 426에서 판정한다. 발행 권한이 있는 유저로부터 커맨드가 발행되지 않은 경우, 스텝 428에서 인증 실패가 된다.
발행 권한이 있는 유저로부터 커맨드가 발행된 경우, 스텝 429에서 스토리지 장치(12)는 호스트 장치(14)로부터의 커맨드 중에서 파괴 상태인지 여부를 문의하는 확인 커맨드는 접수 가능으로 하고, 그 이외의 커맨드(예를 들어 리드/라이트 커맨드)는 접수 불가로 함과 함께, 데이터를 소거하여, PIN을 초기화한다. 그 후, 스토리지 장치(12)는 Destroy 상태가 된다. 그 때문에, Destroy 상태는 Inactive 상태(공장 출하시)(40A)와 마찬가지로, 관리자 PIN, 유저 PIN을 설정할 수 없는 상태이며, 언로크나 로크가 불가능한 상태이다. 또한, 확인 커맨드 이외의 커맨드나 커맨드는 접수 불가이다. 그 때문에, Destroy 상태의 스토리지 장치(12)는 다른 상태, Active 상태나 Inactive 상태로 천이될 수는 없다.
도 16의 (b)는 Destroy 상태시의 스토리지 장치(12)의 동작의 일례를 도시하는 흐름도이다. 스토리지 장치(12)는 커맨드를 수신하면(스텝 434의 예), 수신한 커맨드는 확인 커맨드인지 여부를 스텝 436에서 판정한다. 수신한 커맨드가 확인 커맨드인 경우, 스토리지 장치(12)는 스텝 440에서 파괴 상태인 것을 나타내는 파괴 상태 정보를 호스트 장치(14)로 반송한다. 수신한 커맨드가 확인 커맨드 이외의 커맨드인 경우, 스토리지 장치(12)는 스텝 438에서 에러를 나타내는 에러 정보를 호스트 장치(14)로 반송한다.
이에 의해, 스토리지 장치(12)는 Destroy 상태로의 이행 지시를 받으면, 데이터 축적부(34)의 데이터를 소거하고, PIN을 초기값으로 되돌린다. 스토리지 장치(12)는 Destroy 상태에 있어서는, 데이터 축적부(34)로의 액세스가 불가능하여, 데이터가 유출될 가능성은 지극히 0이다. 또한, 파괴 상태인 경우, 스토리지 장치(12)는 호스트 장치(14)로부터의 확인 커맨드에 응답하여 파괴 상태인 것을 나타내는 응답을 호스트 장치(14)로 반송하므로, 호스트 장치(14)는 스토리지 장치(12)가 파괴 상태인지, 고장 상태 혹은 리셋 상태인지를 식별할 수 있다. 파괴·파쇄 장치가 불필요하므로, 스토리지 장치(12)의 관리 비용이 낮다. 또한, 고장품과의 구별이 되고, 고장품을 잘못 폐기하는 일이 없으므로, 폐기품으로부터의 데이터의 유출을 방지할 수 있다.
또한, Destroy 상태인 경우 리드/라이트 커맨드의 접수를 불가로 했지만, 유출되도 되는 데이터는 리드 액세스를 허가해도 된다. 즉, 유출되도 되는 데이터의 기억 영역은 리드 온리 에어리어로 해도 된다.
[제3 실시 형태]
상술한 설명에서는, 스토리지 장치(12)는 데이터 암호화를 구비하지 않고 평문 데이터를 기억한다. 이어서, 암호화 데이터를 기억하는 스토리지 장치(12)의 제3 실시 형태를 설명한다. 도 18은, 제3 실시 형태의 스토리지 장치(12B)의 개략을 나타낸다. 스토리지 장치(12B)는 도 2에 도시한 스토리지 장치(12)에 대하여 암호 처리부(142)와 키 관리부(140)가 추가되어 있는 점이 상이하다. 키 관리부(140)는 데이터 암호화를 위한 키를 발생하여, 자신에게 저장한다. 키는 난수 발생기에 의해 생성되는 랜덤의 값이다. 암호 처리부(142)는 데이터 축적부(34)에 입력되는 평문 데이터를 이 키를 사용하여 암호화한다. 암호화의 알고리즘의 일례는 Advanced Encryption Standard(AES)와 같은 공지된 공통 키 알고리즘이 있다. 암호 처리부(142)는 데이터 축적부(34)로부터 출력되는 암호화 데이터에 대하여 암호화에 사용한 키와 동일한 키를 사용하여 복호 처리를 행하고, 암호화 데이터를 평문 데이터로 되돌린다. 즉, 데이터는 데이터 기억부(34)에 기입될 때 항상 암호화되고, 데이터 기억부(34)로부터 판독될 때 항상 복호된다.
상술한 바와 같이 호스트 장치(14)는 스토리지 장치(12)가 실행하는 데이터 소거의 방식을 지정하는 기능을 갖는다. 도 7의 (c)에 도시한 바와 같이, 스토리지 장치(12)는 데이터 소거 방식으로서 크립토 이레이즈를 실장할 수도 있다. 호스트 장치(14)가 데이터 소거 방식으로서 크립토 이레이즈를 지정한 경우에, Revert 커맨드 혹은 Revert SP 커맨드에서 데이터 소거 지시가 이루어진 경우, 데이터 소거부(118)는 키 관리부(140)에 키의 갱신을 지시한다. 키 관리부(140)는 키 갱신이 지시되면, 새로운 난수를 생성하여 새로운 키의 값을 발생하고, 지금까지 사용한 키의 값을 파기하는 대신에 새로운 키의 값을 자신에게 저장한다. 암호 처리부(142)는 이후 새로운 값의 키를 사용하여 암호화, 복호 처리한다.
이와 같이 키의 값이 갱신되어 버리면, 이미 데이터 축적부(34)에 기록되어 있던 데이터는 옛날 값의 키로 암호화되어 있으므로, 새로운 값의 키를 사용하여 복호 처리를 해도, 올바른 평문 데이터로 복호(복원)하는 것은 불가능해진다. 이와 같이 키 갱신 후에는 암호 처리부(142)의 암호화 처리, 복호 처리 자체가 무의미하므로, 암호화 처리, 복호 처리 자체의 실행을 정지시켜도 된다. 도 18에 도시한 키 관리부(140)는 키 갱신 후 암호 처리부(142)에 대하여 암호화 처리, 복호 처리를 정지시키는 지시를 보낸다.
이 때문에, 스토리지 장치(12)가 암호화 데이터를 기억하는 경우에도, 호스트 장치(14)가 데이터 소거 방식을 지정할 수 있고, 스토리지 장치(12)는 지정된 소거 방식으로 리셋된다.
[제4 실시 형태]
도 19는 암호화 데이터를 기억하는 제4 실시 형태의 스토리지 장치(12C)의 개략을 나타낸다. 스토리지 장치(12C)는 도 18에 도시한 키 관리부(140)와 암호 처리부(142)를 구비하는 스토리지 장치(12B)에 대하여 파괴 처리부(116)가 추가되어 있는 점이 상이하다. 파괴 처리부(116)는 I/F 처리부(22)와, 인가 처리부(104)와, 리드/라이트 처리부(122)와, 데이터 소거부(118)와, 암호 처리부(142)에 접속된다. 스토리지 장치(12)가 Destroy 상태인 경우, 파괴 처리부(116)는 암호 처리부(142)에 암호 기능의 무효화를 지시함과 함께, 리드/라이트 처리부(122)에 커맨드 접수 불가(확인 커맨드는 접수 가능)를 지시한다. 또한, 스토리지 장치(12)가 Destroy 상태인 경우, 키 관리부(140)는 새로운 난수를 생성하여 새로운 키의 값을 발생하고, 지금까지 사용한 키의 값을 파기하는 대신에 새로운 키의 값을 자신에게 저장해도 된다. 키의 값의 갱신에 의해 이전의 값의 키로 암호화되어 있는 암호화 데이터의 복호는 불가능해진다. 또한, 스토리지 장치(12)가 Destroy 상태인 경우, 키 관리부(140)는 암호 처리부(142)에 대하여 암호화 처리, 복호 처리를 정지시키는 지시를 보내도 된다.
제4 실시 형태에 따르면, 제2 실시 형태의 효과와 제3 실시 형태의 효과를 발휘할 수 있다.
[제5 실시 형태]
제1 내지 제4 실시 형태에서는, 스토리지 장치(12, 12A, 12B 또는 12C)는 Inactive 상태(40A)인 채로 예를 들어 PC 벤더에게 출하되고, PC 벤더가 SID를 설정하고, Active 상태로 하여 엔드 유저에게 출하하고, 엔드 유저가 관리자 PIN과 유저 PIN을 설정한다고 상정하고 있었다. 즉, 제1 내지 제4 실시 형태에서는, 적어도 관리자 PIN의 초기값을 PC 벤더가 엔드 유저에, 예를 들어 매뉴얼에 기재하는 등의 방법으로 통지할 필요가 있었다. 제5 실시 형태에서는, 엔드 유저가 관리자 PIN을 분실해버린 경우에도, 데이터를 소거하지 않고, 엔드 유저에 통지한 관리자 PIN을 초기값으로 복구시키는 방법을 나타낸다.
제5 실시 형태에서는 도 20에 도시한 바와 같이, 스토리지 장치(12D)의 PIN 관리부(112)는 관리자 PIN을 복수 구비한다. 여기서, 관리자 PIN(1), 관리자 PIN(2)으로 정의한다. 도 20은 제1 실시 형태의 스토리지 장치(12)에 있어서 관리자 PIN을 복수 구비했지만, 제2 내지 제4 실시 형태의 스토리지 장치(12A, 12B, 12C)에 있어서 관리자 PIN을 복수 구비해도 된다. PC 벤더가 Activate 커맨드에 의해 스토리지 장치를 Active 상태로 하면, 관리자 PIN(1)과 관리자 PIN(2)이 초기값으로 설정된다. 여기서, PC 벤더는 관리자 PIN(1)과 관리자 PIN(2)의 값을 설정하되, 관리자 PIN(1)의 값은 매뉴얼에 기재하는 등의 방법으로 엔드 유저에 통지한다. 그러나, 관리자 PIN(2)의 값은 엔드 유저에게는 개시하지 않고, PC 벤더는 그 값이 외부로 누설되지 않도록 적절하게 관리해 둔다. 또한, 관리자 PIN(1)과 관리자 PIN(2)의 설정 권한을 도 21에 도시한 바와 같이 분리해 둔다. 즉, 관리자 PIN(1)의 권한으로는 Set 커맨드로 관리자 PIN(1)의 값을 열람하거나, Get 커맨드로 관리자 PIN(1)의 값을 설정할 수는 있지만, Set 커맨드로 관리자 PIN(2)의 값을 열람하거나, Get 커맨드로 관리자 PIN(2)의 값을 설정할 수는 없다. 마찬가지로, 관리자 PIN(2)의 권한으로는, Set 커맨드로 관리자 PIN(2)의 값을 열람하거나, Get 커맨드로 관리자 PIN(2)의 값을 설정할 수 있지만, Set 커맨드로 관리자 PIN(1)의 값을 열람하거나, Get 커맨드로 관리자 PIN(1)의 값을 설정할 수는 없다.
관리자 PIN(1)은 유저가 관리하기 때문에 유저가 알 수 있는 값이다. 만약 관리자 PIN(1)의 권한으로 관리자 PIN(2)의 값이 변경(설정)되어버리면, 관리자 PIN(2)의 값은, PC 벤더의 공장에서 설정한 관리자 PIN(2)의 값과 상이한 값이 되어버린다. 이것을 방지하기 위해, 관리자 PIN(1)의 권한으로는 관리자 PIN(2)의 값을 열람하거나(Set 커맨드), 설정하거나(Get 커맨드) 할 수 없도록 권한을 분리한다. 또한, 도 21에서는 관리자 PIN(2)의 권한으로는 관리자 PIN(1)을 설정도 열람도 할 수 없도록 하고 있지만, 관리자 PIN(1)의 권한으로 관리자 PIN(2)을 변경할 수 없게 되어 있으면 되기 때문에, 관리자 PIN(2)의 권한으로는 관리자 PIN(1)의 설정과 열람을 할 수 있도록 액세스 컨트롤을 설정해 두어도 된다.
제1 실시 형태의 도 3의 (a)에 도시한 바와 같이, 관리자 PIN에서는 Revert SP 커맨드를 발행할 수 있다. PC 벤더는 엔드 유저로부터의 요청에 기초하여, 관리자 PIN(2)에서 Revert SP 커맨드를 사용하여 리셋 처리를 행한다. 이 리셋 처리, 즉 Revert SP 커맨드의 실행 명령은, 예를 들어 인터넷 경유로 PC 벤더가 관리하는 서버로부터 리모트로 엔드 유저의 PC에 송신할 수 있도록 해도 된다. Revert SP 커맨드에는 데이터를 소거할지, 남길지를 나타내는 파라미터를 지정할 수 있다. 즉, 관리자 PIN(2)에서 Revert 커맨드에 데이터를 남기는 옵션을 지정하면, 데이터는 그대로 남지만, 관리자 PIN(1)은 초기화된다. 또한, Revert SP 커맨드에 의한 리셋 후에도 스토리지 장치는 Inactive 상태가 아니라 Active 상태에 머물도록 되어 있어도 된다.
이와 같이 관리자 PIN을 복수 정의하도록 스토리지 장치(12D)를 구성해 둠으로써, 엔드 유저가 관리자 PIN(1)을 분실한 경우에도, 관리자 PIN(1)의 초기화를 실현할 수 있다.
[제6 실시 형태]
제1 내지 제5 실시 형태에서는, 스토리지 장치(12, 12A, 12B, 12C 또는 12D)는 Inactive 상태(40A)인 채로 예를 들어 PC 벤더에게 출하되고, PC 벤더가 SID를 설정하고, Active 상태로 하여 엔드 유저에게 출하하고, 엔드 유저가 관리자 PIN과 유저 PIN을 설정한다고 상정하고 있었다. 제6 실시 형태에서는, PC 벤더는 SID를 설정하지만 Active 상태로는 천이시키지 않고 Inactive 상태인 채로 스토리지 장치를 엔드 유저에게 출하하고, 엔드 유저측에서 Active 상태로의 천이, 관리자 PIN과 유저 PIN의 설정을 하는 것을 상정한다.
도 3의 (a)에 도시한 바와 같이, Inactive 상태로부터 Active 상태로의 천이에는 소유자 PIN이 필요하다. 상기 상정에서는 PC 벤더가 관리자 PIN을 초기값으로부터 PC 벤더가 알 수 있는 값으로 설정하지만, Activate 커맨드는 엔드 유저측에서 실행되기 때문에, 엔드 유저측에서 소유자 PIN을 스토리지 장치에 입력할 필요가 있다. 이것을 실현하기 위해서는, (1) PC에 소유자 PIN의 값 그 자체를 구비시키는 방법, (2) PC는 소유자 PIN의 값 그 자체는 갖지 않고, 엔드 유저측에서 소유자 PIN을 계산하게 하는 방법의 2가지가 있다.
(1) PC에 소유자 PIN의 값 그 자체를 구비시키는 방법
PC 벤더는 BIOS 등, 유저가 용이하게 열람(리드: read)할 수 없는 영역에 SID를 저장하여 스토리지 장치를 엔드 유저에게 출하한다. 엔드 유저에게는 Inactive 상태로 출하되기 때문에, 초기 상태에서는 로크 기능은 무효화되어 있다. 엔드 유저가 로크 기능을 유효화 할 때에 BIOS 등에 저장된 프로그램에 의해, 당해 엔드 유저가 용이하게 열람할 수 없는 영역에 저장된 SID가 판독되고, Activate 커맨드에 의해 스토리지 장치를 Inactive 상태로부터 Active 상태로 천이시킨다.
(2) PC는 소유자 PIN의 값 그 자체는 갖게 하지 않는 방법
PC 벤더는 미리 SID의 라벨 정보와 스토리지 장치의 시리얼 번호 등을 사용하여 SID를 생성하고, 그 SID의 값을 스토리지 장치에 설정해 둔다. 이 생성 알고리즘은, 파라미터를 포함하여 PC 벤더만이 알 수 있는 것으로 해둔다. 라벨 정보란 SID의 ID를 의미한다. SID의 값(예를 들어, XXX, YYY, ZZZ)과 라벨 정보(예를 들어, 0001, 0002, 0003)는 대응하고 있다. SID의 값은 유저에게는 배포되지 않지만, 라벨 정보는 유저에 배포된다.
스토리지 장치의 유저가 설정(라이트: write)할 수 없는 영역에 SID의 라벨 정보가 저장되어 있다. 엔드 유저측에서 BIOS 등에 저장된 프로그램이, 당해 라벨 정보와, 스토리지 장치의 시리얼 번호 등을 사용하여 SID를 생성한다. 엔드 유저는 이 SID를 사용하여 Activate 커맨드에 의해 스토리지 장치를 Inactive 상태로부터 Active 상태로 천이시킨다. 또한, PC가 인터넷에 접속되어 있는 경우에는, PC와 PC 벤더의 서버를 통신시키고, PC로부터 SID의 라벨 정보와 스토리지 장치의 시리얼 번호를 PC 벤더의 서버에 송신하고, PC 벤더가 그들 정보를 바탕으로 SID를 생성해도 된다. 이에 의해, 엔드 유저측에서 소유자 PIN을 갖게 하지 않고, 소유자 PIN의 인증을 행할 수 있다.
혹은, PC 벤더가 SID의 값(예를 들어, XXX, YYY, ZZZ)과 라벨 정보(예를 들어, 0001, 0002, 0003)의 쌍을 Table에 보존해 두어도 된다. 각 스토리지 장치의 유저가 용이하게 열람할 수 없는, 또한 유저를 설정할 수 없는 SID 저장 영역에 SID의 값(예를 들어, XXX)이 설정된다. PC는 SID의 라벨 정보, 즉 어느 SID가 설정되어 있는지를 PC 벤더의 서버에 통지한다. 이 때문에, 라벨 정보는 유저 마음대로 변경되지 않는 것이 바람직하다. PC 벤더는 상기 Table을 참조하여 라벨 정보로부터 SID를 취득할 수 있다. PC 벤더는 취득한 SID를 네트워크 경유로 PC의 프로그램에 전송하는 것으로도, 엔드 유저측에서 소유자 PIN을 갖게 하지 않고, 소유자 PIN의 인증을 행할 수 있다.
상기한 어느 경우에도, 스토리지 장치는 SID의 라벨 정보를 저장해 두는 영역을 확보할 필요가 있다. 이 영역은 엔드 유저가 통상의 리드·라이트 커맨드로 액세스할 수 없도록 LBA 영역 외에 정의하는 것이 바람직하다. 또한, 엔드 유저가 SID의 라벨 정보를 마음대로 변경할 수 없도록, 기입 권한을 SID로 제한하여 둘필요가 있다. 도 22에 본 실시 형태에 있어서의 스토리지 장치(12E)의 구성도를 나타낸다. 도 22에 도시한 바와 같이, 스토리지 장치(12E)는 새롭게 라벨 스토어(LabelStore) 관리부(150)를 구비한다. 라벨 스토어 관리부(150)는, 라벨 스토어 테이블(152)로 SID의 라벨 정보를 설정하거나, 라벨 스토어 테이블(152)로부터 라벨 정보를 열람하거나 한다. 라벨 스토어 테이블(152)은 LBA로의 리드 커맨드나 라이트 커맨드가 아니라, Set 커맨드와 Get 커맨드에 의해 액세스된다. 즉, 라벨 스토어 관리부(150)는 Set 커맨드에 의해 라벨 스토어 테이블(152)에 값을 설정하고, Get 커맨드에 의해 라벨 스토어 테이블(152)로부터 설정된 값을 취득한다. 도 22는 제1 실시 형태의 스토리지 장치(12)에 있어서 라벨 스토어 관리부(150)를 구비했지만, 제2 내지 제5 실시 형태의 스토리지 장치(12A, 12B, 12C 또는 12D)에 있어서 라벨 스토어 관리부(150)를 구비해도 된다.
또한, 도 23에 도시한 바와 같이, 라벨 스토어 테이블(152)로의 액세스 권한은 커맨드의 발행원에 의해 제한된다. 어느 권한으로도 라벨 스토어 테이블(152)의 값을 읽어들이는 것(겟)은 가능하지만, 라벨 스토어 테이블(152)로의 기입(셋)은 관리자 PIN의 권한으로 제한된다. 예를 들어, 라벨 스토어 테이블(152)에 관한 Set 커맨드가 스토리지 장치(12E)에 공급되면, 인증 처리부(102)가 PIN 인증을 행하고, 인가 처리부(104)가 Set 커맨드의 발행원이 소유자인지 여부를 판정한다. Set 커맨드의 발행원이 소유자인 경우, 라벨 정보가 라벨 스토어 테이블(152)에 설정된다.
PC 벤더의 공장에서 SID를 설정한다. 이 SID의 권한을 사용하여, SID의 라벨 정보를 라벨 스토어 테이블(152)에 저장해 둔다. 이와 같이 함으로써, SID의 라벨 정보의 기입 권한을 SID로 제한해 두는 것을 실현할 수 있다.
이에 의해, 엔드 유저측에서 Activate 커맨드에 의해 Inactive 상태로부터 Active 상태로 천이시킬 수 있게 되고, 로크 기능을 이용하지 않는 경우에는, Inactive 상태로 출하된 PC를 그대로 이용할 수 있다. 로크 기능을 이용하고자 하는 유저는, 수중에서 Activate 커맨드에 의해 Inactive 상태로부터 Active 상태로 천이시킴으로써, 로크 기능을 유효화할 수 있다. 이와 같이 로크 기능을 이용하는 유저와 이용하고 싶지 않은 유저에게 양쪽의 기능을 제공할 수 있으며, 유저의 사용 편의성을 향상시킬 수 있다.
또한, 본 발명은 상기 실시 형태 자체에 한정되는 것이 아니라, 실시 단계에서는 그 요지를 일탈하지 않는 범위에서 구성 요소를 변형하여 구체화할 수 있다. 또한, 상기 실시 형태에 개시되어 있는 복수의 구성 요소의 적당한 조합에 의해 다양한 발명을 형성할 수 있다. 예를 들어, 실시 형태에 표시되는 전체 구성 요소로부터 몇 가지의 구성 요소를 삭제해도 된다. 또한, 상이한 실시 형태에 걸친 구성 요소를 적절히 조합해도 된다.

Claims (23)

  1. 암호화되지 않은 유저 데이터를 기억하고, 적어도 하나의 소거 방식에 의한 상기 유저 데이터의 소거를 실행 가능한 스토리지 장치로서,
    호스트 장치로부터 문의를 수신하는 수신 수단과,
    상기 호스트 장치로부터 상기 문의를 수신한 것에 응답하여, 상기 실행 가능한 적어도 하나의 소거 방식을 나타내는 응답 정보를 상기 호스트 장치에 송신하는 수단
    을 구비하는 스토리지 장치.
  2. 제1항에 있어서, 상기 수신 수단은, 상기 호스트 장치의 전원 온시 또는 부팅시에 상기 문의를 수신하는 스토리지 장치.
  3. 제1항에 있어서, 상기 수신 수단이, 상기 응답 정보의 송신 후에 상기 호스트 장치로부터, 상기 실행 가능한 적어도 하나의 소거 방식 중 어느 하나의 소거 방식을 지정하는 지정 정보를 수신하고,
    상기 수신 수단이 상기 지정 정보를 수신한 것에 응답하여, 상기 호스트 장치가 상기 지정 정보의 발행 권한을 갖는지 여부를 판정하고, 상기 호스트 장치가 상기 지정 정보의 발행 권한을 갖는다고 판단한 경우, 상기 수신 수단이 수신한 상기 소거 방식의 설정을 허가하는 제1 인증 수단을 더 구비하는 스토리지 장치.
  4. 제3항에 있어서, 상기 수신 수단이 상기 지정 정보의 수신 후에 상기 호스트 장치로부터 소거 지시를 수신하고,
    상기 수신 수단이 상기 소거 지시를 수신한 것에 응답하여, 상기 호스트 장치가 상기 소거 지시의 발행 권한을 갖는지 여부를 판정하고, 상기 호스트 장치가 상기 소거 지시의 발행 권한을 갖는다고 판정한 경우, 상기 제1 인증 수단이 설정을 허가한 상기 소거 방식으로 상기 소거 지시를 실행하는 것을 허가하는 제2 인증 수단을 더 구비하는 스토리지 장치.
  5. 제4항에 있어서, 개인 식별 정보를 설정하는 설정 수단과,
    상기 설정 수단에 의해 설정된 상기 개인 식별 정보를 초기값으로 되돌리는 초기화 수단을 구비하고,
    상기 개인 식별 정보는 적어도 제1 개인에 관한 제1 식별 정보와 제2 개인에 관한 제2 식별 정보를 더 구비하고,
    상기 소거 지시는 상기 설정 수단에 의해 설정된 상기 개인 식별 정보를 초기값으로 되돌리는 것도 포함하고,
    상기 소거 지시는 소거하는 데이터와 초기값으로 되돌리는 상기 개인 식별 정보가 상이한 적어도 제1 지시와 제2 지시를 구비하고,
    상기 제1 지시의 발행 권한과 상기 제2 지시의 발행 권한은 상이한 스토리지 장치.
  6. 제1항에 있어서, 상기 수신 수단이 상기 응답 정보의 송신 후에 상기 호스트 장치로부터 소거 방식을 지정하는 지정 정보를 수신한 것에 응답하여, 상기 호스트 장치에 의해 지정된 소거 방식이 자신이 구비하는 상기 적어도 하나의 소거 방식과 상이한지 여부를 판정하고, 상기 호스트 장치에 의해 지정된 소거 방식과 자신이 구비하는 상기 적어도 하나의 소거 방식이 상이한 경우, 상기 호스트 장치에 지정 에러 신호를 송신하는 제2 인증 수단을 더 구비하는 스토리지 장치.
  7. 제1항에 있어서, 상기 적어도 하나의 소거 방식은 덮어쓰기 소거 방식과, 블록 소거 방식과, 언맵 방식 중 어느 하나를 구비하는 스토리지 장치.
  8. 소거 지시, 기입 커맨드 또는 판독 커맨드를 수신하는 수신 수단과,
    상기 수신 수단이 상기 소거 지시를 수신한 것에 응답하여, 대상 데이터를 소거하는 소거 수단과,
    상기 소거 수단이 상기 데이터를 소거하고 있는 동안, 상기 수신 수단이 수신하는 상기 기입 커맨드 혹은 상기 판독 커맨드를 실행하는 것을 금지하는 금지 수단
    을 구비하는 스토리지 장치.
  9. 제4항에 있어서,
    복수의 개인 식별 정보를 관리하는 관리부를 더 포함하고,
    상기 제2 인증 수단은, 상기 호스트 장치가 상기 소거 지시의 발행 권한을 갖는지 여부를, 상기 관리된 상기 복수의 개인 식별 정보에 기초하여 판정하는, 스토리지 장치.
  10. 소거 지시를 수신하는 수신 수단과,
    상기 수신 수단이 상기 소거 지시를 수신한 것에 응답하여, 대상 데이터를 소거하는 소거 수단과,
    상기 소거 수단에 의해 소거가 완료된 데이터를 검출하고, 검출한 상기 소거가 완료된 데이터를 특정 가능한 정보를 불휘발성 메모리에 저장하는 수단
    을 구비하는 스토리지 장치.
  11. 제10항에 있어서, 전원 재투입되면, 상기 불휘발성 메모리로부터 상기 정보를 판독하고, 판독한 상기 정보에 기초하여 상기 소거 수단의 동작을 재개시키는 수단을 더 구비하는 스토리지 장치.
  12. 복수의 영역을 구비하는 불휘발성 메모리와,
    소거 지시, 기입 커맨드 또는 판독 커맨드를 수신하는 수신 수단과,
    상기 수신 수단이 상기 복수의 영역 중 제1 영역에 관한 상기 소거 지시를 수신한 것에 응답하여, 상기 제1 영역의 데이터를 소거하는 소거 수단과,
    상기 소거 수단이 상기 제1 영역의 데이터를 소거하고 있는 동안, 상기 수신 수단이 수신한, 상기 제1 영역에 관한 상기 기입 커맨드 또는 상기 판독 커맨드를 실행하는 것을 금지하는 금지 수단
    을 구비하는 스토리지 장치.
  13. 삭제
  14. 제12항에 있어서, 상기 소거 수단이 상기 제1 영역의 데이터를 소거하고 있는 동안, 상기 수신 수단이 수신한, 상기 제1 영역 이외의 영역에 관한 상기 기입 커맨드 또는 상기 판독 커맨드는 실행 가능한 스토리지 장치.
  15. 제12항에 있어서, 상기 금지 수단은, 상기 소거 수단이 상기 제1 영역의 데이터를 소거하고 있는 동안, 상기 수신 수단이 수신한, 상기 제1 영역 이외의 영역에 관한 상기 소거 지시를 실행하는 것을 금지하는 스토리지 장치.
  16. 기억 영역은 각각 상이한 액세스 제한이 설정되어 있는 복수의 레인지를 구비하고, 상기 복수의 레인지 각각은 하나의 네임스페이스에 포함되는 스토리지 장치로서,
    상기 복수의 레인지 각각과, 대응하는 네임스페이스의 관계를 나타내는 정보를 기억하는 기억 수단과,
    호스트 장치로부터 네임스페이스 소거 지시를 수신하는 수신 수단과,
    상기 수신 수단이 상기 네임스페이스 소거 지시를 수신한 것에 응답하여, 수신된 상기 네임스페이스 소거 지시에 대응하는 네임스페이스를 특정하고, 상기 특정한 네임스페이스에 대응하는 하나 또는 복수의 상기 레인지를 상기 기억 수단에 기억되어 있는 상기 정보에 기초하여 특정하고, 상기 특정한 하나 또는 복수의 상기 레인지의 데이터를 소거하는 수단
    을 구비하는 스토리지 장치.
  17. 제16항에 있어서, 상기 네임스페이스 소거 지시에 대응하는 네임스페이스는 하나 혹은 모든 네임스페이스인 스토리지 장치.
  18. 제1 상태 또는 제2 상태에서 동작 가능한 스토리지 장치로서,
    호스트 장치로부터 커맨드를 수신하는 수신 수단을 구비하고,
    상기 제1 상태에서 동작하는 경우, 상기 수신 수단이 상기 호스트 장치로부터 커맨드를 수신한 것에 응답하여, 상기 커맨드에 따른 응답을 상기 호스트 장치에 송신 가능하고,
    상기 제2 상태에서 동작하는 경우, 상기 수신 수단이 상기 호스트 장치로부터 상태를 확인하기 위한 제1 커맨드를 수신한 것에 응답하여, 상기 제2 상태에서 동작하고 있음을 나타내는 정보를 상기 호스트 장치로 송신 가능하고, 상기 호스트 장치로부터 상기 제1 커맨드 이외의 커맨드를 수신한 것에 응답하여, 에러를 나타내는 정보를 상기 호스트 장치로 송신 가능한 스토리지 장치.
  19. 제18항에 있어서, 상기 제1 상태는 개인 식별 정보가 설정되어 있는 상태이며, 상기 제2 상태는 데이터가 소거되어 있고, 상기 제1 상태에서 설정된 상기 개인 식별 정보가 초기값으로 되돌려진 상태이며, 상기 스토리지 장치는 상기 제1 상태로부터 상기 제2 상태로 천이 가능하지만, 상기 제2 상태로부터 상기 제1 상태로 천이 불가능한 스토리지 장치.
  20. 제18항에 있어서, 상기 스토리지 장치에 기억되는 데이터를 암호화함과 함께, 기억되어 있는 암호화 데이터를 복호하는 암호 처리 수단과,
    상기 제2 상태에서 동작하는 경우, 상기 암호 처리 수단의 적어도 복호 기능을 정지시키는 수단
    을 더 구비하는 스토리지 장치.
  21. 관리자 식별 정보와 유저 식별 정보를 설정 가능한 스토리지 장치로서,
    상기 관리자 식별 정보는 제1 식별 정보와 제2 식별 정보를 포함하고,
    상기 제1 식별 정보는, 상기 스토리지 장치의 기억 영역 전체를 소거하는 것, 및 상기 관리자 식별 정보를 초기화하는 것을 가능하게 하고,
    상기 제2 식별 정보는, 상기 스토리지 장치의 기억 영역 중 유저에게 할당된 부분 영역을 소거하는 것, 및 상기 유저에게 할당된 상기 유저 식별 정보를 초기화하는 것을 가능하게 하는, 스토리지 장치.
  22. 제21항에 있어서, 상기 유저를 인증하는 인증 수단과,
    상기 인증 수단에 의해 인증된 상기 유저에게만 상기 관리자 식별 정보를 통지하는 수단을 더 구비하는 스토리지 장치.
  23. 인액티브 상태 혹은 액티브 상태에서 동작 가능한 스토리지 장치로서,
    상기 인액티브 상태로부터 상기 액티브 상태로의 천이를 위해 필요한 소유자 식별 정보의 값을 취득 또는 생성하기 위한 라벨 정보를 보존하는 기억부를 구비하고,
    상기 기억부로부터 상기 라벨 정보를 판독하는 권한은 제한이 없고, 상기 기억부에 상기 라벨 정보를 기입하는 권한은 상기 소유자 식별 정보를 알고 있는 유저로 제한되어 있는 스토리지 장치.
KR1020180026739A 2017-09-21 2018-03-07 스토리지 장치 KR102111558B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2017-181632 2017-09-21
JP2017181632A JP6892361B2 (ja) 2017-09-21 2017-09-21 ストレージ装置

Publications (2)

Publication Number Publication Date
KR20190033413A KR20190033413A (ko) 2019-03-29
KR102111558B1 true KR102111558B1 (ko) 2020-05-18

Family

ID=65719275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180026739A KR102111558B1 (ko) 2017-09-21 2018-03-07 스토리지 장치

Country Status (5)

Country Link
US (2) US11360680B2 (ko)
JP (1) JP6892361B2 (ko)
KR (1) KR102111558B1 (ko)
CN (2) CN114895853A (ko)
TW (3) TWI799224B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI3291184T3 (fi) * 2016-09-02 2023-08-24 Assa Abloy Ab Pääsyobjektiin pääsyn resetointi
US10897462B2 (en) * 2017-05-16 2021-01-19 Citrix Systems, Inc. Systems and methods for encoding additional authentication data into an active directory security identifier
JP2019133345A (ja) 2018-01-30 2019-08-08 東芝メモリ株式会社 データ蓄積装置、データ処理システムおよびデータ処理方法
US11847241B1 (en) * 2018-04-20 2023-12-19 Amazon Technologies, Inc. Management of service permissions
US10656854B1 (en) * 2019-10-22 2020-05-19 Apricorn Method and portable storage device with internal controller that can self-verify the device and self-convert the device from current mode to renewed mode without communicating with host
TWI733375B (zh) * 2020-03-17 2021-07-11 群聯電子股份有限公司 資料轉移方法與記憶體儲存裝置
CN113448488B (zh) * 2020-03-25 2023-10-13 群联电子股份有限公司 数据转移方法与存储器存储装置
CN116157782A (zh) * 2020-08-25 2023-05-23 美光科技公司 存储器系统中的取消映射积压工作
US20220269437A1 (en) * 2021-02-19 2022-08-25 Western Digital Technologies, Inc. Data Storage Device and Method for Predetermined Transformations for Faster Retrieval
KR102560696B1 (ko) * 2022-01-26 2023-07-28 삼성전자주식회사 접근 권한 제어를 수행하는 스토리지 장치 및 그 동작방법
US20240192864A1 (en) * 2022-12-08 2024-06-13 Samsung Electronics Co., Ltd. Programmable physical security identifier
US11941262B1 (en) * 2023-10-31 2024-03-26 Massood Kamalpour Systems and methods for digital data management including creation of storage location with storage access ID

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344177A (ja) 2005-06-10 2006-12-21 Kyocera Mita Corp データ消去装置及びデータ消去プログラム
JP2014174862A (ja) * 2013-03-12 2014-09-22 Ricoh Co Ltd 情報処理装置、画像形成装置、データ消去方法、および、データ消去プログラム

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR900014993A (ko) * 1989-03-14 1990-10-25 강태헌 개인용 컴퓨터의 안전 체계 구축 방법 및 그 장치
JP2003330806A (ja) * 2002-05-16 2003-11-21 Nec Corp 記憶情報消去装置、記憶情報消去サービス装置、記憶情報消去管理装置、記憶情報消去システム及びプログラム
US20040114265A1 (en) * 2002-12-16 2004-06-17 Xerox Corporation User-selectable automatic secure data file erasure of job after job completion
JP2005018415A (ja) * 2003-06-26 2005-01-20 Toshiba Corp 情報処理装置および同装置で使用されるデータ消去方法
WO2007041834A1 (en) * 2005-10-07 2007-04-19 Memory Experts International Inc. Method and apparatus for secure credential entry without physical entry
US20070172041A1 (en) * 2005-10-18 2007-07-26 Intertrust Technologies Corporation Digital rights management engine systems and methods
WO2007110931A1 (ja) * 2006-03-28 2007-10-04 Fujitsu Limited 名前空間複製プログラム、名前空間複製装置、名前空間複製方法
JP4259589B2 (ja) 2006-05-09 2009-04-30 セイコーエプソン株式会社 電子機器、アクセス制御方法
US7971241B2 (en) 2006-12-22 2011-06-28 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for providing verifiable security in storage devices
JP2008192212A (ja) * 2007-02-01 2008-08-21 Spansion Llc 半導体装置およびその制御方法
JP5042660B2 (ja) * 2007-02-15 2012-10-03 株式会社日立製作所 ストレージシステム
KR20090032936A (ko) * 2008-06-12 2009-04-01 박석환 휴대 메모리 장치 및 휴대 메모리 장치에 저장된 데이터의 관리 방법
JP2011014103A (ja) 2009-07-06 2011-01-20 Ricoh Co Ltd 画像処理装置及び画像処理装置におけるデータ消去方法
JP5538970B2 (ja) * 2010-03-25 2014-07-02 キヤノン株式会社 情報処理装置、データ処理方法、プログラム
TW201142603A (en) * 2010-05-25 2011-12-01 Coresolid Storage Corp Method to improve read/write speed of nonvolatile memory
US20120079229A1 (en) * 2010-09-28 2012-03-29 Craig Jensen Data storage optimization for a virtual platform
JP4970585B2 (ja) * 2010-11-10 2012-07-11 株式会社東芝 サービス提供システム及びユニット装置
JP5624510B2 (ja) * 2011-04-08 2014-11-12 株式会社東芝 記憶装置、記憶システム及び認証方法
US8832402B2 (en) * 2011-04-29 2014-09-09 Seagate Technology Llc Self-initiated secure erasure responsive to an unauthorized power down event
US9805054B2 (en) * 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
JP5602169B2 (ja) * 2012-03-01 2014-10-08 株式会社東芝 通信管理装置、通信管理方法、及びプログラム
US9990382B1 (en) * 2013-04-10 2018-06-05 Amazon Technologies, Inc. Secure erasure and repair of non-mechanical storage media
US9436831B2 (en) * 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9245140B2 (en) * 2013-11-15 2016-01-26 Kabushiki Kaisha Toshiba Secure data encryption in shared storage using namespaces
KR20150138528A (ko) * 2014-05-29 2015-12-10 삼성전자주식회사 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법
JP2016012335A (ja) * 2014-06-05 2016-01-21 株式会社Genusion 記憶装置及び記憶装置システム並びに情報端末
US9696935B2 (en) * 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US10146782B1 (en) * 2015-06-30 2018-12-04 EMC IP Holding Company LLC Secure erasure of files by a filesystem
JP2017027388A (ja) * 2015-07-23 2017-02-02 株式会社東芝 メモリシステムおよび不揮発性メモリの制御方法
KR102450555B1 (ko) * 2015-11-09 2022-10-05 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
JP6448571B2 (ja) * 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
JP6523193B2 (ja) * 2016-03-08 2019-05-29 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US9633738B1 (en) * 2016-06-28 2017-04-25 Sandisk Technologies Llc Accelerated physical secure erase
US10089134B2 (en) * 2016-06-30 2018-10-02 Western Digital Technologies, Inc. Controlling access to namespaces of a storage device
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives
JP6875808B2 (ja) * 2016-09-09 2021-05-26 キヤノン株式会社 情報処理装置
TWI602074B (zh) * 2016-12-29 2017-10-11 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
JP6877265B2 (ja) * 2017-06-27 2021-05-26 ルネサスエレクトロニクス株式会社 半導体装置、及びフラッシュメモリ制御方法
US11580034B2 (en) * 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
US11455402B2 (en) * 2019-01-30 2022-09-27 Seagate Technology Llc Non-volatile memory with precise write-once protection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344177A (ja) 2005-06-10 2006-12-21 Kyocera Mita Corp データ消去装置及びデータ消去プログラム
JP2014174862A (ja) * 2013-03-12 2014-09-22 Ricoh Co Ltd 情報処理装置、画像形成装置、データ消去方法、および、データ消去プログラム

Also Published As

Publication number Publication date
US11861194B2 (en) 2024-01-02
US20220261166A1 (en) 2022-08-18
KR20190033413A (ko) 2019-03-29
TW202343260A (zh) 2023-11-01
TW202246990A (zh) 2022-12-01
CN109542334B (zh) 2022-06-24
CN109542334A (zh) 2019-03-29
US11360680B2 (en) 2022-06-14
JP2019057165A (ja) 2019-04-11
US20190087113A1 (en) 2019-03-21
JP6892361B2 (ja) 2021-06-23
TWI799224B (zh) 2023-04-11
TWI763780B (zh) 2022-05-11
TW201915750A (zh) 2019-04-16
CN114895853A (zh) 2022-08-12

Similar Documents

Publication Publication Date Title
KR102111558B1 (ko) 스토리지 장치
JP5624510B2 (ja) 記憶装置、記憶システム及び認証方法
JP5094365B2 (ja) ハード・ディスク・ドライブ
JP7187362B2 (ja) ストレージ装置及び制御方法
US8533414B2 (en) Authentication and securing of write-once, read-many (WORM) memory devices
US20100058073A1 (en) Storage system, controller, and data protection method thereof
JP2007004522A (ja) 記憶装置
JP2008072717A (ja) 埋込認証を有するハードディスク・ストリーミング暗号操作
JP2002318719A (ja) 高信頼計算機システム
JP2008129744A (ja) 外部記憶装置
US11232044B2 (en) Data storage apparatus, data processing system, and data processing method
JP5676145B2 (ja) 記憶媒体、情報処理装置およびコンピュータプログラム
JP7059414B2 (ja) ストレージ装置及び方法
JP7508531B2 (ja) ストレージ装置及び制御方法
KR101620685B1 (ko) 타임-아웃 데이터를 관리하는 방법 및 장치

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