CN100520670C - 用于验证软件应用完整性的方法和设备 - Google Patents

用于验证软件应用完整性的方法和设备 Download PDF

Info

Publication number
CN100520670C
CN100520670C CN200380107152.1A CN200380107152A CN100520670C CN 100520670 C CN100520670 C CN 100520670C CN 200380107152 A CN200380107152 A CN 200380107152A CN 100520670 C CN100520670 C CN 100520670C
Authority
CN
China
Prior art keywords
software application
verified
execution
steering order
certificate
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.)
Expired - Fee Related
Application number
CN200380107152.1A
Other languages
English (en)
Other versions
CN1729436A (zh
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.)
Enigma Systems Sarl
Original Assignee
Enigma Systems Sarl
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 Enigma Systems Sarl filed Critical Enigma Systems Sarl
Publication of CN1729436A publication Critical patent/CN1729436A/zh
Application granted granted Critical
Publication of CN100520670C publication Critical patent/CN100520670C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • 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/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/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/12Card verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及验证能够在主机终端执行的软件应用的完整性的方法。本发明方法包括存在于以下的步骤:(i)为该软件应用确定至少一个形成可执行证书(4,15)的控制指令系列,其能够在待被验证的软件应用(1,11)的执行期间由该主机终端执行;(ii)在该主机终端上,执行该待被验证的软件应用(1,11),接收在步骤(i)期间所确定的该可执行证书(4,15)并执行能够在所述主机终端的存储器上下文中被执行的该用于证书的控制指令系列;(iii)比较通过该控制指令的执行因此获得的结果和从认证软件应用所预期的结果;以及(iv)在肯定比较的情况下继续待被验证的软件应用(1,11)的执行。

Description

用于验证软件应用完整性的方法和设备
本发明涉及不必要采用编码/解码密钥(encoding/decoding keys)而在主机终端上被执行的软件应用的认证性的验证。
本发明发现在软件应用并且更具体的是将要在数据处理设备上执行的软件应用的认证中的一般应用,所述数据处理设备更特别的为主机终端,如数字电视解码器,用于可视化多媒体内容的装备,微型计算机,智能卡,个人组织器(personal organizer),游戏控制台,移动电话或者诸如此类。
认证装置是已知的,其允许在主机终端上装载并执行的软件应用的认证性或完整性被验证。通常这样的认证方法使用切割函数(cuttingfunctions)和/或密码算法,其使用如隐藏在主机终端的验证软件中的私有或机密编码/解码密钥这样的机密数据。最经常地,这些机密数据通过目的为使追溯设想(retroconception)更加困难的混淆(obfuscation)技术被保护。
实际上,在所述主机终端中所装载的这种认证装置就如同将被所述认证装置想要控制其认证性的软件应用一样易受攻击。事实上,有经验的窃取者可以对这些认证装置执行恶意修改以便例如恢复所述机密数据,欺骗所述验证系统或使其不由自主产生所预期的结果。
本发明克服了该缺点。其涉及验证可在主机终端中执行的软件应用完整性的方法。
根据本发明的一般定义,该方法包括以下步骤:
i)为所述软件应用确定至少一个形成可执行证书的控制指令系列;
ii)在主机终端上,执行待被验证的软件应用,接收在步骤i)期间因此确定的可执行证书,并且在所述主机终端的存储器上下文(memorycontext)中执行用于所述可执行证书的控制指令系列;
iii)比较通过控制指令的执行从而获得的结果和从认证应用所预期的结果;以及
iv)在肯定比较的情况下,继续该待被验证的软件应用的执行。
由此术语“肯定比较”被理解为该事实即由待被验证的软件应用所使用的数据的任何行为、操作或修改,或者待被验证的软件应用的执行的运行的任何行为、操作或修改产生与由认证应用的执行的运行所预期的行为相同的待被验证的软件的行为。
通过以所选择的速率更新用于可执行证书的控制指令系列,可能执行用于应用的大量的认证装置,并且操作系统地阻挠验证过程的窃取者软件应用实际上成为不可能的。
因而根据本发明的方法允许在主机终端上执行的软件应用的完整性以就熟练于追溯设想的窃取者来说相对令人满意的安全程度被验证,并且其不采用编码/解码密钥或采用昂贵的硬件部件。
根据一个实施例,选择指令控制系列,以使在该控制指令系列执行之后认证软件应用的存储器上下文的状态与在该控制指令系列执行之前软件应用的存储器上下文的状态相同(没有修改)。因此,如果后者是认证的,根据本发明的方法的操作不引起任何在待被验证的软件应用的运行级别的功能失常。
根据一个实施例,其中该主机终端提供有处理器,形成可执行证书的控制指令系列被以能够由该主机终端的处理器解释的语言编码。
作为变体,其中该主机终端提供有能够仿真处理器的虚拟机,形成可执行证书的控制指令系列被以能够由该主机终端的虚拟机解释的语言编码。
实际上,用于执行软件应用的存储器上下文尤其是由符号(函数,变量等),可执行指令,数据,以及应用的执行组(execution battery)的状态在存储器中的地址组成。这些值对于在执行期间的每个计算机应用和对于每个类型的处理器或虚拟机是唯一的。
在步骤i)中,做好准备以在安全的环境中建立具有在执行期间的认证软件应用的存储器上下文的卡,以通过使用该存储器卡的值确定形成可执行证书的控制指令系列。
在步骤ii)中,用于主机终端的可执行证书的路由器件被容纳在与该主机终端物理分离的电子处理电路中。仍在步骤ii)中,存储器上下文的执行值的恢复通过读取在该主机终端的存储器的各个部分的地址处的值来实现。在这些部分中容纳了应用固有的可执行指令,变量的值和待被控制的应用的函数的引用的值。
在步骤iii)中,通过所述控制指令系列的执行所获得的结果是用于待被验证的应用的签名。该签名由所述的控制指令系列计算,其使用在执行期间待被验证的软件应用的存储器上下文的值。优选地,该软件应用包括指令,其允许所述指令系列通过由形成可执行证书的控制指令系列的至少一个指令的地址替换至少一个用于执行所述软件应用指令的地址而被插入到并执行在其存储器上下文中。
根据另一实施例,形成可执行证书的控制指令系列被传送到对于待被验证的软件应用的执行是必要的数据流中。为强制用于所述可执行证书的指令系列的执行,所述有用数据被先前通过编码方法保护。如果待被验证的应用是认证的应用,则这些数据的解码由所述用于可执行证书的控制指令系列正确实现。如果编码方法使用密钥,则后者通过控制指令使用待被验证的软件应用的存储器上下文的值被产生,所述值即形成待被验证的软件应用的签名的值。来获得编码密钥的操作被编码在用于可执行证书的指令系列中。
作为变体,该保护方法没有密钥,产生数据可访问性的操作系列是在用于可执行证书的控制指令系列中。实际上,用于待被验证的软件应用的操作的必要数据的保护在这些数据被发送之前是在安全的环境中进行的。该保护方法,具有或不具有密钥,都必须是可逆的。
根据又一实施例,其中软件应用的执行采用智能卡或任何其他安全电路来操作,该控制指令系列被容纳在该智能卡(或该安全电路)中并被发送到待被验证的软件应用,所述软件应用能够恢复并且执行因此与其需要用于操作的数据一起发送的所述控制指令系列。实际上,访问由智能卡(或安全电路)发送的数据对待被验证的软件应用一定是必要的,因为这将以与认证应用相同的方式表现。
根据另一实施例,随着待被验证的软件应用的完整性的否定验证,可执行证书执行指令,其采用属于另一应用的函数。
为了完成根据本发明的方法,本发明也涉及用于验证软件应用完整性的设备。
根据本发明的重要特性,该验证设备包括能够为该软件应用确定至少一个形成可执行证书的控制指令系列的处理装置,其能够在待被验证的软件应用的执行期间由所述主机终端执行,和用于比较待被验证的软件应用的行为上的可执行证书的执行结果与从认证应用的行为所预期的结果的比较装置,以及修改作为该比较结果的功能的待被验证的软件应用的执行的装置。
根据一个实施例,该验证设备包括智能卡或任何其他安全电路,其能够包含一方面形成可执行证书的控制指令系列,以及另一方面实现该验证测试的应用。该主机终端提供有智能卡读取器(或提供有与安全电路通信的装置),并且用于执行待被验证的软件应用的装置,其被设计以在其存储器上下文中装载和执行形成证书的指令系列。在智能卡或安全电路中的验证应用被设计以便于在控制指令系列的执行的结果在前面限定的情形中不被发送到在该智能卡或该安全电路中的验证应用的情况下,或在验证结果证明为否定的情况下,修改待被验证的软件应用的执行的正常运行。
根据变体,该设备能够确定多个可执行证书,其根据所选择的速率和/或条件不同于彼此。实际上,该主机终端属于由数据处理设备,数字电视解码器,用于可视化多媒体内容的装备,微型计算机,智能卡,个人组织器,游戏控制台,移动电话或诸如此类形成的组。
本发明的其他特性和优点将根据以下的详细描述和附图显现,其中:
-图1是示出软件应用验证的示意图,其有用数据包含根据本发明的可执行证书;以及
-图2是示出根据本发明使用智能卡的软件应用验证的示意图。
实际上,对于软件应用来说术语“真正的(genuine)”和“认证的(authentic)”在这里被不相关地使用。
这里“可执行证书”被理解为在执行期间可在软件应用的存储器上下文中执行的控制指令系列,并且其执行产生如执行待被验证的软件应用的效果;如果后者是真正的,其具有与所预期行为相同的行为。
参考图1,待被验证的软件应用1被装载到主机终端中(未示出)。例如,该主机终端属于由数据处理设备,数字电视解码器,用于可视化多媒体内容的装备,微型计算机,智能卡,个人组织器,游戏控制台,移动电话或诸如此类形成的组。
实际上,待被验证的软件应用1处理3先前被保护的数据2,也就是说当可执行证书的控制指令(其将在以下被更详细地描述)还没有认证待被验证的应用时,所述数据不可被待被验证的该应用处理。使这些数据不可访问的一个方法包括对他们进行编码。可以想像任何其他可逆保护的方法。
该被保护的数据2包含7包括未被保护的控制指令系列的可执行证书4,其由待被验证的应用1执行5。实际上用于可执行证书4的控制指令被以仍被称为机器语言的主机终端的处理器的语言编码。作为变体,用于可执行证书4的指令也可以被以仿真处理器行为的虚拟机的语言编码。
以机器语言的用于可执行证书4的这些控制指令是在它们被发送到待被验证的软件应用之前被先前确定的二进制结构。
选择用于可执行证书4的控制指令以使仅认证的软件应用可以执行它们以产生与所预期的结果相同的结果。如将在下文中更详细地所见的,通过以如此方式选择控制指令系列来获得功能失常的不存在,以使在控制指令系列执行之后一个待被验证的软件应用1的存储器上下文的状态与在该控制指令系列执行之前该软件应用的存储器上下文的状态相同。
可执行证书4也可以被插入到应用1能够处理的数据流中。在数据流中可执行证书的插入可以对应于这种情况,其中必须认证受保护的多媒体流处理应用,其在后者已履行如内容销售者限定的义务的情况下对该用户是可访问的。多媒体流的源可以是广播网络的发送点,主机终端的永久性存储器,或者甚至是可从主机终端抽出的存储器单元。
在执行期间,通过使用9待被控制的应用1的存储器上下文,可以选择用于可执行证书4的控制指令以计算6待被控制的应用1的签名8。通过控制指令使用存储器上下文是通过在执行期间拾取待被验证的应用的某些符号(变量,函数,可执行指令)的值来得到的。这些值的恢复尤其依赖于在主机终端的处理器中实施的存储器模式。
实际上,用于可执行证书4的控制指令系列产生6依赖9待被验证的软件应用1的存储器上下文的签名8,并且使用该签名以提升受保护数据2的保护10。如果该软件应用是认证的,则使得数据2可访问并且由待被验证的软件应用1对它们的处理3将产生与认证应用的结果相同的结果。
在包含控制指令的可执行证书4被插入到数据流中的情况中,则必须强制该应用执行这些指令。该控制指令然后被编程以解码部分待被验证的应用必须处理的数据流。这使在由待被验证的应用为了处理而访问该流被之前通过编码在前处理该数据流成为必要。解码算法可以在控制指令中实施,或者以在终端中实现并由控制指令调用的功能的形式成为可用的。密钥如果被解码算法所使用,则在执行期间由控制指令通过使用先前定义的应用的存储器上下文的值来计算。
参考图2,待被验证的软件应用11与智能卡或相似类型的安全电路13交互12。
智能卡13发送19包含控制指令的可执行证书15,所述控制指令由待被验证的软件应用11装载和执行16。因此,为了使智能卡13操作的应用11成为必需12,控制指令15被存储在智能卡13中并且借助于交互链接12被发送到待被控制的应用11。
为了操作,待被控制的应用11使用21通过与智能卡13的交互12恢复的数据20。该数据20包含22可执行证书15。用于可执行证书15的控制指令在它们被存储在智能卡13上时由待被控制的应用11以如此方式装载,以使后者根据参考图1所解释的原理执行它们16。
待被验证的软件应用的签名18由用于可执行证书的控制指令通过使用14待被控制的软件应用的存储器上下文而产生17。
用于可执行证书的控制指令与安全电路13以如此方式交互19,以使被控应用11的签名18被发送到另一验证应用24,其被容纳在这里被认为是安全环境的智能卡13上。在智能卡中的验证应用24为每种类型的处理器和为每个待被控制的应用维护可执行控制指令15和所预期的结果之间的对应表。
该对应表允许由可执行证书15所计算的签名的有效性被验证23。如果验证的结果是否定的,容纳在智能卡中的验证应用与待被控制的应用交互12以便于修改后者的操作。如果验证是肯定的,则智能卡13产生软件应用11所需要的以便操作21的数据20。
在一个实施例中,容纳在智能卡或安全电路中的证书根据所选择的速率或条件改变。

Claims (23)

1.一种验证可在主机终端中执行的软件应用的完整性的方法,特征在于其包括以下步骤:
i)从在安全的环境中执行期间的认证软件应用的存储器上下文中,为该软件应用确定至少一个形成可执行证书(4,15)的控制指令系列,其能够在待被验证的软件应用(1,11)的执行期间由所述主机终端执行;
ii)在该主机终端上,执行该待被验证的软件应用(1,11),接收在步骤i)期间因此被确定的可执行证书(4,15),并且在所述主机终端的存储器上下文中执行用于所述可执行证书的控制指令系列;
iii)比较通过该控制指令的执行因而获得的结果与从认证的软件应用所预期的结果,所述通过该控制指令的执行因而获得的结果使用了在执行期间待被验证的软件应用(1,11)的存储器上下文的值;
iv)在肯定比较的情况下,亦即对待被验证的软件应用使用的数据进行的任何行为、操作或修改,或者对待被验证的软件应用的执行的运行进行的任何行为、操作或修改,产生了与通过运行认证应用的执行所预期的行为等同的待被验证的软件应用的行为,该待被验证的软件应用的执行正常运行;以及
v)如果所述应用不是认证应用,则该待被验证的软件应用不再正常运行。
2.根据权利要求1的方法,其中该主机终端提供有处理器,特征在于该形成证书(4,15)的控制指令系列被以能够被所述主机终端的处理器解释的语言编码。
3.根据权利要求1的方法,其中该主机终端提供有能够仿真处理器的虚拟机,特征在于该形成证书(4,15)的控制指令系列被以能够由该主机终端的虚拟机解释的语言编码。
4.根据权利要求1-3中之一的方法,其中该可执行证书包括部分对认证应用的满意操作必要的处理。
5.根据权利要求1的方法,特征在于在步骤i)中做好准备以在安全环境中建立具有在所述执行期间认证软件应用的存储器上下文的卡,并且从该存储器卡的值确定将要形成可执行证书(4,15)的控制指令系列。
6.根据权利要求1的方法,特征在于,在步骤ii)中用于主机终端的可执行证书(4,15)从与该主机终端物理分离的电子处理电路发出。
7.根据权利要求1的方法,特征在于,在步骤ii)中存储器上下文的执行值的恢复是通过读取在主机终端的存储器的各个部分的地址处的值实现的,这些部分包含可执行指令以及对于该待被验证的应用固有的数据。
8.根据权利要求1的方法,特征在于,在步骤iii)中通过所述控制指令系列的执行所获得的结果产生用于该待被验证的应用的签名,该签名由所述控制指令系列被计算,所述控制指令系列使用在该应用执行期间待被验证的软件应用的存储器上下文的值。
9.根据权利要求1的方法,特征在于该软件应用包括指令,该指令允许所述控制指令系列通过由形成证书的指令系列的至少一个指令地址替换至少一个用于执行所述软件应用的指令的地址来在其存储器上下文卡中被装载和执行。
10.根据权利要求1的方法,特征在于以如此方式选择控制指令系列以使在该控制指令系列执行之后一个软件应用的存储器上下文的状态与在该控制指令系列执行之前该软件应用的存储器上下文的状态相同和/或没有任何修改。
11.根据权利要求1的方法,特征在于形成证书(4,15)的指令系列被传送到对待被验证的软件应用的执行必要的数据流中。
12.根据权利要求1的方法,特征在于待被验证的软件应用被整个或部分编码,在该软件应用的完整性待验证的情况下得到该软件应用的正确译码。
13.根据权利要求1的方法,特征在于其另外包括在步骤i)之后的步骤,该步骤包括:将所述可执行证书(4)插入到数据流中;以及通过编码来处理待被验证的软件应用(1,11)的满意操作所必须的数据流,这是在该数据流尚未通过待被验证的软件应用(1,11)而被获得以用于处理之前进行的。
14.一种用于验证打算在主机终端中执行的软件应用完整性的设备,用于完成根据权利要求1的方法,特征在于其包括
-处理装置,能够从在安全的环境中执行期间的认证软件应用的存储器上下文中,确定至少一个用于软件应用(1,11)的控制指令系列,所述控制指令系列可以在该软件应用执行期间由所述主机终端执行,并且其形成所述软件应用的可执行证书,
-装置,用于把所述可执行证书移动到该主机终端,以及执行装置,用于在所述软件应用的执行期间在所述主机终端上执行形成证书(4,15)的指令系列,
-比较装置,用于将通过控制指令的执行所获得的结果与从认证应用所预期的结果进行比较,所述通过控制指令的执行所获得的结果使用了在执行期间待被验证的软件应用(1,11)的存储器上下文的值,以及
-装置,能够在肯定比较的情况下,亦即对待被验证的软件应用使用的数据进行的任何行为、操作或修改,或者对待被验证的软件应用的执行的运行进行的任何行为、操作或修改,产生了与通过运行认证应用的执行所预期的行为等同的待被验证的软件应用的行为,使该待被验证的软件应用的执行正常运行,而如果所述应用不是认证应用,则使该待被验证的软件应用不再正常运行。
15.根据权利要求14的设备,特征在于其包括智能卡或任何其他安全电路,其能够包含形成证书(4,15)的控制指令系列,在于该主机终端提供有用于读取智能卡的读取器,或提供有用于与该安全电路通信的装置,并在于提供用于执行该软件应用的装置以便在该待被验证的软件应用的执行期间在智能卡中或在安全电路中拾取形成证书的指令系列。
16.根据权利要求15的设备,特征在于该主机终端能够向该智能卡或该安全电路返回由控制指令系列产生的签名,以及在于该智能卡或该安全电路另外包括软件应用验证装置,依赖由该控制指令系列产生的签名与已知的并先前存储在该智能卡中或在该安全电路中的用于该签名的值之间的比较结果,其能够使待被验证的软件应用的认证性有效或者无效。
17.根据权利要求16的设备,特征在于,在否定比较的情况下,该智能卡能够修改该待被验证的软件应用的操作。
18.根据权利要求16或权利要求17的设备,特征在于,在与预定条件一致的签名的不发送情况下,该智能卡能够修改该待被验证的软件应用的操作。
19.根据权利要求14的设备,特征在于在否定比较的情况下,该设备另外包括能够防止在主机终端中该软件应用的操作的装置。
20.根据权利要求14的设备,特征在于该主机终端属于由数据处理设备,数字电视解码器,用于可视化多媒体内容的装备,微型计算机,智能卡,个人组织器,游戏控制台,移动电话或诸如此类形成的组。
21.根据权利要求14的设备,特征在于该处理装置能够确定多个可执行证书(4,15),其根据所选择的速率和/或条件不同于彼此。
22.根据权利要求14的设备,特征在于该处理装置能够确定多个可执行证书(14,15),其根据所选择的速率和/或所选择的条件不同于彼此。
23.根据权利要求14的设备,特征在于其另外包括:
装置,能够将所述可执行证书(4)插入到数据流中;和
装置,用于通过编码来处理待被验证的软件应用(1,11)的满意操作所必须的数据流,这是在该数据流尚未通过待被验证的软件应用(1,11)而被获得以用于处理之前进行的。
CN200380107152.1A 2002-12-24 2003-12-23 用于验证软件应用完整性的方法和设备 Expired - Fee Related CN100520670C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR02/16652 2002-12-24
FR0216652A FR2849230B1 (fr) 2002-12-24 2002-12-24 Procede et dispositif de verification de l'integrite d'une application logicielle sans cle de chiffrement/dechiffrement

