KR102424293B1 - Storage system and method for performing secure write protect thereof - Google Patents

Storage system and method for performing secure write protect thereof Download PDF

Info

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
Application number
KR1020150035052A
Other languages
Korean (ko)
Other versions
KR20150139420A (en
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 삼성전자주식회사
Priority to US14/710,934 priority Critical patent/US10257192B2/en
Publication of KR20150139420A publication Critical patent/KR20150139420A/en
Application granted granted Critical
Publication of KR102424293B1 publication Critical patent/KR102424293B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

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.

Figure R1020150035052
Figure R1020150035052

Description

스토리지 시스템 및 그것의 보안 쓰기 방지 수행 방법{STORAGE SYSTEM AND METHOD FOR PERFORMING SECURE WRITE PROTECT THEREOF}STORAGE SYSTEM AND METHOD FOR PERFORMING SECURE WRITE PROTECT THEREOF

본 발명은 스토리지 시스템에 관한 것으로, 더욱 상세하게는 스토리지 시스템 및 그것의 보안 쓰기 방지 수행 방법에 관한 것이다.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 SSD controller 4210 shown in FIG. 14 .
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 storage system 1000 includes a host 1100 and a storage device 1200 . The host 1100 and the storage device 1200 may communicate with each other through a standard interface such as universal flash storage (UFS), serial ATA (SATA), small computer small interface (SCSI), serial attached SCSI (SAS), and embedded MMC (eMMC). can be connected

도 1을 참조하면, 호스트 인터페이스(1101)와 장치 인터페이스(1201)는 데이터나 신호를 주고 받기 위한 데이터 라인(DIN, DOUT)과 전원을 제공하기 위한 전원 라인(PWR)으로 연결될 수 있다. 호스트(1100)는 프로세서(1105), 호스트 컨트롤러(1130), 그리고 버퍼 메모리(1140)를 포함한다. Referring to FIG. 1 , the host interface 1101 and the device interface 1201 may be connected by data lines DIN and DOUT for exchanging data or signals and a power line PWR for providing power. The host 1100 includes a processor 1105 , a host controller 1130 , and a buffer memory 1140 .

프로세서(1105)는 애플리케이션(1110)과 장치 드라이버(1120)를 실행할 수 있다. 애플리케이션(1110)은 호스트(1100)에서 실행되는 다양한 응용 프로그램들이다. 장치 드라이버(1120)는 호스트(1100)에 연결되어 사용되는 주변 장치들을 구동하기 위한 것으로, 도 1에서는 저장 장치(1200)를 구동한다. The processor 1105 may execute an application 1110 and a device driver 1120 . The applications 1110 are various application programs executed in the host 1100 . The device driver 1120 is for driving peripheral devices connected to the host 1100 and used, and drives the storage device 1200 in FIG. 1 .

애플리케이션(1110)이나 장치 드라이버(1120)는 소프트웨어(software) 또는 펌웨어(firmware) 등을 통해 구현될 수 있다. 호스트 컨트롤러(1130)는 호스트 인터페이스(1101)를 통해, 데이터를 저장 장치(1200)로 제공하거나 저장 장치(1200)로부터 데이터를 입력 받는다. The application 1110 or the device driver 1120 may be implemented through software or firmware. The host controller 1130 provides data to the storage device 1200 or receives data from the storage device 1200 through the host interface 1101 .

버퍼 메모리(1140)는 호스트(1100)의 메인 메모리(main memory) 또는 캐시 메모리로 사용될 수 있다. 또한, 버퍼 메모리(1140)는 애플리케이션(1110)이나 장치 드라이버(1120) 등과 같은 소프트웨어를 구동하기 위한 구동 메모리(driving memory)로 사용될 수도 있다. The buffer memory 1140 may be used as a main memory or a cache memory of the host 1100 . Also, the buffer memory 1140 may be used as a driving memory for driving software such as the application 1110 or the device driver 1120 .

저장 장치(1200)는 장치 인터페이스(1201)를 통해서 호스트(1100)와 연결될 수 있다. 저장 장치(1200)는 불휘발성 메모리(1210), 장치 컨트롤러(1230), 그리고 버퍼 메모리(1240)를 포함한다. 불휘발성 메모리(1210)에는 플래시 메모리, MRAM, PRAM, FeRAM 등이 포함될 수 있다. 장치 컨트롤러(1230)는 불휘발성 메모리(1210)의 쓰기, 읽기, 소거 등과 같은 전반적인 동작을 제어한다. 장치 컨트롤러(1230)는 어드레스 또는 데이터 버스를 통해 불휘발성 메모리(1210) 또는 버퍼 메모리(1240)와 데이터를 주고 받는다. The storage device 1200 may be connected to the host 1100 through the device interface 1201 . The storage device 1200 includes a nonvolatile memory 1210 , a device controller 1230 , and a buffer memory 1240 . The nonvolatile memory 1210 may include a flash memory, MRAM, PRAM, FeRAM, or the like. The device controller 1230 controls overall operations such as writing, reading, and erasing of the nonvolatile memory 1210 . The device controller 1230 exchanges data with the nonvolatile memory 1210 or the buffer memory 1240 through an address or data bus.

버퍼 메모리(1240)는 불휘발성 메모리(1210)에 저장될 또는 불휘발성 메모리(1210)로부터 읽은 데이터를 임시 저장하는 데 사용될 수 있다. 버퍼 메모리(1240)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다.The buffer memory 1240 may be used to temporarily store data to be stored in or read from the nonvolatile memory 1210 . The buffer memory 1240 may be implemented as a volatile memory or a nonvolatile memory.

도 1에 도시된 스토리지 시스템(1000)은 플래시 메모리(flash memory)를 기반으로 하는 모바일 장치 또는 다른 전자 장치에 적용될 수 있다. 이하에서는 도 1에 도시된 스토리지 시스템(1000)의 구성이나 동작 방법이 좀 더 자세하게 설명될 것이다. The storage system 1000 illustrated in FIG. 1 may be applied to a mobile device or other electronic device based on a flash memory. Hereinafter, the configuration and operation method of the storage system 1000 shown in FIG. 1 will be described in more detail.

도 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 storage system 2000 includes a host 2100 and a storage device 2200 . The storage device shown in FIG. 2 may be, for example, an embedded multimedia card (eMMC).

호스트(2100)는 프로세서(2105), 호스트 컨트롤러(2130), 그리고 버퍼 램(2140)을 포함한다. 프로세서(2105)는 애플리케이션(2110)과 장치 드라이버(2120)를 실행할 수 있다. 그리고 호스트 컨트롤러(2130)는 커맨드 큐(CMD queue, 2131), 호스트 DMA(2132), 그리고 전원 관리자(2133)를 포함한다. 커맨드 관리자(2131), 호스트 DMA(2132), 그리고 전원 관리자(2133)는 호스트 컨트롤러(2130) 내에서 알고리즘, 소프트웨어, 또는 펌웨어로 동작할 수 있다.The host 2100 includes a processor 2105 , a host controller 2130 , and a buffer RAM 2140 . The processor 2105 may execute an application 2110 and a device driver 2120 . In addition, the host controller 2130 includes a command queue (CMD queue, 2131 ), a host DMA 2132 , and a power manager 2133 . The command manager 2131 , the host DMA 2132 , and the power manager 2133 may operate as algorithms, software, or firmware in the host controller 2130 .

호스트(2100)의 프로세서(2105), 즉 애플리케이션(2110)과 장치 드라이버(2120)에서 생성된 커맨드(예를 들면, 쓰기 커맨드)는 호스트 컨트롤러(2130)의 커맨드 큐(2131)에 입력된다. 커맨드 큐(2131)는 저장 장치(2200)로 제공될 커맨드를 순서대로 저장한다. 커맨드 큐(2131)에 저장된 커맨드는 호스트 DMA(2132)로 제공된다. 호스트 DMA(2132)는 커맨드를 호스트 인터페이스(2101)를 통해 저장 장치(2200)로 보낸다. Commands (eg, write commands) generated by the processor 2105 of the host 2100 , that is, the application 2110 and the device driver 2120 are input to the command queue 2131 of the host controller 2130 . The command queue 2131 sequentially stores commands to be provided to the storage device 2200 . The commands stored in the command queue 2131 are provided to the host DMA 2132 . The host DMA 2132 sends a command to the storage device 2200 through the host interface 2101 .

계속해서 도 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 storage device 2200 includes a flash memory 2210 , a device controller 2230 , and a buffer RAM 2240 . And the device controller 2230 is a central processing unit (CPU, 2231), a command manager (CMD manager, 2232), a flash DMA (2233), a security manager (security manager, 2234), a buffer manager (2235), a flash conversion layer ( FTL (Flash Translation Layer, 2236), and a flash manager 2237. Here, the command manager 2232 , the security manager 2234 , the buffer manager 2235 , the flash translation layer 2236 , and the flash manager 2237 operate as algorithms, software, or firmware within the device controller 2230 . can do.

호스트(2100)로부터 저장 장치(2200)로 입력된 커맨드는 장치 인터페이스(2201)를 통해 커맨드 관리자(2232)로 제공된다. 커맨드 관리자(2232)는 호스트(2100)로부터 제공된 커맨드를 해석하고, 보안 관리자(2234)를 이용하여 입력된 커맨드를 인증할 수 있다. 커맨드 관리자(2232)는 버퍼 관리자(2235)를 통해 데이터를 입력받을 수 있도록 버퍼 램(2240)을 할당한다. 커맨드 관리자(2232)는 데이터 전송 준비가 완료되면, 호스트(2100)로 전송 준비 완료 신호를 보낼 수 있다.A command input from the host 2100 to the storage device 2200 is provided to the command manager 2232 through the device interface 2201 . The command manager 2232 may interpret a command provided from the host 2100 and authenticate the input command using the security manager 2234 . The command manager 2232 allocates the buffer RAM 2240 to receive data through the buffer manager 2235 . When data transmission preparation is completed, the command manager 2232 may send a transmission preparation completion signal to the host 2100 .

호스트(2100)는 전송 준비 완료 신호에 응답하여 데이터를 저장 장치(2200)로 전송한다. 데이터는 호스트 DMA(2132)와 호스트 인터페이스(2101)를 통해 저장 장치(2200)로 전송된다. 저장 장치(2200)는 제공받은 데이터를 버퍼 관리자(2235)를 통해 버퍼 램(2240)에 저장한다. 버퍼 램(2240)에 저장된 데이터는 플래시 DMA(2233)를 통해 플래시 관리자(2237)로 제공된다. 플래시 관리자(2237)는 플래시 변환 계층(2236)의 어드레스 맵핑 정보를 참조하여, 플래시 메모리(2210)의 선택된 어드레스에 데이터를 저장한다.The host 2100 transmits data to the storage device 2200 in response to the transmission preparation completion signal. Data is transmitted to the storage device 2200 through the host DMA 2132 and the host interface 2101 . The storage device 2200 stores the received data in the buffer RAM 2240 through the buffer manager 2235 . Data stored in the buffer RAM 2240 is provided to the flash manager 2237 through the flash DMA 2233 . The flash manager 2237 refers to the address mapping information of the flash translation layer 2236 and stores data in the selected address of the flash memory 2210 .

저장 장치(2200)는 커맨드에 필요한 데이터 전송과 프로그램이 완료되면, 인터페이스를 통해 호스트(2100)로 응답 신호(response)를 보내고, 커맨드 완료를 알린다. 호스트(2100)는 응답 신호를 전달받은 커맨드에 대한 완료 여부를 장치 드라이버(2120)와 애플리케이션(2110)에 알려주고, 해당 커맨드에 대한 동작을 종료한다.When the data transmission and program required for the command are completed, the storage device 2200 sends a response signal to the host 2100 through the interface and notifies the command completion. The host 2100 notifies the device driver 2120 and the application 2110 of whether the command to which the response signal is received has been completed, and ends the operation for the corresponding command.

도 2 도시된 스토리지 시스템(2000)이 사용자 장치(user device) 또는 모바일 장치(mobile device)에 사용되는 경우에, 데이터 신뢰성 및 보안을 위해 쓰기 방지(write protect)를 설정하거나 해제하는 것은 매우 중요한 문제이다. When the storage system 2000 shown in FIG. 2 is used for a user device or a mobile device, it is very important to enable or disable write protect for data reliability and security. to be.

본 발명의 실시 예에 따른 스토리지 시스템(2000)은 HMAC, SHA256(Secure Hash Algorithm 256), MD5(Message-Digest algorithm 5) 등과 같은 보안 인증(이하, HMAC 인증이라 함)을 사용한 보안 모드(secure mode) 설정을 통해 비밀 키(private key)를 가진 인증된 호스트만이 쓰기 방지(write protect)를 설정(set)하거나 해제(clear)할 수 있다.  본 발명은 기존 모바일 제품과 호환성을 유지함과 동시에, 인증을 통해 쓰기 방지 설정 및 해제와 관련된 레지스터 필드에 대한 액세스 권한을 부여함으로, 누구나 데이터를 변경할 수 있는 보안 문제를 해결할 수 있다.  The storage system 2000 according to an embodiment of the present invention is a secure mode using security authentication (hereinafter referred to as HMAC authentication) such as HMAC, Secure Hash Algorithm 256 (SHA256), and Message-Digest algorithm 5 (MD5). ) setting, only an authenticated host with a private key can set or clear write protect. The present invention maintains compatibility with existing mobile products and grants access rights to register fields related to setting and releasing write protection through authentication, thereby solving the security problem that anyone can change data.

이하에서는 도 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 storage system 2000 shown in FIG. 2 as an example.

도 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 storage system 3000 includes a host 3100 and a storage device 3200 . The storage device 3200 includes a command manager 3232 and a security manager 3234 . The security manager 3234 manages a device register.

장치 레지스터는 플래시 메모리(도 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 storage device 3200 . The device identification (CID) register consists of 128 bits and stores device identification information. Device specific data (CSD) registers provide information about how to access device contents.

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.

Figure 112015024831918-pat00001
Figure 112015024831918-pat00001

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 device register 3234 of the storage system 3000 according to an embodiment of the present invention includes a secure write protect support field and a secure write protect enable field in the EXT_CSD register. field), and a Secure WP configuration masking field.

보안 쓰기 방지 서포트 필드는 저장 장치(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 storage device 3200 supports secure write protection. The secure write-protect support field may be allocated to one or more of the low-order bytes of the mode segment of the EXT_CSD register.

예를 들면, 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 storage device 3200 continues to operate in the secure write-protect mode. When the host 3100 does not want the secure write protect operation, the secure write protect enable field may not be set.

보안 쓰기 방지 인에이블 필드는 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 storage system 3000 adds a field to support secure write protect to a register (eg, EXT_CSD) that can control secure write protect properties, sets secure write protect, and You can define a request and a response for release.

도 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 storage device 3200 includes a register related to write protection. Registers related to write security protection include the Secure WP support field, the Secure WP enable field, the Secure WP configuration masking field, as described above, In addition, an existing write-protection configuration field (WP configuration field) may be included. In Fig. 6, the register value is displayed as TRUE when it is related to secure write protection (secure WP), and FALSE when it is not related to the secure WP.

계속해서 도 6을 참조하면, 호스트(3100)는 저장 장치(3200)의 보안 쓰기 방지 서포트 필드를 읽고, 저장 장치(3200)가 보안 쓰기 방지 기능을 지원하는지 여부를 확인한다. 도 6의 예에서, 호스트(3100)는 보안 쓰기 서포트 필드의 TRUE를 읽고, 저장 장치(3200)가 보안 쓰기 방지 기능을 지원함을 확인한다.Continuing to refer to FIG. 6 , the host 3100 reads the secure write protection support field of the storage device 3200 and checks whether the storage device 3200 supports the secure write protection function. In the example of FIG. 6 , the host 3100 reads TRUE of the secure write support field, and confirms that the storage device 3200 supports the secure write protection function.

호스트(3100)는 HMAC 인증을 통해서 보안 모드를 설정할 수 있다. 보안 모드는 보안 쓰기 방지 인에이블 필드에 의해 설정될 수 있다. 보안 쓰기 방지 인에이블 필드에 TRUE로 한 번 설정된 다음부터는 계속해서 보안 모드로 동작하게 된다. 만약, 호스트(3100)가 보안 쓰기 방지 동작을 원하지 않는 경우에는 보안 쓰기 방지 인에이블 필드를 설정하지 않을 수 있다. The host 3100 may set the security mode through HMAC authentication. The security mode may be set by the secure write-protect enable field. After the secure write-protect enable field is set to TRUE once, it continues to operate in the secure mode. If the host 3100 does not want the secure write protect operation, the secure write protect enable field may not be set.

스토리지 시스템(3000)은 HMAC인증을 사용한 보안 모드(secure mode) 설정을 통해 비밀 키(private key)를 가진, 인증된 호스트(3100)만이 쓰기 방지(write protect)를 설정 또는 해제함으로, 해당 영역의 데이터를 변경할 수 있는 권한을 부여할 수 있다.  즉, 본 발명의 실시 예에 따른 스토리지 시스템(3000)은 보안 모드(secure mode) 설정을 통해, 저장 장치(3200)의 기존 쓰기 방지(write protect)와 관련된 특징(feature)을 인증(Authentication)을 통해 관리함으로, 기존의 쓰기 방지 특징(write protect feature)을 유지할 수 있다. 또한, 본 발명은 사용자의 선택에 따라서, 인증을 활용한 개선된 방식의 쓰기 방지(write protect)를 수행할 수 있다. The storage system 3000 sets or cancels write protect only by the authenticated host 3100 having a private key through the secure mode setting using HMAC authentication, You can grant permission to change data. That is, the storage system 3000 according to an embodiment of the present invention authenticates a feature related to an existing write protect of the storage device 3200 through a secure mode setting. By managing it through, it is possible to maintain the existing write protect feature. In addition, according to the user's selection, the present invention can perform write protect in an improved method utilizing authentication.

본 발명의 실시 예에 따른 스토리지 시스템(3000)은 기존의 모바일 제품에서 사용하던 쓰기 방지 속성(Permanent, Power-on, Temporary)을 그대로 갖는다. 또한, 본 발명은 보안 모드 설정으로 기존 쓰기 방지 기능에 대한 구성(configuration)을 담고 있는 레지스터 필드(register field)에 얼라인된(aligned) 보안 쓰기 방지 구성 마스킹 필드(Secure WP configuration masking field)를 활성화한다. The storage system 3000 according to an embodiment of the present invention has the write protection properties (Permanent, Power-on, Temporary) used in existing mobile products. In addition, the present invention activates the Secure WP configuration masking field aligned to the register field containing the configuration for the existing write-protect function by setting the security mode. do.

도 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 storage system 3000 according to an embodiment of the present invention, a smaller number of mask bits than a control target field may mask a plurality of fields according to an implementation method. For example, it is possible to determine whether to allow access to all fields with one mask bit.

보안 쓰기 방지 구성 마스킹 필드의 값에 의해서 실제로 쓰기 방지를 설정 또는 해제하는 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 host 3100 using HMAC. The present invention can not only maintain compatibility with existing mobile products, but also ensure that only the host 3100 authenticated through HMAC authentication has access to the register fields related to setting and releasing of write protection, so that security data can be safely protected. can

한편, 본 발명의 실시 예에 따른 스토리지 시스템(3000)은 보안 쓰기 방지(secure WP)를 설정(set)하거나 해제(clear)하기 위한 요청(request)과 응답(response)를 추가할 수 있다. 보안 쓰기 방지의 설정 및 해제를 위해서는, HMAC 인증을 통해 위에서 정의한 레지스터 필드 값에 대한 제어를 필요로 한다. Meanwhile, the storage system 3000 according to an embodiment of the present invention may add a request and a response for setting or clearing a secure WP. In order to enable and disable secure write protection, it is necessary to control the value of the register field defined above through HMAC authentication.

도 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 host 3100 to the storage device 3200, and a response from the storage device 3200 to the host 3100 ( response) is sent. The authentication key/message authentication code (MAC) has a length of 32 bytes, and in the case of a request, it is a key or MAC, and in the case of a response, it is a MAC. Write Counter has a length of 4 bytes and is a total count value of successfully authenticated data write requests made by the host 3100 .

도 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 host 3100 to the storage device 3200 . In an authenticated register write request, the MAC has the HMAC value. And Data has the actual data value of the register field to be set. Address is the offset value of the register field to be accessed. And the Request/Response Type will be an authenticated register write request.

계속해서 도 8을 참조하면, 인증된 레지스터 쓰기 응답은 저장 장치(3200)로부터 호스트(3100)로 제공된다. 인증된 레지스터 응답 요청에서, Data와 Address는 각각 0으로 설정될 수 있다. 그리고 Request/Response Type은 인증된 레지스터 읽기 요청일 것이다.Continuing to refer to FIG. 8 , the authenticated register write response is provided from the storage device 3200 to the host 3100 . In an authenticated register response request, Data and Address may each be set to 0. And the Request/Response Type will be an authenticated register read request.

도 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 host 3100 to the storage device 3200 , and a response is provided from the storage device 3200 to the host 3100 . In authenticated register read requests and responses, Data may be set to zero. Address may be set to the offset of the register field to be accessed in read requests, and may be set to 0 in read responses. And Request/Response Type will be set to authenticated register read request and response, respectively.

도 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 storage device 3200 authenticates a secure mode setting.

S110 단계에서, 저장 장치(3200)의 커맨드 관리자(3232)는 호스트(3100)로부터 보안 모드 요청을 입력받는다. 저장 장치(3200)는 보안 모드 요청을 입력받고, 보안 모드를 설정할 수 있다. 즉, 저장 장치(3200)는 적용하고자 하는 보안 모드를 새롭게 구성할 수 있다. In step S110 , the command manager 3232 of the storage device 3200 receives a security mode request from the host 3100 . The storage device 3200 may receive a security mode request and set a security mode. That is, the storage device 3200 may newly configure a security mode to be applied.

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 command manager 3232 interprets the data frame of the secure mode request. In step S130, the security manager 3234 of the storage device 3200 calculates a keyed-hash message authentication code (HMAC) using the shared secret key. The security manager 3234 may calculate the HMAC using a private key and a message. The security manager 3234 may calculate the HMAC using Message-Digest algorithm 5 (MD5), Secure Hash Algorithm 1 (SHA1), Secure Hash Algorithm 256 (SHA256), and the like.

S140 단계에서, 보안 관리자(3234)는 보안 모드(secure mode) 요청의 데이터 프레임으로부터 얻은 HMAC과 S130 단계에서 계산한 HMAC을 비교한다. 도 8에 도시된 바와 같이, 호스트(3100)로부터 제공된 인증된 레지스터 쓰기 요청의 데이터 프레임(data frame)은 HMAC을 포함한다. 보안 관리자(3234)는 호스트(3100)로부터 제공된 HMAC과 저장 장치(3200) 내에서 계산한 HMAC을 비교함으로, 보안 모드 요청을 인증할 수 있다. In step S140 , the security manager 3234 compares the HMAC obtained from the data frame of the secure mode request with the HMAC calculated in step S130 . As shown in FIG. 8 , the data frame of the authenticated register write request provided from the host 3100 includes the HMAC. The security manager 3234 may authenticate the security mode request by comparing the HMAC provided from the host 3100 with the HMAC calculated in the storage device 3200 .

S150 단계에서, 보안 관리자(3234)는 S140 단계에서의 비교 결과를 근거로 하여, 보안 모드 요청이 유효한지를 판단한다. 보안 관리자(3234)는 호스트(3100)로부터 제공된 HMAC과 저장 장치(3200) 내에서 계산한 HMAC가 일치하면, 보안 모드 요청이 유효(valid)하다고 판단한다. 일치하지 않으면, 보안 모드 요청이 유효하지 않다고 판단한다.In step S150 , the security manager 3234 determines whether the security mode request is valid based on the comparison result in step S140 . If the HMAC provided from the host 3100 and the HMAC calculated in the storage device 3200 match, the security manager 3234 determines that the security mode request is valid. If they do not match, it is determined that the secure mode request is invalid.

S160 단계에서, 보안 모드 요청이 유효한 경우에, 보안 관리자(3234)는 보안 모드 요청에 따라 보안 모드를 설정한다. S165 단계에서, 보안 모드 요청이 유효하지 않은 경우에, 보안 관리자(3234)는 보안 모드 요청을 거절(reject)한다.In step S160, if the security mode request is valid, the security manager 3234 sets the security mode according to the security mode request. In step S165 , if the secure mode request is not valid, the security manager 3234 rejects the secure mode request.

도 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 host 3100 sets a secure mode through a replay protected memory block (RPMB) request. That is, the host 3100 reads the secure write protection support field, checks whether the storage device 3200 supports the secure write protection function, and then sets the security mode. The storage device 3200 may set the security mode by including the secure write-protect enable field in the EXT_CSD register.

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 host 3100 enables secure write protection masking through a replay protected memory block (RPMB) request. The storage device 3200 may enable the masking field by including the secure write-protect configuration masking field in the EXT_CSD register.

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 storage device 3200 has write protect features (WP features), CMD 28 sets the write protect bit of the addressed group. Write-protect properties (WP properties) are coded in device specific data.

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 host 3100 may determine write-protect properties (Permanent, Power-on, Temporary) according to the USER_WP field of EXT_CSD[171].

S270 단계에서, 쓰기 방지를 설정한다. EXT_CSD에 설정해 놓은 쓰기 방지 특성으로, 저장 장치(3200)에 대한 쓰기 방지를 설정한다.In step S270, write protection is set. As the write-protection characteristic set in EXT_CSD, write-protection of the storage device 3200 is set.

본 발명의 실시 예에 따른 스토리지 시스템(3000)은 EXT_CSD에 보안 모드와 보안 쓰기 방지 구성 마스킹 필드를 추가한다. 이러한 필드들은 CMD 6(SWITCH)로 액세스할 수 없고, RPMB를 이용한 인증 과정을 거쳐야 쓰기 가능하다. HMAC 인증을 통한 보안 모드 비트가 셋팅된 후에는, 어느 누구도 CMD 28로 쓰기 방지를 설정할 수 없게 된다. HMAC 인증을 통해 보안 쓰기 방지 구성 마스킹 필드의 WP Set enable 값을 셋팅 해야만 CMD 28로 쓰기 방지 설정을 할 수 있다. The storage system 3000 according to an embodiment of the present invention adds a security mode and a secure write-protect configuration masking field to EXT_CSD. These fields cannot be accessed with CMD 6 (SWITCH), and can be written through an authentication process using RPMB. After the secure mode via HMAC authentication bit is set, no one can set write protection with CMD 28. Write-protect can be set with CMD 28 only by setting the WP Set enable value of the secure write-protect configuration masking field through HMAC authentication.

본 발명의 실시 예에 따른 스토리지 시스템(3000)은 호스트(3100)가 저장 장치(3200)를 직접 제어하던 방식을 인증 기반 방식으로 전환하고자, 모드 변경을 위한 레지스터와 인증 방식에 의해서만 액세스되는 마스킹 필드를 추가한다. 본 발명에 의하면, 기존의 제어 방식을 그대로 유지하거나, 사용자의 선택에 따라서 인증 기반으로 제어할 수 있다. 실시 예로, eMMC의 경우에, RPMB를 이용하여 보안 쓰기 방지(secure WP)을 구현할 수 있다. In the storage system 3000 according to an embodiment of the present invention, in order to convert the method in which the host 3100 directly controls the storage device 3200 to the authentication-based method, a register for mode change and a masking field accessed only by the authentication method add According to the present invention, it is possible to maintain the existing control method as it is, or to control based on authentication according to a user's selection. For example, in the case of eMMC, secure write protection (secure WP) may be implemented using RPMB.

한편, 본 발명의 실시 예에 따른 스토리지 시스템(3000)은 Automatic power-on recovery를 통해, PMIC 을 이용한 security attack 이 불가능하게 할 수 있다. 또한, 본 발명은 기존 모바일 제품에 보안 모드(secure mode)를 추가함으로, 모든 쓰기 방지(write protect) 관련 특징을 관리(managing)할 수 있다. 보안 모드(secure mode) 진입 후, 모든 쓰기 방지(write protect)에 관한 구성(configuration)은 보안 쓰기 방지 구성 마스킹 필드를 통해 변경할 수 있다. Meanwhile, the storage system 3000 according to an embodiment of the present invention may disable a security attack using a PMIC through automatic power-on recovery. In addition, the present invention can manage all write protect related features by adding a secure mode to the existing mobile product. After entering the secure mode, all write protect configurations can be changed through the secure write protect configuration masking field.

도 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 storage device 3200 includes a flash memory 3200a and a memory controller 3200b. The memory controller 3200b is connected to the host through the host interface controller 3201 and is connected to the flash memory 3200a through the flash interface controller 3202 . The memory controller 3200b includes a central processing unit (CPU, 3210), code RAM 3221, data RAM 3222, buffer RAM 3223, ROM 3230, DMA 3240, HMAC 3250, AES ( 3260 ), and the ECC 3270 .

중앙처리장치(3210)는 메모리 컨트롤러(3200b)의 제반 동작을 제어할 수 있다. 예를 들면, 중앙처리장치(3210)는 부팅 동작 시에 플래시 메모리(3200a) 또는 롬(3230)에 저장된 부트 코드를 코드 램(3221)에 로딩함으로, 저장 장치(3200)의 부팅 동작을 제어할 수 있다. The central processing unit 3210 may control overall operations of the memory controller 3200b. For example, the central processing unit 3210 controls the booting operation of the storage device 3200 by loading the boot code stored in the flash memory 3200a or the ROM 3230 into the code RAM 3221 during the booting operation. can

계속해서 도 12를 참조하면, 메모리 컨트롤러(3200b)는 메모리를 직접 액세스하기 위한 DMA(Direct Memory Access, 3240), 데이터 보안을 위한 HMAC(3250)과 AES(Advanced Encryption Standard, 3260), 그리고 데이터 에러 정정을 위한 ECC(3270)를 포함할 수 있다.Continuing to refer to FIG. 12 , the memory controller 3200b includes a DMA (Direct Memory Access, 3240) for directly accessing a memory, an HMAC 3250 and AES (Advanced Encryption Standard, 3260) for data security, and a data error ECC 3270 for correction may be included.

도 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 storage device 3200 includes a host interface layer (HIL) 110, a security layer (SEL) 115, a flash translation layer (FTL), 120), a flash interface layer (FIL; 130), and a flash recovery layer (FRL; flash recovery layer, 140).

중앙처리장치(3210)는 호스트 인터페이스 레이어(HIL, 110)를 이용하여, 호스트 인터페이스 컨트롤러(3201)를 호스트로부터 데이터를 입력받고 데이터 램(3221)에 저장하는 동작을 제어할 수 있다. 중앙처리장치(3210)는 호스트와 데이터를 주고 받을 때 보안 레이어(SEL, 115)를 이용하여, 호스트의 커맨드를 인증하고, 쓰기 방지 영역을 설정할 수 있다. 도 3에 도시된 보안 관리자(3234)는 보안 레이어(SEL, 115)에서 구동하는 소프트웨어일 수 있다.The central processing unit 3210 may control the operation of receiving data from the host and storing the data in the data RAM 3221 by the host interface controller 3201 using the host interface layer (HIL) 110 . The central processing unit 3210 may use the security layer SEL 115 to authenticate a command of the host and set a write-protection area when data is exchanged with the host. The security manager 3234 shown in FIG. 3 may be software running in the security layer SEL 115 .

한편, 중앙처리장치(3210)는 플래시 인터페이스 레이어(FIL, 130)를 이용하여 데이터 램(3222) 또는 버퍼 램(3223)에 저장된 데이터를 플래시 인터페이스 컨트롤러(3202)를 통해 플래시 메모리(3200a)로 제공할 수 있다. 또한, 중앙처리장치(3210)는 플래시 변환 레이어(FTL, 120)를 이용하여, 어드레스 맵핑 동작 등 플래시 메모리(3200a)의 주요 동작을 관리할 수 있다. 그리고 중앙처리장치(3210)는 플래시 리커버리 레이어(FRL, 140)를 이용하여, 플래시 메모리(3200a)의 리커버리 동작을 관리할 수 있다. Meanwhile, the central processing unit 3210 provides data stored in the data RAM 3222 or the buffer RAM 3223 to the flash memory 3200a through the flash interface controller 3202 using the flash interface layer (FIL, 130). can do. Also, the central processing unit 3210 may manage major operations of the flash memory 3200a, such as an address mapping operation, by using the flash translation layer (FTL) 120 . In addition, the central processing unit 3210 may manage the recovery operation of the flash memory 3200a by using the flash recovery layer FRL 140 .

본 발명의 실시 예에 따른 저장 장치(3200)는 보안 쓰기 방지 구성 마스킹 필드의 값에 의해서 실제로 쓰기 방지를 설정 또는 해제하는 Normal CMD 동작의 유효(valid) 여부가 결정된다. 보안 모드(secure mode) 설정과 마찬가지로, 보안 쓰기 방지 구성 마스킹 필드 값도 HMAC을 사용한 인증된 호스트(3100)에 의해서 결정된다. 본 발명은 기존 모바일 제품과 호환성을 유지할 수 있을 뿐만 아니라, HMAC 인증을 통해 인증된 호스트(3100)만 쓰기 방지의 설정 및 해제와 관련된 레지스터 필드에 대한 액세스 권한을 가짐으로, 보안 데이터를 안전하게 보호할 수 있다.In the storage device 3200 according to an embodiment of the present invention, whether the normal CMD operation for actually setting or canceling write protection is valid is determined by the value of the secure write protection configuration masking field. Similar to the secure mode setting, the secure write-protect configuration masking field value is also determined by the authenticated host 3100 using HMAC. The present invention can not only maintain compatibility with existing mobile products, but also ensure that only the host 3100 authenticated through HMAC authentication has access to the register fields related to setting and releasing of write protection, so that security data can be safely protected. can

한편, 본 발명의 실시 예에 따른 스트로지 시스템은 여러 가지 제품에 적용 또는 응용될 수 있다. 본 발명의 실시 예에 따른 스토리지 시스템은 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, 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 system 4000 includes a host 4100 and an SSD 4200 .

SSD(4200)는 신호 커넥터(signal connector, 4211)를 통해 호스트(4100)와 신호를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력받는다. SSD(4200)는 복수의 플래시 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다. The SSD 4200 transmits and receives signals to and from the host 4100 through a signal connector 4211 , and receives power through a power connector 4221 . The SSD 4200 may include a plurality of flash memories 4201 to 420n , an SSD controller 4210 , and an auxiliary power supply 4220 .

복수의 플래시 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. SSD(4200)는 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등의 불휘발성 메모리 장치가 사용될 수도 있다. 복수의 플래시 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 플래시 메모리가 연결될 수 있다. 하나의 채널에 연결되는 플래시 메모리는 동일한 데이터 버스에 연결될 수 있다. The plurality of flash memories 4201 to 420n are used as storage media of the SSD 4200 . The SSD 4200 may be a nonvolatile memory device such as PRAM, MRAM, ReRAM, or FRAM in addition to flash memory. The plurality of flash memories 4201 to 420n may be connected to the SSD controller 4210 through a plurality of channels CH1 to CHn. One or more flash memories may be connected to one channel. Flash memories connected to one channel may be connected to the same data bus.

SSD 컨트롤러(4210)는 신호 커넥터(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 플래시 메모리 에 데이터를 쓰거나 해당 플래시 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)의 내부 구성은 도 15를 참조하여 상세하게 설명된다.The SSD controller 4210 exchanges a signal SGL with the host 4100 through the signal connector 4211 . Here, the signal SGL may include a command, an address, and data. The SSD controller 4210 writes data to or reads data from the flash memory according to a command from the host 4100 . An internal configuration of the SSD controller 4210 will be described in detail with reference to FIG. 15 .

보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.The auxiliary power supply 4220 is connected to the host 4100 through the power connector 4221 . The auxiliary power supply 4220 may receive power PWR from the host 4100 and charge it. Meanwhile, the auxiliary power supply 4220 may be located within the SSD 4200 or may be located outside the SSD 4200 . For example, the auxiliary power supply 4220 is located on the main board and may provide auxiliary power to the SSD 4200 .

도 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 SSD controller 4210 shown in FIG. 14 . Referring to FIG. 15 , the SSD controller 4210 includes an NVM interface 4211 , a host interface 4212 , an ECC circuit 4213 , a central processing unit (CPU) 4214 , and a buffer memory 4215 .

NVM 인터페이스(4211)는 버퍼 메모리(4215)로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 플래시 메모리(4201~420n)로부터 읽은 데이터를 버퍼 메모리(4215)로 전달한다. 여기에서, NVM 인터페이스(4211)는 플래시 메모리의 인터페이스 방식을 사용할 수 있다. 즉, SSD 컨트롤러(4210)는 플래시 메모리 인터페이스 방식에 따라 프로그램, 읽기, 또는 소거 동작 등을 수행할 수 있다.The NVM interface 4211 scatters data transferred from the buffer memory 4215 to respective channels CH1 to CHn. In addition, the NVM interface 4211 transfers data read from the flash memories 4201 to 420n to the buffer memory 4215 . Here, the NVM interface 4211 may use a flash memory interface method. That is, the SSD controller 4210 may perform a program, read, or erase operation according to the flash memory interface method.

호스트 인터페이스(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 host interface 4212 provides interfacing with the SSD 4200 in response to a protocol of the host 4100 . The host interface 4212 is a host (Universal Serial Bus), SCSI (Small Computer System Interface), PCI express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI), etc. 4100) can be communicated with. Also, the host interface 4212 may perform a disk emulation function that supports the host 4100 to recognize the SSD 4200 as a hard disk drive (HDD).

ECC 회로(4213)는 플래시 메모리(4201~420n)로 전송되는 데이터를 이용하여, 에러 정정 코드(ECC)를 생성한다. 그렇게 생성된 에러 정정 코드(ECC)는 플래시 메모리(4201~420n)의 스페어 영역(spare area)에 저장된다. ECC 회로(4213)는 플래시 메모리(4201~420n)로부터 읽은 데이터의 에러를 검출한다. 만약 검출된 에러가 정정 용량 내이면, ECC 회로(4213)는 검출된 에러를 정정한다. The ECC circuit 4213 generates an error correction code (ECC) using data transmitted to the flash memories 4201 to 420n. The error correction code ECC thus generated is stored in spare areas of the flash memories 4201 to 420n. The ECC circuit 4213 detects errors in data read from the flash memories 4201 to 420n. If the detected error is within the correction capacity, the ECC circuit 4213 corrects the detected error.

중앙 처리 장치(4214)는 호스트(4100, 도 14 참조)로부터 입력된 신호(SGL)를 분석하고 처리한다. 중앙 처리 장치(4214)는 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 플래시 메모리(4201~420n)를 제어한다. 중앙 처리 장치(4214)는 SSD(4200)을 구동하기 위한 펌웨어에 따라서 플래시 메모리(4201~420n)의 동작을 제어한다.The central processing unit 4214 analyzes and processes the signal SGL input from the host 4100 (refer to FIG. 14 ). The central processing unit 4214 controls the host 4100 or the flash memories 4201 to 420n through the host interface 4212 or the NVM interface 4211 . The central processing unit 4214 controls the operations of the flash memories 4201 to 420n according to firmware for driving the SSD 4200 .

버퍼 메모리(4215)는 호스트(4100)로부터 제공되는 쓰기 데이터 또는 플래시 메모리로부터 읽은 데이터를 임시로 저장한다. 또한, 버퍼 메모리(4215)는 플래시 메모리(4201~420n)에 저장될 메타 데이터나 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 버퍼 메모리(4215)에 저장된 메타 데이터나 캐시 데이터는 플래시 메모리(4201~420n)에 저장된다. 버퍼 메모리(4215)에는 DRAM, SRAM 등이 포함될 수 있다. The buffer memory 4215 temporarily stores write data provided from the host 4100 or data read from the flash memory. Also, the buffer memory 4215 may store metadata or cache data to be stored in the flash memories 4201 to 420n. During the sudden power-off operation, metadata or cache data stored in the buffer memory 4215 is stored in the flash memories 4201 to 420n. The buffer memory 4215 may include DRAM, SRAM, or the like.

도 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 electronic device 5000 may be implemented as a personal computer (PC) or a portable electronic device such as a notebook computer, a mobile phone, a personal digital assistant (PDA), and a camera.

도 16을 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다.Referring to FIG. 16 , the electronic device 5000 includes a memory system 5100 , a power supply unit 5200 , an auxiliary power supply unit 5250 , a central processing unit 5300 , a RAM 5400 , and a user interface 5500 . include The memory system 5100 includes a flash memory 5110 and a memory controller 5120 .

도 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 memory card system 6000 includes a host 6100 and a memory card 6200 . The host 6100 includes a host controller 6110 and a host connection unit 6120 . The memory card 6200 includes a card connection unit 6210 , a card controller 6220 , and a flash memory 6230 .

호스트(6100)는 메모리 카드(6200)에 데이터를 쓰거나, 메모리 카드(6200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(6110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(6100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(6120)을 통해 메모리 카드(6200)로 전송한다.The host 6100 writes data to the memory card 6200 or reads data stored in the memory card 6200 . The host controller 6110 transmits a command (eg, a write command), a clock signal CLK generated from a clock generator (not shown) in the host 6100 , and data DAT through the host connection unit 6120 . transferred to the memory card 6200 .

카드 컨트롤러(6220)는 카드 접속 유닛(6210)을 통해 수신된 쓰기 커맨드에 응답하여, 카드 컨트롤러(6220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(6230)에 저장한다. 플래시 메모리(6230)는 호스트(6100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(6100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다. The card controller 6220 responds to a write command received through the card connection unit 6210 and synchronizes with a clock signal generated from a clock generator (not shown) in the card controller 6220 to the flash memory 6230 . save to The flash memory 6230 stores data transmitted from the host 6100 . For example, when the host 6100 is a digital camera, image data is stored.

한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 예를 들어, 본 발명의 범위는 플래시 메모리 장치에 한정되지 않는다. 본 발명은 변환 계층에 의한 어드레스 변환이 사용되는 모든 저장 장치에 적용될 수 있다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다. 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.
제 1 항에 있어서,
상기 보안 쓰기 방지 구성 마스킹 필드에 의해 제어되는 상기 레지스터 필드들의 개수는 상기 보안 쓰기 방지 구성 마스킹 필드에 포함된 비트들의 개수보다 큰 스토리지 시스템.
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.
제 1 항에 있어서,
상기 저장 장치가 상기 호스트가 상기 보안 쓰기 방지 구성 마스킹 필드에 액세스하는 것을 허용하기 전에, 상기 저장 장치는 상기 호스트의 요청이 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).
제 1 항에 있어서,
상기 저장 장치가 상기 호스트가 상기 보안 모드를 설정하거나 해제하는 것을 허용하기 전에, 상기 저장 장치는 상기 호스트의 상기 보안 모드를 설정하거나 해제하기 위한 요청이 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).
제 4 항에 있어서,
상기 요청은 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.
제 1 항에 있어서,
상기 저장 장치는 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.
제 1 항에 있어서,
상기 저장 장치는 복수의 플래시 메모리 장치들 중 적어도 하나를 포함하는 스토리지 시스템.
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.
제 8 항에 있어서,
상기 호스트는 상기 쓰기 방지 변경 요청이 상기 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.
제 9 항에 있어서,
상기 호스트는 공유된 비밀 키를 이용하여 상기 저장 장치에 저장되는 인증 코드를 생성하는 스토리지 시스템.
10. The method of claim 9,
The host generates an authentication code stored in the storage device using the shared secret key.
제 10 항에 있어서,
상기 저장 장치는 상기 공유된 비밀 키를 이용하여 유효성 검사 코드를 생성하고, 상기 인증 코드 및 상기 유효성 검사 코드에 기반하여 비교 동작을 수행하고, 그리고 상기 비교 동작의 결과에 기반하여 상기 쓰기 방지 변경 요청이 유효한지를 판별함으로써 상기 인증 과정을 수행하는 스토리지 시스템.
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.
제 11 항에 있어서,
상기 인증 코드는 상기 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.
제 13 항에 있어서,
상기 보안 쓰기 방지 구성 마스킹 필드에 의해 제어되는 상기 레지스터 필드들의 개수는 상기 보안 쓰기 방지 구성 마스킹 필드에 포함된 비트들의 개수보다 큰 스토리지 시스템.
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.
제 13 항에 있어서,
상기 호스트는 상기 HMAC를 사용한 인증을 통해 상기 보안 쓰기 방지 구성 마스킹 필드에 액세스하는 스토리지 시스템.
14. The method of claim 13,
wherein the host accesses the secure write-protect configuration masking field via authentication using the HMAC.
제 13 항에 있어서,
상기 호스트는 상기 HMAC를 사용한 인증을 통해 상기 레지스터 필드들을 제어하는 스토리지 시스템.
14. The method of claim 13,
and the host controls the register fields through authentication using the HMAC.
제 13 항에 있어서,
상기 호스트의 상기 요청은 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.
제 13 항에 있어서,
상기 저장 장치는 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.
KR1020150035052A 2014-05-29 2015-03-13 Storage system and method for performing secure write protect thereof KR102424293B1 (en)

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)

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

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

Patent Citations (1)

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