用于检验软件应用的方法和设备转让专利

申请号 : CN200580041953.1

文献号 : CN101073060B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : P·科塔马蒂R·G·L·纳拉雅南

申请人 : 诺基亚公司

摘要 :

一种用于验证软件应用的终端包括能够操作操作系统(OS)平台(例如SymbianTMOS平台)并且能够在OS平台之上操作至少一个软件应用的处理器。一个或者多个软件应用与包括准许的准许记录相关联,这些准许记录标识了软件应用被授权从OS平台接收的服务。OS平台能够从软件应用接收对OS平台的服务的请求。OS平台基于相关联的准许记录来确定软件应用是否被授权接收所请求的服务。另外如果软件应用被授权,则OS平台能够向软件应用提供所请求的服务。

权利要求 :

1.一种用于检验软件应用的方法,包括:

验证软件应用的真实性,并且如果所述软件应用的所述真实性被验证,则(a)安装所述软件应用以便在操作系统平台之上进行操作;以及(b)为所述软件应用创建准许记录,并且将所述准许记录存储在策略数据库中,所述准许记录包括至少一个准许,所述至少一个准许标识了所述软件应用被授权从所述操作系统平台接收的至少一个服务,从所述软件应用接收对所述操作系统平台的服务的请求;

基于相关联的准许记录来确定所述软件应用是否被授权以接收所请求的服务;以及如果所述软件应用被授权则向所述软件应用提供所请求的服务。

2.根据权利要求1所述的方法,其中从所述软件应用接收请求包括从所述软件应用接收对所述操作系统平台的至少一个服务的多个请求,其中确定所述软件应用是否被授权包括基于所述相关联的准许记录为各个所请求的服务确定所述软件应用是否被授权接收所述所请求的服务。

3.根据权利要求1所述的方法,其中验证真实性包括基于所述软件应用的来源来验证所述软件应用的真实性,其中先前已经从所述来源接收到所述软件应用。

4.根据权利要求1所述的方法,还包括:

启动加载所述软件应用;

验证所述软件应用的完整性;以及

如果所述软件应用的所述完整性被验证则加载所述软件应用以便操作,其中启动加载所述软件应用、验证所述完整性并且加载所述软件应用发生在从所述软件应用接收对所述操作系统平台的服务的请求之前。

5.根据权利要求4所述的方法,其中与所述软件应用相关联的所述准许记录还包括与所述软件应用相关联的签名,以及其中验证所述软件应用的完整性包括:基于所述软件应用生成验证签名;

比较所述验证签名和与所述软件应用相关联的所述准许记录中的所述签名;以及基于所述比较来验证所述软件应用的所述完整性。

6.根据权利要求1所述的方法,其中接收请求包括从在移动设备上的所述操作系统平台之上操作的软件应用接收请求。

7.一种用于检验软件应用的设备,包括:

第一装置,用于验证软件应用的真实性,并且如果所述软件应用的所述真实性被验证,则(a)安装所述软件应用以便在操作系统平台之上进行操作;以及(b)为所述软件应用创建准许记录,并且将所述准许记录存储在策略数据库中,所述准许记录包括至少一个准许,所述至少一个准许标识了所述软件应用被授权从所述操作系统平台接收的至少一个服务,第二装置,用于从所述软件应用接收对所述操作系统平台的服务的请求;

第三装置,用于基于所述相关联的准许记录来确定所述软件应用是否被授权接收所述所请求的服务;以及第四装置,用于如果所述软件应用被授权则向所述软件应用提供所述所请求的服务。

8.根据权利要求7所述的设备,其中所述第二装置用于从所述软件应用接收对所述操作系统平台的至少一个服务的多个请求,其中所述第三装置用于基于所述相关联的准许记录为各个所请求的服务确定所述软件应用是否被授权接收所述所请求的服务.

9.根据权利要求7所述的设备,其中所述第一装置用于基于所述软件应用的来源来验证所述软件应用的所述真实性,其中先前已经从所述来源接收到所述软件应用。

10.根据权利要求7所述的设备,还包括:

第五装置,用于启动加载所述软件应用;

第六装置,用于验证所述软件应用的完整性;以及

第七装置,用于如果所述软件应用的所述完整性被验证则加载所述软件应用以便操作,其中所述第五、第六和第七装置用于在所述第一装置从所述软件应用接收对所述操作系统平台的服务的请求之前分别启动加载所述软件应用、验证所述完整性并且加载所述软件应用。

11.根据权利要求10所述的设备,其中与所述软件应用相关联的所述准许记录还包括与所述软件应用相关联的签名,以及其中所述第六装置用于验证所述软件应用的所述完整性包括用于:基于所述软件应用生成验证签名、比较所述验证签名和与所述软件应用相关联的所述准许记录中的所述签名、并且随后基于所述比较来验证所述软件应用的完整性。

12.根据权利要求7所述的设备,其中所述第二装置用于从在移动终端上的所述操作系统平台之上操作的软件应用接收请求。

说明书 :

技术领域

本发明主要地涉及检验软件应用的终端和方法,并且具体地涉及用于在移动终端操作系统环境中检验软件应用的终端、方法和计算机程序产品。

背景技术

众所周知,包括计算机(固定式或者便携式)、移动电话、个人数据助理(PDA)、管理器等的各种用户设备可以用来与通信系统中的其它用户设备通信或者访问因特网以获得服务。移动用户设备通常被称为移动终端,并且可以被定义为能够经由无线接口与另一设备如移动电信网络的基站或者包括其它移动终端的任何其它站进行通信的装置。这样的终端可以适于经由无线接口的语音、文本消息或者数据通信。
随着数字趋同改造了商务及用户使用和共享信息的方式,发生着数字通信技术、数字媒体和计算的涌现。另外正在开发用户设备用来使用户能够使用这样的趋同所提供的设施。就此而言,所谓的高端移动电话(或者智能电话或者通信器)是已经开发用来满足这一要求的移动终端的例子。这些移动电话不仅执行常规移动电话的功能而且还可以执行先前限于个人计算机、个人数字助理等的功能。例如,许多这些移动电话包括用以将第三方软件安装或者加载到移动电话中的功能。
本领域技术人员也众所周知的是,各款软件可能在病毒、特洛伊木马或者黑客所引入的某一其它元素的伪装之下是恶意的以便滥用移动电话或者以别的方式来获得对移动电话功能的使用。众所周知,个人计算机易受这样的问题所影响,并且在个人计算领域中已经提出解决方案以克服这些问题,包括实施用以防止、检测和/或者应对这样的恶意软件所引起的安全风险的具体安全措施。然而,多数移动设备的开放操作系统如当前的SymbianTM操作系统(OS)没有提供用于克服安全风险的细颗粒度安全模型。另外,已经提出的各种解决方案是基于软件的应用级解决方案,因此可能为老练的程序员所规避。

发明内容

鉴于前述背景,本发明的实施例提供一种用于检验软件应用的改进终端、方法和计算机程序产品。根据本发明的实施例,提供一种安全框架,由此可以在安装、加载和/或提供服务给终端所接收的应用之前检查那些应用的真实性、完整性和/或授权。具体而言,例如安装或者以别的方式加载到终端上的应用与多个准许记录相关联,该多个准许记录标识了应用被准许从在应用之下操作的OS平台接收的服务,例如包括应用被准许在OS平台内执行的操作。然后,当应用请求由OS平台所提供的服务时,在该应用接收所请求的服务之前,可以基于与相应应用相关联的准许记录来验证应用用以接收该服务的授权。因此,可以阻止未授权的应用如恶意应用访问如下服务,就这些服务而言相应应用没有如在准许记录中所标识的明确访问授权。
根据本发明的一个方面,提供一种用于检验软件应用的终端。该终端包括能够操作操作系统(OS)平台(例如SymbianTM OS平台)并且能够在OS平台之上操作至少一个软件应用的处理器.一个或者多个软件应用与包括多个准许的准许记录相关联,该多个准许标识了软件应用被授权从OS平台接收的服务.OS平台能够从软件应用接收对OS平台的服务的请求.OS平台或者OS平台的验证模块可以通过基于相关联的准许记录来确定软件应用是否被授权以接收所请求的服务从而验证软件应用的授权.并且如果软件应用被授权,则OS平台能够向软件应用提供所请求的服务.
该终端可以从软件应用接收对OS平台的至少一个服务的多个请求。接着对于各个请求的服务,OS平台可以基于相关联的准许记录来确定软件应用是否被授权以接收所请求的服务。OS平台接着向软件应用提供向软件应用进行了授权的那些服务。
除了验证软件应用的授权之外,OS平台还能够验证软件应用的真实性。具体而言,OS平台或者OS平台的安装程序应用可以基于软件应用的来源来验证软件应用的真实性,其中先前已经从该来源收到软件应用。然而,无论OS平台如何验证软件应用的真实性,如果软件应用的真实性被验证,则OS平台可以随后安装软件应用以便在终端上操作。在这样的实例中,OS平台可以在从软件应用接收对OS平台的服务的请求之前验证真实性并且安装软件应用。然而,在验证应用的真实性之后,如果软件应用的真实性被验证,则OS平台还能够为软件应用记录创建准许记录,并且随后在OS平台的策略数据库中存储该准许记录。
另外,OS平台还能够启动加载软件应用并且在加载软件应用之前验证软件应用的完整性。就此而言,与软件应用相关联的准许记录还可以包括与软件应用相关联的签名。在这样的实例中,OS平台能够通过基于软件应用来生成验证签名、通过比较验证签名和与软件应用相关联的准许记录中的签名、并且随后通过基于比较来验证该软件应用的完整性从而验证软件应用的完整性。然而,无论如何验证软件应用的完整性,如果软件应用的完整性被验证,则OS平台或者OS平台的加载程序应用都可以加载软件应用以便在终端上进行操作。然后,在加载软件应用之后,OS平台可以从软件应用接收对OS平台的服务的请求。
根据本发明的其它方面,提供一种用于检验软件应用的方法和计算机程序产品。本发明的实施例因此提供一种用于检验软件应用的改进终端、方法和计算机程序产品。如上所述以及如下所释,本发明的实施例提供一种安全框架,由此在向软件应用提供服务之前验证该软件应用用以接收此服务的授权。另外根据本发明的实施例,可以在安装软件应用以便在终端上操作之前验证软件应用的真实性。此外,根据本发明的实施例,可以在加载软件应用以便在终端上操作之前验证该软件应用的完整性。这样,本发明实施例的终端、方法和计算机程序产品解决了现有技术所认识到的问题并且提供附加优点。

附图说明

