KR102424293B1 - Storage system and method for performing secure write protect thereof - Google Patents
Storage system and method for performing secure write protect thereof Download PDFInfo
- Publication number
- KR102424293B1 KR102424293B1 KR1020150035052A KR20150035052A KR102424293B1 KR 102424293 B1 KR102424293 B1 KR 102424293B1 KR 1020150035052 A KR1020150035052 A KR 1020150035052A KR 20150035052 A KR20150035052 A KR 20150035052A KR 102424293 B1 KR102424293 B1 KR 102424293B1
- Authority
- KR
- South Korea
- Prior art keywords
- write
- storage device
- host
- secure
- field
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 실시 예에 따른 스토리지 시스템은 호스트와 저장 장치를 포함한다. 상기 호스트는 보안 쓰기 방지(secure write protect)를 설정하거나 해제하기 위한 요청을 제공한다. 상기 저장 장치는 및 쓰기 방지 속성을 제어하기 위한 레지스터에 상기 보안 쓰기 방지를 지원하기 위한 필드들을 포함하고, 상기 호스트의 요청에 대해 인증을 수행하고, 인증된 경우에 보안 모드가 설정되며, 보안 모드가 설정된 이후로는 인증되지 않은 호스트로부터의 쓰기 방지 설정 및 해제에 대한 액세스를 제한한다. 본 발명은 기존 Normal CMD를 사용한 쓰기 방지(write protect) 설정 및 해제 방식을 그대로 사용할 수 있고, 더 나아가 보안 모드(secure mode) 설정으로 인증된 호스트만 저장 장치에 쓰기 방지 권한을 갖기 때문에, 데이터를 더 안전하게 보호할 수 있다.A storage system according to an embodiment of the present invention includes a host and a storage device. The host provides a request to enable or disable secure write protect. The storage device includes fields for supporting the secure write-protection in a register for controlling a write-protection property and performs authentication for a request of the host, and when authenticated, a security mode is set, the security mode After is set, it restricts access to enable and disable write protection from unauthenticated hosts. The present invention can use the existing write protect setting and release method using Normal CMD as it is, and furthermore, because only the host authenticated by the secure mode setting has the write protect right to the storage device, data is saved can be more secure.
Description
본 발명은 스토리지 시스템에 관한 것으로, 더욱 상세하게는 스토리지 시스템 및 그것의 보안 쓰기 방지 수행 방법에 관한 것이다.The present invention relates to a storage system, and more particularly, to a storage system and a method for performing secure write protection thereof.
스토리지 시스템(storage system)은 호스트(host)와 저장 장치(storage device)로 구성되며, UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC; embedded MultiMediaCard) 등과 같은 다양한 인터페이스 표준을 통해 연결된다. A storage system consists of a host and a storage device, and includes universal flash storage (UFS), serial ATA (SATA), small computer small interface (SCSI), serial attached SCSI (SAS), It is connected through various interface standards such as eMMC (embedded MultiMediaCard).
종래의 저장 장치는 호스트에서 커맨드를 사용하면 누구나 쓰기 방지(write protect)를 설정하고 해제할 수 있다. 즉, 쓰기 방지를 설정하더라도 누구나 쓰기 방지를 해제하거나 쓰기 방지의 구성을 변경할 수 있다. 예를 들면, 모바일 장치의 안드로이드 시스템에서, 부트 로더(boot loader)나 커널 이미지(kernel image)에 쓰기 방지가 설정될 수 있다. 그러나 누구나 쓰기 방지 설정을 해제하고 구성을 변경할 수 있기 때문에, 루팅(rooting)과 같은 허용되지 않은 변경에 노출될 위험이 존재할 수 있다.In the conventional storage device, anyone can set and release write protect by using a command in the host. That is, even if write-protect is set, anyone can turn off write-protect or change the configuration of write-protect. For example, in an Android system of a mobile device, write protection may be set in a boot loader or a kernel image. However, since anyone can turn off write protection and make configuration changes, there is a risk of being exposed to unauthorized changes such as rooting.
본 발명은 상술한 기술적 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 종래의 쓰기 방지 설정 및 해제 방식은 그대로 유지하고, 보안 모드(secure mode) 설정으로 인증된 호스트만 저장 장치의 인증 절차를 통해서 쓰기 방지를 설정 또는 해제하거나 쓰기 방지 속성을 변경할 수 있는 스토리지 시스템을 제공하는 데 있다. The present invention has been proposed to solve the above technical problems, and an object of the present invention is to maintain the conventional write-protection setting and release method as it is, and only a host authenticated by the secure mode setting is an authentication procedure for the storage device. To provide a storage system that can enable or disable write protection or change the write protection properties through
본 발명의 실시 예에 따른 스토리지 시스템은, 보안 쓰기 방지(secure write protect)를 설정하거나 해제하기 위한 요청을 제공하는 호스트; 및 쓰기 방지 속성을 제어하기 위한 레지스터에 상기 보안 쓰기 방지를 지원하기 위한 필드들을 포함하고, 상기 호스트의 요청에 대해 인증을 수행하고, 인증된 경우에 보안 모드가 설정되며, 보안 모드가 설정된 이후로는 인증되지 않은 호스트로부터의 쓰기 방지 설정 및 해제에 대한 액세스를 제한하는 저장 장치를 포함한다. A storage system according to an embodiment of the present invention includes: a host providing a request for setting or canceling secure write protect; and fields for supporting the secure write protection in a register for controlling a write protection property, performing authentication on a request of the host, a security mode is set when authenticated, and after the security mode is set contains storage that restricts access to enable and disable write protection from unauthenticated hosts.
실시 예로서, 상기 레지스터에는 상기 저장 장치가 보안 쓰기 방지를 지원하는 여부를 확인하기 위한 보안 쓰기 방지 서포트 필드가 포함된다. 상기 호스트는 상기 저장 장치의 보안 쓰기 방지 서포트 필드의 특정 비트를 읽고, 상기 저장 장치가 보안 쓰기 방지를 지원하는지 여부를 확인한다. In an embodiment, the register includes a secure write protection support field for checking whether the storage device supports secure write protection. The host reads a specific bit of the secure write protection support field of the storage device and checks whether the storage device supports secure write protection.
다른 실시 예로서, 상기 레지스터에는 상기 저장 장치의 보안 모드를 설정하기 위한 보안 쓰기 방지 인에이블 필드가 포함된다. 상기 호스트는 HMAC 인증을 통해서 상기 보안 쓰기 방지 인에이블 필드를 설정한다. In another embodiment, the register includes a secure write-protect enable field for setting a security mode of the storage device. The host sets the secure write-protect enable field through HMAC authentication.
또 다른 실시 예로서, 상기 레지스터에는 쓰기 방지와 관련된 레지스터 필드들을 제어하기 위한 보안 쓰기 방지 구성 마스킹 필드가 포함된다. 상기 쓰기 방지와 관련 레지스터 필드들은 상기 보안 쓰기 방지 구성 마스킹 필드에 의해 제어된다. 상기 호스트는 HMAC, SHA256, MD5 등과 같은 인증을 통해서 상기 보안 쓰기 방지 구성 마스킹 필드를 액세스한다. In another embodiment, the register includes a secure write-protect configuration masking field for controlling write-protect-related register fields. The write protect and associated register fields are controlled by the secure write protect configuration masking field. The host accesses the secure write protection configuration masking field through authentication such as HMAC, SHA256, MD5, or the like.
본 발명은 스토리지 시스템의 보안 쓰기 방지 수행 방법에 관한 것이다. 상기 스토리지 시스템은 보안 쓰기 방지(secure write protect)를 설정하거나 해제하기 위한 요청을 제공하는 호스트; 및 쓰기 방지 속성을 제어하기 위한 레지스터에 상기 보안 쓰기 방지를 지원하기 위한 필드들을 포함하는 저장 장치를 포함한다. 상기 스토리지 시스템의 보안 쓰기 방지 수행 방법은, 보안 쓰기 방지 서포트 필드를 읽고 상기 저장 장치가 보안 쓰기 방지를 지원하는지 확인하는 단계; 상기 저장 장치가 보안 쓰기 방지를 지원하는 경우에, HMAC 인증을 통해 상기 저장 장치가 보안 쓰기 방지 모드로 동작하도록 상기 레지스터에 보안 쓰기 방지 인에이블 필드를 설정하는 단계; 및 상기 보안 쓰기 방지 인에이블 필드가 설정된 다음에, HMAC, SHA256, MD5 등과 같은 인증을 통해 보안 쓰기 방지 구성 마스킹 필드를 제어하기 위한 요청과 응답을 제공하는 단계를 포함한다. The present invention relates to a method for performing secure write protection of a storage system. The storage system includes: a host providing a request to enable or disable secure write protect; and a storage device including fields for supporting the secure write protection in a register for controlling a write protection attribute. The method of performing secure write protection of the storage system may include: reading a secure write protection support field and checking whether the storage device supports secure write protection; when the storage device supports secure write protection, setting a secure write protection enable field in the register so that the storage device operates in a secure write protection mode through HMAC authentication; and after the secure write protection enable field is set, providing a request and a response for controlling the secure write protection configuration masking field through authentication such as HMAC, SHA256, MD5, or the like.
본 발명은 기존 Normal CMD를 사용한 쓰기 방지(write protect) 설정 및 해제 방식은 그대로 유지하여 기존 방식과의 호환성을 유지하면서, 본 발명을 통한 보안 모드(secure mode) 설정시에는 인증된 호스트만 저장 장치에 대한 쓰기 방지 권한을 갖게 하는 기능을 추가한다. 본 발명에 의하면, 기존 모바일 제품과의 호환성 문제를 해결함과 동시에, 인증 절차를 통해 쓰기 방지 기능을 향상할 수 있다. The present invention maintains compatibility with the existing method by maintaining the write protect setting and release method using the existing Normal CMD, and when setting the secure mode through the present invention, only the authenticated host is a storage device Add a function to have write-protect permission for According to the present invention, it is possible to solve the problem of compatibility with existing mobile products and to improve the write-protection function through the authentication procedure.
도 1은 스토리지 시스템을 보여주는 블록도이다.
도 2는 플래시 메모리를 기반으로 하는 스토리지 시스템을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다.
도 4는 EXT_CSD 레지스터의 모드 세그먼트 중에서 사용자 영역 쓰기 방지(USER_WP; user area write protection)을 예시적으로 보여주는 테이블이다.
도 5는 도 3에 도시된 장치 레지스터의 쓰기 방지와 관련된 EXT_CSD 레지스터의 필드를 예시적으로 보여주는 블록도이다.
도 6은 도 3에 도시된 스토리지 시스템의 보안 쓰기 방지 속성을 제어하는 방법을 예시적으로 보여주는 블록도이다.
도 7은 보안 쓰기 방지의 설정 및 해제를 위한 요청과 응답의 데이터 프레임을 예시적으로 보여주는 테이블이다.
도 8은 인증된 레지스터(authenticated register)에 대한 쓰기 요청과 응답을 예시적으로 보여주는 블록도이다.
도 9는 인증된 레지스터(authenticated register)에 대한 읽기 요청과 응답을 예시적으로 보여주는 블록도이다.
도 10은 도 3에 도시된 스토리지 시스템의 HMAC 인증 방법을 예시적으로 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 스토리지 시스템이 eMMC에 적용된 경우에 쓰기 방지(write protect)를 설정하는 방법을 설명하기 위한 순서도이다.
도 12는 도 3에 도시된 플래시 메모리를 기반으로 하는 저장 장치의 하드웨어 구조를 보여주는 블록도이고,
도 13은 소프트웨어 계층 구조를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 저장 장치를 솔리드 스테이트 드라이브(SSD)에 적용한 예를 보여주는 블록도이다.
도 15는 도 14에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다.
도 16은 본 발명의 실시 예에 따른 저장 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
도 17은 본 발명의 실시 예에 따른 사용자 장치의 저장 장치를 메모리 카드에 적용한 예를 보여준다. 1 is a block diagram showing a storage system.
2 is a block diagram illustrating a storage system based on a flash memory.
3 is a block diagram illustrating a storage system according to an embodiment of the present invention.
4 is a table exemplarily showing user area write protection (USER_WP) among mode segments of the EXT_CSD register.
FIG. 5 is a block diagram exemplarily showing fields of the EXT_CSD register related to write protection of the device register shown in FIG. 3 .
FIG. 6 is a block diagram exemplarily illustrating a method of controlling a secure write-protect property of the storage system illustrated in FIG. 3 .
7 is a table exemplarily showing data frames of requests and responses for setting and canceling secure write protection.
8 is a block diagram exemplarily showing a write request and response to an authenticated register.
9 is a block diagram exemplarily showing a read request and response to an authenticated register.
FIG. 10 is a flowchart illustrating an HMAC authentication method of the storage system shown in FIG. 3 .
11 is a flowchart illustrating a method of setting write protect when a storage system according to an embodiment of the present invention is applied to an eMMC.
12 is a block diagram showing a hardware structure of a storage device based on the flash memory shown in FIG. 3;
13 is a block diagram showing a software layer structure.
14 is a block diagram illustrating an example in which a storage device according to an embodiment of the present invention is applied to a solid state drive (SSD).
15 is a block diagram exemplarily illustrating the configuration of the
16 is a block diagram illustrating an example in which a storage device according to an embodiment of the present invention is implemented as an electronic device.
17 shows an example of applying a storage device of a user device to a memory card according to an embodiment of the present invention.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.Hereinafter, in order to describe in detail enough that a person of ordinary skill in the art to which the present invention pertains can easily implement the technical idea of the present invention, an embodiment of the present invention will be described with reference to the accompanying drawings. .
도 1은 스토리지 시스템을 보여주는 블록도이다. 도 1을 참조하면, 스토리지 시스템(1000)은 호스트(1100)와 저장 장치(1200)를 포함한다. 호스트(1100)와 저장 장치(1200)는 UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC) 등과 같은 표준 인터페이스를 통해 연결될 수 있다. 1 is a block diagram showing a storage system. Referring to FIG. 1 , a
도 1을 참조하면, 호스트 인터페이스(1101)와 장치 인터페이스(1201)는 데이터나 신호를 주고 받기 위한 데이터 라인(DIN, DOUT)과 전원을 제공하기 위한 전원 라인(PWR)으로 연결될 수 있다. 호스트(1100)는 프로세서(1105), 호스트 컨트롤러(1130), 그리고 버퍼 메모리(1140)를 포함한다. Referring to FIG. 1 , the
프로세서(1105)는 애플리케이션(1110)과 장치 드라이버(1120)를 실행할 수 있다. 애플리케이션(1110)은 호스트(1100)에서 실행되는 다양한 응용 프로그램들이다. 장치 드라이버(1120)는 호스트(1100)에 연결되어 사용되는 주변 장치들을 구동하기 위한 것으로, 도 1에서는 저장 장치(1200)를 구동한다. The
애플리케이션(1110)이나 장치 드라이버(1120)는 소프트웨어(software) 또는 펌웨어(firmware) 등을 통해 구현될 수 있다. 호스트 컨트롤러(1130)는 호스트 인터페이스(1101)를 통해, 데이터를 저장 장치(1200)로 제공하거나 저장 장치(1200)로부터 데이터를 입력 받는다. The
버퍼 메모리(1140)는 호스트(1100)의 메인 메모리(main memory) 또는 캐시 메모리로 사용될 수 있다. 또한, 버퍼 메모리(1140)는 애플리케이션(1110)이나 장치 드라이버(1120) 등과 같은 소프트웨어를 구동하기 위한 구동 메모리(driving memory)로 사용될 수도 있다. The
저장 장치(1200)는 장치 인터페이스(1201)를 통해서 호스트(1100)와 연결될 수 있다. 저장 장치(1200)는 불휘발성 메모리(1210), 장치 컨트롤러(1230), 그리고 버퍼 메모리(1240)를 포함한다. 불휘발성 메모리(1210)에는 플래시 메모리, MRAM, PRAM, FeRAM 등이 포함될 수 있다. 장치 컨트롤러(1230)는 불휘발성 메모리(1210)의 쓰기, 읽기, 소거 등과 같은 전반적인 동작을 제어한다. 장치 컨트롤러(1230)는 어드레스 또는 데이터 버스를 통해 불휘발성 메모리(1210) 또는 버퍼 메모리(1240)와 데이터를 주고 받는다. The
버퍼 메모리(1240)는 불휘발성 메모리(1210)에 저장될 또는 불휘발성 메모리(1210)로부터 읽은 데이터를 임시 저장하는 데 사용될 수 있다. 버퍼 메모리(1240)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다.The
도 1에 도시된 스토리지 시스템(1000)은 플래시 메모리(flash memory)를 기반으로 하는 모바일 장치 또는 다른 전자 장치에 적용될 수 있다. 이하에서는 도 1에 도시된 스토리지 시스템(1000)의 구성이나 동작 방법이 좀 더 자세하게 설명될 것이다. The
도 2는 플래시 메모리를 기반으로 하는 스토리지 시스템을 보여주는 블록도이다. 도 2를 참조하면, 스토리지 시스템(2000)은 호스트(2100)와 저장 장치(2200)를 포함한다. 도 2에 도시된 저장 장치는 예를 들면, eMMC(embedded multimedia card)일 수 있다.2 is a block diagram illustrating a storage system based on a flash memory. Referring to FIG. 2 , a
호스트(2100)는 프로세서(2105), 호스트 컨트롤러(2130), 그리고 버퍼 램(2140)을 포함한다. 프로세서(2105)는 애플리케이션(2110)과 장치 드라이버(2120)를 실행할 수 있다. 그리고 호스트 컨트롤러(2130)는 커맨드 큐(CMD queue, 2131), 호스트 DMA(2132), 그리고 전원 관리자(2133)를 포함한다. 커맨드 관리자(2131), 호스트 DMA(2132), 그리고 전원 관리자(2133)는 호스트 컨트롤러(2130) 내에서 알고리즘, 소프트웨어, 또는 펌웨어로 동작할 수 있다.The
호스트(2100)의 프로세서(2105), 즉 애플리케이션(2110)과 장치 드라이버(2120)에서 생성된 커맨드(예를 들면, 쓰기 커맨드)는 호스트 컨트롤러(2130)의 커맨드 큐(2131)에 입력된다. 커맨드 큐(2131)는 저장 장치(2200)로 제공될 커맨드를 순서대로 저장한다. 커맨드 큐(2131)에 저장된 커맨드는 호스트 DMA(2132)로 제공된다. 호스트 DMA(2132)는 커맨드를 호스트 인터페이스(2101)를 통해 저장 장치(2200)로 보낸다. Commands (eg, write commands) generated by the
계속해서 도 2를 참조하면, 저장 장치(2200)는 플래시 메모리(2210), 장치 컨트롤러(2230), 그리고 버퍼 램(2240)을 포함한다. 그리고 장치 컨트롤러(2230)는 중앙처리장치(CPU, 2231), 커맨드 관리자(CMD manager, 2232), 플래시 DMA(2233), 보안 관리자(security manager, 2234), 버퍼 관리자(2235), 플래시 변환 계층(FTL; Flash Translation Layer, 2236), 그리고 플래시 관리자(2237)를 포함한다. 여기에서, 커맨드 관리자(2232), 보안 관리자(2234), 버퍼 관리자(2235), 플래시 변환 계층(2236), 그리고 플래시 관리자(2237)는 장치 컨트롤러(2230) 내에서 알고리즘, 소프트웨어, 또는 펌웨어로 동작할 수 있다.Continuing to refer to FIG. 2 , the
호스트(2100)로부터 저장 장치(2200)로 입력된 커맨드는 장치 인터페이스(2201)를 통해 커맨드 관리자(2232)로 제공된다. 커맨드 관리자(2232)는 호스트(2100)로부터 제공된 커맨드를 해석하고, 보안 관리자(2234)를 이용하여 입력된 커맨드를 인증할 수 있다. 커맨드 관리자(2232)는 버퍼 관리자(2235)를 통해 데이터를 입력받을 수 있도록 버퍼 램(2240)을 할당한다. 커맨드 관리자(2232)는 데이터 전송 준비가 완료되면, 호스트(2100)로 전송 준비 완료 신호를 보낼 수 있다.A command input from the
호스트(2100)는 전송 준비 완료 신호에 응답하여 데이터를 저장 장치(2200)로 전송한다. 데이터는 호스트 DMA(2132)와 호스트 인터페이스(2101)를 통해 저장 장치(2200)로 전송된다. 저장 장치(2200)는 제공받은 데이터를 버퍼 관리자(2235)를 통해 버퍼 램(2240)에 저장한다. 버퍼 램(2240)에 저장된 데이터는 플래시 DMA(2233)를 통해 플래시 관리자(2237)로 제공된다. 플래시 관리자(2237)는 플래시 변환 계층(2236)의 어드레스 맵핑 정보를 참조하여, 플래시 메모리(2210)의 선택된 어드레스에 데이터를 저장한다.The
저장 장치(2200)는 커맨드에 필요한 데이터 전송과 프로그램이 완료되면, 인터페이스를 통해 호스트(2100)로 응답 신호(response)를 보내고, 커맨드 완료를 알린다. 호스트(2100)는 응답 신호를 전달받은 커맨드에 대한 완료 여부를 장치 드라이버(2120)와 애플리케이션(2110)에 알려주고, 해당 커맨드에 대한 동작을 종료한다.When the data transmission and program required for the command are completed, the
도 2 도시된 스토리지 시스템(2000)이 사용자 장치(user device) 또는 모바일 장치(mobile device)에 사용되는 경우에, 데이터 신뢰성 및 보안을 위해 쓰기 방지(write protect)를 설정하거나 해제하는 것은 매우 중요한 문제이다. When the
본 발명의 실시 예에 따른 스토리지 시스템(2000)은 HMAC, SHA256(Secure Hash Algorithm 256), MD5(Message-Digest algorithm 5) 등과 같은 보안 인증(이하, HMAC 인증이라 함)을 사용한 보안 모드(secure mode) 설정을 통해 비밀 키(private key)를 가진 인증된 호스트만이 쓰기 방지(write protect)를 설정(set)하거나 해제(clear)할 수 있다. 본 발명은 기존 모바일 제품과 호환성을 유지함과 동시에, 인증을 통해 쓰기 방지 설정 및 해제와 관련된 레지스터 필드에 대한 액세스 권한을 부여함으로, 누구나 데이터를 변경할 수 있는 보안 문제를 해결할 수 있다. The
이하에서는 도 2에 도시된 스토리지 시스템(2000)을 예로 하여, 본 발명의 실시 예에 따른 스토리지 시스템의 쓰기 방지의 설정, 해제, 및 속성 변경이 상세하게 설명될 것이다.Hereinafter, setting, release, and attribute change of write protection of the storage system according to an embodiment of the present invention will be described in detail taking the
도 3은 본 발명의 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다. 도 3을 참조하면, 스토리지 시스템(3000)은 호스트(3100)와 저장 장치(3200)를 포함한다. 저장 장치(3200)는 커맨드 관리자(3232)와 보안 관리자(3234)를 포함한다. 보안 관리자(3234)는 장치 레지스터(device register)를 관리한다. 3 is a block diagram illustrating a storage system according to an embodiment of the present invention. Referring to FIG. 3 , the
장치 레지스터는 플래시 메모리(도 2 참조, 2210) 또는 ROM 등과 같은 불휘발성 메모리에 저장되어 있고, 파워 온(power on) 시에 디램(DRAM) 등과 같은 구동 메모리에 업로드 될 수 있다. 장치 레지스터는 쓰기 방지를 설정 또는 해제하거나, 쓰기 방지 속성을 변경하는 데 사용된다. eMMC의 경우에, 장치 레지스터는 OCR, CID, CSD, EXT_CSD, RCA, 그리고 DSR과 같이 6개의 레지스터로 구성될 수 있다. The device register is stored in a flash memory (see FIG. 2 , 2210 ) or a nonvolatile memory such as a ROM, and may be uploaded to a driving memory such as a DRAM when power is on. Device registers are used to enable or disable write protection, or to change write protection properties. In the case of eMMC, the device register may consist of six registers: OCR, CID, CSD, EXT_CSD, RCA, and DSR.
OCR(operation conditions register) 레지스터는 32비트로 구성되며, 저장 장치(3200)의 Vdd 전압 프로파일과 액세스 모드 인디케이션(access mode indication)을 저장한다. CID(divice identification) 레지스터는 128 비트로 구성되며, 장치 식별 정보를 저장한다. CSD(device specific data) 레지스터는 장치 컨텐츠(device contents)를 어떻게 액세스 하는지에 대한 정보를 제공한다. The operation conditions register (OCR) register consists of 32 bits, and stores a Vdd voltage profile and an access mode indication of the
CSD 레지스터는 데이터 포맷, 에러 정정 타입, 최대 데이터 액세스 타입, 데이터 전송 속도 등에 대해 정의한다. RCA(relative device address) 레지스터는 쓰기 가능한16비트(writable 16-bit)로 구성되며, 장치 식별 구간 동안에, 호스트에 의해 할당된 장치 어드레스(device address)를 가져온다. DSR(driver stage register)은 16 비트로 구성되며, 확장된 동작 조건들을 위한 버스 성능(bus performance)를 향상하는데 사용된다.The CSD register defines the data format, error correction type, maximum data access type, data transfer rate, and the like. The RCA (relative device address) register is composed of writable 16-bits, and during the device identification period, a device address allocated by the host is retrieved. The driver stage register (DSR) consists of 16 bits and is used to improve bus performance for extended operating conditions.
EXT_CSD(extended CSD) 레지스터는 512 바이트로 구성되며, 장치 특성(device properties)과 선택 모드(selected modes)를 정의한다. 상위 320 바이트는 특성 세그먼트(properties segment)이고, 하위 192 바이트는 모드 세그먼트(modes segment)이다. 모드는 SWITCH 커맨드를 통해 호스트에 의해서 변경될 수 있다.The EXT_CSD (extended CSD) register consists of 512 bytes and defines device properties and selected modes. The upper 320 bytes are the properties segment, and the lower 192 bytes are the modes segment. The mode can be changed by the host through the SWITCH command.
도 4는 EXT_CSD 레지스터의 모드 세그먼트 중에서 사용자 영역 쓰기 방지(USER_WP; user area write protection)을 예시적으로 보여주는 테이블이다. 도 4를 참조하면, 사용자 영역 쓰기 방지(USER_WP)는 1바이트, 즉 7비트로 구성될 수 있다. 표 1은 USER_WP의 속성을 예시적으로 보여준다. 4 is a table exemplarily showing user area write protection (USER_WP) among mode segments of the EXT_CSD register. Referring to FIG. 4 , the user area write protection (USER_WP) may be composed of 1 byte, that is, 7 bits. Table 1 shows the properties of USER_WP by way of example.
USER_WP 필드는 EXT_CSD 레지스터의 하위 192 바이트([191:0]) 중에서 어드레스 [171]에 위치할 수 있다. USER_WP 필드는 파워 온 또는 하드웨어 리셋 후에 0으로 리셋될 수 있다. The USER_WP field may be located at address [171] among the lower 192 bytes ([191:0]) of the EXT_CSD register. The USER_WP field may be reset to 0 after power-on or hardware reset.
도 5는 도 3에 도시된 장치 레지스터의 쓰기 방지와 관련된 EXT_CSD 레지스터의 필드를 예시적으로 보여주는 블록도이다. 도 5를 참조하면, 본 발명의 실시 예에 따른 스토리지 시스템(3000)의 장치 레지스터(3234)는 EXT_CSD 레지스터에 보안 쓰기 방지 서포트 필드(Secure WP support field), 보안 쓰기 방지 인에이블 필드(Secure WP enable field), 그리고 보안 쓰기 방지 구성 마스킹 필드(Secure WP configuration masking field)를 포함할 수 있다.FIG. 5 is a block diagram exemplarily showing fields of the EXT_CSD register related to write protection of the device register shown in FIG. 3 . Referring to FIG. 5 , the
보안 쓰기 방지 서포트 필드는 저장 장치(3200, 도 3 참조)가 보안 쓰기 방지(secure WP) 기능을 지원하는지를 확인하기 위한 필드이다. 즉, 호스트(3100, 도 3 참조)는 보안 쓰기 방지 서포트 필드를 읽고, 저장 장치(3200)가 보안 쓰기 방지를 지원하는지 여부를 알 수 있다. 보안 쓰기 방지 서포트 필드는 EXT_CSD 레지스터의 모드 세그먼트 중 하위 바이트 중 하나 또는 그 이상에 할당될 수 있다. The secure write protection support field is a field for checking whether the storage device 3200 (refer to FIG. 3 ) supports a secure write protection (secure WP) function. That is, the host 3100 (refer to FIG. 3 ) reads the secure write protection support field, and may know whether the
예를 들면, Secure WP support필드는 EXT_CSD 레지스터의 하위 192 바이트([191:0]) 중에서 어드레스 [172]에 위치할 수 있다. 보안 쓰기 방지 서포트 필드가 1 바이트(Bit7~Bit0)로 구성된 경우에, 어느 특정 비트가 1로 설정되면 쓰기 방지 기능을 지원하고 0으로 설정되면 지원하지 않는 것으로 설정할 수 있다.For example, the Secure WP support field may be located at address [172] among the lower 192 bytes ([191:0]) of the EXT_CSD register. When the secure write-protect support field consists of 1 byte (Bit7 to Bit0), it can be set to support the write-protect function when a certain bit is set to 1 and not support it when it is set to 0.
보안 쓰기 방지 인에이블 필드는 저장 장치(3200, 도 3 참조)의 보안 쓰기 방지(secure WP)를 활성화하기 위한 필드이다. 호스트(3100, 도 3 참조)는 HMAC 인증을 통해서 보안 쓰기 방지 인에이블 필드를 설정할 수 있다. 쓰기 방지 인에이블 필드가 한번 활성화된 후에는, 저장 장치(3200)는 계속해서 보안 쓰기 방지 모드로 동작한다. 호스트(3100)가 보안 쓰기 방지 동작을 원하지 않는 경우에는, 보안 쓰기 방지 인에이블 필드는 설정되지 않을 수 있다.The secure write protection enable field is a field for enabling secure write protection (secure WP) of the storage device 3200 (refer to FIG. 3 ). The host 3100 (refer to FIG. 3 ) may set the secure write-protect enable field through HMAC authentication. After the write-protect enable field is activated once, the
보안 쓰기 방지 인에이블 필드는 EXT_CSD 레지스터의 모드 세그먼트 중 하위 바이트 중 하나 또는 그 이상에 할당될 수 있다. Secure WP enable필드는 EXT_CSD 레지스터의 하위 192 바이트([191:0]) 중에서 어느 하나의 어드레스(예를 들면, [174])에 위치할 수 있다. 보안 쓰기 방지 인에이블 필드가 1 바이트(Bit7~Bit0)로 구성된 경우에, 어느 특정 비트가 1로 설정되면 보안 쓰기 방지 모드로 동작하고 0으로 설정되면 동작하지 않을 수 있다.The secure write-protect enable field may be allocated to one or more of the low-order bytes of the mode segment of the EXT_CSD register. The Secure WP enable field may be located at any one address (eg, [174]) among the lower 192 bytes ([191:0]) of the EXT_CSD register. When the secure write-protect enable field is composed of 1 byte (Bit7 to Bit0), if a certain bit is set to 1, it may operate in the secure write-protect mode, and if it is set to 0, it may not operate.
보안 쓰기 방지 구성 마스킹 필드는 보안 쓰기 방지(secure WP)와 관련된 모든 레지스터 필드들을 제어하기 위한 필드이다. 보안 쓰기 방지 인에이블 필드가 설정되면, 쓰기 방지와 관련된 모든 레지스터 필드들은 해당 마스킹 필드에 의해 동작 여부가 제어될 수 있다. 보안 쓰기 방지 구성 마스킹 필드는 HMAC 인증을 통해서만 액세스(access)할 수 있다. Secure WP configuration masking필드는 EXT_CSD 레지스터의 적어도 하나의 어드레스에 위치할 수 있다. The secure write protection configuration masking field is a field for controlling all register fields related to secure write protection (secure WP). When the secure write protection enable field is set, operation of all register fields related to write protection may be controlled by the corresponding masking field. The secure write-protect configuration masking field can only be accessed through HMAC authentication. The Secure WP configuration masking field may be located in at least one address of the EXT_CSD register.
보안 쓰기 방지 구성 마스킹 필드가 1 바이트(Bit7~Bit0)로 구성된 경우에, 제 1 비트(어느 특정 비트)가 1로 설정되면 해당 보안 쓰기 방지 구성 필드는 액세스 가능하고, 제 2 비트(다른 특정 비트)가 0으로 설정되면 그것에 해당하는 보안 쓰기 방지 구성 필드는 액세스할 수 없다.If the secure write-protect configuration masking field consists of one byte (Bit7 to Bit0), the corresponding secure write-protect configuration field is accessible when the first bit (any specific bit) is set to 1, and the second bit (any other specific bit) is accessible. ) is set to 0, the corresponding secure write-protect configuration field is inaccessible.
도 6은 도 3에 도시된 스토리지 시스템의 보안 쓰기 방지 속성을 제어하는 방법을 예시적으로 보여주는 블록도이다. 스토리지 시스템(3000)은 보안 쓰기 방지 속성을 제어할 수 있는 레지스터(예를 들면, EXT_CSD)에 보안 쓰기 방지(secure write protect)를 지원하기 위한 필드(field)를 추가하고, 보안 쓰기 방지를 설정하고 해제를 위한 요청(request)과 응답(response)을 정의할 있다.FIG. 6 is a block diagram exemplarily illustrating a method of controlling a secure write-protect property of the storage system illustrated in FIG. 3 . The
도 6을 참조하면, 저장 장치(3200)는 쓰기 방지에 관련되는 레지스터를 포함한다. 쓰기 보안 방지에 관련되는 레지스터에는 위에서 설명한, 보안 쓰기 방지 서포트 필드(Secure WP support field), 보안 쓰기 방지 인에이블 필드(Secure WP enable field), 보안 쓰기 방지 구성 마스킹 필드(Secure WP configuration masking field), 그리고 기존에 존재하는 쓰기 방지 구성 필드(WP configuration field)가 포함될 수 있다. 도 6에서는, 보안 쓰기 방지(secure WP)에 관련되는 경우에는 레지스터 값이 TRUE로 표시되고, 관련되지 않은 경우에는 FALSE로 표시되어 있다.Referring to FIG. 6 , the
계속해서 도 6을 참조하면, 호스트(3100)는 저장 장치(3200)의 보안 쓰기 방지 서포트 필드를 읽고, 저장 장치(3200)가 보안 쓰기 방지 기능을 지원하는지 여부를 확인한다. 도 6의 예에서, 호스트(3100)는 보안 쓰기 서포트 필드의 TRUE를 읽고, 저장 장치(3200)가 보안 쓰기 방지 기능을 지원함을 확인한다.Continuing to refer to FIG. 6 , the
호스트(3100)는 HMAC 인증을 통해서 보안 모드를 설정할 수 있다. 보안 모드는 보안 쓰기 방지 인에이블 필드에 의해 설정될 수 있다. 보안 쓰기 방지 인에이블 필드에 TRUE로 한 번 설정된 다음부터는 계속해서 보안 모드로 동작하게 된다. 만약, 호스트(3100)가 보안 쓰기 방지 동작을 원하지 않는 경우에는 보안 쓰기 방지 인에이블 필드를 설정하지 않을 수 있다. The
스토리지 시스템(3000)은 HMAC인증을 사용한 보안 모드(secure mode) 설정을 통해 비밀 키(private key)를 가진, 인증된 호스트(3100)만이 쓰기 방지(write protect)를 설정 또는 해제함으로, 해당 영역의 데이터를 변경할 수 있는 권한을 부여할 수 있다. 즉, 본 발명의 실시 예에 따른 스토리지 시스템(3000)은 보안 모드(secure mode) 설정을 통해, 저장 장치(3200)의 기존 쓰기 방지(write protect)와 관련된 특징(feature)을 인증(Authentication)을 통해 관리함으로, 기존의 쓰기 방지 특징(write protect feature)을 유지할 수 있다. 또한, 본 발명은 사용자의 선택에 따라서, 인증을 활용한 개선된 방식의 쓰기 방지(write protect)를 수행할 수 있다. The
본 발명의 실시 예에 따른 스토리지 시스템(3000)은 기존의 모바일 제품에서 사용하던 쓰기 방지 속성(Permanent, Power-on, Temporary)을 그대로 갖는다. 또한, 본 발명은 보안 모드 설정으로 기존 쓰기 방지 기능에 대한 구성(configuration)을 담고 있는 레지스터 필드(register field)에 얼라인된(aligned) 보안 쓰기 방지 구성 마스킹 필드(Secure WP configuration masking field)를 활성화한다. The
도 6을 참조하면, TRUE로 설정된 마스킹 필드에 얼라인된 레지스터 필드는 액세스 가능하고, FALSE로 설정된 마스킹 필드에 얼라인된 레지스터 필드는 액세스할 수 없다. 또는 본 발명의 실시 예에 따른 스토리지 시스템(3000)은 구현 방식에 따라, 제어 대상이 되는 필드보다 더 적은 개수의 마스크 비트(mask bit)가 복수개의 필드(field)를 마스킹할 수 있다. 예를 들면, 극단적으로1개의 마스크 비트로 모든 필드의 접근허용 여부를 결정할 수 있다. Referring to FIG. 6 , a register field aligned to a masking field set to TRUE is accessible, and a register field aligned to a masking field set to FALSE is inaccessible. Alternatively, in the
보안 쓰기 방지 구성 마스킹 필드의 값에 의해서 실제로 쓰기 방지를 설정 또는 해제하는 Normal CMD 동작의 유효(valid) 여부가 결정된다. 앞에서 설명한 보안 모드(secure mode) 설정과 마찬가지로, 보안 쓰기 방지 구성 마스킹 필드 값도 HMAC을 사용한 인증된 호스트(3100)에 의해서 결정된다. 본 발명은 기존 모바일 제품과 호환성을 유지할 수 있을 뿐만 아니라, HMAC 인증을 통해 인증된 호스트(3100)만 쓰기 방지의 설정 및 해제와 관련된 레지스터 필드에 대한 액세스 권한을 가짐으로, 보안 데이터를 안전하게 보호할 수 있다.Whether or not the normal CMD operation to actually set or cancel write protection is valid is determined by the value of the secure write protection configuration masking field. Similar to the secure mode setting described above, the secure write-protect configuration masking field value is also determined by the authenticated
한편, 본 발명의 실시 예에 따른 스토리지 시스템(3000)은 보안 쓰기 방지(secure WP)를 설정(set)하거나 해제(clear)하기 위한 요청(request)과 응답(response)를 추가할 수 있다. 보안 쓰기 방지의 설정 및 해제를 위해서는, HMAC 인증을 통해 위에서 정의한 레지스터 필드 값에 대한 제어를 필요로 한다. Meanwhile, the
도 7은 보안 쓰기 방지의 설정 및 해제를 위한 요청과 응답의 데이터 프레임을 예시적으로 보여주는 테이블이다. 도 7을 참조하면, 요청과 응답을 위한 데이터 프레임에는 Stuff, Key/MAC, Data, Nonce, Write Counter, Address, Block Count, Result, Request/Response Type을 포함한다.7 is a table exemplarily showing data frames of requests and responses for setting and canceling secure write protection. Referring to FIG. 7 , data frames for request and response include Stuff, Key/MAC, Data, Nonce, Write Counter, Address, Block Count, Result, and Request/Response Type.
예시적으로, Request/Response Type은 2바이트 길이(length)를 가지며, 호스트(3100)로부터 저장 장치(3200)로 요청(request)가 전송되고, 저장 장치(3200)로부터 호스트(3100)로 응답(response)이 전송된다. 인증 키(authentication Key)/MAC(message authentication code)는 32 바이트 길이를 가지며, 요청인 경우에는 키(Key) 또는 MAC이고, 응답인 경우에는 MAC이다. Write Counter는 4바이트 길이를 가지며, 호스트(3100)에 의해 만들어진, 성공적으로 인증된 데이터 쓰기 요청(successful authenticated data write request)의 전체 카운트 값이다.Exemplarily, the Request/Response Type has a length of 2 bytes, a request is transmitted from the
도 8은 인증된 레지스터(authenticated register)에 대한 쓰기 요청과 응답을 예시적으로 보여주는 블록도이다. 도 8을 참조하면, 인증된 레지스터 쓰기 요청은 호스트(3100)로부터 저장 장치(3200)로 제공된다. 인증된 레지스터 쓰기 요청에서, MAC은 HMAC 값을 갖는다. 그리고 Data는 설정하고자 하는 레지스터 필드의 실제 데이터 값을 갖는다. Address는 액세스 하고자 하는 레지스터 필드의 오프셋 값이다. 그리고 Request/Response Type은 인증된 레지스터 쓰기 요청일 것이다.8 is a block diagram exemplarily showing a write request and response to an authenticated register. Referring to FIG. 8 , an authenticated register write request is provided from the
계속해서 도 8을 참조하면, 인증된 레지스터 쓰기 응답은 저장 장치(3200)로부터 호스트(3100)로 제공된다. 인증된 레지스터 응답 요청에서, Data와 Address는 각각 0으로 설정될 수 있다. 그리고 Request/Response Type은 인증된 레지스터 읽기 요청일 것이다.Continuing to refer to FIG. 8 , the authenticated register write response is provided from the
도 9는 인증된 레지스터(authenticated register)에 대한 읽기 요청과 응답을 예시적으로 보여주는 블록도이다. 도 9를 참조하면, 인증된 레지스터 읽기 요청은 호스트(3100)로부터 저장 장치(3200)로 제공되고, 응답은 저장 장치(3200)로부터 호스트(3100)로 제공된다. 인증된 레지스터 읽기 요청과 응답에서, Data는 0으로 설정될 수 있다. Address는 읽기 요청에는 액세스 하고자 하는 레지스터 필드의 오프셋으로 설정되고, 읽기 응답에는 0으로 설정될 수 있다. 그리고 Request/Response Type은 각각 인증된 레지스터 읽기 요청과 응답으로 설정될 것이다.9 is a block diagram exemplarily showing a read request and response to an authenticated register. Referring to FIG. 9 , an authenticated register read request is provided from the
도 10은 도 3에 도시된 스토리지 시스템의 HMAC 인증 방법을 예시적으로 보여주는 순서도이다. 예로서, 도 10은 저장 장치(3200)가 보안 모드(secure mode) 설정을 인증하는 방법을 보여준다. FIG. 10 is a flowchart illustrating an HMAC authentication method of the storage system shown in FIG. 3 . As an example, FIG. 10 shows a method in which the
S110 단계에서, 저장 장치(3200)의 커맨드 관리자(3232)는 호스트(3100)로부터 보안 모드 요청을 입력받는다. 저장 장치(3200)는 보안 모드 요청을 입력받고, 보안 모드를 설정할 수 있다. 즉, 저장 장치(3200)는 적용하고자 하는 보안 모드를 새롭게 구성할 수 있다. In step S110 , the
S120 단계에서, 커맨드 관리자(3232)는 보안 모드 요청의 데이터 프레임을 해석한다. S130 단계에서, 저장 장치(3200)의 보안 관리자(3234)는 공유된 비밀 키를 이용하여 HMAC(keyed-hash message authentication Code)을 계산한다. 보안 관리자(3234)는 비밀 키(private key)와 메시지(message)를 이용하여 HMAC를 계산할 수 있다. 보안 관리자(3234)는 MD5(Message-Digest algorithm 5), SHA1(Secure Hash Algorithm 1), SHA256(Secure Hash Algorithm 256) 등을 이용하여 HMAC를 계산할 수 있다.In step S120 , the
S140 단계에서, 보안 관리자(3234)는 보안 모드(secure mode) 요청의 데이터 프레임으로부터 얻은 HMAC과 S130 단계에서 계산한 HMAC을 비교한다. 도 8에 도시된 바와 같이, 호스트(3100)로부터 제공된 인증된 레지스터 쓰기 요청의 데이터 프레임(data frame)은 HMAC을 포함한다. 보안 관리자(3234)는 호스트(3100)로부터 제공된 HMAC과 저장 장치(3200) 내에서 계산한 HMAC을 비교함으로, 보안 모드 요청을 인증할 수 있다. In step S140 , the
S150 단계에서, 보안 관리자(3234)는 S140 단계에서의 비교 결과를 근거로 하여, 보안 모드 요청이 유효한지를 판단한다. 보안 관리자(3234)는 호스트(3100)로부터 제공된 HMAC과 저장 장치(3200) 내에서 계산한 HMAC가 일치하면, 보안 모드 요청이 유효(valid)하다고 판단한다. 일치하지 않으면, 보안 모드 요청이 유효하지 않다고 판단한다.In step S150 , the
S160 단계에서, 보안 모드 요청이 유효한 경우에, 보안 관리자(3234)는 보안 모드 요청에 따라 보안 모드를 설정한다. S165 단계에서, 보안 모드 요청이 유효하지 않은 경우에, 보안 관리자(3234)는 보안 모드 요청을 거절(reject)한다.In step S160, if the security mode request is valid, the
도 11은 본 발명의 실시 예에 따른 스토리지 시스템이 eMMC에 적용된 경우에 쓰기 방지(write protect)를 설정하는 방법을 설명하기 위한 순서도이다. 11 is a flowchart illustrating a method of setting write protect when a storage system according to an embodiment of the present invention is applied to an eMMC.
S210 단계에서, 호스트(3100)는 RPMB(replay protected memory block) 요청을 통해 보안 모드(secure mode)를 셋팅한다. 즉, 호스트(3100)는 보안 쓰기 방지 서포트 필드를 읽고 저장 장치(3200)가 보안 쓰기 방지 기능을 지원하는지 확인한 다음에, 보안 모드를 세팅한다. 저장 장치(3200)는 보안 쓰기 방지 인에이블 필드를 EXT_CSD 레지스터에 포함함으로, 보안 모드를 셋팅할 수 있다.In step S210 , the
S220 단계에서, HMAC 인증이 수행된다. S210 단계에서의 보안 모드는 HMAC 인증을 통해 수행될 수 있다. HMAC 인증에 대한 설명은 도 10에서 설명한 바와 같다. HMAC 인증이 되지 않은 경우에는, 요청이 거절된다. HMAC 인증이 된 경우에는 S230 단계가 수행된다.In step S220, HMAC authentication is performed. The security mode in step S210 may be performed through HMAC authentication. A description of the HMAC authentication is the same as that described in FIG. 10 . If HMAC authentication is not performed, the request is rejected. In case of HMAC authentication, step S230 is performed.
S230 단계에서, 호스트(3100)는 RPMB(replay protected memory block) 요청을 통해 보안 쓰기 방지 마스킹을 인에이블한다. 저장 장치(3200)는 보안 쓰기 방지 구성 마스킹 필드를 EXT_CSD 레지스터에 포함함으로, 마스킹 필드를 인에이블할 수 있다.In step S230 , the
S240 단계에서, HMAC 인증이 수행된다. S230 단계에서의 보안 쓰기 방지 마스킹 인에이블은 HMAC 인증을 통해 수행될 수 있다. HMAC 인증을 통해 보안 쓰기 방지 구성 마스킹 필드의 쓰기 방지 셋 인에이블(WP Set enable) 값을 셋팅하면, 기존 커맨드(예를 들면, CMD28)을 이용하여 쓰기 방지를 설정할 수 있다.In step S240, HMAC authentication is performed. Enabling the secure write-protection masking in step S230 may be performed through HMAC authentication. If the write-protection set enable value of the secure write-protect configuration masking field is set through HMAC authentication, write-protection can be set using an existing command (eg, CMD28).
S250 단계에서, CMD 28(SET_WRITE_PROT)의 아규먼트(argument)의 어드레스된 그룹 addressed group에 WP 설정을 요청한다. 저장 장치(3200)가 쓰기 방지 특징(WP features)을 가지면, CMD 28은 어드레스된 그룹의 쓰기 방지 비트를 세트한다. 쓰기 방지 특성(WP properties)은 Device specific data에 코드된다.In step S250, a WP setting is requested from the group addressed in the argument of CMD 28 (SET_WRITE_PROT). If the
S260 단계에서, 쓰기 방지 특성(Write Protect Property)을 확인한다. 예를 들면, EXT_CSD의 사용자 영역 쓰기 방지 레지스터(user area WP register)를 확인한다. 사용자 영역 쓰기 방지 레지스터는 EXT_CSD의 어드레스 [171]에 위치하며, USER_WP 필드이다. 호스트(3100)는 EXT_CSD[171]의 USER_WP 필드에 따라, 쓰기 방지 속성(Permanent, Power-on, Temporary)을 결정할 수 있다.In step S260, a write protect property (Write Protect Property) is checked. For example, check the user area WP register of EXT_CSD. The user area write-protect register is located at address [171] of EXT_CSD and is a USER_WP field. The
S270 단계에서, 쓰기 방지를 설정한다. EXT_CSD에 설정해 놓은 쓰기 방지 특성으로, 저장 장치(3200)에 대한 쓰기 방지를 설정한다.In step S270, write protection is set. As the write-protection characteristic set in EXT_CSD, write-protection of the
본 발명의 실시 예에 따른 스토리지 시스템(3000)은 EXT_CSD에 보안 모드와 보안 쓰기 방지 구성 마스킹 필드를 추가한다. 이러한 필드들은 CMD 6(SWITCH)로 액세스할 수 없고, RPMB를 이용한 인증 과정을 거쳐야 쓰기 가능하다. HMAC 인증을 통한 보안 모드 비트가 셋팅된 후에는, 어느 누구도 CMD 28로 쓰기 방지를 설정할 수 없게 된다. HMAC 인증을 통해 보안 쓰기 방지 구성 마스킹 필드의 WP Set enable 값을 셋팅 해야만 CMD 28로 쓰기 방지 설정을 할 수 있다. The
본 발명의 실시 예에 따른 스토리지 시스템(3000)은 호스트(3100)가 저장 장치(3200)를 직접 제어하던 방식을 인증 기반 방식으로 전환하고자, 모드 변경을 위한 레지스터와 인증 방식에 의해서만 액세스되는 마스킹 필드를 추가한다. 본 발명에 의하면, 기존의 제어 방식을 그대로 유지하거나, 사용자의 선택에 따라서 인증 기반으로 제어할 수 있다. 실시 예로, eMMC의 경우에, RPMB를 이용하여 보안 쓰기 방지(secure WP)을 구현할 수 있다. In the
한편, 본 발명의 실시 예에 따른 스토리지 시스템(3000)은 Automatic power-on recovery를 통해, PMIC 을 이용한 security attack 이 불가능하게 할 수 있다. 또한, 본 발명은 기존 모바일 제품에 보안 모드(secure mode)를 추가함으로, 모든 쓰기 방지(write protect) 관련 특징을 관리(managing)할 수 있다. 보안 모드(secure mode) 진입 후, 모든 쓰기 방지(write protect)에 관한 구성(configuration)은 보안 쓰기 방지 구성 마스킹 필드를 통해 변경할 수 있다. Meanwhile, the
도 12는 도 3에 도시된 플래시 메모리를 기반으로 하는 저장 장치의 하드웨어 구조를 보여주는 블록도이고, 도 13은 소프트웨어 계층 구조를 보여주는 블록도이다. 12 is a block diagram illustrating a hardware structure of a storage device based on the flash memory illustrated in FIG. 3 , and FIG. 13 is a block diagram illustrating a software layer structure.
도 12를 참조하면, 저장 장치(3200)는 플래시 메모리(3200a)와 메모리 컨트롤러(3200b)를 포함한다. 메모리 컨트롤러(3200b)는 호스트 인터페이스 컨트롤러(3201)를 통해 호스트와 연결되고, 플래시 인터페이스 컨트롤러(3202)를 통해 플래시 메모리(3200a)와 연결된다. 메모리 컨트롤러(3200b)는 중앙처리장치(CPU, 3210), 코드 램(3221), 데이터 램(3222), 버퍼 램(3223), 롬(3230), DMA(3240), HMAC(3250), AES(3260), 그리고 ECC(3270)를 포함할 수 있다.Referring to FIG. 12 , the
중앙처리장치(3210)는 메모리 컨트롤러(3200b)의 제반 동작을 제어할 수 있다. 예를 들면, 중앙처리장치(3210)는 부팅 동작 시에 플래시 메모리(3200a) 또는 롬(3230)에 저장된 부트 코드를 코드 램(3221)에 로딩함으로, 저장 장치(3200)의 부팅 동작을 제어할 수 있다. The
계속해서 도 12를 참조하면, 메모리 컨트롤러(3200b)는 메모리를 직접 액세스하기 위한 DMA(Direct Memory Access, 3240), 데이터 보안을 위한 HMAC(3250)과 AES(Advanced Encryption Standard, 3260), 그리고 데이터 에러 정정을 위한 ECC(3270)를 포함할 수 있다.Continuing to refer to FIG. 12 , the
도 13을 참조하면, 저장 장치(3200)의 소프트웨어 계층 구조는 호스트 인터페이스 레이어(HIL; host interface layer, 110), 보안 레이어(SEL; security layer, 115), 플래시 변환 레이어(FTL; flash translation layer, 120), 플래시 인터페이스 레이어(FIL; flash interface layer, 130), 그리고 플래시 리커버리 레이어(FRL; flash recovery layer, 140)를 갖는다.Referring to FIG. 13 , the software layer structure of the
중앙처리장치(3210)는 호스트 인터페이스 레이어(HIL, 110)를 이용하여, 호스트 인터페이스 컨트롤러(3201)를 호스트로부터 데이터를 입력받고 데이터 램(3221)에 저장하는 동작을 제어할 수 있다. 중앙처리장치(3210)는 호스트와 데이터를 주고 받을 때 보안 레이어(SEL, 115)를 이용하여, 호스트의 커맨드를 인증하고, 쓰기 방지 영역을 설정할 수 있다. 도 3에 도시된 보안 관리자(3234)는 보안 레이어(SEL, 115)에서 구동하는 소프트웨어일 수 있다.The
한편, 중앙처리장치(3210)는 플래시 인터페이스 레이어(FIL, 130)를 이용하여 데이터 램(3222) 또는 버퍼 램(3223)에 저장된 데이터를 플래시 인터페이스 컨트롤러(3202)를 통해 플래시 메모리(3200a)로 제공할 수 있다. 또한, 중앙처리장치(3210)는 플래시 변환 레이어(FTL, 120)를 이용하여, 어드레스 맵핑 동작 등 플래시 메모리(3200a)의 주요 동작을 관리할 수 있다. 그리고 중앙처리장치(3210)는 플래시 리커버리 레이어(FRL, 140)를 이용하여, 플래시 메모리(3200a)의 리커버리 동작을 관리할 수 있다. Meanwhile, the
본 발명의 실시 예에 따른 저장 장치(3200)는 보안 쓰기 방지 구성 마스킹 필드의 값에 의해서 실제로 쓰기 방지를 설정 또는 해제하는 Normal CMD 동작의 유효(valid) 여부가 결정된다. 보안 모드(secure mode) 설정과 마찬가지로, 보안 쓰기 방지 구성 마스킹 필드 값도 HMAC을 사용한 인증된 호스트(3100)에 의해서 결정된다. 본 발명은 기존 모바일 제품과 호환성을 유지할 수 있을 뿐만 아니라, HMAC 인증을 통해 인증된 호스트(3100)만 쓰기 방지의 설정 및 해제와 관련된 레지스터 필드에 대한 액세스 권한을 가짐으로, 보안 데이터를 안전하게 보호할 수 있다.In the
한편, 본 발명의 실시 예에 따른 스트로지 시스템은 여러 가지 제품에 적용 또는 응용될 수 있다. 본 발명의 실시 예에 따른 스토리지 시스템은 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PSP, PDA 등과 같은 전자 장치에 구현될 수 있다. 그리고 스트로지 시스템의 저장 매체는 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD라 함) 등과 같은 저장 장치로 구현될 수 있다. On the other hand, the storage system according to an embodiment of the present invention can be applied or applied to various products. The storage system according to an embodiment of the present invention may be implemented in an electronic device such as a personal computer, a digital camera, a camcorder, a mobile phone, an MP3 player, a PMP, a PSP, or a PDA. In addition, the storage medium of the storage system may be implemented as a storage device such as a memory card, a USB memory, a solid state drive (hereinafter referred to as an SSD), and the like.
도 14는 본 발명의 실시 예에 따른 저장 장치를 솔리드 스테이트 드라이브(SSD)에 적용한 예를 보여주는 블록도이다. 도 14를 참조하면, SSD 시스템(4000)은 호스트(4100)와 SSD(4200)를 포함한다. 14 is a block diagram illustrating an example in which a storage device according to an embodiment of the present invention is applied to a solid state drive (SSD). Referring to FIG. 14 , the
SSD(4200)는 신호 커넥터(signal connector, 4211)를 통해 호스트(4100)와 신호를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력받는다. SSD(4200)는 복수의 플래시 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다. The
복수의 플래시 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. SSD(4200)는 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등의 불휘발성 메모리 장치가 사용될 수도 있다. 복수의 플래시 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 플래시 메모리가 연결될 수 있다. 하나의 채널에 연결되는 플래시 메모리는 동일한 데이터 버스에 연결될 수 있다. The plurality of
SSD 컨트롤러(4210)는 신호 커넥터(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 플래시 메모리 에 데이터를 쓰거나 해당 플래시 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)의 내부 구성은 도 15를 참조하여 상세하게 설명된다.The
보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.The
도 15는 도 14에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다. 도 15를 참조하면, SSD 컨트롤러(4210)는 NVM 인터페이스(4211), 호스트 인터페이스(4212), ECC 회로(4213), 중앙 처리 장치(CPU, 4214), 그리고 버퍼 메모리(4215)를 포함한다. 15 is a block diagram exemplarily illustrating the configuration of the
NVM 인터페이스(4211)는 버퍼 메모리(4215)로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 플래시 메모리(4201~420n)로부터 읽은 데이터를 버퍼 메모리(4215)로 전달한다. 여기에서, NVM 인터페이스(4211)는 플래시 메모리의 인터페이스 방식을 사용할 수 있다. 즉, SSD 컨트롤러(4210)는 플래시 메모리 인터페이스 방식에 따라 프로그램, 읽기, 또는 소거 동작 등을 수행할 수 있다.The
호스트 인터페이스(4212)는 호스트(4100)의 프로토콜에 대응하여 SSD(4200)와의 인터페이싱을 제공한다. 호스트 인터페이스(4212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(4100)와 통신할 수 있다. 또한, 호스트 인터페이스(4212)는 호스트(4100)가 SSD(4200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다. The
ECC 회로(4213)는 플래시 메모리(4201~420n)로 전송되는 데이터를 이용하여, 에러 정정 코드(ECC)를 생성한다. 그렇게 생성된 에러 정정 코드(ECC)는 플래시 메모리(4201~420n)의 스페어 영역(spare area)에 저장된다. ECC 회로(4213)는 플래시 메모리(4201~420n)로부터 읽은 데이터의 에러를 검출한다. 만약 검출된 에러가 정정 용량 내이면, ECC 회로(4213)는 검출된 에러를 정정한다. The
중앙 처리 장치(4214)는 호스트(4100, 도 14 참조)로부터 입력된 신호(SGL)를 분석하고 처리한다. 중앙 처리 장치(4214)는 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 플래시 메모리(4201~420n)를 제어한다. 중앙 처리 장치(4214)는 SSD(4200)을 구동하기 위한 펌웨어에 따라서 플래시 메모리(4201~420n)의 동작을 제어한다.The
버퍼 메모리(4215)는 호스트(4100)로부터 제공되는 쓰기 데이터 또는 플래시 메모리로부터 읽은 데이터를 임시로 저장한다. 또한, 버퍼 메모리(4215)는 플래시 메모리(4201~420n)에 저장될 메타 데이터나 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 버퍼 메모리(4215)에 저장된 메타 데이터나 캐시 데이터는 플래시 메모리(4201~420n)에 저장된다. 버퍼 메모리(4215)에는 DRAM, SRAM 등이 포함될 수 있다. The
도 16은 본 발명의 실시 예에 따른 저장 장치를 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(5000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다. 16 is a block diagram illustrating an example in which a storage device according to an embodiment of the present invention is implemented as an electronic device. Here, the
도 16을 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다.Referring to FIG. 16 , the
도 17은 본 발명의 실시 예에 따른 사용자 장치의 저장 장치를 메모리 카드에 적용한 예를 보여준다. 메모리 카드 시스템(6000)은 호스트(6100)와 메모리 카드(6200)를 구비한다. 호스트(6100)는 호스트 컨트롤러(6110) 및 호스트 접속 유닛(6120)을 포함한다. 메모리 카드(6200)는 카드 접속 유닛(6210), 카드 컨트롤러(6220), 그리고 플래시 메모리(6230)를 포함한다. 17 shows an example of applying a storage device of a user device to a memory card according to an embodiment of the present invention. The
호스트(6100)는 메모리 카드(6200)에 데이터를 쓰거나, 메모리 카드(6200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(6110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(6100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(6120)을 통해 메모리 카드(6200)로 전송한다.The
카드 컨트롤러(6220)는 카드 접속 유닛(6210)을 통해 수신된 쓰기 커맨드에 응답하여, 카드 컨트롤러(6220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(6230)에 저장한다. 플래시 메모리(6230)는 호스트(6100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(6100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다. The
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 예를 들어, 본 발명의 범위는 플래시 메모리 장치에 한정되지 않는다. 본 발명은 변환 계층에 의한 어드레스 변환이 사용되는 모든 저장 장치에 적용될 수 있다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다. Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. For example, the scope of the present invention is not limited to flash memory devices. The present invention can be applied to any storage device in which address translation by a translation layer is used. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined by not only the claims described below, but also the claims and equivalents of the present invention.
1000, 2000, 3000: 스토리지 시스템
1100, 2100, 3100: 호스트
1200, 2200, 3200: 저장 장치1000, 2000, 3000: storage system
1100, 2100, 3100: Host
1200, 2200, 3200: storage device
Claims (18)
호스트; 및
레지스터를 포함하는 저장 장치를 포함하되,
상기 호스트는 상기 저장 장치의 쓰기 방지(write protection)를 설정하거나 해제하기 위한 요청을 제공하고; 그리고
상기 레지스터는 상기 쓰기 방지의 속성들을 제어하기 위한 정보 및 상기 저장 장치의 보안 모드를 제어하기 위한 정보를 저장하는 필드들, 상기 저장 장치가 상기 보안 모드를 지원하는지 여부를 표시하는 보안 쓰기 방지 서포트 필드, 및 상기 저장 장치의 상기 보안 모드의 상태를 제어하는 보안 쓰기 방지 인에이블 필드를 포함하되,
상기 보안 모드가 설정되기 전에, 상기 호스트는 인증되지 않고 상기 쓰기 방지를 설정할 수 있고,
상기 호스트가 상기 보안 쓰기 방지 서포트 필드를 읽고 그리고 상기 저장 장치가 상기 보안 모드를 지원한다고 판별한 후에, 상기 호스트는 적어도 하나의 HMAC(keyed-hash message authentication code)를 사용한 인증을 통해 상기 보안 쓰기 방지 인에이블 필드를 설정함으로써 상기 보안 모드를 설정하고,
상기 보안 모드가 설정된 후에, 상기 저장 장치는 인증되지 않은 호스트의 상기 쓰기 방지를 설정 및 해제하기 위한 액세스를 제한하고, 그리고
상기 레지스터는 상기 쓰기 방지와 관련된 상기 레지스터의 레지스터 필드들을 제어하기 위한 보안 쓰기 방지 구성 마스킹 필드를 포함히고, 그리고
상기 레지스터 필드들은 상기 보안 쓰기 방지 구성 마스킹 필드에 정렬되고 그리고 상기 보안 쓰기 방지 구성 마스킹 필드의 레지스터 값들에 의존하여 액세스되는 스토리지 시스템.The storage system is:
host; and
a storage device comprising a register;
the host provides a request to enable or disable write protection of the storage device; and
The register includes fields for storing information for controlling properties of the write protection and information for controlling a security mode of the storage device, and a secure write protection support field indicating whether the storage device supports the security mode. and a secure write-protect enable field for controlling the state of the secure mode of the storage device,
before the security mode is set, the host is not authenticated and can set the write protection,
After the host reads the secure write protect support field and determines that the storage device supports the secure mode, the host performs the secure write protect through authentication using at least one keyed-hash message authentication code (HMAC). setting the security mode by setting the enable field,
after the security mode is set, the storage device restricts access to enable and disable the write protection of an unauthorized host; and
the register includes a secure write protection configuration masking field for controlling register fields of the register associated with the write protection; and
The register fields are aligned with the secure write protect configuration masking field and are accessed dependent on register values of the secure write protect configuration masking field.
상기 보안 쓰기 방지 구성 마스킹 필드에 의해 제어되는 상기 레지스터 필드들의 개수는 상기 보안 쓰기 방지 구성 마스킹 필드에 포함된 비트들의 개수보다 큰 스토리지 시스템.The method of claim 1,
The number of the register fields controlled by the secure write-protect configuration masking field is greater than the number of bits included in the secure write-protect configuration masking field.
상기 저장 장치가 상기 호스트가 상기 보안 쓰기 방지 구성 마스킹 필드에 액세스하는 것을 허용하기 전에, 상기 저장 장치는 상기 호스트의 요청이 HMAC(keyed-hash message authentication Code), SHA256(Secure Hash Algorithm 256), 및 MD5(Message-Digest algorithm 5) 중 적어도 하나를 사용하여 인증될 것을 요구하는 스토리지 시스템.The method of claim 1,
Before the storage device allows the host to access the secure write-protect configuration masking field, the storage device determines that the request of the host is a keyed-hash message authentication code (HMAC), a Secure Hash Algorithm 256 (SHA256), and A storage system that requires authentication using at least one of the Message-Digest algorithm 5 (MD5).
상기 저장 장치가 상기 호스트가 상기 보안 모드를 설정하거나 해제하는 것을 허용하기 전에, 상기 저장 장치는 상기 호스트의 상기 보안 모드를 설정하거나 해제하기 위한 요청이 HMAC(keyed-hash message authentication Code), SHA256(Secure Hash Algorithm 256), 및 MD5(Message-Digest algorithm 5) 중 적어도 하나를 사용하여 인증될 것을 요구하는 스토리지 시스템.The method of claim 1,
Before the storage device allows the host to set or release the security mode, the storage device sends a request to set or release the security mode of the host to a keyed-hash message authentication code (HMAC), SHA256 ( A storage system that requires authentication using at least one of Secure Hash Algorithm 256), and Message-Digest algorithm 5 (MD5).
상기 요청은 Request/Response Type 필드, Write Counter 필드, Nonce 필드, Block Count 필드, Data 필드, Address 필드, Result 필드 및 HMAC 필드를 포함하는 데이터 프레임을 이용하여 제공되는 스토리지 시스템.5. The method of claim 4,
The request is provided by using a data frame including a Request/Response Type field, a Write Counter field, a Nonce field, a Block Count field, a Data field, an Address field, a Result field, and an HMAC field.
상기 저장 장치는 eMMC(embedded MultiMediaCard)이고, 그리고 상기 호스트로부터의 RPMB(Replay Protected Memory Block) 요청에 응답하여 상기 보안 모드를 설정하는 스토리지 시스템.The method of claim 1,
The storage device is an embedded MultiMediaCard (eMMC), and the storage system sets the security mode in response to a Replay Protected Memory Block (RPMB) request from the host.
상기 저장 장치는 복수의 플래시 메모리 장치들 중 적어도 하나를 포함하는 스토리지 시스템.The method of claim 1,
The storage system includes at least one of a plurality of flash memory devices.
호스트; 및
저장 장치를 포함하되,
상기 저장 장치는 쓰기 방지(write protection) 모드가 활성화 상태에 있을 때, 상기 쓰기 방지 모드가 비활성화 상태에 있을 때까지 상기 저장 장치에 저장된 데이터가 변경되는 것이 방지되도록 상기 쓰기 방지 모드를 구현하고,
상기 저장 장치는 상기 쓰기 방지 모드의 상태를 변경하기 위한 쓰기 방지 변경 요청을 수신하고,
상기 호스트는 상기 저장 장치가 보안 모드를 지원하는지 여부를 표시하는 보안 쓰기 방지 서포트 필드를 읽고,
상기 저장 장치는,
상기 저장 장치의 보안 쓰기 방지 인에이블 필드가 설정되지 않으면 상기 보안 모드는 상기 비활성화 상태에 있고,
상기 호스트가 상기 보안 쓰기 방지 서포트 필드를 읽고 그리고 상기 저장 장치가 상기 보안 모드를 지원한다고 판별한 후에, 상기 저장 장치의 상기 보안 쓰기 방지 인에이블 필드 상기 보안 모드가 HMAC(keyed-hash message authentication code)를 사용한 인증을 통해 상기 호스트에 의해 설정되면 상기 보안 모드는 상기 활성화 상태에 있고,
상기 보안 모드가 상기 비활성화 상태에 있을 때, 상기 저장 장치는 상기 쓰기 방지 변경 요청에 응답하여 상기 쓰기 방지 모드의 상기 상태를 변경하고, 그리고
상기 보안 모드가 상기 활성화 상태에 있을 때, 상기 저장 장치는 상기 쓰기 방지 변경 요청에 포함된 상기 HMAC에 기반하여 상기 쓰기 방지 변경 요청에 대한 인증 과정을 수행하고, 그리고 상기 저장 장치는 상기 인증 과정이 상기 쓰기 방지 변경 요청이 유효하다는 것을 표시하지 않는 한 상기 쓰기 방지 변경 요청에 응답하여 상기 쓰기 방지 모드의 상기 상태를 변경하지 않도록 상기 보안 모드를 구현하는 스토리지 시스템.The storage system is:
host; and
including storage devices;
the storage device implements the write protection mode so that when the write protection mode is in an active state, data stored in the storage device is prevented from being changed until the write protection mode is in the inactive state,
The storage device receives a write-protect change request for changing the state of the write-protect mode,
the host reads a secure write-protect support field indicating whether the storage device supports a secure mode;
The storage device is
If the secure write-protect enable field of the storage device is not set, the security mode is in the inactive state;
After the host reads the secure write protection support field and determines that the storage device supports the security mode, the secure write protection enable field of the storage device determines that the security mode is a keyed-hash message authentication code (HMAC) When set by the host through authentication using
when the security mode is in the inactive state, the storage device changes the state of the write-protect mode in response to the write-protect change request, and
When the security mode is in the activated state, the storage device performs an authentication process for the write-protect change request based on the HMAC included in the write-protect change request, and the storage device performs the authentication process and implement the security mode not to change the state of the write protect mode in response to the write protect change request unless it indicates that the write protect change request is valid.
상기 호스트는 상기 쓰기 방지 변경 요청이 상기 HMAC를 포함하도록 상기 쓰기 방지 변경 요청을 생성하고, 그리고 상기 쓰기 방지 변경 요청을 상기 저장 장치로 전송하고,
상기 저장 장치는 상기 보안 모드가 활성화될 때, 상기 HMAC에 기반하여 상기 쓰기 방지 변경 요청에 대한 상기 인증 과정을 수행하는 스토리지 시스템.9. The method of claim 8,
the host generates the write-protect change request so that the write-protect change request includes the HMAC, and sends the write-protect change request to the storage device;
and the storage device performs the authentication process for the write protection change request based on the HMAC when the security mode is activated.
상기 호스트는 공유된 비밀 키를 이용하여 상기 저장 장치에 저장되는 인증 코드를 생성하는 스토리지 시스템.10. The method of claim 9,
The host generates an authentication code stored in the storage device using the shared secret key.
상기 저장 장치는 상기 공유된 비밀 키를 이용하여 유효성 검사 코드를 생성하고, 상기 인증 코드 및 상기 유효성 검사 코드에 기반하여 비교 동작을 수행하고, 그리고 상기 비교 동작의 결과에 기반하여 상기 쓰기 방지 변경 요청이 유효한지를 판별함으로써 상기 인증 과정을 수행하는 스토리지 시스템.11. The method of claim 10,
The storage device generates a validation code using the shared secret key, performs a comparison operation based on the authentication code and the validation code, and requests the write protection change based on a result of the comparison operation A storage system that performs the authentication process by determining whether this is valid.
상기 인증 코드는 상기 HMAC이고, 그리고
상기 유효성 검사 코드는 상기 HMAC인 스토리지 시스템.12. The method of claim 11,
the authentication code is the HMAC, and
wherein the validation code is the HMAC.
쓰기 방지(write protection)를 설정하거나 해제하기 위한 요청을 제공하는 호스트; 및
상기 호스트의 상기 요청을 수신하는 저장 장치를 포함하되,
상기 저장 장치는 레지스터를 포함하고, 그리고 상기 레지스터는 쓰기 방지 속성들을 제어하기 위한 정보를 저장하는 레지스터 필드들을 포함하고,
상기 레지스터는:
상기 저장 장치가 보안 모드를 지원하는지 여부를 표시하는 보안 쓰기 방지 서포트 필드,
상기 저장 장치의 상기 보안 모드의 상태를 제어하는 보안 쓰기 방지 인에이블 필드; 및
상기 쓰기 방지와 관련된 상기 레지스터 필드들을 제어하기 위한 보안 쓰기 방지 구성 마스킹 필드를 포함하되,
상기 레지스터 필드들은 상기 보안 쓰기 방지 구성 마스킹 필드에 정렬되고 그리고 상기 보안 쓰기 방지 구성 마스킹 필드의 레지스터 값에 의존하여 액세스되고, 그리고
상기 호스트가 상기 보안 쓰기 방지 서포트 필드를 읽고 그리고 상기 저장 장치가 상기 보안 모드를 지원한다고 판별한 후에, 상기 호스트는 적어도 하나의 HMAC(keyed-hash message authentication code)를 사용한 인증을 통해 상기 보안 쓰기 방지 인에이블 필드를 설정함으로써 상기 보안 모드를 설정하고, 그리고
상기 저장 장치는:
상기 저장 장치가 상기 호스트의 상기 요청을 인증할 때 상기 호스트의 상기 요청에 기반하여 상기 보안 모드를 설정하거나 해제하고, 그리고
상기 보안 모드가 설정된 후에, 상기 저장 장치는 인증되지 않은 호스트로부터의 액세스를 제한하는 스토리지 시스템.The storage system is:
a host that provides a request to turn write protection on or off; and
A storage device for receiving the request from the host,
the storage device includes a register, and the register includes register fields for storing information for controlling write protect properties;
The register is:
a secure write-protect support field indicating whether the storage device supports a secure mode;
a secure write-protect enable field for controlling the state of the secure mode of the storage device; and
a secure write protection configuration masking field for controlling the register fields related to the write protection;
the register fields are aligned with the secure write protect configuration masking field and are accessed dependent on a register value of the secure write protect configuration masking field, and
After the host reads the secure write protect support field and determines that the storage device supports the secure mode, the host performs the secure write protect through authentication using at least one keyed-hash message authentication code (HMAC). setting the security mode by setting an enable field, and
The storage device is:
when the storage device authenticates the request of the host, setting or disabling the security mode based on the request of the host; and
After the security mode is established, the storage device restricts access from unauthorized hosts.
상기 보안 쓰기 방지 구성 마스킹 필드에 의해 제어되는 상기 레지스터 필드들의 개수는 상기 보안 쓰기 방지 구성 마스킹 필드에 포함된 비트들의 개수보다 큰 스토리지 시스템.14. The method of claim 13,
The number of the register fields controlled by the secure write-protect configuration masking field is greater than the number of bits included in the secure write-protect configuration masking field.
상기 호스트는 상기 HMAC를 사용한 인증을 통해 상기 보안 쓰기 방지 구성 마스킹 필드에 액세스하는 스토리지 시스템.14. The method of claim 13,
wherein the host accesses the secure write-protect configuration masking field via authentication using the HMAC.
상기 호스트는 상기 HMAC를 사용한 인증을 통해 상기 레지스터 필드들을 제어하는 스토리지 시스템.14. The method of claim 13,
and the host controls the register fields through authentication using the HMAC.
상기 호스트의 상기 요청은 Request/Response Type 필드, Write Counter 필드, Nonce 필드, Block Count 필드, Data 필드, Address 필드, Result 필드, 및 HMAC 필드를 포함하는 데이터 프레임을 이용하여 제공되는 스토리지 시스템.14. The method of claim 13,
The request of the host is provided using a data frame including a Request/Response Type field, a Write Counter field, a Nonce field, a Block Count field, a Data field, an Address field, a Result field, and an HMAC field.
상기 저장 장치는 eMMC(embedded MultiMediaCard)이고, 그리고 상기 호스트로부터의 RPMB(Replay Protected Memory Block) 요청에 응답하여 상기 보안 모드를 설정하는 스토리지 시스템.14. The method of claim 13,
The storage device is an embedded MultiMediaCard (eMMC), and the storage system sets the security mode in response to a Replay Protected Memory Block (RPMB) request from the host.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/710,934 US10257192B2 (en) | 2014-05-29 | 2015-05-13 | Storage system and method for performing secure write protect thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462004344P | 2014-05-29 | 2014-05-29 | |
US62/004,344 | 2014-05-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150139420A KR20150139420A (en) | 2015-12-11 |
KR102424293B1 true KR102424293B1 (en) | 2022-07-25 |
Family
ID=55020584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150035052A KR102424293B1 (en) | 2014-05-29 | 2015-03-13 | Storage system and method for performing secure write protect thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102424293B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102501776B1 (en) * | 2018-01-31 | 2023-02-21 | 에스케이하이닉스 주식회사 | Storage device and operating method thereof |
US11714561B2 (en) | 2020-07-17 | 2023-08-01 | Samsung Electronics Co., Ltd. | System, device and method for writing data to protected region |
KR102530069B1 (en) * | 2021-10-25 | 2023-05-08 | 삼성전자주식회사 | Storage device and operating method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150286585A1 (en) | 2014-04-08 | 2015-10-08 | Micron Technology, Inc. | Apparatuses and methods for securing an access protection scheme |
-
2015
- 2015-03-13 KR KR1020150035052A patent/KR102424293B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150286585A1 (en) | 2014-04-08 | 2015-10-08 | Micron Technology, Inc. | Apparatuses and methods for securing an access protection scheme |
Also Published As
Publication number | Publication date |
---|---|
KR20150139420A (en) | 2015-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10257192B2 (en) | Storage system and method for performing secure write protect thereof | |
US11880313B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
US10324864B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
CN110457236B (en) | Storage system and method for executing and verifying write protection of storage system | |
US9678760B2 (en) | Memory card and storage system having authentication program and method for operating thereof | |
TWI620095B (en) | Apparatuses and tangible machine readable medium for securing an access protection scheme | |
US11216206B2 (en) | Method of operating data storage device | |
US8954705B2 (en) | Memory space management method and memory controller and memory storage device and memory storage using the same | |
JP2015032317A (en) | Data storage device and access control method | |
KR102424293B1 (en) | Storage system and method for performing secure write protect thereof | |
KR102213665B1 (en) | Memory card and storage system having authentication program and method for operating thereof | |
CN109063518B (en) | Data access method and system and memory storage device | |
US10324894B2 (en) | Storage device management method and system, and memory storage device thereof | |
KR20230064538A (en) | Memory controller and storage device | |
TWI497297B (en) | Portable storage device and its data security control method | |
US20140259183A1 (en) | Portable storage device and data security-control method thereof |
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 |