Publications (2)

Publication Number Publication Date
CN1729436A CN1729436A (zh) 2006-02-01
CN100520670C true CN100520670C (zh) 2009-07-29

Family

ID=32406503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200380107152.1A Expired - Fee Related CN100520670C (zh) 2002-12-24 2003-12-23 用于验证软件应用完整性的方法和设备

Country Status (8)

Country Link
US (1) US7739514B2 (zh)
EP (1) EP1576444A1 (zh)
CN (1) CN100520670C (zh)
AU (1) AU2003299401A1 (zh)
CA (1) CA2510602A1 (zh)
FR (1) FR2849230B1 (zh)
HK (1) HK1083545A1 (zh)
WO (1) WO2004059450A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659237B2 (en) 2016-03-29 2020-05-19 Huawei International Pte. Ltd. System and method for verifying integrity of an electronic device

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060048226A1 (en) * 2004-08-31 2006-03-02 Rits Maarten E Dynamic security policy enforcement
EP1698958A1 (fr) * 2005-02-25 2006-09-06 Axalto SA Procédé de sécurisation de l'ecriture en mémoire contre des attaques par rayonnement ou autres
GB0514492D0 (en) * 2005-07-14 2005-08-17 Ntnu Technology Transfer As Secure media streaming
GB2443264A (en) * 2006-10-27 2008-04-30 Ntnu Technology Transfer As Integrity checking method for a device in a computer network, which controls access to data; e.g. to prevent cheating in online game
CN101226569A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 在虚拟机中验证代码模块的方法及装置
JP5320561B2 (ja) * 2009-03-19 2013-10-23 株式会社日立製作所 真正性を保証する端末システム、端末及び端末管理サーバ
CN102812431A (zh) 2010-03-22 2012-12-05 Lrdc系统有限公司 用于识别与保护一组源数据的完整性的方法
PL2466505T3 (pl) 2010-12-01 2013-10-31 Nagravision Sa Sposób rozpoznawania autentyczności terminala
US8615684B2 (en) * 2011-04-18 2013-12-24 Astronautics Corporation Of America High reliability processor system
US8695060B2 (en) * 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
KR101716743B1 (ko) * 2012-02-14 2017-03-15 애플 인크. 복수의 액세스 제어 클라이언트를 지원하는 모바일 장치, 및 대응 방법들
US9135046B1 (en) 2012-06-19 2015-09-15 Bromium, Inc. Preventing host operating system from inspecting or modifying data received by hardware controller by moving host operating system into a virtual machine after boot up
US9021476B1 (en) * 2012-06-19 2015-04-28 Bromium, Inc. Ensuring the privacy and integrity of a hypervisor
US10140139B1 (en) 2012-06-19 2018-11-27 Bromium, Inc. Ensuring the privacy and integrity of a hypervisor
CN103902878B (zh) * 2012-12-28 2017-08-22 新华三技术有限公司 一种虚拟环境下的License认证方法和装置
CN104134021B (zh) * 2013-06-20 2016-03-02 腾讯科技(深圳)有限公司 软件的防篡改验证方法及装置
US9762657B2 (en) 2014-06-17 2017-09-12 International Business Machines Corporation Authentication of mobile applications
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
EP3026558A1 (en) * 2014-11-28 2016-06-01 Thomson Licensing Method and device for providing verifying application integrity
EP3026557A1 (en) * 2014-11-28 2016-06-01 Thomson Licensing Method and device for providing verifying application integrity
US9232078B1 (en) 2015-03-16 2016-01-05 Openpeak Inc. Method and system for data usage accounting across multiple communication networks
US10523418B2 (en) 2016-06-03 2019-12-31 Cryptography Research, Inc. Providing access to a hardware resource based on a canary value
EP3373178A1 (en) * 2017-03-08 2018-09-12 Secure-IC SAS Comparison of execution context data signatures with references
EP3696698A1 (en) * 2019-02-18 2020-08-19 Verimatrix Method of protecting a software program against tampering

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
WO1999035582A1 (en) * 1998-01-05 1999-07-15 Chew Wah Lui A computer software activation system and a method of authenticating computer software
US6308270B1 (en) * 1998-02-13 2001-10-23 Schlumberger Technologies, Inc. Validating and certifying execution of a software program with a smart card
AUPP734298A0 (en) * 1998-11-26 1998-12-24 Aristocrat Leisure Industries Pty Ltd Electronic casino gaming with authentication and improved security
EP1626326B1 (en) * 2000-09-21 2010-09-01 Research In Motion Limited Software code signing system and method
US6782477B2 (en) * 2002-04-16 2004-08-24 Song Computer Entertainment America Inc. Method and system for using tamperproof hardware to provide copy protection and online security

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Protecting Software Code by Guards. Hoi Chang and Mikhail J. Attallah.Lecture Notes in Computer Science,Springer Verlag,Vol.2320 . 2002
Protecting Software Code by Guards. Hoi Chang and Mikhail J. Attallah.Lecture Notes in Computer Science,Springer Verlag,Vol.2320 . 2002 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659237B2 (en) 2016-03-29 2020-05-19 Huawei International Pte. Ltd. System and method for verifying integrity of an electronic device