已经用一般性的术语如是描述了本发明,现在将对附图进行参照,这些附图未必是按比例绘制的,其中:
图1是将从本发明的实施例中受益的一类终端和系统的框图;
图2是在应用层平台与在较低层的制造商特定硬件之间的操作系统平台的示意性框图;
图3是功能性地图示了根据一种常规技术在操作系统平台之上进行操作的两个应用的示意性框图;
图4是功能性地图示了根据本发明一个实施例在操作系统平台之上进行操作的两个应用的示意性框图;以及
图5、图6a和图6b是图示了根据本发明一个实施例检验软件应用的方法中各步骤的流程图。

具体实施方式

现在将在下文中参照其中示出本发明优选实施例的附图更完全地描述本发明。然而,本发明可以用不同形式来实施而不应当理解为限于这里阐述的实施例;实际上提供这些实施例是为了使得本公开将是透彻和完整的,并且将向本领域技术人员完全地传达本发明的范围。相似的标号通篇地指代相似的单元。
参照图1,提供了将从本发明中受益的一类系统和终端的图示。将主要与移动通信应用相结合来描述本发明实施例的系统、方法和计算机程序产品。然而,应当理解,可以与在移动通信业中和在移动通信业以外的各种其它应用相结合地利用本发明实施例的系统、方法和计算机程序产品。例如,可以与有线和/或无线网络(例如因特网)应用相结合地利用本发明实施例的系统、方法和计算机程序产品。
也应当理解,尽管终端可以被图示并且在下文中被描述为包括移动电话,但是移动电话仅说明了将从本发明中受益的一类终端,因此不应理解为限制本发明的范围。尽管出于举例的目的图示了并且将在下文中描述终端的数个实施例,但是其它类型的终端如便携数字助理(PDA)、寻呼机、膝上型计算机和其它类型的电子系统可以容易地利用本发明。
如图所示,该系统可以包括多个相同或者不同的终端10(示出一个终端)。各终端可以具有用于发送信号到基站点或基站(BS)14以及用于从基站点或基站(BS)14接收信号的天线12。基站是一个或者多个蜂窝或者移动网络的一部分,其中各网络均包括操作网络所需要的单元,比如移动交换中心(MSC)16。本领域技术人员众所周知的是,移动网络也可以被称为基站/MSC/网络互通功能(BMI)。在操作中,MSC能够在终端进行和接收呼叫、数据等时为去往终端和来自终端的呼叫、数据等选择路由。MSC也可以在终端参与呼叫时提供通向陆线主干线的连接。此外,MSC能够控制去往和来自终端的消息的转发,并且也可以针对这样的终端控制去往和来自消息接发中心(MC)18的消息的转发,这些消息比如是去往和来自短消息接发服务(SMS)中心(SMSC)的SMS消息和/或去往和来自多媒体消息接发服务(MMS)中心(MMSC)的MMS消息。
MSC 16可以耦合到数据网络,比如局域网(LAN)、城域网(MAN)和/或广域网(WAN)。MSC可以直接地耦合到数据网络。然而在一个典型实施例中,MSC耦合到网关(GTW)20,而GTW耦合到WAN,比如因特网20。比如处理单元(例如个人计算机、服务器计算机等)这样的设备又可以经由因特网(和/或直接经由用于共享和/或获得数据的其它装置,如下所述)耦合到终端10。例如,如下所述,处理单元可以包括与其中之一在图1中示出的一个或者多个起始服务器24相关联的一个或多个处理单元。处理单元可以包括能够根据本发明实施例操作的许多处理设备、系统等中的任何一个。就此而言,处理单元可以例如包括服务器计算机系统、桌上型计算机系统、膝上型计算机系统等。
虽然这里没有示出和描述每种可能网络中的每个单元,但是应当理解终端10可以耦合到许多不同网络中的任何一个或者多个网络.就此而言,一个或者多个移动网络可以根据许多第一代(1G)、第二代(2G)、2.5G和/或第三代(3G)移动通信协议等中的任何一个或者多个通信协议来支持通信.除此之外或者取而代之,一个或者多个移动网络可以根据许多不同数字广播网络中的任何一个或者多个数字广播网络来支持通信,这些数字广播网络比如是包括DVB-T(DVB-地面)和/或DVB-H(DVB-H手持)的数字视频广播(DVB)网络、包括ISDB-T(ISDB-地面)的综合业务数字广播(ISDB)网络等.
具体而言,例如一个或者多个终端10可以耦合到能够根据2G无线通信协议IS-136(TDMA)、GSM和IS-95(CDMA)来支持通信的一个或者多个网络。又如,例如这些网络中的一个或者多个网络可以根据2.5G无线通信协议GPRS、增强型数据GSM环境(EDGE)等来支持通信。此外,例如这些网络中的一个或者多个网络能够根据3G无线通信协议来支持通信,如利用宽带码分多址(WCDMA)无线接入技术的通用移动电话系统(MTS)。某些窄带AMPS(NAMPS)以及TACS网络也可以从本发明的实施例中受益,正如双模或者更高模式的终端(例如数字/模拟或者TDMA/CDMA/模拟电话)所应当受益那样。
如图所示,除天线12之外,移动终端10可以包括发送器26、接收器28和控制器30或者分别提供信号到发送器和接收器以及从发送器和接收器接收信号的其它处理器。这些信号包括根据适用蜂窝系统的空中接口标准的信令信息,也包括用户语音和/或用户生成的数据。就此而言,终端可以利用一个或者多个空中接口标准、通信协议、调制类型和接入类型来操作。具体而言,终端可以根据许多1G、2G、2.5G和/或3G通信协议等(比如上文所述通信协议中的任何一个或者多个通信协议)中的任何通信协议来操作。
理解为控制器30包括实施终端10的音频和逻辑功能所需的电路。例如,控制器可以包括数字信号处理器设备、微处理器设备和/或各种模数转换器、数模转换器以及其它支持电路。根据这些设备的相应能力在它们之间分配终端的控制和信号处理功能。控制器还可以包括内部语音编码器(VC)30a,并且可以包括内部数据调制解调器(DM)30b。另外,控制器可以包括用以操作可以存储于存储器中的一个或者多个如上面所指出的客户机软件程序的功能(如下所述)。
终端10也可以包括用户接口,该用户接口包括全部耦合到控制器30的常规耳机或者扬声器32、振铃器34、麦克风36、显示器38和用户输入接口。虽然未示出,但是终端可以包括用于对操作终端所需的各种电路供电以及可选地提供机械振动作为可检测输出的电池。允许终端接收数据的用户输入接口可以包括允许终端接收数据的许多设备中的任何设备,比如键盘40、触摸显示器(未示出)或者其它输入设备。在包括键盘的实施例中,该键盘包括常规数字键(0-9)和有关键(#、*)以及用于操作终端的其它键
终端10也可以包括用于共享和/或获得数据的一个或者多个装置(未示出)。例如,终端可以包括短程射频(RF)收发器或者询问器42,从而可以根据RF技术与电子设备共享数据和/或从电子设备获得数据。除此之外或者取而代之,终端还可以包括其它短程收发器,如例如红外线(IR)收发器44和/或使用蓝牙特别兴趣组所开发的蓝牙品牌无线技术来操作的蓝牙(BT)收发器46。因此,除此之外或者取而代之,终端还可以根据这样的技术发送数据到电子设备和/或从电子设备接收数据。虽然未示出,但是除此之外或者取而代之,终端还可以根据包括WLAN技术如IEEE 802.11技术等的许多不同无线联网技术发送数据到电子设备和/或从电子设备接收数据。
终端10还可以包括通常存储与移动订户有关的信息元素的存储器,比如订户身份模块(SIM)48、可移动用户身份模块(R-UIM)等.除SIM之外,终端还可以包括可移动和/或者固定存储器.就此而言,终端可以包括易失性存储器50,如易失性随机存取存储器(RAM),其包括用于暂时存储数据的高速缓存区.终端也可以包括可以是嵌入式和/或可移动式的其它非易失性存储器52.除此之外或者取而代之,非易失性存储器还可以包括EEPROM、闪存等.存储器可以存储由终端用来实施终端功能的许多软件应用、指令、诸条信息和数据中的任何内容.
如上所述,终端10可以操作或者以别的方式运行许多不同软件应用,例如包括WAP(无线应用协议)浏览器、MMS客户机、SMS客户机、电子邮件客户机、短程连通性OBEX(对象交换)引擎、PC连通性、蓝牙和IR栈、PIM(个人信息管理)和电话应用。在终端内,这样的应用通常在比如开放架构SymbianTMGenericTechnology(GT)所提供的OS平台这样的OS平台的顶部上运行。如下所述,操作系统包括Symbian OSTM。然而应当理解,根据本发明实施例操作系统可以包括能够类似于SymbianTMOS来操作的许多其它操作系统中的任何操作系统。例如,取代了SymbianTMOS,应用可以在比如Linux、CE或者Palm这样的操作系统的顶部上操作。
将认识到,SymbianTM GT是SymbianTM应用编程接口(API)和操作系统技术的共同核心。它包含通向如下各项的所有接口:用户接口(UI)应用、动态链接库(DLL)、可执行文件(EXE)和用于控制终端10中各种硬件设备(例如包括振铃器34、显示器38、键盘40以及在适当的时候包括RF收发器42、IR收发器44和/或蓝牙收发器46)的设备驱动器。此外,SymbianTM GT通过定义好的和文档化的消息接发架构来与终端的核心蜂窝软件通信。
现在参照图2,该图图示了在基于SymbianTM的终端10上载有的许多应用54(例如应用1、应用2、应用3等)的顶部上操作的SymbianTM OS GT的架构图。在终端硬件(见图1)和较低级软件56的顶部上示出了SymbianTMOS GT。众所周知,SymbianTMOS GT包括在概念上将SymbianTMGT所提供的API和操作系统技术划分成有关功能的API和操作系统技术的多个子系统。就此而言,如图所示,SymbianTMGT包括基本子系统58、应用框架子系统60、通信基本结构子系统62、浏览子系统64、消息接发框架子系统66、JavaTM子系统68、连通性子系统70、多媒体框架子系统72和应用引擎74。
简而言之,SymbianTMGT架构的基本子系统58为SymbianTMGT架构的其它部件提供编程框架。就此而言,该基本子系统包括利用微内核架构的OS系统内核,在该微内核架构中最少程度的功能核心与一个或者多个扩展功能和/或客户具体部件相分离。除微内核之外,基本子系统还包括用户库以及提供对归档系统的共享式访问的文件服务器。
应用框架子系统60包括用于服务和例如数据管理、文本处理、剪贴板、资源文件支持国际化和核心图形UI(GUI)部件这样的部件的中间设备API。为了实施这样的服务,于是应用框架子系统包括比如应用架构、窗口服务器、查看服务器和GUI部件框架这样的子子系统。
通信基本结构子系统62为SymbianTMGT架构内的通信和联网提供框架和服务。通信基本结构子系统可以包括或者以别的方式关联于例如通信服务器、套接服务器和电话服务器的服务器。通信、套接和电话服务器又为例如包括传输控制协议/因特网协议(TCP/IP)、GSM、CDMA、无线应用协议(WAP)以及串行通信和例如红外线和蓝牙的短程通信的许多通信技术和协议提供支持。
SymbianTMGT架构的浏览子系统64包括用于根据用于WAP服务的无线标记语言(WML)和用于万维网(WWW)服务的超文本标记语言(HTML)来通信的浏览器.消息接发框架子系统66基于消息接发服务器并且为发送和接收包括例如文本消息、SMS消息、增强型消息接发服务(EMS)消息、MMS和电子邮件消息的许多不同类型的消息提供支持.
SymbianTMGT架构的JavaTM子系统68为JavaTM2Micro Edition(J2ME)框架内的JavaTM服务提供支持。连通性子系统70经由例如包括蓝牙、串行通用串行总线(USB)、红外线和以太网装置的许多不同通信装置来提供个人局域联网(PAN)连通性。多媒体框架子系统72包括媒体服务器,并且提供许多多媒体能力,例如包括音频及视频记录和回放、音频流功能和成像功能。另外应用引擎74为标准SymbianTM应用提供核心功能。就此而言,应用引擎可以包括日程(时间表)、将要做的事情、联系人、报警和世界服务器以及帮助引擎。
将认识到,于是例如SymbianTMOS的操作系统包括用于实施包括联网、通信、消息接发、浏览、电话和多媒体标准的许多不同标准的库或者DDL的扩展集。然而对操作系统的服务和资源的访问可以通过客户机-服务器架构由服务提供商来实施。在这样的框架中,客户机程序(例如应用54)请求和接收服务器(例如文件服务器、窗口服务器、查看服务器、通信服务器、套接服务器和电话服务器、消息接发服务器、媒体服务器、日程(时间表)服务器、将要做的事情服务器、联系人服务器、报警服务器、世界服务器等)所提供的服务。这些请求借助用于接收这样的请求的服务器所限定的API来接收。客户机和服务器根据消息传递协议来进行通信,其中该通信通过基本子系统58的OS系统内核来居中促成。
为了请求/提供服务,客户机和服务借助常称为会话的通信信道来进行通信。就此而言,客户机通过会话向服务器发送消息以请求服务器所提供的服务,该消息例如包括32位请求型代码和多至四个32位参数。服务器然后可以对该请求提供服务并且返回如32位结果的结果给客户机。然而,在各种实例中可能要求服务器发送和/或接收附加数据以对该请求提供服务。在这样的实例中,服务器可以在返回结果以完成请求的服务之前根据线程间数据传送服务来执行一个或者多个读和/或写功能。
如背景技术中所述,各种软件应用54可以在病毒、特洛伊木马或者黑客所引入的某一其它元素的伪装之下是恶意的以便滥用终端10或者以别的方式获得对终端功能的使用。为了更清楚地说明这一点,考虑两个应用,即应用1(app1)54a和应用2(app2)54b,如图3中所示。如图所示,两个应用在OS平台(例如SymbianOSTM)的顶部上进行操作并且接收服务器即服务器A76a、服务器B76b和/或服务器C76c中的一个或者多个服务器所提供的服务。另外如上文结合Symbian OSTM所述,在应用与服务器之间的通信经过OS平台的相应API 78来传递并且通过OS的内核80来居中促成。
在图3中所示的例子中,也考虑应用154a以恰当的方式进行操作,尝试读和/或写文件到终端10的存储器(例如非易失性存储器52),比如到联系人数据库或者电话簿中,如会话82所示。另一方面,应用254b是终端用户先前下载到终端的恶意应用。当被起动以便在终端上操作时,恶意应用2可以执行一个或者多个不恰当的功能。例如,恶意应用2可以读、写和/或删除去往终端存储器和/或来自终端存储器的文件,和/或经由消息接发技术(例如文本消息接发、SMS、EMS、MMS、电子邮件等)传送一个或者多个文件到远程设备,如会话84所示。在这一场合下,应用2可以通过执行所不希望的功能来危害用户信任和私密,这可能造成终端用户的个人和/或财务损失。
为了克服与图3的情境相关联的不足(即恶意程序获得终端10的OS平台的服务),本发明的实施例提供安全框架,由此安装或者以别的方式加载到终端上的各应用54与准许记录相关联,该准许记录标识了允许应用从OS平台接收的一个或者多个服务.然后,当应用请求OS平台所提供的服务时,可以检查该准许记录以确定该应用是否被授权以接收所请求的服务.如果该应用被授权,则OS平台可以继续向该应用提供所请求的服务.否则可以防止该应用接收所请求的服务.
现在参照图示了本发明实施例的图4、图5、图6a和图6b。具体而言,图4是根据本发明一个实施例在OS平台的顶部上操作的应用的功能框图。图5以及图6a和图6b是包括也根据本发明一个实施例检验软件应用54时的各步骤的流程图。
如图4中所示和如下文所述,与如图3中所示常规终端的框图不同的是,本发明实施例的终端10还包括安装程序应用85,该应用作为OS平台的一部分适于检验终端所接收的应用,并且如果经过了检验则将这样的应用安装到终端上而且为这样的应用创建准许记录。就此而言,本发明实施例的终端也包括用于存储终端所创建的准许记录的策略数据库(DB)84。此外,终端包括用于确认、添加、删除、覆盖或者以别的方式修改一个或者多个应用中一个或者多个准许记录的管理应用86。另外,终端包括与一个或者多个API 78集成或者以别的方式与一个或者多个API 78相关联的检验模块88,用于确定请求OS平台所提供的服务的应用是否被授权以接收那些服务,该检验模块基于策略数据库中的相应准许记录来确定这些应用的授权。
如图5的块90中所示,检验软件应用54的方法包括终端10接收软件应用,比如在图4中所示的应用354c。终端可以用许多不同方式中的任何方式来接收软件应用。例如,终端可以跨因特网22和一个或者多个蜂窝或者移动网络(见图1)从起始服务器24下载软件应用。无论终端如何接收软件应用,软件应用都可以存储于终端的存储器(例如SIM 48、易失性存储器50、非易失性存储器52等)中。然后,在接收和存储软件应用之后,比如由终端用户指引安装程序应用85安装软件应用来启动软件应用的安装以便在终端上操作,如块92中所示。
在启动软件应用54的安装之后,但是在安装该软件应用之前,安装程序应用85尝试验证软件应用的真实性,如块94和块96中所示。例如,安装程序应用可以验证软件应用的来源(例如起始服务器24)的真实性以由此验证软件应用的真实性。就此而言,软件应用的真实性可以用许多不同方式中的任何方式来验证,比如通过检查密码校验和(例如GNU私密防护(GPG)签名)。如果安装程序应用验证软件应用的真实性失败,则安装程序应用可以阻止该软件应用的安装。
如果安装程序应用85验证了软件应用54的真实性,则安装程序应用安装该软件应用以便在终端上操作,如块98中所示。另外在验证了软件应用的真实性之后,安装程序应用为该软件应用创建准许记录,如块100中所示。然后如块102中所示,准许记录然后可以作为条目存储于在OS平台的内核空间内部驻留的策略数据库84中,如104和108所示的会话所代表的那样。就此而言,策略数据库可以使访问仅限于可以被授权对策略数据库进行读和/或写的旨定的应用。
安装程序应用85可以用许多不同方式中的任何方式来创建准许记录,或者具体而言,确定包含在准许记录中的准许.例如,安装程序应用可以被配置用以在各准许记录中或者在一个或者多个特定类型的软件应用54的各准许记录中包含一个或者多个默认准许.除此之外或者取而代之,例如安装程序应用可以比如在“permissions.ini”文件中从软件应用本身接收一个或者多个准许.在这样的实例中,安装程序应用可以在把所接收的准许中的一个或者多个准许插入到准许记录中之前比如向终端用户请求对那些准许的确认.例如,假设软件应用包括一个或者多个准许,这些准许授权软件应用使用终端10的I/O接口(例如发送器26、接收器28、RF收发器42、IR收发器44、蓝牙收发器46等)执行一个或者多个操作.在这样的实例中,安装程序应用可以向终端用户通知这些授权使用终端I/O接口的准许中的一个或者多个准许,并且请求终端用户比如经由如下所述的管理应用86来确认或者拒绝那些准许.
再如,终端用户可以在安装程序应用85安装软件应用54之前、之时或者之后操作管理应用86以确认、添加、删除、覆盖或者以别的方式改写一个或者多个软件应用的准许记录中的一个或多个准许,如106和108所示的会话所代表的那样。就此而言,除确认正在安装的软件应用所提供的准许之外,终端用户还可以操作管理应用以设置、重置或者以别的方式修改一个或者多个准许记录中包含的一个或者多个默认准许。又如,终端用户可以操作管理应用覆盖或者以别的方式修改软件应用所提供的准许或者设置成默认准许。再如,终端用户可以操作管理应用以添加和/或删除默认准许中或者一个或者多个准许记录之中的准许,比如与套接和/或I/O访问控制有关的准许。
如上所述,准许记录直接地或者间接地标识了应用被准许从OS平台接收的一个或者多个服务,包括软件应用54被授权针对OS平台所执行的操作。就此而言,准许记录可以标识就终端10的OS平台而言与相应的软件应用相关联的一个或者多个准许。例如,用于软件应用(例如应用354c)的准许记录可以标识相应软件应用被授权读取的一个或者多个文件、软件应用可以执行的输入/输出(I/O)操作和/或软件应用可以用来与一个或者多个进程通信的进程间通信(IPC)和软件应用被授权创建的一种或者多种类型的临时文件以及软件应用被授权何时和向何处创建临时文件。具体而言,例如用于应用3的准许记录可以读作如下:
Program Name-Application 3
File access:
        Contact.db(R+)-No create,delete;
        Temp.txt(R,W)-Create,delete
 Consol access:Yes
在先前的准许文件中,应用3能够对终端10的存储器(例如非易失性存储器52)中的联系人数据库(contact.db)进行文件访问以及能够创建临时文本文件(temp.txt)。具体而言,应用3能够对联系人数据库进行只读(R+)访问而无权创建或者删除联系人数据库中的条目,但是能够对创建临时文本文件进行读/写(R,W)访问并且有权创建和删除临时文本文件。另外,除文件访问之外,应用3还有权访问终端的控制台(例如显示器38、键盘40等)。
除一个或者多个准许之外,准许记录还可以包括与相应软件应用54有关的一条或者多条附加信息.例如,准许记录可以标识软件应用的来源(例如起始服务器24)以及终端10何时从该来源接收软件应用和/或软件应用在存储器(例如非易失性存储器52)中存储于何处.又如,准许记录可以针对软件应用存储可以由安装程序应用85生成或者以别的方式接收的签名.就此而言,签名可以包括许多不同值、串等(比如软件应用的文件名的散列)中的任何一种,通过该签名可以验证软件应用的完整性,如下所述.
在一个或者多个实例中,在安装软件应用54并且为软件应用创建/存储准许记录之后,可以加载或者以别的方式执行软件应用以便在终端10上操作。可选地,在各种实例中应用可以被配置用以进行加载或者以别的方式来执行以便在终端上操作而不用事先单独地加以安装。然而即使在这样的实例中,应用可以由安装程序应用85来处理,如此以便在事先加载或者以别的方式执行该应用以供在终端上操作之前为该应用创建和存储准许记录。一般而言,于是在应用被配置用以进行加载或者以别的方式来执行以便在终端上操作之后,在一个或者多个实例中,包含于OS平台内或者以别的方式与OS平台相关联的程序加载程序启动或者被指引以加载软件应用以供操作,如图6a的块110中所示。然后,程序加载程序尝试验证软件应用的完整性,如块112和114中所示。
程序加载程序可以用许多不同方式中的任何方式验证软件应用66的完整性以检查软件应用是完好的并且在终端的存储器(例如非易失性存储器52)内尚未以别的方式加以修改。例如,程序加载程序可以通过为软件应用生成验证签名(例如文件名的散列)来验证软件应用的完整性。验证签名然后可以与策略数据库84中存储的软件应用的准许记录中的签名做比较。如果验证签名基本地(如果不是完全地)匹配于准许记录中的签名,则程序加载程序验证了软件应用的完整性。否则程序加载程序验证软件应用的完整性已经失败,并且可以阻止加载软件应用以供操作。
如果程序加载程序验证了软件应用54的完整性,则程序加载程序加载软件应用以便在终端10上操作,如块116中所示。随后,在一个或者多个实例中,在软件应用操作过程中,软件应用可以请求OS平台所提供的一个或者多个服务,这些服务常由服务器76提供并且通过OS的内核80来居中促成。在这样的实例中,如图6b的块118中所示,应用借助用于接收服务请求的服务器所限定的API 78向相应服务器发送这样的请求,分别就应用154a和应用254b而言如会话128和会话130所示。
在API 78收到请求时,但是在传递该请求到相应服务器之前,API指引检验模块88尝试验证请求应用54用以接收所请求的服务的授权,如块120和块122中所示。就此而言,检验模块将来自策略数据库84的用于该请求应用的准许记录加载到终端10的系统存储器(例如易失性存储器50)中。然后根据准许记录,检验模块基于准许记录中包含的准许来确定该请求应用是否被授权以接收所请求的服务。例如,假设应用请求从联系人数据库中进行读取。在这样的实例中,检验模块可以通过在相应准许记录中搜寻用以授权该应用从联系人数据库中进行读取的准许(例如File access:Contact.db(R+))来确定该请求应用是否被授权以从联系人数据库中进行读取。
如果检验模块验证该应用用以接收所请求的服务的授权失败,则检验模块阻止该应用接收所请求的服务,比如通过阻止服务请求到达相应服务器。此外,如果希望如此则可以比如通过OS的内核80在终端的存储器(例如非易失性存储器52)中生成和存储日志。就此而言,该日志可以标识许多不同诸条信息,如例如请求应用、所请求的服务和/或请求应用请求服务的时间/日期。
另一方面,如果检验模块88验证了应用54用以接收所请求的服务的授权,则检验模块传递或者指引相应API 78传递服务请求到相应服务器76.随后如块124中所示,如果服务器被准许接收服务请求并且收到该服务请求,则服务器向应用提供所请求的服务,同样分别就应用154a和应用254b而言如会话128和130所示.
在一个或者多个实例中,在应用操作过程中,同一应用54可以请求来自同一服务器或者不同服务器的同一服务或者不同服务,如块126中所示。对于各服务,API 78然后收到请求,指引检验模块88尝试验证该应用以接收所请求的服务,并且如果经验证则传递该请求到相应服务器,从而相应服务器提供所请求的服务。为了提高验证应用的授权并且向应用提供后续服务的效率,请求应用的准许记录可以保持于终端10的系统存储器(例如易失性存储器50)中,比如直至相应应用被关闭,如会话132所示。因此,与从策略数据库84中加载准许记录相对,检验模块可以针对后续请求基于系统存储器中保持的准许记录来验证该应用的授权。
如上所述,应用54请求来自适于提供所请求的服务的服务器76的服务。然而在一个或者多个实例中,从应用接收服务请求的基本服务器(例如服务器A 76a)又可以代表请求应用来请求来自一个或者多个后续服务器(例如服务器B 76b)的服务。基本服务器代表该应用而请求的服务然后可以从后续服务器被提供给该应用。在这样的实例中,可以针对从基本服务器请求的服务来验证应用用以接收所请求的服务的授权(参见块120和块122)。响应于收到服务请求,基本服务器可以代表请求应用来请求来自后续服务器的服务,来自基本服务器的请求是通过经由后续服务器所限定的相应API 78的会话来发送的,如在图4中的服务器A(即基本服务器)与服务器B(即后续服务器)之间的会话134所示。
当经由API 78从服务器76或者另一受信部件如OS平台的另一部件发送服务请求时,该API可以被配置用以将该请求传递到相应服务器而不指引检验模块88尝试验证服务器以接收所请求的服务,甚至也不考虑将向请求应用54提供服务。可选地,OS平台的各部件也可以与准许记录相关联。在这样的实例中,虽然OS平台的部件可以更通常地被视为能够对OS平台的服务和资源进行无限制访问的受信部件,但是可以比如以与应用相同的方式来验证服务器的授权。无论具体如何将请求从基本服务器传递到后续服务器,后续服务器都可以随后向请求应用提供所请求的服务,而不是向请求服务器提供所请求的服务(虽然可以通过基本服务器往回向请求应用提供服务)。
为了进一步说明本发明实施例的益处,再考虑两个应用,即应用1(app1)54a和应用2(app2)54b,如图4中所示。如图所示,与图3中一样,图4的两个应用在OS平台(例如Symbian OSTM)的顶部上操作并且接收服务器即服务器A 76a、服务器B 76b和/或服务器C 76c中的一个或者多个服务器所提供的服务。另外如上文结合Symbian OSTM所述,在应用与服务器之间的通信经过OS平台的相应API 78来传递并且通过OS的内核80来居中促成。
在图4所示例子中,也考虑应用154a以恰当的方式进行操作,尝试读和/或写文件到终端10的存储器(例如非易失性存储器52),比如到联系人数据库或者电话簿中,如会话128所示。另一方面,应用254b是终端用户先前下载到终端的也试图读和/或写文件到存储器的恶意应用,如会话130所示。在安装过程中,安装程序应用85可能验证应用1的真实性。但是作为恶意应用,安装程序应用验证应用2的真实性可能失败,并且因此阻止应用2的安装。然而考虑安装程序应用也成功地验证应用2的真实性。在这一实例中,安装程序应用安装两个应用并且为两个应用创建和存储准许记录。
由于安装程序应用85为恶意应用254b创建准许记录,所以应用2的准许记录可以仅包含默认准许,这些默认准许被选择用来仅包含不能以对于终端用户有意义的任何方式来滥用终端的服务。另外在准许记录的创建过程中,应用2可以请求对用以接收一个或者多个如下服务的授权,这些服务有助于应用2的恶意操作。与应用所接收或者以别的方式所提供的其它准许一样,安装程序应用可以在把所接收的准许插入到准许记录中之前请求终端用户确认那些准许。终端用户然后可以将应用2识别为恶意应用或者识别出应用2并不需要为之请求授权的服务,并且拒绝对那些服务的授权。
在安装程序应用85安装应用154a和应用254b之后,可以在终端10上操作任一应用54。在操作过程中,应用1可能请求如在用于应用1的准许记录中反映的、应用1被授权接收的服务,比如请求/接收会话128上的服务。另一方面,在OS平台向应用2提供任何服务之前,可以通过使用应用2的准许记录来使恶意应用2开始。就此而言,如果应用2请求在相应准许记录的准许中所不包含的服务,比如请求通过会话130对系统文件的写访问,则检验模块88阻止应用2接收所请求的服务。应用2可以针对每一准许记录被授权接收其它服务,但是通常只能接收如上所述不能以对于终端用户有意义的任何方式来滥用终端的那些服务。
根据本发明的一个方面,本发明的系统的全部或部分,比如终端10的全部或部分,一般是在一个或多个计算机程序产品(例如软件应用54、包括一个或者多个服务器76、一个或者多个API 78、内核80、安装程序应用85、策略数据库84、管理应用86和检验模块88的OS平台等)的控制之下进行操作。用于执行本发明实施例的方法的计算机程序产品包括比如非易失性存储介质这样的计算机可读存储介质和在计算机可读存储介质中实施的比如一连串计算机指令这样的计算机可读程序代码部分。
就此而言,图5、图6a和图6b是根据本发明的方法、系统和程序产品的流程图。将理解到,流程图中的每个块或步骤以及流程图中的块的组合可以由计算机程序指令来实施。这些计算机程序指令可以被加载到计算机或者其它可编程装置上以产生机器,使得在计算机或者其它可编程装置上执行的指令创建用于实施在流程图的一个或多个块或者一个或多个步骤中指定的功能的装置。这些计算机程序指令也可以存储于计算机可读存储器中,其可以指引计算机或者其它可编程装置以特定方式工作,使得在计算机可读存储器中存储的指令产生制造产品,该制造产品包括实施在流程图的一个或多个块或者一个或多个步骤中指定的功能的指令装置。计算机程序指令也可以加载到计算机或者其它可编程装置上以使一连串操作步骤得以在计算机或者其它可编程装置上执行从而产生计算机实施的过程,使得在计算机或者其它可编程装置上执行的指令提供用于实施在流程图的一个或多个块或者一个或多个步骤中指定的功能的步骤。
因而,流程图的块或步骤支持用于执行指定功能的装置的组合、用于执行指定功能的步骤的组合、以及用于执行指定功能的程序指令装置。也将理解到,流程图中的每个块或步骤以及流程图中的块或步骤的组合可以由专用的基于硬件的计算机系统实施,这些计算机系统执行指定的功能或步骤或者专用硬件和计算机指令的组合。
受益于在前面的描述以及关联附图中呈现的教导,本发明的许多改型和其它实施例对于本发明所涉及的领域中的技术人员将是可以想到的.因此应当理解,本发明不限于公开的具体实施例,而改型和其它实施例旨在于被涵盖在所附权利要求的范围之内.虽然这里利用了具体措词,但是它们仅仅是在通用性和描述性的意义上使用的而不是用于限制的目的.