CN102906754B - 通过绕过主机设备中的高速缓存访问存储设备中的虚拟文件的主机设备和方法 - Google Patents
通过绕过主机设备中的高速缓存访问存储设备中的虚拟文件的主机设备和方法 Download PDFInfo
- Publication number
- CN102906754B CN102906754B CN201180025023.2A CN201180025023A CN102906754B CN 102906754 B CN102906754 B CN 102906754B CN 201180025023 A CN201180025023 A CN 201180025023A CN 102906754 B CN102906754 B CN 102906754B
- Authority
- CN
- China
- Prior art keywords
- memory device
- virtual file
- host application
- server
- content
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
提供了主机设备,包括:接口,配置为与具有公共存储器区域和私有存储器区域的存储设备通信,其中该公共存储器区域存储与在该私有存储器区域中存储的内容相关联的虚拟文件。该主机设备还包括高速缓存、主机应用和服务器。该服务器配置为:接收来自主机应用的对于该虚拟文件的请求,向存储设备发送对于该虚拟文件的请求,接收来自该存储设备的私有存储器区域的与该虚拟文件相关联的内容,其中通过绕过该高速缓存接收该内容,产生对于来自主机应用的请求的响应,该响应包括该内容,以及将该响应发送到该主机应用。在一个实施例中,该服务器是超文本传输协议(HTTP)服务器。在另一实施例中,服务器可以确定请求与普通用户权限还是超级用户权限相关联,并且仅在确定该请求与普通用户权限相关联时向主机应用发送响应。
Description
相关申请的交叉引用
本申请是2010年6月9日提交的美国专利申请No.12/797,513的部分继续申请,该美国专利申请No.12/797,513要求2010年5月20日提交的美国临时申请No.61/346,796的权益,这些申请的每个通过引用并入于此。
背景技术
诸如存储卡的存储设备通常用于存储诸如数字音频(例如音乐)和/或视频(例如电影)文件的内容。为了保护内容防止未授权的访问,内容可以存储在存储设备中的私有存储器区域中,该区域仅可由被验证的主机访问。通常,主机将其证书交给存储设备用于验证。如果主机被验证,则存储设备允许主机访问在私有存储器区域中存储的内容。尽管此安全***阻止未授权的主机访问在私有存储器区域中存储的内容,但是如果验证的主机上具有病毒或者其他恶意软件,则可能发生问题。在此情况下,一旦验证的主机被允许访问私有存储器区域,主机上的恶意软件可能利用该访问来对该私有存储器区域中存储的数据进行未授权的动作。
发明内容
本发明的实施例由权利要求限定,并且此部分中的任何内容不应被当作是对那些权利要求的限制。
通过例子,以下描述的实施例总体涉及用于通过绕过主机设备中的高速缓存访问存储设备中的虚拟文件的主机设备和方法。在一个实施例中,提供了主机设备,包括:接口,配置为与具有公共存储器区域和私有存储器区域的存储设备通信,其中该公共存储器区域存储与在该私有存储器区域中存储的内容相关联的虚拟文件。该主机设备还包括高速缓存、主机应用和服务器。该服务器配置为:接收来自主机应用的对于虚拟文件的请求,向存储设备发送对于该虚拟文件的请求,接收来自该存储设备的私有存储器区域的与该虚拟文件相关联的内容,其中通过绕过该高速缓存接收该内容,产生对于来自主机应用的请求的响应,该响应包括该内容,以及将该响应发送到该主机应用。在一个实施例中,该服务器是超文本传输协议(HTTP)服务器。在另一实施例中,服务器可以确定请求与普通用户权限还是超级用户权限相关联,并且仅在确定该请求与普通用户权限相关联时才向主机有用发送响应。
提供了其他实施例,并且每个实施例可以单独使用或者组合在一起使用。现在将参考附图描述各个实施例。
附图说明
图1是实施例的主机和存储设备的框图。
图2是实施例的主机和存储设备的框图。
图3A是实施例的主机的框图。
图3B是实施例的存储设备的框图。
图4是例示主机的高速缓存可能发生的问题的实施例的主机和存储设备的框图。
图5是其中通过绕过主机中的高速缓存访问存储设备中的虚拟文件的实施例的主机和存储设备的框图。
具体实施方式
介绍
以下实施例总体涉及提供对存储设备中的私有存储器区域中的多个受保护文件的访问的存储设备的公共存储器区域中的虚拟文件,更具体地,涉及用于通过绕过主机设备中的高速缓存访问虚拟文件的主机设备和方法。通常,存储设备的公共存储器区域中存储的虚拟文件担当存储设备的私有存储器区域中的多个受保护文件的网关。当存储设备检测到主机设备正尝试访问该虚拟文件时,该存储器键确定该多个受保护文件中的哪个(如果有的话)应该被提供给主机设备。以此方式,读取相同虚拟文件的随后的尝试可能导致不同内容被返回到主机设备。但是,当主机设备使用高速缓存通过存储先前检索的数据来改进性能时,可能发生问题。具体地,当针对虚拟文件做出随后的请求时,主机设备将简单地访问其高速缓存而不是访问存储设备,因为主机设备认为虚拟文件是静态文件。因此,如果虚拟文件曾被用于访问在存储设备的私有存储器区域中存储的多首歌曲,则在每次虚拟文件被读取时主机设备将播放相同的歌曲,而不是如期望地播放不同歌曲。
在转向解决此问题的实施例之前,提供对于示例的虚拟文件实施例和示例的存储设备的一般讨论。
示例的虚拟文件实施例
现在转向附图,图1是与实施例的存储设备100通信的主机(“或主机设备”)50的框图。如在此使用的,短语“与……通信”意味着直接与之通信或者经过可能或者可能没有在此示出或描述的一个或多个组件间接与之通信。主机50可以采取任何适当的形式,比如但不限于专用内容播放器、移动电话、个人计算机(PC)、游戏设备、个人数字助理(PDA)、信息站和TV***。存储设备100也可以采取任何适当的形式,比如但不限于手持、可移除存储卡(例如闪存卡)、通用串行总线(USB)设备和固态驱动器。优选地,存储设备100可移除地连接到主机50,从而用户可以与各种主机一起使用存储设备100。
如图1所示,存储设备100包括控制器110和存储器120。控制器110可以按任何适当的方式实现。例如,控制器110可以采取例如微处理器或者处理器以及存储可由(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ASIC)、可编辑逻辑控制器以及嵌入式微控制器的形式。控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC 18F26K20以及SiliconsLabs C8051F320。可以在控制器中使用的各种组件的例子在以下所述的实施例中描述并在相关附图中示出。控制器110也可以实现为存储器控制逻辑的部分。
同样如图1所示,存储设备100包括可以采取任何适当的形式的存储器120。在一个实施例中,存储器120采取固态(例如快闪)存储器的形式并且可以是一次可编程、几次可编程或者多次可编程的。但是,可以使用其他形式的存储器,比如光存储器或者磁存储器。尽管在图1中示出为单个组件,但是控制器110和/或存储器120可以以几个组件来实现。在图1中,存储器120包括公共存储器区域130和私有存储器区域140。在此实施例中,公共和私有存储器区域130、140是单个存储器设备的不同分区;但是,在其他实施例中,公共和私有存储器区域130、140是不同的存储器设备。公共存储器区域130通常可无限制地访问,而私有存储器区域140仅可由被授权的实体访问并且通常对主机不可见(例如隐藏的分区)。这样,私有存储器区域140可以用于存储应该仅由被授权实体访问的多个内容文件(在此为文件1-N)。“内容文件”可以采取任何适当的形式,比如但不限于(具有或者不具有随附的音频的)数字视频(例如电影、一集电视剧、新闻节目等)、音频(例如歌曲、播客、一个或一系列声音、音频书等等)、静止或运动图像(例如照片、计算机产生的显示等等)、(具有或者不具有图形的)文本(例如文章、文本文件等等)、视频游戏或者其他软件以及这些形式中的两种或多种的混合多媒体呈现。措辞“内容”、“内容文件”和“文件”在此可互换使用,并且在私有存储器区域140中存储的文件将被称为“受保护文件”。
在此实施例中,公共存储器区域130包含虚拟文件150。虚拟文件150在其作为在公共存储器区域130的文件分配表(FAT)中的被分配的逻辑块地址是存在的但是不包含任何数据并且实际上不可访问的意义上来说是“虚拟的”。对于该虚拟文件150,可能甚至没有在公共存储器区域130中分配的任何物理存储位置(尽管如下所述在一些实施例中,在公共存储器区域130中可以分配相对少量的物理存储位置(例如15MB)用于虚拟文件150)。但是,因为虚拟文件150具有分配给其的在公共存储器区域130中的FAT表的逻辑块地址,虚拟文件150对于主机50而言将看起来是常规文件。
在此实施例中,虚拟文件150用作到私有存储器区域140中的多个受保护文件1-N的网关。即,当控制器110(例如根据在读命令中指定的逻辑块地址)识别出正尝试访问虚拟文件150时,控制器110将采取特别动作而不是为主机50提供对虚拟文件150本身的访问。例如,当控制器110接收到来自主机50的访问虚拟文件150的请求时,控制器110可以选择在私有存储器区域140中存储的多个受保护文件1-N中的一个,并且通过为主机50提供对所选受保护文件的访问来响应该请求。当稍后访问相同的虚拟文件150时,控制器110可以选择多个受保护文件1-N中的不同的一个并提供对该文件的访问。例如,如果虚拟文件150被命名为“audio.MP3”并且与在私有存储器区域140中存储的20首歌曲的播放列表相关联,则每次主机50请求访问“audio.MP3”时,控制器110可以选择播放列表上的另一首歌曲并提供对该歌曲的访问。
可以使用任何适当的实现方式以允许控制器110处理对于虚拟文件150的主机请求。例如,在图2所示的一个实施例中,应用(或者caplet160)存储确定控制器110管理私有存储器区域140中的受保护内容的方式(例如访问哪些要保护文件以及何时访问)的规则集。在此实施例中,caplet160被存储在私有存储器区域140中以防止黑客篡改规则集。控制器110使用caplet160中的规则集来确定如何对来自主机50的访问虚拟文件150的请求做出反应。私有存储器区域140还存储数据库170,该数据库170将多个受保护文件1-N与虚拟文件150相关联。以此方式,数据库170充当多个受保护文件1-N的播放列表。在一个实施例中,数据库170与多个受保护文件1-N一起被预加载到存储设备100中。如果数据库170被加密,则caplet160可以持有用于解密数据库170的密钥。
在操作时,当存储设备100通电时,caplet 160根据预加载的数据库170编程控制器110以控制主机50做出的对虚拟文件150的访问尝试。例如,响应于访问虚拟文件150的请求,控制器110可以基于数据库170选择多个受保护文件1-N之一并提供对该文件的访问。作为另一例子,控制器110可以确定主机50是被授权的还是未被授权的,并可以据此提供对不同类型的内容的访问,如果存储设备100是可以与可能被授权或者可能未被授权的各种主机一起使用的可携式存储卡,则这可能是期望的。因此,如果主机50是被授权的播放器,则控制器110可以通过提供对受保护内容的访问来响应来自主机50的访问虚拟文件150的请求。否则,控制器110可以通过提供对替换的文件的访问来响应该主机请求。以此方式,规则集可以规定:如果主机50上的应用被授权,控制器110应该提供对受保护文件(例如电影)的访问;否则,控制器110可以提供对替换的文件(例如电影的宣传片)的访问,该替换文件可能存储在公共或私有存储器区域130、140中。以此方式,访问虚拟文件150的类似的主机请求可以由控制器110基于主机50是被授权的还是未被授权的实体而不同地处理(例如,如果用户还未登录或者还未被存储设备100验证,则存储设备100可以返回专门的广告)。当然,这仅仅是一个例子,并且可以使用其他类型的规则和条件。例如,文件的选择可以基于时间、关于用户的信息、主机是否以及如何登录到存储设备50或者任何其他适当的条件。如从这些例子可见,在不同的情况下可以不同地对待虚拟文件150,并且在公共存储器区域130中的单个虚拟文件150可以用于提供对在私有存储器区域140中的一个或多个受保护文件的访问。
现在回到图2,在此实施例中,主机50运行主机应用60和媒体播放器(在此为Java播放器70)。主机应用60控制Java播放器70并且还向存储设备100的控制器110发送另外的指令,这将在以下描述。如上所述,在此实施例中,虚拟文件150(例如名称为“audio.MP3”)与在私有存储器区域140中存储的多个受保护文件1-N相关联。每次主机50请求访问“audio.MP3”时,控制器110可以选择该多个受保护文件1-N中不同的一个并提供对该文件的访问。在此实施例中,虚拟文件150的大小至少与私有存储器区域140中的最大受保护文件的大小一样大。如果所选的受保护内容小于虚拟文件150的大小,则控制器110可以用有效数据填充该内容,以便主机50中的Java播放器70不出故障。例如,如果受保护文件是音频文件,则控制器110可以实时地(on the fly)用有效数据填充该音频文件,比如用无声的MP3帧或者期望的头部信息填充。这样做以便能够支持不同主机的预高速缓存(cache-ahead)机制。为了防止控制器110播放填充的数据,控制器110可以通知主机50文件的实际播放长度,并且主机50可以在其到达填充的数据之前停止文件的回放。
考虑其中Java播放器70使用JSR-135协议向存储设备110发送请求以读取虚拟文件150的例子,其中Java播放器70认为该虚拟文件150是音频文件。存储设备100中的控制器110(例如根据在该请求中指定的逻辑块地址)检测到正尝试访问虚拟文件150,并且基于caplet 160中的规则,控制器110为Java播放器70选择歌曲A并提供对歌曲A的访问。控制器100还通知主机应用60歌曲A的实际大小,这可能小于虚拟文件150的大小,如上所述。主机应用60监视回放,并且当歌曲A完成时,主机应用60经由JSR-75协议向控制器110发送命令以停止流式传输数据并跳跃到下一歌曲。(JSR-135协议不支持此类型的命令。)响应于此命令,控制器110更新数据库170以指向下一歌曲(歌曲B)。主机应用60指示Java播放器70再次请求访问虚拟文件150。但是这次,控制器110为Java播放器70选择歌曲B(不是歌曲A)并提供对歌曲B的访问。然后在Java播放器70继续请求回放另外的歌曲时重复上述处理。
存在可以与这些实施例一起使用的许多替换。例如,在一个实施例中,存储设备100使用“专用文件***”来回放预加载的受保护文件以最小化存储设备100查找并访问预加载的受保护文件所花费的时间以及最小化其提取关于预加载的受保护文件的细节(例如曲目名称、艺术家名称、专辑名称、曲目持续时间等)花费的时间。以此方式,不考虑在向受保护文件提供网关功能性时所涉及的控制器100***开销,访问虚拟文件150的时间应该大约与访问另一类型的文件的时间相同。为了实施此专用文件***,受保护文件可以按连续的逻辑块地址(LBA)的顺序预加载到私有存储器区域140中。然后在产生期间可以建立表,以指定每个受保护文件的确切的开始LBA以及任何其它相关数据,比如文件持续时间。因为读取这样的表比打开文件来收集需要的信息更快,所以使用此专用文件***提供了更快的响应时间。
如根据以上描述可以理解,“专用文件***”可以用于减少定位和访问不同的预加载内容所需的时间量。这可以通过定义用于以特定方式仅保存回放所需的数据的专用结构(例如表)来进行。根据具体产品要求(例如曲目名称、艺术家名称、专辑名称、曲目持续时间等),该数据可以在不同的产品之间改变。该数据结构可以按连续的LBA顺序被预加载到存储设备100中的安全位置,用表保存位于每个文件的确切开始LBA的数据以及之前指定的其他数据。表中的每个条目可以表示可以使用表中的条目密钥来标识的具体文件。在请求访问具体文件时,在表中定位文件,并且检索相关数据。例如,使用虚拟文件50从头播放歌曲可能要求知道文件的开始LBA、其实际持续时间以及要显示的专辑名称。按这种处理文件的方式,与处理FAT表和解析文件内容所需的时间相比,定位和回放文件所需的时间量显著降低。
作为用于提供更快响应时间的另一替换,存储设备100可以支持“复合命令”的使用。复合命令是并入了比如例如改变虚拟文件状态和正播放的歌曲两者的、控制回放***的不同方面的两个或更多命令的单个命令。在其中期望快速的响应时间的诸如音频流的环境下可能尤其希望使用复合命令。例如,复合命令可以指定“跳过频道”和“向前跳过两首歌曲”或者“跳过歌曲并进入暂停”。在许多情况下,可能需要同时发生几种模式改变。例如,“播放歌曲、进入暂停模式、然后跳到下一首歌曲”的序列可能要求在跳跃发生之后立即开始下一歌曲。在此情况下,可以需要通过总线按顺序发送两个命令以使此改变发生。在另一例子中,可能需要同时控制***的不同方面,比如改变虚拟文件状态和正播放的歌曲两者。再次,思想是减少处理存储设备100上的状态改变所需的时间量以及减少将命令从主机50传输到存储设备100以及传输回所需的时间量。
在另一替换中,代替在公共存储器区域130中分配实际存储器用于虚拟文件150,可以通过使公共存储器区域130向主机50模拟其自身作为扩展的存储区域来减小存储器消耗,从而由控制器110处理对于扩展的(模拟的)存储区域的主机请求,就像这是对于存储设备的私有存储器区域140的主机请求那样。从而,虚拟文件150不消耗公共存储器区域130中的实际存储器。这允许存储大的文件(例如电影)而不消耗有用的存储器。例如考虑其中虚拟文件150是15MB并且公共存储器区域130是30MB的情况。使用上述技术,存储设备100可以将其自身标识为具有45MB公共存储器区域130,其中30MB被映射到物理地址,15MB不映射。
尽管以上讨论的例子涉及从存储设备读出受保护文件,但是在替换实施例中,虚拟文件150用于在私有存储器区域140中添加新内容(如果主机50被授权这样做的话)。例如,当用户购买歌曲时,主机应用70可以控制私有存储器区域140以在其空闲空间中添加新的内容,然后使用虚拟文件150将新的歌曲数据写到私有存储器区域140。在另一例子中,存储的广告可以更新为新的广告。这可以通过将虚拟文件150链接到此私有文件然后通过向虚拟文件150写入而改变其内容来实现。存储设备100可以截取写命令并将写操作导引到私有存储器区域140上的正确地点。这使能够更新私有存储器区域140以按照安全的方式保存更新的内容和购买的内容。
另外的替换涉及复制保护机制。因为虚拟文件150可在公共存储器区域130中访问,因此可以通过来自任意主机的简单复制命令容易地复制虚拟文件150。以下替换可以用于阻止虚拟文件150的复制,由此确保对私有存储器区域140中存储的受保护内容的访问仅被给予允许访问内容的被验证的实体。否则,主机50可以简单地将虚拟文件150复制到公共存储器区域130中的另一地址范围并自由地访问受保护的内容。
一个示例的复制保护机制使用加密方案来加密通过虚拟文件150的读取操作从存储设备100发送出的受保护内容。这可以通过使用每次在主机应用60和存储设备100之间应用验证处理时(例如在登录期间)更新的会话密钥来进行。此会话密钥对于主机50和存储设备100两者是已知的,因此存储设备100可以使用该会话密钥来加密受保护内容,并且主机50可以使用该会话密钥来解密受保护内容。以此方式使用会话密钥建立了在存储设备100和主机应用60之间的安全通道。
另一示例的复制保护机制使用存储设备100中的计数器来对已被主机50读取的扇区计数。当计数器达到零时,存储设备100可以开始发送无声音频的缓冲区。主机50在正确的验证之后可以指示存储设备100在经过回放时间之后增大计数器。设置计数器的此操作可以在文件的读取期间(例如在歌曲的回放期间)进行。在进行复制文件的尝试的情况下,存储设备100可以检测该尝试并开始向主机50返回无效数据。这防止歌曲的复制,因为黑客只能检索一定量的歌曲(例如一个5MB的歌曲的1MB的音频)而不用增加计数器。
在另一示例的复制保护机制中,由存储设备100在检查了从主机50到虚拟文件150的读取操作的样式之后实施数据速率控制(“DRC”)。如果这些读取操作未如期望地发生(例如由于快速和急速的文件访问,存储设备100检测到虚拟文件150的复制正在发生),则存储设备100可以返回无效数据或者使读取处理失败。以此方式,存储设备100对从存储设备100读取的受保护文件实施数据速率控制。主机50在具有对存储设备100的正确验证之后可能能够配置存储设备DRC机制以符合当前主机50的具体特征。
也可以使用“滑动窗”作为示例的复制保护机制。利用此机制,存储设备100允许主机50仅在特定的LBA范围内读取实际数据。访问在此LBA范围以外的数据返回无声音频的缓冲区。在正确的验证之后,主机50可以重新配置允许的范围。因为允许的范围移动,所以在此称为“滑动窗”。以上讨论的计数器的概念可以用作滑动窗(例如当前从1复制到500),或者可以允许仅从在虚拟文件150内的特定位置回放数据。
在另一实施例中,虚拟文件150可以用于从本地媒体播放器回放。这可以通过对于每个内容播放列表使用相对大的虚拟文件来进行。此虚拟文件可以实时地一首接一首歌曲地连接。存储设备100还可以为要在主机本地播放器中显示的内容的每个通道提供ID3标签。以此方式,存储设备100可以在可获得的每个主机(例如手持机)或者操作***上使用。可以通过允许存储设备拥有感测要跳过歌曲的尝试的方式(例如通过检测用户何时试图快进/倒退/拖动进度条)来改进此方案。
示例的存储设备
如上所述,这些实施例的存储设备可以按任何适当的方式实现。以下段落和参考的附图描述了一个示例的实现方式。应该理解,此实现方式仅仅是例子并且在此示出和描述的细节不应被理解到权利要求中,除非其中明确列出。
返回附图,图3A和3B是一个实施例的存储设备300和主机350的框图。首先从图3B开始,存储设备300包括控制器310和存储器320。控制器310包括:存储器接口311,用于与存储器320相连接;以及主机接口312,用于与主机350相连接。控制器310还包括中央处理单元(CPU)313、可操作以提供加密和/或解密操作的密码引擎314、读访问存储器(RAM)315、存储用于存储设备300的基本操作的固件(逻辑)的只读存储器(ROM)316以及存储用于加密/解密操作的设备专用密钥的非易失性存储器(NVM)317。应该注意,存储设备专用密钥可以存储在存储设备内的其他存储器区域中。图3B中所示的组件可以按任何适当的方式实现。
在此实施例中,存储器320包括由主机350上的文件***管理的公共分区325以及由控制器310内部地管理的隐藏的受保护***区域335。隐藏的受保护***区域335存储内容加密密钥(CEK)340、内容、数据库和caplet 342,如上所述。隐藏的受保护***区域335是“隐藏的”,因为其由控制器310(而不是由主机控制器360)内部地管理,并且是“被保护的”,因为在该区域335中存储的对象用在控制器310的非易失性存储器317中存储的唯一密钥加密。(存储设备硬件唯一密钥可以存储在控制器310的非易失性存储器317中或者存储设备300内的其他区域中。)因而,为了访问在该区域335中存储的对象,控制器310将使用密码引擎314和在非易失性存储器317中存储的密钥来解密被加密的对象。优选地,存储设备300采取来自在SanDisk公司的TrustedFlashTM平台上建立的产品系列的安全产品。公共分区325包含虚拟文件330。
现在转向图3A中的主机350,主机350包括控制器360,该控制器360具有用于与存储设备300相连接的存储设备接口361。控制器360还包括中央处理单元(CPU)363、可操作以提供加密和/或解密操作的密码引擎364、读访问存储器(RAM)365以及只读存储器(ROM)366。应该注意,框360中的每个组件可以实现为整个主机***中的分离的芯片。主机350还包括应用370,该应用370包括内容引擎371、文件***API 372、内容解码器API 373和主机证书374。
存储设备300和主机350经由存储设备接口361和主机接口312彼此通信。对于涉及数据的安全传送的操作,优选的,存储设备300和主机350中的密码引擎314、364用于彼此相互验证并提供密钥交换。相互验证处理要求主机350和存储设备300交换唯一证书ID。在相互验证完成之后,优选的,安全密钥用于建立安全通道,用于在存储设备350和主机300之间通信。
与绕过主机设备的高速缓存有关的实施例
回到附图,图4是实施例的主机设备400和存储设备410的框图。主机设备400包括配置为与存储设备410通信的接口420、主机应用430(例如媒体播放器)和高速缓存440。存储设备410(例如SD卡)包括接口(未示出)、存储内容的私有存储器区域450、存储与在私有存储器区域450中存储的内容有关的虚拟文件470的公共存储器区域460以及caplet 480。如上所述,公共存储器区域460中的虚拟文件470提供对存储在私有存储器阵列450上的安全内容的访问,caplet 480实施用于访问安全数据并将其流式传输到主机设备400的预定规则集。
但是,当主机应用430在从存储设备410读取文件时使用高速缓存440试图改进性能时,会发生问题。具体地,例如,如果主机应用430先前读取了虚拟文件470,检索的内容将被存储在主机设备的高速缓存440中。当主机应用430尝试再次读取虚拟文件470时,取代访问存储设备410上的虚拟文件470,主机应用430将简单地方问在高速缓存440中存储的数据,因为主机应用430认为该数据是静态的。但是,因为随后的读取虚拟文件470的尝试应该很可能导致从存储设备410读出不同的内容,因此在此情况下高速缓存440的使用将很可能导致无效或者不正确的数据被返回到主机应用430。例如,如果虚拟文件470被用于访问在私有存储器区域450中存储的多首歌曲,则主机应用430将在每次虚拟文件被读取时播放相同的歌曲,而不是如期望地播放不同的歌曲。
图5中所示的主机设备500可以用于通过防止文件被主机设备500高速缓存、由此确保从虚拟文件读取的数据有效来克服此问题。像图4中的主机设备400那样,图5中的主机设备500也包括接口520、主机应用530和高速缓存540。同样,此实施例中的存储设备510包括存储内容的私有存储器区域550、存储与在私有存储器区域550中存储的内容相关联的虚拟文件570的公共存储器区域560以及caplet 580。但是,在此实施例中,主机设备500还包括服务器590。尽管可以使用任意类型的服务器,但是在此实施例中,服务器590采取超文本传输协议(HTTP)服务器的形式。在此实施例中,与主机应用530集成并且在主机设备500上执行的服务器590负责管理在存储设备500上存储的虚拟文件。在此实施例中,服务器590作为主机应用530的构成部分作为线程在主机设备500上运行,并且当主机应用530关闭时终止。
通常,服务器590从主机应用530接收对于虚拟文件570的请求,向存储设备510发送对于虚拟文件570的请求,从存储设备510的私有存储器区域550接收与虚拟文件570相关联的内容,产生包括该内容的对于来自主机应用530的该请求的响应,并将该响应发送到主机应用530,同时绕过高速缓存540。因为此服务器-客户端交互绕过了高速缓存540,所以此实施例避免了从高速缓存540读取不正确的内容的情况。
在使用HTTP服务器590的一个具体实现方式中,对于在存储设备510的私有存储器区域560中存储的每个虚拟文件,HTTP服务器590主管具体URL(例如:http:∥localhost:8000/vfile.mp3)。URL中的文件路径是纯符号的,并且服务器590保存了从URL指定的文件到位于存储设备510的公共存储器区域560上的具体虚拟文件的映射。因而,当HTTP服务器590从主机应用530接收到虚拟文件的URL时,其将接收的URL翻译为存储设备510的公共存储器区域560中的虚拟文件570的地址。对服务器上的远程文件的访问(“HTTP Get”请求)等效于对于存储设备510上的虚拟文件570的读取请求。
因为主机设备500知道所请求的远程文件远程地存储在HTTP服务器590上并且不是在主机设备500本地,因此主机设备500不高速缓存该文件的数据。因而,对于该文件的每个访问需要通过发送“HTTP Get”请求并解析HTTP响应来从HTTP服务器590读取该文件的数据。这确保必须访问存储设备510以便读取与虚拟文件570相关联的数据。以下是一个示例流程,尽管可以使用任何适当的处理流程。首先,主机应用530开始,专用线程打开,其充当HTTP服务器590。HTTP服务器线程创建服务器套接字(socket)并等待到来的HTTP请求。当主机应用530试图读取虚拟文件570的内容时,其向HTTP服务器590发送“HTTP Get”请求,指定虚拟文件570的URL。该“HTTP Get”请求被HTTP服务器590接收。可选地,HTTP服务器590可以通过检查其处理标识符或者用户标识符或者一些其他类型的标识符来证实发送该请求的处理。例如,HTTP服务器590可以存储具有读取虚拟文件570的内容的访问权限的处理标识符或者用户标识符的表或者树。如果处理或者用户标识符不具有读取虚拟文件570的内容的访问权限(例如因为处理或者用户标识符未在该表或树中列出),则HTTP服务器590可以返回错误响应。但是,如果该处理或者用户标识符被列在该表或树中,则存在读取该虚拟文件的内容的访问权限,并且HTTP 590然后登录到存储设备510上的专用访问控制记录(在此为caplet 580)以便打开虚拟文件570用于读取。(在一个优选实施例中,访问控制记录是在来自SanDisk公司的TrustedFlashTM存储设备中使用的类型的,尽管可以使用其他类型的访问控制记录。)优选地,必须登录到访问控制记录以便接收虚拟文件570的真实内容。在读取虚拟文件570的内容时未登录到访问控制记录的情况下,优选地返回无效数据。
为了登录到访问控制记录,主机设备500向存储设备510验证。在一个实施例中,验证处理包括三个阶段:公共密钥检验阶段、私有密钥检验阶段和会话密钥协定阶段。在公共密钥检验阶段,主机设备500向存储设备510发送其证书串(chain),以便存储设备510可以使用位于根证书(rootcertificate)中的根证书权限公共密钥来检验该证书和公共密钥的真实性。如果公共密钥检验阶段成功,则进行私有密钥检验阶段。在私有密钥检验阶段期间,存储设备510产生随机数并将其作为口令(challenge)发送到主机设备500。主机设备500使用存储设备510的私有密钥标记该存储设备的随机数,并发送标记的随机数作为对该口令的响应。使用存储设备的公共密钥来解密该响应并将其与随机数相比较。如果解密的响应与该随机数匹配,则该口令响应成功。如果进行相互验证,则关于存储设备510发生相同的处理。
如果私有密钥检验阶段成功,则进行会话密钥协定阶段。在该会话密钥协定阶段期间,使用主机设备的公共密钥来加密随机数。然后该随机数作为会话密钥。主机设备500可以通过使用其私有密钥来解密来自存储设备510的加密的数来获得会话密钥。在主机设备500侧发生相同的处理。利用会话密钥,可以发起在主机设备500和存储设备510之间的安全通信。
在主机设备500已经登录到存储设备510上的访问控制记录后,存储设备510可以确定主机设备500是否具有访问来自私有存储器区域550的虚拟文件的真实内容的权限。在一个实施例中,该访问控制记录包含指示哪些权利(例如只读、只写、读写访问等等)被授予成功登录到访问控制记录的实体的权限控制记录。因而,在主机设备500登录到访问控制记录后,存储设备510可以使用权限控制记录来确定主机设备500是否具有访问虚拟文件的真实内容的权限。如果主机设备500具有权限,则真实内容被返回到主机设备500。否则,不返回数据或返回无效数据。
如从以上讨论可见,在虚拟文件的真实内容被返回到主机应用530之前,可以进行两个“权限检查”。首先,HTTP服务器590可以通过检验主机应用530的处理或用户标识符来确定主机应用530是否具有读取虚拟文件570的内容的权限。其次,在主机设备500已经登录到存储设备510上的访问控制记录之后,存储设备510可以确定该访问控制记录的权限控制记录是否指示主机设备500具有访问虚拟文件570的内容的权限。尽管为了安全性原因可以优选这些权限检查之一或两者,但是应该注意,这些权限检查的使用是可选的。
为了绕过主机设备的高速缓存540,HTTP服务器590可以向主机设备的操作***发送绕过高速缓存540的指令。在一个实施例中,此指令包括O_DIRECT标志,该标志是指示从文件的每个读操作将绕过主机设备的高速缓存540并将被转向存储设备510的特殊标志。由于此指令,当主机设备500接收到来自存储设备510的对HTTP服务器的对于与该虚拟文件相关联的内容的请求的响应时,操作***将从存储设备向HTTP服务器590发送该响应而不将其存储在高速缓存540中。在HTTP服务器590通过使用O_DIRECT标志打开该虚拟文件570并读取虚拟文件570的内容时,HTTP服务器590产生HTTP响应,其包括与虚拟文件570相关联的来自私有存储器区域550的数据。然后,主机应用530接收来自HTTP服务器590的响应并解析虚拟文件570的数据。通过此方法,从虚拟文件570读取的数据将是存储在存储设备510上的文件的实际数据而不是存储在高速缓存540中的可能不正确的数据。这提供了用于绕过主机高速缓存机制并从虚拟文件570读取数据同时仍监视对文件570的访问的简单和容易的机制。
存在可以与这些实施例一起使用的几个替换。例如,代替使用服务器和命令来绕过主机设备的高速缓存,主机可以被编程为当进行读取虚拟文件的尝试时读取大量(即比高速缓存中存储的数据量多)数据。因为读取请求是对于比高速缓存中存储的要多的数据,所以这样的读取请求有效的使主机高速缓存无效并迫使主机直接从存储设备获取虚拟文件的数据。作为另一替换,以上实施例可以被修改为直接与现有命令(比如与TrustedFlashTM存储设备一起使用的命令)一起工作,从而可以避免虚拟文件的使用。在此替换中,HTTP服务器可以通过创建与存储设备的安全会话、创建到隐藏分区的流、使用读取流操作从存储设备的私有存储器区域提取加密的内容并解密该加密的内容,从存储设备的私有存储器区域取得安全的内容。
尽管上述实施例中的一些用在主机设备的服务器中来绕过主机设备的高速缓存,但是应该注意,更一般地,主机设备中的服务器可以用于绕过回放对操作***上的具体文件***调用序列的依赖性,这些操作***不允许用户应用将其自己的输入包括到回放引擎中。具体地,服务器可以将从主机应用接收的任意统一资源标识符(URI)分析(resolve)为否则对主机应用不可用的内容。然后服务器可以将从存储设备接收的内容流式传输到主机应用的回放引擎,该引擎可以可操作以仅进行网络流式传输和直接文件访问。(数据可以被编码(例如加密),在此情况下服务器可以在流式处理期间转换(例如解密)该数据。)在操作中,服务器(例如HTTP服务器)接收主机应用不可直接访问的数据的位置(例如URI),然后将该位置翻译为翻译后的位置。然后服务器使用翻译后的地址从存储设备(例如从存储设备中的私有分区)检索数据,然后将该数据提供给主机应用。
另外,尽管不是穷尽的列表,但是以下特征可以在以上实施例的任意一个中的服务器中实现:
1.端口随机化。例如,服务器监听的端口可以是随机的并且在每次流改变时而改变。
2.调用处理或者用户标识符检查。可以检查套接字连接处理标识符(PID)以确保其(a)来自媒体服务器处理并且(b)具有不能来自可安装的应用的用户标识符(UID)。
3.缓冲器处理匹配。在回放期间,可以针对从HTTP服务器做出的请求来匹配缓冲器,其中如果缓冲器已满则不对该请求进行服务。
4.统一资源标识符(URI)随机化。在请求中发送到服务器的实际URI在不同的时间可以不同。在一个实施例中,仅播放器应用(或者服务器的调用者)以及实际的回放引擎具有URI的知识,并且任何其他URI被认为是攻击尝试。而且,可以使用伪随机一次性口令(OTP)算法来得出URI,并且用错误URI做出的请求会留下开放套接字。另外,URI可以包括在服务器和调用应用之间使用询问/响应算法协商的令牌。
关于URI随机化,当受保护媒体内容要从HTTP服务器流式传输时,主机应用可以使用URI来标识到感兴趣的内容的路径并将该URI传递到基础媒体播放器子***。如上所述,标识了服务器路径和感兴趣的媒体文件的URI可以是随机化的和临时的。优选地,URI的随机化是唯一的;理想地,在相同的主机(例如手持机)内从不产生两次。还优选地,URI是临时的并且在发出的某个时间帧(例如30秒)内过期。一旦URI已经被有效播放器访问,优选的HTTP服务器就不应接受对该URI的任何其他访问。
示例的URI格式可以如下:视频/杂乱信息(hash)/时间戳/媒体文件名,其中(i)“视频”是指示对视频内容的访问的常量串,(ii)“杂乱信息”是杂乱信息,比如例如MD5.hash(令牌+媒体文件名+时间戳),其中令牌是存储设备上的每个媒体文件唯一的,(iii)“时间戳”是作为十六进制串给出的时间戳(例如自从1970年1月1日起的秒数,以十六进制计数法的00:00:00),并且(iv)“媒体文件名”是内容文件(例如视频文件)的名称。优选地,随机化的临时URI从服务器经由本地应用接口(API)而传递。
在另一替换中,主机中的服务器(例如HTTP服务器)可以被配置为(例如响应于“HTTP Get”请求)转换(例如解码或解密)从存储设备(例如从存储设备的公共分区)检索的编码的(例如加密的)文件并将转换的数据返回到主机应用。这使得主机应用(例如媒体播放器)能够播放在存储设备的公共分区上存储的编码的文件。因而,与读取在存储设备的公共分区中存储的虚拟文件的内容或者发送专门的命令以从存储设备的私有分区提取内容的以上讨论的实施例不同,此替换中的服务器转换在存储设备的公共分区上存储的专有文件。
另一替换涉及改进服务器的安全性特征。在某些操作***中执行命令的权限被划分为两组:普通用户权限和超级用户权限(也称为“管理者(admin)”或者“最高权限(root)”权限)。黑客可能能够修改操作***以允许黑客具有最高权限然后在主机设备中安装修改后的操作***。一旦安装,即使是普通用户也将具有超级用户的权限并且可以使用那些权限来取得对存储在存储设备的私有存储器区域中的数据的未授权访问。为了防止此情况发生,服务器可以被配置为进行“最高权限检查”。具体地,服务器可以被配置为(例如通过确定来自主机应用的请求是否具有使能的“超级用户权限”)确定来自主机应用的请求与普通用户权限还是超级用户权限相关联并进一步被配置为仅在确定该请求与普通用户权限相关联时将响应发送到主机应用。这将防止在主机设备被破解最高权限(rooted)时服务器对主机应用的请求进行响应。如果主机设备未被“破解最高权限”,则服务器可以正常运作并用已解密的内容文件的(例如mp3文件的)数据来响应。
可以使用任何适当的方法来确定该请求与普通用户权限还是超级用户权限相关联。例如,在运行Android操作***的主机设备中,可以通过分析“ro.secure”***属性来进行超级用户特权的确定。如果“ro.secure”***属性被设置为0,则处理可以获得超级用户特权。在基于Linux的操作***中,特殊用户0的指定指示超级用户特权。而且,处理可以使用***函数确定其用户ID。例如,处理可以尝试使用setuid()或者seteuid()函数将其有效用户ID设置为0。如果将其用户ID设置到0成功,则该处理具有超级用户特权。超级用户特权可以被分配给除了不应该具有超级用户特权的调用处理之外的处理。例如,在基于Linux的操作***中,proc文件***(/proc)可能包括关于所有活动的处理的信息,包括其用户ID。这可以针对每个处理与已知并正确的用户账户相比较以便确定调用处理或者任何附属物是否具有超过其应该具有的特权的特权。
结论
意图以上详细描述被理解为对本发明可以采取的所选形式的例示而不是对本发明的限定。意图仅由以下权利要求(包括其等效物)来定义要求保护的发明的范围。最后,应该注意,在此所述的优选实施例的任意一个的任意方面可以单独使用或者彼此结合使用。
Claims (28)
1.一种主机设备,包括:
接口,配置为与具有公共存储器区域和私有存储器区域的存储设备通信,其中该公共存储器区域存储与在该私有存储器区域中存储的内容相关联的虚拟文件;
与主机应用通信的高速缓存;以及
与该主机应用和该接口通信的服务器,其中该服务器配置为:
接收来自主机应用的对于该虚拟文件的请求,
向存储设备发送对于该虚拟文件的请求,
接收来自该存储设备的私有存储器区域的与该虚拟文件相关联的内容,其中通过绕过该高速缓存接收该内容,
产生对于来自主机应用的请求的响应,该响应包括该内容,以及将该响应发送到该主机应用。
2.如权利要求1所述的主机设备,还包括操作***,以及其中该服务器还被配置为当从存储设备接收到针对对于该虚拟文件的请求的响应时,向该操作***发送使得该操作***绕过该高速缓存的指令。
3.如权利要求2所述的主机设备,其中绕过该高速缓存的指令包括O_DIRECT标志。
4.如权利要求1所述的主机设备,其中该服务器包括超文本传输协议HTTP服务器。
5.如权利要求4所述的主机设备,其中由HTTP服务器接收的请求包括HTTP Get请求。
6.如权利要求4所述的主机设备,其中HTTP服务器还被配置为:
从主机应用接收该虚拟文件的统一资源定位符URL;以及
将从主机应用接收的URL翻译为虚拟文件在存储设备的公共存储器区域中的地址。
7.如权利要求1所述的主机设备,其中该服务器还被配置为确定主机应用是否具有访问该内容的权限。
8.如权利要求7所述的主机设备,其中该服务器还被配置为基于从主机应用接收的标识符确定主机应用是否具有权限。
9.如权利要求1所述的主机设备,其中该服务器还被配置为登录到该存储设备上的访问控制记录以便打开该虚拟文件。
10.如权利要求9所述的主机设备,其中该访问控制记录包含权限控制记录,以及其中仅在该权限控制记录指示主机设备具有接收与该虚拟文件相关联的内容的权限时,该服务器接收来自该存储设备的私有存储器区域的与该虚拟文件相关联的内容。
11.如权利要求1所述的主机设备,其中该服务器还被配置为创建与该存储设备的安全会话,创建到该私有存储器区域的流,使用读取流操作来从存储设备的私有存储器区域提取加密的内容,并解密该加密的内容。
12.如权利要求1所述的主机设备,其中该服务器还被配置为:
确定来自主机应用的请求与普通用户权限还是超级用户权限相关联;以及
仅在确定该请求与普通用户权限相关联时将该响应发送到主机应用。
13.如权利要求12所述的主机设备,其中该服务器还被配置为通过分析“ro.secure”***属性来确定来自主机应用的请求与普通用户权限还是超级用户权限相关联。
14.如权利要求12所述的主机设备,其中该服务器还被配置为通过分析用户标识符来确定来自主机应用的请求与普通用户权限还是超级用户权限相关联。
15.一种通过绕过主机设备中的高速缓存来访问存储设备中的虚拟文件的方法,该方法包括:
在主机设备的服务器中进行以下步骤,其中主机设备与具有公共存储器区域和私有存储器区域的存储设备通信,以及其中该公共存储器区域存储与在该私有存储器区域中存储的内容相关联的虚拟文件:
接收来自主机设备中的主机应用的对于该虚拟文件的请求;
将对于该虚拟文件的请求发送到该存储设备;
接收来自该存储设备的私有存储器区域的与该虚拟文件相关联的内容,其中通过绕过主机设备中的高速缓存接收该内容;
产生对于来自主机应用的请求的响应,该响应包括该内容,以及
将该响应发送到主机应用。
16.如权利要求15所述的方法,其中主机设备还包括操作***,以及其中该方法还包括当从存储设备接收到针对对于该虚拟文件的请求的响应时向该操作***发送使得该操作***绕过该高速缓存的指令。
17.如权利要求16所述的方法,其中绕过该高速缓存的指令包括O_DIRECT标志。
18.如权利要求15所述的方法,其中服务器包括超文本传输协议HTTP服务器。
19.如权利要求18所述的方法,其中HTTP服务器接收的请求包括HTTPGet请求。
20.如权利要求18所述的方法,还包括:
从主机应用接收该虚拟文件的统一资源定位符URL;以及
将从主机应用接收的URL翻译为虚拟文件在存储设备的公共存储器区域中的地址。
21.如权利要求15所述的方法,还包括:
确定主机应用是否具有访问该内容的权限。
22.如权利要求21所述的方法,其中服务器基于从主机应用接收的标识符确定主机应用是否具有权限。
23.如权利要求15所述的方法,还包括:
登录到该存储设备上的访问控制记录以便打开该虚拟文件。
24.如权利要求23所述的方法,其中该访问控制记录包含权限控制记录,并且其中仅在权限控制记录指示主机设备具有接收与该虚拟文件相关联的内容的权限时,服务器接收来自该存储设备的私有存储器区域的与该虚拟文件相关联的内容。
25.如权利要求15所述的方法,还包括:
创建与该存储设备的安全会话,
创建到该私有存储器区域的流,
使用读取流操作来从存储设备的私有存储器区域提取加密的内容,以及
解密该加密的内容。
26.如权利要求15所述的方法,还包括:
确定来自主机应用的请求与普通用户权限还是超级用户权限相关联;以及
仅在确定该请求与普通用户权限相关联时将该响应发送到主机应用。
27.如权利要求26所述的方法,其中该服务器还被配置为通过分析“ro.secure”***属性来确定来自主机应用的请求与普通用户权限还是超级用户权限相关联。
28.如权利要求26所述的方法,其中该服务器还被配置为通过分析用户标识符来确定来自主机应用的请求与普通用户权限还是超级用户权限相关联。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34679610P | 2010-05-20 | 2010-05-20 | |
US61/346,796 | 2010-05-20 | ||
US12/797,513 | 2010-06-09 | ||
US12/797,513 US8301694B2 (en) | 2010-05-20 | 2010-06-09 | Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device |
US12/826,626 US8301715B2 (en) | 2010-05-20 | 2010-06-29 | Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device |
US12/826,626 | 2010-06-29 | ||
PCT/US2011/033609 WO2011146202A1 (en) | 2010-05-20 | 2011-04-22 | Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102906754A CN102906754A (zh) | 2013-01-30 |
CN102906754B true CN102906754B (zh) | 2015-07-08 |
Family
ID=44973394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180025023.2A Active CN102906754B (zh) | 2010-05-20 | 2011-04-22 | 通过绕过主机设备中的高速缓存访问存储设备中的虚拟文件的主机设备和方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8301715B2 (zh) |
EP (1) | EP2572309B1 (zh) |
JP (1) | JP2013530454A (zh) |
KR (1) | KR101662363B1 (zh) |
CN (1) | CN102906754B (zh) |
TW (1) | TW201205335A (zh) |
WO (1) | WO2011146202A1 (zh) |
Families Citing this family (25)
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 |
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 |
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 |
EP2591436A4 (en) * | 2010-07-08 | 2014-11-05 | Certicom Corp | SYSTEM AND METHOD FOR REALIZING DEVICE AUTHENTICATION USING KEY ACCREDITATION |
US8868867B2 (en) * | 2011-09-15 | 2014-10-21 | The Regents Of The University Of California | Method for reducing latency of accessing data stored in a file system on a computer storage device by caching file system permission information in the computer storage device |
US9459955B2 (en) * | 2012-05-24 | 2016-10-04 | Sandisk Technologies Llc | System and method to scramble data based on a scramble key |
US20140007197A1 (en) * | 2012-06-29 | 2014-01-02 | Michael John Wray | Delegation within a computing environment |
US20140237263A1 (en) * | 2013-02-19 | 2014-08-21 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device and memory system using the same |
CN103617380B (zh) * | 2013-11-28 | 2017-04-19 | 北京邮电大学 | 应用程序权限动态控制方法和*** |
DE102014200533A1 (de) * | 2014-01-14 | 2015-07-16 | Olympus Winter & Ibe Gmbh | Wechseldatenträger, medizinisches Gerät und Verfahren zum Betrieb eines Wechseldatenträgers |
US9632953B2 (en) | 2014-06-03 | 2017-04-25 | Qualcomm Incorporated | Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers |
US9690720B2 (en) | 2014-06-03 | 2017-06-27 | Qualcomm Incorporated | Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device |
US10042947B2 (en) * | 2014-10-30 | 2018-08-07 | Sunasic Technologies, Inc. | Read-only method and system for operating portable devices |
CN105718210B (zh) * | 2014-12-05 | 2018-12-18 | 旭景科技股份有限公司 | 用于操作可携式设备的只读方法与*** |
EP3230879B1 (en) * | 2015-05-02 | 2023-11-01 | Hewlett Packard Enterprise Development LP | Storage memory direct access |
US10346044B2 (en) * | 2016-04-14 | 2019-07-09 | Western Digital Technologies, Inc. | Preloading of directory data in data storage devices |
CN105975567B (zh) * | 2016-05-03 | 2019-12-20 | 青岛海信移动通信技术股份有限公司 | 一种应用程序的内部文件的处理方法及装置 |
CN107563171B (zh) * | 2017-09-11 | 2020-08-28 | 英业达科技有限公司 | 具有生物特征辨识模块的储存装置 |
KR101980999B1 (ko) | 2018-01-02 | 2019-05-21 | 성균관대학교산학협력단 | 쓰레드 그룹 레벨의 캐시 바이패싱 방법 및 장치 |
US11023601B2 (en) * | 2018-04-20 | 2021-06-01 | Rohde & Schwarz Gmbh & Co. Kg | System and method for secure data handling |
KR102657876B1 (ko) * | 2018-09-07 | 2024-04-17 | 삼성전자주식회사 | Ssp 단말과 서버가 디지털 인증서를 협의하는 방법 및 장치 |
US20200401720A1 (en) * | 2019-06-18 | 2020-12-24 | Tmrw Foundation Ip & Holding S. À R.L. | Virtualization for privacy control |
US11146389B2 (en) * | 2019-09-04 | 2021-10-12 | Dell Products L.P. | Method and apparatus for ensuring integrity of keys in a secure enterprise key manager solution |
KR102089450B1 (ko) * | 2019-09-19 | 2020-05-26 | 한국과학기술정보연구원 | 데이터이주장치 및 그 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240993A1 (en) * | 2004-04-22 | 2005-10-27 | Treadwell William S | Methodology, system and computer readable medium for streams-based packet filtering |
US20060129496A1 (en) * | 2004-12-14 | 2006-06-15 | Motorola, Inc. | Method and apparatus for providing digital rights management |
US20080098023A1 (en) * | 2006-10-24 | 2008-04-24 | Sony United Kingdom Limited | Information processing apparatus, information processing method, program and program recording meduim |
CN101553783A (zh) * | 2006-11-29 | 2009-10-07 | 索尼爱立信移动通讯股份有限公司 | 用于在***设备处接收控制命令的***和方法 |
Family Cites Families (49)
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 |
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 |
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 |
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 |
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 |
US8799183B2 (en) * | 2001-04-09 | 2014-08-05 | United States Postal Service | System and method for predelivery notifcation using mail image |
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 |
US20070110074A1 (en) * | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US20050289558A1 (en) | 2004-06-08 | 2005-12-29 | Daniel Illowsky | Device interoperability runtime establishing event serialization and synchronization amongst a plurality of separate processing units and method for coordinating control data and operations |
US20050281404A1 (en) | 2004-06-17 | 2005-12-22 | Matsushita Electric Industrial Co., Ltd. | Scalable streaming media authentication |
JP5013477B2 (ja) | 2004-11-09 | 2012-08-29 | トムソン ライセンシング | 別個の記憶媒体上のコンテンツの結合 |
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 |
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 |
US7957751B2 (en) * | 2006-08-02 | 2011-06-07 | Telecommunication Systems, Inc. | Personal location code |
US8874145B2 (en) * | 2006-08-02 | 2014-10-28 | Telecommunication Systems, Inc. | Personal location code broker |
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 |
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 |
US7822935B2 (en) | 2007-05-03 | 2010-10-26 | Sandisk Il Ltd. | Methods for data-smuggling |
WO2008135969A1 (en) | 2007-05-03 | 2008-11-13 | Sandisk Il Ltd. | Storage device and method for data-smuggling |
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 |
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 |
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 |
US8407190B2 (en) * | 2009-06-30 | 2013-03-26 | Commvault Systems, Inc. | Performing data storage operations with a cloud environment, including containerized deduplication, data pruning, and data transfer |
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 |
-
2010
- 2010-06-29 US US12/826,626 patent/US8301715B2/en active Active
-
2011
- 2011-04-22 KR KR1020127030378A patent/KR101662363B1/ko active IP Right Grant
- 2011-04-22 JP JP2013511172A patent/JP2013530454A/ja not_active Withdrawn
- 2011-04-22 CN CN201180025023.2A patent/CN102906754B/zh active Active
- 2011-04-22 EP EP11725227.0A patent/EP2572309B1/en active Active
- 2011-04-22 WO PCT/US2011/033609 patent/WO2011146202A1/en active Application Filing
- 2011-05-06 TW TW100116040A patent/TW201205335A/zh unknown
-
2012
- 2012-03-30 US US13/436,343 patent/US8694598B2/en active Active
- 2012-03-30 US US13/436,373 patent/US8601088B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240993A1 (en) * | 2004-04-22 | 2005-10-27 | Treadwell William S | Methodology, system and computer readable medium for streams-based packet filtering |
US20060129496A1 (en) * | 2004-12-14 | 2006-06-15 | Motorola, Inc. | Method and apparatus for providing digital rights management |
US20080098023A1 (en) * | 2006-10-24 | 2008-04-24 | Sony United Kingdom Limited | Information processing apparatus, information processing method, program and program recording meduim |
CN101553783A (zh) * | 2006-11-29 | 2009-10-07 | 索尼爱立信移动通讯股份有限公司 | 用于在***设备处接收控制命令的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102906754A (zh) | 2013-01-30 |
US8601088B2 (en) | 2013-12-03 |
WO2011146202A1 (en) | 2011-11-24 |
EP2572309B1 (en) | 2015-01-07 |
US8301715B2 (en) | 2012-10-30 |
EP2572309A1 (en) | 2013-03-27 |
KR101662363B1 (ko) | 2016-10-05 |
US20120204238A1 (en) | 2012-08-09 |
JP2013530454A (ja) | 2013-07-25 |
US20120204237A1 (en) | 2012-08-09 |
US8694598B2 (en) | 2014-04-08 |
US20110289178A1 (en) | 2011-11-24 |
TW201205335A (en) | 2012-02-01 |
KR20130115982A (ko) | 2013-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102906754B (zh) | 通过绕过主机设备中的高速缓存访问存储设备中的虚拟文件的主机设备和方法 | |
US11698949B2 (en) | Systems and methods for facilitating secure streaming of electronic gaming content | |
CN102656550B (zh) | 使用公共存储器区域中的虚拟文件来访问私有存储器区域中的多个受保护文件的存储设备和方法 | |
US8301694B2 (en) | Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device | |
TWI571765B (zh) | 用於保護上傳至網際網路站點的多媒體中之使用者隱私的系統和方法 | |
KR101379861B1 (ko) | Drm 제공 장치, 시스템 및 그 방법 | |
US20070233601A1 (en) | Systems and methods for protecting digital content | |
US20080288411A1 (en) | Methods, media, and systems for tracking and encrypting content usage | |
CN101578608B (zh) | 用于基于会话票证存取内容的方法及设备 | |
CN101669124A (zh) | 从存储器存储和访问头数据的方法 | |
US20120185308A1 (en) | Method of protecting copyright of digital publication and the system therefor | |
US9064096B2 (en) | Methods and apparatus for secure distribution of protected content | |
US20120109784A1 (en) | Method and system for automating protection of media files for download | |
JP2007304720A (ja) | コンテンツ利用管理システム、コンテンツ提供システム、及びコンテンツ利用装置 | |
US20120284522A1 (en) | Method and System for Securing Multimedia Data Streamed Over a Network | |
KR100779985B1 (ko) | 콘텐츠 보호 방법 및 시스템 | |
CN101617318A (zh) | 用于将内容与许可证链接的方法及设备 | |
KR100716719B1 (ko) | 디.알.엠 기반의 패키지 컨텐츠 제공 방법 및 그 장치 | |
Veeraraghavan et al. | Cobalt: Separating Content Distribution from Authorization in Distributed File Systems. | |
KR100843256B1 (ko) | 콘텐츠 보호 방법 및 시스템 | |
CN117077195A (zh) | 一种Web3.0基于分布式存储网络的数据隐私保护方法、***和设备 | |
JP2005222364A (ja) | サービス実行システム、携帯装置、サービス実行装置、およびサービス検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Israel Kfar Saba Patentee after: Western data Israel Limited Address before: Israel saaba Patentee before: SANDISK IL Ltd. |
|
CP03 | Change of name, title or address |