CN107003916A - 用于提供验证应用完整性的方法和设备 - Google Patents

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

Info

Publication number
CN107003916A
CN107003916A CN201580063329.5A CN201580063329A CN107003916A CN 107003916 A CN107003916 A CN 107003916A CN 201580063329 A CN201580063329 A CN 201580063329A CN 107003916 A CN107003916 A CN 107003916A
Authority
CN
China
Prior art keywords
verification
application
signed
trusted entity
amended
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
CN201580063329.5A
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.)
InterDigital CE Patent Holdings 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 CN107003916A publication Critical patent/CN107003916A/zh
Pending legal-status Critical Current

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/64Self-signed certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

设备(110)下载并安装(S204)应用的APK文件,在此期间代码被修改。向可信实体(130)发送(S206)经修改的代码的校验和,可信实体检查(S208)接收到的校验和是否匹配所存储的应用的校验和。如果是,则接收到的校验和被签名(S210)并返回(S212)到其被存储(S214)的设备(110)。然后,设备可以通过计算与经签名的校验和进行比较的修改后的代码的校验和来检查修改后的代码的完整性(S216)。该解决方案特别适用于使用安卓OS的设备,因为DEX在安装期间被优化为没有经认证的校验和的ODEX。

Description

用于提供验证应用完整性的方法和设备
技术领域
本公开一般涉及计算机***,具体地,涉及在这种***中的软件代码的完整性。
背景技术
本部分是旨在向读者介绍可能与下文所述的和/或所要求保护的本公开各个方面相关的现有技术的各方面。这样的讨论有助于向读者提供背景信息以便帮助更好地理解本公开的各方面。因此,应当理解,这些陈述应鉴于此被解读,而不是作为对现有技术的承认。
由于各种原因,通常希望确保处理设备执行未被篡改的软件。为此,可以使用不同的技术来保护软件镜像免受篡改攻击。最常见的技术是计算代码片段上的签名或校验和,然后在稍后阶段验证签名或校验和。通常在无需任何秘密的情况下计算和验证校验和,而密码签名的生成需要私钥,签名的验证需要相应的公钥。
基于校验和的保护的示例是Windows操作***中使用的可移植可执行(PE)格式的CRC32。PE头包含一个CRC32字段,该字段给出相应代码部分的校验和。为了成功绕过保护,攻击者首先修改代码部分,然后用在修改后的代码部分上计算的新值替换原始校验和。这种类型的攻击是可能的,因为攻击者不需要任何秘密来更新修改后的代码部分的校验和。
鉴于校验和的弱点,加密签名是优选的解决方案。签名的生成在代码释放之前执行,并且使用私有密钥(因此秘密)。关联的公钥被附加到代码,之后在安装代码或运行时用来检查代码的完整性。攻击者仍然可以修改代码,但是由于没有私钥无法生成代码的正确签名,所以攻击失败。
存在许多用于检查以原生代码(native code)交付和执行的应用的完整性的解决方案,例如由Arxan(GuardITTM)、Metafortress(MetafortressTM)等提供的解决方案。原生代码是可由处理器直接执行的汇编指令集。指令集在安装后不改变,这意味着程序完整性值在安装前后保持相同(即随时间保持不变)。在这种情况下,可以预先生成签名,并与应用包一起交付。
另一方面,以解释代码的形式分发的应用——诸如Java编写的代码、Android DEX代码等——包括在执行前必须经过解释器的中间指令。与原生代码不同,解释代码可以在安装时间之后被修改,以用于优化目的。代码修改通常非常依赖于目标平台,因此不一定是可预测的。如果代码被修改,则在解释代码上生成的签名不能用于在运行时动态地检查代码完整性和真实性。
为了将应用软件分发并安装到上文提到的安卓(Android)操作***上,使用一种被称为APK(安卓应用包)的文件格式。要制作一个APK文件,首先将安卓程序编译为中间语言,然后将其部分打包成压缩归档文件(ZIP格式)。归档文件包含在单个DEX(Dalvik可执行代码)文件、各种资源(例如图像文件)以及APK文件的清单中的整个程序代码。归档文件包括两个附加文件:CERT.SF和CERT.RSA。CERT.SF包含所有其他归档文件的加密散列;CERT.RSA包含用于签名验证的公钥。只有CERT.SF使用RSA私钥来签名。CERT.SF的RSA签名能够实现在安装期间对APK文件的全部内容的验证。事实上,CERT.SF文件中提到的所有文件都被间接签名,因为CERT.SF包含它们的散列。在安装之前更改任何文件将导致错误,因为软件会检测到文件摘要与CERT.SF文件中的散列不匹配。备选地,修改CERT.SF文件内的加密散列值(如上述已经描述的针对基于校验和的验证的攻击中)将导致签名验证期间的错误。
DEX文件头还包含DEX文件内容的全局校验和。在第一次执行应用时,安卓***使用优化器,该优化器在执行之前及时将DEX解释字节码修改为优化机器指令序列,也称为ODEX(优化DEX)。优化器还更新校验和。然后,将ODEX文件存储在安卓文件***中的特定存储库中,以备将来使用。ODEX文件然后成为应用软件的参考,当它存在时,不再使用原始DEX文件。
在运行时,***可以使用ODEX校验和来验证应用的完整性。但是,在安卓操作***中默认情况下不设置此选项,并且用于执行ODEX代码的Dalvik机器并不总是检查ODEX校验和,因为校验和验证对执行性能和引导时间的影响不可忽视。
安卓5.0及更高版本引入了安卓运行时(Android Runtime)(ART)来替代Dalvik机器。应用仍然部署在DEX代码中,但在安装时,使用提前编译(AOT)功能将DEX代码编译为原生代码。与以前的解决方案类似,DEX文件上的AOT编译产生一个二进制可执行可链接格式(ELF)文件(其取代以前解决方案中的ODEX)。然后,应用的DEX代码被编译一次,此后,每次执行应用时都启动ELF代码。在ART直接运行原生代码(ELF代码)时,它带来更快的应用执行并改善总体功耗。
因此,可以看出,在安卓***中,APK签名仅在安装时被验证。此外,如果用户允许安装来自不可信来源的应用,即使未被中央授权机构签名,APK也可以安装在安卓设备上。然后,应用开发者使用他们自己的与任何可信授权机构都不关联的自签名证书。在这种情况下,在其所有者不知情的情况下,被篡改的应用可以被任何黑客重签名并重新安装在安卓设备上。
如上所述,安卓应用使用解释器可移植格式(DEX)。这种可移植格式可以在以下不同架构和特性的大量设备上执行:ARM,x86,MIPS,Little/Big Endian等。为了提高性能,DEX代码在安装时或应用第一次使用时被修改,以产生针对目标设备进行优化的ODEX或ELF二进制文件。在优化或OAT编译期间,可以代码内的各种内容被修改:指令可以被其它指令替代,指令的对齐可以改变,字节顺序可以交换,等等。
这时,优化和OAT编译引发了安全问题。虽然DEX文件的签名仍然可以使用CERT.SF和CERT.RSA来验证,但由于ODEX和ELF文件已被修改,并且它们的完整性不再关联到原始的DEX签名,所以不是这种情况。换句话说,完整性和真实性只能在安装时进行验证,而不能在运行时进行验证,因为攻击者能够修改ODEX和ELF代码并相应地更新头中的校验和。
因此,***容易受到至少两类攻击:远程攻击和根攻击。在远程攻击中,下载的恶意应用提升其特权并获得***许可。恶意应用然后可以篡改存储在内部存储设备的缓存存储库上的ODEX和ELF文件。在根攻击中,攻击者例如通过盗取设备或者当所有者不在场且未锁定设备会话时访问设备,来获得安卓设备。攻击者可以通过USB链接从设备的内部存储设备中找回已安装的应用,修改应用,然后将修改后的应用推送回内部存储设备上。为了使后一种攻击成功,设备必须是“根权限”(即,控制设备的安卓***要求“根权限访问”)。
因此,安卓应用完整性的信任可能在应用生命周期中被破坏。可以信任安卓***上安装的内容,但不一定信任正在运行的内容。
应当理解,期望有一种解决方案,其克服与解释代码应用的完整性和真实性相关的至少一部分问题。本公开提供了这种解决方案。
发明内容
在第一方面,本公开涉及一种用于处理应用的设备。所述设备包括:接口,被配置为接收应用;存储器,被配置为存储应用和经签名的校验和;以及处理单元,被配置为修改应用以获得修改后的应用,向可信实体发送针对修改后的应用生成的校验和,从可信实体接收与所发送的校验和相对应的经签名的校验和,并将经签名的校验和存储在存储器中。
第一方面的各种实施例包括:
所述应用与第一校验和一起被接收,并且所述处理单元还被配置为使用所述第一校验和来验证所述应用的完整性。
所述处理单元被配置为使用所述经签名的校验和来在所述修改后的应用的运行时验证所述修改后的应用的完整性。
应用被实现为解释代码(DEX),并且修改后的应用被实现为经优化的解释代码(ODEX),或者修改后的应用被编译为原生代码(ELF)。有利地,所述处理单元被配置为用解释代码或经优化的解释代码的头中的经签名的校验和替换解释代码的校验和。
所述设备是智能电话或平板电脑。
可信实体实现在所述设备中。有利地,所述可信实体被配置为存储所述应用的至少一个校验和,以验证修改后的应用的校验和与所存储的应用的校验和匹配,并且使用签名密钥对修改后的应用的校验和进行签名。优选地,所述签名密钥是使用软件保护技术来保护的。
所述可信实体是单独的设备,并且所述接口还被配置为从所述处理单元接收修改后的应用的校验和,并向所述可信实体发送修改后的应用的校验和,以及从所述可信实体接收经签名的校验和,并向所述处理单元发送经签名的校验和。
所述处理单元被配置为将所述应用的激活码与修改后的应用的校验和一起发送。
所述处理单元被配置为与签名证书一起接收经签名的校验和。
在第二方面,本公开涉及一种用于处理应用的方法。设备接收应用,修改应用以获得修改后的应用,向可信实体发送针对修改后的应用生成的校验和,从可信实体接收与所发送的校验和相对应的经签名的校验和,并将经签名的校验和存储在存储器中。
附图说明
作为非限制性示例,现在将参考附图来描述本公开的优选特征,附图中:
图1示出了实现本公开的示例性***;以及
图2示出了根据本公开的优选实施例的方法的优选实施例。
具体实施方式
图1示出了实现本公开的示例性***。该***包括设备110、应用提供方(应用商店)120和可信实体130。设备110可以是诸如智能电话或平板电脑的运行安卓OS的任何种类的合适设备,并且它包括至少一个硬件处理单元(“处理器”)111、存储器112、用于与用户交互的用户接口113以及用于通过诸如因特网之类的连接140与应用提供方120和可信实体130进行通信的通信接口114。本领域技术人员将理解,为了清楚的目的,所示出的设备非常简洁,并且真实设备还可以包括诸如电源和持久存储设备的特征。
应用提供方120存储可由设备110下载的至少一个应用APK文件122。应用提供方120还包括硬件处理器124,硬件处理器124被配置为生成与应用DEX文件相对应的不同ODEX或ELF文件的校验和。这些校验和可以通过将DEX文件安装在不同的测试或参***上来生成,并从所得到的ODEX或ELF文件来计算校验和。应用提供方120还被配置为将与应用DEX文件相对应的不同ODEX或ELF文件的校验和发送到可信实体130。
可信实体130可以在安卓OS或独立设备内部实现。可信实体130包括:用于存储应用的ODEX或ELF校验和的存储器、用于从设备110上的安卓OS接收ODEX或ELF校验和的接口、用于验证接收到的应用的ODEX或ELF校验和匹配所存储的应用的ODEX或ELF校验和的处理单元、用于对ODEX或ELF校验和进行签名的私有签名密钥132以及用于向设备110发送经签名的ODEX或ELF校验和的接口。在可信实体130实现在安卓OS内部的情况下,私有签名密钥优选地使用诸如代码混淆和白盒加密之类的软件保护技术来保护,或者通过使用诸如密钥仓库或密码引擎之类的特定硬件来保护。
图2示出了根据优选实施例的方法的流程图。在步骤S202中,应用提供方120向可信实体130发送它提供给安卓设备的应用的多个ODEX或ELF校验和。在步骤S204中,设备110下载并安装该应用的APK文件。如上所述的,在安装期间,设备110优化或OAT编译APK文件中的DEX,获得ODEX或ELF,并向DEX头添加ODEX或ELF代码的校验和。应该注意的是,CERT.SF文件中的散列使设备110能够验证DEX的完整性。
当要首次执行应用时,源获取模块将ODEX或ELF文件的内容读入存储器112中,从DEX头中读取ODEX或ELF校验和(CS),并在步骤S206中将它发送到可信实体130。优选地,ODEX或ELF校验和在诸如安全认证信道之类的受保护连接上发送。源获取模块被包含在应用的原生库中(可以使用除Java之外的代码,例如C/C++语言,来开发安卓应用的一部分)。Java原生接口(JNI)使得在Dalvik机中运行的JAVA代码能够调用与应用一起交付的原生库。
一旦应用需要输入激活码,校验和可以与激活码一起被发送到远程可信实体130。
可信实体130优选地在步骤S208中检查接收到的ODEX或ELF校验和对应于所存储的应用的ODEX或ELF校验和之一。如果是这种情况,则在步骤S210中,可信实体130使用私有签名密钥对接收到的ODEX或ELF校验和进行签名,并且在步骤S212中将经签名的ODEX或ELF校验和返回给设备110。可信实体130还可以将包括对应公钥在内的签名证书与经签名的ODEX或ELF校验和一起发送。
在步骤S214中,源获取模块接收并存储经签名的ODEX或ELF校验和(如果可用并需要,还有签名证书)。
然后,在步骤S216中,通过计算ODEX或ELF的校验和并将其与经签名的ODEX或ELF校验和进行比较,具有对对应于私有签名密钥的公钥的访问权的应用或安卓OS可以检查ODEX或ELF的完整性。签名证书的完整性也可以通过使用安装在设备上的可信根证书或通过使用最终导致可信根证书的证书链来验证。
在随后执行应用时或在当前执行应用期间的任何时间,可以以与步骤S216相同的方式,即通过计算ODEX或ELF的校验和,并将其与经签名的ODEX或ELF校验和进行比较,来验证应用的完整性。为此,有利的是,在安卓操作***中设置检查ODEX或ELF的完整性的选项。
注意,该解决方案与当前部署的安卓***兼容,因为运行时完整性验证所需的代码是现有安卓OS的一部分或所交付的应用的APK软件包的一部分。
在本说明书中,术语“校验和”旨在覆盖能够验证生成校验和的数据在生成校验和之后是否被修改的值。因此,校验和可以例如也是散列值、循环冗余校验(CRC)值或其他种类的摘要;优选的是,从校验和获取代码在计算上是不可行的。另外,虽然为了清楚起见已经使用单个校验和,但是可以使用多个校验和,其中可以针对代码的不同部分(其中不同部分可以重叠)生成校验和,并且针对代码的不同部分的多个校验和用于生成用于进行比较的单个全局校验和。签名可以是任何合适的加密签名,例如基于散列的消息认证码(HMAC)或基于例如RSA、数字签名算法(DSA)或椭圆曲线数字签名算法(ECDSA)的签名。
应当理解,本解决方案可以成功地对抗远程攻击。
如果可信实体查明接收到的ODEX或ELF校验和对应于“合法”代码,则也可以对抗根攻击。这是为了验证接收到的ODEX校验和不是包括修改后的代码在内的APK的校验和(如果攻击者在从应用提供方下载后修改代码,则可能是这种情况)。因此,优选地,应用提供方120向可信实体130发送可能的ODEX或ELF校验和;在变型例中,可信实体130针对给定目标设备来OAT编译或优化应用的DEX代码,以生成不同的ODEX或ELF校验和。注意,潜在的校验和的数量取决于有限的一组设备硬件参数(CPU字节顺序,CPU对称多处理(SMP)模式等),因此参数组合的数量是有限的。例如,针对Nexus 7和Samsung galaxy tab P5100之间的DEX优化,只有SMP模式是不同的。
尽管已在安卓环境中描述了目前的解决方案,但它可以适用于在安装期间修改代码且不实现运行时对所安装的应用进行完整性验证的其他操作***。
因此,应当理解,本公开提供了可以实现安卓设备上的应用的运行时完整性的解决方案。
可以独立地或以任何适当的组合提供说明书以及(在适当的情况下)权利要求和附图中公开的每个特征。被描述为以硬件实现的特征还可以实现为软件,且反之亦然。权利要求中出现的附图标记仅仅是说明性的,并且对权利要求的范围没有限制作用。

