CN1965281A - 具有多进程结构的用于运行插件程序代码模块的计算装置 - Google Patents

具有多进程结构的用于运行插件程序代码模块的计算装置 Download PDF

Info

Publication number
CN1965281A
CN1965281A CN200580019063.0A CN200580019063A CN1965281A CN 1965281 A CN1965281 A CN 1965281A CN 200580019063 A CN200580019063 A CN 200580019063A CN 1965281 A CN1965281 A CN 1965281A
Authority
CN
China
Prior art keywords
application program
plug
card module
program
card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200580019063.0A
Other languages
English (en)
Other versions
CN100470440C (zh
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.)
Nokia Technologies Oy
Original Assignee
Symbian Software Ltd
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 Symbian Software Ltd filed Critical Symbian Software Ltd
Publication of CN1965281A publication Critical patent/CN1965281A/zh
Application granted granted Critical
Publication of CN100470440C publication Critical patent/CN100470440C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

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

Abstract

本发明公开了一种计算装置,其具有用于在其自身的专用进程中运行插件程序代码模块的多进程结构,从而使用插件程序设计模型来提高软件安全性和可靠性。

Description

具有多进程结构的 用于运行插件程序代码模块的计算装置
技术领域
本发明涉及一种用于运行插件程序代码模块的计算装置,具体地,涉及一种用于在其自身的专用进程中运行这种模块,以使用插件程序设计模式(pattern)来提高软件安全性和可靠性的装置。
背景技术
本文中所使用的术语计算装置应广义理解为覆盖任何形式的电子计算装置,其包括:数据记录装置、任何类型或形式的计算机(包括手持和个人计算机)、以及任何形式因素的通信装置(包括移动电话、智能电话、集通信、图像记录和/或重放和计算功能于一体的通信装置、以及其他形式的无线和有线信息装置)。
可将插件程序定义为可执行代码的可替换项,其为可在运行时间加载或调用插件程序的松散耦合(loosely coupled)应用程序提供特定的业务。
在很多操作系统中广泛地使用插件程序,并且插件程序被很多应用程序所广泛使用。这种技术的主要优点很广泛,包括:
·可使用插件程序的应用程序是固有可扩展的,这是因为当需要新特征时可以添加或替换插件程序;
·仅在请求时才通过应用程序加载关于插件程序代码,从而使程序能够对存储器的需求更小并且能够更快的开始运行;
·插件程序的设计在结构上是柔性的,这是因为软件设计者无需知道关于任意插件程序的内部工作方式;
·它们提供了商业上的益处;通过插件程序提供的选项或者提供功能性的许可证持有者可以改进上市时间,并且也鼓励第三方市场来写入用于现有应用程序的插件模块。
插件程序经常作为动态链接库(DLL)或者相似类型的模块来加载,上述模块在与调用它们的应用程序相同的进程空间内执行。然而,它们也可以被派生(加载然后运行)为单独的进程。这两种可选的模型均被广泛地使用。
在运行时间通过应用程序加载的动态链接库(DLL)模块已成为许多应用程序执行插件程序的传统方式。软件设计者预先指定包括抽象API的结构或框架,特定类型的所有模块必须符合该抽象API。这些模块以规定的和预定义的方式‘插入’到调用的应用程序中,并且广泛地用于很多操作系统中。用户可能特别熟悉这种类型的模块形式的插件程序,例如,打印机驱动程序。
DLL插件程序被认为是非常高效的;与将这些程序集成到应用程序自身时相比,应用程序可以直接调用DLL中的程序,而没有明显的速度或者存储器开销。它们也是非常灵活的;可以添加插件程序以提供新的功能性,或者将其替换以改进现有的功能性。调用的应用程序通常包括用于标识所有特定类型的DLL插件程序的代码(或者指定其插件程序必须具有特定唯一的文件扩展或目录位置)。
多年来,已在操作系统中执行大批派生进程。根据DennisRitchie所说,派生进程的能力有点像从六十年代中期的BerkeleySDS30分时系统中继承的Unix(参见在 http://cm.bell-labs.com/cm /cs/who/dmr/hist.html处他的论文“The Evolution of the UnixTime-Sharing System”)。尽管将这种特征用作插件程序机制,使得该特性能够被添加到应用程序中,这要耗费相当长的时间才能被完全开发,但是其现在插件程序在各种基于Unix的操作系统中,还有Microsoft Windows中都很普遍,最特别的是将各种可执行程序插入Internet Explorer中来处理各种类型的内容的方式。
然而,所有插件模块结构都可能引起操作系统或平台安全方面的顾虑。这包括抵抗恶意或有害的写入代码的平台防御机制的原理、结构以及实现。因为对系统的开放性、灵活性、和可升级性的任意增加都可能增加这种顾虑,所以认为这种插件程序造成了这方面的顾虑这并不奇怪。
平台安全性对于所有计算和无线通信装置来说都是一个问题。这种装置上的数据的完整性、装置将会使用户花钱的潜能、以及它们被用于存储机密和保密信息的事实使得制造者和用户同样增加了这方面的顾虑。因此,确保插件程序机制不会危及安全是最重要的顾虑。
信任与风险问题的焦点非常有助于理解为什么安全性问题反映了关于插件程序的真正顾虑。假设能够访问用户银行账户的应用程序支持插件程序。这种应用程序如何能够知道其插件模块也可以被信赖来访问银行账户?并且如果应用程序不能确保可以信任特定的插件模块,那它又如何能使用其插件程序业务,而又不会冒着暴露访问银行帐户的风险?
相反地,假定一种装置包括执行用于控制对装置上的保护内容的访问的加密和解密算法的插件模块。该插件模块无疑需要能够确信,试图加载它以访问某一数据对象的应用程序确实有权限这么做。同意访问不可信的应用程序会将保护内容的完整性置于危险中。
许多计算装置的用户将很熟悉这种类型的问题和危险,这是因为它们与由病毒、特洛伊、蠕虫、和经常侵扰互联网的其他类型的计算机恶意软件所生成的问题和危险非常相似。
虽然存在大量的用于保护这一范围内操作系统和平台的安全的方案,但如在本发明的上下文中所述的这些问题的解决方法主要是关于基于进程的方案,其中,进程是安全单元以及存储保护单元。在这种方案中,进程具有各种安全属性,可包括但不限于权能、权限、和身份。假设这些术语是本领域技术人员很容易理解的。
这种类型的最广泛使用的操作系统源自于Unix,其中,权限和组身份的设制定义了在系统中什么进程能够进行以及他们能够打开或访问什么资源。然而,仅作为实例,本发明是根据稍有不同的基于进程的平台安全结构来描述的,该结构在来自伦敦SymbianSoftware Ltd的移动通信装置的Symbian OSTM操作系统中有所介绍。
在题为“Secure Mobile Wireless Device”的英国专利申请第0312191.0号中描述了该操作系统的多个核心组件,为了方便起见,这里概括了其中的一些部分。
在Symbian OSTM操作系统的平台安全结构中,通过授权一个或多个权能来表示可置于可执行代码(应用程序或者插件程序)的一些项中的信任等级的公共指示符。在可执行进程的情况下,权能定义了它们可以开放对指定系统资源的访问的能力。为了方便起见,将不对这种访问授权;其仅当审计证明不存在高风险(由于授权给代码的访问而出现信任违背)时才会被允许。
与权能一样,在Symbian OSTM操作系统中存在其他安全属性,包括关于包含可执行代码项的每个文件的一组唯一标识符(UID)、以及可用于指示项的出处的组ID(例如,厂家ID(VID))。SymbianOSTM操作系统中的安装型应用程序也可以携带符合公钥基础设施(PKI)规范(例如,X.509)的安全认证。
由Symbian提供的平台安全结构的重要特征在于,所有类型的可执行代码模块都可在被构建时分配固定的权能。下面,概括了其中的两个实例。
·在应用程序的情况下,这些权能确定操作系统信任应用程序的程度,该操作系统可以访问系统设施(例如,电话的功能性)或者存储在电话中的数据(例如,接触数据)。这些权能在进程范围内且从不改变。
·在DLL的情况下,这些权能确定应用程序能够确信的DLL代码的程度,但是当被加载时,DLL采用与已加载权能的进程相同的权能。
应该清楚,这种结构导致插件程序DLL设计对某些情况不适合。这是因为DLL被加载为与调用的应用程序相同的进程的一部分,并且可以访问其全部地址空间及其全部存储数据。鉴于此,应用程序必需完全信任插件程序DLL的完整性。DLL的系统装入程序通过拒绝加载任何不具有与想要调用它的应用程序至少一样大权能的DLL来加强所需的信任。对于应用程序和DLL的已知和固定组合来说,这不存在问题。但是,可以设想困难增加的情况,这可能使得插件程序DLL成为对基于安全权能的平台来说不适合的设计。
最明显的实例是如果这些DLL还不被新升级的权能所信任,则使用额外的新权能更新的应用程序将不能加载与能够成功加载的较早版本相同的DLL。另一个实例是因为DLL不能被其自身的整组权能所信任,所以想要使用由现有DLL提供的业务的新写入应用程序发现它不能那么做。
也可能发生与上述情况相反的情况。因为应用程序的权能从未改变,所以已被灵敏权能(对于DLL想要提供的功能性来说很重要)信任的DLL会发现某些应用程序不能调用它,因为这些应用程序未被与操作系统相同等级的权能所信任。
这种情况不只是理论上的;插件程序结构的所有点在于将灵活性和扩展性添加到系统中,并且这几乎确保将发生这种问题。随着它们请求的DLL和业务数量的增加,其完全必须的权能组也增加。
对DLL插件程序的一种替代是派生进程插件程序,其使得应用程序及其插件程序能够具有不相交的权能组。不幸地,恰恰因为进程插件程序模型使得权能组不相交,所以安全平台自身存在问题。在任何当前技术中不存在用于派生子进程的任何明显机制,该机制能够在父进程和子进程之间建立相互信任的关系,并且认为这种缺陷造成的潜在威胁是很重要的。
例如,用于格式化驱动器的插件程序是如何知道它可以信任调用它的应用程序的行为?以及想要使用插件程序来处理安全数据的应用程序是如何知道插件程序可以被数据的内容信任?
还存在需要解决什么时候执行派生进程插件程序作为DLL插件程序的替换的实践问题。这些源自于进程是操作系统中存储保护的基本单元的事实;这使得调用的应用程序和插件程序进程中的任一个均不会自动访问彼此的地址空间,并且它们中的任一个均不能直接访问另一个的应用程序接口(API)。
发明内容
本发明的目的在于提供一种方法,通过该方法插件程序可以作为进程来实施,然后能够根据父进程和子进程之间的相互信任,通过应用程序将其派生到新的地址空间中。
根据本发明的第一方面,提供了一种计算装置,其具有基于进程的安全模型,其中在装置上的软件应用程序能够通过调用作为独立进程的插件模块,来利用具有与应用程序的安全属性不同或不兼容的安全属性的插件模块。
根据本发明的第二方面,提供了一种具有基于进程的安全模型的计算装置的操作方法,该方法包括在装置上配置软件应用程序,以能够通过调用作为单独进程的插件模块,来利用具有与应用程序的安全属性不同或不兼容的安全属性的插件模块。
根据本发明的第三方面,提供了一种用于计算装置的操作系统,该操作系统用于使根据第一方面的计算装置能够根据第二方面的方法来操作。
具体实施方式
现在将仅通过进一步的实例来描述本发明的实施例。
本发明提供了一种具有多进程结构的计算装置,并且该装置以在父进程和子进程之间建立的相互信任为基础。
因而,派生进程需要确保其未被通过自身不信任的应用程序来调用或传输信息。为了方便于此,在计算装置中配置安全操作系统,以对子进程提供用于检索关于它们父进程的所有相关身份、安全和权能信息的程序。例如,重新格式化系统盘的全部内容的应用程序可以确保派生它的任意应用程序均具有适当的系统权能(例如,在Symbian OSTM操作系统中的DiskAdmin)。
同样配置了安全操作系统,其包括在派生父应用程序之前,父应用程序检索子进程的身份、安全和权能信息的程序。这使得将信息传送到派生进程的应用程序能够确信这些进程可以被该信息所信任。
只要应用程序确信其能够信任它预期可执行的插件程序,在插入程序开始执行之前,应用程序通过保存大量的无类型(untyped)整数的专用临时数据结构,将信息传送到插件程序。因为它们是无类型的,所以它们可用于将文件会话和句柄传送到系统资源或其他对象(例如,共享存储块、文件句柄、互斥体、和信号量)。由SymbianOSTM操作系统使用的结构以16个环境插槽(environmental slots)为基础,其中的每一个插槽只可以读取一次。参考题为“SecureHandle”的英国专利申请第0327261.4号,其中教导了对象的句柄如何可以被安全传送到对象,并且参考题为“Secure Mobile WirelessDevice With Protected File System”的英国专利申请第0312190.2号,其中教导了用于传输文件句柄的机制如何能够共享应用程序与其插件程序之间的安全文件。
通过本发明,提供了关于应用程序将什么信息暴露给插件程序的很高等级的控制。传送信息的选择完全取决于调用的应用程序,并且如果其未选择传送特定项,则插件程序就无法找出确实存在的项,更别说确定其内容。因此,对于流氓插件程序进程来说,实际上不可能通过未授权地调用其API或者访问其数据来无意或有意地破坏或危害到父应用程序的功能。
反之亦然,插件程序进程不能自动地将其程序或数据中的任一方面暴露给调用的应用程序。其有可能设计被授权为高灵敏权能的插件程序进程,但是其仍然能够被可能不必访问它们的应用程序所使用。配置进程以非常仔细地控制传送至其的信息,以避免当为应用程序提供业务时泄漏权能。然而,如上所述,这在插件程序DLL中不能实现。
通过运行插件模块作为独立的进程,能够提供只具有其真正需要的权能的插件程序。通过这样做,实现了更安全的系统,并且不需要特殊规则来适应应用程序,该应用程序将插件程序进程派生出具有比应用程序本身拥有的权能更小的权能的插件程序进程。
因为插件程序在其自身的进程空间中运行,所以运行较差的插件程序通常将不会损坏其父应用程序;相反,运行较差的DLL插件程序有可能损毁应用程序并破坏数据。因此,由本发明提供的多进程结构具有确保操作系统及其所有子系统的稳定性和可靠性的优点。将来,如果插件程序崩溃,则其可以被安全地忽略。
能够增加调用插件程序的进程的权能,而不破坏二进制兼容性。通过不指定插件程序要求的权能,系统作为整体持续发展承担很小的兼容性责任。
因此,本发明是一种通过在其自身专用的进程中实施插件程序,使用插件程序设计模型来增加软件系统的安全性和可靠性的方法。通过这样做,在调用插件程序或者为插件程序传送信息之前,应用程序能够检测插件程序的安全属性,并且在按照它们接收的信息行动之前,插件程序能够检测调用它们的应用程序的安全属性。
这样确保了应用程序可以使用安全属性与其自身不同或者不兼容的插件程序;并且故障或者运行较差的插件程序将不会引起与其连接的操作系统框架的故障。
现在将描述一套能够基于权能和身份的发现来构建应用程序和插件程序的相互信任关系的Symbian OSTM操作系统的方法,还有能将数据从父进程传送到子进程的方法。
下列代码的实例是上述技术的简单实施。在这些实例中,假设读者熟悉Symbian OSTM操作系统编程语言。本领域技术人员应该明白,能够将这里公开的技术应用于他们自己的操作系统环境中。
a)父进程如何能够检测子进程的权能和身份信息。
TUint32 RProcess::SecureId() const;
TUint32 RProcess::VendorId() const;
返回目标进程的Secure ID和Vendor ID
TInt RProcess::HasCapability(TCapability aCap) const;
TInt RProcess::HasCapability(TCapability aCap1,TCapability aCap2) const;
TInt RProcess::HasCapability(TCapability aCap1,TCappability aCap2,TCapabilityaCap3) const;
检测目标进程是否具有特定权能或权能组,并返回KErrNone或KErrPermissionDenied。
TInt RProcess::CheckPolicy(const TSecurityPolicy&aPolicy)const;
检测目标进程拥有由aPolicy指定的全部权能并且还具有由aPolicy指定的Secure ID和VendorID(如果有)。
b)子进程如何能够检测父进程的权能和身份信息。
TUint32 User::CreatorSecureId() const;
TUint32 User::CreatorVendorId() const;
返回创建当前进程的进程的Secure ID和Vendor ID。
Tint User::CreatorHasCapability(TCapability aCap) const;
TInt User::CreatorHasCapability(TCapability aCap1,TCapability aCap2) const;
TInt User::CreatorHasCapabiiity(TCapability aCap1,TCapabllity aCap2,TCapability aCap3) const;
检测创建当前进程的进程是否具有特定权能或权能组,并返回KErrNone或KErrPermissionDenied。
TInt User::CreatorCheckPolicy(const TSecurityPolicy&aPolicy)const;
检测创建当前进程的进程拥有由aPolicy指定的全部权能并且还具有由aPolicy指定的Secure ID和Vendor ID(如果有)。
c)将数据传输到子进程
在Symbian OSTM操作系统中,进程具有16个环境插槽,这些插槽可以包括通过发起进程传输至其的信息。对本文来说,发起进程被称作父进程,而被发起的进程被称作子进程。保留插槽0,并且其不用于一般目的信息传送。
在创建子进程之后,但在恢复它之前,父进程优选地将信息传送到子进程。在已恢复的进程中,尝试并设置环境数据是一个错误。
应当注意,子进程仅可以从其环境中提取一次信息。
父进程和子进程的程序设计者应均同意环境插槽中的情况,除了其长度之外,无法查询插槽的内容。
父进程调用SetParameter,以将参数设置到子进程环境中。
TInt RProcess::SetParameter(TInt aSlot,RHandleBase aHandle);
TInt RProcess::SetParameter(TInt aSlot,const RSubSessionBase&aSession);
TInt RProcess::SetParameter(TInt aSlot,const TDesC16&aDes);
Tint RProcess::SetParameter(TInt aSlot,const TDesC8&aDes);
TInt RProcess::SetParameter(TInt aSlot,TInt aData);
子进程使用RHandleBase::Open或者用户API来从其环境中提取信息
TInt RSemaphore ::Open(TInt aArgumentIndex,TOwnerType aType=EOwnerProcess);
TInt RBusLogicalChannel::Open(TInt aArgumentIndex,TOwnerType
aType-EOwnerProcess);
TInt RMsgQueueBase::Open(TInt aArgumentIndex,TOwnerType aType=EOwnerProcess);
TInt RMutex::Open(TInt aArgumentIndex,TOwnerType aType=EOwnerProcess);
TInt RChunk::Open(TInt aArgumentIndex,TOwnerType aType=EOwnerProcess);
TInt RSessionBase::Open(TInt aArgumentIndex,TOwnerType aType=EOwnerProcess);
IMPORT_C static TInt User::ParameterLength(TInt aSlot);
IMPORT_C static TInt User::GetTIntParameter(TInt aSlot,TInt&aData);
IMPORT_C static TInt User::GetDesParameter(TInt aSlot,TDes8&aDes);
IMPORT_C static TInt User::GetDesParameter(TInt aSlot,TDes16&aDes);
d)传送文件句柄
可以将文件服务器会话句柄和文件句柄传送到子进程。为了使用文件句柄,也获得会话句柄。子进程采用文件句柄,使其不必被父进程结束。出于安全的目的,优选地,特别创建用于共用文件的文件服务器会话,但是该文件服务器会话不会被父进程用于其它方面。
//Launching process
      RProcess p;
      p.Create(KProcName KNullDesc);        //create“child”process
      RFile file;
      RFs session;
      session. Connect();                   //connect to file server
      session.ShareProtected();
      file.Create(iSession KFileName,
EFileStreamText|EFileWrite|EFileSnareAny);
      fileWrite(0,KTestData);
      p.SetParameter(5,session);          //session handle
      p.Setparameter(6,file);             //file handle
      session.Close();
      p.Resume();
//Launched process
      RFs session;
      session.open(5);                //obtain session handle
      RFile file;
      TInt handle;
ret=User::GetTIntParameter(6,handle);   //get file handle
tile.Adopt(session,handle) ;               //adopt the handle
TBuf8<100>rbuf;                       //use the file
ret=flleRead(0,rbuf);
fileClose();
session. Close();
e)传送来自RhandleBase的句柄
可以将来自RhandleBase的句柄传送到子进程。当句柄被存储到子进程环境中时,复制句柄。在调用SetParameter之后,父进程可以直接结束句柄,或者继续使用句柄稍后再关闭它。
//Launching process,passes a handle to a mutex and a semaphore
RMutex mutex;
RSemaphore sem;
RProcess p;
p.Create(KProcName, KNullDesc);
mucex.CreateGlobal(KMutexName);        //create the mutex
sem.CreateGlobal(KSemName,3);         //create the semaphore
p.setParameter(3,mutex);      //put mutex handle into child processes
environment sloc 3
p.SetParameter(4,sem);          //put semaphore handle into child processes
environment slot 4
mutex.Close();
Sem Close();
p.Resume();                //resume the child process
//Launched process retrieving the handles
RMutex mutex;
mutex.Open(3,EOwnerThread);    //get mutex handle
RSemaphore sem;
sem.Open(4. EOwnerTnread);      //get semaphore handle
//use the semaphore and mutex
mutex.Close();
sem.Close();
f)传送描述符数据
可将8位和16位描述符数据从父进程传送到子进程。通过调用User::GetDesParameter(),将数据复制到子进程的缓冲区中。在检索之前,可以通过调用User::ParameterLength()来检测参数长度。
//Launching process passing 8 and sixteen bit data
ret=p.Create(KProcName,KNullCesc);
p.SetParameter(2,KsixteenBitDes);
p.SetParameter(3. KsightBitDes);
p.Resume();
//Launched process retrieving 8 and sixteen bit data
TBuf16<40>buf;
len=User::ParameterLength(2);  //parameter length is size in bytes
ret=User::GetDesParameter(2,buf);
test(buf.Length()==len/2);
TBUf8<40>buf8;
len=User::ParameterLength(3);
ret=User::GetDesParameter(3,buf8);
rest(len==buf.Length());
g)传送整数
整数可以从父进程传送到子进程。
//Parenc process
ret=p.Create(KProcName,KNullDesc);
p.SetParameter(12,1234);
p.Resume();
//Child process
TInt val;
ret=User::GetTIntParameter(12,val)
h)错误句柄
当调用带有句柄的SetParameter时,如果出现以下情况,父进程将出错(panick)
·不是创建者进程
·插槽数超出范围
·插槽被占用
·句柄是局部的
当调用带有描述符或整数的SetParameter时,如果出现以下情况,父进程将出错
·不是创建者进程
·插槽数超出范围
·插槽被占用
·数据长度是负值
如果出现以下情况,则子进程将出错
·插槽数超出范围
如果插槽包括错误的数据类型或长度是错误的,则从进程环境中提取数据的API调用将返回KErrArgument。如果插槽为空,则返回KErrNotFound。
i)实现考虑
当共享文件句柄时,为了能够共享文件句柄,父进程将专门创建单独的文件服务器会话。这是因为,如果父进程在该文件服务器会话的同时还有其它文件打开,则子进程可以通过重复所有文件句柄的可能值然后尝试采用每一个来得到对这些文件的访问。出于相同原因,子进程应仅使用共享该文件的这一会话而不使用任意其他文件访问的这一会话。
在进程被恢复之前,仅可以调用SetParameter。
参数信息只可以被检索一次。
存在16个数据插槽,可以包括句柄或二进制数据。插槽0被保留。
尽管已经参照特定实施例描述了本发明,但是应当注意,在由所附权利要求限定的本发明的范围之内,各种更改都是有效的。例如,本发明可适用于任意基于进程的安全结构,包括采用Unix形式权限的那些结构。

Claims (9)

1.一种计算装置,其具有基于进程的安全模型,并且其中,在所述装置上的软件应用程序能够通过调用插件模块作为单独进程,来利用具有与所述应用程序的安全属性不同或者不兼容的安全属性的所述插件模块。
2.根据权利要求1所述的计算装置,其中,尝试调用插件模块的应用程序能够在调用所述插件模块之前,检验所述模块的所述安全属性。
3.根据权利要求1或2所述的计算装置,其中,被作为单独进程调用的插件模块能够检验调用所述插件模块的所述应用程序的所述安全属性。
4.根据前述权利要求中的任一项所述的计算装置,其中,应用程序被配置为在执行所述应用程序之前,通过临时数据结构将信息传送到插件模块。
5.一种用于操作具有基于进程的安全模型的计算装置的方法,所述方法包括在装置上配置软件应用程序,以能够通过调用插件模块作为单独进程,来利用具有与所述应用程序的安全属性不同或者不兼容的安全属性的所述插件模块。
6.根据权利要求5所述的方法,其中,尝试调用插件模块的应用程序被配置为能够在调用所述插件模块之前检验所述模块的所述安全属性。
7.根据权利要求5或6所述的方法,其中,被作为单独进程调用的插件模块被配置为能够检验调用所述插件模块的所述应用程序的所述安全属性。
8.根据权利要求5至7中的任一项所述的方法,其中,应用程序被配置为在执行所述应用程序之前,通过临时数据结构将信息传送到插件模块。
9.一种用于计算装置的操作系统,用于使根据权利要求1至4中的任一项所述的计算装置能够根据权利要求5至8中的任一项所述的方法来操作。
CN200580019063.0A 2004-06-09 2005-06-08 具有多进程结构的用于运行插件程序代码模块的计算装置 Active CN100470440C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0413059.7 2004-06-09
GB0413059A GB2415065B (en) 2004-06-09 2004-06-09 A computing device having a multiple process architecture for running plug-in code modules

Publications (2)

Publication Number Publication Date
CN1965281A true CN1965281A (zh) 2007-05-16
CN100470440C CN100470440C (zh) 2009-03-18

Family

ID=32732330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580019063.0A Active CN100470440C (zh) 2004-06-09 2005-06-08 具有多进程结构的用于运行插件程序代码模块的计算装置

Country Status (6)

Country Link
US (1) US8984529B2 (zh)
EP (1) EP1763716A2 (zh)
JP (1) JP4757873B2 (zh)
CN (1) CN100470440C (zh)
GB (1) GB2415065B (zh)
WO (1) WO2005121920A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356380A (zh) * 2009-03-16 2012-02-15 微软公司 具有可扩展媒体格式的托管应用程序平台
CN105700928A (zh) * 2016-01-15 2016-06-22 北京金山安全软件有限公司 一种控件信息展示方法、装置及电子设备
CN108132844A (zh) * 2016-12-01 2018-06-08 腾讯科技(深圳)有限公司 插件下载方法及装置

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713671B2 (en) * 2005-11-02 2014-04-29 Nokia Corporation System and method for providing an extended platform for an operating system
JP4828296B2 (ja) * 2006-04-27 2011-11-30 京セラミタ株式会社 印刷装置制御システム及びプリンタドライバ
JP4979287B2 (ja) * 2006-07-14 2012-07-18 富士ゼロックス株式会社 画像処理装置及びプログラム
US8104048B2 (en) 2006-08-04 2012-01-24 Apple Inc. Browsing or searching user interfaces and other aspects
US7669082B2 (en) * 2007-04-11 2010-02-23 Microsoft Corporation Fault tolerant and hang resistant media processing applications
US8201096B2 (en) 2007-06-09 2012-06-12 Apple Inc. Browsing or searching user interfaces and other aspects
US9058337B2 (en) 2007-10-22 2015-06-16 Apple Inc. Previewing user interfaces and other aspects
US8225303B2 (en) * 2007-11-30 2012-07-17 Sap Ag System and method for providing software upgrades
JP2010009149A (ja) * 2008-06-24 2010-01-14 Fujitsu Ltd 動的ライブラリロード方法及び装置
CN101510167B (zh) * 2009-03-31 2016-04-20 阿里巴巴集团控股有限公司 一种插件运行的方法、装置及系统
US8626802B2 (en) 2009-07-24 2014-01-07 Apple Inc. Dynamic media content previews
US8817053B2 (en) 2010-09-30 2014-08-26 Apple Inc. Methods and systems for opening a file
US8856740B2 (en) * 2012-07-31 2014-10-07 Hewlett-Packard Development Company, L.P. Implementing multiple versions of a plug-in concurrently
KR101673836B1 (ko) 2013-05-20 2016-11-07 미쓰비시덴키 가부시키가이샤 감시 제어 장치
CN105335187B (zh) 2014-08-14 2019-12-13 阿里巴巴集团控股有限公司 一种应用的处理方法及装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4945468A (en) * 1988-02-01 1990-07-31 International Business Machines Corporation Trusted path mechanism for virtual terminal environments
US5802367A (en) * 1995-07-07 1998-09-01 Microsoft Corporation Method and system for transparently executing code using a surrogate process
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
US5903728A (en) * 1997-05-05 1999-05-11 Microsoft Corporation Plug-in control including an independent plug-in process
US6948183B1 (en) * 1998-06-18 2005-09-20 General Instrument Corporation Dynamic security for digital television receivers
US6453320B1 (en) * 1999-02-01 2002-09-17 Iona Technologies, Inc. Method and system for providing object references in a distributed object environment supporting object migration
JP2001043080A (ja) 1999-07-28 2001-02-16 Ge Yokogawa Medical Systems Ltd プログラム保護方法およびコンピュータ読み取り可能な記録媒体
US6675193B1 (en) * 1999-10-29 2004-01-06 Invensys Software Systems Method and system for remote control of a local system
FI111567B (fi) 1999-12-27 2003-08-15 Nokia Corp Menetelmä ohjelmamoduulin lataamiseksi
US7398532B1 (en) * 2000-03-02 2008-07-08 Hewlett-Packard Development Company, L.P. System and method for establishing a secure execution environment for a software process
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
US7039801B2 (en) * 2000-06-30 2006-05-02 Microsoft Corporation System and method for integrating secure and non-secure software objects
US6907531B1 (en) * 2000-06-30 2005-06-14 Internet Security Systems, Inc. Method and system for identifying, fixing, and updating security vulnerabilities
US20030177066A1 (en) * 2001-04-12 2003-09-18 Computer Sciences Corporation, A Nevada Corporation, Integrated marketing promotion system and method
US7028300B2 (en) * 2001-11-13 2006-04-11 Microsoft Corporation Method and system for managing resources in a distributed environment that has an associated object
US7320075B2 (en) * 2001-11-20 2008-01-15 Safenet, Inc. Software protection method utilizing hidden application code in a protection dynamic link library object
US20040093525A1 (en) * 2002-02-01 2004-05-13 Larnen Vincent Alan Process based security tai building
GB0212314D0 (en) 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device
GB0212315D0 (en) 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device with protected file systems
US7631318B2 (en) * 2002-06-28 2009-12-08 Microsoft Corporation Secure server plug-in architecture for digital rights management systems
US7191192B2 (en) * 2002-09-30 2007-03-13 International Business Machines Corporation Metadirectory agents having extensible functions
US20050078822A1 (en) * 2003-10-08 2005-04-14 Eyal Shavit Secure access and copy protection management system
GB2408361B (en) 2003-11-21 2007-07-25 Symbian Ltd Allocation of resources in a computing device
WO2005078552A1 (en) 2004-02-09 2005-08-25 Palmsource, Inc. Method and system for a securty model for a computing device
US7562304B2 (en) * 2005-05-03 2009-07-14 Mcafee, Inc. Indicating website reputations during website manipulation of user information
US7565641B2 (en) * 2005-06-24 2009-07-21 Microsoft Corporation Securely providing extensible third-party plug-ins
EP2194688A1 (en) * 2008-12-02 2010-06-09 Alcatel, Lucent A module and associated method for TR-069 object management

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356380A (zh) * 2009-03-16 2012-02-15 微软公司 具有可扩展媒体格式的托管应用程序平台
US8640097B2 (en) 2009-03-16 2014-01-28 Microsoft Corporation Hosted application platform with extensible media format
CN105700928A (zh) * 2016-01-15 2016-06-22 北京金山安全软件有限公司 一种控件信息展示方法、装置及电子设备
CN105700928B (zh) * 2016-01-15 2019-08-09 北京金山安全软件有限公司 一种控件信息展示方法、装置及电子设备
CN108132844A (zh) * 2016-12-01 2018-06-08 腾讯科技(深圳)有限公司 插件下载方法及装置
CN108132844B (zh) * 2016-12-01 2020-11-10 腾讯科技(深圳)有限公司 插件下载方法及装置

Also Published As

Publication number Publication date
GB2415065B (en) 2009-01-21
US20080022292A1 (en) 2008-01-24
WO2005121920A3 (en) 2006-04-27
WO2005121920A2 (en) 2005-12-22
JP4757873B2 (ja) 2011-08-24
GB0413059D0 (en) 2004-07-14
JP2008502066A (ja) 2008-01-24
US8984529B2 (en) 2015-03-17
GB2415065A (en) 2005-12-14
CN100470440C (zh) 2009-03-18
EP1763716A2 (en) 2007-03-21

Similar Documents

Publication Publication Date Title
CN100470440C (zh) 具有多进程结构的用于运行插件程序代码模块的计算装置
Alpernas et al. Secure serverless computing using dynamic information flow control
CN107679393B (zh) 基于可信执行环境的Android完整性验证方法和装置
CN100492324C (zh) 控制分区访问的分区访问控制系统和方法
CN109766722A (zh) 一种区块链中构建智能合约的方法及其系统
US9275238B2 (en) Method and apparatus for data security reading
CN104885092A (zh) 用于操作系统的安全系统和方法
CN102656561A (zh) 信息处理装置、虚拟机生成方法及应用发布系统
CN105122260A (zh) 到安全操作系统环境的基于上下文的切换
JP2016540282A (ja) 動的ライブラリを保護する方法及び装置
JP2008502066A6 (ja) プラグイン・コード・モジュールを実行する複数プロセス・アーキテクチャを有するコンピュータ装置
CN101283332A (zh) 信息处理装置、信息处理方法及程序
CN102194078A (zh) 用于应用程式档案输入及输出的安全性的方法及系统
JP6255336B2 (ja) 安全なデータ格納方法およびデバイス
KR20150020221A (ko) 보호된 데이터 세트의 네트워크 기반 관리 기법
CN105308610A (zh) 用于设备上的平台和用户应用安全性的方法和系统
CN107305606A (zh) 应用文件的处理方法及装置和文件的访问方法及装置
CN108228353A (zh) 资源访问控制方法、装置及相应终端
CN110543775B (zh) 一种基于超融合理念的数据安全防护方法及系统
CN108256351B (zh) 文件处理方法和装置、存储介质及终端
CN106294017A (zh) 一种信息安全备份实现方法
JPH10327140A (ja) 暗号処理装置及びその方法
US20150242617A1 (en) Information processing device, information processing method, and computer program
Singh et al. Discovering persuaded risk of permission in android applications for malicious application detection
Toll et al. The Caernarvon secure embedded operating system

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
ASS Succession or assignment of patent right

Owner name: NOKIA OY

Free format text: FORMER OWNER: SYMBIAN SOFTWARE LTD.

Effective date: 20100826

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: LONDON, ENGLAND TO: ESPOO, FINLAND

TR01 Transfer of patent right

Effective date of registration: 20100826

Address after: Espoo, Finland

Patentee after: Nokia Oyj

Address before: London, England

Patentee before: Symbian Software Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160114

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj