KR20180001990A - 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법 - Google Patents

저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법 Download PDF

Info

Publication number
KR20180001990A
KR20180001990A KR1020160111902A KR20160111902A KR20180001990A KR 20180001990 A KR20180001990 A KR 20180001990A KR 1020160111902 A KR1020160111902 A KR 1020160111902A KR 20160111902 A KR20160111902 A KR 20160111902A KR 20180001990 A KR20180001990 A KR 20180001990A
Authority
KR
South Korea
Prior art keywords
host
storage medium
protection area
area
authentication information
Prior art date
Application number
KR1020160111902A
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 US15/583,256 priority Critical patent/US20170371573A1/en
Publication of KR20180001990A publication Critical patent/KR20180001990A/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

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)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 저장 매체를 제어하는 호스트의 동작 방법은 사용자로부터 초기 인증 정보를 수신하는 단계, 저장 매체의 저장 공간 중 일부 영역을 보호 영역으로 설정하는 단계, 수신된 초기 인증 정보 및 보호 영역에 대한 보호 영역 정보를 저장 매체로 전송하는 단계, 및 초기 인증 정보를 호스트 상에서 파기하는 단계를 포함한다.

Description

저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법{OPERATION METHOD OF STORAGE MEDIUM, OPERATION METHOD OF HOST CONTROLLING STORAGE MEDIUM, AND OPERATION METHOD OF USER SYSTEM INCLUDING STORAGE MEDIUM AND HOST}
본 발명은 반도체 메모리에 관한 것으로, 좀 더 상세하게는 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phosphide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
불휘발성 메모리 장치 중 하나인 플래시 메모리는 사용자 데이터를 저장하기 위한 대용량 저장 매체로써 널리 사용된다. 최근에는 이러한 대용량 저장 매체에 저장된 데이터를 위협하는 악성 프로그램들이 널리 유포되고 있다. 이러한 악성 프로그램들은 사용자 데이터를 임의로 암호화하거나 변조하여, 실제 사용자가 사용자 데이터를 사용할 수 없게 한다. 이러한 악성 프로그램으로부터 사용자 데이터를 보호하기 위하여, 소프트웨어 또는 하드웨어적인 다양한 데이터 보호 방법들이 개발되고 있다. 그러나, 종래의 데이터 보호 방법들은 다양한 우회 방식을 통해 악성 프로그램이 데이터를 변조하거나 또는 데이터 보호를 위하여 추가적인 비용이 소모되는 문제점이 있다.
본 발명은 위에서 설명한 기술적 과제를 해결하기 위한 것으로, 본 발명은 향상된 신뢰성을 갖는 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법을 제공하는 것을 목적으로 한다.
본 발명의 실시 예에 따른 저장 매체를 제어하는 호스트의 동작 방법은 사용자로부터 초기 인증 정보를 수신하는 단계, 상기 저장 매체의 저장 공간 중 일부 영역을 보호 영역으로 설정하는 단계, 상기 수신된 초기 인증 정보 및 상기 보호 영역에 대한 보호 영역 정보를 상기 저장 매체로 전송하는 단계, 및 상기 초기 인증 정보를 상기 호스트 상에서 파기하는 단계를 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리를 포함하는 저장 매체 및 상기 저장 매체를 제어하는 호스트를 포함하는 사용자 시스템의 동작 방법은 상기 호스트가 사용자로부터 초기 인증 정보를 수신하는 단계, 상기 호스트가 상기 저장 매체의 저장 공간 중 일부 영역을 보호 영역으로 설정하는 단계, 상기 호스트가 상기 수신된 초기 인증 정보 및 상기 보호 영역에 대한 보호 영역 정보를 상기 저장 매체로 전송하는 단계, 상기 저장 매체가 상기 수신된 초기 인증 정보 및 상기 보호 영역 정보를 불휘발성 메모리에 저장하는 단계, 및 상기 호스트가 상기 초기 인증 정보를 상기 호스트 상에서 파기하는 단계를 포함한다.
본 발명의 실시 예에 따른 저장 매체의 동작 방법은 외부 장치로부터 초기 인증 정보 및 보호 영역 정보를 수신하는 단계, 상기 수신된 보호 영역 정보를 기반으로 상기 저장 매체의 저장 공간 중 일부 영역을 보호 영역으로 설정하는 단계, 상기 수신된 초기 인증 정보 및 보호 영역 정보를 메타 영역에 저장하는 단계, 상기 외부 장치로부터 액세스 요청 및 액세스 인증 정보를 수신하는 단계, 상기 수신된 액세스 요청에 응답하여, 상기 액세스 인증 정보 및 상기 초기 인증 정보를 기반으로 인증 동작을 수행하는 단계, 및 상기 인증 동작의 결과에 따라 상기 액세스 요청에 대한 동작을 선택적으로 수행하는 단계를 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리를 포함하는 저장 매체 및 상기 저장 매체를 제어하는 호스트를 포함하는 사용자 시스템의 동작 방법은 상기 호스트가 사용자로부터 초기 인증 정보를 수신하는 단계, 상기 호스트가 보호 영역 설정 요청 및 상기 초기 인증 정보를 상기 저장 매체로 전송하는 단계, 및 상기 저장 매체가 상기 보호 영역 설정 요청에 응답하여, 상기 호스트에 의해 인식되지 않는 보호 영역을 설정하는 단계를 포함한다.
본 발명의 실시 예에 따른 사용자 시스템은 보호 영역을 설정하고, 설정된 보호 영역으로의 액세스 요청에 대하여, 별도의 인증 동작을 수행함으로써, 악성 프로그램으로부터 보호 영역의 데이터를 보호할 수 있다.
뿐만 아니라, 설정된 보호 영역을 읽기 전용 영역으로 설정함으로써, 운영 체제 또는 다른 애플리케이션의 보호 영역으로의 액세스 요청을 방지함으로써, 호스트 상의 오동작을 방지할 수 있다. 따라서, 향상된 신뢰성을 갖는 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 2는 도 1의 사용자 시스템의 소프트웨어 계층을 예시적으로 보여주는 도면이다.
도 3은 도 1의 메모리 컨트롤러를 상세하게 보여주는 블록도이다.
도 4는 도 1의 보호 영역 관리자에 의한 보호 영역 할당 또는 설정 방법을 보여주는 순서도이다.
도 5는 도 4의 보호 영역 할당 방법을 설명하기 위한 도면이다.
도 6은 도 1의 저장 매체의 보호 영역으로의 액세스 요청에 대한 처리 방법을 보여주는 순서도이다.
도 7은 도 1의 사용자 시스템의 보호 영역 백업을 위한 실시 예를 보여주는 순서도이다.
도 8은 도 1의 사용자 시스템의 보호 영역 백업을 위한 다른 실시 예를 보여주는 순서도이다.
도 9는 도 1 의 호스트의 보호 영역의 데이터 및 일반 영역의 데이터를 동기화하는 방법을 보여주는 순서도이다.
도 10은 도 1의 사용자 시스템의 보호 영역을 초기화하는 방법을 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 12는 도 11의 호스트의 동작을 보여주는 순서도이다.
도 13은 도 11의 호스트의 다른 동작을 보여주는 순서도이다.
도 14는 프리-부트 관리자를 업데이트하는 동작을 보여주는 순서도이다.
도도 15는 도 1의 보호 영역 관리자에 의한 보호 영역 할당 또는 설정 방법의 다른 예를 보여주는 순서도이다.
도 16은 도 15의 보호 영역 설정 방법을 설명하기 위한 도면이다.
도 17은 도 1의 호스트 및 저장 매체의 보호 영역에 대한 쓰기 동작을 보여주는 순서도이다.
도 18은 도 1의 호스트 및 저장 매체의 보호 영역에 대한 쓰기 동작을 보여주는 순서도이다.
도 19는 본 발명이 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 1을 참조하면, 사용자 시스템(10)은 호스트(100) 및 저장 매체(200)를 포함한다. 예시적으로, 사용자 시스템(10)은 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나를 포함할 수 있다.
호스트(100)는 운영 체제 및 다양한 응용 프로그램들을 구동할 수 있다. 호스트(100)는 운영 체제 및 다양한 응용 프로그램들을 구동하는 과정에서, 저장 매체(200)에 데이터를 기입하거나 또는 저장 매체(200)에 기입된 데이터를 읽거나, 또는 저장 매체(200)에 기입된 데이터를 변경할 수 있다.
저장 매체(200)는 사용자 시스템(10)의 대용량 저장 매체로써 사용될 수 있다. 예시적으로, 저장 매체(200)는 솔리드 스테이드 드라이브(SSD), USB 메모리, 메모리 스틱, 메모리 카드 등과 같이 사용자 데이터를 저장하기 위한 대용량 저장 매체일 수 있다.
저장 매체(200)는 메모리 컨트롤러(210) 및 불휘발성 메모리 장치(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 호스트(100)의 제어에 따라, 불휘발성 메모리 장치(220)에 데이터를 기입하거나 또는 불휘발성 메모리 장치(220)에 저장된 데이터를 읽고, 읽은 데이터를 출력할 수 있다.
불휘발성 메모리 장치(220)는 메모리 컨트롤러(210)의 제어에 따라 동작할 수 있다. 예시적으로, 불휘발성 메모리 장치(220)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리 또는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM), TRAM(Thyristor RAM)와 같은 불휘발성 메모리를 포함할 수 있다. 예시적으로, 불휘발성 메모리 장치(220)는 복수의 메모리 다이들, 복수의 메모리 칩들, 또는 복수의 메모리 패키지들을 포함할 수 있다.
본 발명에 따른 호스트(100)는 보호 영역 관리자(110)를 포함할 수 있다. 예시적으로, 보호 영역 관리자(110)는 하드웨어, 소프트웨어 또는 그것들의 조합의 형태로 제공될 수 있다. 예시적으로, 보호 영역 관리자(110)는 호스트(100) 상에서 저장 매체(200)의 기능 및 성능을 관리하기 위하여, 저장 매체(200)의 제조사로부터 제공되는 저장 매체 관리 프로그램일 수 있다.
보호 영역 관리자(110)는 사용자의 요청에 따라 저장 매체(200)의 저장 공간 중 일부 영역을 보호 영역(protected area)으로 설정할 수 있다. 예시적으로, 보호 영역은 비인증된 사용자 또는 악성 프로그램으로부터의 요청에 따른 액세스(특히, 쓰기 액세스)가 불가한 영역을 가리킬 수 있다.
예를 들어, 저장 매체(200)의 저장 공간은 다양한 응용 프로그램들에 자유롭게 액세스될 수 있다. 이 때, 랜섬-웨어와 같은 악성 프로그램에 의해 저장 매체(200)의 저장 공간에 저장된 데이터가 액세스되고, 액세스된 데이터가 위조, 변조, 또는 암호화될 수 있다. 이러한 악성 프로그램으로부터의 액세스를 방지하기 위하여, 보호 영역 관리자(110)는 저장 매체(200)의 저장 공간 중 일부 영역을 보호 영역으로 설정할 수 있다.
보호 영역 관리자(110)는 저장 매체(200)에 저장된 데이터 중 보호가 요구되는 데이터(이하에서, "보호 데이터"라 칭함.)를 보호 영역으로 복사, 이동, 또는 백업할 수 있다. 비인증 사용자 또는 다른 악성 프로그램은 보호 영역을 액세스할 수 없기 때문에, 보호 영역에 저장된 보호 데이터는 악성 프로그램에 의해 변조되지 않을 것이다.
예시적으로, 보호 영역은 논리적 영역으로 구분될 수 있다. 예시적으로, 보호 영역 관리자(110)는 보호 영역을 읽기 전용 영역(read only area)으로 설정할 수 있다. 또는 보호 영역 관리자(110)는 보호 영역에 저장된 데이터를 읽기 전용 데이터로 설정할 수 있다. 보호 영역을 읽기 전용 영역으로 설정하거나 또는 보호 영역에 저장된 데이터를 읽기 전용 데이터로 설정함으로써, 호스트(100) 상의 다른 프로그램들은 보호 영역에 대한 액세스 동작(특히, 쓰기 동작)을 수행하지 않을 것이다. 따라서, 호스트(100)에서 보호 영역에 대한 액세스가 방지되기 때문에, 보호 영역으로의 액세스로 인한 오작동이 방지될 수 있다.
예시적으로, 보호 영역 관리자(110)는 사용자로부터 초기 인증 정보(IAI; authentication information)를 수신하고, 수신된 인증 정보에 응답하여, 상술된 보호 영역 할당 동작을 수행할 수 있다. 인증 정보는 사용자 패스워드, 사용자 생체 정보 등과 같은 정보를 가리킬 수 있다. 예시적으로, 인증 정보가 저장 매체(200)로 제공된 이후에, 보호 영역 관리자(110)는 인증 정보를 파기(discard)할 수 있다. 즉, 일반적인 동작에서, 호스트(100) 상에 사용자 인증 정보는 존재하지 않을 것이다.
예시적으로, 보호 영역 관리자(110)는 수신된 초기 인증 정보(IAI) 및 할당된 보호 영역에 대한 보호 영역 정보(PAI; protected area information)를 저장 매체(200)로 제공할 수 있다. 보호 영역 정보(PAI)는 보호 영역의 논리적 블록 어드레스(LBA; logical block address)의 범위를 가리킬 수 있다.
저장 매체(200)는 호스트(100), 특히, 보호 영역 관리자(110)로부터 수신된 초기 인증 정보(IAI) 및 보호 영역 정보(IAI)를 불휘발성 메모리 장치(220)에 저장할 수 있다. 예시적으로, 수신된 초기 인증 정보(IAI) 및 보호 영역(PA)에 대한 정보(PAI)는 메타 영역(Meta Area)에 저장될 수 있다. 메타 영역(Meta area)은 저장 매체(200)의 저장 영역 중 저장 매체(200)가 동작하는데 요구되는 다양한 정보를 저장하기 위한 저장 영역을 가리킬 수 있다. 예시적으로, 메타 영역은 호스트(100)에 의해 식별되지 않는 저장 영역일 수 있다. 예시적으로, 저장 매체(200)는 별도의 저장 영역 또는 별도의 저장 회로에 초기 인증 정보(IAI) 및 보호 영역 정보(PAI)를 저장하도록 구성될 수 있다. 즉, 호스트(100)는 저장 매체(200)에 저장된 초기 인증 정보(IAI)를 인식할 수 없을 것이다.
메모리 컨트롤러(210)는 인증 관리자(211)를 포함할 수 있다. 인증 관리자(211)는 사용자에 대한 인증 동작을 수행할 수 있다. 예를 들어, 인증 관리자(211)는 불휘발성 메모리 장치(220)에 저장된 보호 영역 정보(PAI)를 기반으로, 저장 매체(200)의 저장 영역 중 보호 영역을 식별 또는 인지할 수 있다. 호스트(100)로부터 보호 영역에 대한 액세스 요청이 수신된 경우, 인증 관리자(211)는 저장된 초기 인증 정보(IAI)를 기반으로 인증 동작을 수행할 수 있다. 이 때, 인증 동작은 호스트(100)로부터 제공되는 액세스 인증 정보 및 불휘발성 메모리 장치(220)에 저장된 초기 인증 정보를 비교함으로써 수행될 수 있다.
이하에서, 설명의 편의를 위하여, 보호 영역 설정 시, 호스트(100)로부터 제공되는 인증 정보는 초기 인증 정보라 칭하고, 액세스 동작시 호스트(100)로부터 제공되는 인증 정보는 액세스 인증 정보라 칭한다. 초기 인증 정보(IAI)는 불휘발성 메모리 장치(220)에 저장되고, 액세스 인증 정보(AAI)는 저장된 초기 인증 정보(IAI)와 비교하기 위하여 사용될 것이다.
100)의 보호 영역 관리자(111)는 보호 영역을 읽기 전용 영역으로 설정하거나 또는 보호 영역에 저장된 데이터를 읽기 전용 데이터로 설정함으로써, 다른 응용 프로그램에 의한 보호 영역으로의 액세스를 방지할 수 있다. 따라서, 호스트(100)의 정상적인 동작을 보장할 뿐만 아니라, 악성 프로그램 또는 비인증 사용자에 의한 데이터 변조, 위조, 또는 암호화를 방지할 수 있다.
도 2는 도 1의 사용자 시스템의 소프트웨어 계층을 예시적으로 보여주는 도면이다. 도 1 및 도 2를 참조하면, 사용자 시스템(10)의 소프트웨어 계층은 애플리케이션(101), 파일 시스템(102), 및 플래시 변환 계층(212)을 포함할 수 있다. 예시적으로, 애플리케이션(101) 및 파일 시스템(102)은 호스트(100) 상에서 구동되는 소프트웨어 계층일 수 있다.
애플리케이션(101)은 호스트(100)에서 구동되는 다양한 응용 프로그램들을 가리킨다. 예시적으로, 도 1에 도시된 보호 영역 관리자(110)는 소프트웨어 형태로 제공될 수 있으며, 애플리케이션(101)의 한 종류일 수 있다.
파일 시스템(102)은 애플리케이션(101)에 의해 사용되는 파일 또는 데이터를 불휘발성 메모리 장치(220)에 저장할 경우, 이를 조직화하는 역할을 수행한다. 예를 들어, 파일 시스템(102)은 저장 매체(200)의 저장 영역을 논리적 어드레스로 관리할 수 있다. 파일 시스템(102)은 저장 매체(200)에 저장된 데이터에 대하여 논리적 어드레스를 부여하고 관리할 수 있다. 예시적으로, 파일 시스템(102)은 외부 장치의 운영 체제(OS; Operating System)에 따라 다른 형태를 가질 수 있다. 예시적으로 파일 시스템(102)은 FAT(File Allocation Table), FAT32, NTFS(NT File System), HFS(Hierarchical File System), JSF2(Journaled File System2), XFS, ODS-5(On-Disk Structure-5), UDF, ZFS, UFS(Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 수 있다.
FTL(212)은 불휘발성 메모리 장치(220)가 효율적으로 사용될 수 있도록, 호스트(100) 및 불휘발성 메모리 장치(220) 사이의 인터페이스를 제공할 수 있다. 예를 들어, FTL(212)은, 파일 시스템(102)에 의해 관리되는 논리적 어드레스 및 불휘발성 메모리 장치(220)의 물리적 어드레스를 변환하는 변환 동작을 수행할 수 있다. FTL(212)은 이러한 어드레스 변환 동작을 맵핑 테이블을 통해 관리한다. 예시적으로, 맵핑 테이블은 도 1을 참조하여 설명된 메타 영역에 저장될 수 있다. 예시적으로, FTL(212)은 메모리 컨트롤러(210)에서 구동될 수 있다. 메모리 컨트롤러(210)의 인증 관리자(211)는 FTL(212)에 포함될 수 있다.
도 3은 도 1의 메모리 컨트롤러를 상세하게 보여주는 블록도이다. 도 1 내지 도 3을 참조하면, 메모리 컨트롤러(210)는 프로세서(213), SRAM(214), ROM(215), 호스트 인터페이스(216), 및 플래시 인터페이스(217)를 포함할 수 있다.
프로세서(213)는 메모리 컨트롤러(210)의 제반 동작을 제어할 수 있다. SRAM(214)은 메모리 컨트롤러(210)의 버퍼 메모리 또는 캐시 메모리로써 사용될 수 있다. ROM(215)은 메모리 컨트롤러(210)가 동작하는데 요구되는 다양한 정보를 펌웨어 형태로 저장할 수 있다.
메모리 컨트롤러(210)는 호스트 인터페이스(216)를 통해 호스트(100)와 통신할 수 있다. 호스트 인터페이스(216)는 DDR(Double Data Rate) 인터페이스, USB (Universal Serial Bus) 인터페이스, MMC (multimedia card), eMMC(embedded MMC) 인터페이스, PCI (peripheral component interconnection) 인터페이스, PCI-E (PCI-express) 인터페이스, ATA (Advanced Technology Attachment) 인터페이스, Serial-ATA 인터페이스, Parallel-ATA 인터페이스, SCSI (small computer small interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics) 인터페이스, 파이어와이어(Firewire) 인터페이스, UFS(Universal Flash Storage) 인터페이스, NVMe (Nonvolatile Memory express) 인터페이스 등과 같은 다양한 통신 인터페이스들 중 적어도 하나를 포함할 수 있다. 메모리 컨트롤러(210)는 플래시 인터페이스(216)를 통해 불휘발성 메모리 장치(220)와 통신할 수 있다.
예시적으로, 도 1 및 도 2를 참조하여 설명된 인증 관리자(211) 및 FTL(212)은 소프트웨어 형태로 제공되며, SRAM(214)에 저장되고, 프로세서(213)에 의해 구동될 수 있다. 또는 인증 관리자(211)는 호스트 인터페이스(216)에 포함된 다양한 계층들 중 어느 하나에 포함될 수 있다.
도 4는 도 1의 보호 영역 관리자에 의한 보호 영역 할당 또는 설정 방법을 보여주는 순서도이다. 도 1, 도 2, 및 도 4를 참조하면, S110 단계에서, 보호 영역 관리자(110)는 사용자로부터 초기 인증 정보(IAI)를 수신할 수 있다. 예를 들어, 보호 영역 관리자(110)는 별도의 입력 장치(예를 들어, 키보드, 터치 스크린, 생체 인식 장치 등)를 통해 사용자로부터 초기 인증 정보(IAI)를 수신할 수 있다.
S120 단계에서, 보호 영역 관리자(110)는 보호 영역(PA)을 할당할 수 있다. 예를 들어, 보호 영역 관리자(110)는 저장 매체(200)의 저장 공간 중 일부 공간을 보호 영역(PA)으로 할당할 수 있다. 예시적으로, 할당된 보호 영역(PA)은 사용자의 요청에 의해 정해진 크기의 저장 공간일 수 있다. 또는 할당된 보호 영역(PA)은 미리 정해진 크기의 저장 공간일 수 있다. 예시적으로, 할당된 보호 영역(PA)은 연속된 논리적 블록 어드레스(LAB)를 가질 수 있다. 예시적으로, 할당된 보호 영역(PA)은 미리 정해진 논리 블록 어드레스(LAB)를 가질 수 있다.
S130 단계에서, 보호 영역 관리자(110)는 보호 데이터를 할당된 보호 영역(PA)으로 백업할 수 있다. 예를 들어, 사용자는 저장 매체(200)에 저장된 데이터 중 보호가 요구되는 보호 데이터를 선택할 수 있다. 보호 영역 관리자(110)는 사용자에 의해 선택된 보호 데이터를 보호 영역(PA)으로 백업할 수 있다. 이하에서, 간결한 설명을 위하여, 보호 영역(PA)으로 보호 데이터를 이동, 복사, 갱신, 또는 삭제하는 동작들은 백업 동작이라 칭한다.
S140 단계에서, 보호 영역 관리자(110)는 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)를 저장 매체(200)로 제공할 수 있다. 예시적으로, 저장 매체(200)는 수신된 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)를 메타 영역(또는 별도의 저장 영역)에 저장할 수 있다. 이 후, 저장 매체(200)는 보호 영역 정보(PAI)에 해당하는 액세스 요청이 수신된 경우, 별도의 인증 동작을 통해 액세스 요청을 처리하거나 거부할 수 있다.
S150 단계에서, 보호 영역 관리자(110)는 호스트(100) 상의 초기 인증 정보(IAI)를 파기할 수 있다. 예를 들어, 초기 인증 정보(IAI)는 저장 매체(200)로 전송되기 위하여, 호스트(100)의 메인 메모리 또는 별도의 저장 장치(미도시)에 임시 저장될 수 있다. 호스트(100)는 S140 단계의 동작을 완료한 이후에, 메인 메모리 또는 별도의 저장 장치에 저장된 초기 인증 정보(IAI)를 파기, 제거, 또는 삭제할 것이다. 즉, 초기 인증 정보(IAI)가 호스트(100) 상에서 파기됨으로써, 호스트(100) 상의 운영 체제 또는 다른 애플리케이션들은 액세스 인증 정보를 인지하거나 식별할 수 없을 것이다. 호스트(100)에 의해 초기 인증 정보(IAI)가 파기되더라도, 저장 매체(200) 상의 초기 인증 정보(IAI)는 유지될 것이다.
예시적으로, 보호 영역 관리자(110)는 S130 단계를 수행한 이후에, 보호 영역(PA)을 읽기 전용으로 설정할 수 있다. 예를 들어, 보호 영역 관리자(110)는 보호 영역을 별도의 파티션으로써 지정할 수 있다. 보호 영역 관리자(110)는 보호 영역으로 지정된 파티션의 속성을 읽기 전용으로 설정할 수 있다.
또는 보호 영역 관리자(110)는 S130 단계를 수행한 이후에, 보호 영역(PA)에 저장된 데이터의 속성을 읽기 전용으로 설정할 수 있다.
또는 보호 영역 관리자(110)는 불량 섹터 검사를 수행할 수 있다. 불량 섹터 검사 중, 저장 매체(200)는 호스트(100)가 보호 영역(PA)으로 할당된 저장 공간을 불량 섹터로 인식하도록 불량 섹터를 유발시킬 수 있다. 이 경우, 호스트(100)는 보호 영역(PA)을 불량 섹터로 인식하고, 보호 영역(PA)에 대한 액세스를 수행하지 않을 것이다.
상술된 바와 같이, 보호 영역(PA)을 읽기 전용으로 설정하거나 또는 불량 섹터를 이용함으로써, 호스트(100) 상의 다른 애플리케이션 또는 운영 체제가 보호 영역을 액세스하는 것이 방지될 수 있다.
도 5는 도 4의 보호 영역 할당 방법을 설명하기 위한 도면이다. 도 1, 도 2, 도 4, 및 도 5를 참조하면, 호스트(100)(특히, 파일 시스템(102))는 저장 매체(200)를 저장 공간을 논리 블록 어드레스들(LAB0~LBAk)의 공간으로 인식할 수 있다. 호스트(100)에 의해 인식된 저장 공간은 애플리케이션(101)에 의해 자유롭게 액세스될 수 있는 일반 영역일 수 있다. 예시적으로, 논리 블록 어드레스들(LAB0~LBAk)의 공간에 데이터(DATA)(즉, 사용자 데이터)가 저장된 것으로 가정한다. 예시적으로, 호스트(100)에 의해 인식되는 논리 블록 어드레스들(LBA0~LBAk)의 공간은 저장 매체(200)의 물리적 저장 공간과 다를 수 있다. 예시적으로, 논리 블록 어드레스들(LBA0~LBAk)은 FTL(212)에 의해 불휘발성 메모리 장치(220)의 물리적 어드레스로 변환될 수 있다.
호스트(100)의 보호 영역 관리자(110)는 사용자의 요청에 따라 일반 영역의 일부를 보호 영역(PA; protected area)을 설정할 수 있다. 예를 들어, 보호 영역 관리자(110)는 도 5에 도시된 바와 같이, 일반 영역 중 일부 영역을 별도의 파티션으로 분할하고, 분할된 파티션을 보호 영역(PA)으로써 설정할 수 있다. 이 경우, 호스트(100)의 파일 시스템(102)은 2 개의 파티션으로써 저장 공간을 인식할 수 있다. 이 때, 2개의 파티션은 일반 영역에 대한 파티션(즉, LBA0~LBAn 및 LBAm~LBAk의 공간) 및 보호 영역(PA)에 대한 파티션(즉, LBAn~LBAm의 공간)을 가리킨다. 예시적으로, 보호 영역 관리자(110)는 운영 체제(OS)에서 제공되는 파티션 분할 기능을 사용하여 상술된 파티션 분할 동작을 수행할 수 있다.
보호 영역 관리자(110)는 파티션 분할 동작을 통해 보호 영역(PA)을 지정한 이후에, 데이터(DATA)(즉, 보호 데이터)를 보호 영역(PA)(또는 분할된 파티션)으로 백업할 수 있다. 이 후, 보호 영역 관리자(110)는 보호 영역(PA)과 대응되는 파티션의 속성을 읽기 전용(RO; read only)으로 설정할 수 있다. 즉, 보호 영역(PA)과 대응되는 파티션의 속성을 읽기 전용(RO; read only)으로 설정함으로써, 다른 애플리케이션 또는 운영 체제가 보호 영역(PA)을 액세스(특히, 쓰기)하는 것을 방지할 수 있다. 이로 인하여, 사용자 시스템(10)의 오작동이 방지될 수 있다.
예시적으로, 보호 영역 관리자(110)는 보호 영역(PA)에 대한 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)를 저장 매체(200)로 제공하고, 저장 매체(200)는 수신된 정보를 기반으로 보호 영역(PA)으로의 액세스를 관리할 수 있다. 즉, 별도의 인증이 없는 경우, 저장 매체(200)는 보호 영역(PA)으로의 액세스를 처리하지 않기 때문에, 보호 영역(PA)에 저장된 데이터(DATA)를 다른 애플리케이션(특히, 악성 프로그램)으로부터 보호될 수 있다.
예시적으로, 도 5를 참조하여 설명된 보호 영역(PA) 설정 방법은 예시적인 것이며, 본 발명의 기술적 사상이 이에 한정되는 것은 아니다. 예를 들어, 도 4를 참조하여 설명된 바와 같이, 호스트(100)는 보호 영역(PA)에 저장된 데이터의 속성을 변경하거나 또는 불량 섹터 검사 방법을 사용하여, 다른 애플리케이션 또는 운영 체제가 보호 영역(PA)을 액세스하는 것을 방지할 수 있다. 또는 호스트(100)는 본문에 기재되어 있지 않은 다양한 방식을 통해 다른 애플리케이션 또는 운영 체제가 보호 영역(PA)을 액세스하는 것을 방지할 수 있다.
도 6은 도 1의 저장 매체의 보호 영역으로의 액세스 요청에 대한 처리 방법을 보여주는 순서도이다. 설명의 편의를 위하여, 저장 매체(200)의 관점에서, 액세스 요청에 대한 처리 방법이 설명된다. 예시적으로, 도 6의 처리 방법은 저장 매체(200)의 인증 관리자(211)에 의해 수행될 수 있다.
도 1 및 도 6을 참조하면, S210 단계에서, 저장 매체(200)는 호스트(100)로부터 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)를 수신할 수 있다. 예시적으로, 수신된 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)는 별도의 저장 영역 또는 불휘발성 메모리 장치(220)의 메타 영역에 저장될 수 있다.
S220 단계에서, 저장 매체(200)는 액세스 요청을 수신할 수 있다. 예시적으로, 액세스 요청은 호스트(100)로부터의 쓰기 요청일 수 있다. 예시적으로, 호스트(100)로부터의 액세스 요청은 액세스 인증 정보(AAI)와 함께 수신될 수 있다. 액세스 인증 정보(AAI)는 보호 영역(PA)에 대한 액세스 요청시 사용자로부터 수신된 정보일 수 있다. 예시적으로, 호스트(100)는 액세스 요청을 발행하기 이전에, 사용자로부터 액세스 인증 정보를 요구하거나 또는 수신할 수 있다.
S230 단계에서, 저장 매체(200)는 수신된 액세스 요청이 보호 영역(PA)에 대한 요청인지 판별할 수 있다. 예를 들어, 저장 매체(200)는 S210 단계에서 수신된 보호 영역 정보(PAI)를 기반으로 보호 영역(PA)으로 설정된 논리 블록 어드레스를 인지할 수 있다. 저장 매체(200)는 수신된 액세스 요청에 대한 논리 블록 어드레스가 보호 영역(PA)으로 설정된 논리 블록 어드레스에 포함되는지 판별할 수 있다.
보호 영역(PA)에 대한 액세스 요청인 경우, S240 단계에서, 저장 매체(200)는 인증된 사용자로부터의 액세스 요청인지 판별할 수 있다. 예를 들어, 저장 매체(200)는 S210 단계에서 수신된 액세스 인증 정보(AAI)를 기반으로 인증 동작을 수행할 수 있다. 좀 더 상세한 예로써, 저장 매체(200)는 호스트(100)로부터 액세스 요청과 함께 액세스 인증 정보(AAI)를 수신할 수 있다. 저장 매체(200)는 저장된 초기 인증 정보(IAI) 및 액세스 인증 정보(AAI)를 비교함으로써, 수신된 액세스 요청이 인증된 사용자로부터의 요청인지 판별할 수 있다.
또는 호스트(100)로부터 액세스 요청과 액세스 인증 정보가 함께 수신되지 않은 경우(즉, 호스트(100)로부터 액세스 요청만 수신된 경우), 저장 매체(200)는 수신된 액세스 요청이 비인증된 사용자로부터의 요청인 것으로 판별할 수 있다.
인증된 사용자로부터의 액세스 요청이 아닌 경우, S250 단계에서, 저장 매체(200)는 액세스 요청을 거부할 수 있다. 예를 들어, 저장 매체(200)는 수신된 액세스 요청에 대한 별도의 동작을 수행하지 않을 수 있다. 또는 저장 매체(200)는 수신된 액세스 요청에 대하여, 별도의 응답 또는 인터럽트 신호를 호스트(100)로 제공할 수 있다.
호스트(100)는 저장 매체(200)로부터의 무응답, 별도의 응답, 또는 인터럽트 신호 등에 응답하여, 비인증된 사용자 또는 비인증된 애플리케이션(즉, 악성 프로그램)이 보호 영역(PA)으로 액세스를 시도한 것을 인지할 수 있다. 호스트(100)는 별도의 매체(예를 들어, 디스플레이, 스피커 등)를 통해 비인증된 사용자 또는 비인증된 애플리케이션이 보호 영역(PA)으로 액세스를 시도한 사실을 사용자에게 알릴 수 있다. 예시적으로, 사용자는 상술된 알림을 통해 별도의 보안 동작(예를 들어, 오류 검사, 바이러스 검사 등)을 수행하여, 악성 프로그램을 제거할 수 있다.
수신된 액세스 요청이 보호 영역(PA)으로의 액세스가 아니거나 또는 인증된 사용자로부터의 요청인 경우, S260 단계에서, 저장 매체(200)는 수신된 액세스 요청을 처리할 수 있다.
예시적으로, 비인증 사용자 또는 비인증 애플리케이션은 읽기 전용(RO)으로 설정된 보호 영역(PA)의 속성을 변경하여 보호 영역(PA)으로 액세스 요청을 전송할 수 있을 것이다. 그러나 상술된 바와 같이, 저장 매체(200)는 보호 영역(PA)으로의 액세스 요청에 대하여 별도의 인증 동작을 수행하고, 인증된 경우에만 보호 영역(PA)으로의 액세스 요청을 처리할 것이다. 따라서, 비인증 사용자 또는 비인증 애플리케이션의 보호 영역(PA)으로의 액세스가 방지될 수 있고, 보호 영역(PA)에 저장된 데이터가 안전하게 보호될 수 있다.
예시적으로, 인증된 사용자에 의해 보호 영역(PA)에 저장된 보호 데이터를 백업(또는 갱신, 삭제, 복사 등)하기 위한 다양한 방법들이 존재할 수 있다. 이하의 도면들을 참조하여, 보호 영역(PA)에 저장된 보호 데이터를 백업하기 위한 호스트(100) 및 저장 매체(200)의 보호 데이터 백업 동작이 상세하게 설명된다. 그러나, 이하에서 설명되는 실시 예들은 단순히 본 발명의 실시 예를 상세하게 설명하기 위한 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다.
이하에서, 호스트(100)는, 도 4 및 도 5를 참조하여 설명된 보호 영역 설정 방법을 통해, 저장 매체(200)의 저장 공간들 중 보호 영역(PA)을 설정한 것으로 가정한다. 또한 저장 매체(200)는 호스트(100)로부터 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)를 수신하고, 수신된 정보를 별도의 저장 회로 또는 불휘발성 메모리 장치(220)의 메타 영역에 저장한 것으로 가정한다.
이하에서, 간결한 설명을 위하여, 호스트(100) 및 저장 매체(200)의 관점에서 동작 방법들이 설명되나, 호스트(100)의 보호 영역 관리자(110) 및 저장 매체(200)의 메모리 컨트롤러(210) 또는 인증 관리자(211)에 의해 이하의 동작들이 수행될 수 있다.
도 7은 도 1의 사용자 시스템의 보호 영역 백업을 위한 실시 예를 보여주는 순서도이다. 도 1 및 도 7을 참조하면, S311 단계에서, 호스트(100)는 사용자로부터 액세스 인증 정보(AAI; access authentication information)를 수신할 수 있다. 예를 들어, 호스트(100)는 별도의 입력 장치(예를 들어, 키보드, 터치 스크린, 생체 인식 장치 등)를 통해 사용자로부터 액세스 인증 정보(AAI)를 수신할 수 있다. 예시적으로, S311 단계의 동작은 사용자로부터의 명시적 요청에 의해 수행될 수 있다.
S312 단계에서, 호스트(100)는 액세스 인증 정보(AAI)와 함께 보호 영역(PA)을 해제하기 위한 해제 요청을 저장 매체(200)로 전송할 수 있다. 예시적으로, 호스트(100)는 저장 매체(200)와 미리 정해진 프로토콜을 기반으로 통신할 수 있고, 상술된 액세스 인증 정보(AAI) 및 요청은 미리 정해진 프로토콜에 기반된 방식에 따라 저장 매체(200)로 제공될 수 있다. 예시적으로, 액세스 인증 정보(AAI)는 상술된 해제 요청에 포함될 수 있다.
S313 단계에서, 저장 매체(200)는 수신된 해제 요청이 인증된 사용자로부터의 요청인지 판별할 수 있다. 예를 들어, 저장 매체(200)는 저장된 초기 인증 정보(IAI) 및 수신된 액세스 인증 정보(AAI)를 비교함으로써, 수신된 해제 요청이 인증된 사용자로부터의 요청인지 판별할 수 있다.
인증된 사용자로부터의 요청인 경우, S314 단계에서, 저장 매체(200)는 보호 영역(PA)을 해제할 수 있다. 예시적으로, 보호 영역을 해제하는 것은 별도의 인증 동작 없이 보호 영역에 대한 액세스 요청이 처리될 수 있음을 의미할 수 있다. 또는 보호 영역을 해제하는 것은 보호 영역을 일반 영역으로 변경하는 것을 의미할 수 있다.
S315 단계에서, 호스트(100) 및 저장 매체(200)는 보호 영역으로 데이터를 백업할 수 있다. 예를 들어, 호스트(100)는 미리 정해진 프로토콜을 기반으로 일반 영역에 저장된 보호 데이터를 읽고, 읽은 보호 데이터를 보호 영역(PA)으로 백업할 수 있다.
도면의 간결성을 위하여, 도 7의 S315 단계에서, 하나의 동작 단계를 통해 데이터 백업 과정이 도시되나, 호스트(100) 및 저장 매체(200)는 데이터 백업 동작 동안 다양한 신호들을 주고 받을 수 있다. 다양한 신호들은 미리 정해진 프로토콜에 기반된 신호들일 수 있다.
데이터 백업 동작이 완료된 이후에, S316 단계에서, 호스트(100)는 액세스 인증 정보(AAI)를 파기할 수 있다. 예를 들어, S311 단계에서 수신된 액세스 인증 정보(AAI)는 저장 매체(200)로 전송되기 위하여, 호스트(100)의 메인 메모리(미도시)에 임시 저장될 수 있다. 호스트(100)는 데이터 갱신 동작을 완료한 이후에, 메인 메모리에 저장된 액세스 인증 정보를 파기, 제거, 또는 삭제할 것이다. 즉, 액세스 인증 정보(AAI)가 파기됨으로써, 호스트(100) 상의 운영 체제 또는 다른 애플리케이션들은 액세스 인증 정보를 인지하거나 식별할 수 없을 것이다. 호스트(100)에 의해 액세스 인증 정보(AAI)가 파기되더라도, 저장 매체(200)에 저장된 초기 인증 정보는 유지될 것이다.
데이터 갱신 동작이 완료된 이후에, S317 단계에서, 저장 매체(200)는 보호 영역(PA)을 다시 설정할 수 있다. 예시적으로, 저장 매체(200)가 보호 영역(PA)을 다시 설정하는 것은 보호 영역(PA)으로의 액세스 요청에 대하여 인증 동작이 수행됨을 의미한다.
예시적으로, 호스트(100)는 보호 영역(PA)을 다시 설정하기 위하여, 보호 영역 정보(PAI)를 저장 매체(200)로 전송하고, 저장 매체(200)는 수신된 보호 영역 정보(PAI)를 기반으로 보호 영역(PA)을 다시 설정할 수 있다.
상술된 바와 같이, 호스트(100) 및 저장 매체(200)는 사용자로부터의 액세스 인증 정보(AAI)를 기반으로 보호 영역(PA)을 일시적으로 해제하여 보호 영역(PA)으로의 데이터 백업을 수행한 이후에, 다시 보호 영역(PA)을 설정할 수 있다. 상술된 동작을 통해 보호 영역(PA)에 대한 데이터 갱신, 쓰기, 또는 삭제가 가능할 수 있다.
도 8은 도 1의 사용자 시스템의 보호 영역 백업을 위한 다른 실시 예를 보여주는 순서도이다. 도 1 및 도 8을 참조하면, 호스트(100)는 S321 단계의 동작을 수행한다. S321 단계의 동작은 도 7의 S311 단계의 동작과 유사할 수 있다.
S322 단계에서, 호스트(100)는 액세스 인증 정보(AAI) 및 보호 영역(PA)을 액세스하기 위한 액세스 요청을 저장 매체(200)로 전송할 수 있다. 예시적으로, 액세스 인증 정보(AAI) 및 액세스 요청은 미리 정해진 프로토콜에 기반된 신호일 수 있다.
S323 단계에서, 저장 매체(200)는 수신된 액세스 요청이 인증된 사용자로부터의 요청인지 판별할 수 있다. S323 단계의 동작은 S313 단계의 동작과 유사하므로 이에 대한 상세한 설명은 생략된다.
인증된 사용자인 경우, S324 단계에서, 저장 매체(200)는 수신된 요청을 처리할 수 있다. 예를 들어, 수신된 액세스 요청이 보호 영역(PA)에 저장된 데이터의 갱신을 가리키는 경우, 저장 매체(200)는 보호 영역(PA)에 저장된 데이터를 갱신할 수 있다. 즉, 저장 매체(200)는 수신된 요청에 대응하는 동작을 수행할 수 있다.
인증된 사용자가 아닌 경우, 저장 매체(200)는 별도의 동작을 수행하지 않을 수 있다. 또는 비록 도면에 도시되지는 않았으나, 저장 매체(200)는 특정 알림 신호를 호스트(100)로 제공할 수 있다. 특정 알림 신호는 액세스 요청이 거부되었음을 알리기 위한 신호일 수 있다.
S325 단계에서, 호스트(100)는 데이터 백업이 완료되었는지 판별할 수 있다. 예를 들어, 호스트(100)는 사용자의 요청에 따른 보호 데이터가 모두 보호 영역(PA)으로 백업되었는지 판별할 수 있다.
데이터 백업이 완료되지 않은 경우, 호스트(100)는 S322 단계의 동작을 수행한다. 데이터 백업이 완료된 경우, S326 단계에서, 호스트(100)는 액세스 인증 정보(AAI)를 파기할 수 있다. S326 단계의 동작은 도 7의 S316 단계의 동작과 유사하므로 이에 대한 상세한 설명은 생략된다.
상술된 바와 같이, 호스트(100)는 사용자로부터 1회의 액세스 인증 정보(AAI)를 수신하고, 수신된 액세스 인증 정보(AAI)를 사용하여 복수의 보호 데이터에 대한 백업 동작을 수행할 수 있다. 이 때, 호스트(100)는 백업을 위한 요청과 함께 액세스 인증 정보(AAI)를 저장 매체(200)로 전송한다. 저장 매체(200)는 수신된 액세스 인증 정보(AAI) 및 미리 저장된 초기 인증 정보(IAI)를 비교함으로써 인증 동작을 수행하고, 인증이 완료된 경우에만, 수신된 요청에 대응되는 동작(즉, 보호 데이터의 백업 또는 갱신)을 수행한다.
도 9는 도 1 의 호스트의 보호 영역의 데이터 및 일반 영역의 데이터를 동기화하는 방법을 보여주는 순서도이다. 도면의 간결성 및 설명의 편의를 위하여, 데이터 동기화 방법은 호스트(100)의 관점에서 설명된다.
도 1 및 도 9를 참조하면, S331 단계에서, 호스트(100)는 데이터 백업이 요구되는지 판별할 수 있다. 예를 들어, 호스트(100)는 일반 영역에 저장된 보호 데이터를 모니터링하고, 보호 데이터의 백업이 요구되는지 판별할 수 있다. 예시적으로, S331 단계의 동작은 보호 영역 관리자(110)에 의해 자동으로 수행되거나 또는 사용자의 명시적인 요청에 의해 수행될 수 있다.
보호 데이터의 백업이 요구되는 경우, S332 단계에서, 호스트(100)는 사용자로부터 액세스 인증 정보(AAI)를 수신할 수 있다. 예를 들어, 보호 데이터의 백업이 요구되는 경우, 호스트(100)의 보호 영역 관리자(110)는 별도의 매체(예를 들어, 디스플레이, 스피커 등)를 통해 사용자에게 액세스 인증 정보(AAI)를 요청할 수 있다. 사용자는 액세스 인증 정보(AAI) 요청에 따라, 보호 데이터의 백업을 위하여 호스트(100)로 액세스 인증 정보(AAI)를 제공할 수 있다.
S333 단계에서, 호스트(100)는 수신된 액세스 인증 정보(AAI)를 기반으로 백업 동작을 수행할 수 있다. 예시적으로, S332 단계 및 S333 단계의 동작들은 도 7 및 도 8을 참조하여 설명된 백업 방법을 통해 수행될 수 있다.
상술된 바와 같이, 호스트(100)의 보호 영역 관리자(110)는 보호 데이터의 백업이 요구되는지 판별하고, 판별 결과 또는 사용자의 요청에 따라, 보호 데이터 백업을 수행할 수 있다. 이 때, 저장 매체(200)는 사용자로부터의 액세스 인증 정보(AAI)를 기반으로 인증 동작을 수행하고, 인증 동작의 결과에 따라 보호 데이터 백업을 수행할 수 있다. 따라서, 보호 영역(PA)의 데이터는 비인증 사용자 또는 비인증 애플리케이션으로부터 보호될 수 있다.
도 10은 도 1의 사용자 시스템의 보호 영역을 초기화하는 방법을 보여주는 순서도이다. 예시적으로, 사용자가 인증 정보를 분실하거나 또는 인증 정보를 정상적으로 입력할 수 없는 경우, 도 10에 도시된 방법에 따라, 보호 영역(PA)이 해제 또는 초기화될 수 있다.
도 1 및 도 10을 참조하면, 호스트(100)는 S411 단계에서, 사용자로부터 시리얼 넘버를 수신할 수 있다. 예시적으로, 시리얼 넘버는 초기 인증 정보 또는 액세스 인증 정보와 다른 미리 정해진 문자 또는 숫자 조합의 코드일 수 있다. 예시적으로, 시리얼 넘버는 저장 매체의 제조사에 의해 제공되는 PSID(Physical Security ID)일 수 있다.
S412 단계에서, 호스트(100)는 저장 매체(200)로 초기화 요청 및 시리얼 넘버를 제공할 수 있다. 예시적으로, 초기화 요청 및 시리얼 넘버는 미리 정해진 프로토콜에 기반된 신호일 수 있다.
S413 단계에서, 저장 매체(200)는 수신된 초기화 요청에 응답하여, 수신된 시리얼 넘버가 정확한지 판별할 수 있다. 예시적으로, 저장 매체(200)는 시리얼 넘버에 대한 정보를 별도의 저장 회로(예를 들어, ROM)에 미리 저장할 수 있다. 예시적으로, 시리얼 넘버에 대한 정보는 저장 매체(200)의 제조 과정에서 저장될 수 있다. 저장 매체(200)는 수신된 시리얼 넘버 및 미리 저장된 시리얼 넘버를 비교함으로써, 수신된 시리얼 넘버가 정확한지 판별할 수 있다.
시리얼 넘버가 정확한 경우, S414 단계에서, 저장 매체(200)는 보호 영역(PA)을 초기화 또는 해제할 수 있다. 예시적으로, S414 단계의 동작은 도 7의 S314 단계의 동작과 유사할 수 있다. 시리얼 넘버가 정확하지 않은 경우, 저장 매체(200)는 별도의 동작을 수행하지 않을 수 있다.
상술된 바와 같이, 사용자가 인증 정보를 분실한 경우, 호스트(100)는 사용자로부터의 별도의 시리얼 넘버를 사용하여 보호 영역(PA)을 해제할 수 있다. 예시적으로, 보호 영역(PA)이 해제된 이후에, 호스트(100)는 도 4 및 도 5를 참조하여 설명된 동작 방법을 수행하여, 보호 영역(PA)을 다시 설정할 수 있다.
도 11은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 예시적으로, 도 11을 참조하여, 호스트(100)가 정상적으로 운영 체제를 구동할 수 없는 경우에서, 보호 영역(PA)을 관리하는 방법 및 시스템이 설명된다.
도 11을 참조하면, 사용자 시스템(30)은 호스트(300) 및 저장 매체(400)를 포함할 수 있다. 저장 매체(400)는 메모리 컨트롤러(410) 및 불휘발성 메모리 장치(420)를 포함할 수 있다. 메모리 컨트롤러(410)는 인증 관리자(411)를 포함할 수 있다. 불휘발성 메모리 장치(420)는 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)를 저장할 수 있다.
예시적으로, 호스트(300)의 운영 체제가 정상적으로 동작하지 않을 수 있다. 이 경우, 호스트(300)는 사용자로부터의 명시적 요청에 따라, 저장 매체(400)의 쉐도우 마스터 부트 레코드(sMBR)를 실행하여 프리-부트 관리자(PBM)를 구동할 수 있다.
예를 들어, 사용자 시스템(30)의 일반적인 부팅 동작에서, 호스트(300)는 저장 매체(400)의 마스터-부트 레코드를 로드하고, 마스터-부트 레코드를 기반으로 저장 매체(200)의 저장 영역을 인식한다. 이 후, 호스트(300)는 인식된 저장 영역을 기반으로 정해진 절차에 따라 운영 체제를 구동한다.
마스터 부트 레코드가 로딩되기 전에 사용자의 명시적 요청에 따라, 호스트(300)는 쉐도우 마스터 부트 레코드(sMBR)를 로딩할 수 있다. 쉐도우 마스터 부트 레코드(sMBR)에 의해 인식되는 저장 영역은 프리-부트 관리자(PBM)에 대한 프로그램 코드 또는 정보를 저장할 수 있다. 호스트(300)는 쉐도우 마스터 부트 레코드(sMBR)를 실행함으로써, 프리-부트 관리자(PBM)를 구동할 수 있다. 예시적으로, 일반적인 부팅 동작에서, 마스터 부트 레코드가 실행된 경우, 호스트(300)는 쉐도우 마스터 부트 레코드(sMBR) 영역을 인지할 수 없다.
프리-부트 관리자(PBM)는 도 1 내지 도 10을 참조하여 설명된 보호 영역 관리자(110)의 동작을 수행하도록 구성될 수 있다. 즉, 프리-부트 관리자(PBM)는 보호 영역 설정, 보호 데이터 백업, 보호 영역 해제 등과 같은 동작을 수행하도록 구성될 수 있다.
예시적으로, 프리-부트 관리자(PBM)는 USB, e-SATA, UFS, MMC, eMMC 등과 같은 별도의 통신 인터페이스를 통해 외부 저장소(31)를 인식하도록 구성될 수 있다. 예시적으로, 외부 저장소(31)는 USB 메모리 스틱, 메모리 카드, 외장형 SSD 등과 같은 대용량 저장 매체일 수 있다.
예시적으로, 프리-부트 관리자(PBM)는 메타 영역에 저장된 보호 영역 정보(PAI)를 읽고, 읽은 정보를 기반으로 보호 영역(PA)을 인식할 수 있다. 또는 메모리 컨트롤러(410)는 보호 영역(PA)에 대한 부트 레코드가 저장된 영역의 시작 LBA를 별도의 영역(예를 들어, 메타 영역)에 저장하고, 프리-부트 관리자(PBM)는 별도의 영역에 저장된 시작 LBA를 참조하여 보호 영역(PA)에 대한 부트 레코드를 실행함으로써, 보호 영역(PA)을 인식할 수 있다. 예시적으로, 상술된 부트 레코드가 저장된 영역의 시작 LBA를 별도의 영역(예를 들어, 메타 영역)에 저장하는 동작은 도 4 및 도 5를 참조하여 설명된 보호 영역(PA)을 설정하는 동작 중에 메모리 컨트롤러에 의해 행해질 수 있다. 예시적으로, 부트 레코드는 보호 영역(PA)에 대한 보호 영역 정보(PAI)를 포함하도록 구성될 수 있다.
예시적으로, 프리-부트 관리자(PBM)는 보호 영역(PA)을 인식하고, 보호 영역(PA)에 저장된 데이터를 외부 저장소(31)로 백업하도록 구성될 수 있다. 예시적으로, 프리-부트 관리자(PBM)는 사용자의 요청에 따라 보호 영역(PA)을 재설정하도록 구성될 수 있다.
상술된 바와 같이, 호스트(300) 상의 운영 체제가 정상적으로 동작하지 않는 경우, 호스트(300)는 저장 매체(400)의 특정 영역(즉, 쉐도우 마스터 부트 레코드(sMBR)에 의해 인식되는 영역)에 저장된 프리-부트 관리자(PBM)를 실행할 수 있다. 프리-부트 관리자(PBM)는 상술된 바와 같이, 보호 영역 설정, 보호 영역의 데이터 백업, 보호 영역 재설정 등과 같은 동작을 수행할 수 있다.
도 12는 도 11의 호스트의 동작을 보여주는 순서도이다. 예시적으로, 설명의 편의를 위하여, 호스트(300)는 쉐도우 마스터 부트 레코드(sMBR)에 의해 구동되는 프리-부트 관리자(PBM)를 구동 중인 것으로 가정한다. 또한, 도 12의 동작 방법은 호스트(300)의 관점에서 설명된다. 그러나 도 12의 동작은 호스트(300)에서 구동 중인 프리-부트 관리자(PBM)에 의해 수행될 수 있다.
도 11 및 도 12를 참조하면, S511 단계에서, 호스트(300)는 보호 영역 정보(PAI)를 기반으로 보호 영역(PA)을 식별할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 메모리 컨트롤러(410)는 보호 영역 정보(PAI)를 메타 영역에 저장할 수 있다. 또는 메모리 컨트롤러(410)는 보호 영역 정보(PAI)를 포함하는 부트 레코드의 시작 LAB 값을 메타 영역에 저장할 수 있다. 호스트(300)는 메타 영역에 저장된 정보를 기반으로 보호 영역(PA)을 식별할 수 있다.
S512 단계에서, 호스트(300)는 보호 영역(PA)의 데이터를 외부 저장소(31)로 복사할 수 있다. 예를 들어, 호스트(300) 상에서 구동 중인 프리-부트 관리자(PBM)는 호스트(300)와 연결된 외부 저장소(31)를 인식하도록 구성될 수 있다. 프리-부트 관리자(PBM)는 보호 영역(PA)의 데이터를 인식된 외부 저장소(31)로 백업하도록 구성될 수 있다.
상술된 바와 같이, 호스트(300)의 운영 체제가 정상적으로 동작할 수 없는 경우, 호스트(300)는 사용자의 명시적인 요청에 따라 프리-부트 관리자(PBM)를 구동할 수 있다. 프리-부트 관리자(PBM)는 보호 영역(PA)에 저장된 데이터를 별도의 외부 저장소(31)로 복사 또는 백업함으로써, 보호 영역(PA)에 저장된 데이터를 보호할 수 있다.
도 13은 도 11의 호스트의 다른 동작을 보여주는 순서도이다. 도 12와 마찬가지로, 도 13의 동작 방법은 호스트(300)의 관점에서 설명되나, 도 13의 동작 방법은 호스트(300)에서 구동 중인 프리-부트 관리자(PBM)에 의해 수행될 수 있다.
도 11 및 도 13을 참조하면, S521 단계에서, 호스트(300)는 초기 인증 정보를 수신할 수 있다. 예를 들어, 호스트(300)의 프리-부트 관리자(310)는 저장 매체(400)에 저장된 초기 인증 정보(IAI)를 재설정하기 위하여, 사용자로부터 초기 인증 정보(IAI)를 수신할 수 있다. 이 때, 수신된 초기 인증 정보(IAI)는 저장 매체(400)에 저장된 초기 인증 정보를 재설정하기 위한 정보로써, 저장 매체(400)에 저장된 초기 인증 정보와 다를 수 있다. S521 단계에서 수신된 초기 인증 정보는 리셋 초기 인증 정보라 칭한다.
S522 단계에서, 호스트(300)는 리셋 초기 인증 정보(IAI)를 저장 매체(400)로 제공할 수 있다. 예시적으로, 저장 매체(400)는 수신된 리셋 초기 인증 정보(IAI)를 기반으로 저장된 초기 인증 정보를 재설정할 수 있다. 이 후, 저장 매체(400)는 재설정된 초기 인증 정보(IAI)를 기반으로 인증 동작을 수행할 것이다.
S523 단계에서, 호스트(300)는 리셋 초기 인증 정보(IAI)를 파기할 수 있다. 예를 들어, 초기 인증 정보(IAI)의 재설정이 종료된 이후에, 호스트(300)는 리셋 초기 인증 정보(IAI)를 파기할 수 있다. 즉, 호스트(300)에 초기 인증 정보(IAI)는 저장되지 않을 것이다.
예시적으로, 도 12 및 도 13을 참조하여 설명된 호스트(300), 즉, 프리-부트 관리자(PBM)의 백업 동작 및 초기 인증 정보 재설정 동작은 저장 매체(400)에서 별도의 인증 동작 없이 수행될 수 있다. 프리-부트 관리자(PBM)는 쉐도우 마스터 부트 레코드(sMBR) 영역에서 구동되는 프로그램으로써, 다른 비인증 사용자 또는 악성 프로그램으로부터 격리된 프로그램일 수 있다. 따라서 프리-부트 관리자(PBM)의 동작은 인증된 사용자에 의한 동작임이 보장되므로, 저장 매체(400) 상에서 별도의 인증 동작이 생략될 수 있다.
도 14는 프리-부트 관리자를 업데이트하는 동작을 보여주는 순서도이다. 예시적으로, 도 14의 동작은 도 1에 도시된 보호 영역 관리자(110)에 의해 수행될 수 있다. 즉, 프리-부트 관리자(PBM)의 업데이트 동작은 호스트(100)가 정상적인 운영 체제를 구동하는 도중에 수행될 수 있다.
도 1, 도 11, 및 도 14를 참조하면, S531 단계에서, 보호 영역 관리자(110)는 프리-부트 관리자(PBM)의 버전을 확인할 수 있다. 예를 들어, 보호 영역 관리자(110)는 예비 커맨드, 제조사 커맨드, 또는 별도의 커맨드들의 조합을 사용하여, 저장 매체(400)에 저장된 프리-부트 관리자(PBM)의 버전을 확인할 수 있다.
S532 단계에서, 보호 영역 관리자(110)는 프리-부트 관리자(PBM)의 버전이 최신 버전인지 판별할 수 있다. 예를 들어, 보호 영역 관리자(110)는 무선 또는 유선 네트워크 망을 통해 외부 서버(예를 들어, 저장 매체(200)의 제조사에서 제공하는 서버)에서 제공되는 프리-부트 관리자(PBM)의 최신 버전을 확인할 수 있다. 보호 영역 관리자(110)는 프리-부트 관리자(PBM)의 버전이 확인된 최신 버전인지 판별할 수 있다.
프리-부트 관리자(PBM)의 버전이 최신 버전이 아닌 경우, S533 단계에서, 보호 영역 관리자(110)는 쉐도우 마스터 부트 레코드(sMBR) 영역에 저장된 프리-부트 관리자(PBM)를 최신 버전으로 업데이트할 수 있다. 예를 들어, 보호 영역 관리자(110)는 무선 또는 유선 네트워크 망을 통해 외부 서버로부터 프리-부트 관리자(PBM)의 최신 버전을 다운로드할 수 있다. 또는, 보호 영역 관리자(110)는 별도의 외부 저장소(USB 메모리, 메모리 카드, 메모리 스틱 등)로부터 프리-부트 관리자(PBM)의 최신 버전을 제공받을 수 있다. 보호 영역 관리자(110)는 쉐도우 마스터 부트 레코드(sMBR) 영역을 업데이트하기 위한 다양한 방법들을 사용하여 프리-부트 관리자(PBM)를 업데이트할 수 있다. 일 예로써, 보호 영역 관리자(110)는 예비 커맨드, 제조사 커맨드, 또는 별도의 커맨드들의 조합을 사용하여 프리-부트 관리자(PBM)를 업데이트할 수 있다.
예시적으로, 상술된 프리-부트 관리자(PBM) 업데이트 동작은 저장 매체(200 또는 400) 상에서 추가 인증 동작(즉, 도 1 내지 도 10을 참조하여 설명된 인증 동작)의 결과에 따라 수행될 수 있다. 즉 인증된 사용자로 판별된 경우에만 프리-부트 관리자(PBM) 업데이트 동작이 수행될 수 있다. 또는 프리-부트 관리자(PBM) 업데이트 동작은 별도의 인증 동작 없이 수행될 수 있다.
상술된 본 발명의 실시 예들에 따르면, 호스트는 저장 매체의 저장 영역 중 일부를 보호 영역으로 설정할 수 있다. 호스트는 설정된 보호 영역을 읽기 전용 영역으로 설정함으로써, 다른 애플리케이션 또는 운영체제에 의한 보호 영역의 액세스(특히, 쓰기)를 방지할 수 있다. 이에 따라 다른 애플리케이션 또는 운영 체제에 의한 비정상적인 동작이 방지된다.
뿐만 아니라, 저장 매체는 호스트로부터 제공된 보호 영역 정보(PAI) 및 초기 인증 정보(IAI)를 기반으로 보호 영역으로의 액세스에 대하여 별도의 인증 동작을 수행한다. 이에 따라, 비인증 사용자 및 악성 프로그램에 의한 보호 영역으로의 액세스가 방지될 수 있다. 즉 저장 매체의 인증 동작에 의해 저장 매체에 저장된 데이터의 보안성이 유지되며, 호스트의 보호 영역 설정 방법에 의해 호스트 상에서의 비정상적인 동작이 방지될 수 있다. 따라서 향상된 신뢰성을 갖는 저장 매체, 호스트, 및 그것들을 포함하는 사용자 시스템이 제공된다.
도 15는 도 1의 보호 영역 관리자에 의한 보호 영역 할당 또는 설정 방법의 다른 예를 보여주는 순서도이다. 예시적으로, 도면의 간결성 및 설명의 편의를 위하여, 호스트(100) 및 저장 매체(200)를 기준으로 도 15에 따른 동작이 설명된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 호스트(100)의 동작은 호스트(100)의 보호 영역 관리자(110)에 의해 수행될 수 있으며, 저장 매체(200)의 동작은 저장 매체(200)의 인증 관리자(211)에 의해 수행될 수 있다.
예시적으로, 이하에서 설명되는 호스트(100) 및 저장 매체(200) 사이에서 교환되는 정보 또는 신호는 호스트(100) 및 저장 매체(200) 사이의 특정 인터페이스에 기반된 것일 수 있다. 예시적으로, 호스트(100) 및 저장 매체(200) 사이에서 교환되는 정보 또는 신호에 포함되는 정보는 특정 인터페이스에 의해 정의된 정보 또는 신호들의 예비 영역 또는 예비 필드에 포함될 수 있다. 즉, 이하에서 설명되는 신호 또는 정보의 교환은 별도의 인터페이스 변화 없이 수행될 수 있다.
도 1 및 도 15를 참조하면, S610 단계에서, 호스트(100)는 사용자로부터 초기 인증 정보(IAI)를 수신할 수 있다. S610 단계의 동작은 도 4의 S110 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S620 단계에서, 호스트(100)는 보호 영역(PA) 설정을 위한 요청을 저장 매체(200)로 전송할 수 있다. 예시적으로, 보호 영역(PA) 설정을 위한 요청은 초기 인증 정보(IAI), 보호 영역(PA)에 대한 논리 블록 어드레스(LBA), 및 크기 정보를 포함할 수 있다.
S630 단계에서, 저장 매체(200)는 수신된 요청에 응답하여, 보호 영역(PA)을 설정할 수 있다. 예를 들어, 도 4 및 도 5를 참조하여 설명된 보호 영역(PA) 설정 방법은 호스트(100)의 파일 시스템(102) 계층에서 수행될 수 있다. 즉, 설정된 보호 영역(PA)은 호스트(100)에 의해 인식되는 저장 공간일 수 있다.
반면에, 도 15의 실시 예에 따르면, 호스트(100)는 보호 영역(PA)에 대한 논리 블록 어드레스(LBA) 및 크기 정보를 포함하는 보호 영역(PA) 설정 요청을 저장 매체(200)로 제공하고, 저장 매체(200)는 수신된 요청에 응답하여 보호 영역(PA)을 설정할 수 있다. 이 때 보호 영역(PA)은 호스트(100)에 의해 식별되지 않는 영역으로써 설정될 수 있다.
좀 더 상세한 예로써, 호스트(100)에 의해 일반 영역으로 인식될 수 있는 저장 매체(200)의 저장 공간을 120GB라 가정하자. 저장 매체(200)는 호스트(100)로부터의 보호 영역(PA) 설정 요청에 응답하여, 호스트(100)의 의해 일반 영역으로 인식될 수 있는 저장 공간을 100GB로 감소시킬 수 있다. 이 때, 남은 20GB는 보호 영역(PA)으로써 설정될 것이다. 상술된 저장 공간의 감축 동작은 저장 매체(200)의 마스터 부트 레코드의 설정 값을 변경함으로써 구현될 수 있다.
S640 단계에서, 호스트(100) 및 저장 매체(200)가 재부팅될 수 있다.
S650 단계에서, 호스트(100)는 저장 매체(200)의 마스터 부트 레코드를 기반으로 저장 매체(200)의 저장 공간을 인식할 수 있다. 이 때, 상술된 바와 같이, 보호 영역(PA)으로 설정된 영역은 호스트에 의해 인식되지 않을 것이다. 즉, 앞서 설명된 바와 같이, 저장 매체(200)의 용량이 120GB이고, 보호 영역(PA)으로 20GB가 설정된 경우, 호스트(100)는 저장 매체(200)의 마스터 부트 레코드를 기반으로 100GB의 저장 공간만 인식할 수 있다.
S650 단계에서, 호스트(100)는 장치 정보 요청을 저장 매체(200)로 전송할 수 있다. 예시적으로, 장치 정보 요청은 제조사 커맨드(Vendor specific command), 예비 커맨드들, 또는 그것들의 조합으로 구현될 수 있다.
S660 단계에서, 저장 매체(200)는 장치 정보를 호스트(100)로 전송할 수 있다. 예시적으로, 장치 정보는 저장 매체(200)의 초기 저장 용량에 대한 정보를 포함할 수 있다. 초기 저장 용량은 저장 매체(200)의 물리적 저장 용량을 가리킬 수 있다. 또는 초기 저장 용량은 호스트(100)에 의해 인식 가능한 저장 공간 및 보호 영역(PA)으로 설정된 저장 공간의 합을 가리킬 수 있다.
S670 단계에서, 호스트(100)는 인식된 저장 공간 및 장치 정보를 기반으로 보호 영역(PA)을 관리할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 인식된 저장 공간의 크기가 100GB이고, 수신된 장치 정보에 포함된 초기 저장 용량이 120 GB인 경우, 호스트(100)는 20GB의 보호 영역(PA)을 별도로 관리할 수 있다. 예시적으로, 보호 영역(PA)에 대한 관리는 보호 영역 관리자(110)에 의해 수행될 수 있다. 예시적으로, 보호 영역(PA)에 대한 관리는 호스트(100)에 의해 인식되는 저장 공간의 논리 블록 어드레스보다 큰 범위의 논리 블록 어드레스로써 관리될 수 있다.
도 16은 도 15의 보호 영역 설정 방법을 설명하기 위한 도면이다. 간결한 설명을 위하여, 도 15의 보호 영역 설정 방법을 설명하는데 불필요한 구성 요소들은 생략된다.
도 1 및 도 16을 참조하면, 호스트(100)에 의해 인식되는 저장 공간(Storage Space)은 사용자 영역 및 비할당 영역을 포함할 수 있다. 사용자 영역은 도 5를 참조하여 설명된 일반 영역과 유사할 수 있다. 즉, 사용자 영역은 호스트(100)에 의해 인식되고, 호스트(100) 또는 호스트(100)의 다양한 응용 프로그램들에 의해 자유롭게 액세스될 수 있는 저장 공간을 가리킨다. 예시적으로, 사용자 영역은 하나 이상의 파티션으로 구분될 수 있다.
비할당 영역은 호스트(100)에 의해 인식되는 저장 공간이나, 별도의 파티션으로 지정되지 않은 영역을 가리킨다. 다시 말해서, 호스트(100)는 비할당 영역을 인식할 수 있다. 그러나, 비할당 영역은 별도의 파티션으로 지정되지 않았기 때문에, 호스트(100) 또는 호스트(100)의 다양한 응용 프로그램들에 의해 액세스되지 못할 것이다.
예시적으로 비할당 영역은 저장 매체(200)의 예비 영역으로 사용될 수 있다. 예를 들어, 저장 매체(200)의 FTL(212)은 웨어 레벨링, 배드 블록 관리, 가비지 콜렉션 등의 동작을 수행하는데 있어서, 비할당 영역과 대응되는 메모리 블록들을 사용할 수 있다.
예시적으로, 호스트(100)에 의해 인식되는 저장 공간은 LBA0 내지 LBAm의 저장 공간일 수 있다. 이 중, 사용자 영역은 LBA0 내지 LBAn의 저장 공간으로 관리되고, 비할당 영역은 LBAn 내지 LBAm의 저장 공간으로 관리될 수 있다.
예시적으로 보호 영역(PA) 설정이 수행된 이후에, 저장 공간은 LBA0 내지 LBAk로 감소될 수 있다. 나머지 저장 공간(즉, LBAk 내지 LBAm의 저장 공간)은 보호 영역(PA)으로 설정될 것이다. 보호 영역(PA)으로 설정된 저장 공간은 호스트(100)에 의해 인식되지 않을 것이다.
예를 들어, S630 단계를 참조하여 설명된 바와 같이, 저장 매체(200)는 호스트(100)의 보호 영역 설정 요청에 응답하여, 보호 영역(PA)을 설정할 수 있다. 이 때, 저장 매체(200)는 호스트(100)에 의해 인식되는 저장 공간의 크기를 도 16에 도시된 바와 같이 감소시킬 수 있다. 저장 매체(200)는 마스터 부트 레코드의 설정 값을 변경함으로써, 호스트(100)에 의해 인식되는 저장 공간의 크기를 감소시킬 수 있다.
보호 영역(PA) 설정이 완료되고, 호스트(100) 및 저장 매체(200)가 재부팅된이후에, 호스트(100)는 LBA0 내지 LABk의 공간을 저장 매체(200)의 저장 공간으로써 인식할 것이다. 즉, 호스트(100)는 보호 영역(PA)을 인식하지 못할 것이다.
예시적으로, 도 15의 S670 단계를 참조하여 설명된 바와 같이, 호스트(100)(특히, 호스트(100)의 보호 영역 관리자(110)는 S670 단계의 동작을 통해, 보호 영역(PA)을 LBAk 내지 LBAm의 공간으로써 관리할 수 있다. 예를 들어, 호스트(100)는 LBAk 내지 LBAm의 저장 공간을 인식하지 못하기 때문에, 호스트(100) 또는 호스트(100)의 다양한 응용 프로그램들은 LBAk 내지 LBAm의 논리 블록 어드레스들에 대한 쓰기 또는 읽기 요청을 수행하지 않을 것이다. 그러나, 보호 영역 관리자(110)는 보호 영역(PA)을 LBAk 내지 LBAm의 공간으로써 관리할 수 있고, 사용자의 명시적인 요청에 따라, 별도의 커맨드 또는 특정 정보를 활용하여, 보호 영역(PA)으로 설정된 LBAk 내지 LBAm의 공간에 대한 액세스를 수행할 수 있다.
이하에서, 호스트(100)에 의해 인식되지 않는 보호 영역(PA)에 대한 액세스 방법이 설명된다.
도 17은 도 1의 호스트 및 저장 매체의 보호 영역에 대한 쓰기 동작을 보여주는 순서도이다. 예시적으로, 호스트(100) 및 저장 매체(200)는 도 15를 참조하여 설명된 보호 영역 설정 방법을 통해 보호 영역이 설정된 상태인 것으로 가정한다. 즉, 호스트(100)는 보호 영역(PA)을 인식하지 못하며, 보호 영역(PA)에 대한 쓰기 동작은 호스트(100)의 보호 영역 관리자(110)에 의해 수행될 것이다.
도 1 및 도 17을 참조하면, S710 단계에서, 호스트(100)는 사용자로부터 액세스 인증 정보(AAI)를 수신할 수 있다. S710 단계의 동작은 도 7의 S311 단계 및 도 8의 S321 단계의 동작들과 유사하므로 이에 대한 상세한 설명은 생략된다.
S720 단계에서, 호스트(100)는 해제 요청을 저장 매체(200)로 전송할 수 있다. 예시적으로, 해제 요청은 도 7의 S312 단계의 해제 요청과 유사할 수 있다. 해제 요청은 액세스 인증 정보(AAI) 및 서명 정보(SIG; Signature)를 포함한다. 서명 정보(SIG)는 전송된 요청이 보호 영역 관리자(110)로부터 발생된 것임을 가리키는 정보이다. 예시적으로, 서명 정보(SIG)는 호스트(100)의 보호 영역 관리자(110) 및 저장 매체(200) 사이의 미리 정해진 값이거나 또는 미리 정해진 알고리즘에 의해 생성된 값을 포함할 수 있다.
S730 단계에서, 저장 매체(200)는 수신된 해제 요청에 응답하여, 인증된 사용자로부터의 요청인지 판별할 수 있다. S730 단계의 동작은 도 7의 S313 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
해제 요청이 인증된 사용자로부터의 요청인 경우, S740 단계에서, 저장 매체(200)는 서명 정보(SIG)를 저장할 수 있다. 예를 들어, 저장 매체(200)는 별도의 저장 영역(예를 들어, 도 3의 SRAM(214))에 서명 정보(SIG)를 저장할 수 있다.
이 후, S750 단계에서, 호스트(100)는 서명 정보(SIG)를 포함하는 쓰기 요청을 저장 매체(200)로 전송할 수 있다.
S760 단계에서, 저장 매체(200)는 수신된 서명 정보(SIG)가 정확한지 판별할 수 있다. 예를 들어, 저장 매체(200)는 S740 단계에서 저장된 서명 정보(SIG) 및 S750 단계에서 수신된 서명 정보(SIG)가 서로 동일한지 비교함으로써, 수신된 서명 정보(SIG)가 정확한지 판별할 수 있다.
수신된 서명 정보(SIG)가 정확한 경우, 수신된 쓰기 요청이 호스트(100)의 보호 영역 관리자(110)에 의한 쓰기 요청임을 보장할 수 있다. 이 경우, S770 단계에서, 저장 매체(200)는 수신된 쓰기 요청에 응답하여 보호 영역(PA)에 대한 쓰기 동작을 수행할 수 있다.
S780 단계에서, 호스트(100)는 보호 영역(PA) 설정 요청을 저장 매체(200)로 전송할 수 있다. 예를 들어, 호스트(100)는 사용자로부터의 명시적인 요청에 의해 보호 영역을 다시 설정하기 위한 설정 요청을 저장 매체(200)로 전송할 수 있다. 또는 호스트(100)는 사용자로부터의 명시적인 요청 없이 보호 영역(PA)에 저장된 데이터를 보호하기 위하여, 보호 영역(PA)이 해제된 시점으로부터 소정의 시간이 경과한 이후에, 보호 영역(PA)을 다시 설정하기 위한 설정 요청을 저장 매체(200)로 전송할 수 있다.
S790 단계에서, 저장 매체(200)는 호스트(100)로부터의 설정 요청에 응답하여 보호 영역(PA)을 다시 설정할 수 있다. 예시적으로, S790 단계에서, 보호 영역(PA)을 다시 설정하는 것은 이 후의 보호 영역(PA)으로의 쓰기 요청을 차단하는 것을 의미할 수 있다. 즉, 보호 영역(PA)이 다시 설정됨으로써, 보호 영역 관리자(110) 이외의 다른 응용 프로그램들(특히, 악성 프로그램들)로부터의 보호 영역(PA)에 대한 쓰기 액세스 요청이 차단될 수 있다.
예시적으로, 해제 요청이 인증된 사용자로부터의 요청이 아닌 경우, 또는 서명 정보가 정확하지 않은 경우, 저장 매체(200)는 S790 단계의 동작을 수행할 수 있다.
상술된 바와 같이, 저장 매체(200)는 호스트(100)에 의해 식별되지 않는 보호 영역(PA)을 제공할 수 있다. 이 경우, 호스트(100)의 보호 영역 관리자(110)는 액세스 인증 정보(AAI) 및 서명 정보(SIG)를 사용하여 보호 영역(PA)에 대한 쓰기 동작을 수행할 수 있다.
예시적으로, 서명 정보(SIG)는 호스트(100)로부터의 쓰기 요청의 예비 영역에 포함될 수 있다. 이 경우, 호스트(100) 및 저장 매체(200) 사이의 미리 정해진 인터페이스의 변화 없이 인식되지 않는 보호 영역(PA)에 대한 쓰기 동작이 가능할 것이다.
예시적으로, 보호 영역(PA)으로의 쓰기 요청은 보호 영역(PA)에 대응하는 논리 블록 어드레스를 포함할 것이다. 즉, 보호 영역(PA)으로의 쓰기 요청은 호스트(100)에 의해 식별되는 저장 공간 이외의 다른 논리 블록 어드레스의 정보를 포함할 것이다. 이 때, 서명 정보(SIG)가 포함되지 않은 쓰기 요청이 저장 매체(200)로 수신되거나 또는 수신된 서명 정보(SIG)가 정확하지 않은 경우, 저장 매체(200)는 수신된 쓰기 요청에 대한 쓰기 동작을 수행하지 않고, 어드레스 범위 초과(Out-of-range)와 같은 응답을 호스트(100)로 전송할 수 있다.
비록 도면에 도시되지는 않았으나, 읽기 동작 또한 도 17에 도시된 동작 방법과 유사하게 수행될 수 있다. 예를 들어, 호스트(100)는 S710 단계 내지 S740 단계의 동작들을 수행할 수 있다. 이 후, 호스트(100)는 서명 정보(SIG)를 포함하는 읽기 요청을 저장 매체(200)로 전송할 수 있다. 저장 매체(200)는 수신된 읽기 요청에 포함된 서명 정보(SIG)가 정확한지 판별하고, 정확한 경우, 보호 영역(PA)에 대한 읽기 동작을 수행할 수 있다. 이 후, 호스트(100) 및 저장 매체(200)는 S780 단계 및 S790 단계의 동작들을 수행할 수 있다.
도 18은 도 1의 호스트 및 저장 매체의 보호 영역에 대한 쓰기 동작을 보여주는 순서도이다. 예시적으로, 호스트(100) 및 저장 매체(200)는 도 15를 참조하여 설명된 보호 영역 설정 방법을 통해 보호 영역이 설정된 상태인 것으로 가정한다. 즉, 호스트(100)는 보호 영역(PA)을 인식하지 못하며, 보호 영역(PA)에 대한 읽기 동작은 호스트(100)의 보호 영역 관리자(110)에 의해 수행될 것이다.
예시적으로, 보호 영역(PA)에 대한 쓰기 동작은 보호 영역(PA)에 저장된 데이터를 보호하기 위하여, 도 17을 참조하여 설명된 인증 절차를 통해 수행될 수 있다. 그러나 보호 영역(PA)에 대한 읽기 동작은 도 17을 참조하여 설명된 인증 절차 없이 수행될 수 있을 것이다. 예를 들어, 사용자가 액세스 인증 정보를 입력할 수 없는 경우, 보호 영역(PA)에 저장된 데이터를 다른 저장 매체로 이동시키기 위한 읽기 동작이 수행될 수 있을 것이다. 이 경우, 보호 영역(PA)에 대한 읽기 동작은 도 17을 참조하여 설명된 서명 정보(SIG)와 달리 미리 정해진 읽기 전용 서명 정보(SIG_R)를 사용하여 수행될 수 있을 것이다.
예를 들어, 도 1 및 도 18을 참조하면, S810 단계에서, 호스트(100)는 보호 영역(PA)에 대한 읽기 요청을 저장 매체(200)로 전송할 수 있다. 예시적으로, 보호 영역(PA)에 대한 읽기 요청은 도 16을 참조하여 설명된 보호 영역(PA)의 논리 블록 어드레스를 포함할 수 있다.
예시적으로, 보호 영역(PA)에 대한 읽기 요청은 읽기 서명 정보(SIG_R)를 포함할 수 있다. 예시적으로, 읽기 서명 정보(SIG_R)는 도 17을 참조하여 설명된 서명 정보(SIG)와 달리, 읽기 동작을 위한 서명 정보일 수 있다. 예시적으로, 도 17의 서명 정보(SIG)는 쓰기 요청이 발생하는 시간 또는 미리 정해진 알고리즘에 따라 변형될 수 있는 반면에, 도 18의 읽기 서명 정보(SIG_R)는 고정된 값일 수 있다. 즉, 읽기 서명 정보(SIG_R)는 보호 영역 관리자(110)가 보호 영역(PA)을 액세스하는 것을 알리기 위한 정보일 수 있다.
S820 단계에서, 저장 매체(200)는 수신된 읽기 서명 정보(SIG_R)가 정확한지 판별할 수 있다. 예시적으로, 읽기 서명 정보(SIG_R)는 미리 정해진 값 또는 고정된 값일 수 있다.
읽기 서명 정보(SIG_R)가 정확한 경우, S830 단계에서, 저장 매체(200)는 수신된 읽기 요청에 따른 읽기 데이터를 호스트(100)로 제공할 수 있다. 읽기 서명 정보(SIG_R)가 정확하지 않은 경우, 저장 매체(200)는 별도의 동작을 수행하지 않을 수 있다 또는 읽기 서명 정보(SIG_R)가 정확하지 않은 경우, 저장 매체(200)는 별도의 응답(예를 들어, 어드레스 범위 초과와 같은 응답)을 호스트(100)로 제공할 수 있다.
상술된 바와 같이, 저장 매체(200)는 호스트(100)에 의해 인식되지 않는 보호 영역(PA)을 제공할 수 있다. 이 때, 호스트(100)는 미리 정해진 읽기 서명 정보(SIG_R)를 포함하는 읽기 요청을 저장 매체(200)로 전송할 수 있다. 보호 영역(PA)에 대한 읽기 요청은 호스트(100)에 의해 인식되지 않는 보호 영역(PA)의 논리 블록 어드레스를 포함하기 때문에, 읽기 서명 정보(SIG_R)가 정확하지 않은 경우, 저장 매체(200)는 어드레스 범위 초과(out-of-range)와 같은 응답을 호스트(100)로 제공할 수 있고, 별도의 읽기 데이터를 출력하지 않을 것이다.
상술된 바와 같이, 본 발명에 따른 호스트 및 저장 매체는 저장 매체의 저장 공간 중 보호 영역을 할당하고, 저장 매체는 할당된 보호 영역에 대한 인증 동작을 수행함으로써, 보호 영역에 저장된 데이터를 악성 프로그램들로부터 보호할 수 있다.
또한, 호스트에 의해 보호 영역이 인식되는 경우, 보호 영역에 대한 파티션 정보 또는 속성 정보를 읽기 전용으로 설정함으로써, 호스트 및 저장 매체 사이의 오작동을 방지할 수 있다.
뿐만 아니라, 호스트에 의해 보호 영역이 인식되지 않는 경우, 호스트는 보호 영역(PA)을 액세스하기 위하여 서명 정보(SIG)를 사용할 수 있다. 서명 정보(SIG)는 보호 영역(PA)에 대한 액세스 요청이 호스트(100)(특히, 보호 영역 관리자(110))로부터의 액세스 요청임을 가리키는 정보일 수 있다.
예시적으로, 보호 영역(PA)에 대한 쓰기 동작을 위한 서명 정보(SIG)는 호스트(100)에 의해 제공되는 값이거나 또는 호스트(100) 및 저장 매체(200) 사이의 미리 정해진 알고리즘에 의해 정의된 값일 수 있다. 예시적으로, 보호 영역(PA)에 대한 읽기 동작을 위한 읽기 서명 정보(SIG_R)는 호스트(100)에 의해 제공되거나 또는 호스트(100) 및 저장 매체(200)에 의해 미리 정해진 값일 수 있다.
도 19는 본 발명이 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 블록도이다. 도 19를 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함한다.
호스트(1100)는 도 1 내지 도 18을 참조하여 설명된 바와 같이, 다양한 애플리케이션, 보호 영역 관리자, 또는 프리-부트 관리자를 구동할 수 있다.
SSD(1200)는 신호 커넥터(1201)를 통해 호스트(1100)와 신호(SIG)를 주고 받고, 전원 커넥터(1202)를 통해 전원(PWR)을 입력받는다. SSD(1200)는 SSD 컨트롤러(1210), 복수의 플래시 메모리들(1221~522n), 보조 전원 장치(1230), 및 버퍼 메모리(1240)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호(SIG)에 응답하여 복수의 플래시 메모리들(1221~122n)을 제어할 수 있다. 복수의 플래시 메모리들(1221~122n)은 SSD 컨트롤러(5210)의 제어에 따라 동작할 수 있다. 예시적으로, SSD 컨트롤러(1210)는 도 1 내지 도 14를 참조하여 설명된 인증 관리자를 포함할 수 있고, 호스트(1100)로부터의 액세스 요청에 대하여 인증 동작을 수행할 수 있다. SSD 컨트롤러(1210)는 인증 동작의 결과에 따라, 호스트(1100)로부터의 액세스 요청을 처리할 수 있다.
보조 전원 장치(1230)는 전원 커넥터(1002)를 통해 호스트(1100)와 연결된다. 보조 전원 장치(1230)는 호스트(1100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(1230)는 호스트(1100)로부터의 전원 공급이 원활하지 않을 경우, SSD(1200)의 전원을 제공할 수 있다. 예시적으로, 보조 전원 장치(1230)는 SSD(1200) 내에 위치할 수도 있고, SSD(1200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(1230)는 메인 보드에 위치하며, SSD(1200)에 보조 전원을 제공할 수도 있다.
버퍼 메모리(1240)는 SSD(1200)의 버퍼 메모리로 동작한다. 예를 들어, 버퍼 메모리(1240)는 호스트(1100)로부터 수신된 데이터 또는 복수의 플래시 메모리들(1221~122n)로부터 수신된 데이터를 임시 저장하거나, 플래시 메모리들(1221~122n)의 메타 데이터(예를 들어, 매핑 테이블)를 임시 저장할 수 있다. 또는 버퍼 메모리(1240)는 SSD 컨트롤러(1210)가 동작하는데 요구되는 다양한 정보들을 임시 저장할 수 있다. 예를 들어, 버퍼 메모리(1240)는 도 1 내지 도 14를 참조하여 설명된 초기 인증 정보(IAI), 보호 영역 정보(PAI), 인증 관리자 등과 같은 정보를 저장하도록 구성될 수 있다. SSD 컨트롤러(1210)는 버퍼 메모리(1240)에 저장된 정보를 기반으로 도 1 내지 도 14를 참조하여 설명된 동작을 수행할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10: 사용자 시스템
100: 호스트
110: 보호 영역 관리자
200: 저장 매체
210: 메모리 컨트롤러
211: 인증 관리자
220: 불휘발성 메모리 장치
PA: 보호 영역
PAI: 보호 영역 정보
IAI: 초기 인증 정보
AAI: 액세스 인증 정보
sMBR: 쉐도우 마스터 부트 레코드
PBM: 프리-부트 관리자

Claims (10)

  1. 저장 매체를 제어하는 호스트의 동작 방법에 있어서,
    사용자로부터 초기 인증 정보를 수신하는 단계;
    상기 저장 매체의 저장 공간 중 일부 영역을 보호 영역으로 설정하는 단계;
    상기 수신된 초기 인증 정보 및 상기 보호 영역에 대한 보호 영역 정보를 상기 저장 매체로 전송하는 단계; 및
    상기 초기 인증 정보를 상기 호스트 상에서 파기하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 보호 영역 정보는 상기 보호 영역에 대응되는 논리 블록 어드레스 범위를 포함하는 동작 방법.
  3. 제 1 항에 있어서,
    상기 저장 공간 중 나머지 영역에 저장된 데이터 중 적어도 일부를 상기 보호 영역으로 백업하는 단계를 더 포함하는 동작 방법.
  4. 제 3 항에 있어서,
    상기 보호 영역으로 백업된 데이터의 속성을 읽기 전용으로 설정하는 단계를 더 포함하는 동작 방법.
  5. 제 1 항에 있어서,
    상기 저장 매체의 저장 공간 중 일부 영역을 보호 영역으로 설정하는 단계는,
    상기 저장 매체의 저장 공간을 제1 및 제2 파티션들로 분할하는 단계;
    상기 제1 파티션을 일반 영역으로 설정하고, 상기 제2 파티션을 상기 보호 영역으로 설정하는 단계; 및
    상기 제2 파티션의 속성을 읽기 전용으로 설정하는 단계를 포함하는 동작 방법.
  6. 제 1 항에 있어서,
    상기 사용자로부터 액세스 인증 정보를 수신하는 단계;
    상기 액세스 인증 정보 및 상기 보호 영역으로의 액세스 요청을 상기 저장 매체로 제공하는 단계를 더 포함하는 동작 방법.
  7. 제 6 항에 있어서,
    상기 액세스 인증 정보를 파기하는 단계를 더 포함하는 동작 방법.
  8. 제 1 항에 있어서,
    상기 사용자로부터 시리얼 넘버를 수신하는 단계; 및
    상기 수신된 시리얼 넘버 및 상기 보호 영역을 해제하기 위한 해제 요청을 상기 저장 매체로 제공하는 단계를 더 포함하는 동작 방법.
  9. 제 1 항에 있어서,
    상기 저장 매체로부터 쉐도우 마스터 부트 레코드를 로딩하는 단계;
    상기 쉐도우 마스터 부트 레코드를 기반으로 프리-부트 관리자를 실행하는 단계;
    상기 보호 영역에 저장된 보호 데이터를 상기 프리-부트 관리자에 의해 인식되는 외부 저장소로 백업하는 단계를 더 포함하는 동작 방법.
  10. 불휘발성 메모리를 포함하는 저장 매체 및 상기 저장 매체를 제어하는 호스트를 포함하는 사용자 시스템의 동작 방법에 있어서,
    상기 호스트가 사용자로부터 초기 인증 정보를 수신하는 단계;
    상기 호스트가 상기 저장 매체의 저장 공간 중 일부 영역을 보호 영역으로 설정하는 단계;
    상기 호스트가 상기 수신된 초기 인증 정보 및 상기 보호 영역에 대한 보호 영역 정보를 상기 저장 매체로 전송하는 단계;
    상기 저장 매체가 상기 수신된 초기 인증 정보 및 상기 보호 영역 정보를 불휘발성 메모리에 저장하는 단계; 및
    상기 호스트가 상기 초기 인증 정보를 상기 호스트 상에서 파기하는 단계를 포함하는 동작 방법.


KR1020160111902A 2016-06-24 2016-08-31 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법 KR20180001990A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/583,256 US20170371573A1 (en) 2016-06-24 2017-05-01 Method of operating storage medium, method of operating host controlling the storage medium, and method of operating user system including the storage medium and the host

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160079512 2016-06-24
KR1020160079512 2016-06-24

Publications (1)

Publication Number Publication Date
KR20180001990A true KR20180001990A (ko) 2018-01-05

Family

ID=61001570

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160111902A KR20180001990A (ko) 2016-06-24 2016-08-31 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법

Country Status (1)

Country Link
KR (1) KR20180001990A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096459A (zh) * 2018-01-30 2019-08-06 东芝存储器株式会社 数据存储装置、数据处理系统、运用系统及数据处理方法
WO2020171428A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 어플리케이션 데이터를 관리하는 전자 장치 및 방법
WO2023204413A1 (ko) * 2022-04-21 2023-10-26 김덕우 데이터복구기능이 부가된 컴퓨터 데이터 저장장치 및 그 제어방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096459A (zh) * 2018-01-30 2019-08-06 东芝存储器株式会社 数据存储装置、数据处理系统、运用系统及数据处理方法
KR20190092215A (ko) * 2018-01-30 2019-08-07 도시바 메모리 가부시키가이샤 데이터 축적 장치, 데이터 처리 시스템, 운용 시스템 및 데이터 처리 방법
KR20190132957A (ko) * 2018-01-30 2019-11-29 도시바 메모리 가부시키가이샤 데이터 축적 장치, 데이터 처리 시스템, 운용 시스템 및 데이터 처리 방법
WO2020171428A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 어플리케이션 데이터를 관리하는 전자 장치 및 방법
WO2023204413A1 (ko) * 2022-04-21 2023-10-26 김덕우 데이터복구기능이 부가된 컴퓨터 데이터 저장장치 및 그 제어방법

Similar Documents

Publication Publication Date Title
US20170371573A1 (en) Method of operating storage medium, method of operating host controlling the storage medium, and method of operating user system including the storage medium and the host
CN100580642C (zh) 通用串行总线存储设备及其访问控制方法
US7861311B2 (en) Apparatus and method of managing hidden area
US9529735B2 (en) Secure data encryption in shared storage using namespaces
EP2377063B1 (en) Method and apparatus for providing access to files based on user identity
US11657022B2 (en) Host and storage system for securely deleting files and operating method of the host
EP3267351A1 (en) Method for securely managing a docker image
US20130191636A1 (en) Storage device, host device, and information processing method
JP5184041B2 (ja) ファイルシステム管理装置およびファイルシステム管理プログラム
US11347717B2 (en) Generalized verification scheme for safe metadata modification
US11329815B2 (en) Key management device and processor chip for data encryption/decryption
KR20180001990A (ko) 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법
EP2849111B1 (en) OTP generation on portable medium
KR101761799B1 (ko) 단말의 보안 데이터 관리 장치 및 그 방법
CN114270346A (zh) 具有可变计算机文件系统的数据存储装置
US11468159B2 (en) Memory system
CN114792016A (zh) 一种处理方法及电子设备
JP7202030B2 (ja) 記憶装置内の悪意のある動作を検出するためのモジュールおよび方法
KR101041367B1 (ko) 파일 시스템에서의 파일 또는 디렉토리에 대한 액세스 방법및 장치
US20220374534A1 (en) File system protection apparatus and method in auxiliary storage device
KR20190054106A (ko) 데이터 삭제 방법 및 장치
US20230418741A1 (en) Data storage device management system
US20230195494A1 (en) Hypervisor assisted security of dangling volumes for containers
US20160054943A1 (en) Information processing apparatus