CN1729436A - 用于验证软件应用完整性的方法和设备 - Google Patents
用于验证软件应用完整性的方法和设备 Download PDFInfo
- Publication number
- CN1729436A CN1729436A CN200380107152.1A CN200380107152A CN1729436A CN 1729436 A CN1729436 A CN 1729436A CN 200380107152 A CN200380107152 A CN 200380107152A CN 1729436 A CN1729436 A CN 1729436A
- Authority
- CN
- China
- Prior art keywords
- software application
- steering order
- verified
- host terminal
- execution
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012795 verification Methods 0.000 title description 2
- 230000015572 biosynthetic process Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000000007 visual effect Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 3
- 230000000052 comparative effect Effects 0.000 claims description 2
- 238000000926 separation method Methods 0.000 claims description 2
- 230000006399 behavior Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 241000209202 Bromus secalinus Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000000454 anti-cipatory effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/109—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/54—Monitoring 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
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/71—Protecting 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/72—Protecting 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
-
- 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/71—Protecting 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/77—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/0806—Details of the card
- G07F7/0813—Specific details related to card security
- G07F7/082—Features insuring the integrity of the data on or in the card
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/12—Card verification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2153—Using hardware token as a secondary aspect
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Radar, Positioning & Navigation (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Remote Sensing (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 (21)
1.验证可在主机终端中执行的软件应用的完整性的方法,特征在于其包括以下步骤:
i)为该软件应用确定至少一个形成可执行证书(4,15)的控制指令系列,其能够在待被验证的软件应用(1,11)的执行期间由所述主机终端执行;
ii)在该主机终端上,执行该待被验证的软件应用(1,11),接收在步骤i)期间因此被确定的该可执行证书(4,15),并且在所述主机终端的存储器上下文中执行用于所述可执行证书的控制指令系列;
iii)比较通过该控制指令的执行因而获得的结果和从认证软件应用所预期的结果;以及
iv)在肯定比较的情况下,继续该待被验证的软件应用(1,11)的执行。
2.根据权利要求1的方法,其中该主机终端提供有处理器,特征在于形成证书(4,15)的控制指令系列被以可由所述主机终端的处理器解释的语言编码。
3.根据权利要求1的方法,其中该主机终端提供有能够仿真处理器的虚拟机,特征在于形成证书(4,15)的控制指令系列被以可由该主机终端的虚拟机解释的语言编码。
4.根据权利要求1-3中之一的方法,其中可执行证书包括部分对认证应用的满意操作必要的处理。
5.根据权利要求1-4中之一的方法,特征在于,在步骤i)中,做好准备以在安全环境中建立具有在所述执行期间认证软件应用的存储器上下文的卡,并且从该存储器卡的值确定用于形成可执行证书(4,15)的控制指令系列。
6.根据权利要求1-5中之一的方法,特征在于,在步骤ii)中,用于主机终端的可执行证书(4,15)从与该主机终端物理分离的电子处理电路发出。
7.根据权利要求1-6中之一的方法,特征在于,在步骤ii)中,存储器上下文的执行值的恢复是通过读取在该主机终端的存储器的各个部分的地址处的值实现的,这些部分包含可执行指令和对于该待被验证的应用固有的数据。
8.根据权利要求1-7中之一的方法,特征在于,在步骤iii)中,通过所述控制指令系列(4,15)的执行所获得的结果产生用于该待被验证的应用的签名,该签名由所述控制指令系列(4,15)计算,所述控制指令系列使用在该应用执行期间待被验证的软件应用的存储器上下文的值。
9.根据前述权利要求之一的方法,特征在于该软件应用包括指令,该指令允许所述控制指令系列(4,15)通过由形成该证书的指令系列的至少一个指令地址替换至少一个用于执行所述软件应用的指令的地址来在其存储器上下文卡中被装载和执行。
10.根据前述权利要求之一的方法,特征在于以如此方式选择控制指令系列(4,15)以使在该控制指令系列执行之后一个软件应用的存储器上下文的状态与在该控制指令系列执行之前该软件应用的存储器上下文的状态相同和/或没有任何修改。
11.根据权利要求1-10中任何一项的方法,特征在于形成证书(4,15)的该指令系列被传送到对待被验证的软件应用的执行是必要的数据流中。
12.根据权利要求1-11中任何一项的方法,特征在于该待被验证的软件应用被整个或部分编码,在该软件应用完整性待验证的情况下实现该软件应用的正确译码。
13.用于验证将要在主机终端中执行的软件应用完整性的设备,用于完成根据权利要求1-12中之一的方法,特征在于其包括:处理装置,能够确定至少一个用于软件应用(1,11)的控制指令系列(4,15),所述控制指令系列能够在该软件应用的执行期间由所述主机终端执行,并且其形成所述软件应用的可执行证书;执行装置,用于在该软件应用执行期间在主机终端上执行形成证书(4,15)的指令系列;比较装置,用于将通过控制指令的执行因而获得的结果与从认证应用所预期的结果进行比较;以及装置,能够在肯定比较的情况下继续该待被验证的软件应用(1,11)的执行,
14.根据权利要求13的设备,特征在于其包括智能卡或任何其他安全电路,其能够包含形成证书(4,15)的控制指令系列,在于主机终端提供有用于读取该智能卡的读取器或提供有用于和该安全电路通信的装置,以及在于提供用于执行该软件应用的装置以便在该待被验证的软件应用的执行期间在该智能卡中或该安全电路中拾取形成证书的指令系列。
15.根据权利要求14的设备,特征在于该主机终端能够向该智能卡或向该安全电路返回由该控制指令系列产生的签名,并且在于该智能卡或该安全电路另外包括软件应用验证装置,依赖由该控制指令系列产生的签名与已知的并先前存储在该智能卡或该安全电路中的用于该签名的值之间的比较结果,其能够使待被验证的软件应用的认证性有效或无效。
16.根据权利要求15的设备,特征在于在否定比较的情况下,该智能卡能够修改该待被验证的软件应用的操作。
17.根据权利要求15或16的设备,特征在于,在与预定条件相一致的签名的不发送的情况下,该智能卡能够修改该待被验证的软件应用的操作。
18.根据权利要求13-17中之一的设备,特征在于在否定比较的情况下,该设备另外包括能够在主机终端中防止该软件应用的操作的装置。
19.根据权利要求13-18中之一的设备,特征在于该主机终端属于由数据处理设备、数字电视解码器、用于可视化多媒体内容的装备、微型计算机、智能卡、个人组织器、游戏控制台,移动电话等形成的组。
20.根据权利要求13-19中之一的设备,特征在于处理装置能够确定多个可执行证书(4,15),其根据所选择的速率和/或条件不同于彼此。
21.根据权利要求13-20中之一的设备,特征在于处理装置能够确定多个可执行证书(14,15),其根据所选择的速率和/或所选择的条件不同于彼此。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
FR02/16652 | 2002-12-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1729436A true CN1729436A (zh) | 2006-02-01 |
CN100520670C 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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003917A (zh) * | 2014-11-28 | 2017-08-01 | 汤姆逊许可公司 | 用于提供验证应用完整性的方法和设备 |
CN107003916A (zh) * | 2014-11-28 | 2017-08-01 | 汤姆逊许可公司 | 用于提供验证应用完整性的方法和设备 |
CN108573144A (zh) * | 2017-03-08 | 2018-09-25 | 智能Ic卡公司 | 安全的执行上下文数据 |
Families Citing this family (26)
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 | 株式会社日立製作所 | 真正性を保証する端末システム、端末及び端末管理サーバ |
WO2011119137A1 (en) | 2010-03-22 | 2011-09-29 | Lrdc Systems, Llc | A method of identifying and protecting the integrity of a set of source data |
EP2466505B1 (en) | 2010-12-01 | 2013-06-26 | Nagravision S.A. | Method for authenticating a terminal |
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 |
WO2013123233A2 (en) * | 2012-02-14 | 2013-08-22 | Apple Inc. | Methods and apparatus for large scale distribution of electronic access clients |
US10140139B1 (en) | 2012-06-19 | 2018-11-27 | Bromium, Inc. | Ensuring the privacy and integrity of a hypervisor |
US9021476B1 (en) * | 2012-06-19 | 2015-04-28 | Bromium, Inc. | Ensuring the privacy and integrity of a hypervisor |
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 |
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 |
US8938547B1 (en) | 2014-09-05 | 2015-01-20 | Openpeak Inc. | Method and system for data usage accounting in a computing device |
US20160071040A1 (en) | 2014-09-05 | 2016-03-10 | Openpeak Inc. | Method and system for enabling data usage accounting through a relay |
US9232013B1 (en) | 2014-09-05 | 2016-01-05 | Openpeak Inc. | Method and system for enabling 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 |
US9100390B1 (en) | 2014-09-05 | 2015-08-04 | Openpeak Inc. | Method and system for enrolling and authenticating computing devices for data usage accounting |
US9232078B1 (en) | 2015-03-16 | 2016-01-05 | Openpeak Inc. | Method and system for data usage accounting across multiple communication networks |
SG10201602449PA (en) | 2016-03-29 | 2017-10-30 | Huawei Int Pte Ltd | System and method for verifying integrity of an electronic device |
US10523418B2 (en) | 2016-06-03 | 2019-12-31 | Cryptography Research, Inc. | Providing access to a hardware resource based on a canary value |
EP3696698A1 (en) * | 2019-02-18 | 2020-08-19 | Verimatrix | Method of protecting a software program against tampering |
Family Cites Families (6)
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 |
EP2306259B1 (en) * | 2000-09-21 | 2015-05-27 | BlackBerry 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 |
-
2002
- 2002-12-24 FR FR0216652A patent/FR2849230B1/fr not_active Expired - Fee Related
-
2003
- 2003-12-23 CA CA002510602A patent/CA2510602A1/fr not_active Abandoned
- 2003-12-23 AU AU2003299401A patent/AU2003299401A1/en not_active Abandoned
- 2003-12-23 CN CN200380107152.1A patent/CN100520670C/zh not_active Expired - Fee Related
- 2003-12-23 EP EP03799695A patent/EP1576444A1/fr not_active Withdrawn
- 2003-12-23 WO PCT/FR2003/003877 patent/WO2004059450A1/fr not_active Application Discontinuation
- 2003-12-23 US US10/539,566 patent/US7739514B2/en not_active Expired - Fee Related
-
2006
- 2006-03-16 HK HK06103351.1A patent/HK1083545A1/xx not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003917A (zh) * | 2014-11-28 | 2017-08-01 | 汤姆逊许可公司 | 用于提供验证应用完整性的方法和设备 |
CN107003916A (zh) * | 2014-11-28 | 2017-08-01 | 汤姆逊许可公司 | 用于提供验证应用完整性的方法和设备 |
CN108573144A (zh) * | 2017-03-08 | 2018-09-25 | 智能Ic卡公司 | 安全的执行上下文数据 |
Also Published As
Publication number | Publication date |
---|---|
HK1083545A1 (en) | 2006-07-07 |
EP1576444A1 (fr) | 2005-09-21 |
AU2003299401A1 (en) | 2004-07-22 |
FR2849230B1 (fr) | 2005-04-22 |
FR2849230A1 (fr) | 2004-06-25 |
CN100520670C (zh) | 2009-07-29 |
CA2510602A1 (fr) | 2004-07-15 |
US7739514B2 (en) | 2010-06-15 |
WO2004059450A1 (fr) | 2004-07-15 |
US20060085645A1 (en) | 2006-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1729436A (zh) | 用于验证软件应用完整性的方法和设备 | |
US9602289B2 (en) | Steganographic embedding of executable code | |
US9892661B2 (en) | Steganographic embedding of hidden payload | |
CN103312512B (zh) | 一种图片验证码的生成方法及装置、身份验证方法及装置 | |
CN1288523C (zh) | 将数字签名嵌入到数字有效负荷中 | |
EP2510474B1 (en) | Steganographic messaging system using code invariants | |
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 | |
CN1716199A (zh) | 使用状态证实的受保护操作系统引导的系统和方法 | |
CA2516580A1 (en) | System and method of multiple-level control of electronic devices | |
EP2831800B1 (en) | Method for protecting data | |
CN102307189A (zh) | 恶意代码检测方法及网络设备 | |
CN111583498A (zh) | 一种基于区块链的电子投票方法、系统、设备及存储介质 | |
MXPA04006452A (es) | Metodo y dispositivo de autenticidad de datos numericos a partir de un modulo de extension de autenticacion. | |
CN1512355A (zh) | 一种elf文件格式的代码签名验证方法 | |
CN1885227A (zh) | 便携式电子设备及其数据输出方法 | |
CN1805338A (zh) | 一种密码设备及其用户管理方法 | |
CN106687973B (zh) | 用于防御基于返回导向编程(rop)的攻击的方法和系统 | |
CN1553315A (zh) | 在安全引导装载程序中使用散列技术 | |
CN1265287C (zh) | 嵌入式软件的保护方法 | |
EP2569726B1 (de) | Verfahren zum überprüfen, ob programmanweisungen von einem tragbaren endgerät ausgeführt wurden | |
CN106407754B (zh) | 一种生成随机布局程序的方法及装置 | |
US11934523B1 (en) | System and method for securing data files | |
CN1537259A (zh) | 计算设备的配置管理的方法和装置 | |
Mercaldo et al. | Evaluating malwares obfuscation techniques against antimalware detection algorithms | |
CN111563258B (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 |