CN102804194B - 用于提供应用安全性的方法及装置 - Google Patents

用于提供应用安全性的方法及装置 Download PDF

Info

Publication number
CN102804194B
CN102804194B CN201080027400.1A CN201080027400A CN102804194B CN 102804194 B CN102804194 B CN 102804194B CN 201080027400 A CN201080027400 A CN 201080027400A CN 102804194 B CN102804194 B CN 102804194B
Authority
CN
China
Prior art keywords
application
validation value
value
calculating
validation
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.)
Active
Application number
CN201080027400.1A
Other languages
English (en)
Other versions
CN102804194A (zh
Inventor
K·M·维尔波拉
T·O·曼塔里
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN102804194A publication Critical patent/CN102804194A/zh
Application granted granted Critical
Publication of CN102804194B publication Critical patent/CN102804194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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
    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • 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/3236Cryptographic 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 using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

响应于装置的初始化,为多个应用可执行文件中的每个应用可执行文件计算验证值,并且在随机访问存储器的受保护的存储器部分中存储验证值。确定对在装置上启动应用的尝试,并且为与应用关联的可执行文件计算当前的验证值。比较当前验证值与所存储的验证值中的对应存储的验证值,并且基于比较的结果调控应用的启动。

Description

用于提供应用安全性的方法及装置
技术领域
本说明书大体上涉及计算机安全,并且更具体地涉及在移动软件平台中用于应用安全性的系统、装置、计算机程序和方法。
背景技术
在无线电话技术的早期,多数移动设备(诸如蜂窝电话)为嵌入式设备(例如专用设备,这些专用设备具有用于执行少数专用功能的固定一组程序)。近年来,移动设备(例如“智能手机”)已经演变成如下通用计算设备,这些计算设备可以接受对现有功能的改变并且添加新功能。这可以通过更新现有程序和/或向设备添加新程序来实现。
情况经常是移动设备的新程序或者经修改的程序的仅有合法来源是设备制造商,和/或在创建服务并且向设备提供服务时涉及到的服务承运商。尽管这允许制造商和服务提供商维持对如何使用设备的密切控制,但是消费者一直要求他们的移动设备执行更多样化的功能。这些功能中的一些功能高度地专业化或者定向于小集团用户。这样,即使这种特征与现有设备和服务网络兼容,对于制造商和服务提供商他们自己而言,生产提供这种特征的软件仍然可能无利可图。
近来,移动软件平台已经变得更开放地允许安装和运行第三方开发的应用软件。例如存在移动操作系统(诸如SymbianTM、iPhoneTMOS和AndroidTM)的大型和活跃应用开发商团体。这些第三方开发商团体可以包括受信任和不受信任的软件销售商。受信任的开发商可以包括参与证书程序,或者具有强烈动机(例如法律责任)确保它们提供的软件安全和可靠的企业和其它实体。
虽然开发商可以分类为未受信任,但是这未必意味着开发商的软件不安全或者不可靠,而只是这种软件的安全未知。尽管未受信任的软件的使用和可用性可能让那些对他们而言安全性是最主要的关注的实体(例如政府、企业)感到麻烦,但是允许任何人编写和发布软件一般视为净效益。最具有想象力的新产品往往来自个人或者小团体独立开发商。同样,软件是对于小团体或者个人而言有可能生产正如公司生产的软件一样可靠和易于使用(有时甚至更可靠和易于使用)的产品的领域。因此,使小型开发商对移动计算平台做贡献可以帮助平台保持生机并且让利益相关者有利可图。
对于制造商和软件/服务提供商而言,必须应对由于不受信任的软件所致的与安全有关的威胁。即使制造商和提供商并非可能造成威胁的并受信任的软件的来源,但是如果它们的平台视为容易为恶意软件所利用,则它们的声誉可能蒙羞。即使软件并非有意具有恶意,但是在它们的平台上运行的不可靠或者受破坏的软件导致设备和/或系统故障,并且这可能有害地反映在提供商和制造商上。
发明内容
本说明书公开了用于提供应用安全性的系统、装置、计算机程序、数据结构和方法。在一个实施例中,一种装置,包括具有受保护的存储器部分的随机访问存储器。该装置包括耦合到随机访问存储器的处理器。处理器配置有可执行指令,这些指令使该装置:响应于装置的初始化来为多个应用可执行文件中的每个应用可执行文件计算验证值,并且在受保护的存储器部分中存储该验证值。处理器确定对在装置上启动应用的尝试,并且计算用于与应用关联的可执行文件的当前验证值。处理器比较当前验证值与存储的验证值中的对应存储的验证值,并且基于比较的结果调控应用的启动。
在更多具体实施例中,可执行指令还可以使装置响应于与应用的启动无关的运行时间事件,为与应用关联的可执行文件重新计算验证值,并且比较所计算的值与存储的验证值以保证应用尚未被篡改。在值不匹配的情况下,将应用视为不受信任,并且不批准对它的进一步访问,并且可以终止对它的任何未决访问操作(例如读取和执行)。运行时间事件可以包括对可执行文件的分页与从先前计算对应存储的验证值起的时间流逝的任何组合。
在安装新应用的情况下,为应用计算新验证值,并且将其存储到受保护的存储器部分。在重新安装任何现有应用的情况下,用重新计算的值替换受保护的存储器部分中的应用的对应存储的验证值。可以根据所用过的验证算法计算验证值,或者可以仅恰在成功验证应用之后单独生成所安装的应用的所存储验证值。
在其它更多具体实施例中,可执行指令还可以使装置基于预计使用来为多个应用文件中的每个应用文件建立优先级,并且其中计算验证值并且在受保护的存储器部分中存储验证值由相应优先级支配。
在其它更多具体实施例中,计算验证值并且在受保护的存储器部分中存储验证值可以与确定对启动应用程序的尝试并行发生。在这种情况下,可执行指令还可以使装置:a)在比较当前验证值与对应存储的验证值时确定对应存储的验证值不可用;以及b)使对应验证值的计算和存储按照更高优先级发生,以有助于比较当前验证值与所存储的验证值中的对应存储的验证值。
在本发明的另一实施例中,一种方法涉及响应于装置的初始化,为多个应用可执行文件中的每个应用可执行文件计算验证值,并且在装置的随机访问存储器的受保护的存储器部分中存储验证值。确定对在装置上启动应用的尝试,并且计算与应用关联的可执行文件的当前验证值。比较当前验证值与所存储的验证值中的对应存储的验证值,并且基于比较的结果调控应用的启动。
在更具体实施例中,该方法还可以涉及响应于应用的软件初始化事件,为与应用关联的可执行文件计算更新的验证值。在这种情况下,在受保护的存储器部分中用更新的验证值替换对应存储的验证值。在这种情况下的软件初始化事件可以包括重新安装应用与在装置的自检初始化运行时间期间验证应用的任何组合。
在本发明的另一实施例中,一种计算机可读存储介质用如下指令来编码,这些指令在由装置运行时执行:a)响应于装置的初始化,为多个应用可执行文件中的每个应用可执行文件计算验证值,并且在随机访问存储器的受保护的存储器部分中存储验证值;b)确定对在装置上启动应用的尝试;c)为与应用关联的可执行文件计算当前验证值;d)比较当前验证值与所存储的验证值中的对应存储的验证值;并且d)基于比较的结果调控应用的启动。
在本发明的另一实施例中,一种方法涉及响应于装置上的应用的修改事件,为与应用关联的一个或者多个可执行文件计算验证值。在装置的随机访问存储器的受保护的存储器部分中存储验证值。确定对在装置上启动应用的尝试,并且为与应用关联的可执行文件确定当前验证值。比较当前验证值与存储的验证值中的对应存储的验证值,并且基于比较的结果调控应用的启动。修改事件可以包括初始安装应用、重新安装应用和在装置的运行时间期间的验证应用的任何组合。
这些和各种其它优点和特征在所附权利要求中被具体指出并且形成其一部分。然而为了更好地理解变化和优点,应当参考形成其又一部分的附图以及附带描述内容,其中图示并描述了根据本发明示例实施例的系统、装置、计算机程序产品和方法的有代表性的示例。
附图说明
结合随后附图中图示的示例实施例描述本发明:
图1是根据一个示例实施例的移动安全框架的框图;
图2是根据本发明一个示例实施例的移动安全框架细节的框图;
图3是根据本发明一个示例实施例的移动装置的框图;并且
图4A、图4B和图5是图示了根据本发明示例实施例的过程的流程图。
具体实施方式
在对各种示例实施例的下文描述中参照如下附图,这些附图形成其一部分,并且在附图中通过图示示出各种示例实施例。将理解可以利用其它实施例,因为可以做出结构和操作上的改变而未脱离本发明的范围。
一般而言,本公开内容涉及对移动计算框架的改进以保证应用软件在原始安装验证过程之后未被篡改。这种验证可以保证应用软件尚未被改变或者破坏、因而可以安全运行。软件破坏可能诸如由于用户和/或系统交互所引起的数据破坏而意外出现。这种破坏也可能诸如由于恶意软件在设备上运行或者由于用户的动作(例如无视在用户工作设备上的公司安全预防措施)而有意出现。
在下文描述中,术语“验证数据”可以用来表明任何单个如下值(例如固定比特大小的字),该值用来标识数据块(例如文件)的状态。校验和或者密码哈希可以用作验证数据。一般而言,应当选择如下用于生成验证数据的算法,其使得对数据块的任何改变将生成与用于未修改的数据块的值相同的验证值的可能性在统计上微乎其微。这种改变可以包括向/从数据块添加/删除数据,或者改变数据的任何部分而块的大小无净改变。
软件平台可以通过使用验证数据(诸如校验和和/或密码哈希)验证待启动的软件来保护可执行文件和其它数据免遭篡改。例如在软件已经成功安装于系统中之后,可以针对所有关键文件(诸如可执行文件和配置数据)计算哈希。这一哈希可以包括使用本领域中已知的任何哈希型函数来导出的校验和或者相似变量。向持久储存器(例如硬驱动、闪存)中的特殊文件系统位置存储这一变量。随后在启动软件时,系统重新计算哈希并且将其与先前存储的值进行比较。如果比较成功,则启动可以继续,因为用于应用的关键数据尚未被篡改。
如果上述平台的持久文件系统不能提供足够保护以防止恶意改写持久存储的校验和数据,则该平台可能易被损害。例如不友好用户/软件可以利用对存储于盘驱动或者闪存上的这一数据的了解以修改关键文件、对修改后的文件重新计算哈希值,并且用重新计算的值替换所存储的值。这可能会让系统启动篡改过或者未验证的软件以在移动设备中运行。
在图1中看到一种用于克服上述缺陷的方式,该图图示了根据本发明实施例的安全平台100的方面。安全平台100可以在启动应用文件之前验证它们的完整性。安全平台100将随机访问存储器(RAM)用于存储与应用关联的校验和数据。平台100使用如块104所指示的存储器访问保护。存储器访问保护104可以由硬件与软件特征的任何组合提供。
在存储器访问保护104的一个示例中,可以通过在中央处理单元(CPU)架构中限定的分级保护域来限制某些硬件和存储器访问。在这种情况下,处理器可以包括如下“系统”执行模式,该模式使得能够执行包括特权指令的所有指令。在系统模式中,可以向进程给予对除了在更少的保护模式(“用户”模式)中提供的地址空间之外的不同的地址空间的访问,以及对存储器管理硬件和其它外设的访问。例如操作系统内核通常在系统模式中有权访问存储器,而用户程序(例如字处理器)不能直接访问这一存储器。用户模式可以用来“沙盒”实现在普通使用时出故障的可能性更高的所有软件(例如应用软件)。通过安全控制的系统调用来执行用户模式的所有对系统模式的资源的访问尝试。如果用户模式的进程尝试无效或者不可访问的系统调用,则可以正常终止用户模式的进程而不影响系统的其余部分。
架构100包括在上电、复位或者与架构100的硬件关联的其它初始化条件时预备验证数据的引导时间模块106。一般而言,引导时间模块106可以通读持久储存器108,并且计算与多个应用110关联的关键文件的验证值(例如校验和、哈希)。这些验证值在受保护的RAM102中显示为引导时间模块106存储的值112(H1-HN)。值112的位置可以在系统继续运行之时由引导时间模块106保持和维护,或者可以传递给其它模块(诸如运行时间模块114)以供使用。
在引导时间模块106已经验证应用110并且存储值112之后,运行时间模块114可以在接收执行应用110的请求时对应用110的关键文件重新计算相同值。运行时间模块114还可以诸如通过与引导时间模块106通信和/或集成来访问RAM112中的对应值112。如果重新计算的值匹配于RAM102中的对应值112,则运行时间模块114允许运行应用110。否则,运行时间模块114可以拒绝运行应用110,并且采取其它适当动作(例如记录系统错误、警告用户)。如果当前重新计算的值不对应于所存储的值,则运行时间模块114可以用其它方式调控应用110的执行、诸如降低用于进程的访问权限、在虚拟“沙盒”中运行等。
将理解引导时间和运行时间模块106、114中的任一模块可以针对在运行时间新安装的应用110执行相似的验证过程。例如,如果下载并且安装应用,则模块106、114中的一个或者这两者可以协同计算用于新安装的应用的验证数据112,并且将其添加到受保护的RAM102。此后,如果运行新添加的应用而未重新引导或者复位系统,则运行时间模块114可以用通常方式验证新应用。
所图示的软件平台100不依赖于哈希/校验和数据在持久文件系统(例如存储设备108)上的存储。相反,仅在运行时间模块106的成功安装/验证过程之后,向RAM102存储数据。由于平台100提供存储器保护104,所以不友好或者出故障的软件不能访问RAM102并且修改所存储的值112。在启动应用软件之前由运行时间模块114完成的哈希/校验和校验保证软件有效并且在执行之前尚未被破坏或者篡改。
由于未向永久和/或持久存储器存储验证数据112,所以在设备引导之后,可能需要例如通过运行与原先用来安装软件应用110的验证相同或者相似的验证过程来再次计算验证数据112。根据处理器速度、应用数目等,引导时间验证可能占用相当的时间量。这在移动设备中有所缓和,因为它们经常为常通(在供电或者待机模式中),并且可能数周或者数月未被重新引导一次。另外,各种方案可以用来减少应用验证对引导时间的影响。
在一些实施例中,在已经验证关键系统文件之后,可以后台操纵引导时间验证。一般而言,有可能追踪设备上的使用最多的软件,并且保证向这一软件给予最高优先级。这允许用户在对更少使用的应用执行验证的同时使用移动设备的一些特征。同样,可以向“常通”的软件给予最高优先级(诸如侦听网络事件和在接收到新事件的情况下向用户的提示/显示数据的软件)。如果用户(或者系统)在针对应用软件的验证已经开始之前请求使用该应用软件,则系统可以包括提供使验证过程优先以最小化所请求的应用的启动时间。这可以涉及停止任何当前验证动作,并且将所请求的软件移动到队列的顶部以供引导时间模块106即时验证。这还可以涉及向操纵验证的任何线程或者进程给予更高CPU优先级(例如如在可抢先的(pre-emptive)多任务操作系统中可能的那样)。
现在参照图2,框图图示了根据本发明一个示例实施例的安全架构部件的更具体视图。图2中的部件可以包括与图1的相似或者类似部件相同的标号。例如引导时间模块106被配置成访问在受保护的存储器空间104中的RAM102,并且可以访问在持久数据储存器108中的应用数据(例如文件)。
引导时间模块106可以包括接收引导和/或复位信号204作为输入的初始化器202。引导和/或复位信号204可以由硬件和/或软件提供。后者可以包括引导加载器、引导脚本,或者执行某一层面的系统初始化的任何其它软件。响应于信号204,初始化器202用信号通知(208)优先级器206以开始选择文件和/或其它系统数据以供验证。优先级器206可以访问(210)包含当前应用优先级的数据库212,并且使得能够将应用映射到特定文件。例如,一个应用可以包括运行所需要的可执行文件、配置文件、对象文件、库等的任何组合。可能仅需验证这些文件的子集。例如,关键应用文件可以被封装成单个包(例如zip存档),并且仅可以从包访问文件。在这种情况下,可以针对整个包而不是包内的多个单一文件一次完成验证。
数据库212可以包括临时或者持久储存器,并且可以由引导时间模块106变更和/或更新。例如,随着使用模式改变,应用和文件验证的优先级可以改变。数据库212可以包括任何数据结构(诸如从开始遍历至结束的链表)。数据库212可以包括使得能够快速查找的更复杂结构(例如二进制树、哈希集),并且可以提供与完整功能的关系数据库关联的高级特征(诸如利用搜索和查询以找到数据)。
对于在数据库212中找到的每个文件,优先级器206可以向哈希生成器218发送(例如经由信号216)文件引用。所发送的引用216可以包括文件名或者适合于文件系统108的其它数据(例如句柄、指针、索引节点等)。哈希生成器218取回文件数据220,并且生成哈希222(或者类似值)。向受保护的如下存储部件224发送哈希值222,该存储部件将值222与哈希/验证值的集合112一起存储(226)于RAM102中的适当位置中。
验证值112可以存储于存储器的连续块中作为列表,并且在这种情况下可以由单个值(例如指向列表顶层的指针228)引用。值112可以存储于本领域已知的任何其它数据结构中。根据查找频率和在受保护的RAM102中的空间可用性,值可以存储为比列表允许更快速查找的、诸如二进制树、哈希集等之类的数据结构。
也示出了运行时间模块114耦合到受保护的存储器空间104中的RAM102和持久数据储存器108。运行时间模块114的启动器部件232可以接收与启动应用关联的请求230。请求230可能造成启动器232实际地启动程序(例如实例化与应用关联的新系统进程),或者如果应用已被验证,则可以仅使启动器部件232转发请求。
启动器向查找部件236发送对确定与所请求的应用关联的所有关键文件的请求234。查找部件236可以如路径238代表的那样访问数据库212以确定这一数据。在获得这一文件列表时,查找模块向哈希生成器部件240和受保护的访问模块242这两者发送列表。哈希生成器240可以使用与初始生成当前在存储器102中的验证值112的哈希生成器218相同的算法和/或代码。哈希生成器240如路径243代表的那样取回文件数据,并且经由路径244向比较器248输出哈希值。
在部件240生成哈希的同时,受保护的访问模块242取回(246)RAM102中的存储值,这些值还经由路径250传递给比较器248。比较器242比较所存储的验证值250与所生成的值244,并且输出表明是否存在匹配的、向启动器232发送的信号252。如果信号252表明匹配,则可以认为应用可接受用于执行,并且启动器232可以输出表明成功和/或使该应用启动的信号254。
如先前提到的那样,引导时间部件106向RAM102中插入值112可以在引导期间和引导之后发生。在后一种情况下可能存在如下情形:运行时间模块114需要在已经计算存储于受保护的RAM102中的验证值之前访问该验证值。如图2中所见,查找模块236可以(直接或者间接地)确定尚未计算出的所需值,并且可以向优先级器206发送重排优先级信号254,以使这种计算被给予高优先级或者即时优先级。这一信号254可以使运行时间模块114阻止验证,直至验证值被放入RAM102中。
图2中所示功能部件仅为旨在于举例说明本发明各种方面的示例布置。本领域技术人员将理解诸多变化按照这些教导是可能的。例如引导时间模块和运行时间模块106、114可以组合成单个功能单元/进程,或者可以分离成甚至更小的独立运行的单元/进程。各种接口可以使用附加措施以保护验证数据免受外部分析(诸如在模块106、114以及RAM102、文件系统108和/或数据库212这些各种部件之间使用加密通信)。
将理解所图示的实施例可以帮助保证关键文件在启动应用软件期间未被损害。可能出现的一个问题包括在运行时间动态加载代码这样的情况。例如系统可以使用按需分页(paging),这使代码在执行需要时从硬盘加载到RAM。在这种情况下,代码的一些部分可以在应用首次启动时不加载到RAM中、而是可以在随后访问特定功能时放入存储器中。在这种情况下,不友好用户或者软件可以能够在验证校验之后、但是在向RAM中加载实际代码以供执行之前改写应用。
一种应对按需分页的方式是实施如下定期校验和校验,该校验保证应用软件在软件的至少某一部分运行之时的完整性。例如,如果针对特定应用检测到对按需页面的访问,则可以重新验证分页部分(或者整个应用)。在其它情况下,如果未影响明显性能(例如当设备在空闲状态中时),则周期性地重新验证可以例如按照随机间隔发生。
诸多类型的装置可以用于如在此描述的那样验证应用。例如用户越来越多地使用移动通信设备(例如蜂窝电话)作为主要计算设备。现在参照图3,图示了能够根据本发明的示例实施例执行操作的、有代表性的移动装置300的一个示例实施例。本领域技术人员将理解示例装置300仅代表可以与这种设备关联的一般功能,并且固定计算系统也相似地包括用于执行这种操作的计算电路。
用户装置300可以例如包括移动装置、移动电话、移动通信设备、移动计算机、膝上型计算机、桌面型计算机、电话设备、视频电话、会议电话、电视装置、数字视频记录机(DVR)、机顶盒(STB)、无线电装置、音频/视频播放器、游戏设备、定位设备、数字相机/摄像机等,或者任何其的组合。另外,用户装置300可以包括关于图1和图2示出和描述的应用安全框架的特征的任何组合。该装置也可以执行下文关于图4A-图4B和图5描述的任何处理功能。
处理单元302控制装置300的基本功能。可以将所关联的那些功能包括作为存储于程序储存器/存储器304中的指令。在本发明的一个示例实施例中,与储存器/存储器304关联的程序模块存储于非易失性电可擦除可编程只读存储器(EEPROM)、闪存只读存储器(ROM)、硬盘等中,从而在移动终端掉电时不丢失信息。也可以经由计算机程序产品、计算机可读介质提供和/或经由数据信号向移动装置300发送(例如经由一个或者多个网络(诸如因特网和中间无线网络)电子下载)用于根据本发明执行操作的相关软件。
移动装置300可以包括耦合到处理/控制单元302的硬件和软件部件。移动装置300可以包括用于维护有线或者无线数据连接的任何组合的多个网络接口。所图示的移动装置300包括用于执行网络数据交换的无线数据发送电路。这一无线电路包括用来执行多种功能(包括模数(A/D)转换、数模(D/A)转换、话音编码/解码、加密/解密、检错和纠错、比特流译码、滤波等)的数字信号处理器(DSP)306。一般耦合到天线310的收发器308发送传出的无线电信号312,并且接收与无线设备关联的传入无线电信号314。这些部件可以使装置300能够加入一个或者多个通信网络315(包括移动服务提供商网络、局域网和公共网络(诸如因特网和公共交换电话网络(PSTN)))。
移动装置300还可以包括耦合到处理/控制单元302的备用网络/数据接口316。备用数据接口316可以包括使用任何方式的数据传输介质(包括有线和无线介质)、经由辅助数据路径通信的能力。备用数据接口316的示例包括USB、蓝牙、RFID、以太网、302.11Wi-Fi、IRDA、超宽带、WiBree、GPS等。这些备用接口316还可以能够经由网络315、或者经由直接和/或对等通信链路通信。
处理器302还耦合到与移动终端关联的用户接口硬件318。移动终端的用户接口318可以例如包括显示器320。用户接口硬件318还可以包括转换器324(诸如能够接收用户输入的输入设备)。转换器324也可以包括能够测量本地环境(例如位置温度、加速度、定向、邻近度等),并且产生媒体(例如文本、静止画面、视频、声音等)的感测设备。可以在接口318中包括诸如小键盘、扬声器、麦克风、语音命令、开关、触板/触屏、指点设备、轨迹球、操纵杆、振动生成器、灯、加速度计等其它用户接口硬件/软件。这些和其它用户接口部件如本领域已知的那样耦合到处理器302。
程序储存器/存储器304包括用于执行与移动装置300上的功能关联的功能和应用的操作系统。程序储存器304可以包括只读存储器(ROM)、闪存ROM、可编程和/或可擦除ROM、随机访问存储器(RAM)、用户接口模块(SIM)、无线接口模块(WIM)、智能卡、硬盘、计算机程序产品或者其它可移除存储器设备中的一个或者多个。
移动装置300的储存器/存储器304还可以包括用于根据本发明的示例实施例执行功能的专门化软件模块。例如程序储存器/存储器304可以包括能够存储如下验证值(例如校验和、哈希)的RAM的受保护的存储器部分328,这些验证值验证一个或者多个应用330的状态和/或与之关联的文件的状态。引导时间验证模块332响应于诸如引导、复位、在低功率/待机与全功率模式之间的转换等之类的设备初始化事件来计算这些验证值。
储存器/存储器304可以包括引导时间验证模块332(和其它系统部件)可用的应用元数据334。应用元数据334可以是数据库、注册表、文件或者任何其它数据构造的部分。应用元数据334可以包括诸如应用330的名称/标识符、每个应用330使用的或者与每个应用330包括在一起的关键文件、应用330的使用数据等之类的数据。
启动器336可以是如下操作系统部件,该部件诸如通过从持久储存器向RAM传送指令、创建进程标识符、确定/设置权限、为CPU时间确定/设置优先级等来支配应用330的启动。运行时间验证模块338检测以启动器336为目标的启动请求,并且作为响应基于可执行文件(和其它数据)在它们当前存在于持久储存器中时的现有状态,来确定待启动的应用的当前验证数据。比较这些当前值与存储于受保护的RAM328中的先前计算的值。如果比较显示尚无改变,则验证模块338允许启动器336继续执行应用进程。
运行时间验证模块338可以出于与针对引导时间模块332描述的目的相似的目的(例如确定关键文件)而访问应用元数据334。虽然运行时间模块338可以无需关注相对应用优先级,但是运行时间和引导时间模块338、332可以并行运行,这可能引起在受保护的存储器328中不存在先前计算和存储的验证数据这样的情形。在这种情况下,运行时间模块338可以用信号通知引导时间模块332来执行这种验证(例如通过增加所请求的应用的相对优先级)。其它布置是有可能的,例如运行时间模块338本身可以在受保护的存储器中插入其已经计算的值,并且假定当前应用尚未被损害(例如装置300可能仅仅运行了少量时间,因而文件被当前运行软件损害的可能性低)。
启动器336和/或运行时间验证模块338还可以动作以更新应用元数据334。例如,启动器336可以基于请求应用启动的频率来提供对应用330的相对优先级有影响的统计。当数据已经被损害时,验证模块338可以在元数据334中标记数据为受破坏、由此防止将来执行受影响的应用和/或发起修复或者重新安装受影响的应用。这种发现对于服务提供商、设备制造商和/或软件生产商可能有用。这样,运行时间模块338可以提供如下报告功能,该功能经由网络315报告被损害的文件事故。
提供图3的移动装置300作为本发明的原理可以应用于其中的计算环境的有代表性的示例。根据在此提供的描述,本领域技术人员将理解本发明同样可应用于多种其它当前已知的、以及将来的移动和陆线计算环境中。例如桌面型和服务器计算设备类似地包括处理器、存储器、用户接口和数据通信电路。因此,本发明可应用于其中可以经由网络传达数据的任何已知计算结构中。
现在参照图4A,流程图图示了用于对装置上的应用执行初始化校验的过程400。该过程涉及获得(402)待校验的文件或者其它数据的列表。可以在专门化数据库中存储,或者任何其它方式(例如遍历文件目录)获得列表。这一操作402还可以涉及找到或者确定相对优先级,从而将首先完成在过程400进行之时最可能需要的文件(例如可以继续与运行时间进程并行执行)。
对于列表中的每个文件,进入如下循环404,该循环涉及为文件计算(406)哈希/校验和,并且在受保护的RAM中存储(408)所计算的哈希/校验和。当已经处理完所有关键文件时,该过程完成(410)。在图4B中看到根据本发明实施例的相似过程420。这一过程420包括如下无限循环,该循环等待(422)使一些或者所有应用数据被重新验证的事件。这种事件可以包括与实际启动应用无关的(诸如将当前运行程序的某一部分分页、时间流逝、应用的软件初始化事件、安装新应用、重新安装现有应用等)任何自检初始化的运行时间事件。
与图4A相似,图4B中的过程420涉及获得(424)列表(该列表也可以按照优先级来排序,尽管这根据重新验证事件可能是不需要的),并且循环426循环访问每个文件,计算(428)哈希/校验和数据,并且在受保护的存储器中存储(430)哈希/校验和数据。继而可以诸如下文描述的那样使用这种存储的哈希/校验和数据。当已经存储哈希/校验和(例如经由4A中的过程)时,存储(430)可以涉及用更新的验证值替换受保护的存储器部分中的对应存储的验证值。
现在参照图5,流程图图示了用于在装置上执行应用启动验证的过程500。可以在诸如上文关于图4A-图4B描述的软件初始验证之后执行这种过程500。过程500可以被布置为如下无限循环,该循环等待(502)应用启动请求。获得该应用的文件列表504,并且循环506循环访问每个文件。为文件计算当前哈希/校验和(H*),并且从受保护的RAM中获得(510)先前存储的哈希/校验和H。比较(512)H*与H值。如果H和H*不匹配,则拒绝(514)应用启动,并且该过程跳出循环506以返回到等待状态502。如果循环506完成,则允许(516)应用启动,并且进入等待状态502。
已经出于图示和描述的目的而呈现对本发明示例实施例的前文描述。并不旨在穷举本发明或者使本发明限于所公开的精确形式。诸多修改和变化按照上述教导是可能的。旨在本发明的范围不受这一具体描述的限制,而是由所附权利要求来确定。

Claims (17)

1.一种用于提供应用安全性的装置,包括:
随机访问存储器,包括受保护的存储器部分,所述受保护的存储器部分仅对在特权模式中操作的进程可访问,所述特权模式提供对与在非特权模式中操作时所提供的所述随机访问存储器的部分不同的部分的访问,用户应用仅通过使用在所述特权模式中操作的至少一个进程作为媒介来获得对所述受保护存储器部分的访问;
处理器,耦合到所述随机访问存储器,其中所述处理器配置有可执行指令,所述可执行指令使所述装置:
响应于所述装置的初始化,为多个应用可执行文件中的每个应用可执行文件计算验证值,并且在所述受保护的存储器部分中存储所述验证值;
确定可执行文件的一部分的分页和在所述应用已经被启动之后出现的从先前计算所述应用的验证值起的时间流逝;
为与所述应用关联的可执行文件计算当前验证值;
比较所述当前验证值与所存储的验证值中的对应存储的验证值;以及
基于所述比较的结果调控所述应用的启动。
2.根据权利要求1所述的装置,其中所述可执行指令还使所述装置响应于与所述应用的启动无关的运行时间事件,为与所述应用关联的所述可执行文件重新计算验证值,并且用所述重新计算的值替换在所述受保护的存储器部分中的所述对应存储的验证值。
3.根据权利要求1所述的装置,其中所述可执行指令还使所述装置基于预计使用来为所述多个应用文件中的每个应用文件建立优先级,并且其中所述计算所述验证值以及在所述受保护的存储器部分中存储所述验证值由所述相应优先级支配。
4.根据权利要求1-3之任一所述的装置,其中所述计算所述验证值并且在所述受保护的存储器部分中存储所述验证值与确定对启动所述应用程序的尝试并行发生。
5.根据权利要求4所述的装置,其中所述可执行指令还使所述装置:
在比较所述当前验证值与所述对应存储的验证值时,确定所述对应存储的验证值不可用;以及
使所述对应验证值的计算和存储按照更高优先级发生,以有助于比较所述当前验证值与所述存储的验证值中的对应存储的验证值。
6.一种用于提供应用安全性的方法,包括:
响应于装置的初始化,为多个应用可执行文件中的每个应用可执行文件计算验证值和从先前计算验证值起的时间流逝,并且在所述装置的随机访问存储器的受保护的存储器部分中存储所述验证值,其中所述受保护的存储器部分仅对在特权模式中操作的进程可访问,所述特权模式提供对与在非特权模式中操作时所提供的所述随机访问存储器的部分不同的部分的访问,用户应用仅通过使用在所述特权模式中操作的至少一个进程作为媒介来获得对所述受保护存储器部分的访问;
确定对在所述装置上启动应用的尝试以及与之并行地计算和存储所述验证值;
为与所述应用关联的可执行文件计算当前验证值;
确定对应存储的验证值不可用于与所述对应验证值的比较;
使得所述对应验证值的所述计算和存储按照更高优选级发生,以有助于获得所述对应验证值;
比较所述当前验证值与所存储的验证值中的对应存储的验证值;并且
基于所述比较的结果调控所述应用的启动。
7.根据权利要求6所述的方法,还包括:响应于与所述应用的启动无关的运行时间事件:
为与所述应用关联的可执行文件计算当前验证值;
比较所述当前验证值与所述存储的验证值中的对应存储的验证值;以及
基于所述比较的结果来调控对所述应用的所述文件的访问。
8.根据权利要求7所述的方法,其中所述运行时间事件包括所述可执行文件的分页。
9.根据权利要求7所述的方法,其中所述运行时间事件包括从先前计算所述对应存储的验证值起的时间流逝。
10.根据权利要求6所述的方法,还包括基于预计使用来为所述多个应用文件中的每个应用文件建立优先级,并且其中所述计算所述验证值并且在所述受保护的存储器部分中存储所述验证值由所述相应优先级支配。
11.根据权利要求6-10之任一所述的方法,还包括:
响应于所述应用的软件初始化事件,为与所述应用关联的所述可执行文件计算更新的验证值;以及
用所述更新的验证值替换所述受保护的存储器部分中的所述对应存储的验证值。
12.根据权利要求11所述的方法,其中所述软件初始化事件包括重新安装所述应用。
13.根据权利要求11所述的方法,其中所述软件初始化事件包括在所述装置的自检初始化运行时间期间验证所述应用。
14.一种用于提供应用安全性的装置,包括:
用于响应于装置的初始化,为多个应用可执行文件中的每个应用可执行文件计算验证值和从先前计算验证值起的时间流逝,并且在所述装置的随机访问存储器的受保护的存储器部分中存储所述验证值的装置,其中所述受保护的存储器部分仅对在特权模式中操作的进程可访问,所述特权模式提供对与在非特权模式中操作时所提供的所述随机访问存储器的部分不同的部分的访问,用户应用仅通过使用在所述特权模式中操作的至少一个进程作为媒介来获得对所述受保护存储器部分的访问;
用于确定对在所述装置上启动应用的尝试以及与之并行地计算和存储所述验证值的装置;
用于为与所述应用关联的可执行文件计算当前验证值的装置;
用于确定对应存储的验证值不可用于与所述对应验证值的比较的装置;
用于使得所述对应验证值的所述计算和存储按照更高优选级发生以有助于获得所述对应验证值的装置;
用于比较所述当前验证值与所存储的验证值中的对应存储的验证值的装置;以及
用于基于所述比较的结果调控所述应用的启动的装置。
15.一种用于提供应用安全性的方法,包括:
响应于装置上的应用的修改事件,为与所述应用关联的一个或者多个可执行文件计算验证值,并且在所述装置的随机访问存储器的受保护的存储器部分中存储所述验证值,其中所述受保护的存储器部分仅对在特权模式中操作的进程可访问,所述特权模式提供对与在非特权模式中操作时所提供的所述随机访问存储器的部分不同的部分的访问,用户应用仅通过使用在所述特权模式中操作的至少一个进程作为媒介来获得对所述受保护存储器部分的访问;
确定可执行文件的一部分的分页和在所述应用已经被启动之后出现的从先前计算所述应用的验证值起的时间流逝;
为与所述应用关联的可执行文件计算当前验证值;
比较所述当前验证值与所存储的验证值中的对应存储的验证值;以及
基于所述比较的结果调控所述应用的启动。
16.根据权利要求15所述的方法,其中所述修改事件包括所述应用的初始安装或者重新安装中的至少一个事件。
17.根据权利要求15所述的方法,其中所述修改事件包括在所述装置的运行时间期间验证所述应用。
CN201080027400.1A 2009-05-12 2010-05-12 用于提供应用安全性的方法及装置 Active CN102804194B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/464,414 US8839458B2 (en) 2009-05-12 2009-05-12 Method, apparatus, and computer program for providing application security
US12/464,414 2009-05-12
PCT/IB2010/001102 WO2010131106A1 (en) 2009-05-12 2010-05-12 Method, apparatus, and computer program for providing application security

Publications (2)

Publication Number Publication Date
CN102804194A CN102804194A (zh) 2012-11-28
CN102804194B true CN102804194B (zh) 2016-01-20

Family

ID=43069584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080027400.1A Active CN102804194B (zh) 2009-05-12 2010-05-12 用于提供应用安全性的方法及装置

Country Status (6)

Country Link
US (1) US8839458B2 (zh)
EP (1) EP2430581B1 (zh)
KR (1) KR101336378B1 (zh)
CN (1) CN102804194B (zh)
CA (1) CA2761337C (zh)
WO (1) WO2010131106A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225061B2 (en) 2009-07-02 2012-07-17 Apple Inc. Method and apparatus for protected content data processing
US9219936B2 (en) * 2010-02-05 2015-12-22 Maxlinear, Inc. Conditional access integration in a SOC for mobile TV applications
US9177152B2 (en) 2010-03-26 2015-11-03 Maxlinear, Inc. Firmware authentication and deciphering for secure TV receiver
WO2011123561A1 (en) 2010-03-30 2011-10-06 Maxlinear, Inc. Control word obfuscation in secure tv receiver
US8892855B2 (en) 2010-08-10 2014-11-18 Maxlinear, Inc. Encryption keys distribution for conditional access software in TV receiver SOC
US20140006781A1 (en) * 2012-06-23 2014-01-02 Pomian & Corella, Llc Encapsulating the complexity of cryptographic authentication in black-boxes
KR102038964B1 (ko) * 2013-03-18 2019-11-26 삼성전자주식회사 어플리케이션 간의 상호 인증 방법 및 장치
CN104219198B (zh) * 2013-05-30 2018-04-27 中国银联股份有限公司 一种WebApp的防篡改方法
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
US9535935B2 (en) * 2013-12-09 2017-01-03 Sap Se Schema-based application model validation in a database
US20150213253A1 (en) * 2014-01-28 2015-07-30 Qualcomm Incorporated Authorizing an application for use by a computing device
CN105320873B (zh) * 2014-07-02 2019-06-07 中国移动通信集团公司 一种终端应用的解锁方法、装置、终端及sim卡
US9934475B2 (en) * 2015-05-13 2018-04-03 Bank Of America Corporation Managing enterprise data movement using a heuristic data movement detection engine
EP3153985A1 (en) * 2015-10-08 2017-04-12 Thomson Licensing Device and method for password generation in a user device
CN108351770B (zh) * 2016-02-09 2020-02-28 西门子公司 用于安全地实施程序命令的方法和实施环境
CN107436757A (zh) * 2016-05-27 2017-12-05 上海汽车集团股份有限公司 电控单元软件版本校验方法、装置及车辆
US10503894B2 (en) * 2016-08-30 2019-12-10 Ncr Corporation Secure process impersonation
IT201900017534A1 (it) * 2019-09-30 2021-03-30 Magneti Marelli Spa "Sistema di elaborazione comprendente apparato di calcolo di tipo "trust anchor" e corrispondente procedimento"
CN111291371A (zh) * 2020-01-10 2020-06-16 北京深之度科技有限公司 一种应用程序安全验证方法及装置
US11632362B1 (en) * 2021-04-14 2023-04-18 SHAYRE, Inc. Systems and methods for using JWTs for information security
CN113176965A (zh) * 2021-04-25 2021-07-27 山东英信计算机技术有限公司 一种基于vr配置crc校验的防烧板方法、系统及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
WO2000072149A1 (en) * 1999-05-25 2000-11-30 Motorola Inc. Pre-verification of applications in mobile computing
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
CN1684017A (zh) * 2004-04-12 2005-10-19 华为技术有限公司 一种软件保护方法及装置
CN101006407A (zh) * 2004-03-19 2007-07-25 诺基亚有限公司 安全模式控制的存储器
CN101236496A (zh) * 2007-01-29 2008-08-06 展讯通信(上海)有限公司 一种软件一致性检测方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493649A (en) * 1994-06-21 1996-02-20 Microsoft Corporation Detecting corruption in a computer program at execution time using a checksum
FR2748834B1 (fr) * 1996-05-17 1999-02-12 Gemplus Card Int Systeme de communication permettant une gestion securisee et independante d'une pluralite d'applications par chaque carte utilisateur, carte utilisateur et procede de gestion correspondants
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
US6212592B1 (en) * 1998-09-17 2001-04-03 Micron Technology, Inc. Computer system for processing system management interrupt requests
US6775536B1 (en) * 1999-11-03 2004-08-10 Motorola, Inc Method for validating an application for use in a mobile communication device
US6735700B1 (en) * 2000-01-11 2004-05-11 Network Associates Technology, Inc. Fast virus scanning using session stamping
ES2360005T3 (es) * 2000-09-21 2011-05-31 Research In Motion Limited Sistema y método de firma mediante código por software.
US7526811B1 (en) * 2001-05-22 2009-04-28 Novell, Inc. Methods for detecting executable code which has been altered
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7434259B2 (en) * 2002-10-21 2008-10-07 Microsoft Corporation Method for prompting a user to install and execute an unauthenticated computer application
AU2002348969A1 (en) * 2002-11-08 2004-06-07 Nokia Corporation Software integrity test in a mobile telephone
US20060137007A1 (en) * 2004-12-16 2006-06-22 Nokia Corporation Revoking a permission for a program
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7467285B2 (en) * 2005-07-27 2008-12-16 Intel Corporation Maintaining shadow page tables in a sequestered memory region
US20070150966A1 (en) * 2005-12-22 2007-06-28 Kirschner Wesley A Method and apparatus for maintaining a secure software boundary
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
WO2007117574A2 (en) * 2006-04-06 2007-10-18 Smobile Systems Inc. Non-signature malware detection system and method for mobile platforms
US8832454B2 (en) * 2008-12-30 2014-09-09 Intel Corporation Apparatus and method for runtime integrity verification

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
WO2000072149A1 (en) * 1999-05-25 2000-11-30 Motorola Inc. Pre-verification of applications in mobile computing
CN101006407A (zh) * 2004-03-19 2007-07-25 诺基亚有限公司 安全模式控制的存储器
CN1684017A (zh) * 2004-04-12 2005-10-19 华为技术有限公司 一种软件保护方法及装置
CN101236496A (zh) * 2007-01-29 2008-08-06 展讯通信(上海)有限公司 一种软件一致性检测方法和装置

Also Published As

Publication number Publication date
KR101336378B1 (ko) 2013-12-26
US8839458B2 (en) 2014-09-16
CN102804194A (zh) 2012-11-28
US20100293614A1 (en) 2010-11-18
EP2430581B1 (en) 2020-10-14
EP2430581A4 (en) 2014-06-04
CA2761337A1 (en) 2010-11-18
KR20120012983A (ko) 2012-02-13
WO2010131106A1 (en) 2010-11-18
EP2430581A1 (en) 2012-03-21
CA2761337C (en) 2016-04-19

Similar Documents

Publication Publication Date Title
CN102804194B (zh) 用于提供应用安全性的方法及装置
US10417427B2 (en) Method for authenticating firmware volume and system therefor
Shabtai et al. Securing Android-powered mobile devices using SELinux
US9679130B2 (en) Pervasive package identifiers
CN101310472B (zh) 用以支持获信任环境的计算机可读组件的自动更新
US20070078957A1 (en) Firmware-licensing system for binding terminal software to a specific terminal unit
WO2018005223A1 (en) Maintaining operating system secrets across resets
CN104885092A (zh) 用于操作系统的安全系统和方法
US9483636B2 (en) Runtime application integrity protection
KR20140074252A (ko) 디바이스 상의 보안되지 않은 앱들의 보안 실행
CN103403669A (zh) 使设备上的app变得安全和管理设备上的app
CN102165457A (zh) 票券授权的安全安装和引导
EP3583536B1 (en) Securely defining operating system composition without multiple authoring
CN104573497A (zh) 一种启动项的处理方法和装置
US20220092155A1 (en) Protecting an item of software
JP2017146967A (ja) 中間言語ファイルのロード速度改善のための方法およびシステム
US20140282446A1 (en) Modification of compiled applications and application management using retrievable policies
CN101888623B (zh) 一种基于安全服务的移动网络安全防护方法
US11875290B2 (en) Method and system for managing mainframe billable resources
CN113282889A (zh) license授权方法、设备以及系统
CN113901483A (zh) 应用检测方法、装置、计算机存储介质和电子设备
CN116662136A (zh) 数据采集方法及其装置
Zamani et al. Android Basic Architecture including Operating System using their Application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160204

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj