具有虚拟机启动的便携式大容量存储装置.pdf

上传人:e1 文档编号:971429 上传时间:2018-03-22 格式:PDF 页数:29 大小:1.36MB
返回 下载 相关 举报
摘要
申请专利号:

CN200780029427.2

申请日:

2007.07.26

公开号:

CN101501642A

公开日:

2009.08.05

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 9/445变更事项:专利权人变更前:桑迪士克科技公司变更后:桑迪士克科技有限责任公司变更事项:地址变更前:美国德克萨斯州变更后:美国得克萨斯州|||授权|||专利申请权的转移IPC(主分类):G06F 9/445变更事项:申请人变更前权利人:桑迪士克股份有限公司变更后权利人:桑迪士克科技公司变更事项:地址变更前权利人:美国加利福尼亚州变更后权利人:美国德克萨斯州登记生效日:20121101|||实质审查的生效|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

桑迪士克股份有限公司

发明人:

法布里斯·约刚-库仑; 巴赫曼·卡瓦迈; 法施德·萨伯特-沙吉; 卡洛斯·J·冈萨雷斯

地址:

美国加利福尼亚州

优先权:

2006.8.8 US 11/463,256; 2006.8.8 US 11/463,264

专利代理机构:

北京律盟知识产权代理有限责任公司

代理人:

刘国伟

PDF下载: PDF下载
内容摘要

一种便携式大容量存储装置用于存储大文件,例如数字图片、电影及音乐。所述大容量存储装置具有带有安全机构的固件,所述安全机构限制对读取写入操作的存取以确保所述装置的可靠操作,从而防止对安全内容(例如,受版权保护的资料)的不期望拷贝或存储。尽管所述安全机构通常限制存取,但所述固件可操作以与虚拟机一同工作且允许所述虚拟机存取所述安全内容并连同所述固件一起工作以向所述大容量存储存储器读取及写入数据(如果存在所述虚拟机)。可在制造时加载但不启动所述虚拟机,或在制造后下载并启动所述虚拟机。仅在所述虚拟机既存在于所述装置中又被启动的情况下才支付所述虚拟机的任何使用费。

权利要求书

1、  一种使得能够在大容量存储型存储器卡中使用软件应用程序的方法,所述方法包含:
提供运行所述存储器卡的数据存储操作的固件;
在所述卡内提供一个或一个以上应用编程接口;及
提供在被加载到所述卡中时未启动的虚拟机,
其中所述存储器卡可操作以在用户想要使用所述软件应用程序且从而利用所述虚拟机的能力的情况下启动所述虚拟机。

2、
  如权利要求1所述的方法,其进一步包含仅在所述虚拟机被启动的情况下支付其许可证费。

3、
  如权利要求1所述的方法,其进一步包含将利用所述虚拟机的所述能力的所述软件应用程序加载到所述卡中,所述软件应用程序依赖于所述虚拟机以供所述大容量存储型存储器卡的处理器来执行。

4、
  如权利要求1所述的方法,其中在消费者接收所述卡之前将所述虚拟机加载到所述卡中。

5、
  如权利要求1所述的方法,其中在消费者已接收所述卡之后将所述虚拟机现场加载到所述卡中。

6、
  如权利要求1所述的方法,其中所述固件允许所述虚拟机仅在启动之后存取存储在所述卡上的数据。

7、
  如权利要求3所述的方法,其中所述软件应用程序包含数字权利管理。

8、
  如权利要求7所述的方法,其进一步包含向内容的拥有者或许可证持有者支付由所述数字权利管理应用程序管理的所述内容的费用。

9、
  如权利要求7所述的方法,其中给所述虚拟机加密。

10、
  如权利要求9所述的方法,其中在所述虚拟机被加载到所述存储器卡中时通过所述卡的硬件来给所述虚拟机加密。

11、
  如权利要求9所述的方法,其中所述经加密的虚拟机包含所述存储器卡的所述硬件的签名,且不可由创建所述签名的硬件以外的硬件执行。

12、
  如权利要求5所述的方法,其进一步包含检验所述虚拟机及/或所述虚拟机的提供者的可靠性。

13、
  一种提供便携式快闪存储器大容量存储装置的方法,所述方法包含:
供应所述快闪存储器大容量存储装置;及
检验具有将要加载到所述装置中的应用程序的第一方的凭证,所述凭证允许所述第一方加载所述应用程序,所述应用程序包含虚拟机。

14、
  如权利要求13所述的方法,其进一步包含将所述应用程序加载到所述装置中。

15、
  如权利要求14所述的方法,其中在所述装置已被销售给消费者之后在现场将所述应用程序加载到所述装置中。

16、
  如权利要求13所述的方法,其进一步包含收集与所述应用程序相关联的费用的支付。

17、
  如权利要求16所述的方法,其进一步包含将所述费用的一部分分配给第二方。

18、
  如权利要求16所述的方法,其中所述费用包含使用费。

19、
  如权利要求16所述的方法,其中所述费用包含货物或服务的电子付款。

20、
  一种向大容量存储型存储器装置的用户提供软件应用程序的方法,其包含:
提供运行所述存储器卡的数据存储操作的固件;
在所述卡内提供一个或一个以上应用编程接口;
接收加载所述应用程序的请求;及此后
将虚拟机加载到所述卡中,及
将所述应用程序加载到所述卡中。

21、
  如权利要求20所述的方法,其中在不知道所述应用程序的请求者的情况下加载所述虚拟机。

22、
  如权利要求20所述的方法,其进一步包含接收将所述虚拟机加载到所述卡中的请求。

23、
  如权利要求20所述的方法,其进一步包含在加载所述应用程序之前授权所述应用程序的提供者。

24、
  如权利要求20所述的方法,其进一步包含在加载所述虚拟机之前授权所述虚拟机的提供者。

25、
  如权利要求18或19所述的方法,其中授权包含对称验证。

26、
  如权利要求18或19中所述的方法,其中授权包含不对称验证。

27、
  如权利要求20所述的方法,其进一步包含给所述卡内的所述应用程序加密。

28、
  如权利要求20所述的方法,其进一步包含给所述卡内的所述虚拟机加密。

29、
  如权利要求22或23所述的方法,其中加密包含利用存储在所述存储器卡的控制器中的密钥。

30、
  如权利要求20所述的方法,其中所述应用程序要求所述虚拟机运行。

31、
  一种启用经提供以与大容量存储型存储器装置一同使用的虚拟机的方法,所述方法包含:
提供运行所述存储器卡的数据存储操作的固件;
将虚拟机加载到所述卡中;
在所述卡内接收利用所述虚拟机的功能性的请求;及此后
提供所述虚拟机起作用所必要的应用编程接口,从而使得能够利用所述虚拟机。

32、
  如权利要求31所述的方法,其进一步包含提供所述应用编程接口。

33、
  如权利要求31所述的方法,其进一步包含一旦启用所述虚拟机的使用即刻支付所述虚拟机的许可证费。

34、
  一种启动或去启动用于大容量存储型存储器装置中的软件应用程序的方法,其包含:
提供运行所述存储器装置的数据存储操作的固件,所述软件应用程序依赖于所述固件数据存储操作来存取存储在所述存储器装置中的数据;
用所述装置的所述固件产生一次性口令值;
将用所述装置的所述固件产生的所述一次性口令值与在所述装置外部产生的一次性口令值相比较;及
如果所述比较检验由所述装置产生的所述值与在所述装置外部产生的所述值匹配,
允许或不允许执行所述软件应用程序。

35、
  如权利要求34所述的方法,其中产生所述一次性口令包含依据种子及以下各项中的一者或一者以上来创建所述口令:与所述软件应用程序相关联的唯一识别符;及与所述装置相关联的唯一识别符。

36、
  如权利要求35所述的方法,其中产生所述一次性口令进一步包含依据所述装置类型来创建所述口令。

37、
  如权利要求34所述的方法,其中制造许多大容量存储型存储器装置,所述装置中的每一者包含相同种子却通过利用基于唯一识别符使一次性口令值多样化的一次性口令产生算法针对给定计数产生所述不同的一次性口令值。

38、
  如权利要求34所述的方法,其中所述唯一识别符包含唯一地与特定装置相关联的数字。

39、
  如权利要求34所述的方法,其中所述唯一识别符包含唯一地与所述软件应用程序的特定实例相关联的数字。

40、
  一种大容量存储型快闪存储器装置,其包含:
控制器;
随机存取存储器;
大容量存储装置,其包含快闪存储器;
虚拟机;
机构,其在需要所述虚拟机的操作时启用所述操作,
其中如果所述机构由所述装置的用户的活动触发,那么支付与所述虚拟机相关联的许可证费。

41、
  如权利要求40所述的装置,其中所述虚拟机存储在所述大容量存储快闪存储器中。

42、
  一种大容量存储型快闪存储器装置,其包含:
控制器;
随机存取存储器;
大容量存储装置,其包含快闪存储器;
虚拟机;及
启用装置,其用于启用所述虚拟机,
其中在所述启用装置被触发时,起始所述虚拟机的费用的支付。

43、
  一种大容量存储型存储器卡,其包含:
快闪存储器;
控制器;及
固件,其控制所述快闪存储器的读取及写入操作,其中所述固件在所述固件中包含限制对所述读取及写入操作的存取的安全例行程序;
所述固件的第一操作状态,所述第一状态用于在没有虚拟机的情况下操作所述卡;及
所述固件的第二操作状态,所述第二状态用于在有虚拟机的情况下操作所述卡,
其中当处于所述第二状态中时,所述固件的所述安全例行程序准予所述虚拟机从受读取及写入保护的数据中存取数据。

44、
  如权利要求43所述的大容量存储型存储器卡,其中在所述快闪存储器中保留用于所述虚拟机的存储器空间。

45、
  如权利要求43所述的大容量存储型存储器卡,其中所述卡在所述第一状态中操作直到虚拟机被加载到所述卡中,且此后在所述第二状态中操作。

46、
  如权利要求45所述的大容量存储存储器卡,其中小应用程序与所述虚拟机一同加载。

47、
  如权利要求45所述的大容量存储存储器卡,其中所述小应用程序包含数字权利管理应用程序。

说明书

具有虚拟机启动的便携式大容量存储装置
技术领域
本发明大体来说涉及便携式大容量存储装置及在所述装置上运行的固件及软件,且更具体来说涉及提供所述软件及其它内容及启动并支付所述软件及所述其它内容。
背景技术
智能卡已存在相当长的时间且尤其被频繁地用作借记卡及信用卡。如名称所暗示,智能卡受处理器控制且还包括小存储量以保存与识别及交易相关的数据。近年已开发在智能卡上创建并运行基于Java的程序的能力且其受到欢迎。基于Java的程序也可实施在其它智能装置中,例如通常用于数码相机及音乐播放器中的大容量存储存储器卡。由于这些其它卡必须存储并存取非常大的数据库(例如,照片及音乐),其数量级比存储在智能卡中的交易及识别数据大,因此将其视为大容量存储装置。这些大容量存储卡的实例是微型闪存(“CF”)卡、安全数字(“SD”)卡、迷你SD卡、微SD卡、多媒体(“MMC”)卡及存储棒。除所列举的实例以外,还存在许多不同格式的大容量存储卡。基于便携式快闪存储器的通用串行总线(“USB”)驱动器是另一种类型的便携式大容量存储装置。
Java CardTM技术使得以Java编程语言编写的程序能够在智能卡及其它小的资源受限制的装置上运行。开发者可使用标准的软件开发工具及环境建立并测试程序,然后将其转换为可被安装到启用Java CardTM技术的装置上的形式。Java CardTM平台的应用软件称为小应用程序,或更具体来说称为Java CardTM小应用程序或卡小应用程序(以将其与浏览器小应用程序区分开来)。
尽管Java CardTM技术使得以Java编程语言编写的程序能够在小存储器卡上运行,但所述小装置功率远远不足而不能够支持所述Java平台的全部功能性。因此,JavaCardTM平台仅支持所述Java平台的精心选择的定制子组的特征。此子组提供非常适于编写用于小装置的程序的特征且保持Java编程语言的面向对象的能力。
Java CardTM是一种类型的虚拟机。其它虚拟机也可用,且虚拟机是物理处理器的抽象且具有常规处理器的虚拟对等物。在Java语言的情况下,Java虚拟机是充当经编译的Java二进制代码与基本硬件平台微处理器之间的接口的软件。
当实施在所述小装置中时将特别有用的一种应用程序涉及对受保护内容(例如,音乐或电影等)进行支付。
为运行以Java编写的应用程序,必须将Java CardTM虚拟机加载到所述卡中并将其启动。所述机器的每一实例需要向太阳(Sun)或向所述组件的供应商支付许可证费。由于智能卡的主要用途是交易,因此所述许可证费的成本作为做生意的成本对于所述卡的发行者来说是可接受的。然而,大容量存储类型的存储器卡的用户可能或可能不需要虚拟机使其成为可能的额外应用,因为典型的用户主要出于数据存储的目的占有并使用所述卡。因此,制造商当然不能够传递或吸收所述许可证费的成本。此外,当然,在虚拟机上运行的小应用程序或其它程序中的每一者也可需要不能够被传递(传递到可不需要其的用户)或吸收的许可证费。
在用于Java CardTM平台的软件的生产及部署的过程的背景下可最好地了解JavaCardTM虚拟机的作用。存在组成Java CardTM系统的若干组件,包括Java CardTM虚拟机、Java CardTM平台的转换器(“Java CardTM转换器”)、终端安装工具及在所述装置上运行的安装程序。Java CardTM小应用程序的开发与任何其它Java程序一同开始:开发者编写一个或一个以上Java类,且用Java编译器编译源代码,从而产生一个或一个以上类文件。使用模拟工具在工作台上运行、测试并调试所述小应用程序以仿效所述装置环境。然后,当小应用程序准备要下载到装置时,使用Java CardTM转换器将包含所述小应用程序的类文件转换为CAP(经转换的小应用程序)文件。所述JavaCardTM转换器将组成Java包的所有类文件作为输入。所述CardTM转换器还将一个或一个以上导出文件作为输入。导出文件包含由正被转换的类导入的其它包的内容的名称及链路信息。当转换小应用程序或库包时,所述转换器还可产生所述包的导出文件。
名义上,在转换之后,CAP文件被拷贝到卡终端,例如具有读卡器外围设备的桌上型计算机。然后,所述终端上的安装工具加载所述CAP文件且将其传输到启用Java CardTM技术的装置。所述装置上的安装程序接收所述CAP文件的内容且准备将由Java CardTM虚拟机运行的小应用程序。所述虚拟机本身不需要加载或操纵CAP文件,其仅需要执行在由所述安装程序加载到所述装置上的CAP文件中找到的小应用程序代码。
在来自太阳微系统(Sun Microsystems)的以下说明书中说明Java CardTM平台的这些及其它方面,所述说明书的全部内容以引用的方式并入本文中:应用编程接口,Java CardTM平台,版本2.2.1;运行时间环境说明书,Java CardTM平台,版本2.2.1;及虚拟机说明书,Java CardTM平台,版本2.2.1。
如上文所提及,为运行以Java编写的应用程序,必须将Java CardTM虚拟机加载到所述卡中并将其启动。
在说明于颁发给吉本(Yoshimoto)等人的第6,772,955号美国专利中的一种现有方法中,将虚拟机提供为存储器卡控制器芯片的部分,旨在使所述卡用于基于点的交易中。以Java编写将所述卡用作点卡的源代码并将其加载到所述卡中。针对用所述卡购买的每一条目更新点平衡。
Java虚拟机的每一实例需要向太阳或其它供应商支付许可证费。同样,任何其它专有虚拟机可需要向所述机器的许可证颁发者进行支付。在智能卡中,向每一卡提供所述Java CardTM虚拟机的有效且经支付的拷贝。此增加每一智能卡的成本,如同其可能增加吉本专利中所说明系统的成本那样。由于所述智能卡的原则功能在大多数应用中是交易,因此可将此成本吸收及/或传递到制造商、中间商或消费者。然而,不需要在其中可能从来不利用所述虚拟机的功能性的消费者大容量存储装置中吸收或传递许可证的成本。
全球平台是智能卡的前进及标准化的行业联盟。全球平台充当智能卡行业标准体,从而使跨越许多行业的许多服务提供者针对智能卡程序的全球部署创建并维持开放的技术框架。全球平台应用编程接口(“API”)及所述全球平台的其它方面说明于日期为2004年12月的全球平台卡说明书,版本2.1.1及全球平台卡安全需求的正式说明书中,其可在www.globalplatform.com获得且其全部内容以引用的方式并入本文中。全球平台提供小应用程序到智能卡或已经具有虚拟机的其它装置的下载。然而,尽管此提供所需要的小应用程序及相关联的功能性,但其对于已经具有运行所述小应用程序所需要的虚拟机的卡也是如此。
发明内容
本发明提高便携式大容量存储装置的可能使用,同时使制造及使用成本降到最低。本发明允许所述装置运行各种专业化软件应用程序,但将仅在用户选择利用那些应用程序的功能性的情况下承担那些应用程序的成本。换句换说,仅在实现所述可能使用的情况下引发与所述可能使用相关联的成本。此对于制造商及消费者两者均是优点。制造商可提高产品功能性及市场渗透力,而不必吸收或传递仅某一子组消费者可能需要的特征的成本。想要利用所述特征的消费者可对其进行支付(如果必要),而那些不想要利用所述功能性的消费者则不需要支付其不想要或不需要的某些东西。
虚拟机在便携式大容量存储装置中非常有用,因为在虚拟机就位的情况下,可供使用的应用程序的品种比原本可在所述装置上直接运行的应用程序的品种多。此是因为虚拟机提供独立于任何特定处理平台的独立性。虚拟机是由微处理器执行的设备齐全的操作环境,但就像其是单独的计算机那样运转。虚拟机应用程序将在所述虚拟机中以相同的方式执行及运行,而不管所述虚拟机在什么种类的处理器及操作系统上运行。
尽管现有解决方案已将虚拟机并入到存储器卡中,但所述虚拟机的成本必须由制造商及消费者承担,而不管所述消费者是否想要或需要所述虚拟机。尽管此在既定主要用作交易卡或“电子钱包”的装置中是可接受的,但在可能起初或主要用于其它用途的便携式大容量存储装置中并不理想。通过本发明,仅在用户想要使用需要一或多个虚拟机的存在的应用程序的情况下需要支付所述虚拟机的许可证费。因此,可将基本大容量存储装置的成本保持为最低,且可仅在必要或需要的情况下支付所述附加应用程序及虚拟机。可在所述装置的寿命期间的任何时间启动所述虚拟机,且将仅在其已变得有效的情况下进行支付。还可在任何时间、单独或结合利用所述机器的应用程序来将所述机器加载到卡中。在某些优选实施例中,当需要虚拟机时,所述虚拟机的安装将在不知道幕后用户的情况下作为所述虚拟机或较高等级的应用程序的启动的部分发生。
本发明允许仅在将使用需要许可证费的程序时支付所述许可证费。此使得可将这些程序并入到原本不可行的环境中。此在给定可实施在小装置(例如,大容量存储型存储器卡)中的大且不同的应用程序选集的情况下特别有用。
本发明允许用户快速且容易地选择、启动且仅支付其想要的程序。此保持所有人可负担得起基础装置,而同时允许那些发现其需要定制的应用程序的用户使用所述定制应用程序。
将虚拟机与运行所述便携式大容量存储装置的基本固件整合在一起不是简单的任务。在必须限制对受保护内容的存取的“安全”装置中尤其如此。在所述装置中,所述装置的固件至少部分地负责保护所述内容。因此,其限制对读取/写入操作的存取。因此,其是想要制作受保护内容的未经授权的拷贝的那些人的目标。因此,所述基本固件必须保护内容免受黑客,但仍允许例如虚拟机等应用程序存取所述内容。在可在任何点处加载所述虚拟机(或开启在所述装置中运行的使用所述内容的应用程序)的情景中,所述固件那么必须能够与所述虚拟机(或应用程序)一同运行或在没有所述虚拟机(或应用程序)的情况下运行且防止恶意软件冒充虚拟机(或应用程序)。
附图说明
图1是大容量存储装置100的示意图。
图2是大容量存储装置100及主机105的软件组件的示意图。
图3A是对根据本发明实施例的大容量存储装置的软件组件的图解说明。
图3B是对根据本发明实施例的下载的应用程序的图解说明。
图4A是根据本发明的第一供应情景的流程图。
图4B是根据本发明的第二供应情景的流程图。
图4C是根据本发明的第三供应情景的流程图。
图5是图解说明根据本发明实施例的应用协议接口管理的流程图。
图6图解说明公钥基础结构及大容量存储装置100。
图7是描述公钥基础结构的一些组件的表格。
图8是对根据本发明实施例的收入流程的图解说明。
图9是对快闪存储器140的存储器空间的一部分的图解说明。
具体实施方式
背景技术中所论述,当今广泛地使用基于便携式快闪存储器的大容量存储装置来存储大文件及软件程序。由于依赖于存储器卡或口袋大小的USB快闪驱动器的数字装置的广泛使用,许多人已经具有这些便携式大容量存储装置中的一者或一者以上。本发明提高这些装置的可能使用,同时使制造及使用成本降到最低。本发明允许所述装置运行各种专业化软件应用程序,但将仅在用户选择利用那些应用程序的功能性的情况下承担那些应用程序的成本。换句话说,仅在实现所述可能使用的情况下引发与所述可能使用相关联的成本。此对于制造商及消费者两者均是优点。制造商可提高产品功能性及市场渗透力,而不必吸收或传递仅某一子组消费者可能需要的特征的成本。想要利用所述特征的消费者可对其进行支付(如果需要),而那些不想要利用所述功能性的消费者则不需要支付其不想要或不需要的某些东西。
可在大容量存储装置上运行及/或存储的许多软件及其它内容需要向拥有者或许可证颁发者支付费用。举例来说,软件程序需要向创建者支付许可证费,且内容(例如,音乐、电影、照片或所写作品也需要向转售者、创建者、提供者及/或许可证颁发者等支付。当在大容量存储装置中实施时特别有用的软件程序的一个特定实例是虚拟机。此是因为虚拟机允许不需要经调整以适应于基本硬件平台的特殊性的软件的创建及执行。虚拟机的一个实例是基于Java的虚拟机,其由太阳微系统提供,如在背景技术中所说明。
尽管将来自太阳微系统的虚拟机作为实例来说明,但其它虚拟机也是存在的且还将开发另外的虚拟机。虚拟机是由微处理器执行的设备齐全的操作环境,但就像其是单独的计算机那样运转。虚拟机应用程序将在所述虚拟机中以相同的方式执行及运行,而不管所述虚拟机在什么种类的处理器及操作系统上运行。此提供独立于任何特定处理平台的独立性。因此,应该能在虚拟机及基本装置上运行的软件程序的种类比原本在没有所述虚拟机的情况下可用的软件程序的种类多。本发明可与任何虚拟机及所述虚拟机使其成为可能的应用程序一同工作。
图1中显示大容量存储型存储器卡的一般架构。大容量存储装置100的各种组件经由系统总线150耦合在一起并进行通信。装置100经由主机接口140向外部装置105(还称作主机105)通信。主机接口140包含在主机105与装置100之间来回传送数据的逻辑组件及硬件组件两者。如果装置100具有大容量存储存储器卡的形式因数,那么所述接口包括将与(举例来说)数码相机的触点结构介接的电触点。如果装置100具有USB装置的形式因数,那么主机接口140包括电触点及必要的驱动器以与USB端口介接。控制器110控制所述装置且管理大容量存储快闪存储器140的单元内的读取/写入操作及数据分配。装置100还包括随机存取存储器(“RAM”)120,其可以是如图所示或整合到控制器110内的离散组件控制器110执行来自RAM 120的存储在只读存储器130或大容量存储快闪存储器140中的固件。只读存储器130可电擦除且因此是EEPROM或EPROM。所述固件可由所述控制器执行且控制所述存储器卡的操作。如果所述固件被毁坏,那么所述存储器卡将不能再正确地起作用。
大容量存储装置100优选地包括安全措施。这些措施将确保应用程序的状态(例如,无效到有用)仅可由经授权方改变。所述状态由装置固件控制且固件可检查所述状态以确认特定应用程序有效且可被使用。那些措施优选地还实施在所述装置的硬件及软件(固件)中,且在某些实施例中给存储在所述装置中且向及从所述装置传送的数据加密。对于关于此类型的安全大容量存储装置的更多信息请参考其全部内容以此引用并入本文中的以下美国专利申请案:颁发给霍兹曼(Holtzman)等人的标题为“具有寿命周期阶段的安全存储器卡(Secure Memory Card With Life Cycle Phases)”的第11/053,273号申请案;颁发给霍兹曼等人的标题为“使用流内数据加密/解密的存储器系统(Memory System with in Stream Data Encryption/Decryption)”的第11,314,032号申请案;及标题为“用于具有快闪大容量存储存储器的安全装置的安全而灵活的系统架构(Secure Yet Flexible System Architecture for Secure Devices With Flash MassStorage Memory)”的第11/317,339号申请案。
装置100将被认为是存储器卡(所述装置的一个实施例),但如前文所提及,装置100可以是存储器卡、USB装置或其它形式因数的形式。
固件提供到卡的数据的路径,所述数据中的一些可以是受保护的数据。在控制器上运行的固件的完整性是重要的,在安全卡中尤其如此。如果所述卡是安全卡(举例来说,实施某种形式的数字权利管理(“DRM”)的一个卡),那么所述固件的其中一个功能是限制对受保护内容的存取。DRM是用于描述用于限制数字内容的自由使用及传送的多种技术的广义术语,且因此一些人认为将其描述为“数字限制管理”更为合适。图2图解说明装置100的软件组件中的一些组件,包括所述固件。虚拟机220包含基础卡固件210中不存在的功能性,但也将能够存取快闪存储器中的内容。因此,在某种意义上,其可也被认为是所述卡中的一种类型的固件,且必须与固件210完全整合并兼容。因此,必须以卡固件210在VM 220存在或不存在的情况下强健地起作用的方式实施卡固件210。同样,以VM 220与卡固件210一同起作用的方式实施VM 220。实施在固件210的代码中的允许其与VM 220整合在一起的设计方面可被认为是固件210内的“钩”。这些钩及其所包含的兼容性由固件210与VM 220之间的双箭头代表。加载到卡100内的小应用程序可经由VM 220与所述固件进行通信且可在所述卡上提供任何数量的不同软件应用程序。这些小应用程序240A...X在虚拟机上运行且因此不需要经调整以适应于装置110的控制器110及其它硬件组件的特性。此将所述装置向原本不与所述卡兼容的不同软件应用程序的库开放。
如图2中所见,主机105必须经由应用编程接口(“API”)向固件210(包括VM 220)通信。可在所述卡中实施任何数量的API 250A...X。此包括标准或本机装置API 250A、行业标准或被广泛接受的API 250B(例如,全球平台API)、专有API 250C(例如,绑缚到VM 220的API(例如,用于Java虚拟机的API),或用于小应用程序240的API或小应用程序240中的一者)及任何其它API 250X。VM 220必须使就位的适合API起作用,且因此启动特定虚拟机的一种方式是通过启动及/或加载与所述特定虚拟机兼容的API。当然,可直接用各种其它触发器来启动所述VM。所述VM是一种类型的固件,如稍后将参照图9论述。下文将论述各种启动方法。
不管卡的应用如何,增加前文论述的虚拟机的功能性需要与所述卡的其它固件的整合。不管所述虚拟机及其各种小应用程序在所述卡离开工厂之前还是之后与所述固件整合在一起,所述卡必须无缝地操作。在现场下载小应用程序的情景中,不能够容易地检验所述小应用程序的内容及性质。因此,所述卡的基础固件必须足够灵活以适应所述小应用程序将需要的现场下载及数据存取,而同时其必须足够强健以甚至与编写糟糕的小应用程序一同起作用。此外,在所述小应用程序目标是打败所述卡的DRM的情况下,所述固件必须保护数据免受所述小应用程序但继续向经授权的用户提供内容。
不同于经有目的地建立以保护少量的受高度保护的交易数据的智能卡,大容量存储型存储器卡必须提供对非常大的内容库的频繁存取。像所述卡可遇到的应用那样,此用户内容在所述卡的寿命期间总是在变化。所述卡的固件及硬件适应用户对新应用程序的需求且允许现场(或在工厂)下载所述新应用程序,同时总是保护所述卡的内容。此不是简单的任务。
图3A是卡100中的软件组件中的一些组件的体现。在所述卡内运行的是各种小应用程序240A-X。优选的虚拟机220是Java CardTM虚拟机,且在所述Java CardTM或其它Java虚拟机的情况下,如果基于特定小应用程序及虚拟机220要求或需要,那么也可存在Java CardTM框架。所有这些组件在卡操作系统或固件210上运行。在此情况下,Java CardTM框架及其它行业附件230及Java虚拟机220在卡操作系统210上运行。
图3B图解说明可加载到所述卡中且在任何时间启动且作为本发明的固件及系统的部分起作用的软件组件或“包”。所述包可不只包括虚拟机220,而且还包括(任选地)一个或一个以上软件应用程序270。基本固件210经装备以与VM220的额外软件及应用程序270一同起作用。可在任何时间将在虚拟机上运行的任何软件应用程序270加载到所述卡中。点线用于指示可在有或没有应用程序270的情况下加载VM200且所述应用程序的安装不需要与所述VM的安装同时发生。仅在i)所述卡中存在包且ii)所述包被启动(两者)时需要支付与所述包的组件相关联的任何费用。
可以多种方式向用户提供在图3B中所见的包。可在销售时在所述卡中提供所述包,如在图4A中所见。在此情况下,必须在所述包可使用之前“现场”将其启动。另一选择为,用户可将所述包作为完整的包或逐片地“现场”下载,如在图4B中所见。作为另一方法,可将新固件210加载到所述卡中,如在图4C中所见。此固件下载也将包括在图3B中所见的包的全部或部分。在一个实施例中,此意指将在固件更新的过程中全部加载在图2中所见的固件210、VM 220、小应用程序240。在图4A、4B及4C的流程图(将在下文中予以说明)中图解说明这些基础方法。
如前文所提及,所述虚拟机及小应用程序或应用程序需要变有效或被启动以供利用。当然,尽管在许多情景中并非优选,但可不存在下载有效组件所必要的安全措施。此在其中存在卡的受限制分配的安全或受信任环境中可能适合但未必适合。此外,在一些实施例中,所述安全可以是下载过程的部分且不需要存在所要求的额外启动。换句话说,假设用户已被授权在第一地方下载,那么可在启动状态中下载所述组件,或所述启动可作为所述下载序列的部分发生。
卡100具有接收并确认启动命令的启动管理器。所述启动管理器可以是固件210的部分或可被视为单独的软件模块。所述启动管理器开启及关闭应用程序或操作系统特征。优选地,安全地进行此启动,举例来说,在安全通道的顶部。在一个实施例中,所述启动管理器将在其接收正确代码的情况下启动包。所述启动管理器将接收所述代码,对照将确认所述代码的服务器对其进行检查,或对照存储在所述卡的存储器内的经加密版本的代码对其进行检查。所述启动管理还追踪失败的启动,且在一些实施例中限制失败尝试的数量且可在超出所述数量的情况下锁定所述卡。
所述代码可基于不同的参数且以任何数量的方式计算。所述代码还可以是预期能开启匹配的应用程序的简单数字。所述代码对于启动来说可以是通用的且还可与应用程序ID相关联及/或基于所述应用程序ID,其是唯一地与特定应用程序相关联的数字。所述代码可部分地基于卡唯一ID,其是仅与特定卡相关联的数字。所述代码还可具有规定所述应用程序的部分(应启动还是去启动所述应用程序),及所述启动代码本身。所述代码还可规定或包含特定应用程序状态,例如无效、有效、暂停或取消。其还可规定并提供对必要的其它各种许可的存取,举例来说,DRM方案中的不同许可等级。所述代码还可基于或包括所有以上方案的一些或所有方面。
所述代码还可以是对称或不对称密码验证方案的部分。举例来说,在对称方案中,所述代码可以是所属技术领域中众所周知的一次性口令(“OTP”)类型。在此情况下,卡与检验服务器两者将具有相同的种子,且基于所述种子及任何数量的所选择算法来独立地创建所述代码或OTP。以规则的间隔增加或更新所述代码或OTP,且在任何给定时刻,可对照由检验服务器计算的OTP来检验在所述卡中计算的OTP。在OTP方案的情况下,如果最初用相同的种子加载两个卡,如果在所述两个卡中使用不同的算法来增加口令(在所述卡及所述服务器内),那么即使一个卡中的种子或一次性口令值被泄密,也不能够使用其来非法闯入另一个卡。在一个实例中,启动代码或OTP依据卡ID、卡类型、应用程序ID及所述OTP种子。所述卡类型可以是任何众所周知的卡类型(例如,微型闪存卡、SD卡、迷你SD卡、MMC卡、transflash卡、XD卡、存储棒等)或可以是USB快闪驱动器。
在其中启动代码包含或基于(依据)OTP的实施例中,所述OTP及/或所述代码可用于开启或关闭应用程序或软件层。如果所述OTP或代码(由远程服务器或其它装置产生)被发送到所述卡且对照由所述卡产生的OTP进行比较以检验所述启动代码或OTP。如果检验其正确,那么所述应用程序或软件层可被开启或关闭。OTP针对这些目的的使用是有利的,因为所述值仅可被使用一次,且因此不能够用于多个启动或以未经授权的方式传递及使用。在某些实施例中,将要启动的应用程序的应用程序ID也可用于产生所述启动代码或OTP。以此方式,所述OTP对于某一应用程序将是特定的。
如前文所提及,在某些实施例中,可将相同的种子用于多个卡。OTP计算的基础是所述种子。此外,所述启动代码或OTP依据卡ID、卡类型、应用程序ID及所述OTP种子。此允许将相同的秘密种子加载到多个卡中,此减少服务器数据库上的记录的数量。同时,由于可使用的不同算法(其可依据卡ID、卡类型及应用程序ID中的一者或一者以上),因此可产生唯一的OTP及启动代码,从而提供高安全等级。
最常见的不对称方案涉及公钥基础结构(PKI),其中装置或实体占有密码相关的两个密钥(私钥及公钥),使得用一个密钥加密的数据可用另一个密钥解密,且不存在以数学方式从所述公钥导出所述私钥的方法。在所述方案中,自由地分配所述公钥,且所述私钥由拥有实体保密。通过执行询问/响应序列(其中需要通过将使用其公钥加密的消息解密来证明对私钥的拥有权)来实现实体的验证。使用PKI的本发明实施例显示于图6及7(稍后将予以说明)中。
此外,在一个实施例中,将对称方案的方面与不对称方案的方面组合。在所述实施例的一个实例中,OTP将在一个阶段中用于检验所述卡,且在另一阶段中将使用询问/响应对话。
已论述了启动过程,我们现在将返回图4A、4B及4C的流程图,其图解说明下载及启动两者的方面。
图4A图解说明其中将要实施被加载虚拟机的启动的过程。在图4A的步骤405中,卡的发行者或提供者在所述卡被销售给用户之前的某个点处提供所述虚拟机。此可以是在制造时或在此后的某个点处,且也将提供所述卡的固件。所述虚拟机将处于休眠或无效状态,也就是说其将不可供消费者使用。因此,支付所述(不使用或无效)虚拟机的许可证费应该是没有必要的。优选地,消费者在其被启动或“解锁”之前将不知道其在所述卡上存在。所述虚拟机可以是任何类型或品牌的虚拟机。当前可获得的虚拟机的一些实例是:java、MULTOS、Java CardTM、嵌入式linux、嵌入式java、dot.net及Windows CE。可需要不同的虚拟机来支持不同的小应用程序,且因此可将多个VM加载到所述装置中。装置固件管理不同VM及小应用程序的资源需要的可用性。
在步骤410中,所述系统的用户、卡或服务器确定需要或想要虚拟机。接下来,在步骤415中,受信任的授权机构启动所述虚拟机。就是在此点处将需要支付与所述虚拟机相关联的任何许可证费。在公钥基础结构中,受信任的授权机构经常被称作证书授权机构。证书授权机构620显示于图6中。
图6显示利用公钥基础架构来检验/验证凭证的实施例。由于交易不可能比发生所述交易的系统更安全,因此最重要的要素成为建立用于使通信者互相定位且确信其使用的公钥真正属于其想要进行通信的人员(或机器)的方式。公钥基础结构经设计以提供此信任。通过使用称为数字证书或公钥证书的数据元素(其绑定公钥以识别关于其拥有者的信息),基础结构经设计以创建所述绑定,且出于所使用的所有团体成员的利益来管理所述绑定。一旦所述凭证经检验,那么可如上文所说明用代码或OTP启动包。另一选择为,所述凭证本身及其检验对于凭证的检验/验证将充足,从而允许或触发启动。
通过使用密钥与公钥密码术的组合,PKI实现多个其它安全服务,包括数据机密性、数据完整性及密钥管理。PKI的根本或框架定义于ITU-T X.509建议书[X.509]中,其全部内容以引用的方式并入本文中。
终端实体有时被认为是终端用户。尽管经常是这一情形,但术语终端实体所指的含义更一般化。终端实体可以是终端用户、装置(例如,路由器或服务器)、过程或可在公钥证书的主题名称中识别的任何东西。终端实体也可被认为是与PKI相关的服务的消费者。在本发明中,如在图6所示的实施例中所见,终端实体是大容量存储装置100及其用户。
以公钥证书的形式分配公钥。CA 620是PKI的根本,因为其是可发行公钥证书的组件。将公钥证书发送到装置100且发送到存储库610。公钥证书由发行的CA(其有效地将主题名称绑定到公钥)进行数字签名。CA还负责发行吊销证书列表(CRL),除非此职责已被委任给单独的CRL发行者630。CA还可涉及多个管理任务(例如,终端用户注册),但这些任务经常被委任给注册授权机构(RA),RA是任选的且未显示在图6中。实际上,CA还可充当密钥备份及恢复设施,但也可将此功能委任给单独组件。CA经常被认为是PKI中的“信任源”。在利用公钥基础结构的实施例中,CA 610将指示装置100,且可信任将下载包的服务器。此信任将用于下载、启动及支付用途。图7是描述图6的组件的表格且提供为快速参考。
图4B是单独或作为较大软件包的部分提供虚拟机的另一过程。在步骤435中,提供卡固件210。此固件具有用于将来整合且与虚拟机一同使用的“钩”,或换句话说,其经设计以能够与虚拟机兼容。优选地在制造卡时提供可与虚拟机兼容的固件,但也可在所述卡的寿命期间的任何时间加载所述固件。所述固件具有经设计以限制对所述卡上的某些类型的数据的存取的安全机构。此包括位于所述固件内且保护存储在所述卡的存储器中的内容的安全机构本身。在安装或启动所述虚拟机之前,所述固件(的安全机构)不允许软件应用程序进入或离开所述卡来存取所述受保护的数据。然而,所述固件还可操作以检测所述虚拟机且让所述虚拟机存取所述受保护数据中的某些数据(一旦安装并启动所述虚拟机)。换句话说,所述固件可被认为是具有不同的操作状态,一种在没有所述虚拟机的情况下使用,且一种在有所述虚拟机的情况下使用。在两种状态中,所述固件必须保护所述卡上的数据并限制对所述数据的存取,包括所述固件本身。在第二种状态中,所述固件必须允许所述虚拟机读取及写入数据,而不准许任何恶意应用程序进行未经授权的读取/写入存取。
接下来,在步骤440中,在所述卡已离开制造商之后,用户或中间商或卡本身确定想要或需要虚拟机。此后,在步骤445中验证所述虚拟机及其提供者。此可以是如前文所说明的对称及/或不对称验证。在步骤450中,将所述虚拟机下载到所述卡中且将其启动。就是在此点处将需要支付与所述虚拟机相关联的任何许可证费。一旦启动,将触发支付。
图4C是单独或作为较大软件捆的部分提供所述虚拟机的又一过程。在步骤460中,用户或卡确定需要或想要虚拟机。接下来,在步骤465中,在步骤445中验证所述虚拟机及其提供者。此可以是如前文所提及的对称或不对称验证。在步骤470中,将固件210的新拷贝或新版本随虚拟机220一同下载到所述卡中。可任选地同时加载额外小应用程序240或其它程序。
图5图解说明具有虚拟机下载的API管理。在步骤510中,接收对小应用程序下载的请求。可经由任何网络(包括因特网)从任何智能装置向服务器作出此请求。所述服务器可由所述卡的发行者或提供者或任何第三方操作。所述卡的发行者可以是制造商或其代表,而所述提供者可以是处置、分配或销售所述卡的任何实体。然后,如果所述卡的发行者或提供者不直接接收所述请求,那么接收步骤510的请求的服务器通知所述发行者或提供者所述请求。在步骤520中,所述发行者或提供者快速检索所述小应用程序运行所需要(如果需要)的虚拟机。接下来在步骤530中,将所述虚拟机及小应用程序无缝地加载到所述卡中。此意指用户不需要(但可以)知道已检索所述虚拟机并将其加载到其卡中。在步骤440(其可在步骤540之前、之后发生或与步骤540同时发生)中,启动所述虚拟机及小应用程序。在步骤550中,所述卡针对所述虚拟机及小应用程序选择并利用适合的API。如果不存在适合的API,那么所述发行者或提供者将所述适合的API加载到所述卡中。此外,如在步骤520中,用户优选地不需要(但可以)知道将所述API加载到所述卡中。总之,对于用户,尽可能快且无痛地进行所述过程。一旦作出对所述小应用程序的请求,那么可以非常迅速的方式自动加载所述小应用程序及使得所述小应用程序能够运行的所有必要软件,而用户不知道加载其小应用程序且使其工作可涉及的各种步骤。如前文所提及,提供适合的API是一种启动虚拟机及/或小应用程序的方式。
费用及使用费收集及分配
一旦已启动所述虚拟机、小应用程序或其它软件应用程序,那么必须支付所述应用程序的许可证费。举例来说,如果小应用程序涉及用于控制加载到卡的安全内容的数字权利管理(“DRM”),那么所述内容也可需要使用费。在任一情况下,本发明可用于支付任何类型的使用费或许可证付款。图8描绘用于向各种实体及从各种实体支付费用的系统。消费者费用805A由付款收集者810收集。此优选地将涉及在因特网上提供的安全服务。付款收集者810将保留针对其服务的某部分费用且将剩余费用传送到装置发行者820。举例来说,如果内容或程序被加载到晟碟(SanDisk)发行的SD卡中,那么晟碟将是卡发行者820且将接收费用805的部分805B。然后,所述发行者将保留费用805的某部分且将部分805C传输到内容拥有者或许可证持有者830。在至此为止所说明的实施例中,可支付Java虚拟机许可证以及在所述虚拟机上运行的不同小应用程序的付款。所述系统还更通常用于支付需要许可证的其它类型的内容。此支付系统在内容的支付及向所述装置的用户再现所述内容所必要的软件的支付方面也将相当有用。
安全
除安全地启动虚拟机以外,装置100还实施其它安全措施。在所述虚拟机将被存储在快闪存储器中之前,所述卡可需要其由受信任的授权机构(如前文所说明)签名。此外,还可实施各种加密技术,使得不能够篡改、秘密地启动或不法地拷贝及在装置上安装所述虚拟机(或其它软件应用程序)。可用各种众所周知的散列函数或(另一选择为)用装置唯一的密钥来给VM加密。
可用软件及/或硬件来完成此加密。此可包含使用MAC值、SHA-1值或散列值。已众所周知这些加密/解密技术的基础,且无需在此予以详细说明。
在一个实施例中,用实施在控制器的硬件中的加密引擎来执行所述加密。所述加密引擎的硬件在应用程序的传入数据被加载到卡的存储器中时在进行中(on the fly)给所述传入数据加密。所述控制器用于创建对于所述控制器特殊的散列值且与所述控制器的关联性充当所述控制器的一种类型的签名。此后,在将执行所述应用程序之前检验此签名。至少部分地在所述控制器的硬件(而不是完全在固件中)中实施所述加密引擎产生非常难破坏的强健装置。此是因为不能够用替代控制器(其将具有不同的签名)来取代所述控制器,此是破坏所述装置的安全的常见方式。也不能够容易地伪造所述控制器的签名。如在图9中所见,固件210可具有根加载器部分210a、系统部分210b及所述固件的各种MAC值、SHA-1值或散列值,可将所述固件划分为可被个别地加载到RAM存储器中以用于执行的段或覆盖。对于关于本发明的某些实施例中所利用的加密技术的此方面及其它方面的其它信息,请参考颁发给M.霍兹曼(M.Holtzman)等人的应用,所述应用的全部内容以引用的方式并入本文中。
可看到各种固件应用程序存储在图9中所示的快闪存储器空间中。可认为虚拟机及小应用程序是固件应用程序。举例来说,APP FW1(编号为202a)可包含虚拟机,且小应用程序可由APP FW2(编号为202b)包含/在APP FW2中。如果将这些固件片划分为覆盖,那么应用程序固件覆盖图201a将指示应用程序固件“七巧板”的各个片存储在哪里。所述覆盖的散列值、SHA-1值或MAC值本身以经加密的格式存储在快闪存储器内的表格201b中。这些值本身又可被加密且在某些实施例中可用前文所提及的装置特定硬件加密技术加密。在某些实施例中,针对虚拟机在快闪存储器内保留空间,以促进与卡的其它固件的整合及操作。在安全卡中此尤其重要,其中部分由所述固件提供的卡的安全否则可受到在所述卡上运行且存取所述卡中所存储的数据的虚拟机或任何其它应用程序的威胁。
尽管已显示并说明了本发明的实施例,但可在不背离本发明更宽广方面的前提下对这些例示性实施例做出改变及修改。因此,应明了,本发明还有归属于本发明的范围内的其它实施例,尽管上文没有明确说明所述其它实施例,且因此本发明的范围并非仅限于所提供的例示性实施例。因此,应了解,所附权利要求书陈述本发明的边界及界限。然而,由于语言并不是说明本发明的范围的完美方式,但也应了解,未在权利要求书的明确文字中出现的等效结构及方法也归属于本发明的真实范围内。

具有虚拟机启动的便携式大容量存储装置.pdf_第1页
第1页 / 共29页
具有虚拟机启动的便携式大容量存储装置.pdf_第2页
第2页 / 共29页
具有虚拟机启动的便携式大容量存储装置.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《具有虚拟机启动的便携式大容量存储装置.pdf》由会员分享,可在线阅读,更多相关《具有虚拟机启动的便携式大容量存储装置.pdf(29页珍藏版)》请在专利查询网上搜索。

一种便携式大容量存储装置用于存储大文件,例如数字图片、电影及音乐。所述大容量存储装置具有带有安全机构的固件,所述安全机构限制对读取写入操作的存取以确保所述装置的可靠操作,从而防止对安全内容(例如,受版权保护的资料)的不期望拷贝或存储。尽管所述安全机构通常限制存取,但所述固件可操作以与虚拟机一同工作且允许所述虚拟机存取所述安全内容并连同所述固件一起工作以向所述大容量存储存储器读取及写入数据(如果存在。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1