法律状态公告日
法律状态信息
法律状态
2018-09-04
专利权的转移 IPC(主分类):G06F21/60 登记生效日:20180816 变更前: 变更后: 申请日:20121121
专利申请权、专利权的转移
2018-08-07
授权
授权
2015-01-07
实质审查的生效 IPC(主分类):G06F21/60 申请日:20121121
实质审查的生效
2014-12-10
公开
公开
相关申请
本申请要求2011年11月29日提交的美国临时专利申请序列号61/564,457 的优先权,通过引用将其并入于此。
技术领域
本发明总体上涉及用户设备,诸如移动通信设备,并具体涉及用于保护此 类设备上的进程间(inter-process)通信的系统和方法。
背景技术
诸如移动通信设备和便携式计算设备之类的消费电子设备在功能和计算能 力方面变得非常强大。得益于此类日益增长的能力,当前设备现在能够运行执 行各种不同功能的应用。例如,除了它们通常执行的传统的通信相关功能之外, 许多设备还包括渲染给用户的多媒体(诸如视频和音频)从而增强设备的用户 乐趣的应用。
渲染音频和视频的能力还允许内容提供商利用增长的收入流。例如,内容 提供商现在能够使高级多媒体内容对用户可用以在其个人设备上消费。在某些 情况下,可以以高分辨率(HD)提供内容给能够渲染此类内容的设备。然而, 存在与渲染多媒体内容的现有方法相关联的问题。尤其是,存在其中渲染多媒 体内容所需的进程不完全保护内容免受恶意应用影响的情况。因此,所述内容 仍然会易受窃听,并被窃取以供未授权设备稍后渲染。
更详细地,无论何时用户启动应用(诸如例如渲染视频和/或音频的应用), 通常多个进程在单个用户设备上执行。这些进程不是用户能够主动启动并控制 的高级“用户应用”,而是,在没有任何直接的用户参与或知晓的情况下而启动 和在内容或数据上执行其意图的操作的关联的“低级”进程。这些进程可以直 接与用户应用相关联,或可以是用户应用在其上运行的操作系统(OS)的部分。 作为示例,与音频/视频应用相关联的一些低级进程将执行公知的数据解密和渲 染功能以渲染给用户的内容。虽然该用户可能未意识到所述进程正在执行,不 过它们这样做,使得用户能够享受该内容。
通常,在执行它们意图的功能的同时,此类低级进程使用公知的进程间通信 (IPC)机制与彼此通信以传递消息中的数据和其它信息。虽然所述进程不可以 显式地打开被传递到外部世界的数据,但对恶意应用来说仍然有很多机会窃听 所传送的消息并记录所述数据。一旦被记录,所述恶意应用将所述数据存储到 某个其它存储器,其中然后能够在用户或所有者不知道或同意的情况下检索和 渲染所述数据。此外,低级进程之间传送的消息易受重放攻击(replay attack), 或在用户或所有者不知道的情况下被修改。
在与多媒体应用相关联的低级进程之间传送的数据不是易受此类恶意窃听 攻击的仅有的数据类型。事实上,两个或更多低级进程之间传送的任何数据类 型都易受此类攻击。作为示例,许多用户从其用户设备访问网络服务器上的金 融或其它受保护的信息。虽然用户设备和服务器之间传送的消息可能是安全的, 但与用户级应用相关联的低级进程之间传送的消息可能由于在用户设备上执行 的恶意应用而不安全。
存在首先试图防止此类恶意应用被安装在用户设备上的许多不同类型解决 方案。然而,不存在完全防止所有此类不需要的安装的解决方案。另外,许多 时候,用户没有意识到恶意应用当前正在设备上执行并窃取内容。对于在没有 增加的并更严格的安全措施的情况下可能不发布高级内容的内容提供商,以及 对于希望使某些数据保密的任何人来说,这是令人烦恼的。
发明内容
本发明提供了一种用于保护用户设备(诸如例如蜂窝电话或平板计算设备) 上的进程间通信(IPC)的系统和方法。本发明有助于防止可能安装在用户设备 上的恶意应用窃听在该设备上执行的低级进程之间发生的通信并窃取数据。
在一个实施例中,所述用户设备包括包含应用编程接口(API)的软件模块。 在用户设备上执行的低级进程调用API中的功能以选择性地保护在低级进程之 间传送的消息。
在一个或多个实施例中,本发明提供了一种用于提供在相同用户设备上执行 的第一和第二进程之间安全的进程间通信(IPC)的方法。该方法包括建立在相 同用户设备上执行的第一和第二进程之间的IPC信道,其中所述IPC信道被配 置成携带由第一进程发送给第二进程的消息。对于被发送给第二进程的每个消 息,该方法选择性地确定是否要保护所述消息,并基于所述确定而对所述消息 进行加密。结果为包括加密部分和未加密部分的消息。该方法然后通过已建立 的IPC信道将所述消息发送给第二进程。
在一个实施例中,该方法初始化用户设备上的安全功能的实例。所述安全功 能对第一和第二进程二者可访问。
此外,该方法包括初始化所选择的参数值,以作为输入提供到安全功能内来 保护免受对通过IPC信道发送给第二进程的消息的重放攻击。
在一个实施例中,该方法通过确定消息是否包括要保护的数据来选择性地确 定是否要保护该消息。
在此情况下,该方法仅对包括要保护的数据的消息的部分进行加密。
在另一个实施例中,对消息进行加密包括基于第一进程所生成的参数值而生 成针对所述消息的唯一密钥。生成唯一密钥包括向在用户设备上执行的安全功 能提供参数值,从安全功能接收唯一密钥,以及更新参数值以在生成另一个唯 一密钥来对后续消息进行加密中使用。
在一个实施例中,第一和第二进程包括可信进程,并且建立第一和第二进程 之间的IPC包括建立通过在用户设备上执行的不可信进程的IPC信道。
本发明还提供了一种用户设备,其包括存储器和通信地连接到所述存储器的 可编程控制器。在一个或多个实施例中,所述控制器被配置成建立在用户设备 上执行的第一和第二进程之间的IPC信道,其中所述IPC信道被配置成携带由 第一进程发送给第二进程的消息。对于被发送给第二进程的每个消息,所述控 制器被配置成选择性地确定是否要保护所述消息,并基于所述确定而对所述消 息进行加密,以使得所述消息包括加密部分和未加密部分。所述控制器还被配 置成通过已建立的IPC信道将所述消息发送给第二进程。
在一个实施例中,所述存储器被配置成存储对第一和第二进程二者可访问的 安全功能。在此情况下,所述可编程控制器还被配置成初始化安全功能的实例。
在一个实施例中,所述可编程控制器还被配置成初始化所选择的参数值,以 输入到安全功能内来保护免受对通过IPC信道发送给第二进程的消息的重放攻 击。
此外,所述可编程控制器被配置成通过确定消息是否包括要保护的数据来选 择性地确定是否要保护所述消息。
在至少一个实施例中,所述可编程控制器可被配置成仅对包括要保护的数据 的消息的部分进行加密。
在一个实施例中,所述可编程控制器还被配置成基于第一进程所生成的参数 值而生成针对所述消息的唯一密钥。用以生成唯一密钥,所述可编程控制器被 配置成向在用户设备上执行的安全功能提供参数值,从安全功能接收唯一密钥, 并更新所述参数值以在生成另一个唯一密钥来对后续消息进行加密中使用。
在一个或多个实施例中,第一和第二进程包括可信进程。因此,所述可编程 控制器被配置成通过建立通过在用户设备上执行的不可信进程的IPC信道来建 立在第一和第二进程之间的IPC。
另外,本发明还提供了一种用于提供在相同用户设备上执行的第一和第二进 程之间安全的进程间通信(IPC)的方法。在一个实施例中,该方法包括:通过 IPC信道从第一进程接收消息,其中所述消息包括加密部分和未加密部分;比较 用所述消息接收的参数值与被第二进程所维护的预期参数值;以及基于所述比 较而对消息的加密部分进行解密。
在一个实施例中,基于所述比较而对消息的加密部分进行解密包括在用所述 消息接收的参数值等于或超过被第二进程所维护的预期值的情况下,对消息的 加密部分进行解密。
在一个实施例中,该方法还包括初始化用户设备上的安全功能的实例,其中 所述安全功能对第一和第二进程二者可访问。
在一个实施例中,该方法还包括初始化所选择的参数值,以作为输入提供到 安全功能内来保护免受对通过IPC信道接收的消息的重放攻击。
在一个或多个实施例中,该方法还包括通过以下动作而生成针对接收到的消 息的密钥:向在用户设备上执行的安全功能提供用所述消息接收的参数值;从 安全功能接收密钥,其中所述密钥对接收到的消息是唯一的且是被第一进程用 来对消息进行加密的相同的密钥;以及更新预期的参数值以在比较通过IPC信 道用后续消息接收的另一个参数中使用。
此外,本发明还提供了一种用户设备,其包括存储器和可编程控制器。在一 个实施例中,所述可编程控制器被配置成:在用户设备上执行第一和第二进程; 建立第一和第二进程之间的IPC;接收由第一进程通过IPC信道发送给第二进 程的消息,其中所述消息包括加密部分和未加密部分;比较用所述消息接收的 参数值与被第二进程所维护的预期参数值;以及基于所述比较而对消息的加密 部分进行解密。
在一个实施例中,所述可编程控制器被配置成在用所述消息接收的参数值等 于或超过被第二进程所维护的预期值的情况下,对消息的加密部分进行解密。
此外,所述存储器被配置成存储对第一和第二进程二者可访问的安全功能。 在一个实施例中,所述可编程控制器还被配置成初始化用户设备上的安全功能 的实例。
在一个实施例中,所述可编程控制器还被配置成初始化所选择的参数值,以 作为输入提供到安全功能内来保护免受对通过IPC信道接收的消息的重放攻击。
在一个实施例中,所述可编程控制器还被配置成:向在用户设备上执行的安 全功能提供用所述消息接收的参数值以生成针对接收到的消息的密钥;从安全 功能接收所述密钥,其中该密钥对接收到的消息是唯一的且是被第一进程用来 对消息进行加密的相同的密钥;以及更新预期的参数值以在比较通过IPC信道 用来自第一进程的后续消息接收的另一个参数值中使用。
当然,本领域技术人员将领会到本发明不限于上述背景或示例,并且在阅读 下述详细描述和在查看附图的情况下将认识到附加的特征和优点。
附图说明
图1是根据本发明的一个实施例的适于使用的蜂窝电话的透视图。
图2是图示根据本发明的一个实施例配置的用户设备的某些组件部分的框 图。
图3是图示在根据本发明的一个实施例配置的用户设备上执行的两个进程 之间发生的信令的信令图。
图4是图示根据本发明的一个实施例的在相同用户设备上执行的两个进程 如何通过已建立的进程间通信(IPC)信道传送安全消息的信令图。
图5是图示根据本发明的一个实施例的在用户设备上执行的进程通过其对 接收到的消息进行解密并应用重放保护的方法的流程图。
图6图示根据本发明的一个实施例的用于携带在用户设备上执行的进程之 间发送的数据的示例性消息结构。
图7是图示可信进程如何经由一个或多个不可信进程向另一个可信进程发 送消息的信令图。
具体实施方式
本发明提供了一种用于保护用户设备(诸如例如蜂窝电话或平板计算设备) 上的进程间通信(IPC)的基于硬件密钥的系统和方法。本发明有助于防止用户 设备上可能安装的恶意应用窃听在该设备上执行的低级进程之间发生的通信和 窃取数据。为了实现该目标,本发明提供了包括用于该用户设备的应用编程接 口(API)的软件模块。API包括对在该用户设备上执行的低级进程可访问的多 个功能以保护低级进程之间的IPC。
本发明提供的功能在多个方面不同于关于保护IPC的传统方法。例如,使用 传统方法,彼此通信的进程通过建立并维护在其之间的安全隧道来保护消息。 然而,这意味着不考虑其重要性而保护所有的消息,并需要专用的宝贵资源。 对于某些应用,像音频和/或视频应用,以这样的方式保护所有消息和消息内的 所有数据可能对性能产生不利影响。本发明通过给低级进程提供选择性地确定 哪些消息需要保护的能力而避免了保护所有消息和所有数据的需要。因此确定 的,低级进程能够只保护那些消息和那些所选择的消息内的数据,因而降低了 复杂性并减少了对设备资源的影响。
本发明的另一个方面是API是通用且平台独立的,与可能特别为平台构建的 传统封装不同。因为它允许将API实例化(instantiate)在许多不同的设备上, 而不考虑用于传送那些设备上的消息和数据的特定IPC机制,所以这尤其有利。 例如,诸如APPLE iPHONE、APPLE iPAD和ANDROID之类的设备利用非常 不同的平台。如本领域已知的,每个平台基于不同的代码,并利用不同的IPC 机制来促进低级进程之间的数据消息的传送。有时,甚至单个设备也能执行针 对不同进程的不同的IPC机制。本发明提供的API没有改变已与这些平台一起 使用的基础IPC机制,而是创建并使用其自己的消息传递格式以允许低级进程 是选择性的,并且向其提供更安全的特征以用于传送数据。
在另一个方面,本发明还保护某些设备的硬件中存储的信息和数据(例如, 固件),而同时提供访问该信息和数据的更容易、更直接的方式。更特别地,执 行某些功能(诸如渲染视频)的进程通常需要从用户设备上的特定的硬件获得 硬件密钥。一旦被获得,所述进程能够在其操作中使用已获得的密钥。然而, 仅可信进程能够访问该密钥。因此,根据传统观点,要求进程首先与一个或多 个其它的硬件相关的进程协商以获得对所述硬件密钥的访问权。一旦获得访问 权,该设备需要存储器空间来存储密钥,并且然后需要资源以使用所获得的密 钥对数据进行加密/解密。因而,此类方法是复杂且耗时的。
然而,在实例化在用户设备上时本发明获得并存储所需的硬件密钥,并且然 后与要求访问该密钥的低级进程共享所述密钥。之后,需要访问硬件密钥以执 行意图的功能的每个低级进程能够在并不必须分别与硬件相关的进程协商的情 况下访问该数据。另外,为了添加另外的保护,本发明能够选择性地允许一个 或多个低级进程访问所述数据,选择性地阻止一个或多个低级进程访问所述数 据,或者仅仅完全地启用/禁用对数据的访问。另外,在一个实施例中,在诸如 公知的ARM TRUSTZONE之类的可信执行环境中实现本发明。此类实现方式 大体上消除了对使硬件密钥可供低级进程使用的需要。
现在转向附图,图1和2图示本发明的一个实施例中适于使用的终端用户设 备10。如这些图中所见,设备10被图示为蜂窝电话,更具体地是能够启动并执 行诸如视频和音频应用之类的用户级应用的智能电话。然而,本领域技术人员 应该认识到使用蜂窝电话执行音频/视频应用来描述本发明仅仅出于说明的目 的。本发明可以被用在利用IPC机制来传送消息的任何设备上,并可以用于还 保护除仅仅是视频和/或音频数据之外的数据和信息。
如图1和2所见,设备10包括控制器12,其通信地连接用户I/O接口14、 通信接口24和存储器26。用户I/O接口14包括显示器16、扬声器18、麦克风 20和允许用户送入输入命令的一个或多个控制22。至于存储器26,它包括受保 护区域28和在用户设备10上实例化以执行本发明的一个或多个实施例的API 30。如本领域公知的,设备10可以包括其它组件和/或软件模块;然而,尽管理 解在设备10上可以存在这些其它组件和/或软件模块,但为了简明而未将它们在 此处明确示出。
控制器12通常根据存储器26中存储的程序和数据来控制用户设备10的操 作。此类程序和指令包括但不限于API30。例如,可以在单个微处理器或多个 微处理器中实现控制器12所执行的控制功能。合适的微处理器可以包括通用和 专用微处理器,以及数字信号处理器。另外,控制器12可以与本领域已知的音 频处理电路(未示出)对接,以给扬声器18提供基本的模拟输出信号,并从麦 克风20接收模拟音频输入。
如传统的,控制器12被配置成响应于用户命令而启动并执行用户级应用。 仅出于说明目的,一种类型的用户级应用可以是用于为用户渲染显示器16上的 多媒体内容的音频/视频应用。在执行用户级应用的同时,控制器12还可以启动 一个或多个相关联的低级进程以促进数据处理和渲染功能。如上所述,通常自 主地且在没有直接的用户知识的情况下启动和执行这些低级进程,并利用可用 于设备10的IPC机制来传送消息中的数据,诸如视频和/或音频内容。
在进程之间传送的消息可以被窃听已建立的IPC信道的恶意应用拦截并记 录其数据。因此,根据本发明,控制器12被配置成使API30实例化,以使得 低级进程能够调用其中包含的功能以选择性地保护在IPC信道上传送的消息。
用户I/O接口14为用户提供了用以与用户设备10交互的必要组件。如上所 述,此类组件包括显示器16、扬声器18、麦克风20和控制22,其可以包括但 不限于键盘或按钮。显示器16准许用户查看拨号数字、呼叫状态、菜单选项和 通常与无线通信相关联的服务信息以及查看视频。在一个实施例中,显示器16 包括触摸感应显示器,并且因而能够给用户提供用于操作设备10的一个或多个 触摸感应控制。
通信接口24可以包括用于将诸如下载的视频和/或音频内容之类的数据发送 到连接于诸如因特网之类的IP网络的网络服务器和从其接收数据的任何收发 器。因此,在一个实施例中,接口24包括根据任何已知标准操作的全功能蜂窝 无线电收发器。此类标准包括但不限于,全球移动通信系统(GSM)、 TIA/EIA-136、cdmaOne、cdma2000、UMTS和宽带CDMA。然而,可替换地, 通信接口24可以包括根据Wi-Fi标准、BLUETOOTH(蓝牙)标准或与IEEE 802.xx族标准相关联的任何标准操作的短距离收发器或者以太网接口。
存储器26是表示设备10中或对其可访问的存储器的整个层级的计算机可读 介质。存储器26可以包括随机访问存储器(RAM)和只读存储器(ROM)二 者,并且可以实现为例如一个或多个离散的设备、层叠设备或可移除设备,诸 如闪速驱动器或存储棒。在一个实施例中,存储器26可以与控制器12集成。 如前所述,存储器26中存储的API30提供被控制器12执行以保护其进程间通 信的低级进程所需的功能。
图3是图示根据本发明的一个实施例的本发明如何保护在已建立的IPC信道 上传送的消息的信令图40。特别地,图3图示假设可信的两个示例性低级进程 42、44,可信进程“A”和可信进程“B”。这些进程42、44可以是,例如被控 制器12调用以处理并渲染多媒体数据以供在显示器16上显示的低级进程链中 的一对进程。
所述方法开始于可信进程42、44在其之间建立IPC信道(线46)。用于建 立并维护两个低级进程之间的IPC信道的过程是本领域公知的,并且与本发明 无关。因此,在此没有详细描述建立IPC信道的细节。足以理解此类通信信道 已经被建立,并假设其存在以用于可信进程42、44传送消息。
当可信进程42、44之一有数据要发送时(在此情况下是可信进程A),那个 进程首先对API30进行功能调用以生成利用其以针对可信进程B对消息进行加 密的唯一密钥(框48)。一旦被生成,可信进程A针对可信进程B对消息进行 加密(框50),并经由已建立的IPC信道将加密消息发送给可信进程B(线52)。 在接收时,可信进程B利用接收到的消息内的某些信息生成可信进程A所生成 的相同的密钥(框54)。在生成相同的密钥之后,可信进程B验证并解密接收 到的消息(框56)。
因此,根据本发明,一对可信的低级进程42、44能够通过已建立的IPC信 道而传送消息。另外,对消息进行加密的方式提供了进程间通信的传统方法未 实现的益处。更具体地,控制可信进程42、44之间的消息传递的IPC机制不受 本发明的消极影响。而是,本发明不考虑基础平台而独立于这些机制操作。另 外,本发明承担访问被可信进程42、44所使用的一个或多个唯一硬件密钥的职 责,并与可信进程42、44共享那个或那些密钥。这意味着每个可信进程42、44 不必独立于其它进程执行获得每个密钥的复杂且耗时的方法。另外,本发明针 对每个进程42、44提供了以下能力:确定其是否会保护给定消息,以及如果这 样的话,它会保护哪些消息。这脱离其中建立安全信道并保护所有消息的传统 方法。
图4是更详细地图示其中两个可信进程42、44经由IPC传送消息的方法60 的信令图。如上,方法60假设在两个进程42、44之间建立IPC信道(线62)。
方法60开始于当可信进程A和可信进程B被实例化时。在相同的用户设备 上执行可信进程A和B二者,并且二者已经被编码成经由API30进行适当的调 用。因此,可信进程A和B二者执行相同的初始化过程。特别地,可信进程A 和B初始化用户设备10上的安全API30的实例(框64a、64b)。然后,可信进 程A和B二者初始化计数器CTR和CTREXP以保护免受欺诈重放攻击(66a、 66b)。第一计数器(CTR)存储在随机访问存储器(RAM)中,并且当每个进 程被实例化时将其设置成初始值(即CTRREPLAY)。此后,CTR随被保护并发送 给另一个可信进程的每个消息而增加。第二计数器(CTREXP)是CTR的预期值。 如后面更详细所见的,CTREXP值用于通过接收消息的进程的比较以助于保护免 受重放攻击。第三计数器CTRREPLAY是在闪速存储器中维护的全局值且可供可信 进程A和B二者使用。
如前所述,本发明向所述进程提供了选择性地确定应该保护哪些消息的能 力。因此,对每个消息执行比较(框68)。所述比较可以基于任何期望的准则, 但在一个实施例中,设备10上的控制器12确定要发送的消息是否将携带应该 保护的数据。例如,仅仅确认(即ACK)来自另一个进程的请求的消息可能不 需要保护。然而,携带多媒体内容(例如,音频或视频数据)的消息需要保护。 如果对于所述数据不需要保护,则可信进程仅仅将消息未受保护地发送给可信 进程B(线76)。否则,可信进程A执行保护该消息所需的功能。
特别地,在一个实施例中,可信进程A生成对API30中的功能 GET_UNIQUE_KEY的调用(框70)。该功能采用RANDOM||CTR作为参数, 其是可信进程A生成的与CTR的值串联(concatenate)的随机数。该功能返回 作为256位值的密钥。这个密钥对于被加密的消息是唯一的。所返回的值中最 高有效128位(SC_IC)是用于完整性保护的密钥。所返回的值中最低有效128 位(SC_CK)是用于机密性的密钥。
一旦被生成,可信进程A使用该密钥对消息进行加密(框72),并然后在经 由已建立的IPC信道向可信进程B发送加密消息(线76)之前,增加所述CTR。 由于下面更充分解释的原因,该消息包含可信进程A所生成的随机数,以及增 加的CTR值。在接收到受保护的消息时,可信进程B处理该消息以提取数据(框 78),并渲染给用户的数据(框80)。
图5是图示可信进程通过其来提取数据的更详细的方法90的流程图。在图 5的实施例中,在通过IPC通信信道接收到消息的情况下,可信进程B首先比 较CTR值与计数器CTREXP的预期值(框92)。如上所述,该比较有助于保护免 受重放攻击。
如本领域公知的,重放攻击是当恶意应用窃听IPC信道并记录所传送的消息 时。此后,恶意程序能够联系进程之一,使用已记录的消息中的数据来将其自 身欺诈地认证为另一个进程,并请求该进程执行某种动作。因为基于被窃取的 数据,接收到欺诈请求的可信进程相信恶意应用的合法性,所以该可信进程可 能执行恶意应用所请求的动作。
为了保护免受此类攻击,本发明维护多个不同的计数器CTR、CTREXP和 CTRREPLAY。对所有可信进程全局可访问的CTRREPLAY计数器被存储在闪速存储 器中,并无论何时设备10遭遇硬件重启动时使用本领域公知的任何手段对其进 行更新。类似地,因为硬件重启动还将重新实例化可信进程A和B,所以还将 值CTREXP和CTRREPLAY发起为CTRREPLAY的新近更新的值。一旦被更新,伪装 为可信进程A并试图联系可信进程B的任何恶意应用将仅具有CTR的无效值。 因此,可信进程B会将该请求认作非法请求并结束处理。
如果CTR的值等于或超过CTREXP(框92),则可信进程B会继续生成可信 进程A所生成的相同的消息唯一密钥(框94)。为了实现此,可信进程B将在 可信进程A处所生成的随机数和CTR的当前值串联,并然后将该串联值作为参 数传递给API30的GET_UNIQUE_KEY功能以获得密钥。如后面更详细所见 的,将随机的和CTR的值在消息的未加密部分中从可信进程A传递到可信进程 B。API30的GET_UNIQUE_KEY功能应该返回可信进程A所生成的相同的密 钥以对消息进行加密。因此,可信进程B能够利用掌握中的适当密钥对消息进 行解密(框96)。
一旦被解密,可信进程B会验证该数据(框98)。可以使用本领域已知的任 何手段来实现验证,但在一个实施例中,可信进程B包含对在数据上执行校验 和(CHECKSUM)操作所需的逻辑。如果该校验和表明该消息是无效的(框 98),则过程结束。否则,可信进程B增加CTR,并将预期值CTREXP设置成 CTR的值(框100)。
如前所述,本发明利用它自己的消息格式来确保该功能一直独立于平台特定 的IPC机制。图6图示根据本发明一个实施例的消息格式。如图6所见,不是 所有的数据字段都被加密。而是,仅对数据长度、数据、填充长度和填充字段 进行加密,而剩余的字段是明文。下表中详细说明了消息中的每个字段。
此外,本发明还被配置成提供对于每个消息的端到端安全性,即使不是进程 链中的所有进程都衰退(rust)。例如,如图7的信号图120中所见的,可信进 程A能够通过一个或多个不可信进程122向可信进程B发送受保护消息。如上, 本发明假设已经建立了(线124、126)用于携带进程42、122、44之间的数据 消息的必需IPC信道。
如图7所见,可信进程A首先执行上述功能以保护消息(框128)。一旦被 保护,可信进程A打包(wrap)该消息(框130),并经由已建立的IP信道向 不可信进程122发送消息(线132)。在接收时,不可信进程122将不能对该消 息进行解密,并因而仅仅经由已建立的IPC信道将加密消息转发给可信进程B (线134)。可信进程B然后打开该消息(框136),并如前所述解密和验证消息 (框138)。
当然,可以在不脱离本发明的基本特性的情况下以除本文特别陈述的方式之 外的其它方式执行本发明。因此,本实施例在所有方面都被视为示例性而不是 限制性的,并且本文旨在涵盖所附权利要求的含义和等价范围内出现的所有变 化。
机译: 提供安全的进程间通信的系统和方法
机译: 提供安全的进程间通信的系统和方法
机译: 提供安全的进程间通信的系统和方法