CN102129537A - 用于执行软件应用的方法和用于存储软件应用的存储设备 - Google Patents

用于执行软件应用的方法和用于存储软件应用的存储设备 Download PDF

Info

Publication number
CN102129537A
CN102129537A CN2011100304003A CN201110030400A CN102129537A CN 102129537 A CN102129537 A CN 102129537A CN 2011100304003 A CN2011100304003 A CN 2011100304003A CN 201110030400 A CN201110030400 A CN 201110030400A CN 102129537 A CN102129537 A CN 102129537A
Authority
CN
China
Prior art keywords
software application
memory device
computing equipment
memory
processor
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.)
Pending
Application number
CN2011100304003A
Other languages
English (en)
Inventor
伊夫·梅茨
马可·埃罗德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN102129537A publication Critical patent/CN102129537A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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]
    • G06F21/12Protecting executable software
    • 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]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于执行软件应用的方法和系统。存储设备(120)将软件应用(1221)存储在第一存储器(122)中。软件应用(1221)包括代码,当由计算设备(110)执行时,所述代码对存储设备(120)进行认证。存储设备(120)验证(230)软件应用(1221)的完整性,如果完整性被成功地验证,则将软件应用(1221)传输(240)到计算设备(110)。计算设备(110)执行软件应用(1221),认证(250)存储设备(120)。如果存储设备(120)被成功地认证,计算设备(110)访问(260)存储设备(120)的第二存储器(123;124)中的数据,该数据由软件应用(1221)在执行期间使用。

Description

用于执行软件应用的方法和用于存储软件应用的存储设备
技术领域
本发明总体涉及软件,具体涉及软件副本保护。
背景技术
本部分意在向读者介绍与以下描述和/或请求保护的本发明的各方面相关的现有技术的各方面。相信此论述有助于为读者提供背景信息以便容易地对本发明的各方面有较好理解。因此可知,应从这种角度阅读这些陈述,而不是将其作为对现有技术的认可。
软件分销商通常会面临盗版的问题,某些人使用软件应用的未授权副本而不为之付费。这种情况在计算机游戏领域中更为突出。因此,游戏提供商和分销商使用诸如SecuROM和SafeMedia的保护机制,试图阻止该盗版。然而,黑客已经通过开发出至少能部分地击败这些保护机制的工具而做出反应。
软件应用的分销可能随着支持技术的改变而改变。例如,U3是一种专门用于通用串行总线(USB)密钥的技术;其便于管理驻留在USB密钥闪存存储区中的应用。下一代USB协议会具有比当前一代更大的传输速率,甚至比从硬盘驱动器的传输还要快。
SanDisk TrustedFlash技术在闪存上实现了某些安全特征,例如认证、加密、会话密钥和DRM(数字版权管理)版权管理。然而,该技术主要面向一般数据而不是软件应用的保护。对于具体问题来说,该技术更多的体现为一种技术工具箱,而不是一种解决方案。
由Thomson提供的一种最近的保护方案通过使用绑定至应用支持的反篡改硬件来对抗应用盗版。WO2008/129009描述了一种存储有程序代码的媒体包(media package)。该媒体包具有存储程序代码的第一部分的设备,以及存储程序代码的状态和第二部分的处理设备,其中程序代码的第一部分将在该媒体包外部的处理器上执行。程序代码的第一和第二部分适于交互以执行程序代码。该处理设备包括用于验证状态的装置、用于在状态验证指示其被授权的情况下执行程序代码的第二部分的装置、以及用于与媒体包外部的处理器进行通信的装置。该处理设备还包括适于与状态改变设备交互的接口,有利地属于例如超市中的防盗系统,以便将状态从第一状态设置为第二状态,其中,第一状态未授权执行程序代码的第二部分,而第二状态授权执行程序代码的第二部分。
WO2009/074686描述了一种用于游戏终端的盒式设备(cartridge)。该盒式设备包括ROM、非易失存储器、处理器和调度器(dispatcher)。在终端上运行的应用可以使用预定义的地址与调度器通信,这使得调度器能够根据具体情况而访问ROM、非易失存储器或处理器。该发明对现有技术的副本保护作出了改进,因为如果地址从一个盒式设备改变为另一个,则不会找到一般的(generic)复制方法。另外,为了复制软件,处理器必须被仿真(emulated)。
所提出的该方案基于固定在光盘(或其他媒体)上的安全元件的使用,该安全元件通过无接触的通信方式来访问。缺点是该方案需要使用具有集成无接触读取器的专用光学读取器。
为了克服该缺点,可以将媒体与安全元件分离。然而,这会造成一些严重的使用性缺点,特别是当由青少年和儿童不小心地使用时,例如可能太容易丢失一项或另一项。
此外,安全元件通常较贵,所以系统设计者尝试最小化“安全存储器”的数量。因此,安全元件仅能够存储有限数量的数据,通常是与安全严格相关的。这可能会阻碍在其中存储用户配置数据,例如化身(avatar)3D模型。因此,这会将应用的使用限制为单个计算机,因为与应用有关的数据(设备配置、应用设置、分数)存储在计算机的硬盘上。
EP1076279教导了一种不同的方案,其中,计算机包括用作平台的一般硬件锁(dongle)的可信模块。该硬件锁能够执行许可和完整性检查等。然而,该方案完全不具备移植性,其仅仅应用于包括该可信模块的计算机。
US6442626教导了另一个方案,其中,主机向存储介质发送询问(challenge),该存储介质返回响应。仅当响应正确时,主机才可以访问存储介质上的数据。例如,该方案要求主机在连接之前知晓询问-响应协议,这会使系统的移植性非常低。
因此可以理解,需要一种能够提供软件应用保护方案的技术方案,该方案能够实现应用的移植性(portability),特别是移植到标准的非专用平台。本发明提供了这样的技术方案。
发明内容
在第一方面,本发明提出了一种执行软件应用的方法。存储设备在第一存储器中存储包括代码的软件应用,当由计算设备执行时,该代码对存储设备进行认证。存储设备验证软件应用的完整性。如果成功地验证该完整性,则存储设备将软件应用传输到计算设备来执行,从而认证该存储设备。如果认证失败,则软件应用的执行停止。
在第一优选实施例中,如果存储设备被成功地认证,则计算设备请求存储设备的第二存储器中的数据,该数据允许由软件应用在执行期间使用。
在第二优选实施例中,在认证期间,计算设备和存储设备之间存在安全认证通道。
在第二方面,本发明提出了一种存储设备,包括适于存储软件应用的第一存储器,该软件应用包括代码,当由计算设备执行时,该代码对存储设备进行认证。该存储设备还包括处理器,该处理器适于验证软件应用的完整性,并且仅当成功地验证该完整性时将软件应用传输到计算设备。
在第一优选实施例中,存储设备还包括第二存储器,该第二存储器适于存储允许由软件应用在执行期间使用的数据。该处理器还适于在成功地验证计算设备的处理器之后允许计算设备的处理器访问第二存储器中的数据。
有利地,存储设备的处理器还适于在认证期间与计算设备的处理器建立安全认证通道。
附图说明
将参照附图并通过非限制性示例来描述本发明的优选特征,其中:
图1示出了根据本发明优选实施例的系统;以及
图2示出了在根据本发明的优选实施例的安全设备与计算机之间进行交互的方法。
具体实施方式
本发明的主要概念是一种用于分发计算机应用(以下称作“应用”)、特别是计算机游戏的设备,其不需要在计算机上进行任何永久性的安装。该技术方案(如图1所示)特别适于当今的流动(nomadic)环境。
图1示出了系统100,包括计算机110和本发明的安全设备120。该安全设备120优选地由实现U3技术的USB密钥或其他USB设备来实现,其包括:
-只读存储器(ROM)122,用于存储应用代码1221。
-非易失存储器123,优选地是闪存,用于存储持久性初始化数据和个人数据,例如与用户在游戏中的角色有关的数据。
-安全处理器121,优选地在反篡改硬件(例如智能卡芯片)中实现,它是安全设备120的唯一入口点。安全处理器121可以体现为若干个物理处理器,处理存储器访问并包括完整性单元1211,用于控制应用代码1211的完整性,还包括认证单元1212,用于当应用在计算机110上执行时处理与该应用的认证。
-接口125,优选地是USB接口,用于提供与计算机110的控制和反馈。
-可选的易失性存储器124,用于存储将会在掉电(power off)时自动被删除的数据。易失性存储器124可以用作安全处理器121的附加临时存储器,以及用作应用的临时存储器。
计算机110,优选地是标准的个人计算机(PC),包括处理器111、RAM存储器112和用于和安全设备120通信的接口113。计算机110的操作系统及其应用被加载到RAM存储器112中并从中运行。
安全设备120被设置为:当其连接至计算机110的接口113时,被识别为标准存储设备。
图2示出了在安全设备120和计算机110之间进行交互的方法。安全设备120被首先连接210到计算机110。如果安全设备120没有被计算机识别220,该方法以异常退出290而结束:安全处理器121和计算机110不能通信。
如果安全设备120被识别,则安全处理器121验证230应用代码1221的完整性。该验证检查由安全处理器121的完整性单元1211来进行,例如通过计算散列值并将所计算的散列值与存储的散列值(优选地在制造期间硬编码)进行比较,或通过计算与参考值进行比较的校验和。如果完整性检查失败,则方法以异常退出290而结束:安全处理器121拒绝进一步与计算机110通信,并且应用代码1221不会被上载到计算机110。另一方面,如果完整性检查成功,则应用代码1221被传输240到计算机110,然后被复制到RAM存储器112中,导致加载该应用。
简单地说,对ROM 122中存储的应用代码1221进行完整性验证,然后传输到计算机的RAM存储器112。
之后,该应用由处理器112执行。在执行期间,该应用执行与安全处理器121的认证250。该认证使用应用中的认证函数和数据来执行,其与安全处理器121的认证单元1212和认证数据进行交互。可以使用任何现有技术的认证协议,优选地是建立安全认证通道(SAC)的协议,例如在已授权的美国专利7545932中描述的协议。优选地,应用中的认证函数和数据受到保护,例如通过使用现有技术的软件保护技术。
如果认证检查失败,则方法以异常退出290而结束:安全处理器121拒绝进一步与计算机110进行任何通信,并且应用将会停止(halt)。
如果认证成功,则执行260应用,从而能够通过对安全处理器121的请求而访问易失性存储器124和非易失性存储器123,数据由安全处理器121返回。
当应用的执行结束时,该方法执行正常退出280(即步骤270“退出类型?”中的“正常退出”),该应用请求安全处理器121关闭任何未决(pending)的动作,之后应用将其自身从RAM存储器112中清除。如果还未执行完毕,则应用传输相关的应用参数(例如与用户在游戏中的角色有关的数据)以存储在非易失性存储器123中。之后,安全处理器112优选地清空(nullify)并关闭易失性存储器124,并使所有认证证书无效。
如果安全设备120在应用执行期间被异常地去除(即在步骤270“退出类型?”中的“异常退出”),这是异常退出290。在这种情况下,易失性存储器124中的数据将会丢失。在下一次连接(或上电(power on)),安全处理器121通过轮询回到任何未决动作(例如存储器访问)并使任何先前的认证无效而开始。在此过程后,安全设备120正常地重新启动,即连接对应于方法的步骤210。安全设备120不接受与先前加载的应用的任何通信,直到执行新的完整的传输过程240。如果安全设备120不再存在或已经被重新连接(认证无效),该应用不再能够与安全设备120正确地交互。在这种情况下,应用应当将其自身从RAM存储器112中清除并退出。
可以理解,本发明实现了用于计算机应用的副本保护机制:
-能够确保安全设备上存储的应用的完整性;
-对于计算机来说是非侵入的(non-intrusive):无需附加的硬件或软件;
-特别适于流动环境,允许应用和用户数据再不同的计算机之间移植。
该系统能够抵抗至少以下主要的攻击:
-对接口的软件攻击:安全设备不提供对其存储器的直接访问(读、写、列出)。安全处理器不会实现这种接口。
-对安全设备的硬件攻击:通过定义,安全处理器不能被复制或修改。然而,没有进一步的硬件保护,安全设备的存储器可能被转储(dump)和复制。针对该攻击的对抗措施存在,但是超出了本发明的范围。然而,这里是潜在的应对措施的某些描述:
-只读存储器的转存允许应用代码的逆向工程,这可能被用于修改应用以旁路(bypass)安全处理器的使用。典型的应对措施是使用软件保护技术。
-其他易失性和非易失性存储器的转存允许对私有应用数据的访问。典型的应对措施是使用数据加密,优选地由安全处理器来实现。
可以理解,本发明提供了一种用于针对软件应用的副本保护的设备,其能够实现软件应用和相关联的用户数据的移植性。
在说明书、(适当的)权利要求和附图中公开的每个特征均可独立地或以适当的组合提供。被描述为以硬件实现的特征也可以由软件来实现,反之亦然。权利要求中出现的参考数字仅是进行说明所用的方式,对权利要求的范围没有限制作用。

Claims (6)

1.一种执行软件应用的方法,存储设备(120)将软件应用(1221)存储在第一存储器(122)中,软件应用(1221)包括代码,当由计算设备(110)执行时,所述代码对存储设备(120)进行认证,所述方法包括如下步骤:
存储设备(120)验证(230)软件应用(1221)的完整性;
如果完整性被成功地验证,则:
存储设备(120)将软件应用(1221)传输(240)到计算设备(110);
计算设备(110)执行软件应用(1221);
计算设备(110)使用软件应用(1221)认证(250)存储设备(120);以及
如果认证失败,则停止软件应用的执行。
2.如权利要求1所述的方法,还包括如下步骤:如果存储设备(120)被成功地认证,则计算设备(110)请求存储设备(120)的第二存储器(123;124)中的数据,所述数据可由软件应用(1221)在执行期间使用。
3.如权利要求1所述的方法,其中,所述认证步骤还包括:在计算设备(110)和存储设备(120)之间建立安全认证通道。
4.一种存储设备(120),包括:
第一存储器(122),适于存储软件应用(1221),所述软件应用(1221)包括代码,当由计算设备(110)执行时,所述代码认证所述存储设备(120);以及
处理器(121),适于:
验证软件应用(1221)的完整性;以及
仅当完整性被成功地验证时,将软件应用(1221)传输到计算设备(110)。
5.如权利要求4所述的存储设备,还包括:第二存储器(123;124),适于存储可由软件应用(1221)在执行期间使用的数据;其中,所述处理器(121)还适于在成功地验证计算设备(110)的处理器(111)之后允许计算设备(110)的处理器(111)访问第二存储器(123;124)中的数据。
6.如权利要求5所述的存储设备,其中,存储设备(120)的处理器(121)还适于在认证期间建立与计算设备(110)的处理器(111)的安全认证通道。
CN2011100304003A 2010-01-20 2011-01-19 用于执行软件应用的方法和用于存储软件应用的存储设备 Pending CN102129537A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10305061A EP2348454A1 (en) 2010-01-20 2010-01-20 A method of and a system for execution of a software application
EP10305061.3 2010-01-20

Publications (1)

Publication Number Publication Date
CN102129537A true CN102129537A (zh) 2011-07-20

Family

ID=42237223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100304003A Pending CN102129537A (zh) 2010-01-20 2011-01-19 用于执行软件应用的方法和用于存储软件应用的存储设备

Country Status (5)

Country Link
US (1) US20110179495A1 (zh)
EP (2) EP2348454A1 (zh)
JP (1) JP2011150701A (zh)
KR (1) KR20110085894A (zh)
CN (1) CN102129537A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107430658A (zh) * 2015-04-15 2017-12-01 高通股份有限公司 安全软件认证及验证
WO2020000173A1 (en) * 2018-06-26 2020-01-02 Nokia Technologies Oy Method and apparatus for attestation

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5499807B2 (ja) * 2010-03-19 2014-05-21 富士通株式会社 情報処理プログラム、情報処理方法及び情報処理装置
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
KR101600178B1 (ko) * 2014-05-19 2016-03-14 숭실대학교산학협력단 불법 복제 애플리케이션 탐지 방법 및 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
US6442626B1 (en) * 1998-12-28 2002-08-27 Siemens Aktiengesellschaft Copy protection system only authorizes the use of data if proper correlation exists between the storage medium and the useful data
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US7281273B2 (en) * 2002-06-28 2007-10-09 Microsoft Corporation Protecting content on medium from unfettered distribution
JP2007519278A (ja) * 2003-07-04 2007-07-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コピープロテクトソフトウェアを実行するための装置
US7545932B2 (en) 2004-10-29 2009-06-09 Thomson Licensing Secure authenticated channel
EP1983458A1 (en) 2007-04-19 2008-10-22 THOMSON Licensing Media package, system comprising a media package and method of using stored data
CN101896885B (zh) 2007-12-13 2013-05-29 汤姆森许可贸易公司 复制保护软件卡盒
FR2930058B1 (fr) * 2008-04-14 2010-06-11 Bull Sas Dispositif portable et procede de demarrage externe d'une installation informatique
US8601358B2 (en) * 2009-11-12 2013-12-03 Seagate Technology Llc Buffer transfer check on variable length data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107430658A (zh) * 2015-04-15 2017-12-01 高通股份有限公司 安全软件认证及验证
CN107430658B (zh) * 2015-04-15 2018-11-23 高通股份有限公司 安全软件认证及验证
WO2020000173A1 (en) * 2018-06-26 2020-01-02 Nokia Technologies Oy Method and apparatus for attestation
US11860997B2 (en) 2018-06-26 2024-01-02 Nokia Technologies Oy Method and apparatus for attestation

Also Published As

Publication number Publication date
EP2357588A1 (en) 2011-08-17
KR20110085894A (ko) 2011-07-27
EP2348454A1 (en) 2011-07-27
US20110179495A1 (en) 2011-07-21
JP2011150701A (ja) 2011-08-04

Similar Documents

Publication Publication Date Title
JP5373997B2 (ja) セキュアトランザクションを促進するために、ドメイン特定セキュリティサンドボックスを使用するためのシステムおよび方法
US20190253417A1 (en) Hardware device and authenticating method thereof
CN101263473B (zh) 封装了处理单元的操作系统
US20080300887A1 (en) Usage Model of Online/Offline License for Asset Control
US20100023777A1 (en) System and method for secure firmware update of a secure token having a flash memory controller and a smart card
CN106446692B (zh) 硬件强制访问保护
US10361864B2 (en) Enabling a secure OEM platform feature in a computing environment
CN103069384A (zh) 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法
CN101073235A (zh) 用于分发软件许可证的系统和方法
CN102084373A (zh) 备份存储在安全存储设备中的数字内容
CN102521165A (zh) 安全优盘及其识别方法和装置
WO2002048884A1 (en) Dual processor trusted computing environment
CN102129537A (zh) 用于执行软件应用的方法和用于存储软件应用的存储设备
US20110265186A1 (en) Method for protecting a software license, system for same, server, terminal, and computer-readable recording medium
CN105308610A (zh) 用于设备上的平台和用户应用安全性的方法和系统
JP2001504611A (ja) マイクロコンピュータを有するコンピュータプラットフォームからの情報へのアクセスを安全にし、かつ制御する方法
US8479186B2 (en) Method for program code execution with memory storage controller participation
US7577849B2 (en) Keyed-build system for controlling the distribution of software
JP6354438B2 (ja) 情報処理装置、情報処理システム及び処理プログラム
CN102298528A (zh) 执行软件应用程序的方法、系统以及安全处理器
CN102130907B (zh) 开发者电话注册
US20240211578A1 (en) Protection of an electronic device
US20240211579A1 (en) Protection of an electronic device
CN118246039A (zh) 电子设备的保护
KR20180092152A (ko) 컨텐츠 검증 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110720