KR20120117747A - 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법 - Google Patents

사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법 Download PDF

Info

Publication number
KR20120117747A
KR20120117747A KR20127013038A KR20127013038A KR20120117747A KR 20120117747 A KR20120117747 A KR 20120117747A KR 20127013038 A KR20127013038 A KR 20127013038A KR 20127013038 A KR20127013038 A KR 20127013038A KR 20120117747 A KR20120117747 A KR 20120117747A
Authority
KR
South Korea
Prior art keywords
file
memory area
host
virtual file
protected
Prior art date
Application number
KR20127013038A
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 샌디스크 아이엘 엘티디
Publication of KR20120117747A publication Critical patent/KR20120117747A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)

Abstract

사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법이 개시된다. 일실시예에서, 저장장치는 공공 메모리 영역 내 가상 파일에 액세스를 위한 호스트로부터의 요청을 수신하며, 가상 파일은 사설 메모리 영역에 저장된 복수의 보호된 파일들에 연관된다. 저장장치는 사설 메모리 영역 내 저장된 복수의 보호된 파일들 중 하나를 선택하여 이에의 액세스를 호스트에 제공함으로써 요청에 응답한다. 저장장치는 가상 파일에 액세스를 위한 호스트로부터의 추가의 요청을 수신하고, 사설 메모리 영역에 저장된 복수의 보호된 파일들 중 다른 것을 선택하여 이에의 액세스를 호스트에 제공함으로써 추가의 요청에 응답한다.

Description

사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법{STORAGE DEVICE AND METHOD FOR USING A VIRTUAL FILE IN A PUBLIC MEMORY AREA TO ACCESS A PLURALITY OF PROTECTED FILES IN A PRIVATE MEMORY AREA}
사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법
메모리 카드들과 같은 저장장치들은 디지털 오디오(예를 들면, 음악) 및/또는 비디오(예를 들면, 영화들) 파일들과 같은 콘텐트를 저장하기 위해 흔히 사용된다. 콘텐트를 권한없는 액세스로부터 보호하기 위해서, 콘텐트는 인증된 호스트들에 의해서만 액세스될 수 있는 저장장치 내 사설 메모리 영역에 저장될 수 있다. 일반적으로, 호스트는 이의 크레덴셜들을 인증을 위해 저장장치에 제시한다. 호스트가 인증된다면, 저장장치는 호스트가 사설 메모리 영역에 저장된 콘텐트에 액세스할 수 있게 한다. 이 보안 시스템은 사설 메모리 영역에 저장된 콘텐트에 권한없는 호스트들이 액세스하는 것을 방지하나, 인증된 호스트가 바이러스 또는 이외 호스트 상에 다른 악의적 소프트웨어를 갖고 있다면 문제가 일어날 수 있다. 이 상황에서, 일단 인증된 호스트가 사설 메모리 영역에 액세스하는 것이 허용되면, 호스트 상에 악의적 소프트웨어는 사설 메모리 영역에 저장된 데이터에 권한없는 행위들을 수행하기 위해 이러한 액세스를 이용할 수 있다.
본 발명의 목적은 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법을 제공함에 있다.
본 발명의 실시예들은 청구항들에 의해 정의되며, 이 단락에 어느 것도 이들 청구항들에 관한 한정으로서 취해지지 않아야 한다.
예로서, 이하 기술되는 실시예들은 일반적으로 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법에 관한 것이다. 일실시예에서, 저장장치는 공공 메모리 영역 내 가상 파일에 액세스를 위한 호스트로부터의 요청을 수신하며, 가상 파일은 사설 메모리 영역에 저장된 복수의 보호된 파일들에 연관된다. 저장장치는 사설 메모리 영역 내 저장된 복수의 보호된 파일들 중 하나를 선택하여 이에의 액세스를 호스트에 제공함으로써 요청에 응답한다. 저장장치는 가상 파일에 액세스를 위한 호스트로부터의 추가의 요청을 수신하고, 사설 메모리 영역에 저장된 복수의 보호된 파일들 중 다른 것을 선택하여 이에의 액세스를 호스트에 제공함으로써 추가의 요청에 응답한다.
이외 다른 실시예들이 제공되며, 실시예들 각각은 단독으로 혹은 결합하게 함께 사용될 수 있다. 이제 실시예들을 첨부한 도면들을 참조하여 기술할 것이다.
상술한 바와 같이, 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법
도 1은 실시예의 호스트 및 저장장치의 블록도이다.
도 2는 실시예의 호스트 및 저장장치의 블록도이다.
도 3a는 실시예의 호스트의 블록도이다.
도 3b는 실시예의 저장장치의 블록도이다.
도 4a 및 도 4b는 실시예의 로그인 프로세스의 흐름도들이다.
도 5a 및 도 5b는 실시예의 로그인 후 판독 프로세스의 흐름도들이다.
도 6a 및 도 6b는 실시예의 로그인 없이 판독하는 프로세스의 흐름도들이다.
도 7은 실시예의 정규 파일에 액세스하기 위한 프로세스의 흐름도이다.
도 8a 및 도 8b는 범위 밖에 있는 데이터에 액세스하고 파일에 추가의 데이터를 패딩하기 위한 실시예의 프로세스의 흐름도들이다.
도 9a 및 도 9b는 실시예의 파일의 실제 길이를 판정하는 프로세스의 흐름도들이다.
도 10a 및 도 10b는 암호화를 사용하는 실시예의 보호 프로세스의 흐름도들이다.
도 11a 및 도 11b는 카운터를 사용하는 실시예의 보호 프로세스의 흐름도들이다.
도 12a 및 도 12b는 슬라이딩 윈도우를 사용하는 실시예의 보호 프로세스의 흐름도들이다.
도 13a 및 도 13b는 데이터 레이트 제어를 위한 실시예의 프로세스의 흐름도들이다.
도 14a 및 도 14b는 콘텐트를 추가하기 위한 실시예의 프로세스의 흐름도들이다.
도입
다음 실시예들은 일반적으로 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법에 관한 것이다. 이들 실시예들에서, 공공 메모리 영역은 사설 메모리 영역 내 복수의 보호된 파일들에의 게이트웨이로서 작용하는 가상 파일을 내포한다. 저장장치 내 제어기가 호스트가 가상 파일에 액세스하려고 시도하고 있음을 검출할 때(예를 들면, 가상 파일의 논리 블록 어드레스들에 액세스 하려는 시도로부터), 제어기는 복수의 보호된 파일들 중 어느 것이 -만약 있다면- 호스트에 제공되어야 할 것인지를 판정한다.
이들 실시예들에 연관된 몇가지 잇점들이 있다. 예를 들면, 자바 및 그외 다른 기정의된 애플리케이션 프로그램 인터페이스들(APIs)(이를테면 많은 휴대 장치들 및 모바일 전화들에서 사용되는 것들과 같은)는 파일-기반의 명령들만을 허용하며 사설 메모리 영역 내 특정한 보호된 파일에의 액세스를 제공하기 위해 저장장치를 제어하기 위해 사용될 수 있는 저-레벨 명령들을 사용하지 않는다. 이것이 왜 일부 저장장치들이 전체 사설 메모리 영역에 호스트 액세스를 승인하는가의 이유이지만, 이것은 호스트 상에 악의적 소프트웨어가 사설 저장 영역에의 이러한 개방적 액세스를 이용할 때 권한없는 행위들에 이르게 할 수 있다. 사설 저장 영역으로부터 보호된 파일의 스트리밍을 지원하는 전유 API가 기입될 수 있지만, 비교적 소수의 모바일 장치들이 이러한 API를 허락할 것이다. 적합한 보호된 파일를 선택하고 이에의 액세스를 호스트에 제공하는 것을 저장장치 내 제어기가 행하고 자바 및 그외 기정의된 API들에 의해 사용되는 파일-기반 명령들이 가상 파일에 액세스하기 위해 사용될 수 있기 때문에, 공공 메모리 영역 내 가상 파일을 사설 메모리 영역 내 보호된 파일들에의 게이트웨이로서 사용하는 것은 이 문제를 극복한다. 따라서, 이들 실시예들은 모두가 저장장치가 저장장치 내외로 보안된 방식으로 데이터의 스트리밍을 제어할 수 있게 함과 아울러, 다른 운영 시스템에만이 아니라 복수의 호스트들에 사용될 수 있는 포괄적 솔루션을 제공한다.
예시적 가상 파일 실시예들
이제 도면들로 가면, 도 1은 실시예의 저장장치(100)와 통신하는 호스트(50)의 블록도이다. 본원에서 사용되는 바와 같이, "와 통신"이라는 어구는 본원에 도시되거나 기술되어 있을 수도 있고 되어 있지 않을 수도 있는 하나 이상의 성분들을 통해 직접 혹은 간접적으로 통신함을 의미한다. 호스트(50)는 전용 콘텐트 플레이어, 모바일 전화, 개인용 컴퓨터(PC), 게임 장치, PDA(personal digital assistant), 키오스크, 및 TV 시스템과 같은 임의의 적합한 형태를 취할 수 있는데, 그러나 이들로 제한되는 것은 아니다. 저장장치(100)는 휴대형 착탈가능 메모리 카드(예를 들면, 플래시 저장 카드), USB(universal serial bus) 장치, 및 고체상태 드라이브와 같은 임의의 적합한 형태를 취할 수 있는데, 그러나 이들로 제한되는 것은 아니다. 바람직하게, 메모리 장치(100)는 호스트(50)에 착탈가능하게 연결되며, 따라서 사용자는 다양한 호스트들에 메모리 장치(100)를 사용할 수 있다.
도 1에 도시된 바와 같이, 저장장치(100)는 제어기(110) 및 메모리(120)를 포함한다. 제어기(110)는 임의의 적합한 방식으로 구현될 수 있다. 예를 들면, 제어기(110)는 마이크로프로세서, 혹은 프로세서 및 예를 들면 (마이크로)프로세서, 로직 게이트들, 스위치들, 응용특정의 집적회로(ASIC), 프로그래머블 로직 제어기, 및 내장형 마이크로제어기에 의해 실행될 수 있는 컴퓨터-판독가능 프로그램 코드(예를 들면, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터-판독가능 매체의 형태를 취할 수 있다. 제어기들의 예들은 마이크로제어기들로서 ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, 및 Silicon Labs C8051F320를 포함하나, 그러나 이들로 제한되는 것은 아니다. 제어기에서 사용될 수 있는 다양한 성분들의 예들은 이하 논의되는 실시예들서 기술되며 연관된 도면들에 도시된다. 제어기(110)는 메모리 제어 로직의 부분으로부터 구현될 수도 있다.
또한, 도 1에 도시된 바와 같이, 저장장치(100)는 임의의 적합한 형태를 취할 수 있는 메모리(120)를 포함한다. 일실시예에서, 메모리(120)는 고체상태(예를 들면, 플래시) 메모리 형태를 취하며, 1회 프로그램가능, 소수 회 프로그램가능, 혹은 다수회 프로그램가능일 수 있다. 그러나, 광학 메모리 및 자기 메모리와 같은 다른 형태들의 메모리가 사용될 수 있다. 도 1에 단일 성분들로서 도시되었을지라도, 제어기(110) 및/또는 메모리(120)는 몇개의 성분들로 구현될 수 있다. 도 1에서, 메모리(120)는 공공 메모리 영역(130) 및 사설 메모리 영역(140)을 포함한다. 이 실시예에서, 공공 메모리 영역(130) 및 사설 메모리 영역(140)은 단일 메모리 장치의 서로 다른 파티션들이지만, 그러나, 다른 실시예들에서, 공공 메모리 영역(130) 및 사설 메모리 영역(140)은 서로 다른 메모리 장치들이다. 공공 메모리 영역(130)은 일반적으로 제약없이 액세스될 수 있지만, 사설 메모리 영역(140)은 권한있는 실체들에 의해서만 액세스될 수 있고, 전형적으로 호스트에 보이지 않는다(예를 들면, 히든 파티션). 따라서, 사설 메모리 영역(140)은 권한있는 실체들에 의해서만 액세스되어야 하는 복수의 콘텐트 파일들(여기에서는, 파일들 1-N)을 저장하는데 사용될 수 있다. "콘텐트 파일"은 디지털 비디오(오디오를 동반하거나 하지 않은)(예를 들면, 영화, TV 쇼의 에피소드, 뉴스 프로그램, 등), 오디오(예를 들면, 곡, 포드캐스트, 하나 또는 일련의 사운드들, 오디오 북, 등), 정지 혹은 동화상들(예를 들면, 사진, 컴퓨터로 생성된 디스플레이, 등), 텍스트(그래픽들이 있거나 없는)(예를 들면, 기사, 텍스트 파일, 등), 비디오 게임, 및 이들 형태들 중 2 이상의 하이브리드 멀티-미디어 표현과 같은 임의의 적합한 형태를 취할 수 있는데, 그러나 이들로 제한되는 것은 아니다. "콘텐트," "콘텐트 파일," 및 "파일"이라는 용어들은 본원에서는 상호교환적으로 사용될 것이며, 사설 메모리 영역(140)에 저장된 파일을 "보호된 파일"이라 칭할 것이다.
이 실시예에서, 공공 메모리 영역(130)은 가상 파일(150)을 내포한다. 가상 파일(150)은 이것이 공공 메모리 영역(130)을 위한 파일 할당 테이블(FAT) 내 할당된 논리 블록 어드레스들으로서 존재하지만 어떠한 데이터도 내포하지 않고 실제로 액세스될 수 없다는 의미에서 "가상"이다. 가상 파일(150)을 위해 공공 메모리 영역(130)에 할당되는 임의의 물리적 저장 위치들조차도 없을 수 있다(이하 논의되는 바와 같이, 일부 실시예들에서, 비교적 소량의 물리적 저장 위치들(예를 들면, 15 MB)이 가상 파일(150) 용으로 공공 메모리 영역(130)에 할당될 수도 있을지라도). 그러나, 가상 파일(150)은 공공 메모리 영역(130)에 FAT 테이블에 할당되는 논리 블록 어드레스들을 갖기 때문에, 가상 파일(150)은 호스트(50)에겐 정규 파일처럼 보일 것이다.
이 실시예에서, 가상 파일(150)은 사설 메모리 영역(140) 내 복수의 보호된 파일들 1-N 에의 게이트웨이로서 작용한다. 즉, 가상 파일(150)(예를 들면, 판독 명령에 명시된 논리 블록 어드레스들로부터)에 액세스하려는 시도가 행해지고 있음을 제어기(110)가 인식하였을 때, 제어기(110)는 가상 파일(150) 자체에의 액세스를 호스트(50)에게 제공하지 않고 특별한 조치를 취할 것이다. 예를 들면, 제어기(110)가 가상 파일(150)에 액세스를 위한 요청을 호스트(50)로부터 수신하였을 때, 제어기(110)는 사설 메모리 영역(140)에 저장된 복수의 보호된 파일들 1-N 중 하나를 선택하고 선택된 보호된 파일에의 액세스를 호스트(50)에 제공함으로써 요청에 응답할 수 있다. 동일 가상 파일(150)이 나중에 액세스될 때, 제어기(110)는 복수의 보호된 파일들 1-N 중 다른 것을 선택하고 이것에의 액세스를 제공할 수 있다. 예를 들면, 가상 파일(150)이 "오디오.MP3"이라 명명되어 있고 사설 메모리 영역(140)에 저장된 20 곡들의 재생목록에 연관되어 있다면, 호스트(50)가 "오디오.MP3"에의 액세스를 요청할 때마다, 제어기(110)는 재생목록 상에 다른 곡을 선택하고 이에의 액세스를 제공할 수 있다.
제어기(110)가 가상 파일(150)에 대한 호스트 요청을 취급할 수 있게 하기 위한 임의의 적합한 구현이 사용될 수 있다. 예를 들면, 도 2에 도시된 일실시예에서, 애플리케이션(혹은 캐플렛(160))은 제어기(110)가 사설 메모리 영역(140)에 보호된 콘텐트을 관리하는 방법(예를 들면, 어떤 보호된 콘텐트에 액세스 할 것인가와 언제)을 결정하는 한 세트의 규칙들을 저장한다. 이 실시예에서, 캐플렛(160)은 해커가 한 세트의 규칙들을 변조하는 것을 방지하기 위해 사설 메모리 영역(140)에 저장된다. 제어기(110)는 가상 파일(150)에 액세스하기 위한 호스트(50)로부터의 요청에 어떻게 반응할 것인지를 판정하기 위해 캐플렛(160) 내 한 세트의 규칙들을 사용한다. 또한, 사설 메모리 영역(140)은 복수의 보호된 파일들 1-N을 가상 파일(150)에 연관시키는 데이터베이스(170)를 저장한다. 이렇게 하여, 데이터베이스(170)는 복수의 보호된 파일들 1-N의 재생목록으로서 작용한다. 일실시예에서, 데이터베이스(170)는 복수의 보호된 파일들 1-N과 함께 저장장치(100)에 사전에 로딩된다. 데이터베이스(170)가 암호화된다면, 캐플렛(160)은 데이터베이스(170)를 해독하기 위한 키를 유지할 수 있다.
동작에서, 저장장치(100)에 전원이 넣어졌을 때, 캐플렛(160)은 사전에 로딩된 데이터베이스(170)에 따라 가상 파일(150)에 호스트(50)에 의해 행해지는 액세스 시도들을 제어하게 제어기(110)를 프로그램한다. 예를 들면, 가상 파일(150)에 액세스하기 위한 요청에 응하여, 제어기(110)는 데이터베이스(170)에 기초하여 복수의 보호된 파일들 1-N 중 하나를 선택하고 이에의 액세스를 제공할 수 있다. 또 다른 예로서, 제어기(110)는 호스트(50)가 권한이 있는지 아니면 권한이 없는지를 판정할 수 있고, 이에 따라 서로 다른 유형들의 콘텐트에의 액세스를 제공할 수 있는데, 이것은 저장장치(100)가 권한이 부여될 수도 있고 아닐 수도 있는 다양한 호스트들에 사용될 수 있는 휴대 메모리 카드이라면 바람직할 수도 있다. 따라서, 호스트(50)가 권한이 있는 플레이어라면, 제어기(110)는 보호된 콘텐트에의 액세스를 제공함으로써 가상 파일(150)에 액세스하기 위한 호스트(50)로부터의 요청에 응답할 수 있다. 그렇지 않다면, 제어기(110)는 대안적 파일에의 액세스를 제공함으로써 호스트 요청에 응답할 수 있다. 이렇게 하여, 한 세트의 규칙들은 호스트(50) 상에 애플리케이션이 권한이 부여된다면 보호된 파일(예를 들면, 영화)에의 액세스를 제어기(110)가 제공해야 하고, 그렇지 않다면 제어기(110)는 공공 또는 사설 메모리 영역들(130, 140)에 저장될 수도 있는 대안적 파일(예를 들면, 영화에 대한 트레일러)에의 액세스를 제공할 수 있음을 명시할 수 있다. 이렇게 하여, 가상 파일(150)에의 유사한 호스트 요청은 호스트(50)가 권한이 있는 혹은 권한이 없는 실체인지 여부에 기초하여 제어기(110)에 의해 다르게 취급될 수 있다(예를 들면, 저장장치(100)는 사용자가 로그인하지 않았거나 저장장치(100)에 의해 인증되지 않았다면 전용 커머셜을 내보낼 수 있다). 물론, 이것은 단지 일예이며, 다른 유형들의 규칙들 및 조건들이 사용될 수 있다. 예를 들면, 파일의 선택은 시간, 사용자에 관한 정보, 저장장치(50)에 호스트가 로그인하였는지 여부 및 어떻게 하였는지, 혹은 이외 임의의 다른 적합한 조건에 기초할 수 있다. 이들 예들로부터 알 수 있는 바와 같이, 가상 파일(150)은 서로 다른 상황들에서 다르게 취급될 수 있고, 공공 메모리 영역(130) 내 단일 가상 파일(150)은 사설 메모리 영역(140) 내 하나 이상의 보호된 파일들에의 액세스를 제공하기 위해 사용될 수 있다.
이제 도 2로 돌아가면, 이 실시예에서, 호스트(50)는 호스트 애플리케이션(60) 및 미디어 플레이어(여기에서는, 자바 플레이어(70))을 실행한다. 호스트 애플리케이션(60)은 자바 플레이어(70)를 제어하며, 또한 추가의 지령들을 저장장치(100)의 제어기(110)에 보내며, 이에 대해선 이하 기술될 것이다. 위에 언급된 바와 같이, 이 실시예에서, 가상 파일(150)(예를 들면, "오디오.MP3"이라 명명된)은 사설 메모리 영역(140)에 저장된 복수의 보호된 파일들 1-N에 연관된다. 호스트(50)가 "오디오.MP3"에의 액세스를 요청할 때마다, 제어기(110)는 복수의 보호된 파일들 1-N 중 다른 것을 선택하고 이에의 액세스를 제공할 수 있다. 이 실시예에서, 가상 파일(150) 의 크기는 적어도 사설 메모리 영역(140) 내 가장 큰 보호된 파일의 크기만큼 클 수 있다. 선택된 보호된 콘텐트가 가상 파일(150)의 크기보다 작다면, 제어기(110)는 호스트(50) 내 자바 플레이어(70)가 오기능하지 않게, 콘텐트를 유효 데이터로 패딩할 수 있다. 예를 들면, 보호된 파일이 오디오 파일이라면, 제어기(110)는 무음 MP3 프레임들 또는 예상되는 헤더 정보와 같은 유효한 데이터로 오디오 파일을 즉석에서 패딩할 수 있다. 이것은 서로 다른 호스트 캐시-어헤드(cache-ahead) 메커니즘들을 지원할 수 있기 위해 행해진다. 제어기(110)가 패딩된 데이터를 재생하는 것을 방지하기 위해서, 제어기(110)는 호스트(50)에게 파일의 실제 재생 길이를 알릴 수 있고 호스트(50)는 패딩된 데이터에 도달하기 전에 파일의 재생을 중지시킬 수 있다.
자바 플레이어(70)가 오디오 파일이라 파악하는 가상파일(150)을 판독하기 위한 요청을 JSR-135 프로토콜을 사용하여 저장장치(110)에 보내는 예를 고찰한다. 저장장치(100) 내 제어기(110)는 가상 파일(150)(예를 들면, 요청에 명시된 논리 블록 어드레스로부터)에 액세스하려는 시도가 행해지고 있음을 검출하고, 캐플렛(160) 내 규칙에 기초하여, 제어기(110)는 곡 A를 선택하고 이에의 액세스를 자바 플레이어(70)에 제공한다. 또한, 제어기(110)는 위에 논의된 바와 같이, 가상 파일(150)의 크기 미만일 수 있는 곡 A의 실제 크기를 호스트 애플리케이션(60)에 알린다. 호스트 애플리케이션(60)은 재생을 모니터하고, 곡 A가 완료되었을 때, 호스트 애플리케이션(60)은 데이터를 스트리밍하는 것을 중지하고 다음 곡으로 스킵하라는 명령을 JSR-75 프로토콜을 통해 제어기(110)에 보낸다. (JSR-135 프로토콜은 이러한 유형의 명령을 지원하지 않는다). 이 명령에 응하여, 제어기(110)는 다음 곡(곡 B)을 지정하게 데이터베이스(170)를 업데이트한다. 호스트 애플리케이션(60)은 가상 파일(150)에 액세스를 다시 요청할 것을 자바 플레이어(70)에 지시한다. 그러나, 이 때, 제어기(110)는 곡 B(곡 A가 아님)을 선택하고 이에의 액세스를 자바 플레이어(70)에 제공한다. 이어서, 위에 기술된 프로세스는 자바 플레이어(70)가 추가의 곡들의 재생을 계속하여 요청할 때 반복한다.
이들 실시예들에 사용될 수 있는 많은 대안들이 있다. 예를 들면, 일실시예에서, 저장장치(100)는 저장장치(100)가 사전에 로딩된 보호된 파일들을 찾아 액세스하는데 걸리는 시간을 최소화하고, 사전에 로딩된 보호된 파일들에 관한 상세(예를 들면, 트랙명, 아티스트명, 앨범명, 트랙 기간, 등)를 추출하는데 걸리는 시간을 최소화하기 위해, 사전에 로딩된 보호된 파일들의 재생을 위한 "전용 파일 시스템"을 사용한다. 이렇게 하여, 보호된 파일들에의 게이트웨이 기능을 제공하는데 수반되는 제어기(110) 오버헤드에도 불구하고, 가상 파일(150)에 액세스하는 시간은 다른 유형의 파일에 액세스하는 시간과 거의 동일할 것이다. 이 전용 파일 시스템을 구현하기 위해서, 보호된 파일들은 연속 논리 블록 어드레스(LBA) 순서로 사설 메모리 영역(140)에 사전에 로딩될 수 있다. 이어서, 테이블들은 각 보호된 파일에 대한 정확한 시작 LBA를, 파일 기간과 같은 그외 어떤 다른 관련 데이터와 더불어 명시하기 위해 제조 동안 구축될 수 있다. 이러한 테이블들을 판독하는 것이 필요 정보를 모으기 위해 파일들을 여는 것보다 빠르기 때문에, 이 전용 파일 시스템의 사용은 더 빠른 응답 시간을 제공한다.
위에 설명으로부터 이해되는 바와 같이, "전용 파일 시스템"은 다른 사전에 로딩된 콘텐트를 찾고 이에 액세스하는데 요구되는 시간량을 감소시키기 위해 사용될 수 있다. 이것은, 특정한 방법으로, 재생에 필요한 데이터만을 저장하기 위한 전용 구조(예를 들면, 테이블)을 정의함으로써 행해질 수 있다. 이 데이터는 제품에 특정한 요건들(예를 들면, 트랙명, 아티스트명, 앨범명, 트랙 기간, 등)에 따라 서로 다른 제품들 간에 바뀔 수 있다. 이 데이터 구조는 연속한 LBA 순서로, 저장장치(100) 내 보안 위치에 사전에 로딩될 수 있고, 테이블들은 전에 명시된 다른 데이터와 함께 각 파일에 대해 정확한 시간 LBA에 위치된 데이터를 유지한다. 테이블 내 모든 엔트리는 테이블에서 엔트리 키를 사용하여 식별될 수 있는 특정 파일을 나타낼 수 있다. 특정 파일에 액세스하기 위한 요청시, 테이블에서 파일을 찾고 관련 데이터가 인출된다. 예를 들면, 가상 파일(150)을 사용하여 처음부터 곡을 재생하는 것은 파일의 시작 LBA, 이의 실제 기간, 및 디스플레이될 앨범명의 정보를 요구할 수 있다. 파일들을 취급하는 이 방법에서, 파일을 찾아 재생하는데 요구되는 시간량은 FAT 테이블을 취급하고 파일 콘텐트를 파싱(parse)하는데 필요한 시간에 비해 극적으로 감소한다.
더 빠른 응답 시간을 제공하는 또 다른 대안으로서, 저장장치(100)는 "복합 명령"의 사용을 지원할 수 있다. 복합 명령은 재생 시스템의 서로 다른 면들, 예를 들면, 가상 파일 상태 및 재생되고 있는 곡 둘 다를 변경하는 것을 제어하는 2이상의 명령들을 포함하는 단일 명령이다. 복합 명령들의 사용은 고속 응답 시간이 요망되는 오디오 스트리밍과 같은 환경들에서 특히 바람직할 수 있다. 예를 들면, 복합 명령은 "채널 스킵" 및 "두 곡 앞으로 스킵" 혹은 "곡을 스킵하고 일시정지에 들어간다"를 명시할 수 있다. 많은 상황들에서, 몇가지 모드 변경들은 동시에 행해질 필요가 있을 수 있다. 예를 들면, "곡을 재생하고, 일시정지 모드로 가고, 다음 곡으로 스킵하는"의 순서는 스킵이 행해진 직후에 다음 곡 이 시작할 것을 요구할 수 있다. 이 경우에, 이 변경이 발생되게 하기 위해서 버스를 통해 두 명령들이 보내질 필요가 있을 수 있다. 또 다른 예에서, 시스템의 서로 다른 면들은 동시에 제어될 필요가 있을 수 있다. 시스템의 서로 다른 면들은 가상 파일 상태 변경 및 재생되고 있는 곡을 변경하는 것과 같이, 동시에 제어될 필요가 있을 수도 있다. 따시, 생각은 저장장치(100) 상에 상태 변경들을 취급하는데 필요한 시간량 및 명령을 호스트(50)에서 저장장치(100)로 그리고 반대로 수송하는데 걸리는 시간량을 감소시키는 것이다.
또 다른 대안에서, 가상 파일(150)용으로 공공 메모리 영역(130)에 실제 메모리를 할당하는 대신에, 메모리 소비는 공공 메모리 영역(130)을 확장된 저장 영역으로서 호스트(50)에 자신을 에뮬레이트하게 함으로써 감소될 수 있고, 따라서 확장된 (에뮬레이트된) 저장 영역에 대한 호스트 요청은 이것이 마치 저장장치의 사설 메모리 영역(140)에 대한 호스트 요청인 것인양 제어기(110)에 의해 취급된다. 결국, 가상 파일(150)은 공공 메모리 영역(130)에 실제 메모리를 소비하지 않는다. 이것은 가치있는 메모리를 소비함이 없이 큰 파일들(예를 들면, 영화들)을 저장할 수 있게 한다. 예를 들면, 가상 파일(150)이 15 MB이고 공공 메모리 영역(130) 30 MB인 상황을 고찰한다. 위에 기술된 기술을 사용하여, 저장장치(100)는 30 MB이 물리 어드레스들에 매핑되고 15 MB은 그렇지 않은 45 MB 공공 메모리 영역(130)을 갖는 것으로서 자신을 확인할 수 있다.
위에 논의된 예들이 저장장치로부터 보호된 파일을 판독하는 것에 관한 것이지만, 대안적 실시예에서, 가상 파일(150)은 사설 메모리 영역(140)에 새로운 콘텐트를 추가하는 것이 호스트(50)에 권한이 부여된다면, 이를 행하기 위해 사용된다. 예를 들면, 사용자가 곡을 구입하였을 때, 호스트 애플리케이션(70)은 사설 메모리 영역(140)을 이의 자유 공간에 새로운 콘텐트를 추가하기 위해 제어하고 이어서 사설 메모리 영역(140)에 새로운 곡 데이터를 기입하기 위해 가상 파일(150)을 사용할 수 있다. 또 다른 예에서, 저장된 커머셜은 새로운 커머셜로 업데이트될 수 있다. 이것은 가상 파일(150)을 이 사설 파일에 링크하고 가상 파일(150)에 기입함에 의해 이의 콘텐트를 변경함으로써 달성될 수 있다. 저장장치(100)는 기입 명령을 인터셉트하고 사설 메모리 영역(140) 상에 정확한 곳으로 기입 동작을 채널(channel)할 수 있다. 이것은 업데이트된 콘텐트 및 구입된 콘텐트를 보안이 되게 유지하기 위해 사설 메모리 영역(140)을 업데이트할 수 있게 한다.
추가의 대안들은 카피 방지 메커니즘들에 관계된 것이다. 가상 파일(150)은 공공 메모리 영역(130)에서 액세스될 수 있기 때문에, 가상 파일(150)은 임의의 호스트로부터 단순 카피 명령에 의해 쉽게 카피될 수 있다. 다음의 대안들은 가상 파일(150)의 카피하는 것을 방지하고, 그럼으로써 사설 메모리 영역(140)에 저장된 보호된 콘텐트에의 엑세스가 콘텐트에 액세스하는 것이 허용된 인증된 실체에게만 주어지게 하기 위해 사용될 수 있다. 그렇지 않다면, 호스트(50)는 간단히 공공 메모리 영역(130) 내 또다른 어드레스 범위에 가상 파일(150)을 카피하고 보호된 콘텐트에 자유롭게 액세스할 수 있다.
한 예시적 카피 방지 메커니즘은 가상 파일(150)의 판독 동작들에 의해 저장장치(100)로부터 보내진 보호된 콘텐트를 암호화하기 위해 암호화 기법을 사용한다. 이것은 인증 프로세스가 호스트 애플리케이션(60)과 저장장치(100)(예를 들면, 로그인 동안) 간에 적용될 때마다 업데이트되는 세션 키를 사용함으로써 행해질 수 있다. 이 세션 키는 호스트(50) 및 저장장치(100) 둘 다에 알려지며, 따라서, 저장장치(100)는 보호된 콘텐트를 암호화하기 위해 세션 키를 사용할 수 있고, 호스트(50)는 보호된 콘텐트를 해독하기 위해 세션 키를 사용할 수 있다. 이렇게 하여, 세션 키의 사용은 저장장치(100)와 호스트 애플리케이션(60) 간에 보안 채널을 생성한다.
또 다른 예시적 카피 방지 메커니즘은 호스트(50)에 의해 판독된 섹터들을 카운트하기 위해 저장장치(100) 내 카운터를 사용한다. 카운터가 제로에 도달할 때, 저장장치(100)는 무음 오디오의 버퍼들을 보내는 것을 시작할 수 있다. 호스트(50)는, 올바른 인증 후에, 재생 시간에 걸쳐 저장장치(100)에 내 카운터를 증분할 것을 지시할 수 있다. 카운터를 설정하는 이 동작은 파일(예를 들면, 곡의 재생 동안)의 판독 동안 행해질 수 있다. 파일을 카피하려는 시도가 있는 경우에, 저장장치(100)는 시도를 검출하고 무효한 데이터를 호스트(50)에 내보내는 것을 시작할 수 있다. 이것은 카운터가 증가됨이 없이 해커가 어떤 량의 곡(예를 들면, 5 MB 곡의 오디오의 1 MB)만을 인출할 수 있기 때문에 곡을 카피하는 것을 방지한다.
또 다른 예시적 카피 방지 메커니즘에서, 데이터 레이트 제어("DRC")는 호스트(50)에서 가상 파일(150)로의 판독 동작들의 패턴을 조사한 후에 저장장치(100)에 의해 시행된다. 이들 판독 동작들이 예상된 대로 일어나지 않는다면(예를 들면, 저장장치(100)가 가상 파일(150)를 카피하는 것이 고속의 신속한 파일 액세스에 기인하여 행해지고 있음을 검출하면), 저장장치(100)는 무효한 데이터를 내보내거나 판독 프로세스를 실패할 수 있다. 이렇게 하여, 저장장치(100)는 저장장치(100)로부터 판독된 보호된 파일에 관해 데이터 레이트 제어를 시행한다. 호스트(50)는 저장장치(100)에 대해 올바른 인증을 취한 후에 현재 호스트(50)의 특정한 특성들에 맞추기 위해 저장장치 DRC 메커니즘을 구성할 수 있다.
또한, "슬라이딩 윈도우"는 예시적인 카피 방지 수법으로서 사용될 수 있다. 이 메커니즘으로, 저장장치(100)는 호스트(50)가 특정 LBA 범위 내에서만 실제 데이터를 판독하게 한다. 이 LBA 범위 밖의 데이터에 액세스하는 것은 무음 오디오의 버퍼들을 내보낸다. 호스트(50)는 올바른 인증 후에, 허용된 범위를 재구성할 수 있다. 이 허용된 범위가 이동하기 때문에, 본원에서는 "슬라이딩 윈도우"라 칭한다. 위에 논의된 카운터의 개념은 슬라이딩 윈도우(예를 들면, 현재로서는 1부터 500까지 카피한다)으로서 사용될 수 있거나, 데이터의 재생은 가상 파일(150) 내에 특정 위치만으로부터 허용될 수 있다.
또 다른 실시예에서, 가상 파일(150)은 자체의 미디어 플레이어들로부터 재생을 위해 사용될 수 있다. 이것은 콘텐트의 각 재생목록에 대해 비교적 큰 가상 파일을 사용함으로써 행해질 수 있다. 이 가상 파일은 즉석으로 곡과 곡을 연결할 수 있다. 또한, 저장장치(100)는 콘텐트의 각 채널이 호스트 자체에 플레이어에 디스플레이되기 하기 위해서 ID3 태그를 제공할 수도 있다. 이렇게 하여, 저장장치(100)는 각 호스트(예를 들면, 핸드셋) 상에 혹은 가용한 운영 시스템에 사용될 수 있다. 이 솔루션은 곡을 스킵하려는 시도들을 감지하는 방법을 저장장치에 허용함으로써 향상될 수 있다(예를 들면, 사용자가 프로그레스 바(progress bar)를 고속-포워딩/리와인드/드래그하려고 할 때를 검출함으로써).
예시적 저장장치 및 프로세스 흐름들
위에 언급된 바와 같이, 이들 실시예들의 저장장치는 임의의 적합한 방식으로 구현될 수 있다. 다음 단락들 및 참조된 도면들은 한 예시적 구현을 기술한다. 이 구현은 단지 예이며 본원에 도시되고 기술된 상세는 청구항들에 명백히 인용되지 않는 한 청구항들로 해석되지 않아야 함을 알아야 한다.
도면들을 돌아가서, 도 3a 및 도 3b는 실시예의 저장장치(300) 및 호스트(350)의 블록도들이다. 먼저 도 3b부터 시작하면, 저장장치(300)는 제어기(310) 및 메모리(320)를 포함한다. 제어기(310)는 메모리(320)와 인터페이스하기 위한 메모리 인터페이스(311) 및 호스트(350)와 인터페이스하기 위한 호스트 인터페이스(312)를 포함한다. 또한, 제어기(310)는 중앙처리장치(CPU)(313), 암호화 및/또는 해독 동작들을 제공하게 동작하는 암호화-엔진(314), 판독 액세스 메모리(RAM)(315), 저장장치(300)의 기본 동작들을 위한 펌웨어를 저장할 수 있는 판독 전용 메모리(ROM)(316), 암호화/해독 동작들을 위해 사용되는 장치-특정의 키를 저장하는 비휘발성 메모리(NVM)(317)를 포함한다. 저장장치-특정의 키는 저장장치 내에 다른 메모리 영역들에 저장될 수 있음에 유의한다. 도 3b에 도시된 성분들은 임의의 적합한 방식으로 구현될 수 있다.
이 실시예에서, 메모리(320)는 호스트(350) 상에 파일 시스템에 의해 관리되는 공개 파티션(325) 및 제어기(310)에 의해 내부적으로 관리되는 보호된 히든 시스템(335)을 포함한다. 보호된 히든 시스템 영역(335)은, 위에 논의된 바와 같이, 콘텐트 암호화 키들(CEKs)(340), 콘텐트, 데이터베이스, 캐플렛(342)을 저장한다. 보호된 히든 시스템 영역(335)은 이것이 제어기(310)(호스트 제어기(360)에 의한 것이 아닌)에 의해 내부에서 관리되기 때문에 "히든"이며 이 영역(335)에 저장된 객체들이 제어기(310)의 비휘발성 메모리(317)에 저장된 고유 키로 암호화되기 때문에 "보호된 것" 이다. (저장장치 하드웨어 고유 키는 제어기(310)의 비휘발성 메모리(317) 혹은 저장장치(300) 내 다른 영역들에 저장될 수 있다). 따라서, 이 영역(335)에 저장된 객체들에 액세스하기 위해, 제어기(310)는 암호화-엔진(314) 및 암호화된 객체들을 해독하기 위해 비휘발성 메모리(317)에 저장된 키를 사용할 것이다. 바람직하게, 저장장치(300)는 SanDisk 사에 의한 TrustedFlash(등록상표) 플랫폼 상에 형성된 제품군으로부터의 보안 제품 형태를 취한다. 공공 파티션(325)은 가상 파일(330)을 내포한다.
이제 도 3a에 호스트(350)로 돌아가면, 호스트(350)는 저장장치(300)와 인터페이스하기 위한 저장장치 인터페이스(361)를 가진 제어기(360)를 포함한다. 또한, 제어기(360)는 중앙처리장치(CPU)(363), 암호화 및/또는 해독 동작들을 제공하게 동작하는 암호화-엔진(364), 판독 액세스 메모리(RAM)(365), 및 판독 전용 메모리(ROM)(366)를 포함한다. 박스(360)에 각 성분이 전체 호스트 시스템 내 개별적 칩들로서 구현될 수 있음에 유의한다. 또한, 호스트(350)는 콘텐트 엔진(371), 파일 시스템 API(372), 콘텐트 디코더 API(373), 호스트 증명서(374)를 포함하는 애플리케이션(370)을 포함한다.
저장장치(300) 및 호스트(350)는 저장장치 인터페이스(361) 및 호스트 인터페이스(312)를 통해 서로 통신한다. 데이터의 보안적 전송을 수반하는 동작들을 위해서, 저장장치(300) 및 호스트(350) 내 암호화-엔진들(314, 364)은 서로 상호간에 인증하고 키 교환을 제공하는데 사용되는 것이 바람직하다. 상호 인증 프로세스는 고유 증명 ID들을 교환할 것을 호스트(350) 및 저장장치(300)에 요구한다. 상호 인증이 완료된 후에, 저장장치(300)와 호스트(350) 간에 통신을 위한 보안 채널을 확립하기 위해 세션 키가 사용되는 것이 바람직하다.
도 4a 및 도 4b는 도 3a 및 도 3b에 메모리 장치(300) 호스트(350)를 사용하는 실시예의 몇몇 예시적 프로세스 흐름들의 흐름도들이다. 구체적으로, 도 4a 및 도 4b는 실시예의 로그인 프로세스의 흐름도들이며, 도 5a 및 도 5b는 실시예의 로그인 후 판독 프로세스의 흐름도들이며, 도 6a 및 도 6b는 실시예의 로그인 없이 판독하는 프로세스의 흐름도들이며, 도 7은 실시예의 정규 파일에 액세스하기 위한 프로세스의 흐름도이며, 도 8a 및 도 8b는 범위 밖에 있는 데이터에 액세스하고 파일에 추가의 데이터를 패딩하기 위한 실시예의 프로세스의 흐름도들이며, 도 9a 및 도 9b는 실시예의 파일의 실제 길이를 판정하는 프로세스의 흐름도들이며, 도 10a 및 도 10b는 암호화를 사용하는 실시예의 보호 프로세스의 흐름도들이며, 도 11a 및 도 11b는 카운터를 사용하는 실시예의 보호 프로세스의 흐름도들이며, 도 12a 및 도 12b는 슬라이딩 윈도우를 사용하는 실시예의 보호 프로세스의 흐름도들이며, 도 13a 및 도 13b는 데이터 레이트 제어를 위한 실시예의 프로세스의 흐름도들이며, 도 14a 및 도 14b는 콘텐트를 추가하기 위한 실시예의 프로세스의 흐름도들이다.
결어
전술한 상세한 설명은 발명의 정의로서가 아니라 발명이 취할 수 있는 선택된 형태들의 예시로서 이해되게 한 것이다. 청구된 발명의 범위를 정의하고자 하는 것은 모든 등가물들을 포함해서 다음의 청구항들뿐이다. 마지막으로, 본원에 기술된 바람직한 실시예들의 어느 실시예의 어떤 특징이든 단독으로 혹은 서로 조합하여 사용될 수 있는 것에 유의한다.
50: 호스트
60: 호스트 애플리케이션
70: 자바 플레이어
100: 저장장치
110: 제어기
130: 공공 메모리 영역
140: 사설 메모리 영역
150: 가상 파일
160: 캐플렛
170: 데이터베이스

Claims (30)

  1. 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 방법에서, 상기 방법은,
    공공 메모리 영역 및 사설 메모리 영역을 가진 저장장치의 제어기에서,
    (a) 상기 공공 메모리 영역 내 가상 파일에 액세스를 위한 호스트로부터의 요청을 수신하는 단계로서, 상기 가상 파일은 상기 사설 메모리 영역에 저장된 복수의 보호된 파일들에 연관된 것인, 단계;
    (b) 상기 사설 메모리 영역 내 저장된 상기 복수의 보호된 파일들 중 하나를 선택하여 이에의 액세스를 상기 호스트에 제공함으로써 상기 가상 파일에 액세스를 위한 상기 요청에 응답하는 단계; 및
    (c) 상기 가상 파일에 액세스를 위한 상기 호스트로부터의 추가의 요청을 수신하는 단계로서, 상기 제어기는 상기 사설 메모리 영역에 저장된 상기 복수의 보호된 파일들 중 다른 것을 선택하여 이에의 액세스를 상기 호스트에 제공함으로써 상기 추가의 요청에 응답하는 것인, 단계를 수행하는 것을 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 제어기는 상기 사설 메모리 영역 내 상기 복수의 보호된 파일들을 상기 제어기가 어떻게 관리할 것인지를 판정하는 한 세트의 규칙들을 저장하는 애플리케이션을 실행한 후에 (a)-(c)를 수행하는 것인, 방법.
  3. 청구항 1에 있어서, (c)-(d)는 상기 호스트가 상기 저장장치에 인증되었다면 수행되며, 상기 제어기는 상기 호스트가 상기 저장장치에 인증되지 않았다면 전용 커머셜을 제공함으로써 상기 요청에 응답하는 것인, 방법.
  4. 청구항 1에 있어서, 상기 가상 파일의 크기는 적어도 가장 큰 보호된 파일의 크기만큼 큰 것인, 방법.
  5. 청구항 4에 있어서, 상기 선택된 보호된 파일의 크기를 상기 호스트에 제공하는 단계를 더 포함하는, 방법.
  6. 청구항 4에 있어서, 상기 선택된 보호된 파일의 크기는 상기 가상 파일의 크기 미만이며, 상기 방법은 크기들에 차이를 수용하기 위한 데이터를 상기 보호된 파일 파일에 패딩하는 단계를 더 포함하는, 방법.
  7. 청구항 1에 있어서, 상기 가상 파일은 상기 공공 저장 영역 내 물리적 영역들에 할당되는, 방법.
  8. 청구항 1에 있어서, 상기 가상 파일은 상기 공공 저장 영역 내 물리적 영역들에 할당되지 않는, 방법.
  9. 청구항 1에 있어서, 상기 보호된 파일은 전용 파일 시스템을 사용하여 액세스되는 것인, 방법.
  10. 청구항 1에 있어서, 상기 호스트로부터의 상기 요청은 2이상의 명령들의 복합 명령을 포함하는, 방법.
  11. 청구항 1에 있어서, 수정된 데이터를 상기 가상 파일에 기입함으로써 상기 사설 메모리 영역에 저장된 보호된 파일을 수정하며; 및
    상기 새로운 보호된 파일을 상기 가상 파일에 기입함으로써 새로운 보호된 파일을 상기 사설 메모리 영역에 추가하는 것 중 적어도 하나를 수행하는 단계를 더 포함하는, 방법.
  12. 청구항 1에 있어서, 상기 보호된 파일은 암호화된 것인, 방법.
  13. 청구항 1에 있어서, 상기 가상 파일이 카피되는 것으로부터 방지하기 위해 카운터를 사용하는 단계를 더 포함하는, 방법.
  14. 청구항 1에 있어서, 상기 가상 파일이 카피되는 것으로부터 방지하기 위해 데이터 레이트 제어 메커니즘을 사용하는 단계를 더 포함하는, 방법.
  15. 청구항 1에 있어서, 상기 가상 파일이 카피되는 것으로부터 방지하기 위해 슬라이딩 윈도우를 사용하는 단계를 더 포함하는, 방법.
  16. 저장장치에 있어서,
    공공 메모리 영역;
    사설 메모리 영역; 및
    상기 공공 및 사설 메모리 영역들과 통신하는 제어기를 포함하고; 상기 제어기는
    (a) 상기 공공 메모리 영역 내 가상 파일에 액세스를 위한 호스트로부터의 요청을 수신하는 것으로서, 상기 가상 파일은 상기 사설 메모리 영역에 저장된 복수의 보호된 파일들에 연관된 것이며;
    (b) 상기 사설 메모리 영역 내 저장된 상기 복수의 보호된 파일들 중 하나를 선택하여 이에의 액세스를 상기 호스트에 제공함으로써 상기 가상 파일에 액세스를 위한 상기 요청에 응답하며;
    (c) 상기 가상 파일에 액세스를 위한 상기 호스트로부터의 추가의 요청을 수신하는 단계로서, 상기 제어기는 상기 사설 메모리 영역에 저장된 상기 복수의 보호된 파일들 중 다른 것을 선택하여 이에의 액세스를 상기 호스트에 제공함으로써 상기 추가의 요청에 응답하게 구성된 것인, 저장장치.
  17. 청구항 16에 있어서, 상기 제어기는 상기 사설 메모리 영역 내 상기 복수의 보호된 파일들을 상기 제어기가 어떻게 관리할 것인지를 판정하는 한 세트의 규칙들을 저장하는 애플리케이션을 실행한 후에 (a)-(c)를 수행하게 동작하는, 저장장치.
  18. 청구항 16에 있어서, 상기 제어기는 상기 호스트가 상기 저장장치에 인증되었다면 (b)-(c)를 수행하게 동작하며, 상기 제어기는 상기 호스트가 상기 저장장치에 인증되지 않았다면 전용 커머셜을 제공함으로써 상기 요청에 응답하게 동작하는 것인, 저장장치.
  19. 청구항 16에 있어서, 상기 가상 파일의 크기는 적어도 가장 큰 보호된 파일의 크기만큼 큰 것인, 저장장치.
  20. 청구항 19에 있어서, 상기 제어기는 상기 선택된 보호된 파일의 크기를 상기 호스트에 제공하게 더욱 동작하는, 저장장치.
  21. 청구항 19에 있어서, 상기 선택된 보호된 파일의 크기는 상기 가상 파일의 크기 미만이며, 상기 제어기는 크기들에 차이를 수용하기 위한 데이터를 상기 보호된 파일 파일에 패딩하게 더욱 동작하는, 저장장치.
  22. 청구항 16에 있어서, 상기 가상 파일은 상기 공공 저장 영역 내 물리적 영역들에 할당되는, 저장장치.
  23. 청구항 16에 있어서, 상기 가상 파일은 상기 공공 저장 영역 내 물리적 영역들에 할당되지 않는, 저장장치.
  24. 청구항 16에 있어서, 상기 보호된 파일은 전용 파일 시스템을 사용하여 액세스되는 것인, 저장장치.
  25. 청구항 16에 있어서, 상기 호스트로부터의 상기 요청은 2이상의 명령들의 복합 명령을 포함하는, 저장장치.
  26. 청구항 16에 있어서, 상기 제어기는 수정된 데이터를 상기 가상 파일에 기입함으로써 상기 사설 메모리 영역에 저장된 보호된 파일을 수정하며;
    상기 새로운 보호된 파일을 상기 가상 파일에 기입함으로써 새로운 보호된 파일을 상기 사설 메모리 영역에 추가하는 것 중 적어도 하나를 수행하게 더욱 동작하는, 저장장치.
  27. 청구항 16에 있어서, 상기 보호된 파일은 암호화된 것인, 저장장치.
  28. 청구항 16에 있어서, 상기 제어기는 상기 가상 파일이 카피되는 것으로부터 방지하기 위해 카운터를 사용하게 더욱 동작하는, 저장장치.
  29. 청구항 16에 있어서, 상기 제어기는 상기 가상 파일이 카피되는 것으로부터 방지하기 위해 데이터 레이트 제어 메커니즘을 사용하게 더욱 동작하는, 저장장치.
  30. 청구항 16에 있어서, 상기 제어기는 상기 가상 파일이 카피되는 것으로부터 방지하기 위해 슬라이딩 윈도우를 사용하게 더욱 동작하는, 저장장치.
KR20127013038A 2009-12-09 2010-11-19 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법 KR20120117747A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/634,470 US9092597B2 (en) 2009-12-09 2009-12-09 Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area
US12/634,470 2009-12-09

Publications (1)

Publication Number Publication Date
KR20120117747A true KR20120117747A (ko) 2012-10-24

Family

ID=43639109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20127013038A KR20120117747A (ko) 2009-12-09 2010-11-19 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법

Country Status (7)

Country Link
US (1) US9092597B2 (ko)
EP (1) EP2510430B1 (ko)
JP (1) JP5579274B2 (ko)
KR (1) KR20120117747A (ko)
CN (1) CN102656550B (ko)
TW (1) TW201131467A (ko)
WO (1) WO2011071678A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI413898B (zh) * 2009-09-15 2013-11-01 Phison Electronics Corp 資料保護方法與系統、儲存裝置及儲存裝置控制器
US9092597B2 (en) 2009-12-09 2015-07-28 Sandisk Technologies Inc. Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area
JP5018919B2 (ja) * 2010-03-19 2012-09-05 コニカミノルタビジネステクノロジーズ株式会社 情報処理装置、コンテンツ管理方法およびコンテンツ管理プログラム
US8301715B2 (en) 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
US8301694B2 (en) * 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
US9183390B2 (en) * 2011-12-22 2015-11-10 Intel Corporation Systems and methods for providing anti-malware protection on storage devices
US9390278B2 (en) * 2012-09-14 2016-07-12 Freescale Semiconductor, Inc. Systems and methods for code protection in non-volatile memory systems
CN103678959A (zh) * 2013-11-12 2014-03-26 杭州晟元芯片技术有限公司 一种基于移动存储设备的数据保护方法
US9690928B2 (en) 2014-10-25 2017-06-27 Mcafee, Inc. Computing platform security methods and apparatus
US10073972B2 (en) 2014-10-25 2018-09-11 Mcafee, Llc Computing platform security methods and apparatus
US20160360417A1 (en) * 2014-11-17 2016-12-08 Solid State System Co., Ltd. Storage device with access control device and method for accessing storage device
JP6478800B2 (ja) * 2015-05-18 2019-03-06 三菱電機株式会社 デジタルコンテンツ編集装置、デジタルコンテンツ再生装置、デジタルコンテンツ復号装置、デジタルコンテンツ暗号化復号システムおよびデジタルコンテンツ暗号化復号方法
CN105763745A (zh) * 2016-04-26 2016-07-13 努比亚技术有限公司 一种数据保护方法、装置及移动终端
US10474391B2 (en) 2017-09-05 2019-11-12 Western Digital Technologies, Inc. Storage system and method for executing file-based firmware commands and collecting response data
US10318438B1 (en) * 2017-12-07 2019-06-11 Nuvoton Technology Corporation Secure memory access using memory read restriction
US11023601B2 (en) * 2018-04-20 2021-06-01 Rohde & Schwarz Gmbh & Co. Kg System and method for secure data handling
CN109992539B (zh) * 2019-03-13 2023-03-10 苏州盛科通信股份有限公司 双主机协同工作装置
CN113591139A (zh) * 2021-10-08 2021-11-02 北京海誉动想科技股份有限公司 文件访问控制方法与装置

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868495B1 (en) * 1996-09-12 2005-03-15 Open Security Solutions, Llc One-time pad Encryption key Distribution
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
US7392234B2 (en) * 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US6976165B1 (en) * 1999-09-07 2005-12-13 Emc Corporation System and method for secure storage, transfer and retrieval of content addressable information
US6466944B1 (en) * 1999-12-02 2002-10-15 Novell, Inc. Method for creation, management, and use of files containing multiple virtual data streams using standard file system APIs
US7917628B2 (en) * 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
US7376740B1 (en) * 2000-06-13 2008-05-20 Microsoft Corporation Phone application state management mechanism
AU7182701A (en) * 2000-07-06 2002-01-21 David Paul Felsher Information record infrastructure, system and method
GB2373067A (en) * 2000-11-29 2002-09-11 Ruslan Gennadievich Fedorovsky File transfer method and system using segmented transfer and targeted content
US20060129933A1 (en) * 2000-12-19 2006-06-15 Sparkpoint Software, Inc. System and method for multimedia authoring and playback
US20020157010A1 (en) * 2001-04-24 2002-10-24 International Business Machines Corporation Secure system and method for updating a protected partition of a hard drive
US20060167985A1 (en) * 2001-04-26 2006-07-27 Albanese Michael J Network-distributed data routing
US6941456B2 (en) * 2001-05-02 2005-09-06 Sun Microsystems, Inc. Method, system, and program for encrypting files in a computer system
US7395436B1 (en) * 2002-01-31 2008-07-01 Kerry Nemovicher Methods, software programs, and systems for electronic information security
US20030212542A1 (en) * 2002-05-08 2003-11-13 Amikai, Inc. Platform-independent automated machine translation system
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
GB2404486A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
JP4342242B2 (ja) 2003-08-15 2009-10-14 日本電信電話株式会社 セキュアファイル共有方法および装置
JP4241485B2 (ja) 2004-04-15 2009-03-18 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラムおよび記録媒体
US20050240993A1 (en) 2004-04-22 2005-10-27 Treadwell William S Methodology, system and computer readable medium for streams-based packet filtering
US20070110074A1 (en) * 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
WO2005121959A2 (en) * 2004-06-08 2005-12-22 Dartdevices Corporation Architecture, apparatus and method for device team recruitment and content renditioning for universal device interoperability platform
US20050281404A1 (en) * 2004-06-17 2005-12-22 Matsushita Electric Industrial Co., Ltd. Scalable streaming media authentication
WO2006051037A1 (en) * 2004-11-09 2006-05-18 Thomson Licensing Bonding contents on separate storage media
US20060129496A1 (en) * 2004-12-14 2006-06-15 Motorola, Inc. Method and apparatus for providing digital rights management
US7529816B2 (en) * 2005-06-03 2009-05-05 Hewlett-Packard Development Company, L.P. System for providing multi-path input/output in a clustered data storage network
JP4613739B2 (ja) 2005-08-01 2011-01-19 ソニー株式会社 情報処理装置、情報処理方法、および情報記録媒体、並びにコンピュータ・プログラム
US7634629B2 (en) * 2005-12-19 2009-12-15 Intel Corporation Mechanism to control access to a storage device
JP2007257047A (ja) * 2006-03-20 2007-10-04 Sony Corp 情報処理装置および情報処理方法、プログラム格納媒体、プログラム、データ構造、並びに、記録媒体の製造方法
US7720893B2 (en) * 2006-03-31 2010-05-18 Research In Motion Limited Methods and apparatus for providing map locations in user applications using URL strings
US8992304B2 (en) * 2006-04-13 2015-03-31 Igt Methods and systems for tracking an event of an externally controlled interface
US20070288535A1 (en) * 2006-06-13 2007-12-13 Hitachi, Ltd. Long-term data archiving system and method
US8874145B2 (en) * 2006-08-02 2014-10-28 Telecommunication Systems, Inc. Personal location code broker
US7957751B2 (en) * 2006-08-02 2011-06-07 Telecommunication Systems, Inc. Personal location code
WO2008032648A1 (fr) * 2006-09-11 2008-03-20 Panasonic Corporation Carte ci et son procédé de commande d'accès
JP2008107965A (ja) 2006-10-24 2008-05-08 Sony Corp 情報処理装置、情報処理方法、プログラム、プログラム記録媒体
US8171502B2 (en) 2006-11-29 2012-05-01 Sony Ericsson Mobile Communications Ab Methods, devices and computer program products for automatically installing device drivers from a peripheral device onto a host computer
US8423794B2 (en) 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US20080189554A1 (en) * 2007-02-05 2008-08-07 Asad Ali Method and system for securing communication between a host computer and a secure portable device
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US8566695B2 (en) * 2007-03-30 2013-10-22 Sandisk Technologies Inc. Controlling access to digital content
WO2008135969A1 (en) 2007-05-03 2008-11-13 Sandisk Il Ltd. Storage device and method for data-smuggling
US7636825B2 (en) * 2007-05-03 2009-12-22 Sandisk Il Ltd. Storage device for data-smuggling
CN101315674B (zh) * 2007-05-31 2010-11-03 深圳市江波龙电子有限公司 保护及访问存储卡发行数据的方法
US20090119782A1 (en) * 2007-11-07 2009-05-07 Sandisk Il Ltd. Method and device for digital rights protection
US8037110B2 (en) * 2007-12-27 2011-10-11 Microsoft Corporation Business data access client for online/offline client use
US8315950B2 (en) * 2007-12-31 2012-11-20 Sandisk Technologies Inc. Powerfully simple digital media player and methods for use therewith
TWI366096B (en) * 2008-01-04 2012-06-11 Fineart Technology Co Ltd Common storage device accessed by personal information and using method thereof
US7899793B2 (en) * 2008-01-09 2011-03-01 Hitachi, Ltd. Management of quality of services in storage systems
US8332951B2 (en) * 2008-02-12 2012-12-11 International Business Machines Corporation Section based security for a sectioned surface-based computing device
JP4346670B1 (ja) 2008-05-20 2009-10-21 株式会社東芝 電子装置およびコンテンツデータ提供方法
US8046550B2 (en) * 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US20100274772A1 (en) * 2009-04-23 2010-10-28 Allen Samuels Compressed data objects referenced via address references and compression references
US8090690B2 (en) * 2009-05-27 2012-01-03 MiMedia LLC Systems and methods for data upload and download
US7984122B2 (en) * 2009-06-04 2011-07-19 Microsoft Corporation Dedicated processor core request
US9092597B2 (en) 2009-12-09 2015-07-28 Sandisk Technologies Inc. Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area
US8301715B2 (en) * 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
US8301694B2 (en) * 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device

Also Published As

Publication number Publication date
US20110138487A1 (en) 2011-06-09
WO2011071678A1 (en) 2011-06-16
CN102656550B (zh) 2015-04-08
US9092597B2 (en) 2015-07-28
JP2013513863A (ja) 2013-04-22
TW201131467A (en) 2011-09-16
CN102656550A (zh) 2012-09-05
EP2510430B1 (en) 2018-05-23
JP5579274B2 (ja) 2014-08-27
EP2510430A1 (en) 2012-10-17

Similar Documents

Publication Publication Date Title
US9092597B2 (en) Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area
US8301694B2 (en) Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
EP2572309B1 (en) Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
TW201025001A (en) Managing access to an address range in a storage device
US20100017446A1 (en) File system configuration method and apparatus for data security and for accessing same, and storage device accessed by same
JP5639628B2 (ja) ポータブルメモリデバイスを使用して保護されたメディアを配信する方法
KR20090095909A (ko) 데이터 저장 장치 및 그것의 데이터 관리 방법
US20080276065A1 (en) Method of partitioning storage area of recording medium and recording medium using the method, and method of accessing recording medium and recording device using the method
MX2013008788A (es) Sesion de navegacion privada recuperable.
KR20100031497A (ko) 메모리로부터 헤더 데이터를 저장 및 액세싱하는 방법
KR101468258B1 (ko) 불법 복제를 차단할 수 있는 포터블 데이터 저장장치
US20080229015A1 (en) Portable memory apparatus having a content protection function and method of manufacturing the same
US9075999B2 (en) Memory device and method for adaptive protection of content
CN103617127B (zh) 带分区的存储装置及存储器分区的方法
US10331365B2 (en) Accessing a serial number of a removable non-volatile memory device
KR20090049888A (ko) 이동형 데이터 저장 장치의 로우 영역을 이용하여 보안기능을 구현한 데이터 처리 방법 및 이를 구현하기 위한장치
US9152636B2 (en) Content protection system in storage media and method of the same
JP2010041393A (ja) 複合記憶媒体モジュール、端末装置、記憶再生システム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid