CN104205114B - 用于提供安全的进程间通信的系统和方法 - Google Patents
用于提供安全的进程间通信的系统和方法 Download PDFInfo
- Publication number
- CN104205114B CN104205114B CN201280058640.7A CN201280058640A CN104205114B CN 104205114 B CN104205114 B CN 104205114B CN 201280058640 A CN201280058640 A CN 201280058640A CN 104205114 B CN104205114 B CN 104205114B
- Authority
- CN
- China
- Prior art keywords
- message
- encryption
- security function
- parameter value
- ipc
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Telephonic Communication Services (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用户设备提供了一种用于保护沿已建立的进程间通信(IPC)信道在可信进程之间传送的消息的机制。所述机制准许可信进程确定要保护哪些消息,并独立于平台依赖的IPC机制而执行。
Description
相关申请
本申请要求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上实例化以执行本发明的一个或多个实施例的API30。如本领域公知的,设备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(蓝牙)标准或与IEEE802.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)。
当然,可以在不脱离本发明的基本特性的情况下以除本文特别陈述的方式之外的其它方式执行本发明。因此,本实施例在所有方面都被视为示例性而不是限制性的,并且本文旨在涵盖所附权利要求的含义和等价范围内出现的所有变化。
Claims (21)
1.一种用于提供在相同用户设备上执行的第一和第二进程之间的安全的进程间通信(IPC)的方法,所述方法包括;
建立在相同用户设备上执行的第一和第二进程之间的IPC信道,其中所述IPC信道被配置成携带由第一进程发送给第二进程的多个消息;
对于第一和第二进程中的每一个,初始化用户设备上的安全功能的相应第一和第二实例,其中所述安全功能存储在用户设备上并且对第一和第二进程二者可访问;以及
由第一进程:
对于发送给第二进程的多个消息中的每个消息,选择性地确定是否要保护所述消息;
如果要保护所述消息:
控制安全功能的第一实例以基于第一进程所生成的参数值而生成针对所述消息的唯一密钥;
使用所述唯一密钥对所述消息进行加密,以使得所述消息包括加密部分和未加密部分;以及
通过已建立的IPC信道将加密消息发送给第二进程;并且
如果不要保护所述消息:
通过已建立的IPC信道将未加密消息发送给第二进程。
2.权利要求1的方法,进一步包括初始化所选择的参数值,以作为输入提供到安全功能的第一实例内来保护免受对通过IPC信道发送给第二进程的多个消息的重放攻击。
3.权利要求1的方法,其中选择性地确定是否要保护所述消息包括确定所述消息是否包括要保护的数据。
4.权利要求3的方法,其中对所述消息进行加密包括仅对包括要保护的数据的消息的部分进行加密。
5.权利要求1的方法,其中控制安全功能的第一实例以生成针对所述消息的唯一密钥包括:
向安全功能的第一实例提供参数值;
从安全功能的第一实例接收唯一密钥;以及
更新参数值,以在生成另一个唯一密钥来对后续消息进行加密中使用。
6.权利要求1的方法,其中所述第一和第二进程包括可信进程,并且其中建立在第一和第二进程之间的IPC包括建立通过在用户设备上执行的不可信进程的IPC信道。
7.一种用户设备,包括:
存储器,其被配置成存储安全功能;以及
可编程处理电路,其通信地连接到所述存储器并且被配置成:
建立在用户设备上执行的第一和第二进程之间的IPC信道,其中所述IPC信道被配置成携带由第一进程发送到第二进程的多个消息;
对于第一和第二进程中的每一个,初始化用户设备上的安全功能的相应第一和第二实例;
对于第一进程:
对于发送到第二进程的多个消息中的每个消息,选择性地确定是否要保护所述消息;
如果要保护所述消息:
控制安全功能的第一实例以基于第一进程所生成的参数值而生成针对所述消息的唯一密钥;
基于所述唯一密钥对所述消息进行加密,以使得所述消息包括加密部分和未加密部分;以及
通过已建立的IPC信道将加密消息发送给第二进程;并且
如果不要保护所述消息:
通过已建立的IPC信道将未加密消息发送给第二进程。
8.权利要求7的用户设备,其中所述可编程处理电路进一步被配置成初始化所选择的参数值,以输入到安全功能的第一实例内来保护免受对通过IPC信道发送给第二进程的多个消息的重放攻击。
9.权利要求7的用户设备,其中所述可编程处理电路被配置成通过确定消息是否包括要保护的数据,来选择性地确定是否要保护所述消息。
10.权利要求9的用户设备,其中所述可编程处理电路被配置成仅对包括要保护的数据的消息的部分进行加密。
11.权利要求7的用户设备,其中所述可编程处理电路进一步被配置成控制安全功能的第一实例以基于第一进程所生成的参数值而生成针对所述消息的唯一密钥。
12.权利要求11的用户设备,其中用以控制安全功能的第一实例以生成唯一密钥,所述可编程处理电路被配置成:
向在用户设备上执行的安全功能的第一实例提供参数值;
从安全功能的第一实例接收唯一密钥;以及
更新参数值,以在控制安全功能的第一实例以生成另一个唯一密钥来对后续消息进行加密中使用。
13.权利要求7的用户设备,其中所述第一和第二进程包括可信进程,并且其中所述可编程处理电路被配置成通过建立通过在用户设备上执行的不可信进程的IPC信道,来建立在第一和第二进程之间的IPC。
14.一种用于提供在相同用户设备上执行的第一和第二进程之间的安全的进程间通信(IPC)的方法,所述方法包括:
针对第一和第二进程中的每一个,初始化用户设备上的安全功能的相应第一和第二实例,其中所述安全功能对第一和第二进程二者可访问;以及
由第二进程:
通过IPC信道从第一进程接收加密和未加密消息,其中加密消息包括加密部分和未加密部分;比较用加密消息接收的参数值与被第二进程所维护的预期参数值;
控制安全功能的第二实例以基于与加密消息一起接收的参数值而生成针对加密消息的唯一密钥;以及
基于所述比较使用所述唯一密钥而对加密消息的加密部分进行解密。
15.权利要求14的方法,其中基于所述比较而对加密消息的加密部分进行解密包括在用加密消息接收的参数值等于或超过被第二进程所维护的预期值的情况下,对加密消息的加密部分进行解密。
16.权利要求14的方法,进一步包括初始化所选择的参数值,以作为输入提供到安全功能的第二实例内来保护免受对通过IPC信道接收的加密和未加密消息的重放攻击。
17.权利要求14的方法,其中控制安全功能的第二实例以生成针对加密消息的唯一密钥包括:
向在用户设备上执行的安全功能的第二实例提供用加密消息接收的参数值;
从安全功能的第二实例接收唯一密钥,其中所述唯一密钥对加密消息是唯一的,且是被第一进程用来对加密消息进行加密的相同的密钥;以及
更新预期的参数值,以在比较通过IPC信道用后续加密消息接收的另一个参数中使用。
18.一种用户设备,包括:
存储器,其被配置成存储安全功能;以及
可编程处理电路,其被配置成在用户设备上执行第一和第二进程,以及:
建立在第一和第二进程之间的IPC信道;
针对第一和第二进程中的每一个,初始化用户设备上的安全功能的相应第一和第二实例;以及
针对第二进程:
接收由第一进程通过IPC信道发送给第二进程的加密和未加密消息,
加密消息包括加密部分和未加密部分;
比较用加密消息接收的参数值与被第二进程所维护的预期的参数值;
控制安全功能的第二实例以基于与加密消息一起接收的参数值而生成针对加密消息的唯一密钥;以及
基于所述比较使用所述唯一密钥而对加密消息的加密部分进行解密。
19.权利要求18的用户设备,其中所述可编程处理电路被配置成在用加密消息接收的参数值等于或超过被第二进程所维护的预期值的情况下,对加密消息的加密部分进行解密。
20.权利要求18的用户设备,其中所述可编程处理电路进一步被配置成初始化所选择的参数值,以作为输入提供到安全功能的第二实例内来保护免受对通过IPC信道接收的加密和未加密消息的重放攻击。
21.权利要求18的用户设备,其中所述可编程处理电路进一步被配置成:
向在用户设备上执行的安全功能的第二实例提供用加密消息接收的参数值以生成针对加密消息的唯一密钥;
从安全功能的第二实例接收所述唯一密钥密钥,其中所述唯一密钥对加密消息是唯一的,且是被第一进程用来对加密消息进行加密的相同的密钥;以及
更新预期的参数值,以在比较通过IPC信道用来自第一进程的后续加密消息接收的另一个参数中使用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161564457P | 2011-11-29 | 2011-11-29 | |
US61/564,457 | 2011-11-29 | ||
PCT/IB2012/056603 WO2013080096A1 (en) | 2011-11-29 | 2012-11-21 | System and method for providing secure inter-process communications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104205114A CN104205114A (zh) | 2014-12-10 |
CN104205114B true CN104205114B (zh) | 2018-08-07 |
Family
ID=47356253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280058640.7A Expired - Fee Related CN104205114B (zh) | 2011-11-29 | 2012-11-21 | 用于提供安全的进程间通信的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9317702B2 (zh) |
EP (1) | EP2786301A1 (zh) |
CN (1) | CN104205114B (zh) |
WO (1) | WO2013080096A1 (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9609020B2 (en) | 2012-01-06 | 2017-03-28 | Optio Labs, Inc. | Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines |
US9787681B2 (en) | 2012-01-06 | 2017-10-10 | Optio Labs, Inc. | Systems and methods for enforcing access control policies on privileged accesses for mobile devices |
EP2801050A4 (en) | 2012-01-06 | 2015-06-03 | Optio Labs Llc | SYSTEMS AND METHODS FOR APPLYING SECURITY IN MOBILE COMPUTING |
KR101919777B1 (ko) * | 2012-01-09 | 2018-11-19 | 엘지전자 주식회사 | 이동 단말기 및 그 제어방법 |
US9690635B2 (en) | 2012-05-14 | 2017-06-27 | Qualcomm Incorporated | Communicating behavior information in a mobile computing device |
US9202047B2 (en) | 2012-05-14 | 2015-12-01 | Qualcomm Incorporated | System, apparatus, and method for adaptive observation of mobile device behavior |
US9324034B2 (en) | 2012-05-14 | 2016-04-26 | Qualcomm Incorporated | On-device real-time behavior analyzer |
US9609456B2 (en) | 2012-05-14 | 2017-03-28 | Qualcomm Incorporated | Methods, devices, and systems for communicating behavioral analysis information |
US9298494B2 (en) | 2012-05-14 | 2016-03-29 | Qualcomm Incorporated | Collaborative learning for efficient behavioral analysis in networked mobile device |
US9495537B2 (en) | 2012-08-15 | 2016-11-15 | Qualcomm Incorporated | Adaptive observation of behavioral features on a mobile device |
US9319897B2 (en) | 2012-08-15 | 2016-04-19 | Qualcomm Incorporated | Secure behavior analysis over trusted execution environment |
US9330257B2 (en) | 2012-08-15 | 2016-05-03 | Qualcomm Incorporated | Adaptive observation of behavioral features on a mobile device |
US9747440B2 (en) | 2012-08-15 | 2017-08-29 | Qualcomm Incorporated | On-line behavioral analysis engine in mobile device with multiple analyzer model providers |
US9363670B2 (en) | 2012-08-27 | 2016-06-07 | Optio Labs, Inc. | Systems and methods for restricting access to network resources via in-location access point protocol |
US9684870B2 (en) | 2013-01-02 | 2017-06-20 | Qualcomm Incorporated | Methods and systems of using boosted decision stumps and joint feature selection and culling algorithms for the efficient classification of mobile device behaviors |
US9686023B2 (en) | 2013-01-02 | 2017-06-20 | Qualcomm Incorporated | Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors |
US10089582B2 (en) | 2013-01-02 | 2018-10-02 | Qualcomm Incorporated | Using normalized confidence values for classifying mobile device behaviors |
US9773107B2 (en) * | 2013-01-07 | 2017-09-26 | Optio Labs, Inc. | Systems and methods for enforcing security in mobile computing |
US9742559B2 (en) | 2013-01-22 | 2017-08-22 | Qualcomm Incorporated | Inter-module authentication for securing application execution integrity within a computing device |
US9491187B2 (en) | 2013-02-15 | 2016-11-08 | Qualcomm Incorporated | APIs for obtaining device-specific behavior classifier models from the cloud |
US20140282992A1 (en) | 2013-03-13 | 2014-09-18 | Optio Labs, Inc. | Systems and methods for securing the boot process of a device using credentials stored on an authentication token |
US8904195B1 (en) * | 2013-08-21 | 2014-12-02 | Citibank, N.A. | Methods and systems for secure communications between client applications and secure elements in mobile devices |
US9560028B1 (en) * | 2014-08-04 | 2017-01-31 | Symantec Corporation | Systems and methods for filtering interprocess communications |
US9509697B1 (en) | 2014-09-15 | 2016-11-29 | Symantec Corporation | Systems and methods for authorizing attempts to access shared libraries |
US9473466B2 (en) * | 2014-10-10 | 2016-10-18 | Freescale Semiconductor, Inc. | System and method for internet protocol security processing |
US10430589B2 (en) * | 2015-03-19 | 2019-10-01 | Intel Corporation | Dynamic firmware module loader in a trusted execution environment container |
ES2918011T3 (es) * | 2016-04-14 | 2022-07-13 | Sequent Software Inc | Sistema y método para la generación, almacenamiento, administración y uso de uno o más secretos digitales en asociación con un dispositivo electrónico portátil |
CN108154037B (zh) * | 2016-12-05 | 2020-08-11 | 中国石油天然气股份有限公司 | 进程间的数据传输方法和装置 |
US10944572B2 (en) * | 2017-01-02 | 2021-03-09 | Western Digital Technologies, Inc. | Decryption and variant processing |
CN106951061B (zh) * | 2017-03-29 | 2020-05-26 | 联想(北京)有限公司 | 电子设备和控制方法 |
CN109086144B (zh) | 2017-06-14 | 2022-04-05 | 阿里巴巴集团控股有限公司 | 一种进程之间的通信方法和装置 |
CN107526644A (zh) * | 2017-08-18 | 2017-12-29 | 北京北信源软件股份有限公司 | 一种进程间通信系统、方法、可读介质和存储控制器 |
US11062030B2 (en) | 2018-03-09 | 2021-07-13 | Huawei Technologies Co., Ltd. | Systems and methods for managing access control between processes in a computing device |
US11645400B2 (en) * | 2019-10-04 | 2023-05-09 | Vmware, Inc. | Secured interprocess communication |
US11683294B2 (en) * | 2019-12-30 | 2023-06-20 | Imperva, Inc. | Privacy-preserving learning of web traffic |
US20240036088A1 (en) * | 2020-12-11 | 2024-02-01 | Hewlett-Packard Development Company, L.P. | Analog parameter monitor |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010044904A1 (en) * | 1999-09-29 | 2001-11-22 | Berg Ryan J. | Secure remote kernel communication |
EP1398902A4 (en) * | 2001-06-04 | 2007-02-28 | Matsushita Electric Ind Co Ltd | DEVICE AND METHOD FOR A FLEXIBLE AND COMMON IPMP SYSTEM FOR PROVIDING AND PROTECTING CONTENTS |
US20050068992A1 (en) * | 2003-09-26 | 2005-03-31 | Kaku Vicky B. | Method and apparatus for high-speed data multiplexing |
US20050182966A1 (en) * | 2004-02-17 | 2005-08-18 | Duc Pham | Secure interprocess communications binding system and methods |
US7467399B2 (en) * | 2004-03-31 | 2008-12-16 | International Business Machines Corporation | Context-sensitive confidentiality within federated environments |
US20070150959A1 (en) * | 2005-12-14 | 2007-06-28 | Microsoft Corporation | Inter-process authentication via a copyrighted value |
US7877506B2 (en) * | 2006-05-26 | 2011-01-25 | International Business Machines Corporation | System, method and program for encryption during routing |
EP2081381A1 (en) * | 2008-01-17 | 2009-07-22 | Thomson Licensing | Method and apparatus for selective data encryption |
US8601258B2 (en) * | 2008-05-05 | 2013-12-03 | Kip Cr P1 Lp | Method for configuring centralized encryption policies for devices |
US8656177B2 (en) * | 2008-06-23 | 2014-02-18 | Voltage Security, Inc. | Identity-based-encryption system |
US8452968B2 (en) * | 2008-09-15 | 2013-05-28 | Blue Coat Systems, Inc. | Systems, methods, apparatus, and computer readable media for intercepting and modifying HMAC signed messages |
-
2012
- 2012-11-21 US US13/995,129 patent/US9317702B2/en active Active
- 2012-11-21 EP EP12799645.2A patent/EP2786301A1/en not_active Withdrawn
- 2012-11-21 CN CN201280058640.7A patent/CN104205114B/zh not_active Expired - Fee Related
- 2012-11-21 WO PCT/IB2012/056603 patent/WO2013080096A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN104205114A (zh) | 2014-12-10 |
US9317702B2 (en) | 2016-04-19 |
US20140059357A1 (en) | 2014-02-27 |
WO2013080096A1 (en) | 2013-06-06 |
EP2786301A1 (en) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104205114B (zh) | 用于提供安全的进程间通信的系统和方法 | |
CN105791284B (zh) | 一种数据安全传输装置及方法 | |
CN104331644B (zh) | 一种智能终端文件的透明加解密方法 | |
Xu et al. | Badbluetooth: Breaking android security mechanisms via malicious bluetooth peripherals. | |
US7779252B2 (en) | Computer architecture for a handheld electronic device with a shared human-machine interface | |
Mulliner et al. | SMS-Based One-Time Passwords: Attacks and Defense: (Short Paper) | |
CN109902477B (zh) | 保障音频通信安全 | |
US8850211B2 (en) | Method and apparatus for improving code and data signing | |
US7765399B2 (en) | Computer architecture for a handheld electronic device | |
EP3198782B1 (en) | Securing sensor data | |
EP3092838B1 (en) | Secure voice and data method and system | |
Haataja et al. | Bluetooth security attacks: comparative analysis, attacks, and countermeasures | |
CN105959947A (zh) | 一种安全接入网络的方法及其系统 | |
CN107317796A (zh) | 一种安全认证的方法及终端 | |
CN106549934B (zh) | 网络设备安全系统 | |
Benoit et al. | Mobile terminal security | |
CN106211144B (zh) | 一种移动终端的通信方法及移动终端 | |
CN106897634A (zh) | 一种阅后即焚图片的显示方法及终端设备 | |
CN111050316B (zh) | 锁卡方法及装置、计算机可读存储介质及终端设备 | |
Igor et al. | Security Software Green Head for Mobile Devices Providing Comprehensive Protection from Malware and Illegal Activities of Cyber Criminals. | |
WO2009131549A1 (en) | Mobile communication device protection system and method | |
CN113742740A (zh) | 设备行为监督方法、装置及存储介质 | |
CN108270910A (zh) | 移动终端 | |
Wu et al. | SeWG: Security-Enhanced WireGuard for Android Based on TEE | |
Pal et al. | CYBER SECURITY |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180816 Address after: Tokyo, Japan, Japan Patentee after: Sony Mobile Communication Co., Ltd. Address before: Longde, Sweden Patentee before: Sony Mobile Communications AB |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180807 Termination date: 20201121 |
|
CF01 | Termination of patent right due to non-payment of annual fee |