Also Published As

Publication number Publication date
FR2849230A1 (fr) 2004-06-25
AU2003299401A1 (en) 2004-07-22
US7739514B2 (en) 2010-06-15
CA2510602A1 (fr) 2004-07-15
US20060085645A1 (en) 2006-04-20
FR2849230B1 (fr) 2005-04-22
HK1083545A1 (en) 2006-07-07
CN1729436A (zh) 2006-02-01
WO2004059450A1 (fr) 2004-07-15
EP1576444A1 (fr) 2005-09-21

Similar Documents

Publication Publication Date Title
CN100520670C (zh) 用于验证软件应用完整性的方法和设备
AU730253B2 (en) Method and apparatus for operating resources under control of a security module or other secure processor
US6957338B1 (en) Individual authentication system performing authentication in multiple steps
CZ20022659A3 (cs) Způsob ovládání přístupu ke zdroji počítačového systému a počítačový systém k provádění tohoto způsobu
EP0855815B1 (en) Certification of cryptographic keys for chipcards
CN106161442A (zh) 一种系统控制用户登录方法
CN107273150B (zh) 预加载固件下载写入方法及装置
CN109598104A (zh) 基于时间戳和秘密鉴权文件的软件授权保护系统及其方法
CN100444184C (zh) 软件身份认证的方法和系统
CN104850764B (zh) 一种基于智能卡的软件保护方法及系统
CN104735085A (zh) 一种终端双因子安全登录防护方法
CN101286846B (zh) 交互式身份认证方法
CN104572135A (zh) 指令的处理方法、指令的处理装置和终端
WO2006093238A1 (ja) 認証補助装置、認証主装置、集積回路及び認証方法
CN102298528A (zh) 执行软件应用程序的方法、系统以及安全处理器
US9183160B2 (en) Integrated circuit board with secured input/output buffer
US11954196B2 (en) Mutual authentication of a user-controllable device or system containing sensitive or confidential
CN1553315A (zh) 在安全引导装载程序中使用散列技术
EP2569726B1 (de) Verfahren zum überprüfen, ob programmanweisungen von einem tragbaren endgerät ausgeführt wurden
WO2009095900A1 (en) Data security in client/server systems
WO1998003903A2 (en) Method and apparatus for operating resources under control of a security module or other secure processor
CN105262594A (zh) 一种身份认证的方法及装置
Cha CRYPTEX model for software source code
CN104462941A (zh) 一种验钞模块的信息保护方法及其装置
CN110443081A (zh) 一种用于保护输入信息安全的键盘系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1083545

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1083545

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090729

Termination date: 20161223

CF01 Termination of patent right due to non-payment of annual fee