Claims (13)

1.一种用于处理应用的设备(110),所述设备包括:
接口(114),被配置为接收所述应用;
存储器(112),被配置为存储所述应用和经签名的校验和;以及
处理单元(111),配置为:
-修改所述应用以获得修改后的应用;
-向可信实体发送针对修改后的应用生成的校验和;
-从可信实体接收经签名的校验和,所述经签名的校验和对应于所发送的校验和;以及
-将经签名的校验和存储在存储器(112)中。
2.根据权利要求1所述的设备,其中,所述应用与第一校验和一起被接收,并且所述处理单元还被配置为使用所述第一校验和来验证所述应用的完整性。
3.根据权利要求1所述的设备,其中,所述处理单元还被配置为使用所述经签名的校验和来在所述修改后的应用的运行时验证所述修改后的应用的完整性。
4.根据权利要求1所述的设备,其中,所述应用被实现为解释代码,并且所述修改后的应用被实现为经优化的解释代码或原生代码。
5.根据权利要求4所述的设备,其中,所述处理单元被配置为将解释代码的校验和替换为解释代码或经优化的解释代码的头中的所述经签名的校验和。
6.根据权利要求1所述的设备,其中,所述设备是智能电话或平板电脑。
7.根据权利要求1所述的设备,其中,所述可信实体实现在所述设备中。
8.根据权利要求7所述的设备,其中,所述可信实体被配置为存储所述应用的至少一个校验和,以验证修改后的应用的校验和与所存储的所述应用的校验和匹配,并且使用签名密钥(132)对修改后的应用的校验和进行签名。
9.根据权利要求8所述的设备,其中,所述签名密钥是使用软件保护技术来保护的。
10.根据权利要求1所述的设备,其中,所述可信实体是单独的设备,并且所述接口(114)还被配置为从所述处理单元接收修改后的应用的校验和,并向所述可信实体发送修改后的应用的校验和,以及从所述可信实体接收经签名的校验和,并向所述处理单元发送经签名的校验和。
11.根据权利要求1所述的设备,其中,所述处理单元还被配置为将所述应用的激活码与修改后的应用的校验和一起发送。
12.根据权利要求1所述的设备,其中,所述处理单元被配置为与签名证书一起接收经签名的校验和。
13.一种用于处理应用的方法,包括在设备(110)处:
-接收(S204)所述应用;
-修改(S206)所述应用以获得修改后的应用;
-向可信实体发送(S206)针对修改后的应用生成的校验和;
-从可信实体接收(S212)经签名的校验和,所述经签名的校验和对应于所发送的校验和;以及
-将经签名的校验和存储(S214)在存储器(112)中。
CN201580063329.5A 2014-11-28 2015-11-26 用于提供验证应用完整性的方法和设备 Pending CN107003916A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14306918.5 2014-11-28
EP14306918.5A EP3026557A1 (en) 2014-11-28 2014-11-28 Method and device for providing verifying application integrity
PCT/EP2015/077832 WO2016083537A1 (en) 2014-11-28 2015-11-26 Method and device for providing verifying application integrity

Publications (1)

Publication Number Publication Date
CN107003916A true CN107003916A (zh) 2017-08-01

Family

ID=52023429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580063329.5A Pending CN107003916A (zh) 2014-11-28 2015-11-26 用于提供验证应用完整性的方法和设备

Country Status (6)

Country Link
US (1) US20170270319A1 (zh)
EP (2) EP3026557A1 (zh)
JP (1) JP2018503157A (zh)
KR (1) KR20170088858A (zh)
CN (1) CN107003916A (zh)
WO (1) WO2016083537A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019179541A3 (en) * 2019-03-27 2020-02-06 Alibaba Group Holding Limited Improving integrity of communications between blockchain networks and external data sources
CN111090889A (zh) * 2019-12-05 2020-05-01 深圳和而泰家居在线网络科技有限公司 一种检测elf文件的方法及电子设备
CN111090865A (zh) * 2019-12-17 2020-05-01 支付宝(杭州)信息技术有限公司 一种密钥授权方法和***
US10757084B1 (en) 2019-03-29 2020-08-25 Alibaba Group Holding Limited Retrieving access data for blockchain networks using highly available trusted execution environments
US10805089B1 (en) 2019-03-27 2020-10-13 Alibaba Group Holding Limited Retrieving public data for blockchain networks using highly available trusted execution environments
CN113169963A (zh) * 2018-11-21 2021-07-23 菲尼克斯电气股份有限公司 用于处理分布式自动化***中的应用程序的方法
CN113645230A (zh) * 2018-06-06 2021-11-12 北京八分量信息科技有限公司 一种节点的可信值分析***及方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101832594B1 (ko) * 2016-02-18 2018-02-26 라인 가부시키가이샤 중간 언어 파일의 로딩 속도 개선을 위한 방법 및 시스템
CN106066686B (zh) * 2016-05-31 2019-02-05 Oppo广东移动通信有限公司 一种信息处理方法及终端设备
CN106250180B (zh) * 2016-07-27 2019-10-11 宇龙计算机通信科技(深圳)有限公司 一种odex优化控制方法及移动终端
US10642971B2 (en) * 2017-09-04 2020-05-05 Cisco Technology, Inc. Methods and systems for ensuring program code flow integrity
KR101875866B1 (ko) * 2017-11-06 2018-07-06 주식회사 엠시큐어 모바일 어플리케이션의 취약점 점검 방법 및 서버
KR101883997B1 (ko) 2017-11-29 2018-08-02 주식회사 스틸리언 의존 관계형 위변조 무결성 체크를 이용한 암호화 처리장치 및 방법
CN109495271A (zh) * 2018-10-19 2019-03-19 北京梆梆安全科技有限公司 比较apk文件方法、装置、服务器及其存储介质
KR102537788B1 (ko) * 2018-11-28 2023-05-30 삼성전자주식회사 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
FR3103073B1 (fr) * 2019-11-12 2021-12-03 Thales Sa Serveur multimedia destine a etre embarque a bord d'un aeronef, systeme electronique de divertissement comprenant un tel serveur, procede de configuration logicielle d'un tel serveur et programme d'ordinateur associe
KR102332588B1 (ko) * 2019-11-21 2021-11-30 성균관대학교산학협력단 안드로이드 기반에서 캐시 변조 방지 방법 및 시스템
IL274165B2 (en) * 2020-04-23 2023-08-01 Google Llc An application for maintaining privacy and detecting device errors
CN112306512B (zh) * 2020-11-09 2023-12-26 武汉天喻信息产业股份有限公司 一种基于ccid协议下载安装apk文件的方法及***
CN117992969A (zh) * 2024-04-03 2024-05-07 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种可信的***完整性校验方法和装置、电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1729436A (zh) * 2002-12-24 2006-02-01 英格玛***有限责任公司 用于验证软件应用完整性的方法和设备
US20070150966A1 (en) * 2005-12-22 2007-06-28 Kirschner Wesley A Method and apparatus for maintaining a secure software boundary
US7526811B1 (en) * 2001-05-22 2009-04-28 Novell, Inc. Methods for detecting executable code which has been altered
CN101610150A (zh) * 2009-07-22 2009-12-23 中兴通讯股份有限公司 第三方数字签名方法和数据传输***
CN102833296A (zh) * 2011-06-13 2012-12-19 伊姆西公司 用于构建安全的计算环境的方法和设备
US20130061222A1 (en) * 2011-09-07 2013-03-07 Pantech Co., Ltd. Apparatus and method for managing optimized virtualization module
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的***和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1533695B1 (en) * 2003-11-19 2013-08-07 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating data in a mobile terminal
JP2006025211A (ja) * 2004-07-08 2006-01-26 Nippon Telegraph & Telephone West Corp ピアツーピア端末装置並びにピアツーピア通信システム、ピアツーピア通信方法、ピアツーピア端末プログラム
US9177153B1 (en) * 2005-10-07 2015-11-03 Carnegie Mellon University Verifying integrity and guaranteeing execution of code on untrusted computer platform
JP2009211187A (ja) * 2008-02-29 2009-09-17 Hitachi Ltd 情報処理装置
EP2362314A1 (en) * 2010-02-18 2011-08-31 Thomson Licensing Method and apparatus for verifying the integrity of software code during execution and apparatus for generating such software code
JP2012048445A (ja) * 2010-08-26 2012-03-08 Fuji Electric Co Ltd プログラム実行装置、プログラム生成装置、プログラム正否判定方法、および、プログラム加工方法
JP2012212292A (ja) * 2011-03-31 2012-11-01 Dainippon Printing Co Ltd シンクライアントシステム、シンクライアントosの検証方法
JP5126447B1 (ja) * 2012-08-31 2013-01-23 大日本印刷株式会社 アプリケーションプログラムの実行方法
JP6261933B2 (ja) * 2012-10-16 2018-01-17 日本放送協会 放送通信連携受信装置及び放送通信連携システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526811B1 (en) * 2001-05-22 2009-04-28 Novell, Inc. Methods for detecting executable code which has been altered
CN1729436A (zh) * 2002-12-24 2006-02-01 英格玛***有限责任公司 用于验证软件应用完整性的方法和设备
US20070150966A1 (en) * 2005-12-22 2007-06-28 Kirschner Wesley A Method and apparatus for maintaining a secure software boundary
CN101610150A (zh) * 2009-07-22 2009-12-23 中兴通讯股份有限公司 第三方数字签名方法和数据传输***
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的***和方法
CN102833296A (zh) * 2011-06-13 2012-12-19 伊姆西公司 用于构建安全的计算环境的方法和设备
US20130061222A1 (en) * 2011-09-07 2013-03-07 Pantech Co., Ltd. Apparatus and method for managing optimized virtualization module

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645230B (zh) * 2018-06-06 2023-04-28 北京八分量信息科技有限公司 一种节点的可信值分析***及方法
CN113645230A (zh) * 2018-06-06 2021-11-12 北京八分量信息科技有限公司 一种节点的可信值分析***及方法
CN113169963A (zh) * 2018-11-21 2021-07-23 菲尼克斯电气股份有限公司 用于处理分布式自动化***中的应用程序的方法
CN113169963B (zh) * 2018-11-21 2023-10-27 菲尼克斯电气股份有限公司 用于处理分布式自动化***中的应用程序的方法
US10805089B1 (en) 2019-03-27 2020-10-13 Alibaba Group Holding Limited Retrieving public data for blockchain networks using highly available trusted execution environments
US11088850B2 (en) 2019-03-27 2021-08-10 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
US10824763B2 (en) 2019-03-27 2020-11-03 Alibaba Group Holding Limited Integrity of communications between blockchain networks and external data sources
US10911244B2 (en) 2019-03-27 2021-02-02 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
WO2019179541A3 (en) * 2019-03-27 2020-02-06 Alibaba Group Holding Limited Improving integrity of communications between blockchain networks and external data sources
US11080430B2 (en) 2019-03-27 2021-08-03 Advanced New Technologies Co., Ltd. Integrity of communications between blockchain networks and external data sources
US11082240B2 (en) 2019-03-27 2021-08-03 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
US10803205B1 (en) 2019-03-27 2020-10-13 Alibaba Group Holding Limited Retrieving public data for blockchain networks using trusted execution environments
US11449641B2 (en) 2019-03-27 2022-09-20 Advanced New Technologies Co., Ltd. Integrity of communications between blockchain networks and external data sources
US11323271B2 (en) 2019-03-27 2022-05-03 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
US10757084B1 (en) 2019-03-29 2020-08-25 Alibaba Group Holding Limited Retrieving access data for blockchain networks using highly available trusted execution environments
US11405372B2 (en) 2019-03-29 2022-08-02 Advanced New Technologies Co., Ltd. Retrieving access data for blockchain networks using highly available trusted execution environments
US11095629B2 (en) 2019-03-29 2021-08-17 Advanced New Technologies Co., Ltd. Retrieving access data for blockchain networks using highly available trusted execution environments
CN111090889A (zh) * 2019-12-05 2020-05-01 深圳和而泰家居在线网络科技有限公司 一种检测elf文件的方法及电子设备
CN111090865A (zh) * 2019-12-17 2020-05-01 支付宝(杭州)信息技术有限公司 一种密钥授权方法和***

Also Published As

Publication number Publication date
WO2016083537A1 (en) 2016-06-02
KR20170088858A (ko) 2017-08-02
JP2018503157A (ja) 2018-02-01
EP3026557A1 (en) 2016-06-01
EP3224719A1 (en) 2017-10-04
US20170270319A1 (en) 2017-09-21

Similar Documents

Publication Publication Date Title
CN107003916A (zh) 用于提供验证应用完整性的方法和设备
CN107003917A (zh) 用于提供验证应用完整性的方法和设备
CN107977553B (zh) 移动应用程序的安全加固的方法及装置
EP3026560A1 (en) Method and device for providing verifying application integrity
CN103460195B (zh) 用于安全软件更新的***和方法
CN112507328B (zh) 一种文件签名方法、计算设备及存储介质
EP2979221B1 (en) Systems, methods and apparatuses for secure storage of data using a security-enhancing chip
CN107003918A (zh) 用于提供验证应用完整性的方法和设备
US20110113181A1 (en) System and method for updating a basic input/output system (bios)
EP2151782A1 (en) Ticket authorized secure installation and boot
CN101226569A (zh) 在虚拟机中验证代码模块的方法及装置
EP3126973A1 (en) Method, apparatus, and computer-readable medium for obfuscating execution of application on virtual machine
CN111984962A (zh) 固件安全验证方法及装置
CN116361747A (zh) 按照参考平台清单和数据封装的安全操作***启动
US20210216636A1 (en) Determining Authenticity of Binary Images
CN111522555A (zh) apk文件的加固方法、解密方法及相关装置
JP5798959B2 (ja) パッケージ生成装置、パッケージ生成方法、プログラム
CN115904461A (zh) linux***的补丁升级方法及***、电子设备、存储介质
CN118259947A (zh) Ota升级包保护方法、装置、设备及可读存储介质
Cryptographic FIPS 140-2 Security Policy for INTEGRITY Security Services High Assurance Embedded Cryptographic Toolkit Module Version 1.0. 5
CN112257033A (zh) 一种应用的打包方法、装置及其设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190514

Address after: France

Applicant after: Interactive Digital CE Patent Holding Company

Address before: I Si Eli Murli Nor, France

Applicant before: Thomson Licensing SA

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170801