首页> 中国专利> 用于进程间安全消息传递的装置和方法

用于进程间安全消息传递的装置和方法

摘要

一种装置包括用于执行非瞬时性机器可读程序指令的处理器。所述处理器用于使发送应用与第一安全种类相关联且使接收应用与第二安全种类相关联。所述处理器用于在消息路由器中从所述发送应用接收进程间消息,其中所述进程间消息包括所述发送应用和所述接收应用的指示。所述处理器基于所述第一安全种类和所述第二安全种类而确定所述进程间消息的权限。在授予所述权限时,所述处理器将所述进程间消息转发到所述接收应用,而在拒绝所述权限时,所述处理器阻止所述进程间消息。使所述第一和第二应用与安全种类相关联显著地简化了用于安装在计算装置上的应用的消息传递规则和安全策略的配置。

著录项

  • 公开/公告号CN112912879A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201880096333.5

  • 申请日2018-08-08

  • 分类号G06F21/60(20130101);H04L29/06(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 11:14:36

说明书

技术领域

本公开的方面大体上涉及移动计算设备,且更确切地说,涉及移动计算设备中使用的安全机制。

背景技术

为现代移动计算装置设计的软件应用通常用作面向活动的服务的集合,而不是独立的应用或软件程序。例如ANDROID、IOS或WINDOWS等流行移动操作系统或应用框架提供丰富的进程间通信(inter-process communication,IPC)机制以将这些面向活动的应用无缝集成到单个统一用户体验中。

开放标准和在文献中有充分记载的计算平台会产生由许多不同来源开发的许多不同软件应用。设备制造商和/或经销商将不再始终具有对所有软件应用的控制权。为了缓解由源自未知且通常不可信来源的软件应用所造成的风险,可在软件操作平台中包括各种进程间通信IPC机制。某些IPC消息会触发用户提示,要求用户授予权限或选择应用以处理消息。此类型的权限检查可称为引用监视器且包括在一些IPC机制中。不利的是,用户可能不理解所请求的权限或将弹出窗口视为麻烦。

操作平台可能试图通过在安装软件应用时强加要求来改进安全性,例如要求任何新软件包由已知授权机构进行加密签名,之后才安装软件。然而,这会限制可供用于移动计算设备的软件应用的范围和类型。

替代地或另外,消息防火墙或消息路由器可用于控制IPC消息业务。ANDROID意图防火墙(ANDROID Intent Firewall)为基于规则的消息路由器的示例。基于规则的消息路由器中使用的规则可能较复杂且需要在配置时同时考虑来源和目的地两者。虽然有时有可能自动化更新,但仍需要评估每一个应用且设计与该应用和安全策略的需求匹配的规则。这可能是一个昂贵且耗时的过程。

随着应用的数目的不断增加以及新的复杂安全攻击的增长,已证实现有IPC消息保护不够充分。复杂应用可利用实施缺陷来获得对特权服务的访问权并破坏系统安全。恶意应用正变得越来越复杂且分布得越来越广泛。因此,需要有改进的用于控制和保护移动计算装置中的IPC消息传递的装置和方法。因此,需要提供解决上述问题中的至少一些问题的方法和装置。

发明内容

本发明的目的是提供改进的用于以简化方式来管理和控制计算装置上执行的许多应用当中的进程间通信的方法及装置。

根据第一方面,通过一种包括用于执行非瞬时性机器可读程序指令的处理器的装置来获得以上和另外的目的和优点。处理器用于使发送应用与第一安全种类相关联且使接收应用与第二安全种类相关联。处理器用于在消息路由器中从发送应用接收进程间消息,其中进程间消息包括所述发送应用和所述接收应用的指示。处理器基于第一安全种类和第二安全种类而确定进程间消息的权限。在授予权限时,处理器将进程间消息转发到接收应用,而在拒绝权限时,处理器阻止进程间消息。使第一和第二应用与安全种类相关联显著地简化了为安装在计算装置上的应用配置消息传递规则和安全策略所需的工作。

在根据第一方面的装置的第一可能实施形式中,进程间消息包括消息的类型的指示,并且处理器用于基于消息的类型而确定进程间消息的权限。消息的类型包括动作种类和所作用的数据种类中的一个或多个。将例如动作种类和数据种类等消息类型包括在内允许不同消息传递规则与不同类型的消息的安全种类相关联。

在根据如此第一方面的装置的第二可能实施形式中,处理器用于基于进程间消息而修改处理器的状态,并且基于处理器的修改后状态而确定进程间消息的权限。这使装置内的安全性得以改进。例如,应在安全执行环境内而不是在不大安全的非安全世界执行环境中确定安全加密操作的权限。

在装置的另一可能实施形式中,处理器用于基于发送应用和接收应用中的一个或多个的相关信息而确定第一安全种类和第二安全种类中的一个或多个,其中与发送应用和接收应用中的一个或多个相关的信息包括以下各项中的一个或多个:病毒扫描、从社会证明服务获得的数据、装置用户的输入、安装信息、供应商权利、专用安全要求和机器学习应用。基于广泛范围的信息源确定期望的安全种类能通过更可靠地选择与每一应用相关联的安全种类而提高装置的安全性。

在装置的另一可能实施形式中,处理器用于在确定第一安全种类和第二安全种类中的一个或多个时将优先级给予用户输入。通常需要允许用户推翻由装置做出的任何自动确定。

在装置的另一可能实施形式中,处理器用于在安装信息指示源自不可信来源的发送应用和接收应用中的一个或多个时基于供应商权利而确定第一安全种类和第二安全种类中的一个或多个。将优先级给予供应商权利提供了可靠方式来确定应用的最佳安全种类,因为供应商能够通过分布在装置上的所有其它软件组件彻底地测试应用。

在装置的另一可能实施形式中,处理器用于在预定时间量里未拒绝进程间消息的权限或发送应用和接收应用之间已发送预定量的进程间消息时,将第一安全种类和第二安全种类中的一个或多个改变成更可信安全种类。修改或改变与应用相关联的安全种类允许装置适应改变条件和使用模式。改变条件可包括例如安装在装置上的软件应用的数目和类型的改变、使用装置的方式的改变,和装置连接到的网络的改变,以及环境或装置使用的任何其它改变。

在装置的另一可能实施形式中,每一安全种类与一个或多个消息传递策略相关联,并且处理器用于动态地修改一个或多个消息传递策略。动态修改与安全种类相关联的消息策略允许装置适应改变条件和使用模式。

在装置的另一可能实施形式中,发送应用和接收应用中的一个或多个是受高度保护的应用的群组的成员,并且处理器用于使受高度保护的安全种类与受保护的应用的群组相关联,其中受保护的应用的群组由以下各项中的一个或多个限定:应用的提供商、供应商权利和用户输入。将应用识别为高度安全的应用允许安全种类与应用的更安全可靠的关联。

在装置的另一可能实施形式中,处理器用于在消息传递历史中记录权限和相关联的进程间消息信息,并且基于消息传递历史而修改第一安全种类和第二安全种类中的一个或多个。保持IPC消息和权限的历史允许识别重复尝试渗透敏感数据或操作的恶意应用,或识别表现良好的应用且相应地修改应用的信任度。

在装置的另一可能实施形式中,处理器用于使发送应用与第一一个或多个安全种类相关联,使接收应用与第二一个或多个安全种类相关联,以及基于第一一个或多个安全种类和第二一个或多个安全种类而确定进程间消息的权限。使应用与多个安全种类相关联允许更好地控制用于可具有广泛范围的功能性和IPC消息传递需求的应用的IPC消息。

在装置的另一可能实施形式中,第一安全种类与第二安全种类相同。通常需要允许与相同安全种类相关联的应用之间的进程间通信。

在装置的另一可能实施形式中,修改处理器的状态包括将处理器状态从非安全世界执行环境切换到安全执行环境。

在装置的另一可能实施形式中,装置为手机。

根据第二方面,通过一种包括使发送应用与第一安全种类相关联、使接收应用与第二安全种类相关联、在消息路由器中从发送应用接收进程间消息的方法来获得以上和另外的目的和优点,其中进程间消息包括所述发送应用和所述接收应用的指示。方法基于第一安全种类和第二安全种类而确定进程间消息的权限。在授予权限时,方法将进程间消息转发到接收应用,而在拒绝权限时,方法阻止进程间消息。使第一和第二应用与安全种类相关联显著地简化了用于应用的消息传递规则和安全策略的配置。

在根据第二方面的方法的第一可能实施形式中,方法包括基于发送应用和接收应用中的一个或多个的相关信息而确定第一安全种类和第二安全种类中的一个或多个,其中与发送应用和接收应用中的一个或多个相关的信息包括以下各项中的一个或多个:病毒扫描、从社会证明服务获得的数据、装置用户的输入、安装信息、供应商权利、专用安全要求和机器学习应用。基于广泛范围的信息源确定期望的安全种类能通过更可靠地选择与每一应用相关联的安全种类而提高装置的安全性。

根据第三方面,通过一种上面存储有程序指令的非瞬时性计算机可读介质来获得以上和另外的目的和优点,所述程序指令在由处理器执行时使处理器执行根据第二方面或第二方面的第一实施形式的方法。

根据结合附图考虑的本文中所描述的实施例,示例性实施例的这些和其它方面、实施形式和优点将变得显而易见。然而,应理解,描述和图式仅用于说明的目的,不作为对所公开发明的限制的定义,对于所公开发明的限制,应参考所附权利要求书。以下描述将阐明本发明的额外方面和优点,并且这些方面和优点的一部分将在描述中显而易见,或通过实践本发明而习得。此外,本发明的方面和优点可通过所附权利要求书中特别指出的途径和组合来实现和获得。

附图说明

在本公开的以下详述部分中,将参考附图中所示的示例性实施例来更详细地解释本发明,图中:

图1示出根据所公开的实施例的各方面的用于提供改进的进程间消息机制的示例性计算装置的框图。

图2示出根据所公开的实施例的各方面的用于提供替代性改进的进程间消息机制的示例性计算装置的框图。

图3示出根据所公开的实施例的各方面的用于在移动计算装置内提供安全的进程间消息处理的示例性方法的流程图。

具体实施方式

图1示出根据本公开的实施例的用于提供改进的进程间消息传递机制的示例性计算装置100的框图。计算装置100可并入到各种类型的计算装置和移动通信装置中,例如手机、平板手机、平板电脑、笔记本电脑、机顶电缆盒、电视、汽车等,并且可有利地用于向在计算装置100上运行的用户应用提供安全可靠的进程间通信服务。在示例性计算装置100中,处理器152耦合到存储器154且用于读取和执行存储在计算机存储器154中的非瞬时性程序指令。

在一个实施例中,装置100的处理器152用于使发送应用108与第一安全种类相关联;使接收应用112与第二安全种类相关联;以及在消息路由器116中从发送应用108接收进程间消息128。进程间消息128包括发送应用108和接收应用112的指示。处理器152还用于基于第一安全种类和第二安全种类而确定进程间消息128的权限。在授予权限时,将进程间消息128转发到接收应用112。在拒绝权限时,阻止进程间消息128。

处理器152可为单个处理设备或可包括多个处理设备,所述多个处理设备包括专用设备,例如数字信号处理(digital signal processing,DSP)设备、微处理器、专用处理设备、并行处理核心或通用计算机处理器。在某些实施例中,处理器152可包括与图形处理单元(graphics processing unit,GPU)联合工作的中央处理单元(central processingunit,CPU),所述图形处理单元可包括DSP或其它专用图形处理硬件。

存储器154可以是能够存储计算机程序指令和/或数据的任何适当类型的计算机存储器。存储器154可为各种类型的易失性和非易失性计算机存储器的组合,例如只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁盘或光盘,或能够保持信息且使所存储的信息可供用于通信地耦合到存储器154的处理器152的其它类型的计算机可操作存储器。

存储器154用于存储可能对计算装置100有用的软件程序指令或软件程序以及相关联的数据。存储在存储器154中的软件程序组织成各种软件模块或组件,其可使用指示每一软件组件所提供的类型或功能性的术语来指代。例如,所存储的软件组件可包括操作系统(operating system,OS)、超管理器、设备或其它硬件驱动器,和/或各种类型的用户应用,例如媒体播放器、电子邮件应用、银行应用等。应用108、112是用户应用的示例,而系统114是例如操作系统的执行型程序的示例。

有时需要将新的或更新的用户应用安装到计算装置100上。用户应用或应用108、112可个别地安装,或在需要时可安装为包括一个或多个应用的程序包或软件包的一部分。软件包是由软件提供商一起递送的一个或多个相关软件应用的集合,并且可包括软件实用程序和用于支持所包括的应用的其它数据。

应用108、112可在称为进程空间或进程106、110的计算资源的群组内由处理器152单独地或以组合方式执行。每一进程106、110由处理器152单独地维护且包括其自身的计算资源的集合。与进程106、110相关联的计算资源的集合对于在所述进程106、110内执行的软件程序或应用108、112是可访问的,并且可包括例如虚拟内存空间和/或硬件组件的资源。处理器152用于单独地管理、并且在需要时使属于一个进程106、110的计算资源免受另一进程106、110中执行的软件应用108、112的访问或修改。例如,系统114可用于防止在进程106中执行的应用108访问或修改计算资源,例如已在进程110内分配以供应用112使用的存储器154的一部分。

在现代开放计算环境(例如计算装置100)中,可从许多不同来源或供应商获得应用108、112。因此,出于安全性目的,重要的是控制应用108、112之间的通信。例如,允许从未知来源下载的游戏应用访问同一设备上执行的银行应用将是危险的。为了维护计算装置100的安全性和完整性,可能源自未知或不可信来源的这些应用108、112可在不同的独立进程106、110中运行,使得系统114可防止一个应用108访问或破坏属于另一应用112的信息。为了促进且调节在计算装置100上的不同进程106、110中执行的应用108、112之间的通信,系统114提供进程间通信(IPC)机制134,所述进程间通信在所示实施例中包括用于以安全和受控制的方式在应用108、112之间发送消息的IPC路由器116。

处理器152用于实施且强制执行优先级系统,所述优先级系统提供保护某些应用或进程免受其它进程破坏或滥用的方法。此优先级系统防止以较低优先级执行的程序或进程修改或以其它方式破坏或滥用以较高优先级执行的程序或进程。在计算装置100中,系统114以比应用108、112或其相应进程空间106、110更高的优先级执行。因此,优先级系统防止应用108窜改IPC路由器116或其它系统114组件,以获得对另一应用112的未授权的访问或将未授权的消息发送到另一应用112。

需要具有安装在计算装置100上且可能在其上同时执行的许多应用108、112。通常从许多不同来源获得的这些应用108、112用于提供广泛范围的特征和功能性。为了维护计算装置100的完整性,系统114用于在不同独立进程106、110中执行应用108、112,并且防止在一个独立进程106中执行的一个应用108访问或破坏在不同进程110内执行的另一应用112的计算资源。为了提高安全性,不允许在不同进程106、110中执行的应用108、112之间的直接通信。通过由系统114管理的IPC机制134实现不同进程106、110中执行的应用108、112之间的所有通信。

现代计算装置(例如手机、平板电脑等)的用户已开始期望在其计算装置上运行的所有软件应用当中具有一致的集成用户体验。为了支持这种一致的集成计算体验,设计成在计算装置100等现代计算装置上执行的应用被设计为组件和服务的集合,所述组件和服务的集合公开发布的接口以供计算装置100上运行的其它应用使用。通过在系统114内包括IPC消息传递机制134或基础设施来辅助这种多应用环境的集成,以允许应用彼此通信且利用由其它应用公开的服务。

在一个独立进程106中执行的应用108需要与在单独的独立进程110中运行的另一应用112通信时,可将IPC消息128发送到IPC路由器116,其中可将消息转发130到接收应用112。因为IPC消息路由器116执行为系统进程114的一部分,所以应用108、112不能够篡改或以其它方式干扰IPC路由器116的操作。因此,基于规则的集合或其它期望准则或逻辑,IPC路由器116可确定是否将消息128转发130到接收应用112,是否阻止消息,或是否基于IPC消息128而执行其它所要的计费或数据收集。IPC路由器116用于控制应用108、112之间的所有通信。IPC消息路由组件134中包括控制如何以及何时转发130、阻止或以其它方式处理IPC消息128的各种规则和策略。

为了辅助理解,考虑基于由GOOGLE公司开发的ANDROID

另外,这些规则的配置可能需要管理员具有比期望的普通用户权限等级更高的权限,由此限制了哪些用户能够配置规则。想要修改路由规则的用户可能被授予更高权限等级,由此产生更大的安全风险。对于普通用户而言,也很难知道应用实际需要何种服务以及何种服务可能造成安全漏洞。

本文呈现一种用于减少所需的配置工作的量且减少用户和/或设备管理员所需的知识的新颖方法。相比之下,计算装置100用于将应用分类成相对较少数目个种类,并且针对每一种类限定消息传递规则和安全策略,而不是如在常规计算装置中那样针对每一应用创建消息传递规则。因为安全种类的数目显著地小于应用108、110的总数目,所以针对每一安全种类配置消息传递规则和安全策略所需的工作量比针对每一个应用单独地配置规则和策略所需的工作量要少得多。

还可在不了解可能安装在计算装置100上的所有各种应用的情况下事先将消息传递规则和/或安全策略指配到每一种类。在装置100或软件组件最初开发或配置时,每一种类的规则可由熟练的管理员配置。这些规则以后还可每隔一段时间轻易地修改。在安装新软件应用108、112时,其可分类成安全种类中的一个或与安全种类中的一个相关联。一旦应用与安全种类相关联,该应用将从被指配或相关联的安全种类继承适当的进程间通信规则的集合。

计算装置100包括用于执行支持IPC路由器116的各种服务的安全种类服务118。安全种类服务118可将应用指配或分类为安全种类、进程消息传递规则和安全策略,并且确定132如何处理进程间消息128、130。种类数据库120用于针对每一安全种类存储进程间消息传递规则和安全策略,并且用于存储支持将应用指配或分类为安全种类的信息。种类数据库(database,DB)132还可存储增强安全种类服务118的操作或审计所要的任何信息。

安全种类服务118将应用关联到的安全种类的集合可为任何期望大小。大量安全种类提供对应用于特定应用108、112的消息传递规则或策略的更精细控制,而较小数目的安全种类简化IPC消息传递机制内的安全性的配置。

在某些实施例中,需要用新的或修改后的信息不时地更新种类DB 120,或去除过时或不合需要的信息。例如,包括新的或修改后的消息传递规则、安全策略、安全种类和/或种类关联规则等可能是有利的。更新种类DB 120是有利的且允许装置100适应新型安全威胁、新型或修改后的应用类型,并且改变用户要求。

在安装应用108、112时或其后每隔一段时间,安全种类服务用于获得关于已安装应用108、112的信息,并且使用此信息以及存储在种类DB 120中的信息以将安全种类指配到新安装的应用108、110。

安全服务118用于从系统服务122、124、126搜集可具有关于应用110、112的知识的信息,并且用于使用此信息以辅助适当的安全种类的指配或关联。

在一个实施例中,用于搜集关于已安装应用108、112的信息的系统服务122、124、126可包括病毒扫描器122、社会证明服务124或从计算装置100的用户获得的输入126。病毒扫描器122检查正在安装的软件和数据是否存在已知病毒或其它安全威胁或恶意软件签名。社会证明服务124是扫描例如因特网的公共网络以定位关于已安装应用108、112和/或关于已安装、评价或正在使用应用的其他用户的体验的信息的服务。可由用户输入126组件请求来自计算装置100的用户的输入。

安全种类服务118基于从系统服务122、124、126获得的信息、存储在历史DB中的信息和/或关于应用108、112和计算装置100的可用的任何其它适当的信息而使应用108、112与安全种类相关联。在选择安全种类以与应用108、112相关联时,安全种类服务118还可用于将规则应用于从系统服务122、124、126获得的输入。例如,在一个实施例中,从计算装置100的用户获得的用户输入126可用于覆盖由病毒扫描器122和/或社会证明服务124提供的信息。

如上文所描述,计算装置100用于防止一个应用108将消息128直接发送到第二应用112。在计算装置100中,所有进程间消息128必须发送到IPC路由器116。IPC路由器116联系132安全种类服务118以确定应如何处理消息,并且在被允许时,IPC路由器116将消息转发130到接收应用112。

在IPC路由器116接收到消息128时,其联系132安全种类服务118以确定应如何处理消息128。安全种类服务接着检查关于消息128的所有信息,例如消息的类型、消息内容以及发送消息128的应用108和消息128可转发130到的应用112,以做出关于应如何处理消息128的确定。

进程间消息128的类型可用于指示由进程间消息128请求的动作的种类。例如,动作的种类可为加密服务、地址簿中的名称查找、向用户显示信息或任何其它有用的服务或动作。消息的类型还可指示消息中包括的数据的类型。数据可包括例如口令、照片、媒体文件或按需要的其它种类的数据。

可接着基于与发送应用108相关联的第一安全种类和与接收应用112相关联的第二安全种类而识别用于IPC消息128的消息传递规则。第一安全种类和第二安全种类可相同或可不同。安全种类服务118接着基于从种类DB 120获得的例如对应于第一和第二安全种类的消息传递规则和/或安全策略的信息而确定是阻止还是转发IPC消息128。

安全种类服务118还可从用户输入服务126请求信息以辅助其确定如何处理IPC消息128。用户输入服务126可直接从用户处请求信息。替代地,用户输入服务126可依赖于先前获得的用户输入或预定默认值。在一个实施例中,从用户输入126接收的信息可覆盖消息传递规则或存储在种类DB中的其它信息。

在某些实施例中,应用108、112可与多个安全种类相关联。在这些实施例中,安全种类服务118可考虑与所有与发送应用108和接收应用112两者相关联的所有安全种类相关联的消息传递规则和其它信息。

可将IPC消息128转发130到接收应用112或可进行阻止。如下文将进一步论述,除转发或阻止消息128之外,IPC路由器116或安全种类服务118还可用于执行其它期望操作。例如,基于某些应用企图访问未授权的服务而对某些应用进行隔离、在历史数据库140中记录审计踪迹或任何其它期望类型的安全相关处理可能是有利的。

在一个实施例中,安全种类服务118用于维护具有关于已处理的消息传递请求128的信息的历史DB 140。历史数据库140可记录关于发送和接收应用、IPC消息128、与在处理IPC消息128时的发送应用108和接收应用112相关联的安全种类以及处理消息请求128的结果的信息。处理消息的结果可包括关于是转发130还是阻止消息的信息。在某些实施例中,关于权限的信息和在处理n个进程间消息传递128时所考虑的规则可有利地包括在历史数据库140中。存储在历史DB 140中的信息可用作审计踪迹或用于其它审计或监视操作。

历史DB 140中的信息可由安全种类服务118用以动态地调整与每一应用108、112相关联的一个或多个安全种类。例如,如果发现应用108正发送由安全种类服务118连续地拒绝的消息请求128,则安全种类服务118可将此识别为可能的安全问题或恶意应用,且相应地调整与发送应用108相关联的安全种类。类似地,可调整接收应用的安全种类以根据可能的新安全威胁而增加安全性。类似地,应用在首次安装时可能与高限制性的安全种类相关联,而随时间推移,在观察到应用表现良好时,如由历史DB 140中的信息所指示,可相应地调整安全种类。在某些实施例中,可能需要基于例如从病毒扫描器122接收的输入和社会证明服务124等其它输入而动态调整与应用108、112相关联的安全种类。

在一个实施例中,基于关于开始安装的应用的类型的信息,安全种类服务可使应用108、112在安装时与安全种类相关联。这在从可信来源获得应用108、112且例如以允许在安装之前验证应用的内容的方式进行加密签名时特别有用。如本文所使用,可信应用是从可信来源获得且以此类方式进行加密签名的软件程序。与例如从未知或未验证的来源获得的应用等不可信应用相比,使可信应用与更高的安全种类相关联可能是有利的。

例如,从用户自身的银行获得的银行应用或从信誉良好的软件公司获得的媒体播放器可得到更高信任度,并且与指示更高信任水平并允许访问敏感服务的安全种类相关联。相反,从因特网上的未知站点下载的游戏应与指示低信任水平并防止访问任何敏感信息或服务的安全种类相关联。

如本文所使用,术语“更可信安全种类”是指,相比于另一安全种类,被允许访问更大量系统服务或被允许与更大量应用交换消息或可被允许访问更敏感安全服务的安全种类。因此,将应用108、112所相关联的安全种类改变成更可信种类能增加允许应用108、112与之交换IPC消息128的服务或资源。

一旦安全种类服务118已做出关于如何处理消息128的确定,安全种类服务118就将其确定返回到IPC路由器116。IPC路由器116接着根据从安全种类服务118返回的信息而阻止或转发130IPC消息128。

图2示出根据本公开的实施例的用于提供改进的进程间消息传递机制的示例性计算装置200的框图。计算装置200类似于上文关于图1所描述的计算装置100,其中图2中所示的相同附图标记对应于上文参考图1所描述的相同组件。示例性计算装置200采用明显不同的方法来使安全种类与应用108、112相关联,并且配置有明显不同的系统服务202、204、206,所述明显不同的系统服务可由安全种类服务218用以使应用108、112与安全种类相关联或利用安全种类对应用108、112进行分类。计算装置200的安全种类服务218用于基于从包安装程序202、供应商权利服务204、专用安全要求206和/或机器学习应用208获得的输入而自动使安全种类与应用108、112相关联。

包安装程序202用于将软件应用108、112安装在计算装置200上。在安装进程期间,可由安全种类服务118从包安装程序202获得关于正安装的应用108、112的信息。此信息,在本文中被称作安装信息,可包括加密签名的校验结果、证书和签名信息的校验结果、软件的来源或供应商的识别结果、正安装的软件所需要或请求的服务和计算资源等。

供应商权利204是指计算装置200的供应商对已知软件应用的管理(curation)。已由计算装置200供应商测试和管理的软件可基于此测试和管理的结果而被赋予增加的信任和特权。替代地,管理包可由供应商标记为风险且与具有有限特权的安全种类相关联。供应商权利服务204向安全种类服务218提供供应商权利信息,所述安全种类服务可在使应用与安全种类相关联或利用安全种类对应用进行分类时使用。

软件产品或应用108、112可在安装在计算装置200上或在这之后适当或期望的时间指定或请求特定安全要求。这些请求的安全要求可由应用安全服务206处理且作为使应用108、112与安全种类相关联的辅助提供到安全种类服务218。这些安全要求可在安全种类服务218自动关联安全种类期间处理和考虑。替代地,这些安全要求可与其它输入或用户数据组合以支持使应用108、112与安全种类相关联。

通过包括可向安全种类服务218提供信息的各种机器学习应用208,使应用与安全种类相关联或利用安全种类对应用进行分类可随时间推移而改进。机器学习应用可用于调整利用安全种类对应用进行分类或使应用与安全种类相关联的方式。机器学习208还可用于调整与每一安全种类相关联的安全策略或消息传递规则。机器学习应用208可例如观看应用108、112的行为且将应用移动到不同的安全种类或改变应用所关联的安全种类。

在例如计算装置200的系统中,供应商权利204可在关联安全种类时优先,然而,专用安全要求206仍可拒绝安全性较低的应用的访问。优先考虑供应商权利204可能是有利的,因为供应商作为系统集成商通常处于最佳位置以确定在计算装置200上运行的整个软件环境的安全性。

在一个实施例中,安全种类服务218可将应用108、112辨识为属于受高度保护的应用的群组,并且使应用108、112与受高度保护的安全种类相关联。受高度保护的安全种类是具有一定消息传递规则的安全种类,所述消息传递规则被设计成防止或限制对应用提供的服务的未授权访问。辨识应用108、112属于高度安全的应用的群组可基于上文所描述的准则中的任一个,例如可由包安装程序202确定的应用的提供商、供应商权利204、专用安全要求206或例如用户输入106的额外信息。

在某些实施例中,可能存在许多客户端应用需要来自高度安全的应用的群组的服务或者想要与之交互。因为客户端应用的数目可能极大,所以事先对安全策略和消息传递规则进行分类和单独配置是不可行的。为了解决这个配置问题,可配置相对较少数目的安全种类的安全策略和消息传递规则,接着众包——还被称作社会证明——或如上文所描述的其它此类方法可用于将每一客户端应用自动地指配到已配置的安全种类中的一个安全种类。

因此,默认地,应用将不具有对受保护应用的访问权。如果输入源,例如社会证明输入源,指示有足够多的人对应用进行了足够高的评价,则将其升级成较低限制性的策略且授予对受保护应用的访问权。分类还可基于通过可信的应用商城甚至人工智能(artificial intelligence,AI)系统对应用进行测试。相反,如果应用由病毒扫描器标记为潜在恶意程序,则拒绝应用访问高度安全的应用的群组。

为辅助理解,上文将计算装置100和计算装置200中使用的安全种类服务118和安全种类服务218描述为具有用于使安全种类与应用108、112相关联的明显不同的功能性和特征。本领域的技术人员将容易地认识到,安全种类服务118和安全种类服务218的特征的各种组合是可能的,并且可在不偏离所公开的实施例的精神和范围的情况下在计算装置中有利地采用。

在某些实施例中,需要高度的安全性。例如,处理器102可支持多个执行状态,其中一个状态为可信执行环境或安全执行环境,而另一状态为可被称为非安全世界执行环境的不大安全环境。在处理器102支持多个执行状态时,可能有利的是:在例如可信执行环境的高度安全执行状态内执行安全种类服务118、208,而应用108、112的执行将保持在非安全世界执行状态中。对于某些类型的IPC消息128,可能有利的是:将处理器102的状态改变或修改成更安全的状态或执行环境,例如安全执行环境,并且在此高度安全状态内执行安全种类服务118、218。这允许确定权限,例如如何处理在高度安全状态内要保护的IPC消息128。

有利的是,例如在所请求的服务还需要在高度安全状态或执行环境内执行时,在安全状态或执行环境内执行安全种类服务118、218。请求依赖于机密材料的加密操作的IPC消息128是IPC消息128的一个示例,所述示例将得益于使安全种类服务118、218在可信或安全执行环境或状态内执行。

图3示出用于在移动计算装置或按需要的其它类型的计算装置内提供安全IPC消息处理的示例性方法300的流程图。示例性方法300适合在例如上文所描述的计算装置100和计算装置200等各种类型的计算装置上使用。

方法在将应用安装在计算装置上时或其后的适当时间通过使发送应用与第一安全种类相关联302而开始。接收应用与第二安全种类相关联304。替代地,可按需要在发送应用之前关联304接收应用。第一安全种类可与第二安全种类相同,或者,第一和第二安全种类可不同。在某些实施例中,使多于一个安全种类与应用相关联可能是有利的。

在发送应用和接收应用的执行期间,发送应用可能想要将消息发送到接收应用。例如,文本发送应用可能需要从相册应用请求照片,以便将照片附加到文本消息。在这种情况下,消息路由器将从第一应用接收306IPC消息。IPC消息将包括关于发送应用、接收应用和消息的类型的信息,以及发送和接收应用所需要的其它信息。

接着,基于包括在IPC消息中的信息以及与发送应用和接收应用相关联的安全种类而确定308IPC消息的权限。每一安全种类将具有与其相关联的一个或多个消息传递规则和安全策略。这些消息传递规则提供用于确定是否应授予发送IPC消息的权限的基础。在授予权限时,将IPC消息转发312到接收应用。在未授予权限时,阻止316消息的传输。

在转发312或阻止316IPC消息之后,可能需要改变314与发送应用或接收应用相关联的安全种类。例如,如果发送应用试图将消息发送到发送应用无权访问且不应试图访问的高度敏感的服务,例如银行服务,则可能需要使发送应用与较高限制性或较低可信安全种类相关联。在某些情形中,可能需要使发送应用与指示应用被隔离的安全种类相关联,例如具有不允许应用发送任何消息的消息传递规则的安全种类。

在某些实施例中,在确定权限308之后,将关于IPC消息和所得权限确定308的信息存储在历史存储区或数据库中。在改变314与应用相关联的安全种类时,可接着使用此历史数据库。例如,在应用最初安装时,其可与相对限制性的安全种类相关联。如本文所使用,相对限制性的安全种类是指具有消息传递规则的安全种类,所述消息传递规则仅将发送消息的权限授给被认为安全或不造成较大安全风险的服务。在应用已使用一段时间之后,历史DB可展示应用表现良好或未试图访问敏感服务或信息且仅发送了与其预期功能性一致的消息。可能需要将表现良好的应用提升为较低限制性或较多特权的安全种类,由此允许其通过将消息发送到较多种系统服务来扩展其功能性。

如果没有滥用将应用移动到具有较高信任的安全策略的较高信任的安全种类下所启用的新功能,则通过改变与应用相关联的安全种类来逐渐提高相关联的安全策略提供给应用的信任。可预限定或动态创建与每一安全种类相关联的安全策略或消息传递规则。

因此,尽管文中已示出、描述和指出应用于本发明的示例性实施例的本发明的基本新颖特征,但应理解,所述领域的技术人员可在不脱离当前公开的发明的精神和范围的情况下对所示装置和方法的形式和细节以及其操作方面进行各种省略、替代和改变。此外,应认识到,结合本发明的任何公开形式或实施例示出和/或描述的结构和/或元件可作为设计选择的通用项而并入所公开或描述或建议的任何其它形式或实施例中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号