CN102265283A - 用于安全软件平台访问的方法和设备 - Google Patents

用于安全软件平台访问的方法和设备 Download PDF

Info

Publication number
CN102265283A
CN102265283A CN2009801531310A CN200980153131A CN102265283A CN 102265283 A CN102265283 A CN 102265283A CN 2009801531310 A CN2009801531310 A CN 2009801531310A CN 200980153131 A CN200980153131 A CN 200980153131A CN 102265283 A CN102265283 A CN 102265283A
Authority
CN
China
Prior art keywords
platform
type information
software application
type
described software
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
CN2009801531310A
Other languages
English (en)
Inventor
P·珀森
B·约翰逊
J·埃克
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN102265283A publication Critical patent/CN102265283A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

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)
  • Storage Device Security (AREA)

Abstract

在保护软件应用所进行的软件平台访问中的类型安全的一种有利方式中,本公开讲授在软件应用中包含密码签名的类型信息,供软件平台进行认证和注册。通过这种方式,准许给定软件应用仅与已注册类型信息相符地进行平台访问(例如数据类型例示、存储器访问、方法调用等等)。

Description

用于安全软件平台访问的方法和设备
技术领域
一般来说,本发明涉及分布式软件,具体来说,涉及保护由分布式软件组件所进行的软件平台访问。
背景技术
软件平台可基于包括复杂类型检验和安全提供的语言/架构实现,以便防止由安装于软件平台或者与其结合运行的软件应用所进行的恶意或错误平台访问。另一方面,一些软件平台、特别是用于驱动嵌入式应用中的实时系统(例如移动通信装置和其它手持仪器)的那些软件平台可基于C语言或者另一种低级语言,以便获得这类语言的伴随性能和尺寸优势。但是,一般来说,这类语言没有内置类型安全性,这意味着难以防止恶意或错误平台访问。
一种方式是仅允许完全置信应用对软件平台所提供的存储器空间和功能进行访问,但是这种方式阻止允许装置用户购买其中许多要求或者获益于有权访问软件平台的安全敏感元素的新软件应用的愿望或者至少使其复杂化。
为了理解这些安全问题,可能要注意,传统分布式软件组件系统(例如DCOM或ERICSSON的“DECM”)允许一个存储器空间中的组件访问由其它存储器空间中的组件所实现的功能性。本质上,这类系统是远程过程呼叫(RPC)的面向对象(或面向组件)的版本。方法调用通过将消息从主叫方传递给被叫方来执行。在方法调用时,所有方法参数经过串行化(编队)并且包含在调用消息中。参数由被叫方进行解串行化(解编队),被叫方然后执行实际调用。
对软件平台资源的远程访问要求访问应用向软件平台进行呼叫或者传递消息。对于安全敏感平台,这些访问必须限制到有效存储器位置。不能允许非置信应用对平台的存储器空间进行任意访问,而且也不能允许它调用安全敏感方法。实际上,完全平台访问可限制到置信(即,已签名)应用。但是,对应用签名是麻烦的。因此,尽管软件应用的功能性在可能获得对作为其目标的软件平台的安全访问时会得到增强,但是承受创建和分发作为已签名应用的给定软件应用的负担可能是不值得的。
此外,甚至对于已签名应用,也可能需要若干访问等级(例如置信第三方开发人员、操作人员、装置制造商)。这些情况要求软件平台中检验应用仅访问平台资源的所选子集的机制。例如,给定软件应用的置信等级可用于确定软件平台的应用程序接口(API)中的哪一些是给定软件应用可用的。例如对于是否允许给定平台访问进行运行时判定的这类机制一般称作访问控制机制。
已知访问控制机制涉及数据和方法的类型安全检验。也就是说,控制机制能够用于确保对平台的存储器空间的存储器访问限制到有效类型,并且访问参数(大小、指针等)都是相符的。这样做防止恶意或错误的存储器读/写、溢出等等。能够对软件应用所调用的平台方法执行类似的类型安全校验。
传统组件系统通过对象的串行化来解决这些问题。但是,串行化(在主叫方)/解串行化(在被叫方)是不合乎需要的,因为它是接口特定的。对于远程可访问的各方法,专用代码必须对参数解串行化。这意味着高“占用面积”开销,因为对于将暴露于软件应用的各平台API中的各平台方法,将消耗FLASH或其它非易失性存储器。这意味着每种可访问平台方法都有存储器成本,不管它是否实际被调用。该方式还意味着可能过多的主叫方-被叫方通信,因为调用中涉及的所有引用的数据必须在所有调用时经过串行化。如果在若干调用中调用同样的堆数据,则它每次都将被完全串行化。
发明内容
在保护由软件应用进行的软件平台访问中的类型安全的一种有利方式中,本公开讲授在软件应用中包含密码签名的类型信息,供软件平台进行认证和注册。通过这种方式,准许给定软件应用仅与已注册类型信息相符地进行平台访问(例如,数据类型例示、存储器访问、方法调用等等)。这种方式的一个优点是软件平台用于类型安全处理所需的存储器量的减小,因为只有给定应用实际使用的那些数据和方法类型才需要被注册和考虑。另一个优点在于,在软件应用中包含类型信息允许分布式软件应用甚至在安全软件平台(例如通常在移动通信装置中实现的那些平台)上安全地安装和运行。
在一个实施例中,在软件平台中,一种保护由软件应用对软件平台进行的访问的方法包括:对于要由软件应用进行的平台访问,从软件应用接收密码签名的类型信息。该方法还包括确定所接收类型信息的密码签名是否可信,以及如果可信,则在软件平台中注册类型信息。对应地,该方法还包括准许由软件应用进行符合已注册类型信息的平台访问。作为非限制性示例,软件应用注册它将使用的(堆空间)数据类型以及它将调用的平台方法,并且软件应用进行的任何后续运行时数据例示、存储器访问和方法调用仅当符合已注册类型信息时才准许。
在另一个实施例中,编程计算机实现保护由软件应用对软件平台进行的访问的软件平台。软件平台包括应用程序接口(API)层和访问控制层,访问控制层在功能上设置为API层与利用API层的软件应用之间的中介。访问控制层通过配置成执行下列步骤来加强类型安全性:对于要由软件应用进行的平台访问,从软件应用接收密码签名的类型信息,并且确定所接收类型信息的密码签名是否可信。如果密码签名是可信的,则访问控制层注册类型信息,并且准许由软件应用进行符合已注册类型信息的平台访问。作为一个有利示例,软件平台是封闭的、受保护的或者以其它方式受限制的平台,并且仅在给定软件应用进行的访问符合经过密码认证并且对那个给定软件应用注册的类型信息的范围内才准许这类访问。
在一个或多个实施例中,软件平台包括移动通信装置软件平台,并且编程计算机包括可具有安全存储器等的移动通信装置处理器。在这类实施例中,软件平台通过准许符合对每个这种应用注册的类型信息的平台访问,来“保护”由软件应用(例如下载的小配件、小应用、组件等)对平台进行的访问。在这里,术语“保护”表示“使安全”以及其它含义。
在另一个实施例中,一种生成预期获得对软件平台的安全访问的软件应用的方法包括生成描述将由软件应用使用的软件平台数据类型和方法的类型信息,并且使用软件平台已知的或者与软件平台中的解密处理兼容的密码密钥数据对类型信息进行密码签名。该方法还包括将密码签名的类型信息嵌入软件应用或者以其它方式将两者捆绑。此外,该方法还包括将软件应用配置成向软件平台提供密码签名的类型信息,供例如在运行时由软件平台进行检验,由此获得对密码签名的类型信息中标识的软件平台数据类型和方法的访问。
在又一个实施例中,一种用于软件应用获得对软件平台的安全访问的方法包括在最初运行或加载软件应用时,向软件平台发送密码签名的类型信息,并且接收已注册数据和方法类型的注册信息。在这里,密码签名的类型信息标识要由软件应用使用的那些平台数据和方法类型,并且该方法还包括在运行软件应用期间,使用注册信息对平台生成对于数据类型例示、存储器访问和方法调用的请求。在一个这种实施例中,注册信息包括到软件平台所维护的堆空间数据存储器的链接或指针。
但是,本发明并不局限于以上对特征和优点的概述。实际上,通过阅读以下详细描述以及参见附图,本领域的技术人员会知道其它特征和优点。
附图说明
图1是可分别为软件平台和软件应用的被叫方软件和主叫方软件的一个实施例的框图。
图2是无线通信装置和支持无线通信网络的一个实施例的框图,其中装置包括软件平台。
图3是软件平台为软件应用注册类型信息的方法的一个实施例的逻辑流程图。
图4是具有置信存储器空间中的软件平台和非置信存储器空间中的软件应用的编程计算机的一个实施例的框图。
图5是用于生成供嵌入软件应用的密码签名的类型信息的系统的一个实施例的框图。
图6A和图6B是用于包含从已分配堆实例到对应堆类型(heaptype)的引用的不同实施例的简图。
图7是一个实施例中的堆实例分配的结果的简图。
具体实施方式
图1示出“被叫方”软件10和“主叫方”软件12的一个实施例,其中被叫方软件10提供能够在安全限制下由主叫方软件12使用的存储器和程序资源。不是要求主叫方软件12为完全置信应用,而是被叫方软件10从主叫方软件12接收密码签名的类型信息14,这为主叫方软件12要进行的所有访问提供类型信息。
被叫方软件10包括密码处理资源(例如解密处理功能)以及它用于确定密码签名是否可信的密码密钥数据16。如果密码签名是可信的,意味着类型信息是由置信方生成的,则被叫方软件10注册类型信息,并且按照已注册类型信息14来检验由主叫方软件12对被叫方软件10进行的运行时访问。在一个示例实施例中,被叫方软件10是“软件平台”,而主叫方软件12是“软件应用”。
因此,为了便于论述,本公开的平衡将把被叫方软件10称为软件平台10,并且将把主叫方软件12称为软件应用12。这个上下文所使用的术语“软件平台”除了其它含义之外,还表示计算机系统的操作系统,但是更广义地表示在某种意义上用作其它软件应用的基础的任何软件应用。在至少一个实施例中,软件平台10提供应用程序接口(API),它允许软件应用12进行所定义的功能呼叫,其中包括呼叫数据和返回数据,全部按照已注册类型信息。对应地,在一个或多个实施例中,软件应用12是可对软件平台10进行呼叫并且反过来接收对应响应的分布式软件应用(例如,可下载的程序、小应用、模块、组件等等)。
软件平台10与软件应用12之间的通信可通过协议层18进行,协议层18可由平台10和应用12按照互补方式来实现。在一个非限制性示例中,协议层18是支持由一个或多个软件应用12对软件平台10的远程访问的“开放移动联盟”(OMA)协议-OMA是组网、通信和内容提供商公司的众所周知的工业协会。
具体来说,远程OPA(缩写为rOPA)是一种软件组件技术,它专门设计用于运行一个地址空间中的软件平台(采用OPA),而运行另一个地址(存储器)空间中的软件应用。远程OPA保留平台的存储器空间内的所有(OPA相关)堆数据的原版拷贝,并且rOPA中的软件应用进行的方法调用不包含串行化的堆数据。而是,这些方法调用包括到平台的存储器空间中的堆数据的指针。虽然rOPA基于“jOPA”(基于Java的OPA),但是它不是专门涉及任何具体应用语言。还要注意,jOPA将安全性解决方案用于类型/方法安全,它基于Java虚拟机安全性,并且因而不同于本文所考虑的类型/方法注册安全性解决方案。
与是否在软件平台10与软件应用12之间使用rOPA协议接口无关,软件平台10可包括无线通信装置的软件平台。图2示出包括实现非置信存储器空间24和置信存储器空间26的一个或多个处理器22的无线通信装置20的一个实施例。(一个或多个)处理器22包括例如一个或多个微处理器以及支持数据和程序存储器。软件平台10在置信存储器空间26内实现,并且为运行于非置信存储器空间24的软件应用提供在安全限制下对低级平台功能的访问。例如,软件平台10可允许完全置信软件应用-例如,由装置厂商预安装和控制的应用-对装置的通信收发器28所支持的通信功能的直接访问。
但是,通过除了任何预安装应用之外还允许用户安装和运行软件应用,装置拥有者的用户体验得到增强。例如,无线通信装置20配置成与无线通信网络30(包括无线电接入网或RAN 32和核心网或CN34)进行通信,无线通信网络30将装置20可通信地耦合到一个或多个公共数据网络(PDN)40。在至少一个实施例中,PDN 40提供对软件应用数据库42的访问,装置20能够从该数据库中下载软件应用。PDN40可包括或者耦合到因特网,并且数据库42可包括万维网服务器,万维网服务器提供对游戏、商业软件或者实质上任何类型的分布式、可下载的软件应用的访问。
置信类型信息被嵌入或者以其它方式包含在这类应用中,从而允许装置20的软件平台10执行平台访问(存储器、功能/方法调用等)的运行时检验。这种处理如图3所示,图3示出保护由软件应用12对软件平台10进行的访问的方法的一个实施例。所示方法在软件平台10的一个或多个实施例中实现,应当理解,所示处理的至少一些步骤可按照另一个序列或并发或者循环/重复地执行,并且这种处理可以是处理任务的总集合的一部分。例如,关于图2的无线通信装置20,包括所示方法的软件平台10可由处理器22来实现,其中处理器22运行处理器22所包含或者可访问的存储器或其它计算机可读介质中存储的所存储计算机程序指令。
假定软件平台10正在运行,并且给定软件应用12已经被加载或者以其它方式被启动以供执行,所示方法包括对于要由软件应用12进行的平台访问,从软件应用12接收密码签名的类型信息(框100)。也就是说,在加载时或者以其它方式在启动软件应用12时,软件应用12配置成向软件平台10发送密码签名的类型信息。这种信息的接收和检验是允许软件应用12运行或者以其它方式访问软件平台10的先决条件。
因此,该方法以软件平台10确定所接收类型信息的密码签名是否可信来继续进行(框102)。如果密码签名不是可信的,或者由于某种原因而未通过检验(从框104得出“否”),则软件平台10执行认证失败处理(框106)。那种处理包括例如不允许任何操作或者软件应用12的进一步运行,例如为用户生成诊断/告警信息。
如果密码签名是可信的(从框104得出“是”),则该方法继续进行下列步骤:在软件平台10中注册类型信息(框108),并且准许由软件应用12进行符合已注册类型信息的平台访问(框110)。这个最后“步骤”或操作能够被理解为在软件应用12的运行的持续时间中运行的正进行或连续过程,以便确保它对软件平台10的访问符合已注册类型信息。在这里,“符合”已注册类型信息的访问能够被理解为其类型和参数全部匹配、适合或以其它方式符合为特定软件应用12密码认证和注册的类型信息的访问。
至于理解这些访问限制,在至少一个实施例中,对于要由软件应用12进行的平台访问,从软件应用12接收密码签名的类型信息包括接收已签名数据类型信息和已签名方法类型信息。也就是说,软件应用12必须注册它将使用的数据类型,并且必须注册它将呼叫或以其它方式调用的方法,包括那些调用中涉及的主叫和返回变元类型的标识。因此,确定所接收类型信息的密码签名是否可信包括软件平台10检验数据类型信息的一个或多个密码签名以及方法类型信息的一个或多个密码签名。在这方面,应当理解,待使用的各数据类型以及待调用的各方法可包括分开的密码签名-例如,使用软件平台10已知的秘密密钥数据的数据类型或方法类型相关的密码哈希。
在另一个示例中,对于要由软件应用12进行的平台访问,从软件应用12接收密码签名的类型信息包括软件平台10接收一个或多个堆数据类型注册消息。所述消息(一个或多个)包括密码签名的堆数据类型注册信息,供软件平台用于注册将由软件应用12使用的堆数据类型。软件平台10对应地配置成向软件应用12返回一个或多个堆数据类型“句柄”(指针或其它标识符),用于引用已注册堆数据类型。在软件应用12的运行时执行期间,软件平台10将已注册堆数据类型用于检验由软件应用12所请求的堆数据类型的例示,以及用于检验由软件应用12对那些堆数据类型的实例的平台存储器访问。
此外,在至少一个实施例中,软件平台10接收作为从软件应用12所接收的类型信息的一部分的一个或多个方法类型注册消息。这种所接收信息包括密码签名的方法类型注册信息,供软件平台10用于注册将由软件应用12调用的方法类型。对应地,软件平台10配置成向软件应用12返回一个或多个方法类型句柄,用于引用已注册方法类型(在运行时方法调用中)。
因此,在这类实施例中,在软件平台10中注册类型信息包括注册数据类型信息以及注册方法类型信息,从而分别产生已注册数据类型信息和已注册方法类型信息。此外,在至少一个这种实施例中,注册方法类型信息包括检验正在注册的各方法类型仅链接到已注册数据类型。因此,平台10首先认证数据类型信息并且对它进行注册,然后认证方法类型信息,并且在方法类型信息与已注册数据类型信息一致时对它进行注册。
因此,注册过程能够被理解为软件平台10在允许软件12进行平台访问之前注册将由软件应用12使用的数据和方法类型。通过那种理解,图3的框110能够被理解为准许由软件应用12进行匹配已注册方法或数据类型信息的平台方法调用和平台存储器访问。相反,特别是在软件平台10为例如可在移动通信装置中使用的安全的或者以其它方式封闭的平台的情况下,不允许不符合已注册类型信息的任何平台方法调用或平台存储器访问。在这类实施例中,仅准许符合已注册类型信息的由软件应用12对软件平台10的访问,这与软件应用12的类型信息被认证为置信的基本前提一致。
在那个方面,检验由软件应用12所提供的类型信息的密码签名是如上所述,基于由软件平台10安全保存的密码密钥信息16。密码密钥信息16包括例如,能够在对称密钥算法中使用相同密钥或者能够采用公共密钥基础设施PKI密码密钥数据解决方案。软件平台10则必须包含公共密钥(检验所接收类型信息中的签名)和私有密钥(生成作为注册过程的一部分返回给软件应用12的指针或其它注册信息的运行时签名)。
还要注意,相同密钥和哈希函数可用于对数据类型信息和方法类型信息进行签名。另一方面,一个密钥能够用于对数据类型信息进行签名,而另一个密钥能够用于对堆分配、方法调用或其它类型信息进行签名。类似地,能够使用不同哈希函数。
在任何情况下,软件应用12的作者或厂商有权访问与软件平台10中存储的或者作为公共/私有密钥对的相同PKI的一部分的相同的秘密密钥数据,并且因此能够生成软件应用12的合法签名的类型信息。备选地,给定方可保留对这种密钥数据(给定其敏感性)的严格控制,但是使合法签名的类型数据可用于该给定方所信任的软件厂商,由此允许那些厂商采用它们之中包含的已签名类型数据来构建其应用。
上述软件平台方法实施例和那些实施例的变体能够在图4所示的装置20的示例实施例中实现。例如,装置20的(一个或多个)处理器22(包括程序和数据存储器)可被理解为按照组成软件平台10的指令来配置或以其它方式操作的编程计算机。
在这个上下文中看到,软件应用12驻留在装置20的非置信存储器空间24中,而软件平台10驻留在装置20的置信存储器空间26中。(作为置信存储器空间26的一个示例,装置20可包括ARMTRUSTZONE环境或其它安全环境,并且置信存储器空间26包括用于保存在执行由软件应用12所呼叫的API功能(方法)中使用的堆数据的堆存储器。)
因此,这里所述的编程计算机实现保护由软件应用12对软件平台10进行的访问的软件平台10,其中软件平台10包括应用程序接口(API)层50和访问控制层52。访问控制层52在功能上设置为API层50与利用API层50的软件应用12之间的中介。(访问控制层52充当API层50与运行于非置信存储器空间24中的任何数量的软件应用之间的功能中介,为那些应用的运行时操作提供数据和方法类型安全性以及检验。)
在这个作用中,访问控制层52配置成对于要由软件应用12进行的平台访问,从软件应用12接收密码签名的类型信息,并且确定所接收类型信息的密码签名是否可信。如果密码签名是可信的,则访问控制层52在软件平台10中注册类型信息,并且此后准许由软件应用12进行符合已注册类型信息的平台访问。相反,不允许不符合为软件应用12注册的类型信息的访问。本领域的技术人员会理解,软件平台10、具体是访问控制层52能够按照图3的处理以及本文先前对这种处理详细描述的其它细节的任一个来配置。
当然,软件应用12必须通过提供密码签名的类型信息供软件平台10进行检验,来直接支持这种处理。对应地,一种生成预期获得对软件平台10的安全访问的软件应用12的方法包括生成描述将由软件应用12使用的软件平台数据类型和方法的类型信息,并且使用软件平台10已知的或者与软件平台10中的解密处理兼容的密码密钥数据对类型信息进行密码签名。该方法还包括将密码签名的类型信息嵌入软件应用12或者以其它方式将两者捆绑。这些方法操作能够被理解为涉及软件应用12的“构建”,即,这些步骤是在分发软件应用之前创建软件应用12的一部分。
如上所述,还包括软件应用12中的程序代码,以便将软件应用12配置成向软件平台10提供密码签名的类型信息,供软件平台10进行检验,由此获得对密码签名的类型信息中标识的软件平台数据类型和方法的访问。相应地,一种用于软件应用12获得对软件平台10的安全访问的方法包括在(由软件平台10)最初运行或加载软件应用12时,向软件平台10发送密码签名的类型信息,并且接收已注册数据和方法类型的注册信息。也就是说,软件平台10向软件应用12返回它提交以供注册的数据和方法类型信息的注册信息,并且软件应用12在软件应用12的运行期间对应地使用那个注册信息对平台10生成对于数据类型例示、存储器访问和方法调用的请求。如上所述,在一个或多个实施例中,由软件平台10返回的注册信息包括到软件平台10所维护的堆空间数据存储器的链接或指针。
参照图4会看到,密码签名的类型信息14被体现为包括软件应用12的已签名安全类型数据的代理集合。将这类代理用于携带密码签名的类型信息14提供了将置信类型信息嵌入可分布软件应用的特别有利但非限制性的方式。
具体来说,图5示出生成具有已签名安全类型数据的代理的方法。专门设计的接口描述语言(IDL)转换器60将IDL文件转换成用于预期应用语言(用于软件应用12的具体语言)的代理62。IDL转换器60根据给定目标软件平台10内可用的、在基于IDL的平台接口描述64中捕获的数据类型和方法来生成代理62。IDL转换器60还有权访问密码密钥数据66,它与目标软件平台10中保存的密码密钥数据16相同或相关。同样地,按照以后能够由目标软件平台10来认证的方式对所生成的代理62进行密码签名。
因此,代理62携带平台10内可用的数据和方法类型信息,并且因此能够用于构建具有正确签名的类型信息的软件应用12。注意,软件应用12内携带的密码签名的类型信息14(如图1所示)可以仅包括代理62的相关子集。“相关”在这里表示由软件应用12使用的数据和方法类型的子集,并且因而需要向软件平台10注册,以便使软件应用12能够在软件平台10上执行安全性相关的操作。
在软件平台10的置信存储器空间内创建堆数据的实例表示安全性敏感操作的一个示例,并且为进一步论述提供良好基础。要安全地创建堆数据实例并且将其用于方法调用,涉及下列示例步骤:(1)软件应用12向软件平台10注册堆数据类型信息;以及(2)向软件平台10注册方法类型信息。对应地,软件平台10根据需要来分配堆数据实例,供软件应用12执行(对堆数据实例的)存储器访问以及执行方法调用(例如进行API功能呼叫)。在软件平台侧的处理一般扩展到适当地(例如在软件应用12终止时)解除分配堆数据以及注销方法和堆数据类型信息。
一种假设平台方法能够用作运行示例。例如,可使用ERICSSON的IDL中描述的表示为“IClock::SetTime”的方法,它定义如下:
Figure BPA00001392053100131
结构类型TTime定义如下(FUint8是无符号8位整数类型):
Figure BPA00001392053100132
PDate元素指向TDate的实例,定义如下:
Figure BPA00001392053100133
因此,软件应用12负责分配TDate和TTime实例,为其填充正确时间,并且在SetTime()的调用中将指针传递给已填充TTime实例。对应地,软件平台10必须执行关于在IClock::SetTime()调用时参数pTime指向有效TTime实例(或者具有特殊值NULL)的运行时检验。此外,软件平台10必须检验在对TTime类型实例进行写访问时pDate元素值指向有效TDate实例(或者为NULL)。
由软件平台进行的这些运行时检验当然取决于软件应用12的执行之前或开始时的数据和方法类型信息的正确注册。在一个详细示例中,软件应用12首先配置成向软件平台10注册堆数据类型信息。软件应用12例如在加载到图4所示的非置信存储器空间24时向软件平台10发送堆类型信息,它对于允许软件平台10检验由软件应用12对堆数据类型的后续运行时例示以及由软件应用12对那些实例的存储器访问是足够的。
作为这个初始注册的一部分、由软件应用12提供给软件平台10的数据类型信息(此后称作“heaptype”)包括例如:数据类型的大小,单位为字节;对的集合,类型中的每个指针值成员一个,包括类型内的成员的偏移(单位为字节)以及对描述所引用值的heaptype的引用。对于叶数据类型(即,没有包含其它引用的类型),指针成员集合为空。
虽然现实世界软件应用12中使用的实际数据结构会改变,但是时钟时间示例的示例数据结构被给定为:
heaptypeTDate=<4,{}>,以及
heaptypeTTime=<8,{<4,heaptypeTDate>}>
这些示例假定大小为32位并且存储在偶数32位边界上的指针。这类限制是(软件平台10的)装置平台(例如ARM、x86、…)特定的,并且因而在IDL转换时是已知的。
在任何情况下,类型信息注册能够通过从软件应用12向软件平台10发送下列形式的消息来执行:
REGISTER_HEAPTYPE(size,N,offset1,heaptype1,…,offsetN,heaptypeN,Sheaptype)作为响应,软件平台10向软件应用12返回引用已注册heaptype的heaptype句柄。(这可实现为指向类型信息和签名的简单指针或者采取其它方式。)签名Sheaptype(例如由图5中的IDL转换器60)计算为:
Sheaptype=fsign(K,size,N,
         offset1,Sheaptype_1,…,以及
         offsetN,Sheaptype_N)
其中,heaptypei是由软件应用12向软件平台10成功注册所引用heaptype所得到的heaptype句柄。通过这个实施例,则无法注册给定heaptype,直到已经安装它所引用的所有heaptype。
签名则能够在运行时由软件平台10在接收到REGISTER_HEAPTYPE消息时检验。所返回的heaptype引用能够在以后使用时通过检验所引用类型信息的签名来检验。
一旦软件应用12如上所述注册数据类型信息,方法类型信息能够被注册。方法类型注册的目的是为软件平台10提供充分信息,以便执行由软件应用12对软件平台10所进行的方法调用呼叫的完整性的运行时检验。
继续ERICSSON OPA平台和ERICSSON IDL上下文中的以上示例,类型信息由这些项组成:“UUID”,它是唯一标识接口、例如标识IClock接口的128位接口身份;方法索引,包括唯一标识接口内的方法的整数;每个参数的类型描述符;以及用于检验的签名。注意,用于堆数据类型的类型描述符是heaptype。还要注意,术语‘参数’在这里指的是方法调用中涉及的32位值的原始序列(栈内容)。各方法参数由一个这种32位值(或者对于64位类型,由两个值)来表示。
在一个实施例中,类型信息注册通过从软件应用12向软件平台10发送下列形式的消息来执行:
REGISTER_METHODTYPE(UUID,index,N,arg_descr1,…,arg_descrN,Smethod)
其中,Smethod是(由图5中的IDL转换器60)按下式计算的签名:
Smethod=f(K,UUID,index,N,Sheaptype1,…,SheaptypeN)
签名SheaptypeX的使用在这里意味着方法参数是堆指针。标量数据类型的签名可由占位符、例如0.)来表示,以及“K”将被理解为图5所示的密码密钥数据66,它与软件平台10中用于签名检验的数据相同,或者以其它方式与软件平台10中用于签名检验的数据安全相关。例如,函数f是具有适当密码性质的哈希函数,并且整数N表示变元列表中的32位值的数量。
在软件平台10从软件应用12接收到上述消息时,它向软件应用12返回对应引用(假定由软件平台10进行了成功签名检验)。在一个有利简单实现中,软件平台10将REGISTER_METHODTYPE消息的内容存储在置信存储器空间26中,并且返回指向那个位置的指针。当然,可使用其它实现,并且在任何情况下,一旦注册类型信息,则该方法能够由软件应用12调用任意次数。因此,这个注册步骤仅需要由软件应用12执行一次(通常在应用启动或代理加载时)。
在上述注册成功完成的情况下,软件平台10根据需要分配堆数据实例,以便支持由软件应用12在其运行时操作期间进行的请求,至少在那些请求符合已注册类型信息的程度上。在一个具体示例中,分配堆数据实例通过从软件应用12向软件平台10传递下列形式的消息来执行:
HEAP_ALLOC(heaptype),
其中heaptype标识有效的先前注册的heaptype。所分配堆数据实例包括对分配给实际堆数据实例的存储区外部所存储的heaptype的引用。在一个实施例中,紧接在实例之前存储引用,而在另一个实施例中,紧接实例之后存储引用。
在任何情况下,软件平台10检验所示heaptype引用是有效的(通过检验其签名),并且向软件应用12返回指向所分配存储器的指针。新分配的堆实例具有其组件的明确定义的初始值,具体来说,所有指针取值NULL。图6A和图6B使用上述时钟相关示例上下文来示出分配示例。具体来说,图6A示出TTime实例的带符号指针的一个示例,其中紧接实例之前存储引用。图6B示出TTime实例,其中紧接实例之后存储引用。
在一个相关示例中,图7示出TTime结构的堆实例分配的结果。具体来说,图7示出(平台)存储器中与对TTime heaptype的引用共处的TTime堆实例。TTime heaptype又引用TDate类型。
其它示例细节涉及由软件应用12从/向软件平台10的存储器空间的存储器读和写。给出存储器写操作的一个具体示例,并且本领域的技术人员会理解,类似操作适用于存储器读。对所分配堆数据实例的存储器写访问通过从软件应用12向软件平台10传递下列形式的消息来执行:
HEAP_WRITE(p,heaptype,offset,data),
其中,p是从HEAP_ALLOC操作得到的指针值,heaptype是用于分配的heaptype,offset是要写入的堆元素内的相对位置,以及data是在所引用位置存储的字节集合。在软件平台10检验所提供heaptype与指针的匹配并且要写入的数据量适合所分配结构之后,执行写操作。
作为另一个详细示例,方法调用能够通过从软件应用12向软件平台10传递下列形式的消息来执行:
INVOKE(iptr,index,methodtype,N,arg1,…,argN)
其中,iptr表示被呼叫的接口实例,index标识方法,methodtype引用已注册类型信息,N表示32位方法变元的数量,以及arg1…argN是32位变元值。
在接收到这个消息时,软件平台10采取下列动作:它检验所指示的methodtype的确有效(即,它检查签名);它从接口指针iptr推断接口UUID,并且检验它与所引用methodtype中的UUID匹配;以及它检查methodtype并且检验各指针变元属于所指示类型(使用所分配数据内嵌入的heaptype指针)。如果变元类型正确,则调用该方法。注意,这个方法实施例检验任何指针实际指向正确类型的有效实例。此外要注意,这种处理假定从接口指针推断所引用接口的UUID是可能的。(这例如能够通过将UUID包含在虚拟方法表中来进行。)
iptr变元引用组件实例的接口,并且需要被证实为指向实际实例。这类组件在堆上由软件平台10响应于应用的方法呼叫来隐式创建,并且能够通过使用前面所述的相同堆分配和检验机制来保护。
附加功能可由软件平台10来支持,例如在应用终止时或者根据需要进行存储器清除。一个示例涉及软件平台的存储器空间内的堆数据的解除分配。在一个实施例中,解除分配堆数据实例通过从软件应用12向软件平台10传递下列形式的消息来执行:
HEAP_DEALLOC(p),
其中,标签和大小参数与用于HEAP_ALLOC消息的相同。相关功能包括方法和堆数据类型信息的注销。注销先前由软件平台10为软件应用12注册的类型信息通过从软件应用12向软件平台10传递下列形式之一的消息来执行:
DEREGISTER_METHODTYPE(methodtype),以及
DEREGISTER_HEAPTYPE(heaptype)。
这些注销只是回收所分配存储器所需的,并且能够如上所述,在应用终止、应用侧代理类的废物回收时或者在方法调用与应用终止之间的任何其它时间点执行。还要注意,注销类型信息暗示了使存储器中的任何关联签名无效。
知道了这些非限制性示例,本文所提出的方法和设备提供优于“传统”运行时系统的显著优点,“传统”运行时系统将所有可能数据类型的类型信息静态嵌入给定软件平台内。嵌入所有可能类型信息消耗大量存储器(例如不合需要的FLASH存储器量),并且还引起灵活性的损失。也就是说,采用嵌入平台本身的固定类型信息,就必须对要支持哪些数据类型和接口以供软件应用远程访问进行仔细判定。修改那些判定会要求重建平台。
相比之下,本文公开的教导将所需类型信息嵌入软件应用12内,作为由软件平台10用于保护(使安全)软件应用12进行的运行时平台访问的置信可检验类型信息。虽然这种类型信息必须在运行时传递给软件平台10,但是开销完全局限于那个具体软件应用12所使用的接口和数据类型(而不是整个所定义范围的数据类型和功能)。此外,能够通过运行(图5的)置信IDL转换器60而无需重建平台软件、或者通过执行另外某种已修改类型信息生成以包括新增接口来支持附加接口。
因此,本文提出的教导代表例如运行于WEBKIT、JAVA MIDlets中的万维网应用或Widget等第三方应用环境的整体安全性架构中的基础组件。这些教导还可与对应用签名相结合,以便确保敏感接口不会被非置信应用访问。
当然,本领域的技术人员会知道该使用是非限制性的。实际上,本发明并不局限于前面所述和附图。而是,本发明仅由以下权利要求及其合法等效物来限制。

Claims (23)

1.一种在软件平台中保护由软件应用对所述软件平台进行的访问的方法,包括:
对于要由所述软件应用进行的平台访问,从所述软件应用接收密码签名的类型信息;
确定所接收类型信息的密码签名是否可信;
如果所述密码签名是可信的,则在所述软件平台中注册所述类型信息;以及
准许由所述软件应用进行符合已注册类型信息的平台访问。
2.如权利要求1所述的方法,其中,对于要由所述软件应用进行的平台访问,从所述软件应用接收密码签名的类型信息包括:接收已签名数据类型信息和已签名方法类型信息。
3.如权利要求2所述的方法,其中,确定所接收类型信息的密码签名是否可信包括:检验所述数据类型信息的一个或多个密码签名以及所述方法类型信息的一个或多个密码签名。
4.如权利要求2所述的方法,其中,在所述软件平台中注册所述类型信息包括:注册所述数据类型信息和注册所述方法类型信息,从而分别产生已注册数据类型信息和已注册方法类型信息,并且其中,注册所述方法类型信息包括:检验正在注册的各方法类型仅链接到已注册数据类型。
5.如权利要求1所述的方法,其中,在所述软件平台中注册所述类型信息包括:注册数据类型信息和方法类型信息,并且其中,准许由所述软件应用进行符合所述已注册类型信息的平台访问包括:允许匹配已注册方法和数据类型信息的平台方法调用和平台存储器访问,而不允许不匹配所述已注册方法和数据类型信息的任何平台方法调用和任何平台存储器访问。
6.如权利要求1所述的方法,其中,确定所接收类型信息的密码签名是否可信包括:基于所述软件平台安全保存的密码密钥信息来检验所述密码签名,其中,所述密码密钥信息包括对称秘密密钥对数据或公共密钥基础设施PKI密码密钥数据其中之一。
7.如权利要求1所述的方法,其中,对于要由所述软件应用进行的平台访问,从所述软件应用接收密码签名的类型信息包括:接收一个或多个堆数据类型注册消息,所述堆数据类型注册消息包括供所述软件平台用于注册将由所述软件应用使用的堆数据类型的、密码签名的堆数据类型注册信息;以及向所述软件应用返回一个或多个堆数据类型句柄,用于引用已注册堆数据类型。
8.如权利要求7所述的方法,其中,所述软件平台将所述已注册堆数据类型用于检验由所述软件应用请求的堆数据类型的例示,以及用于检验由所述软件应用对那些堆数据类型的实例的平台存储器访问。
9.如权利要求7所述的方法,其中,对于要由所述软件应用进行的平台访问,从所述软件应用接收密码签名的类型信息还包括:接收一个或多个方法类型注册消息,所述方法类型注册消息包括供所述软件平台用于注册将由所述软件应用调用的方法类型的密码签名的方法类型注册信息;以及向所述软件应用返回一个或多个方法类型句柄,用于引用已注册方法类型。
10.一种实现软件平台的编程计算机,所述软件平台保护由软件应用对所述软件平台进行的访问,所述软件平台包括:
应用程序接口API层和访问控制层,所述访问控制层在功能上设置为所述API层与利用所述API层的软件应用之间的中介;
其中,所述访问控制层配置成:对于要由所述软件应用进行的平台访问,从所述软件应用接收密码签名的类型信息;确定所接收类型信息的密码签名是否可信;如果所述密码签名是可信的,则在所述软件平台中注册所述类型信息;以及准许所述软件应用进行符合已注册类型信息的平台访问。
11.如权利要求10所述的编程计算机,其中,所述访问控制层配置成接收作为所述密码签名的类型信息的已签名数据类型信息和已签名方法类型信息。
12.如权利要求11所述的编程计算机,其中,所述访问控制层配置成通过检验为所述数据类型信息接收的一个或多个密码签名以及为所述方法类型信息接收的一个或多个密码签名,来确定所述所接收类型信息的密码签名是否可信。
13.如权利要求11所述的编程计算机,其中,所述访问控制层配置成通过注册所述数据类型信息和注册所述方法类型信息以分别产生已注册数据类型信息和已注册方法类型信息,在所述软件平台中注册所述类型信息,并且其中,所述访问控制层配置成检验正在注册的各方法类型仅链接到已注册数据类型。
14.如权利要求10所述的编程计算机,其中,所述访问控制层配置成通过注册数据类型信息和方法类型信息,在所述软件平台中注册所述类型信息,并且配置成通过允许匹配所述已注册方法和数据类型信息的运行时平台方法调用和运行时平台存储器访问来准许由所述软件应用进行符合所述已注册类型信息的平台访问,并且对应地通过不允许不匹配所述已注册方法和数据类型信息的任何运行时平台方法调用和任何运行时平台存储器访问来不允许由所述软件应用进行不符合所述已注册类型信息的平台访问。
15.如权利要求10所述的编程计算机,其中,所述访问控制层配置成通过基于所述软件平台安全保存的密码密钥信息检验所述密码签名,来确定所述所接收类型信息的密码签名是否可信,其中,所述密码密钥信息包括对称秘密密钥对数据或公共密钥基础设施PKI密码密钥数据其中之一。
16.如权利要求10所述的编程计算机,其中,所述访问控制层配置成接收作为所述密码签名的类型信息的一个或多个堆数据类型注册消息,所述堆数据类型注册消息包括供所述软件平台用于注册将由所述软件应用使用的堆数据类型的密码签名的堆数据类型注册信息,以及配置成对应地向所述软件应用返回一个或多个堆数据类型句柄,用于引用已注册堆数据类型。
17.如权利要求16所述的编程计算机,其中,所述访问控制层配置成将所述已注册堆数据类型用于检验由所述软件应用请求的堆数据类型的例示,以及用于检验由所述软件应用对那些堆数据类型的实例的平台存储器访问。
18.如权利要求16所述的编程计算机,其中,所述访问控制层配置成接收作为所述密码签名的类型信息的一个或多个方法类型注册消息,所述方法类型注册消息包括供所述软件平台用于注册将由所述软件应用调用的方法类型的密码签名的方法类型注册信息,以及配置成向所述软件应用返回一个或多个方法类型句柄,用于引用已注册方法类型。
19.如权利要求10所述的编程计算机,其中,所述编程计算机包括无线通信装置中的处理元件,并且其中,所述软件平台的所述访问控制层配置成向下载到或者以其它方式安装于无线通信装置上的软件应用提供对软件平台的API层的受保护访问。
20.一种生成预期获得对软件平台的安全访问的软件应用的方法,所述方法包括:
生成描述将由所述软件应用使用的软件平台数据类型和方法的类型信息;
使用所述软件平台已知的或者与所述软件平台中的解密处理兼容的密码密钥数据,对所述类型信息进行密码签名;以及
将所述密码签名的类型信息嵌入所述软件应用或者以其它方式将所述密码签名的类型信息与所述软件应用捆绑。
21.如权利要求20所述的方法,还包括:将所述软件应用配置成向所述软件平台提供所述密码签名的类型信息,供所述软件平台进行检验,由此获得对所述密码签名的类型信息中标识的软件平台数据类型和方法的访问。
22.一种用于软件应用获得对软件平台的安全访问的方法,包括:
在最初运行或加载所述软件应用时,向所述软件平台发送密码签名的类型信息,并且接收已注册数据和方法类型的注册信息,其中所述密码签名的类型信息标识将由所述软件应用使用的那些平台数据和方法类型;以及
在所述软件应用运行期间,使用所述注册信息对所述平台生成对于数据类型例示、存储器访问和方法调用的请求。
23.如权利要求22所述的方法,其中,所述注册信息包括到所述软件平台所维护的堆空间数据存储器的链接或指针。
CN2009801531310A 2008-10-24 2009-10-22 用于安全软件平台访问的方法和设备 Pending CN102265283A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10810808P 2008-10-24 2008-10-24
US61/108108 2008-10-24
US12/266,810 US20100106977A1 (en) 2008-10-24 2008-11-07 Method and Apparatus for Secure Software Platform Access
US12/266810 2008-11-07
PCT/EP2009/063880 WO2010046436A2 (en) 2008-10-24 2009-10-22 Method and apparatus for secure software platform access

Publications (1)

Publication Number Publication Date
CN102265283A true CN102265283A (zh) 2011-11-30

Family

ID=42118644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801531310A Pending CN102265283A (zh) 2008-10-24 2009-10-22 用于安全软件平台访问的方法和设备

Country Status (6)

Country Link
US (1) US20100106977A1 (zh)
EP (1) EP2356607A2 (zh)
JP (1) JP2012506584A (zh)
CN (1) CN102265283A (zh)
BR (1) BRPI0920633A2 (zh)
WO (1) WO2010046436A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104426894A (zh) * 2013-09-09 2015-03-18 中国移动通信集团公司 一种终端应用的注册方法、业务平台设备及终端
CN107085675A (zh) * 2016-02-16 2017-08-22 爱特梅尔公司 受控安全代码验证
CN107924304A (zh) * 2015-05-06 2018-04-17 迈克菲有限公司 在安装过程中对捆绑软件的存在进行警告
CN116915829A (zh) * 2018-08-31 2023-10-20 萨伯康姆有限责任公司 光学通信系统

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103109514B (zh) * 2010-07-20 2015-12-16 弗里班德技术股份有限公司 应用程序活动系统
JP5961164B2 (ja) * 2011-05-19 2016-08-02 日本放送協会 放送通信連携受信装置及びリソースアクセス制御プログラム
US9064111B2 (en) * 2011-08-03 2015-06-23 Samsung Electronics Co., Ltd. Sandboxing technology for webruntime system
US8893225B2 (en) 2011-10-14 2014-11-18 Samsung Electronics Co., Ltd. Method and apparatus for secure web widget runtime system
US9280645B1 (en) * 2012-11-15 2016-03-08 Emc Corporation Local and remote verification
CN104133669B (zh) * 2014-06-11 2019-01-29 腾讯科技(深圳)有限公司 一种桌面应用的控制方法及终端设备
WO2015190371A1 (ja) * 2014-06-13 2015-12-17 アーティス株式会社 アプリケーションプログラム
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
CN107480983B (zh) * 2017-08-29 2018-08-07 上海明心信息科技有限公司 一种防盗手机支付系统
CN111225112B (zh) * 2020-01-03 2021-02-19 北京小米移动软件有限公司 流量使用控制方法、装置及存储介质
WO2022093184A1 (en) * 2020-10-27 2022-05-05 Hewlett-Packard Development Company, L.P. Untrusted software handling
CN114500109B (zh) * 2022-04-06 2022-06-28 北京安华金和科技有限公司 一种产品注册平台的处理方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556959A (zh) * 2001-08-13 2004-12-22 �����ɷ� 使用许可向应用程序分配设备资源
CN1578939A (zh) * 2001-08-29 2005-02-09 格鲁斯番维拉塔公司 用于安全对象操作的密钥界面
CN101175246A (zh) * 2006-10-06 2008-05-07 国际商业机器公司 用于给多个移动设备提供计算服务的环境服务代理和方法
CN101194464A (zh) * 2005-06-23 2008-06-04 微软公司 不同类应用程序的统一授权
CN101226569A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 在虚拟机中验证代码模块的方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU662805B2 (en) * 1992-04-06 1995-09-14 Addison M. Fischer A method for processing information among computers which may exchange messages
AU683038B2 (en) * 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
US5680461A (en) * 1995-10-26 1997-10-21 Sun Microsystems, Inc. Secure network protocol system and method
US6212578B1 (en) * 1996-09-09 2001-04-03 Oracle Corporation Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6148387A (en) * 1997-10-09 2000-11-14 Phoenix Technologies, Ltd. System and method for securely utilizing basic input and output system (BIOS) services
AU2787799A (en) * 1998-02-26 1999-09-15 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US6993761B1 (en) * 2000-09-28 2006-01-31 Sun Microsystems, Inc. Method and apparatus to verify type safety of an application snapshot
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US7415270B2 (en) * 2002-02-15 2008-08-19 Telefonaktiebolaget L M Ericsson (Publ) Middleware services layer for platform system for mobile terminals
US7346780B2 (en) * 2002-04-03 2008-03-18 Microsoft Corporation Integrity ordainment and ascertainment of computer-executable instructions
US20040040029A1 (en) * 2002-08-22 2004-02-26 Mourad Debbabi Method call acceleration in virtual machines
US7149510B2 (en) * 2002-09-23 2006-12-12 Telefonaktiebolaget Lm Ericsson (Publ) Security access manager in middleware
US20040172620A1 (en) * 2003-02-28 2004-09-02 Motorola, Inc. Method and apparatus for securely enabling native code execution on a JAVA enabled subscriber device
US7360206B1 (en) * 2003-03-13 2008-04-15 Network Appliance, Inc. Method for an interpreter to control a native function call based on a signature of the native function
US7530103B2 (en) * 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
WO2005078571A2 (en) * 2004-02-09 2005-08-25 Palmsource, Inc. A method and graphics subsystem for a computing device
US20060101439A1 (en) * 2004-10-25 2006-05-11 Microsoft Corporation Memory management in a managed code execution environment
US7941522B2 (en) * 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US20080148298A1 (en) * 2006-12-18 2008-06-19 Palm, Inc. System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556959A (zh) * 2001-08-13 2004-12-22 �����ɷ� 使用许可向应用程序分配设备资源
CN1578939A (zh) * 2001-08-29 2005-02-09 格鲁斯番维拉塔公司 用于安全对象操作的密钥界面
CN101194464A (zh) * 2005-06-23 2008-06-04 微软公司 不同类应用程序的统一授权
CN101175246A (zh) * 2006-10-06 2008-05-07 国际商业机器公司 用于给多个移动设备提供计算服务的环境服务代理和方法
CN101226569A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 在虚拟机中验证代码模块的方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104426894A (zh) * 2013-09-09 2015-03-18 中国移动通信集团公司 一种终端应用的注册方法、业务平台设备及终端
CN104426894B (zh) * 2013-09-09 2017-12-22 中国移动通信集团公司 一种终端应用的注册方法、业务平台设备及终端
CN107924304A (zh) * 2015-05-06 2018-04-17 迈克菲有限公司 在安装过程中对捆绑软件的存在进行警告
CN107085675A (zh) * 2016-02-16 2017-08-22 爱特梅尔公司 受控安全代码验证
CN107085675B (zh) * 2016-02-16 2022-05-17 爱特梅尔公司 受控安全代码验证
CN116915829A (zh) * 2018-08-31 2023-10-20 萨伯康姆有限责任公司 光学通信系统

Also Published As

Publication number Publication date
EP2356607A2 (en) 2011-08-17
WO2010046436A3 (en) 2010-06-24
US20100106977A1 (en) 2010-04-29
BRPI0920633A2 (pt) 2016-01-12
WO2010046436A2 (en) 2010-04-29
JP2012506584A (ja) 2012-03-15

Similar Documents

Publication Publication Date Title
CN102265283A (zh) 用于安全软件平台访问的方法和设备
JP3753885B2 (ja) 国際暗号体系のホストシステム要素
EP0843249B1 (en) Dynamic classes of service for an international cryptography framework
US6148083A (en) Application certification for an international cryptography framework
US7966599B1 (en) Runtime library including a virtual file system
CA2923740C (en) Software code signing system and method
CN103890772B (zh) 用于web运行时刻系统的沙盘技术
CN104680075B (zh) 用于来自高级别应用程序许可的细粒度访问控制的框架
KR100883699B1 (ko) 무선 장치 동작 환경에서 비검증된 프로그램들의 실행
Burns Developing secure mobile applications for android
EP2736214B1 (en) Controlling application access to mobile device functions
NO331572B1 (no) Programmeringsgrensesnitt for lisensiering
KR101504647B1 (ko) 가상 머신 활성화를 갖는 휴대용 대량 저장장치
US7805601B2 (en) Computerized apparatus and method for version control and management
US10025575B2 (en) Method for installing security-relevant applications in a security element of a terminal
US20110145596A1 (en) Secure Data Handling In A Computer System
CN102130907B (zh) 开发者电话注册
KR102247233B1 (ko) 다중 레이어 기반 스마트 컨트랙트 감사 방법 및 그 장치
CN110224818B (zh) 跨浏览器的签名license控制方法
US7711957B2 (en) Granting access to a computer-based object
KR20060125077A (ko) 다운로드된 응용 프로그램의 변조 판단 시스템
Gadyatskaya et al. Load time code validation for mobile phone Java Cards
KR100823631B1 (ko) 키 저장 관리
Nguyen et al. Load Time Code Validation for Mobile Phone Java Cards
KR20240010048A (ko) 소프트웨어 이용 시스템 및 소프트웨어 이용 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111130