KR20210090505A - 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치 - Google Patents

메모리 컨트롤러, 및 이를 포함하는 스토리지 장치 Download PDF

Info

Publication number
KR20210090505A
KR20210090505A KR1020200003885A KR20200003885A KR20210090505A KR 20210090505 A KR20210090505 A KR 20210090505A KR 1020200003885 A KR1020200003885 A KR 1020200003885A KR 20200003885 A KR20200003885 A KR 20200003885A KR 20210090505 A KR20210090505 A KR 20210090505A
Authority
KR
South Korea
Prior art keywords
security
data
user
biometric
memory controller
Prior art date
Application number
KR1020200003885A
Other languages
English (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 KR1020200003885A priority Critical patent/KR20210090505A/ko
Priority to US17/036,844 priority patent/US11651061B2/en
Priority to CN202110006882.2A priority patent/CN113113068A/zh
Priority to EP21150564.9A priority patent/EP3848829A1/en
Publication of KR20210090505A publication Critical patent/KR20210090505A/ko

Links

Images

Classifications

    • 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F21/80Protecting 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 in storage media based on magnetic or optical technology, e.g. disks with sectors
    • G06F21/805Protecting 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 in storage media based on magnetic or optical technology, e.g. disks with sectors using a security table for the storage sub-system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Abstract

메모리 컨트롤러 및 이를 포함하는 스토리지 장치가 개시된다. 본 개시의 기술적 사상에 따른 암호화된 사용자 데이터가 저장되는 보안 영역을 포함하는 비휘발성 메모리의 데이터 기입 및 독출을 제어하는 메모리 컨트롤러는, 생체 인식 모듈로부터 수신되는 생체 인증 데이터를 보안 표준 프로토콜에 따른 데이터 포맷을 갖는 보안 설정 데이터로 변환하고, 상기 보안 설정 데이터를 기초로 상기 보안 영역의 엑세스 제어를 위하여 설정되는 사용자 권한(authority)에 대한 권한 등록 및 권한 인증을 수행하는 보안 엑세스 제어 모듈, 및 상기 보안 영역에 대한 엑세스가 허용되면, 호스트 장치로부터 수신되는 사용자 데이터에 대한 암호화 또는 상기 보안 영역으로부터 독출되는 상기 암호화된 사용자 데이터에 대한 복호화를 수행하는 데이터 처리부를 포함할 수 있다.

Description

메모리 컨트롤러, 및 이를 포함하는 스토리지 장치{Memory controller, storage device including the same}
본 개시의 기술적 사상은 스토리지 장치에 관한 것이며, 더욱 상세하게는, 자가 암호화를 지원하는 메모리 컨트롤러 및 이를 포함하는 스토리지 장치에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있으며, SSD(Solid State Drive) 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있다. 최근, 데이터 보안에 대한 요구가 높아짐에 따라 보안이 요구되는 중요한 데이터를 안전하게 보관하고, 스토리지 장치가 폐기되거나 도난 당하더라도 데이터 유출을 방지하기 위한 보안 기능들이 개발되고 있다. 스토리지 장치의 보안 기능들 중 자가 암호화 드라이브(self encrypting drive, SED)는 데이터를 암호화하여 라이트하고 암호화된 데이터를 복호하여 리드함으로써 높은 데이터 보호 기능을 제공할 수 있다.
다만, 스토리지 장치에서 제공하는 보안 기능은 호스트 장치의 커맨드에 종속적으로 동작할 수 있으므로, 호스트 장치에서 스토리지 장치의 보안 기능 사용을 설정할 수 있는 커맨드 전송을 지원하지 않는 경우, 스토리지 장치의 보안 기능이 활용될 수 없다. 따라서, 보다 다양한 호스트 장치의 제어 하에 동작할 수 있는 스토리지 장치에 대한 필요성이 증대되고 있다.
본 개시의 기술적 사상은, 스토리지 장치가 다양한 종류의 호스트 장치에 연결되어도 스토리지 장치의 보안 기능을 제공할 수 있는 메모리 컨트롤러 및 이를 포함하는 스토리지 장치를 제공하는 데 있다.
본 개시의 기술적 사상에 따른 암호화된 사용자 데이터가 저장되는 보안 영역을 포함하는 비휘발성 메모리의 데이터 기입 및 독출을 제어하는 메모리 컨트롤러는, 생체 인식 모듈로부터 수신되는 생체 인증 데이터를 보안 표준 프로토콜에 따른 데이터 포맷을 갖는 보안 설정 데이터로 변환하고, 상기 보안 설정 데이터를 기초로 상기 보안 영역의 엑세스 제어를 위하여 설정되는 사용자 권한에 대한 권한 등록 및 권한 인증을 수행하는 보안 엑세스 제어 모듈, 및 상기 보안 영역에 대한 엑세스가 허용되면, 호스트 장치로부터 수신되는 사용자 데이터에 대한 암호화 또는 상기 보안 영역으로부터 독출되는 상기 암호화된 사용자 데이터에 대한 복호화를 수행하는 데이터 처리부를 포함할 수 있다.
또한, 본 개시의 기술적 사상에 따른 스토리지 장치는, 암호화된 사용자 데이터가 저장되는 보안 영역을 포함하는 비휘발성 메모리, 및 상기 비휘발성 메모리의 데이터 기입 및 독출을 제어하는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 스토리지 장치가 제1 호스트 장치에 연결되면, 상기 제1 호스트 장치와의 통신을 위하여 설정되는 보안 프로토콜에 따라 상기 제1 호스트 장치로부터 수신되는 패스워드를 기초로 상기 보안 영역에 대한 엑세스 권한을 갖는 사용자에 대한 권한 인증을 수행하고, 상기 스토리지 장치가 제2 호스트 장치에 연결되면, 생체 인식 모듈로부터 수신되는 생체 인증 데이터를 기초로 상기 권한 인증을 수행할 수 있다.
본 개시의 기술적 사상에 따르면, 메모리 컨트롤러가 생체 인식 모듈로부터 수신되는 생체 인증 데이터를 기초로, 보안 표준 프로토콜에 따른 보안 기능의 설정을 호스트 장치의 제어 없이 자체적으로 수행함으로써, 스토리지 장치가 보안 표준 프로토콜에 따른 보안 커맨드를 제공하지 않는 호스트 장치와 연결되더라도 스토리지 장치가 보안 기능을 제공할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 장치 및 스토리지 시스템을 나타내는 블록도이다.
도 2a 및 도 2b는 본 개시의 예시적 실시예에 따른 스토리지 장치에서, 연결되는 호스트 장치에 따라 메모리 컨트롤러가 사용자 권한 인증을 수행하는 방법을 설명하는 도면이다.
도 3은 본 개시의 예시적 실시예에 따른 보안 엑세스 제어 모듈의 관리 대상을 나타내는 도면이다.
도 4a 및 도 4b는 본 개시의 예시적 실시예에 따른 보안 엑세스 제어 모듈이 설정하는 피처 셋 테이블들의 구현 예들을 나타낸다.
도 5는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러를 개략적으로 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 수신되는 생체 인증 데이터에 기초한 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 7은 보안 표준 프로토콜에 따른 데이터 포맷을 예시적으로 나타낸다.
도 8a 및 도 8b는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 사용자 권한 인증 방법을 나타내는 흐름도이다.
도 9는 본 개시의 예시적 실시예에 따른 보안 엑세스 제어 모듈이 비휘발성 메모리에 대하여 락 상태 및 언락 상태를 제어하는 방법을 나타낸다.
도 10a 및 도 10b 는 본 개시의 예시적 실시예에 따른 비휘발성 메모리의 보안 영역에 엑세스 가능한 복수의 사용자 권한을 예시적으로 나타낸다.
도 11은 본 개시의 예시적 실시예에 따른 스토리지 시스템의 사용자 권한 등록 방법을 나타내는 흐름도이다.
도 12는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 사용자 권한 삭제 방법을 나타내는 흐름도이다.
도 13은 본 개시의 예시적 실시예에 따른 생체 인식 모듈의 일 구현예를 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시예에 따른 스토리지 장치 및 스토리지 시스템을 나타내는 블록도이다.
도 15는 본 개시의 예시적 실시예에 따른 스토리지 장치 및 스토리지 시스템을 나타내는 블록도이다.
도 16은 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 17은 본 개시의 예시적 실시예에 따른 SSD 및 이를 포함하는 SSD 시스템을 나타내는 블록도이다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(storage system)(10)은 스토리지 장치(100), 호스트 장치(200) 및 생체 인식 모듈(300)을 포함할 수 있고, 스토리지 장치(100)는 메모리 컨트롤러(110) 및 비휘발성 메모리(120, NVM)를 포함할 수 있다.
스토리지 시스템(10)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지, IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
일부 실시예들에서, 스토리지 장치(100)는 전자 장치에 내장되는 내부 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 SSD, 임베디드 UFS(Universal Flash Storage) 메모리 장치 또는 eMMC(embedded Multi-Media Card)일 수 있다. 일부 실시예들에서, 스토리지 장치(10)는 전자 장치에 착탈 가능한 외장 메모리일 수 있다. 예를 들어, 스토리지 장치(10)는 포터블 SSD, UFS 메모리 카드, CF(Compact Flash) 카드, SD(Secure Digital) 카드, Micro-SD(Micro Secure Digital) 카드, Mini-SD(Mini Secure Digital) 카드, xD(extreme Digital) 카드 또는 메모리 스틱(Memory Stick)일 수 있다.
호스트 장치(200)(또는, 호스트라고 함)는 다양한 인터페이스를 통해 스토리지 장치(100)와 통신할 수 있으며, 스토리지 장치(100)로 커맨드(CMD) 및/또는 비휘발성 메모리(120)에 저장될 데이터(DT)를 전송하고, 스토리지 장치(100)로부터 응답(RES) 및/또는 비휘발성 메모리(120)로부터 독출되는 데이터(DT)를 수신할 수 있다. 예를 들어, 호스트 장치(120)는 AP(Application Processor) 또는 SoC(System-On-a-Chip)로 구현될 수 있다. 또한, 예를 들어, 호스트 장치(120)는 집적 회로(integrated circuit), 마더보드(motherboard), 또는 데이터베이스 서버로 구현될 수 있으나 이에 한정되는 것은 아니다.
실시예에 있어서, 호스트 장치(200)와 스토리지 장치(100)는 핫-플러그를 지원하는(hot-pluggable) 인터페이스 방식으로 케이블을 통해 전기적으로 연결되면 통신할 수 있다.
스토리지 장치(100)는 호스트 장치(200)로부터 수신되는 커맨드(CMD)에 응답하여, 비휘발성 메모리(120)에 호스트 장치(200)로부터 수신되는 데이터(DT)(이하 사용자 데이터라고 함)를 저장하거나, 또는 비휘발성 메모리(120)에 저장된 사용자 데이터(DT)를 독출하고, 사용자 데이터(DT)를 호스트 장치(200)로 전송할 수 있다.
스토리지 장치(100)는 보안 표준 프로토콜을 통해 호스트 장치(200)와 통신할 수 있으며, 호스트 장치(200)의 제어에 따라 스토리지 장치(100)의 보안 기능이 설정될 수 있다. 본 개시에서 보안 기능의 설정이란, 보안 기능이 수행되기 위한 보안 기능의 사용과 관련된 설정을 의미한다. 호스트 장치(200)는 스토리지 장치(100)의 보안 기능을 설정하기 위한 보안 표준 프로토콜에 따른 커맨드(SCMD)(이하, 보안 커맨드라고 함)를 스토리지 장치(100)에 제공하고, 보안 커맨드(SCMD)에 대한 응답(RES)을 스토리지 장치(100)로부터 수신할 수 있다.
보안 커맨드(SCMD) 및 응답(RES)는 보안 표준 프로토콜에 따른 데이터 포맷을 가질 수 있으며, 보안 커맨드(SCMD)는 보안 기능의 설정과 관련된 요청 및 설정값을 포함할 수 있다. 실시예에 있어서, 설정값은 사용자 권한 인증을 위한 패스워드를 포함할 수 있다. 예를 들어, 스토리지 장치(100)는 TCG(Trusted Computing Group) 프로토콜을 통해 호스트 장치(200)와 통신할 수 있다. 스토리지 장치(100)와 호스트 장치(200) 간에 TCG 프로토콜에 따른 데이터 포맷을 갖는 보안 커맨드(SCMD) 및 응답(RES)이 송수신될 수 있다. 예를 들어, 보안 커맨드(SCMD) 및 응답(RES)는 512 바이트(byte)의 데이터 블록(또는 데이터 패킷이라고 함)일 수 있다. 그러나, 이에 제한되는 것은 아니며, 호스트 장치(200)와 스토리지 장치(100) 간에 ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스 등과 같은 다양한 인터페이스 방식에서 제공하는 보안 표준 프로토콜이 적용될 수 있다.
한편, 호스트 장치(200)로서 구현될 수 있는 다양한 장치들 중 일부는 스토리지 장치(100)의 보안 기능을 설정할 수 없다. 예컨대, 호스트 장치(200)와 스토리지 장치(100) 간에 보안 표준 프로토콜이 적용되지 못할 수 있으며, 호스트 장치(200)가 스토리지 장치(100)로 보안 커맨드(SCMD)를 제공하지 못할 수 있다. 이러한 경우, 본 개시의 실시예에 따른 스토리지 장치(100)는 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 자체적으로 보안 표준 프로토콜에 따른 피처 셋을 결정함으로써, 보안 기능을 설정할 수 있다. 예를 들어, 스토리지 장치(100)는 호스트 장치(200)로부터 수신되던 설정값을 생체 인증 데이터(BAD)를 기초로 자체적으로 결정할 수 있다. 실시예에 있어서, 스토리지 장치(100)는 생체 인증 데이터(BAD)를 기초로, 보안 커맨드(SCMD)에 대응하는 보안 설정 데이터, 다시 말해서, 보안 표준 프로토콜에 따른 데이터 포맷을 가지는 보안 설정 데이터를 생성하고, 보안 설정 데이터를 기초로 보안 기능을 설정할 수 있다. 이에 따라 스토리지 장치(100)의 보안 기능이 수행될 수 있다. 이에 대하여 상세하게 후술하기로 한다.
비휘발성 메모리(120)는 전원이 차단되어도 저장하고 있는 데이터가 유지되는 특성을 가지는 메모리 모듈 또는 메모리 장치를 지칭할 수 있다. 일 실시예에서, 비휘발성 메모리(120)는 플래쉬 메모리 장치를 포함할 수 있고, 예를 들어, 낸드(NAND) 플래쉬 메모리 장치를 포함할 수 있다. 실시예에 있어서, 비휘발성 메모리(120)는 3차원 어레이 구조(three-dimensional 10 array structure)를 가지는 수직형 낸드 플래시(Vertical NAND; VNAND) 메모리 장치를 포함할 수 있다. 그러나, 이에 제한되는 것은 아니며, 비휘발성 메모리(120)는 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 장치를 포함할 수 있다. 또한, 비휘발성 메모리(120)는 반도체 메모리 장치뿐만 아니라, 자기 디스크 장치로 구현될 수도 있다. 이하에서는 설명의 편의를 위하여 비휘발성 메모리(120)는 낸드 플래시 메모리 장치인 것으로 설명되나, 본 개시의 기술적 사상이 이에 제한되지 않는 점은 이해될 것이다. 실시예에 있어서 비휘발성 메모리(120)는 복수의 비휘발성 메모리 칩을 포함할 수 있으며, 복수의 비휘발성 메모리 칩은 복수의 채널을 통해 메모리 컨트롤러(110)와 통신할 수 있다.
전원이 차단되어도 저장하고 있는 데이터가 유지되는 비휘발성 메모리(120)의 특성에 따라, 비휘발성 메모리(120)에 저장된 데이터가 보안된 상태로 유지될 필요가 있다. 예를 들면, 스토리지 장치(100)가 재사용되거나 폐기되는 경우, 또는 스토리지 장치(100)가 허가되지 않은 사용자에 의하여 사용되는 경우, 스토리지 장치(100)에 저장된 보안이 필요한 데이터의 유출이 방지되어야 한다. 이를 위하여, 스토리지 장치(100)는 자가 암호화(self-encryption) 기능을 지원할 수 있다. 스토리지 장치(100)는 호스트 장치(200)로부터 수신되는 데이터(DT)(이하 사용자 데이터라고 함)를 암호화하고, 암호화된 사용자 데이터(EDT)를 비휘발성 메모리(120)의 보안 영역(SA)에 저장할 수 있다. 비휘발성 메모리(120)의 보안 영역(SA)에 저장된 암호화된 사용자 데이터(EDT)는 암호화된 상태로 유지되기 때문에, 스토리지 장치(100)에 공급되는 전력이 차단되더라도 보안된 상태로 유지될 수 있다. 이와 같이, 자가 암호화 기능을 지원하는 스토리지 장치(100)는 SED(Self-Encrypting Device 또는 Self-Encrypting Drive)라고 지칭될 수 있다.
메모리 컨트롤러(110)는 스토리지 장치(100)의 전반적인 동작을 제어할 수 있으며, 비휘발성 메모리(120)에 대한 데이터 기입 및 독출을 제어할 수 있다. 또한, 메모리 컨트롤러(110)는 스토리지 장치(100)의 보안 기능, 예컨대 자가 암호화 기능을 지원할 수 있다. 메모리 컨트롤러(110)는 호스트 장치(200)로부터 수신되는 사용자 데이터(DT)를 암호화하고, 암호화된 사용자 데이터(EDT)를 비휘발성 메모리(120)의 사용자 영역(SA)에 저장할 수 있다. 또한, 메모리 컨트롤러(110)는 비휘발성 메모리(120)로부터 암호화된 사용자 데이터(EDT)를 독출하고, 암호화된 사용자 데이터(EDT)를 복호화하여 사용자 데이터(DT)를 호스트 장치(200)로 제공할 수 있다.
메모리 컨트롤러(110)는 비휘발성 메모리(120)의 보안 영역(SA)에 대한 엑세스, 다시 말해서 보안 기능의 설정을 제어할 수 있다. 메모리 컨트롤러(110)는 비휘발성 메모리(120)의 보안 영역(SA)을 엑세스할 수 있는 사용자에 대한 사용자 권한을 등록하고, 사용자 권한에 대한 인증(즉, 사용자 권한 인증)이 성공하면, 비휘발성 메모리(120)의 보안 영역(SA)에 대한 엑세스를 허용할 수 있다. 다시 말해서, 메모리 컨트롤러(110)에서 수행되는 사용자 권한 인증이 성공하면, 호스트 장치(200)가 사용자 데이터(DT)의 기입 및 또는 독출을 위해 비휘발성 메모리(120)의 보안 영역(SA)을 엑세스할 수 있다.
메모리 컨트롤러(110)는 보안 엑세스 제어 모듈(SACM) 및 데이터 처리부(DPU)를 포함할 수 있다. 보안 엑세스 제어 모듈(SACM)은 비휘발성 메모리(SA)의 보안 영역(SA)에 대한 엑세스 권한을 갖는 사용자에 대한 사용자 권한을 관리함으로써, 보안 기능을 설정할 수 있다. 예컨대 보안 엑세스 제어 모듈(SACM)은 사용자 권한의 등록, 인증 및 삭제를 수행할 수 있다. 데이터 처리부(DPU)는 보안 키(SKEY)를 기초로 호스트 장치(200)로부터 수신되는 사용자 데이터(DT)를 암호화하거나 비휘발성 메모리(120)의 보안 영역(SA)로부터 독출되는 암호화된 사용자 데이터(EDT)를 복호화할 수 있다. 보안 키(SKEY)는 스토리지 장치(100) 내부의 하드웨어 로직에서 생성되는 랜덤 특성 키를 기초로 생성되거나, 또는 상기 랜덤 특성 키 및 외부(예컨대, 호스트 장치(200))로부터 제공되는 고유 키의 조합에 기초하여 생성될 수 있다. 예를 들어, 보안 엑세스 제어 모듈(SACM)이 사용자 권한의 등록, 인증에 이용되는 고유 값(또는 패스워드)을 기초로 보안 키(SKEY)를 암호화 또는 복호화함으로써, 스토리지 장치(100)를 락(lock) 상태 또는 언락(unlock) 상태로 설정할 수 있다. 구체적으로 보안 엑세스 제어 모듈(SACM)은 비휘발성 메모리(120)의 보안 영역(SA)에 대하여 독출 및/또는 기입 동작과 관련하여 락(lock) 상태 또는 언락(unlock) 상태를 설정할 수 있다. 보안 엑세스 제어 모듈(SACM)이 고유 값을 기초로 보안 키(SKEY)를 암호화하여 저장함으로써, 비휘발성 메모리(120)의 보안 영역(SA)이 독출 및/또는 기입을 위한 엑세스가 허용되지 않는 락 상태로 설정될 수 있다. 사용자 권한 인증이 성공하면, 보안 엑세스 제어 모듈(SACM)이 암호화된 보안 키(SKEY)를 복호화함으로써, 비휘발성 메모리(120)의 보안 영역(SA)이 독출 및/또는 기입을 위한 엑세스가 허용되는 언락 상태로 설정될 수 있다. 데이터 처리부(DPU)는 보안 키(SKEY)를 기초로 보안 영역(SA)에 저장될 사용자 데이터(DT)를 암호화하거나 또는 보안 영역(SA)으로부터 독출되는 암호화된 사용자 데이터(EDT)를 복호화할 수 있다.
전술한 바와 같이, 스토리지 장치(100)의 보안 기능 제공을 위하여 호스트 장치(200)와 스토리지 장치(100) 간에 보안 표준 프로토콜이 적용될 수 있으며, 호스트 장치(200)는 보안 표준 프로토콜을 기초로 스토리지 장치(100)에 보안 커맨드(SCMD)를 전송할 수 있다. 예컨대, 호스트 장치(200)는 사용자 권한 등록 요청 및 사용자 권한 인증을 위한 패스워드를 보안 커맨드(SCMD)로서 스토리지 장치(100)에 전송할 수 있으며, 또한 사용자 권한 활성화 요청, 비휘발성 메모리(120)를 락 상태 또는 언락 상태로 설정하기 위한 설정값 등을 보안 커맨드(SCMD)로서 제공할 수 있다. 설정값은 보안 표준 프로토콜에서 정의될 수 있으며, 사용자 권한에 대한 보안 표준 프로토콜에 따른 피처 셋의 필드값들일 수 있다. 예컨대, 호스트 장치(200)는 TCG(Trusted Computing Group) 프로토콜에 따라 보안 커맨드(SCMD)를 생성하고, 이를 스토리지 장치(100)에 제공할 수 있다. 이때, 보안 커맨드(SMCD)는 보안 표준 프로토콜의 데이터 포맷에 따라 패킷화(또는 커맨드 토큰화(commend tokenization)라고 함)되고, 호스트 장치(200)는 패킷화된 커맨드(예컨대 데이터 패킷)을 호스트 장치(200), 구체적으로 메모리 컨트롤러(110)로 전송할 수 있다. 보안 엑세스 제어 모듈(SACM)은 호스트 장치(200)로부터 수신되는 보안 커맨드(SMCD)를 기초로 사용자 권한에 대한 피처 셋의 필드값들을 설정함으로써, 사용자 권한의 등록, 인증 및 삭제를 수행할 수 있으며 또한 비휘발성 메모리(120)를 락 상태 또는 언락 상태를 설정할 수 있다.
전술한 바와 같이, 본 개시의 실시예에 따른 스토리지 장치(100)에서, 메모리 컨트롤러(110)는 호스트 장치(200)의 제어 하에, 다시 말해서, 호스트 장치(200)로부터의 보안 커맨드(SCMD)에 기초하여 보안 기능을 설정할 수 있을 뿐만 아니라, 생체 인식 모듈(300)으로부터 수신되는 생체 인증 데이터(BAD)를 기초로 자체적으로 보안 기능을 설정할 수 있다. 예컨대, 메모리 컨트롤러(110)는 생체 인증 데이터(BAD)를 기초로 보안 표준 프로토콜에 따른 사용자 권한을 관리할 수 있다. 보안 엑세스 제어 모듈(SACM)은 생체 인증 데이터(BAD)를 기초로, 사용자 권한의 등록, 인증 및 삭제를 수행할 수 있다. 실시예에 있어서, 보안 엑세스 제어 모듈(SACM)은 생체 인증 데이터(BAD)를 보안 표준 프로토콜에 따른 데이터 포맷을 갖는 보안 설정 데이터로 변환하고, 보안 설정 데이터를 기초로 사용자 권한의 등록, 인증 및 삭제를 수행할 수 있다.
보안 엑세스 제어 모듈(SACM)은 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 사용자 권한에 대한 보안 표준 프로토콜에 따른 피처 셋의 필드값들을 설정할 수 있다. 실시예에 있어서, 보안 엑세스 제어 모듈(SACM)은 생체 인증 데이터(BAD)를 기초로 사용자 권한의 크리덴셜 값을 설정할 수 있다. 이에 따라 사용자 권한이 등록될 수 있다. 또한, 보안 엑세스 제어 모듈(SACM)은 스토리지 장치(100)가 호스트 장치(200)와 연결되면, 생체 인식 모듈(300)로부터 생체 인증 데이터(BAD)를 수신하고, 생체 인증 데이터(BAD)를 기초로 사용자 권한 인증을 수행할 수 있다. 사용자 권한 인증이 성공하면, 보안 엑세스 제어 모듈(SACM)은 자체적으로 비휘발성 메모리(120)(구체적으로 비휘발성 메모리(120)의 보안 영역(SA))을 락 상태 또는 언락 상태로 설정할 수 있다. 실시예에 있어서, 보안 엑세스 제어 모듈(SACM)은 호스트 장치(200)로부터 수신되는 사용자 권한의 등록을 요청하는 커맨드(CMD) 및 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 사용자 권한을 등록하고, 이후, 호스트 장치(200)로부터의 보안 커맨드(SCMD) 수신 없이, 생체 인증 데이터(BAD)를 기초로 자체적으로 사용자 권한 인증을 수행할 수 있다.
이와 같이, 메모리 컨트롤러(110)가 생체 인증 데이터(BAD)를 기초로, 호스트 장치(200)의 제어 없이 보안 표준 프로토콜에 따른 사용자 권한을 관리(예컨대, 사용자 권한 인증, 사용자 권한 등록 및 사용자 권한 삭제)하고, 비휘발성 메모리(120)를 락 상태 또는 언락 상태로 설정 할 수 있는 바, 스토리지 장치(100)가 보안 커맨드(SMCD)를 제공하지 않는 호스트 장치(200)와 연결되더라도, 스토리지 장치(100)의 보안 기능이 사용(다시 말해서, 활성화)될 수 있다. 메모리 컨트롤러(110)는 호스트 장치(200)로부터 수신되는 사용자 패스워드를 기초로 사용자 권한 인증을 수행하여 사용자 권한 인증 성공 시 암호화 및 복호화(다시 말해서 자가 암호화)를 수행할 수 있으며, 또한, 호스트 장치(200)로부터 사용자 패스워드가 수신되지 않더라도 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 사용자 권한 인증을 수행할 수 있다.
생체 인식 모듈은 사용자의 생체를 센싱하여 생체 데이터, 예컨대 지문, 홍채, 음성 등을 획득하고, 생체 데이터에 기초한 생체 인증 데이터(BAD)를 메모리 컨트롤러(110)에 제공할 수 있다. 생체 인식 모듈(300)은 지문 인식 모듈, 홍채 인식 모듈, 안면 인식 모듈, 정맥 인식 모듈, 음성 인식 모듈 등 사용자의 생체 데이터를 획득할 수 있는 인식 모듈로 구현될 수 있다.
실시예에 있어서, 생체 인식 모듈(300)은 생체 데이터를 설정된 데이터 포맷에 기초한 생체 정보로 변환하고, 생체 정보를 저장 및 관리할 수 있다. 생체 인식 모듈(300)은 내부에 구비되는 비휘발성 메모리에 사용자 권한이 등록된 사용자들 각각에 대한 생체 정보를 저장할 수 있다. 생체 인식 모듈(300)은 생체 정보에 따른 고유 값을 생성하고 생체 인증 메시지 및 고유 값을 생체 인증 데이터(BAD)로서 메모리 컨트롤러(110)로 전송할 수 있다. 생체 정보 등록 단계에서, 생체 인식 모듈(300)은 생체 정보 등록 메시지 및 고유 값을 메모리 컨트롤러(110)에 전송할 수 있다. 메모리 컨트롤러(110)는 생체 정보 등록 완료 메시지가 수신되면, 고유 값을 기초로 사용자 권한 등록을 수행할 수 있다. 이후, 사용자 권한 인증 단계에서, 생체 인식 모듈(300)은 사용자의 생체 데이터를 획득하고, 획득된 생체 데이터에 기초한 생체 정보가 미리 저장된 생체 정보에 매칭될 경우, 매칭된 생체 정보에 기초하여 고유 값을 생성하고, 생체 인증 성공 메시지 및 고유 값을 메모리 컨트롤러(110)로 전송할 수 있다. 메모리 컨트롤러(110)는 생체 인증 성공 메시지가 수신되면, 고유 값을 기초로 사용자 권한 인증을 수행할 수 있다.
예를 들어, 생체 인식 모듈(300)이 지문 인식 모듈일 경우, 지문 인식 모듈은 사용자의 지문을 스캔하여, 지문 이미지를 생체 데이터로서 획득하고, 지문 이미지를 설정된 포맷에 기초한 지문 정보로 변환할 수 있다. 지문 인식 모듈은 지문 정보에 기초하여 고유 값을 생성하고, 지문 정보 등록 메시지 또는 지문 인증 성공 메시지 및 고유 값을 생체 인증 데이터(BAD)로서 메모리 컨트롤러(110)에 전송할 수 있다. 메모리 컨트롤러(110), 구체적으로 보안 엑세스 제어 모듈(110)은 고유 값을 기초로 사용자 권한의 크리덴셜 값을 설정함으로써 사용자 권한을 등록하거나, 또는 고유 값을 기초로 사용자 권한 인증을 수행할 수 있다. 일 예로서, 엑세스 제어 모듈(110)은 고유 값을 해싱(hashing)하여 해시 값을 생성하고, 해시 값을 크리덴셜 값으로서 설정함으로써, 사용자 권한을 등록할 수 있다. 사용자 권한 인증 수행 시, 엑세스 제어 모듈(110)은 수신되는 고유 값을 해싱하여 생성되는 해시 값을 크리덴셜 값과 비교함으로써, 사용자 권한 인증을 수행할 수 있다.
실시예에 있어서 생체 인식 모듈(300)은 생체 데이터, 또는 생체 데이터를 미리 설정된 데이터 포맷으로 변환한 생체 정보를 생체 인증 데이터(BAD)로서 메모리 컨트롤러(110)에 제공할 수 있으며, 메모리 컨트롤러(110)는 생체 데이터 또는 생체 정보를 기초로 사용자 권한 등록 및 사용자 권한 인증을 수행할 수도 있다.
스토리지 장치(100)는 다양한 종류의 호스트 장치(200)와 연결될 수 있으며호스트 장치(200)의 제어 하에 동작할 수 있다. 스토리지 장치(100)의 보안 기능이 호스트 장치(200)로부터 수신되는 보안 커맨드(SMCD) 를 기초로 활성화될 경우, 호스트 장치(200)가 보안 커맨드(SCMD)를 제공하지 못한다면, 다사 말해서, 호스트 장치(200)에 보안 표준 프로토롤이 적용되지 못한다면, 스토리지 장치(100)의 보안 기능이 활용될 수 없다. 그러나, 본 개시의 실시예에 따른 스토리지 장치(100)는 메모리 컨트롤러(110)가 호스트 장치(200)의 제어 하에, 다시 말해서 호스트 장치(200)로부터의 보안 커맨드(SMCD)를 기초로 보안 표준 프로토콜에 따른 피처 셋을 설정함으로써, 보안 기능을 설정할 수 있을 뿐만 아니라, 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 호스트 장치(200)의 제어 없이, 자체적으로 보안 표준 프로토콜에 따른 피처 셋을 결정함으로써, 보안 기능을 설정할 수 있다. 예컨대, 스토리지 장치(100)는 호스트 장치(200)로부터의 사용자 권한 인증 요청 및 패스워드가 보안 커맨드(SCMD)로서 수신되지 않더라도, 생체 인증 데이터(BAD)를 기초로 보안 커맨드(SCMD)에 대응하는 보안 설정 데이터를 생성하고, 보안 설정 데이터를 이용하여 사용자 권한 인증을 수행할 수 있으므로 스토리지 장치(200)가 보안 커맨드(SMCD)를 제공하지 않는 호스트 장치(200)와 연결되더라도 보안 기능을 제공할 수 있다. 따라서, 스토리지 장치(100)가 다양한 종류의 호스트 장치(200)에 연결되어도 스토리지 장치(100)의 보안 기능이 활용될 수 있다.
도 2a 및 도 2b는 본 개시의 예시적 실시예에 따른 스토리지 장치에서, 연결되는 호스트 장치에 따라 메모리 컨트롤러가 사용자 권한 인증을 수행하는 방법을 설명하는 도면이다.
도 2a를 참조하면, 스토리지 시스템(10a)에서, 스토리지 장치(100)가 제1 호스트 장치(200a)와 연결될 수 있으며, 스토리지 장치(100)와 제1 호스트 장치(200a)는 보안 표준 프로토콜, 예컨대 TCG 프로토콜에 따라 통신할 수 있다. 제1 호스트 장치(200a)는 스토리지 장치(100)의 보안 기능의 설정을 제어할 수 있다. 제1 호스트 장치(200a)는 스토리지 장치(100)의 보안 기능(예컨대 자가 암호화 기능(SED))을 제어하기 위한 소프트웨어를 실행할 수 있다.
제1 호스트 장치(200a)는 사용자 권한 인증 요청 및 사용자 권한에 대한 패스워드(PW)를 포함하는 보안 커맨드(SCMD)를 스토리지 장치(100)로 전송할 수 있다. 메모리 컨트롤러(110)의 보안 엑세스 제어 모듈(SACM)은 보안 커맨드(SCMD)에 응답하여, 패스워드(PW)를 기초로 사용자 권한에 대한 권한 인증, 즉 사용자 권한 인증을 수행할 수 있다. 보안 엑세스 제어 모듈(SACM)은 수신된 패스워드(PW)가 사용자 권한에 대한 권한 등록 시 사용자 권한의 크리덴셜 값으로 설정된 패스워드일 경우 권한 인증이 성공하였다고 판단할 수 있다. 권한 인증이 성공함으로써, 락킹 SP(locking security provider)(예컨대 도 3의 SP2)에 대한 세션이 오픈될 수 있다.스토리지 장치(100)는 세션이 오픈되었음을 나타내는 응답(RES)을 제1 호스트 장치(200a)로 전송할 수 있으며, 제1 호스트 장치(200a)는 비휘발성 메모리(120)의 보안 영역(SA)을 락 상태 또는 언락 상태로 설정하기 위한 설정값을 스토리지 장치(100)로 전송할 수 있다. 엑세스 제어 모듈(SACM)은 수신된 설정값을 기초로 보안 표준 프로토콜에 따른 피처 셋을 설정함으로써, 비휘발성 메모리(120)의 보안 영역(SA)을 락 상태에서 언락 상태로 변경할 수 있다. 이와 같이, 제1 호스트 장치(200a)는 보안 커맨드(SCMD)를 스토리지 장치(100)로 제공하고, 스토리지 장치(100)의 메모리 컨트롤러(110)는 제1 스토리지 장치(200a)로부터 수신되는 보안 커맨드(SCMD)를 기초로 비휘발성 메모리(120)의 보안 영역(SA)에 대하여 락 상태 또는 언락 상태(이하 락/언락 상태라고 지칭함)를 설정함으로써, 스토리지 장치(100)의 보안 기능을 설정할 수 있다.
도 2b를 참조하면, 스토리지 시스템(10b)에서, 스토리지 장치(100)가 제2 호스트 장치(200b)와 연결될 수 있으며, 제2 호스트 장치(200b)는 보안 표준 프로토콜에 따라 스토리지 장치(100)와 통신하지 못할 수 있다. 다시 말해서, 제2 호스트 장치(200b)는 보안 커맨드를 스토리지 장치(100)에 제공하지 않을 수 있다.
보안 엑세스 제어 모듈(SACM)은 제2 호스트 장치(200b)로부터의 제어 없이(예컨대 도 2a의 보안 커맨드(SCMD) 수신 없이), 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 사용자 권한에 대한 권한 인증을 수행할 수 있다.
스토리지 장치(100)가 제2 호스트 장치(200b)와 연결되면, 보안 엑세스 제어 모듈(SACM)은 생체 인식 모듈(300)에 트리거 신호(TRIG)를 전송할 수 있다. 실시예에 있어서, 트리거 신호(TRIG)는 생체 인식 모듈(300)이 생체 인증을 수행하도록 요청하는 신호일 수 있다. 생체 인식 모듈(300)은 생체 인증 트리거 신호(TRIG)에 응답하여 생체 인증을 수행할 수 있다. 생체 인식 모듈(300)은 사용자의 생체를 센싱하여 생체 데이터를 획득하고, 생체 데이터를 기초로 생체 인증을 수행할 수 있다. 생체 인식 모듈(300)은 생체 인증이 성공하면, 고유 값 및 생체 인증 성공 메시지를 포함하는 생체 인증 데이터(BAD)를 메모리 컨트롤러(110)로 전송할 수 있다. 실시예에 있어서, 트리거 신호(TRIG)는 생체 인식 모듈(300)이 사용자의 생체를 센싱하여 생체 데이터를 획득하도록 요청하는 신호일 수 있다. 생체 인식 모듈(300)은 생체 데이터 또는 생체 데이터에 기초하여 생성한 생체 정보를 생체 인증 데이터(BAD)로서 메모리 컨트롤러(110)로 전송할 수 있다.
보안 엑세스 제어 모듈(SACM)은 생체 인증 데이터(BAD)를 기초로 자체적으로 스토리지 장치(100)의 보안 기능을 설정할 수 있다. 보안 엑세스 제어 모듈(SACM)은 생체 인증 데이터(BAD)를 기초로 사용자 권한에 대한 권한 인증을 수행하할 수 있다. 보안 엑세스 제어 모듈(SACM)은 생체 인증 데이터(BAD)가 사용자 권한의 크리덴셜 값에 해당하는 인증 데이터를 포함할 경우, 예를 들어, 수신된 생체 인증 데이터(BAD)에 포함된 고유 값이 사용자 권한의 크리덴셜 값 설정 시 이용된 고유 값과 동일할 경우 권한 인증이 성공하였다고 판단할 수 있다. 권한 인증이 성공하면, 락킹 SP(예컨대 도 3의 SP2)에 대한 세션이 오픈될 수 있다. 보안 엑세스 제어 모듈(SACM)은 오픈된 세션을 통해 비휘발성 메모리(120)의 보안 영역(SA)을 락 상태에서 언락 상태로 변경할 수 있다. 엑세스 제어 모듈(SACM)비휘발성 메모리(120)의 보안 영역(SA)에 대한 락 상태 또는 언락 상태를 나타내는 보안 표준 프로토콜에 따른 피처 셋의 필드값에 해당하는 설정값을 결정함으로써, 락 상태 또는 언락 상태를 설정할 수 있다. 이와 같이, 스토리지 장치(100)는 제2 스토리지 장치(200b)의 제어 없이, 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 비휘발성 메모리(120)의 보안 영역(SA)에 대하여 락/언락 상태를 설정함으로써, 스토리지 장치(100)의 보안 기능을 설정할 수 있다.도 3은 본 개시의 예시적 실시예에 따른 보안 엑세스 제어 모듈의 관리 대상을 나타내는 도면이다.
도 3을 참조하면, 스토리지 장치(도 1의 100)는 보안 표준 프로토콜에 따른복수의 보안 제공자(security provider)(SP1, SP2)를 포함할 수 있으며, 보안 엑세스 제어 모듈(SACM)은 복수의 보안 제공자(security provider; SP)(SP1, SP2)를 관리할 수 있다. 스토리지 장치(100)는 제1 SP(SP1) 및 제2 SP(SP2)를 포함할 수 있으며, 제1 SP(SP1)는 관리(administrative) SP이고, 제2 SP(SP2)는 락킹(locking) SP일 수 있다. 관리 SP는 스토리지 장치(100)의 정보 및 구성(configuration)을 제어하며, 다른 SP를 발급(issue)할 수 있다. 락킹 SP는 비휘발성 메모리(110)의 보안 영역(SA)에 대한 락/언락 상태를 제어할 수 있다. 그러나, 이에 제한되는 것은 아니며, 복수의 SP의 개수 및 그 구성은 변경될 수 있다.
제1 SP(SP1), 및 제2 SP(SP2) 각각은, 관리자 및/또는 사용자에 대한 권한 제어, 및 락/언락 상태 제어와 관련된 피처 셋들을 포함하는 피처 셋 테이블들(예컨대 도 4a의 권한 테이블(ATB) 및 락킹 테이블(LTB))을 포함할 수 있다.
보안 엑세스 제어 모듈(SACM)은 보안 표준 프로토콜, 예컨대, TCG 프로토콜에 따른 호스트 장치(도 1의 200)로부터 수신되는 보안 커맨드를 기초로 상기 피처 셋들의 필드값들을 설정(또는 변경)하거나, 또는 생체 인식 모듈(도 1의 300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로, 상기 피처 셋들의 필드값들을 결정하고, 결정된 값들을 기초로, 상기 필드값들을 설정(또는 변경)할 수 있다.
도 4a 및 도 4b는 본 개시의 예시적 실시예에 따른 보안 엑세스 제어 모듈이 설정하는 피처 셋 테이블들의 구현 예들을 나타낸다.
도 4a는 권한 테이블(ATB)의 구현 예를 나타내고, 도 4b는 락킹 테이블(LTB)의 구현 예를 나타낸다. 권한 테이블(ATB) 및 락킹 테이블(LTB)은 복수의 필드들(FDs) 및 복수의 필드들(FDs) 각각에 해당하는 설정값을 포함하는 적어도 하나의 피처 셋(FS)을 각각 포함할 수 있다.
도 4a를 참조하면, 권한 테이블(ATB)의 복수의 필드들(FDs)은 예컨대, 고유 식별자 필드(UID), 이름 필드(NM), 권한 인에이블 필드(EN), 동작 필드(OP), 크리덴셜 필드(CRD)를 포함할 수 있으며, 권한 테이블(ATB)은 다른 종류의 필드를 더 포함할 수 있다. 고유 식별자 필드(UID)는 해당 테이블, 예컨대 권한 테이블(ATB) 및 상기 테이블이 포함되는 SP 내에서의 오브젝트(피처 셋의 대상)를 식별하기 위한 설정값을 나타내며, 예컨대 8-바이트(byte)의 식별자일 수 있다. 이름 필드(NM)는 오브젝트의 이름을 나타내며, 권한 테이블(ATB)에서, 오브젝트는 사용자들, 예컨대 제1 관리자(Admin1), 제1 사용자(User1), 제2 사용자(User2)를 나타낼 수 있다. 권한 인에이블 필드(EN)는 해당 권한에 대한 활성화 여부를 나타내며, 참(T) 또는 거짓(F)으로 설정될 수 있다. 동작 필드(OP)는 크리덴셜(CRD)에 기초한 인증 방법을 나타내며, 예컨대 동작 필드(OP)에 패스워드가 설정된 경우, 크리덴셜 필드(CRD)에 설정된 크리덴셜 값을 기초로 패스워드 방식에 따른 권한 인증이 수행될 수 있다. 크리덴셜 필드(CRD)는 권한과 함께 사용되는 오브젝트를 인증하기 인증 정보를 나타내며, 예를 들어, 사용자들에 대한 개인 식별 번호들(C_PIN_Admin1, C_PIN_User1, C_PIN_User2)이 크리덴셜 값으로서 설정될 수 있다. 도 2a 및 도 2b를 참조하여 전술한 바와 같이, 호스트 장치(도 2의 200a)로부터 수신되는 패스워드(PW) 또는 생체 인식 모듈(300)로부터 수시되는 생체 인증 데이터(BAD)에 포함된 고유 값을 기초로 크리덴셜 값이 설정될 수 있다.
도 4b를 참조하면, 락킹 테이블(LTB)의 복수의 필드들(FDs)은 예컨대, 고유 식별자 필드(UID), 이름 필드(NM), 레인지 필드(RNG), 독출/기입 락 인에이블필드(RWEN), 독출/기입 락 필드(RWL) 등을 포함할 수 있으며, 락킹 테이블(LTB)은 다른 종류의 필드를 더 포함할 수 있다. 레인지 필드(RNG)는 비휘발성 메모리(도 1의 110)의 보안 영역(SA) 내에서 독출/기입 락 및 언락이 제어되는 레인지를 나타내며, 예컨대 도 4b에 도시된 바와 같이, 로지컬 블록 어드레스(이하, LBA)의 레인지로 나타낼 수 있다. 실시예에 있어서, 각 사용자, 예컨대 제1 관리자(Admin1), 제1 사용자(User1), 제2 사용자(User2)에 대하여, 도시된 바와 같이 독출/기입 락 및 언락이 제어되는 레인지가 상이하게 설정될 수 있다. 그러나, 이에 제한되는 것은 아니며, 적어도 하나의 사용자에 대하여 보안 영역(SA) 전체에 대하여 독출/기입 락 및 언락이 제어될 수 있다.
독출/기입 락 인에이블 필드(RWEN)은 오브젝트에 대한 독출 및/또는 기입에 대한 락의 활성화 여부를 나타내며, 독출/기입 락 필드(RWL)는 독출 및/또는 기입에 대한 락 상태 또는 언락 상태를 나타낸다. 독출/기입 락 인에이블 필드(RWEN) 및 독출/기입 락 필드(RWL)는 참(T) 또는 거짓(F)으로 설정될 수 있으며, 독출/기입 락 필드(RWL)가 참(T)으로 설정될 때, 해당 레인지에 대하여 독출 및/또는 기입이 락 상태로 설정되어, 해당 레인지에 대하여 독출 및/또는 기입을 위한 엑세스가 차단될 수 있다.
예를 들어, 도 4b의 락킹 테이블(LTB)에서 제3 열의 피처 셋(FS)의 설정값들에 따르면, 제2 사용자(User2)에 대하여, 비휘발성 메모리(120)의 보안 영역(SA) 중 제5 LBA(LBA5) 내지 제8 LBA(LBA8)에 해당하는 범위에 대하여 독출/기입 락 인에이블(RWEN)이 참(T)으로 설정됨으로써 독출/기입 락이 활성화 되었으며, 독출/기입 락(RWL)이 거짓(F)으로 설정됨으로써 독출/기입이 언락 상태일 수 있다.
도 4a 및 도 4b를 참조하여, 권한 테이블(ATB) 및 락킹 테이블(LTB)에 대하여 예를 들어서 설명하였다. 그러나, 본 개시의 실시예에 따른 보안 엑세스 제어 모듈(SACM)이 설정할 수 있는 피처 셋의 테이블은 이에 제한되는 것은 아니며, 보안 엑세스 제어 모듈(SACM)은 보안 표준 프로토콜에 기초한 다양한 종류의 피처 셋 테이블을 설정할 수 있으며, 또한, 권한 인증 단계에서 피처 셋의 필드값들을 결정할 수 있다.
계속하여 도 3을 참조하면, 예를 들어, 호스트 장치(200)의 제어 하에 스토리지 장치(100)의 보안 기능이 설정될 경우, 보안 엑세스 제어 모듈(SACM)은 사용자 권한 등록 단계에서 호스트 장치(200)로부터 사용자 권한 등록 요청 및 설정값들을 포함하는 보안 커맨드(예컨대 권한 등록 보안 커맨드)를 수신할 수 있으며, 설정값들을 기초로 사용자 권한에 대한 피처 셋들, 예컨대 도 4a의 권한 테이블(ATB)의 피처 셋(FS1) 및 도 4b의 락킹 테이블(LTB)의 피처 셋(FS2)을 설정할 수 있다. 수신되는 설정값들은 예를 들어, 도 4a의 권한 테이블(ATB)의 피처 셋(FS1)의 고유 식별자 필드(UID), 이름 필드(NM), 권한 인에이블 필드(EN), 동작 필드(OP) 및 도 4b의 락킹 테이블(LTB)의 피처 셋(FS2)의 고유 식별자 필드(UID), 이름 필드(NM), 레인지 필드(RNG), 독출/기입 락 인에이블필드(RWEN), 및 독출/기입 락 필드(RWL) 각각에 대한 값들을 포함할 수 있다. 이때, 보안 엑세스 제어 모듈(SACM)은 호스트 장치(200)로부터 수신되는 패스워드를 기초로 크리덴셜(CRD)의 크리덴셜 값을 설정하고, 독출/기입 락 필드(RWL)를 참(T)으로 설정할 수 있다. 보안 엑세스 제어 모듈(SACM)은 사용자 권한 인증 단계에서 호스트 장치(200)로부터 권한 인증 요청, 고유 식별자 필드(UID)에 대한 설정값, 패스워드를 사용자 권한 인증을 요청하는 보안 커맨드로서 수신할 수 있다. 보안 엑세스 제어 모듈(SACM)은 패스워드를 기초로 사용자 권한 인증을 수행하고, 사용자 권한 인증이 성공하면 호스트 장치(200)로부터 독출/기입 락 필드(RWL)에 대한 설정값(예컨대, 거짓(F)을 나타내는 설정값)을 보안 커맨드로서 수신하고, 설정값을 기초로 락킹 테이블(LTB)의 독출/기입 락(RWL)을 거짓(F)으로 설정함으로써, 수신된 패스워드에 관련된 사용자에 대하여 설정된 레인지(RNG)에 대하여, 사용자의 독출 및/또는 기입을 위한 엑세스를 허용할 수 있다.
스토리지 장치(100)가 자체적으로 보안 기능을 설정할 경우, 보안 엑세스 제어 모듈(SACM)은 사용자 권한 등록 단계에서 호스트 장치(200)(또는 다른 입출력 장치)로부터 권한 등록 커맨드를 수신하고, 이에 응답하여 생체 인식 모듈(도 1의 300)로부터 생체 인증 데이터(도 1의 BAD)를 수신하고, 생체 인증 데이터(BAD)를 기초로 사용자 권한에 대한 피처 셋들, 예컨대 도 4a의 권한 테이블(ATB)의 피처 셋(FS1) 및 도 4b의 락킹 테이블(LTB)의 피처 셋(FS2)의 필드값들을 결정하고, 결정된 값을 기초로 피처 셋들을 설정할 수 있다. 이때, 보안 엑세스 제어 모듈(SACM)은 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 크리덴셜(CRD)의 크리덴셜 값을 설정하고, 독출/기입 락 필드(RWL)를 참(T)으로 설정할 수 있다. 다만, 사용자들 각각에 대하여 레인지가 상이하게 설정될 경우, 레인지 필드(RNG)에 대한 설정값은 호스트(200)(또는 다른 입출력 장치)로부터 수신될 수 있으며, 보안 엑세스 제어 모듈(SACM)은 수신된 설정값을 기초로 레인지 필드(RNG)를 설정할 수 있다.
보안 엑세스 제어 모듈(SACM)은 사용자 권한 인증 단계에서 생체 인식 모듈(300)로부터 생체 인증 데이터(BAD)를 수신하고, 생체 인증 데이터를 기초로 사용자 권한 인증을 수행하고, 사용자 권한 인증이 성공하면, 락킹 테이블(LTB)의 독출/기입 락 필드(RWL)를 거짓(F)로 설정함으로써, 수신된 생체 인증 데이터(BAD)의 사용자에 대하여 설정된 보안 영역(SA)의 레인지에 대하여 사용자의 독출 및/또는 기입을 위한 엑세스를 허용할 수 있다.
전술한 바와 같이, 본 개시의 실시예에 따른 스토리지 장치(100)는 보안 엑세스 제어 모듈(SACM)이 보안 표준 프로토콜에 따른 피처 셋들의 필드값들을 설정(또는 변경)할 수 있으며, 호스트 장치(200)가 패스워드를 포함한 설정값들을 제공하지 못하더라도, 보안 엑세스 제어 모듈(SACM)이 생체 인식 모듈(300)로부터 수신되는 생체 인증 데이터(BAD)를 기초로 보안 표준 프로토콜에 따른 피처 셋들의 필드값들을 결정하고, 결정된 값들을 기초로 피처 셋들의 필드값들을 설정(또는 변경)할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러를 개략적으로 나타내는 블록도이다.
도 5를 참조하면, 메모리 컨트롤러(110a)는 프로세서(11), 메모리(12), 보안 키 저장부(13), 호스트 인터페이스(14), 주변기기 인터페이스(15), 데이터 처리부(16) 및 비휘발성 메모리 인터페이스(17)(이하, NVM 인터페이스라고 함)를 포함할 수 있다. 실시예에 있어서, 메모리 컨트롤러(110a)의 구성들, 예컨대 프로세서(11), 메모리(12), 보안 키 저장부(13), 호스트 인터페이스(14), 주변기기 인터페이스(15), 데이터 처리부(16) 및 NVM 인터페이스(17)는 시스템 버스(18)을 통해 서로 통신할 수 있다. 실시예에 있어서, 메모리 컨트롤러(110a)는 다른 구성들, 예컨대, ROM(Read Only Memory), 오류 정정 회로, 버퍼 등을 더 포함할 수 있다.
프로세서(11)는 중앙 처리 장치(CPU)나 마이크로 프로세서 등을 포함할 수 있으며, 메모리 컨트롤러(110a)의 전반적인 동작을 제어할 수 있다. 일 실시예에서, 프로세서(110)는 멀티 코어 프로세서로 구현될 수 있고, 예를 들어, 듀얼 코어 프로세서 또는 쿼드 코어(quad) 프로세서로 구현될 수 있다.
메모리(12)는 DRAM, SRAM과 같은 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있으며, 메모리(12)에는 펌웨어가 로딩될 수 있다. 펌웨어(FW)는 전술한 보안 엑세스 제어 모듈(SACM)의 동작 알고리즘이 구현된 프로그램 코드(또는 인스트럭션들)를 포함할 수 있다. 펌웨어는 메모리 컨트롤러(110a)의 내부 또는 외부에 배치된 비휘발성 메모리, 예컨대, ROM(R, EEPROM(Electrically Erasable Programmable Read-Only Memory), PRAM(Phase-change Memory), 플래시 메모리 등에 저장되거나 또는 비휘발성 메모리(120)에 저장되고, 스토리지 장치(도 1의 100)가 파워-온되면, 메모리(12)에 로딩될 수 있다. 프로세서(11)가 메모리(12)에 로딩된 펌웨어, 예컨대 보안 엑세스 제어 모듈(SACM)을 실행함으로써, 스토리지 장치(100)의 보안 기능이 수행될 수 있다. 예를 들어, 보안 엑세스 제어 모듈(SACM)은 보안 키를 암호화 또는 복호화할 수 있으며,
보안 키 저장부(13)는 암호화된 보안 키를 저장할 수 있다. 실시예에 있어서, 복수의 사용자 권한이 등록된 경우, 복수의 사용자 권한 각각에 대응하는 복수의 고유 값들 또는 복수의 패스워드 각각에 기초하여 암호화된 복수의 암호화된 보안 키를 저장할 수 있다. 보안 키 저장부(13)는 레지스터, PRAM, 플래시 메모리와 같은 비휘발성 메모리로 구현될 수 있다.
호스트 인터페이스(14)는 호스트 장치(200)와 메모리 컨트롤러(110a) 사이의 인터페이스를 제공할 수 있고, 예를 들어, 호스트 인터페이스(14)는 USB(Universal Serial Bus) 인터페이스, USF(Universal Flash Storage) 인터페이스, MMC(Multimedia Controller) 인터페이스, eMMC(embedded MMC) 인터페이스, PCIe(Peripheral Component Interconnect Express) 인터페이스, ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 인터페이스 등과 같은 다양한 인터페이스들 중 하나로 구현될 수 있다.
주변장치 인터페이스(15)는 메모리 컨트롤러(110a)와 생체 인증모듈(300) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 주변장치 인터페이스(15)는UART(Universal Asynchronous Receiver Transmitter) 인터페이스, I2C(inter integrated circuit) 인터페이스, SPI(serial peripheral interface), MIPI(Mobile industry processor interface), eDP(embedded display port) 인터페이스 등과 같은 통신 인터페이스를 제공할 수 있다.
주변장치 인터페이스(15)는 생체 인식 모듈(300)을 동작시키기 위한 트리거 신호(예컨대, 생체 인증 트리거 신호 또는 생체 등록 트리거 신호)를 전송할 수 있다. 또한, 주변장치 인터페이스(15)는 생체 인식 모듈(300)로부터 생체 인증 메시지 및 고유 값을 수신할 수 있다. 예컨대 생체 정보 등록 메시지 또는 생체 인증 결과(생체 인증 실패 또는 생체 인증 성공) 메시지가 생체 인증 메시지로서 수신될 수 있다.
데이터 처리부(16)는 사용자 데이터에 대하여 암호화 또는 복호화를 수행할 수 있다. 데이터 처리부(16)는 보안 키를 기초로 사용자 데이터에 대하여 암호화 또는 복호화를 수행할 수 있다. 데이터 처리부(16)는 호스트 장치(200)로부터 수신된 사용자 데이터에 대하여 보안 키를 기초로 암호화를 수행할 수 있다. 예컨대, 데이터 처리부(16)는 보안 키를 기초로 사용자 데이터를 스크램블링할 수 있다. 암호화된 사용자 데이터는 비휘발성 메모리(120)에 저장될 수 있다. 데이터 처리부(16)는 비휘발성 메모리(120)로부터 독출된 암호화된 사용자 데이터 대하여 보안 키를 기초로 복호화를 수행할 수 있다. 예컨대, 데이터 처리부(16)는 보안 키를 기초로 암호화된 사용자 데이터에 대하여 디스크램블링할 수 있다. 복호화된 사용자 데이터는 호스트 장치(200)로 전송될 수 있다.
NVM 인터페이스(17)는 메모리 컨트롤러(110a)와 비휘발성 메모리(120) 사이의 인터페이스를 제공할 수 있다. 암호화된 사용자 데이터가 비휘발성 메모리 인터페이스(17)를 통해 메모리 컨트롤러(110a)와 비휘발성 메모리(120) 사이에서 송수신될 수 있다. 일 실시예에서, NVM 인터페이스(17)의 개수는 스토리지 장치(10)에 포함된 비휘발성 메모리 칩의 개수 또는 메모리 컨트롤러(100a)와 비휘발성 메모리(120) 사이의 채널들의 개수에 대응할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 수신되는 생체 인증 데이터에 기초한 스토리지 장치의 동작 방법을 나타내는 흐름도이고, 도 7은 보안 표준 프로토콜에 따른 데이터 포맷을 예시적으로 나타낸다.
도 6의 동작 방법은 도 1 의 스토리지 장치(100)에서 수행될 수 있으며, 스토리지 장치(100)에 대하여 전술한 내용은 본 실시예에 적용될 수 있다.
도 1 및 도 6을 참조하면, 스토리지 장치(100)는 생체 인식 모듈(300)로부터 생체 인식 데이터(BAD)를 수신할 수 있다(S10). 생체 인식 데이터(BAD)는 사용자의 생체가 센싱되어 생성되는 생체 데이터, 또는 생체 데이터를 기초로 생성되는 생체 정보를 포함할 수 있다. 또는 생체 인식 데이터(BAD)는 생체 정보에 따른 고유 값 및 생체 인증 결과를 포함할 수 있다.
스토리지 장치(100)는 생체 인식 데이터(BAD)를 보안 표준 프로토콜에 따른 데이터 포맷의 보안 설정 데이터(예컨대 도 7의 SCSD)로 변환할 수 있다(S20). 보안 설정 데이터는 호스트 장치(200)로부터 수신될 수 있는 보안 커맨드와 동일한 데이터 포맷을 가질 수 있다. 메모리 컨트롤러(110)의 보안 엑세스 제어 모듈(SACM)이 파서(parser)로서 기능함으로써, 생체 인식 데이터(BAD)를 기초로 보안 설정 데이터(SCSD)를 생성할 수 있다.
도 7을 참조하면, 보안 표준 프로토콜, 예컨대 TCG 프로토콜에 따른 데이터 포맷은 복수의 바이트로 구성되는 데이터 블록을 가질 수 있다. 예를 들어, TCG 프로토콜에 따른 데이터 포맷은 16 로우(R)(예컨대, 16진수로 표현되는 0000~01F0)를 포함하며, 각 로우(row)는 16 바이트의 데이터를 포함할 수 있다. 따라서, 보안 설정 데이터(SCSD) 및 보안 커맨드는 512 바이트의 데이터 블록(데이터 패킷이라고 함)일 수 있다. 각 로우에 포함되는 싱글 바이트 또는 멀티 바이트의 데이터 값들 각각이 나타내는 의미(목적)는 보안 표준 프로토콜에서 정의되며, 보안 표준 프로토콜에 따른 피처 셋의 필드값을 나타낼 수 있다.
예를 들어, 보안 설정 데이터(SCSD)가 락킹 SP에 대한 세션 오픈을 요청하는 보안 커맨드에 대응할 경우, 보안 엑세스 제어 모듈(SACM)은 생체 인식 데이터(BAD)의 고유 값을 기초로, 제6 로우(0050)의 하위 5 바이트(오른쪽의 6 바이트) 및 제7 로우(0060)의 상위 12 바이트(왼쪽의 12 바이트)로 구성되는 총 17 바이트의 데이터 값, 즉"3C 41 64 6D 69 6E 31 5F 70 61 73 73 77 6F 72 64 3E"을 보안 표준 프로토콜에 따른 패스워드로 설정할 수 있다.
계속하여 도 6을 참조하면, 스토리지 장치(100)는 보안 설정 데이터(SCSD)를 기초로 사용자 인증을 수행할 수 있다(S30). 보안 엑세스 제어 모듈(SACM)이 보안 설정 데이터(SCSD)의 패스워드가 사용자 권한에 대한 권한 등록 시 설정된 사용자 권한의 크리덴셜 값과 일치할 경우, 권한 인증이 성공하였다고 판단할 수 있다. 스토리지 장치(100)는 세션을 오픈할 수 있다(S40). 예컨대 사용자 권한에대한 권한 인증이 성공하면, 보안 엑세스 제어 모듈(SACM)이 락킹 SP에 대한 세션을 오픈(시작)할 수 있다.
스토리지 장치(100)는 비휘발성 메모리(120)의 보안 영역(SA)의 락/언락 상태를 설정할 수 있다(S50). 예컨대, 보안 엑세스 제어 모듈(SACM)은 세션을 통해 독출/기입 락 필드(RWL)의 필드값(설정값)을 결정함으로써, 락/언락 상태를 설정할 수 있다.
스토리지 장치(100)는 마스터 부트 레코드 쉐도잉을 설정할 수 있다(S60). 예컨대, 보안 엑세스 제어 모듈(SACM)은 세션을 통해 보안 영역(SA)에 포함된 마스터 부트 레코드가 독출되도록 마스터 부트 레코드 테이블을 설정(마스터 부트 레코드의 언-쉐도잉이라고 함)하거나 또는 비-보안 영역에 포함된 마스터 부트 레코드가 독출되도록 마스터 부트 레코드 테이블을 설정(마스터 부트레코드의 쉐도잉이라고 함)할 수 있다.
예를 들어, 보안 엑세스 제어 모듈(SACM)은 S50 단계에서 독출/기입 락 필드(RWL)의 설정값을 거짓(F)으로 설정하고, S60단계에서, 보안 영역에 포함된 마스터 부트 레코드가 독출되도록 마스터 부트 레코드 테이블을 설정함으로써, 스토리지 장치(100)를 언락 상태로 설정할 수 있다.
스토리지 장치(100)는 세션을 종료할 수 있다(S70). 보안 엑세스 제어 모듈(SACM)은 보안 기능을 설정한 후, 예컨대 스토리지 장치(100)를 언락 상태로 설정하고 세션을 종료할 수 있다.
도 8a 및 도 8b는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 사용자 권한 인증 방법을 나타내는 흐름도이다.
도 8a는 스토리지 장치(도 1의 100)에 구비되는 메모리 컨트롤러(110)가 호스트 장치(200)의 제어 없이 자체적으로 사용자 권한 인증을 수행함으로써, 보안 기능을 설정하는 케이스를 나타내고 도 8b는 메모리 컨트롤러(110)가 호스트 장치(200a)의 제어 하에 사용자 권한 인증을 수행함으로써, 보안 기능을 설정하는 케이스를 나타낸다. 예컨대, 도 2b의 호스트 장치(200b)가 도 6의 호스트 장치(200)로서 동작하고, 도 2a의 호스트 장치(200a)가 도 6b의 호스트 장치(200)로서 동작할 수 있다.
도 8a를 참조하면, 호스트 장치(200)와 스토리지 장치(도 1의 100)가 연결(또는 링크)되고(S111), 이때, 스토리지 장치(100)는 락 상태로 설정될 수 있다(S112). 스토리지 장치(100)가 호스트 장치(200)와 연결이 끊기거나, 스토리지 장치(100)의 파워가 오프되면, 스토리지 장치(100)는 락 상태로 설정될 수 있으며, 이후에 S111단계와 같이, 스토리지 장치(100)가 호스트 장치(200)와 연결되더라도, 스토리지 장치(100)는 락 상태를 유지할 수 있다. 스토리지 장치(100)가 락 상태일 경우, 메모리 컨트롤러(110)는 비휘발성 메모리(120)의 보안 영역에 대하여 독출 및/또는 기입 상태를 락 상태로 설정하고, 비-보안 영역에 대한 정보(예컨대 쉐도우 마스터 부트 레코드(Shadow Master Boot Record))를 호스트 장치(200)에 제공할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 도 4b의 락킹 테이블(LTB)의 독출/기입 락 필드(RWL)의 필드 값을 거짓(F)으로 설정함으로써, 비휘발성 메모리(120)의 보안 영역에 대한 독출 및/또는 기입 상태를 락 상태로 설정할 수 있으며, 마스터 부트 레코드 테이블의 값이 비-보안 영역에 저장된 쉐도우 마스터 부트 레코드를 나타내도록 설정할 수 있다. 호스트 장치(200)는 쉐도우 마스터 부트 레코드를 기초로 비-보안 영역을 엑세스할 수 있다.
메모리 컨트롤러(110)는 생체 인식 모듈(300)로 생체 인증을 요청하는 생체 인증 트리거 신호를 전송할 수 있다(S113). 메모리 컨트롤러(110)는 호스트 장치(100)와 스토리지 장치(200)가 연결되면, 자동적으로, 다시 말해서 호스트 장치(100)로부터의 제어와 관계없이 생체 인증 트리거 신호를 생체 인식 모듈(300)로 전송할 수 있다.
생체 인식 모듈(300)은 생체 인증 트리거 신호에 응답하여 생체 인증을 수행할 수 있다(S121). 생체 인식 모듈(300)은 사용자의 생체를 센싱하여, 생체 데이터를 획득할 수 있다. 실시예에 있어서, 생체 인식 모듈(300)은 생체 데이터를 기초로 생체 정보를 생성하고, 생체 정보가 기 저정된 생체 정보와 매칭될 경우, 생체 인증이 성공하였다고 판단할 수 있다.
생체 인식 모듈(300)은 생체 인증 데이터를 메모리 컨트롤러(110)에 전송할 수 있다. 사용자의 생체 데이터(또는 생체 정보)가 생체 인증 데이터로서 메모리 컨트롤러(110)로 전송되거나 또는 생체 정보에 기초하여 생성된 고유 값 및 생체 인증 성공 메시지가 생체 인증 데이터로서 메모리 컨트롤러(110)로 전송될 수 있다. 예를 들어, S121 단계에 대하여 설명한 바와 같이, 생체 인식 모듈(300)이 획득된 생체 데이터에 기초하여 생성되는 생체 정보와 기 저정된 생체 정보의 매칭 여부를 기초로 생체 인증 성공 여부를 판별할 경우, 고유 값 및 생체 인증 성공 메시지가 생체 인증 데이터로서 메모리 컨트롤러(110)로 전송될 수 있다.
메모리 컨트롤러(110)는 생체 인증 데이터를 기초로 사용자 권한 인증을 수행할 수 있다(S114). 예를 들어, 메모리 컨트롤러(110)는 고유 값을 기초로 사용자 권한 인증을 수행할 수 있다. 도 6을 참조하여 설명한 바와 같이, 메모리 컨트롤러(110)는 생체 인증 데이터, 예컨대 고유 값을 기초로, 보안 표준 프로토콜에 따른 데이터 포맷을 갖는 보안 설정 데이터를 생성하고, 보안 성정 데이터를 기초로 사용자 권한 인증을 수행할 수 있다.
메모리 컨트롤러(110)는 사용자 권한 인증 성공 여부를 판단할 수 있다(S115). 메모리 컨트롤러(110)는 생체 인증 데이터를 기초로 생성된 보안 설정 데이터의 패스워드가 사용자 권한에 대한 권한 등록 시 설정된 사용자 권한의 크리덴셜 값과 일치할 경우, 권한 인증이 성공하였다고 판단할 수 있다. 이때, 보안 설정 데이터의 패스워드는 생체 인증 데이터의 고유 값의 해시 값일 수 있다.
사용자 권한 인증에 성공(pass)할 경우, 메모리 컨트롤러(110)는 스토리지 장치(100)를 언락 상태로 설정할 수 있다(S116). 메모리 컨트롤러(110)는 비휘발성 메모리(120)의 보안 영역에 대한 독출 및/또는 기입 상태를 언락 상태로 설정하고, 보안 영역에 대한 정보를 호스트 장치(200)에 제공할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 도 4b의 락킹 테이블(LTB)의 독출/기입 락 필드(RWL)의 필드값을 참(T)으로 설정함으로써, 비휘발성 메모리(110)의 보안 영역(또는 보안 영역 중 고유 값에 대응하는 특정 범위)에 대한 독출 및/또는 기입 상태를 언락 상태로 설정할 수 있으며, 마스터 부트 레코드 테이블의 값이 보안 영역에 저장된 마스터 부트 레코드를 나타내도록 설정할 수 있다. 호스트 장치(200)는 마스터 부트 레코드를 기초로 비휘발성 메모리(120)의 보안 영역을 엑세스할 수 있다. 호스트 장치(200)는 사용자 권한 인증이 수행된 보안 영역에 대하여 기입 또는 독출을 요청하는 커맨드를 메모리 컨트롤러(110)에 전송하고, 메모리 컨트롤러(110)는 상기 영역들에 저장될 사용자 데이터를 보안 키를 기초로 암호화하여 저장하고, 상기 영역들로부터 독출되는 암호화된 사용자 데이터에 대하여 보안 키를 기초로 복호화를 수행하여, 복호화된 사용자 데이터를 호스트 장치(200)에 전송할 수 있다.
실시예에 있어서, 스토리지 장치(100)가 락 상태에서 언락 상태로 변경되면, 호스트 장치(200)와 스토리지 장치(100) 간에 재링크(relink)가 수행되고, 이후, 호스트 장치(200)가 비휘발성 메모리(120)의 보안 영역을 엑세스할 수 있다.
사용자 권한 인증에 실패(fail)할 경우, 스토리지 장치(100)는 락 상태로 설정될 수 있다(S112). 다시 말해서, 스토리지 장치(100)는 락 상태를 유지하며, 호스트 장치(200)는 비휘발성 메모리(120)의 비-보안 영역을 엑세스할 수 있으나, 보안 영역을 엑세스할 수 없다.
도 8b를 참조하면, 호스트 장치(200)와 스토리지 장치(도 1의 100)가 연결되고(S211), 이때, 스토리지 장치(100)는 락 상태로 설정될 수 있다(S212).
호스트 장치(200)는 스토리지 장치(100)의 보안 기능을 제공을 위한 소프트웨어를 실행할 수 있다(S231). 예를 들어, 호스트 장치(200)의 동작 시스템(operating system)이 스토리지 장치(100)의 자가 암호화 드라이브 지원 소프트웨어(SED support software)를 실행할 수 있다. 이에 따라서, 호스트 장치(200)가 스토리지 장치(100)와 보안 표준 프로토콜에 따라 통신할 수 있다.
호스트 장치(200)는 메모리 컨트롤러(110)에 사용자 권한 인증 요청 및 패스워드를 포함하는 보안 커맨드를 전송할 수 있다(S232). 보안 커맨드는 보안 표준 프로토콜에 의해 정의되는 커맨드일 수 있으며, 패스워드는 사용자 입력에 의하여 생성된 값일 수 있다. 예를 들어, 보안 커맨드는 보안 표준 프로토콜에 따른 세션 오픈을 요청하는 커맨드일 수 있다. 보안 커맨드는 512 바이트의 데이터 블록(또는 데이터 패킷)일 수 있다.
메모리 컨트롤러(110)는 호스트 장치(200)로부터 수신되는 패스워드를 기초로 사용자 권한 인증을 수행할 수 있다(S213). 메모리 컨트롤러(110)는 사용자 권한 인증 성공 여부를 판단할 수 있다(S214). 메모리 컨트롤러(110)는 수신된 패스워드가, 사용자 권한에 대한 크리덴셜 값 설정 시 이용된 패스워드와 동일한지 여부를 판단할 수 있다.
사용자 권한 인증에 성공(pass)할 경우, 메모리 컨트롤러(110)는 보안 커맨드에 대응한 응답을 호스트 장치(200)로 전송할 수 있다(S215). 예컨대, 응답은 세션이 오픈되었음을 나타낼 수 있다.
호스트 장치(200)는 스토리지 장치를 언락 상태로 설정하기 위한 설정값을포함하는 보안 커맨드를 메모리 컨트롤러(110)로 전송할 수 있다(S233). 스토리지 장치(100)는 수신되는 보안 커맨드를 기초로 스토리지 장치(100)를 언락 상태로 설정할 수 있다(S216). 사용자 권한 인증에 실패(fail)할 경우, 스토리지 장치(100)는 락 상태로 설정될 수 있다(S212). 다시 말해서, 스토리지 장치(100)는 락 상태를 유지할 수 있다.
도 8a 및 도 8b를 참조하여 설명한 바와 같이, 스토리지 장치(100)가 호스트 장치(200)와 연결되면, 메모리 컨트롤러(110)는 생체 인식 모듈(300)로부터의 생체 인증 데이터를 보안 표준 프로토콜에 따른 데이터 포맷을 갖는 보안 설정 데이터로 변환하고, 보안 설정 데이터를 기초로 호스트 장치(200)의 제어 없이 사용자 권한 인증을 수행할 수 있다. 또는 메모리 컨트롤러(110)는 패스워드를 포함하는 호스트 장치(200)로부터의 보안 커맨드를 기초로 사용자 권한 인증을 수행할 수 있다. 이와 같이, 스토리지 장치(100)는 보안 표준 프로토콜을 통해 호스트 장치(200)의 제어 하에 사용자 권한 인증을 수행함으로써, 보안 기능을 설정할 수 있을 뿐만 아니라 생체 인식 모듈(300)로부터의 생체 인증 데이터를 기초로 사용자 권한 인증을 수행함으로써 호스트 장치(200)의 제어 없이, 자체적으로 보안 기능을 설정할 수 있는 바, 스토리지 장치(100)의 보안 기능의 활용성이 증가될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 보안 엑세스 제어 모듈이 비휘발성 메모리에 대한 락 상태 및 언락 상태를 설정하는 방법을 나타낸다. 도 9는 보안 엑세스 제어 모듈이 마스터부트 쉐도잉을 설정함으로써, 락 상태 및 언락 상태를 설정하는 방법을 나타낸다.
도 9를 참조하면, 비휘발성 메모리(120)는 보안 영역(SA) 및 비-보안 영역(NSA)을 포함할 수 있다. 보안 영역(SA)은 암호화된 사용자 데이터가 저장되는 영역으로서 사용자 영역으로 지칭될 수 있다. 보안 영역(SA)은 복수의 사용자 영역(예컨대 복수의 파티션(partition) 또는 볼륨(volume))으로 구분될 수 있다. 비-보안 영역(NSA)은 미리 설정된 특정 영역으로서 예컨대 리저브드 영역으로 지칭될 수 있다. 실시예에 있어서, 보안 영역(SA) 및 비-보안 영역(NSA)은 로지컬 블록 어드레스(LBA)에 기초하여 각 영역에 대하여 복수의 레인지가 설정될 수 있다. 보안 영역(SA) 및 비-보안 영역(NSA) 각각에는 해당 영역에 대한 정보(예컨대, 파티션 또는 볼륨 정보, 부팅을 위한 부트 코드 등)를 포함하는 마스터 부트 레코드(이하, MBR이라고 함)가 저장될 수 있다. 본 개시에서, MBR은 보안 영역(SA)에 저장된 제1 MBR을 지칭하고, SMBR(쉐도우 MBR)은 비-보안 영역(NSA)에 저장된 제2 MBR을 지칭할 수 있다.
보안 영역(SA)은 사용자 권한 인증이 성공한 후, 언락 상태가 되면 엑세스가 가능하고, 비-보안 영역(NSA)은 사용자 권한 인증에 관계없이 엑세스가 가능할 수 있다. 스토리지 장치(100)가 호스트 장치(200)와 연결된 초기 상태에 사용자 권한 인증이 수행되기 전, 비휘발성 메모리(120)는 락 상태일 수 있으며, 보안 엑세스 제어 모듈(SACM)은 비-보안 영역(NSA)의 SMBR이 독출되도록 MBR 테이블을 설정할 수 있다. 예컨대, MBR 테이블의 설정값은 비휘발성 메모리(120)의 포인터의 위치를 나타낼 수 있으며, 락 상태에서 포인터는 SMBR이 저장된 LBA를 나타낼 수 있다. 이에 따라, SMBR이 메모리 컨트롤러(도 1의 110)로 로딩되고, SMBR에 포함된 정보를 기초로 호스트 장치(200)는 비-보안 영역(NSA)에 저장된 데이터를 독출할 수 있다. 예를 들어, 비-보안 영역(NSA)에는 SMBR 및 소프트웨어(예컨대, 사용자 구성(user configuration)을 지원하는 소프트웨어 또는 자가 암호화 드라이브 지원 소프트웨어(SED support software))가 저장될 수 있다.
한편, 사용자 권한 인증이 성공하면, 보안 영역(SA)이 언락 상태로 설정될 수 있으며, 보안 엑세스 제어 모듈(SACM)은 보안 영역(SA)의 MBR이 독출되도록 MBR 테이블을 설정할 수 있다. 예컨대, MBR 테이블의 설정값에 따라 포인터는 MBR이 저장된 LBA를 나타낼 수 있다. 이에 따라, MBR이 메모리 컨트롤러(도 1의 110)로 로딩되고, MBR에 포함된 정보를 기초로 호스트 장치(200)는 보안 영역(NSA)에 저장된 데이터, 예컨대 사용자 데이터를 독출할 수 있다.
도 10a 및 도 10b 는 본 개시의 예시적 실시예에 따른, 비휘발성 메모리의 보안 영역에 엑세스 가능한 복수의 사용자 권한을 예시적으로 나타낸다.
도 10a 및 도 10b를 참조하면, 비휘발성 메모리(120)의 보안 영역(SA)은 사용자 권한이 설정된 복수의 사용자에 의하여 엑세스될 수 있으며, 각 사용자가 엑세스 할 수 있는 영역은 동일하게 또는 상이하게 설정될 수 있다.
도 10a를 참조하면, 사용자 1 및 사용자 2가 보안 영역(SA)의 전체, 예컨대 글로벌 레인지에 대하여 엑세스 가능한 사용자 권한을 가질 수 있다. 사용자 1 또는 사용자 2의 사용자 권한 인증이 성공하면, 예컨대 사용자 1 또는 사용자 2의 생체 인증 데이터를 기초로 사용자 권한 인증이 성공하면, 보안 영역(SA)의 전체에 대하여 독출 및/또는 기입이 언락 상태로 설정되고, 호스트 장치(도 1의 200)의 요청에 따라, 메모리 컨트롤러(도 1의 110)은 보안 영역(SA)에 대하여 독출 및/또는 기입을 위하여 엑세스할 수 있다.
도 10b를 참조하면, 사용자 1은 레인지 1에 대하여, 사용자 2는 레인지 2에 대하여, 그리고, 사용자 3은 레인지 2 및 3에 대하여 엑세스 할 수 있는 사용자 권한을 가질 수 있다. 사용자 1의 사용자 권한 인증이 성공하면, 레인지 1에 대하여 독출 및/또는 기입이 언락 상태로 설정되고, 사용자 2의 사용자 권한 인증이 성공하면, 레인지 2에 대하여 독출 및/또는 기입이 언락 상태로 설정되고, 사용자 3의 사용자 권한 인증이 성공하면, 레인지 2 및 3에 대하여 독출 및/또는 기입이 언락 상태로 설정될 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 스토리지 시스템의 사용자 권한 등록 방법을 나타내는 흐름도이다. 도 11의 방법은 생체 인증 데이터를 기초로 사용자 권한을 등록하는 방법이며, 도 1의 스토리지 시스템에서 수행될 수 있다. 도 1을 함께 참조하여 설명하기로 한다.
도 11을 참조하면, 호스트 장치(200)는 메모리 컨트롤러(110)에 사용자 권한 등록을 요청하는 등록 커맨드를 전송할 수 있다(S331). 메모리 컨트롤러(110)는 등록 커맨드에 응답하여 생체 인식 모듈(300)에 생체 정보 등록을 요청하는 등록 트리거 신호를 전송할 수 있다(S311).
생체 인식 모듈(300)은 사용자의 생체 정보를 저장할 수 있다(S321). 생체 인식 모듈(300)은 등록 트리거 신호에 응답하여, 사용자의 생체를 센싱하여 생체 데이터를 획득하고, 생체 데이터를 기초로 생체 정보를 생성할 수 있다. 생체 인식 모듈(300)은 생체 정보를 저장함으로써, 사용자의 생체 정보를 등록할 수 있다. 다시 말해서, 생체 인식 모듈(300)이 사용자의 생체 정보를 관리할 수 있다.
생체 인식 모듈(300)은 생체 인증 데이터를 메모리 컨트롤러(110)에 전송할 수 있다(S322). 생체 인식 모듈(300)은 생체 정보 등록 완료를 나타내는 메시지 및 생체 정보에 따른 고유 값(예컨대 생체 정보의 해싱 값)을 생체 인증 데이터로서 전송할 수 있다.
메모리 컨트롤러(110)는 생체 인증 데이터를 기초로 사용자 권한을 설정할 수 있다(S312). 도 3을 참조하여 설명한 바와 같이, 보안 엑세스 제어 모듈(SACM)이 생체 인증 데이터를 기초로 사용자 권한에 대한 피처 셋들, 예컨대 도 4a의 권한 테이블(ATB)의 피처 셋(FS1) 및 도 4b의 락킹 테이블(LTB)의 피처 셋(FS2)의 필드값들을 결정하고, 결정된 값을 기초로 피처 셋들을 설정할 수 있다. 예컨대, 보안 엑세스 제어 모듈(SACM)은 사용자 권한에 대한 이름을 설정하고, 생체 인증 데이터의 고유 값을 기초로 사용자 권한에 대한 크리덴셜 값을 설정할 수 있다. 실시예에 있어서, 보안 엑세스 제어 모듈(SACM)은 생체 인증 데이터를 기초로 보안 표준 프로토콜에 따른 데이터 포맷을 갖는 보안 설정 데이터를 생성하고, 보안 설정 데이터를 사용자 권한을 설정할 수 있다.
메모리 컨트롤러(110)는 사용자 권한을 활성화 시킬 수 있다(S313). 예컨대,보안 엑세스 제어 모듈(SACM)이 권한 테이블(ATB)의 권한 인에이블 필드(EN)를 참(T)으로 설정함으로써, 사용자 권한을 활성화시킬 수 있다. 그리고, 메모리 컨트롤러(110)는 스토리지 장치(110)를 락 상태로 설정할 수 있다(S314). 예컨대, 보안 엑세스 제어 모듈(SACM)이 락킹 테이블(LTB)의 독출/기입 락 필드(RWL)를 참(T)으로 설정할 수 있다. 메모리 컨트롤러(110)는 등록 완료 응답을 호스트 장치(200)로 전송할 수 있다(S315). 이로써 사용자 권한 등록이 완료될 수 있다.
한편, 단계 S321 에서, 생체 인식 모듈(300)이 사용자의 생체 정보를 저장하는 것으로 설명되었으나, 이에 제한되는 것은 아니며, 실시예에 있어서, 생체 인식 모듈(300)은 사용자의 생체를 센싱하여 생체 데이터를 획득하고, 생체 데이터를 생체 인증 데이터로서 메모리 컨트롤러(110)에 전송할 수도 있다. 생체 인식 모듈(300)은 생체 데이터 또는 생체 정보를 저장하지 않는다. 이 경우, 생체 인식 모듈(300)은 사용자의 생체 데이터를 획득하는 기능을 수행할 뿐이며, 메모리 컨트롤러(110)가 생체 데이터를 기초로 생체 정보를 생성하고, 생체 정보를 저장할 수 있다. 다시 말해서, 메모리 컨트롤러(110)가 사용자의 생체 정보를 등록 및 관리할 수 있다. 메모리 컨트롤러(110)는 생성한 생체 정보에 따른 고유 값을 생성하고, 고유 값을 기초로 크리덴셜 값을 설정할 수 있다.
본 실시예에서, 메모리 컨트롤러(110)는 호스트 장치(200)로부터의 요청에응답하여 사용자 권한 등록을 수행하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 실시예에 있어서, 메모리 컨트롤러(110)는 호스트 장치(200)가 아닌 스토리지 시스템에 구비되는 입출력 장치로부터의 요청에 응답하여 사용자 권한 등록을 수행할 수도 있다. 예를 들어, 스토리지 장치(100)는 사용자 인터페이스를 구비한 입출력 장치를 포함할 수 있으며, 단계 S331에서, 메모리 컨트롤러(110)는 호스트 장치(200)가 아닌 입출력 장치로부터 사용자 권한 등록을 요청하는 신호를 수신하고, 또한 단계 S315에서, 메모리 컨트롤러(110)는 상기 입출력 장치로 등록 완료 응답을 전송할 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 사용자 권한 삭제 방법을 나타내는 흐름도이다. 도 10의 방법은 사용자 권한을 삭제하는 방법이며, 도 1의 스토리지 시스템에서 수행될 수 있다. 도 1을 함께 참조하여 설명하기로 한다.
도 12를 참조하면, 호스트 장치(200)가 사용자 권한의 삭제를 요청하는 삭제 커맨드를 메모리 컨트롤러(110)로 전송할 수 있다(S431). 메모리 컨트롤러(110)는 삭제 커맨드에 응답하여 생체 인식 모듈(300)에 생체 정보 삭제를 요청하는 삭제 트리거 신호를 전송할 수 있다(S411). 생체 인식 모듈(300)이 복수의 생체 정보를 저장한 경우, 호스트 장치(200)가 메모리 컨트롤러(110)로 전송하는 삭제 커맨드는 삭제할 생체 정보를 나타내는 인덱스를 포함할 수 있으며, 메모리 컨트롤러(110)는 상기 인덱스를 삭제 트리거 신호와 함께 생체 인식 모듈(300)에 전송할 수 있다.
생체 인식 모듈(300)은 삭제 트리거 신호에 응답하여 저장된 생체 정보를 삭제할 수 있다(S421). 생체 인식 모듈(300)은 복수의 생체 정보 중 인덱스가 나타내는 생체 정보를 삭제할 수 있다. 생체 인식 모듈(300)은 삭제 완료 메시지를 메모리 컨트롤러(110)에 전송할 수 있다(S422).
메모리 컨트롤러(110)는 사용자 권한을 비활성화 할 수 있다(S412). 예컨대,보안 엑세스 제어 모듈(SACM)이 권한 테이블(ATB)의 권한 인에이블 필드(EN)를 거짓(F)으로 설정함으로써, 사용자 권한을 비활성화시킬 수 있다. 그리고, 메모리 컨트롤러(110)는 사용자 권한의 이름을 삭제함으로써, 사용자 권한을 삭제할 수 있다(S413). 메모리 컨트롤러(110)는 메모리 컨트롤러(110)는 삭제 완료 응답을 호스트 장치(200)로 전송할 수 있다(S424). 이로써 사용자 권한 등록이 완료될 수 있다.
한편, 본 실시예에서, 메모리 컨트롤러(110)는 호스트 장치(200)로부터의 요청에 응답하여 사용자 권한 삭제를 수행하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 실시예에 있어서, 메모리 컨트롤러(110)는 호스트 장치(200)가 아닌 스토리지 시스템에 구비되는 입출력 장치로부터의 요청에 응답하여 사용자 권한 삭제를 수행하고, 사용자 권한 삭제 완료 응답을 입출력 장치로 전송할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 생체 인식 모듈의 일 구현예를 나타내는 블록도이다.
도 11을 참조하면 생체 인식 모듈(300a)은 센서(310), 컨트롤러(320), 저장부(330) 및 인터페이스(340)를 포함할 수 있다.
센서(310)는 사용자의 생체를 센싱하여 생체 데이터를 획득할 수 있다. 예컨대 센서(310)가 지문 센서로 구현될 경우, 지문 센서는 사용자의 손가락 지문을 센싱하여 지문 이미지를 생성(또는 획득)할 수 있다. 센서(310)는 메모리 컨트롤러(110)로부터 트리거 신호, 예컨대 생체 인증 트리거 신호 또는 생체 등록 트리거 신호가 수신되면, 사용자의 생체 데이터를 획득할 수 있다.
컨트롤러(320)는 생체 정보(AUIF)를 생성 및 관리할 수 있다. 컨트롤러(320)는 생체 정보(AUIF)를 저장, 관리 및 삭제할 수 있다. 또한 컨트롤러(320)는 생체 인증을 수행할 수 있다. 컨트롤러(330)는 생체 데이터를 설정된 데이터 포맷에 기초한 템플릿 데이터, 즉 생체 정보(AUIF)로 변환할 수 있다. 스토리지 장치(도 1의 100)의 사용자 권한 등록 단계에서, 컨트롤러(320)는 생체 정보(AUIF)를 저장부(330)에 저장함으로써, 생체 정보(AUIF)를 등록할 수 있다.
저장부(330)는 비휘발성 메모리로 구현될 수 있으며, 생체 인식 모듈(300a)에 인가되는 전원이 차단되어도 저장된 생체 정보(AUIF_R)를 유지할 수 있다. 복수의 사용자에 대하여 생체 정보 등록이 수행되는 경우, 저장부(330)는 복수의 사용자 각각에 대한 생체 정보(AUIF_R)를 저장할 수 있다.
사용자 권한 인증 수행 시, 컨트롤러(320)는 사용자의 생체를 센싱함으로서 생성된 생체 정보(AUIF)를 기초로 생체 인증을 수행하고, 생체 인증 성공 시, 생체 정보(AUIF)에 기초한 생체 인증 데이터를 메모리 컨트롤러(110)에 전송할 수 있다. 컨트롤러(320)는 생체 정보(AUIF)를 저장부(330)에 저장된 생체 정보(AUIF_R)와 비교하여 매칭 여부를 판단하고, 저장된 생체 정보(AUIF_R) 중 하나와 생체 정보(AUIF)가 매칭될 경우, 컨트롤러(320)는 생체 인증이 성공하였다고 판단할 수 있다.
컨트롤러(320)는 또한, 생체 정보(AUIF)를 기초로 고유 값(UNQV)을 생성할 수 있다. 예컨대 컨트롤러(320)는 생체 정보(AUIF)를 인코딩하여 고유 값(UNQV)을 생성할 수 있다. 고유 값(UNQV)은 생체 인식 모듈(300a) 및 메모리 컨트롤러(110)가 상호 인식할 수 있는 데이터 포맷을 가지며, 예컨대 고유 값(UNQV)은 수십 바이트(byte)의 해쉬 데이터를 포함할 수 있다.
컨트롤러(320)는 메모리 컨트롤러(110)로부터 생체 정보 삭제를 요청하는 트리거 신호가 수신되면, 사용자의 생체 데이터를 삭제할 수 있다. 실시예에 있어서, 저장부(330)에 복수의 생체 정보(AUIF_R)가 저장된 경우, 컨트롤러(320)는 트리거 신호와 함께 수신되며 삭제될 생체 정보(AUIF_R)를 나타내는 인덱스를 기초로, 해당하는 생체 정보(AUIF_R)를 삭제할 수 있다.
컨트롤러(320)는 MCU(Micro Control Unit), CPU(Central Processing Unit) 등의 프로세서와 펌웨어의 조합 또는 FPGA(Field Programmable Gate array) 등과 같은 하드웨어 로직으로 구현될 수 있다.
인터페이스(340)는 메모리 컨트롤러(110)로부터 트리거 신호, 예컨대 생체 정보 등록 트리거 신호 또는 생체 인증 트리거 신호를 수신하고, 메모리 컨트롤러(110)로부터 생체 인증 메시지(MSG) 및 고유 값(UNQV)를 전송할 수 있다. 예를 들어, 인터페이스(340)는UART(Universal Asynchronous Receiver Transmitter) 인터페이스, I2C(inter integrated circuit) 인터페이스, SPI(serial peripheral interface), MIPI(Mobile industry processor interface), eDP(embedded display port) 인터페이스 등과 같은 통신 인터페이스를 제공할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 스토리지 장치 및 스토리지 시스템을 나타내는 블록도이다.
도 14를 참조하면, 스토리지 시스템(10c)는 스토리지 장치(100c) 및 호스트 장치(200)를 포함할 수 있다. 스토리지 장치(100c)는 메모리 컨트롤러(110), 비휘발성 메모리(120) 및 생체 인식 모듈(300)을 포함할 수 있다.
스토리지 시스템(10c)의 구성 및 동작은 도 1의 스토리지 시스템(10)의 구성 및 동작과 유사하다. 다만, 본 실시예에서, 생체 인식 모듈(300)이 스토리지 장치(100c)내에 구비될 수 있다. 실시예에 있어서, 도 13의 생체 인식 모듈(300a)이 생체 인식 모듈(300)로서 적용될 수 있다. 생체 인식 모듈(300)은 생체 정보를 저장 및 관리하며, 사용자 권한 등록 단계 및 사용자 권한 인증 단계에서, 생체 정보에 기초한 고유 값을 포함하는 생체 인증 데이터를 메모리 컨트롤러(110)에 제공할 수 있다. 그러나, 이에 제한되는 것은 아니며, 생체 인식 모듈(300)은 사용자의 생체를 센싱하여, 생체 데이터를 획득하고, 생체 데이터를 메모리 컨트롤러(110)에 제공할 수 있다. 메모리 컨트롤러(110)가 생체 데이터를 생체 정보로 변환하고, 생체 정보를 저장 및 관리할 수 있다. 메모리 컨트롤러(110)는 생체 정보를 기초로 생체 권한 등록 및 사용자 권한 인증 시 사용되는 고유 값을 생성할 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 스토리지 장치 및 스토리지 시스템을 나타내는 블록도이다.
도 13을 참조하면, 스토리지 시스템(10d)는 스토리지 장치(100d) 및 호스트 장치(200)를 포함할 수 있고, 스토리지 장치(100d)는 메모리 컨트롤러(110), 비휘발성 메모리(120) 및 입출력 장치(130)를 포함할 수 있다. 스토리지 시스템(10d)의 구성 및 동작은 도 1의 스토리지 시스템(10)의 구성 및 동작과 유사하다. 다만, 본 실시예에서, 스토리지 장치(100d)는 입출력 장치(130)를 구비하고, 호스트 장치(100d)의 제어 없이, 입출력 장치(130)를 통해 수신되는 사용자 입력 및/또는 생체 인증 데이터를 기초로 보안 기능을 설정할 수 있다.
입출력 장치(130)는 사용자 입력을 수신하고, 사용자 입력을 메모리 컨트롤러(110)에 전송할 수 있다. 예를 들어, 입출력 장치(130)는 터치 스크린, 또는 사용자의 생체 데이터(예컨대, 지문, 홍채, 안면 등), 센싱 기능을 포함하는 스크린 등으로 구현될 수 있다. 입출력 장치(130)를 통해 사용자의 패스워드가 수신되거나, 또는 생체 인증 데이터가 획득될 수 있으며, 입출력 장치(130)는 패스워드 또는 생체 인증 데이터를 메모리 컨트롤러(110)로 전송할 수 있다. 보안 엑세스 제어 모듈(SACM)은 수신되는 패스워드 또는 생체 인증 데이터를 기초로 사용자 권한을 설정 및 사용자 권한 인증을 수행함으로써, 보안 기능을 설정할 수 있다.
실시예에 있어서, 입출력 장치(130)는 사용자 인터페이스를 통해 사용자의 요청, 예컨대 사용자 권한 등록, 사용자 권한 인증 또는 사용자 권한 삭제 등을 수신할 수 있으며, 사용자 요청을 메모리 컨트롤러(110)에 전송할 수 있으며, 메모리 컨트롤러(110)는 사용자 요청에 응답하여, 사용자 권한 등록, 사용자 권한 인증 또는 사용자 권한 삭제 등을 수행할 수 있다.
도 16은 본 개시의 예시적 실시예에 따른 전자 시스템을 나타낸다.
도 16을 참조하면, 컴퓨팅 시스템(1000)은 메모리 시스템(1100), 프로세서(1200), RAM(1300), 입출력 장치(1400), 전원 장치(1500), 및 생체 인식 모듈(1600)을 포함할 수 있다. 한편, 도 14에는 도시되지 않았지만, 컴퓨팅 시스템(1000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다. 컴퓨팅 시스템(1000)은 퍼스널 컴퓨터로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(personal digital assistant) 및 카메라 등과 같은 휴대용 전자 장치로 구현되거나 또는 자동차, 비행기, 선박 등에 구비되는 차량(vehicle)용 전자 장치로 구현될 수 있다.
프로세서(1200)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(1200)는 마이크로프로세서(micro-processor), 중앙 처리 장치(CPU)일수 있다. 프로세서(1200)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(1700)를 통하여 RAM(1300), 입출력 장치(1400) 및 메모리 시스템(1100)과 통신을 수행할 수 있다. 프로세서(1200)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
메모리 시스템(1100) 및 생체 인식 모듈(1600)은 도 1 및 도 12에서 예시된 스토리지 장치 및 생체 인식 모듈을 이용하여 구현될 수 있다. 메모리 시스템(1100)은 자가 암호화를 지원하는 스토리지 장치일 수 있다. 메모리 시스템(1100)은 프로세서(1200)가 보안 표준 프로토콜에 따라 보안 커맨드 및 설정값(예컨대 패스워드)를 제공할 수 있는 경우, 프로세서(1200)로부터 수신되는 보안 커맨드 및 설정값을 기초로 사용자 권한 등록 및 사용자 권한 인증을 수행할 수 있다. 또한, 메모리 시스템(1100)은 프로세서(1200)가 보안 커맨드 및 설정값을 제공할 수 없는 경우, 생체 인증 모듈(1600)로부터 수신되는 생체 인증 데이터를 기초로 독립적으로 사용자 권한 등록 및 사용자 권한 인증을 수행할 수 있다.
RAM(1300)은 컴퓨팅 시스템(1000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, RAM(1300)은 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 입출력 장치(1400)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(1500)는 컴퓨팅 시스템(1000)의 동작에 필요한 동작 전압을 공급할 수 있다.
도 17은 본 개시의 예시적 실시예에 따른 SSD 및 이를 포함하는 SSD 시스템을 나타내는 블록도이다.
도 17을 참조하면, SSD 시스템(2000)은 호스트 장치(2100), SSD(2200) 및 생체 인식 모듈(2300)을 포함할 수 있다. 실시예에 있어서, 생체 인식 모듈(2300)은 SSD(2200) 내에 탑재될 수 있다.
SSD(2200)는 신호 커넥터(SC)를 통해 호스트 장치(1100)와 신호(SGL)를 주고 받으며, 전원 커넥터(PC)를 통해 호스트 장치(2100)로부터 전원(PWR)을 입력받을 수 있다.
SSD(2200)는 SSD 컨트롤러(2210), 및 복수의 비휘발성 메모리들(2220, 2230, 2240)를 포함할 수 있다. 도 1, 도 14 및 도 15의 스토리지 장치(100, 100c, 100d)가 SSD(2200)에 적용될 수 있으며, 메모리 컨트롤러(110)가 SSD 컨트롤러(2210)로 적용될 수 있다. SSD 컨트롤러(2210)는 복수의 채널(CH1, CH2, CHn)을 통해 비휘발성 메모리들(2220, 2230, 2240)과 통신할 수 있다. SSD 컨트롤러(2210)는 호스트 장치(2100)로부터 수신되는 보안 커맨드 및 설정값을 기초로 사용자 권한 등록 또는 사용자 권한 인증 등을 수행함으로써, 호스트 장치(2100)의 제어 하에 보안 기능을 설정하거나, 또는 생체 인식 모듈(2300)로부터 수신되는 생체 인증 데이터를 기초로 독립적으로 보안 기능을 설정할 수 있다. 이에 따라, SSD(2200)는 보안 표준 프로토콜에 따라 통신함으로써, 보안 기능과 관련된 보안 커맨드 및 설정값을 제공할 수 있는 호스트 장치(2100)에 연결되는 경우뿐만 아니라, 보안 커맨드 및 설정값을 제공하지 못하는 호스트 장치(2100)와 연결되더라도 보안 기능을 제공할 수 있다.
전술한 본 개시의 실시예에 따른 스토리지 시스템(10, 10c, 10d)은 SSD 시스템(2000)뿐만 아니라, 메모리 카드 시스템, 컴퓨팅 시스템, UFS 등에 탑재되거나 적용될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 스토리지 시스템 100, 100a, 100b, 100c, 100d: 스토리지 장치
200, 200a, 200b: 호스트 장치 110: 메모리 컨트롤러
120: 비휘발성 메모리 장치 130: 생체 인식 모듈

Claims (10)

  1. 암호화된 사용자 데이터가 저장되는 보안 영역을 포함하는 비휘발성 메모리의 데이터 기입 및 독출을 제어하는 메모리 컨트롤러에 있어서,
    생체 인식 모듈로부터 수신되는 생체 인증 데이터를 보안 표준 프로토콜에 따른 데이터 포맷을 갖는 보안 설정 데이터로 변환하고, 상기 보안 설정 데이터를 기초로 상기 보안 영역의 엑세스 제어를 위하여 설정되는 사용자 권한에 대한 권한 등록 및 권한 인증을 수행하는 보안 엑세스 제어 모듈; 및
    상기 보안 영역에 대한 엑세스가 허용되면, 호스트 장치로부터 수신되는 사용자 데이터에 대한 암호화 또는 상기 보안 영역으로부터 독출되는 상기 암호화된 사용자 데이터에 대한 복호화를 수행하는 데이터 처리부를 포함하는 메모리 컨트롤러.
  2. 제1 항에 있어서, 상기 보안 엑세스 제어 모듈은,
    상기 생체 인증 데이터를 기초로, 상기 사용자 권한에 대한 상기 보안 표준 프로토콜에 따른 피처 셋의 필드값들을 결정하는 것을 특징으로 하는 메모리 컨트롤러.
  3. 제1 항에 있어서, 상기 보안 설정 데이터는,
    상기 보안 설정 프로토콜에 따른 512 바이트의 데이터 블록으로 구현되는 것을 특징으로 하는 메모리 컨트롤러.
  4. 제1 항에 있어서, 상기 보안 엑세스 제어 모듈은,
    상기 생체 인증 데이터를 기초로 상기 권한 인증을 수행함으로써 세션을 오픈하고, 상기 세션을 통하여 상기 비휘발성 메모리의 보안 영역에 대한 락/언락을 설정하고, 마스터 부트 레코드 쉐도잉을 설정하는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제1 항에 있어서, 상기 보안 엑세스 제어 모듈은,
    상기 스토리지 장치가 상기 호스트 장치와 연결되면, 상기 생체 인식 모듈에 인증 트리거 신호를 전송하고, 상기 생체 인식 모듈로부터 수신되는 상기 생체 인증 데이터를 기초로 상기 권한 인증을 수행하는 것을 특징으로 하는 메모리 컨트롤러.
  6. 제1 항에 있어서, 상기 생체 인증 데이터는,
    사용자의 생체 데이터에 기초한 생체 인증 결과 및 고유값을 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  7. 제1 항에 있어서, 상기 보안 엑세스 제어 모듈은,
    상기 권한 인증이 성공하면, 상기 보안 영역에 대한 기입 및 독출 상태를 언락(unlock) 상태로 설정함으로써, 상기 보안 영역에 대한 엑세스를 허용하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제1 항에 있어서, 상기 보안 엑세스 제어 모듈은,
    사용자 권한 등록 요청의 수신에 응답하여, 상기 생체 인식 모듈이 사용자의 생체 데이터를 저장하도록 하는 등록 트리거 신호를 상기 생체 인식 모듈로 전송하고,
    상기 생체 인증 데이터를 기초로 상기 사용자 권한의 크리덴셜을 설정하고,상기 사용자 권한을 활성화시키는 것을 특징으로 하는 메모리 컨트롤러.
  9. 제1 항에 있어서, 상기 보안 엑세스 제어 모듈은,
    사용자 권한 삭제 요청의 수신에 응답하여, 상기 생체 인식 모듈이 사용자의 생체 데이터를 삭제하도록 하는 삭제 트리거 신호를 상기 생체 인식 모듈로 전송하고, 상기 생체 인식 모듈로부터 삭제 완료 메시지가 수신되면, 상기 사용자 권한을 비활성화시키고 상기 사용자 권한의 이름 정보를 삭제하는 것을 특징으로 하는 메모리 컨트롤러.
  10. 암호화된 사용자 데이터가 저장되는 보안 영역을 포함하는 비휘발성 메모리; 및
    상기 비휘발성 메모리의 데이터 기입 및 독출을 제어하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는,
    상기 스토리지 장치가 제1 호스트 장치에 연결되면, 상기 제1 호스트 장치와의 통신을 위하여 설정되는 보안 프로토콜에 따라 상기 제1 호스트 장치로부터 수신되는 패스워드를 기초로 상기 보안 영역에 대한 엑세스 권한을 갖는 사용자에 대한 권한 인증을 수행하고,
    상기 스토리지 장치가 제2 호스트 장치에 연결되면, 생체 인식 모듈로부터 수신되는 생체 인증 데이터를 기초로 상기 권한 인증을 수행하는 스토리지 장치.
KR1020200003885A 2020-01-10 2020-01-10 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치 KR20210090505A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200003885A KR20210090505A (ko) 2020-01-10 2020-01-10 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치
US17/036,844 US11651061B2 (en) 2020-01-10 2020-09-29 Memory controller and storage device including the same
CN202110006882.2A CN113113068A (zh) 2020-01-10 2021-01-05 存储器控制器和包括存储器控制器的存储装置
EP21150564.9A EP3848829A1 (en) 2020-01-10 2021-01-07 Memory controller and storage device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200003885A KR20210090505A (ko) 2020-01-10 2020-01-10 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치

Publications (1)

Publication Number Publication Date
KR20210090505A true KR20210090505A (ko) 2021-07-20

Family

ID=74105928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003885A KR20210090505A (ko) 2020-01-10 2020-01-10 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치

Country Status (4)

Country Link
US (1) US11651061B2 (ko)
EP (1) EP3848829A1 (ko)
KR (1) KR20210090505A (ko)
CN (1) CN113113068A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484065B1 (ko) * 2021-09-23 2023-01-02 삼성전자주식회사 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461021B2 (en) * 2020-03-09 2022-10-04 SK Hynix Inc. Computing system and operating method thereof
US11455102B2 (en) 2020-03-09 2022-09-27 SK Hynix Inc. Computing system and operating method thereof
US11610448B2 (en) 2020-07-09 2023-03-21 Toyota Motor North America, Inc. Dynamically adapting driving mode security controls
US11520926B2 (en) * 2020-07-09 2022-12-06 Toyota Motor North America, Inc. Variable transport data retention and deletion
JP7413300B2 (ja) * 2021-03-15 2024-01-15 株式会社東芝 記憶装置
CN114327281B (zh) * 2021-12-30 2023-12-05 深圳忆联信息系统有限公司 用于ssd的tcg软硬件加速方法、装置、计算机设备及存储介质
CN114201421B (zh) * 2022-02-17 2022-05-10 苏州浪潮智能科技有限公司 一种数据流处理方法、存储控制节点及可读存储介质
CN116248406B (zh) * 2023-03-08 2023-09-01 深圳市亿特宝科技有限公司 信息安全存储方法及其信息安全设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081946B2 (en) 2006-03-29 2015-07-14 Stmicroelectronics, Inc. Secure mass storage device
WO2008035412A1 (en) 2006-09-20 2008-03-27 Fujitsu Limited Information processor and starting method
US8190908B2 (en) 2006-12-20 2012-05-29 Spansion Llc Secure data verification via biometric input
US20080288782A1 (en) 2007-05-18 2008-11-20 Technology Properties Limited Method and Apparatus of Providing Security to an External Attachment Device
US8171309B1 (en) * 2007-11-16 2012-05-01 Marvell International Ltd. Secure memory controlled access
JP5210966B2 (ja) 2009-05-22 2013-06-12 株式会社日立製作所 生体認証装置、および、生体認証方法
JP5476363B2 (ja) 2011-12-19 2014-04-23 レノボ・シンガポール・プライベート・リミテッド 生体認証装置を利用したコンピュータの起動方法およびコンピュータ
KR101231216B1 (ko) 2012-07-13 2013-02-07 주식회사 베프스 지문 인식을 이용한 휴대용 저장 장치 및 그 제어 방법
US9961077B2 (en) 2013-05-30 2018-05-01 Nok Nok Labs, Inc. System and method for biometric authentication with device attestation
KR101385929B1 (ko) 2013-07-17 2014-04-16 (주)세이퍼존 멀티 커넥터 지문인식 인증 저장장치
KR20180094205A (ko) 2017-02-14 2018-08-23 삼성전자주식회사 지문 인식 센서를 갖는 저장 장치 및 그것의 동작 방법
US10963877B2 (en) * 2017-07-11 2021-03-30 Mastercard International Incorporated Systems and methods for use in authenticating users in connection with network transactions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484065B1 (ko) * 2021-09-23 2023-01-02 삼성전자주식회사 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템
US11914879B2 (en) 2021-09-23 2024-02-27 Samsung Electronics Co., Ltd. Storage controller and storage system comprising the same

Also Published As

Publication number Publication date
EP3848829A1 (en) 2021-07-14
US20210216616A1 (en) 2021-07-15
CN113113068A (zh) 2021-07-13
US11651061B2 (en) 2023-05-16

Similar Documents

Publication Publication Date Title
KR20210090505A (ko) 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치
US7873837B1 (en) Data security for electronic data flash card
US11681637B2 (en) Memory controller, storage device including the same, and operating method of the memory controller
TWI676116B (zh) 安全儲存系統以及用於安全儲存的方法
CN111475871B (zh) 存储器系统
CN107092495A (zh) 平台固件铠装技术
US11068419B1 (en) Secure data access between computing devices using host-specific key
JP2011086026A (ja) 情報記憶装置、情報記憶プログラム、そのプログラムを記録した記録媒体及び情報記憶方法
TW200837602A (en) Cryptographic key containers on a USB token
US8695085B2 (en) Self-protecting storage
CN111523155A (zh) 解锁在安全数字操作模式下锁定的安全数字存储器设备的方法
US11329815B2 (en) Key management device and processor chip for data encryption/decryption
JP2008160325A (ja) リムーバブル・デバイスを用いたユーザの認証方法およびコンピュータ
US20230266914A1 (en) Storage device including memory controller, and non-volatile memory system including the same and operating method thereof
US20230179418A1 (en) Storage controller and method of operating electronic system
US11468159B2 (en) Memory system
RU119910U1 (ru) Встраиваемый модуль безопасности tsm
KR20210069481A (ko) 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법
TWI731407B (zh) 具有旁通通道的金鑰管理裝置及處理器晶片
CN103119553B (zh) 平台固件铠装技术
JP2004295273A (ja) ストレージにおけるicカードを利用したデータアクセス方法

Legal Events

Date Code Title Description
A201 Request for examination