为移动操作环境提供安全的应用程序间通信的制作方法

文档序号:7680513阅读:174来源:国知局
专利名称:为移动操作环境提供安全的应用程序间通信的制作方法
技术领域
以下说明总体上涉及移动设备应用程序以及无线通信,更具体地涉及 在一个或多个移动平台上运行的移动应用程序之间提供安全的数据交换。
背景技术
近年来,蜂窝通信技术和蜂窝通信设备都取得了各种进展。 一些进展, 诸如将摄像和录像技术集成到所述设备上、在移动通信中包括电子邮件和 短消息服务等等,都涉及软件和/或硬件应用。这些应用为现有的普遍的通 信设备(例如,蜂窝电话)增加了灵活性、处理功率和通信能力等等。因 此,这类设备在消费市场中更加流行,促使更多的消费者去购买这种设备 或升级为包括了新应用以及新技术的设备。
此夕卜,各种类型的恶意软件(malware)通常会阻碍电子通信。 一些恶 意软件相对无害,其仅仅监控用户活动以协助开发新产品、制订商业或市 场策略以使得这些产品能够吸引消费者。尽管监控程序一般不会对运行环 境或所存储的数据造成损害,但总体上这些监控程序会消耗电子设备的处 理资源。然而, 一些恶意软件会主动地破坏设备运行环境、毁坏数据、窃
13取密码和用户信息等等。这些恶意软件可以通过各种方式运行,但通常都 是将它们自身写入设备上的可信程序,伪装成这类程序等等。"由于恶意软 件的影响,出现了各种用于在电子运行环境下保障通信安全的方法。移动 设备也会受到欺骗程序以及其它恶意软件的攻击,通常,它们都将从安全 通信中获益。尽管是移动的。

发明内容
下面给出对一个或多个实施例的简要概述,以提供对这些实施例的基 本理解。该概述不是对全部考虑到的实施例的广泛概括,也不旨在标识全 部实施例的关键或重要元件或者描述任意或全部实施例的范围。其目的仅 在于以简化形式呈现一个或多个实施例的一些概念,作为后文所提供的更 详细描述的序言。
本公开为在移动操作环境中执行的移动应用程序提供安全、高效的通 信。作为一个例子,主移动应用程序可以发起握手,所述握手包括主移动 应用程序的唯一标识符和用于标记和/或证明由主移动应用程序所接收到的 响应通信的随机数。接收方应用程序可以利用已证明的主应用程序的列表 来核对所述唯一标识符,以验证主应用程序。如果唯一标识符被验证,那 么接收方应用程序对握手作出响应,其中,所述响应包括所述随机数以及 可用来标记和/或证明提交给接收方应用程序的随后的通信的第二随机数。 此外,主应用程序和接收方应用程序可以延迟请求和/或响应,直到相应地 接收到或发送了对应的响应或请求为止。因此,可以进行应用程序之间的 同步通信。
根据本公开的另外方面,可以为连续的通信递增所生成的、用于标识 发起方或接收方应用程序的随机数。响应应当包括随机数的适当的递增值, 以便验证该响应。因此,本公开提供了往返通信,其中,每一次往返都由 随机数的递增值来标识,并且每一次往返都在发起随后的往返之前完成。
根据其它方面,可以散列和/或截断随机数,以模糊所述数,并提供对 抗未授权应用程序的额外的安全性。另外,由于同其它加密/解密方法相比, 散列函数需要较少的处理,因此,与传统技术相比,本公开可以以涉及相 对较少功耗的高效的方式来提供移动应用程序之间的安全数据传送。根据其它方面,移动应用程序可以在单个操作设备(如蜂窝电话)上执行,或
者在通过移动网络、传输控制协议/互联网协议(TCP/IP)网络等连接的远 程操作设备(例如分散的蜂窝电话等等)上执行。
根据其它方面,公开了用于在移动操作环境中的应用程序之间提供数 据传输的方法。该方法可以包括发起与移动应用程序的握手,所述握手 包括主移动应用程序的唯一标识符和为握手而生成的随机数;接收包括第 一数和第二数的对所述握手的响应,所述第二数是由移动应用程序随机生 成的。该方法还可以包括验证所述第一数是否是为握手而生成的所述随 机数,以及如果所述第一数被验证为所述随机数,则向移动应用程序发送 数据事件,该数据事件包括所述第二数的递增值。此外,该方法还可以包 括在发送第二数据事件之前,等待来自移动应用程序的数据事件响应, 该响应至少包括所述第二数的递增值。
根据另外的方面,公开了用于在移动操作环境中的应用程序之间提供 数据传输的装置。该装置可以包括安全会话模块,用于发起与接收方应 用程序的握手,其中,所述握手包括主应用程序的唯一ID和随机数。此外, 所述装置可以包括验证模块,用于接收握手响应,其中,所述响应包括 响应数和第二随机数;以及判断所述响应数是否是所述随机数或所述第二 随机数的递增值。另外,该装置可以包括通信模块,用于如果所述响应 数被验证为所述随机数或所述第二随机数的递增值,则向所述接收方应用 程序发送数据事件,所述数据事件包括所述第二随机数的递增值。此外, 所述装置还可以包括传输管理模块,用于如果从接收方应用程序接收到 至少包括所述第二数的递增值的数据事件响应,则使得通信模块发送第二 数据事件。
根据其它方面,公开了用于在移动操作环境中的应用程序之间提供数 据传输的至少一个处理器。该处理器可以包括第一模块,用于发起与移 动应用程序的握手,所述握手包括主移动应用程序的唯一标识符和为所述 握手而生成的随机数;第二模块,用于接收包括第一数和第二数的握手响 应,所述第二数是由移动应用程序随机生成的。另外,该处理器可以包括: 第三模块,用于验证所述第一数是否是为握手而生成的所述随机数;第四 模块,用于如果所述第一数被验证为所述随机数,则向移动应用程序发送包括所述第二数的递增值的数据事件。此外,该处理器可以包括第五 模块,用于在第二数据事件能被发送之前,等待来自移动应用程序的、至 少包括所述第二数的递增值的数据事件响应。
根据其它方面,公开了用于在移动操作环境中的应用程序之间提供数 据传输的装置。该装置可以包括发起装置,用于发起与移动应用程序的 握手,所述握手包括主移动应用程序的唯一标识符和为所述握手而生成的 随机数;接收装置,用于接收包括第一数和第二数的握手响应,所述第二 数是由移动应用程序随机生成的。此外,该装置可以还包括验证装置, 用于验证所述第一数是否是为握手而生成的所述随机数;发送装置,用于 如果所述第一数被验证为所述随机数,则向移动应用程序发送包括所述第 二数的递增值的数据事件。另外,该装置可以包括延迟装置,用于延迟 待发送的第二数据事件,直到从所述移动应用程序接收到至少包括所述第 二数的递增值的数据事件响应为止。
根据至少一个方面,公开了包括计算机可读介质的计算机程序产品, 其中,所述计算机可读介质包括用于为移动环境应用程序提供数据传输安 全的指令。该计算机可读介质可以包括第一指令集,用于使计算机发起 与移动应用程序的握手,所述握手包括主移动应用程序的唯一标识符和为 所述握手而生成的随机数。另外,该计算机可读介质可以包括第二指令 集,用于使计算机接收包括第一数和第二数的握手响应,所述第二数是由 移动应用程序随机生成的。此外,该计算机可读介质可以包括第三指令集, 用于使计算机执行如下操作如果所述第一数被验证为所述随机数,则向 移动应用程序发送包括所述第二数的递增值的数据事件。此外,该计算机 可读介质还可以包括第四指令集,用于使计算机在第二数据事件能被发 送之前,等待来自移动应用程序的、至少包括所述第二数的递增值的数据 事件响应。
根据一个或多个其它方面,公开了用于在移动操作环境中的应用程序 之间提供数据传输的方法。该方法可以包括从主应用程序接收握手请求, 其中,所述握手请求包括所述主应用程序的唯一 ID或由所述主应用程序生 成的随机数;对照可信主应用程序标识符列表来核对所述唯一 ID。另外, 该方法可以包括如果所述唯一 ID与所述可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送握手响应。另外,该方法还可以 包括在接收另外的数据事件请求之前,先对数据事件请求作出响应。
根据另外的方面,公开了用于在移动操作环境中的应用程序之间提供 数据传输的装置。该装置包括安全模块,用于从主应用程序接收握手请 求,所述握手请求包括所述主应用程序的唯一 ID或由所述主应用程序生成 的随机数。此外,该装置可以包括核对模块,用于对照可信主应用程序 标识符列表来验证所述唯一 ID;接口模块,用于如果所述唯一ID与所述 可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送 握手响应,还用于接收数据事件请求。此外,该装置还可以包括管理模 块,用于要求所述接口在接收另外的数据事件请求之前,先对所述数据事 件请求作出响应。
根据其它的方面,公开了用于在移动操作环境中的应用程序之间提供 数据传输的至少一个处理器。该处理器包括第一模块,用于从主应用程 序接收握手请求,所述握手请求包括所述主应用程序的唯一 ID或由所述主 应用程序生成的随机数;第二模块,用于对照可信主应用程序标识符列表 来核对唯一 ID。此外,该处理器可以包括第三模块,用于如果所述唯 一 ID与所述可信主应用程序标识符列表中的一个ID相匹配,则向所述主 应用程序发送握手响应;第四模块,接收数据事件请求。另外,该处理器 可以包括第五模块,用于在接收另外的数据事件请求之前,先对所述数 据事件请求作出响应。
根据一个或多个另外的方面,公开了在移动操作环境中的应用程序之 间提供数据传输的装置。该装置可以包括握手请求接收装置,用于从主 应用程序接收握手请求,所述握手请求包括所述主应用程序的唯一 ID或由 所述主应用程序生成的随机数;核对装置,用于对照可信主应用程序标识 符列表来核对所述唯一 ID。此外,该装置可以包括握手响应发送装置, 用于如果所述唯一 ID与所述可信主应用程序标识符列表中的一个ID相 匹配,则向所述主应用程序发送握手响应;以及用于接收数据事件请求的 装置。此外,该装置可以还包括延迟装置,用于延迟接收另外的数据事 件请求,直到接收到对所述数据事件请求的响应为止。
根据其它方面,公开了包括计算机可读介质的计算机程序产品,其中,
17计算机可读介质包括用于在移动操作环境中的应用程序之间提供数据传输 的指令。具体来说,该计算机可读介质可以包括第一指令集,用于使计 算机从主应用程序接收握手请求,所述握手请求包括所述主应用程序的唯 一 ID或由所述主应用程序生成的随机数。该计算机可读介质可以还包括 第二指令集,用于使计算机对照可信主应用程序标识符列表来核对所述唯 一ID;第三指令集,用于使计算机执行如下操作如果所述唯一ID与所述 可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送 握手响应。此外,该计算机可读介质还可以包括第四指令集,用于使计 算机接收数据事件请求;第五指令集,用于使计算机在接收另外的数据事 件请求之前,先对所述数据事件请求作出响应。
为了实现前述和相关目的,所述一个或多个方面包括下文将详细描述 并特别在权利要求中指明的特征。下文的说明书和附图详细阐明了所述一 个或多个方面中的某些示例性方面。但是,这些方面仅仅是说明应用各个 方面的基本原理的一些不同方式,所描述的方面旨在包括所有这些方面及 其等价物。


图1示出了用于在移动应用程序之间提供安全、低功率的通信的示例 性系统的框图。
图2描绘了用于在移动操作环境中执行的应用程序之间发起安全通信 的系统的例子的框图。
图3描绘了用于对在移动操作环境中所执行的应用程序之间的安全通 信作出响应的系统的例子的框图。
图4示出了用于执行移动应用程序并提供应用程序之间的安全、低功 率传输的移动设备的例子。
图5描绘了根据一些方面的,用于为在远程设备上运行的移动应用程 序提供安全通信的网络的例子。
图6示出了根据其它方面的,用于促进移动应用程序之间的安全的远 程通信的基站的例子。
图7描绘了用于在移动操作环境中的移动应用程序之间发起安全通信的方法的例子。
图8示出了根据一个方面的,用于重发数据事件以完成往返通信的方 法的例子。
图9描绘了用于在移动应用程序之间的安全通信中递增往返通信的方 法的例子。
图IO示出了用于对移动操作环境中的移动应用程序之间的安全通信作 出响应的方法的例子。
图11描绘了用于在初始请求和往返通信完成之前,缓冲随后的请求的 方法的例子。
图12示出了用于在移动应用程序之间的安全通信中接收重新发起的握 手的方法的例子。
图13示出了用于终止握手的方法的例子。
图14和图15分别示出了在移动操作环境中,用于发起和接收安全通 信的系统的示例性框图。
具体实施例方式
现在参照附图描述各个方面,其中用相同的附图标记指示本文中的相 同元件。在下面的描述中,为便于说明,给出了大量具体细节,以便全面 理解一个或多个方面。然而,很明显,也可以在没有这些具体细节的情况 下来实现所述方面。在其它例子中,以框图形式示出了公知结构和设备, 以便于描述一个或多个方面。
主题公开提供了移动环境中的应用程序之间的安全、高效、计算量少 的通信。尽管存在多种用于保障电子通信的安全性的传统方法,然而,这 些方法一般均使用复杂的、计算密集的加密和解密算法。由于计算需求, 这些方法会消耗相对大量的电功率。然而,对于移动操作环境而言,因其 依赖于电池功率,所以低功耗将对其有益。尽管已经对一些应用程序进行 了修改,以实现在移动环境下的低功耗,然而,这种修改在保障通信安全 方面还不够。 一个原因是由于系统处理和存储技术方面的进展及预期进展。 例如,由于处理器尺寸、并行处理、存储器大小等方面的预期进展,这种 进展导致许多应用程序研究者避免修改通信协议来降低功耗。本文还公开了使用往返(round-trip)思想的应用程序间通信。具体来 说,应用程序在发起和/或处理后续的请求/响应之前,可以等待完成并发的 请求或响应。往返通信在同步环境下尤其有效。普通的传统通信,诸如传 输控制协议/互联网协议(TCP/IP),在等待来自目标应用程序的响应之前, 通常会发送一串数据分组。另外,在安全的TCP/IP通信中,解密和/或理解 接收的数据通常需要接收到传输中的所有的数据分组。如果有一个数据分 组丢失,那么大量所传送的数据将不可用。与之不同,本主题公开规定, 如果发起方或接收方应用程序丢失了数据或安全性标识符,那么重传请求 和/或响应。该类系统与在互联网、大部分私有内部网中使用的已取得了广 泛成功的TCIP/IP结构以及其它消息传递和/或共享存储器环境有极大的不 同。因此,本文所描述的往返及重传结构与传统的通信结构截然不同,传 统的通信架构因其所取得的成功和其普遍性,已经使得研究远离了本文所 描述的髙效、同步和低功率的安全的数据交换。
此外,本文还公开了使用随机数的应用程序间通信结构,其中,随机 数由特定应用程序生成,用于标识和/或认证由另一应用程序提供的通信。 例如,发起方移动应用程序可以生成随机数,并向接收方应用程序提供该 随机数。后续的对发起方应用程序的响应应当包括该随机数或用于标识特 定往返的随机数递增值,以标识通信来自于接收方而不是来自于欺骗程序 或其它恶意软件。根据其它方面,可以使用非计算密集型的散列函数(例 如,SHA-1、 SHA-224、 SHA-256、 SHA國386、 SHA-512、 SHA-2、报文摘 要算法5[MD5]等)打乱随机数来对随机数进行加密,而无需使用计算密集 的、高功率的加密/解密算法。另外,可以根据发起方和接收方应用程序之 间的特定通信接口的需要,截断散列后的随机数。因此,公开了一种有益 于移动环境的、用于提供安全的应用程序间通信的方法。
下文描述了公开的各个方面。显然,本文的教导可以用多种形式来实 现,本文所公开的任何具体结构和/或功能仅仅是代表性的。根据本文的教 导,本领域的技术人员应当理解,本文所公开的一个方面可以独立于任何 其它方面来实现,并且可以用各种方式来组合这些方面中的两个或更多方 面。例如,可以使用本文阐述的任意数量的方面来实现装置和/或实践方法。 此外,可以使用除本文所阐述的一个或多个方面之外的其它结构和域功能来实现这种装置和/或实现这种方法。作为一个例子,本文所描述的许多方 法、设备、系统和装置是针对在至少一个移动设备上运行并且在彼此之间 建立安全通信的一个或多个移动应用程序描述的。本领域的技术人员应当 认识到,类似的技术也可适用于其它通信环境。
在本公开中所用的"部件"、"系统"等是指与计算机相关的实体,其 可以是硬件、软件、执行中的软件、固件、中间件、微码和/或它们的任意 组合。例如,部件可以是、但并不限于处理器上运行的进程、处理器、 对象、可执行文件、执行的线程、程序和/或计算机。 一个或多个部件可以 位于执行中的进程和/或线程内,并且一个部件可以位于一个计算机上和/ 或分布于两个或更多个计算机之间。另外,可以从存储了多种数据结构的 多种计算机可读介质来执行这些部件。这些部件可以通过本地和/或远程进 程、例如根据具有一个或多个数据分组的信号来进行通信(例如,来自与 本地系统、分布式系统中的另一个部件交互,和/或通过诸如互联网等的网 络、通过信号与其它系统进行交互的一个部件的数据)。此外,正如本领域 技术人员所知道的,本文描述的系统的部件可以被重新排列和/或通过额外 的部件来补充,以便实现所描述的各个方面、目的、优点等,并且不受限 于附图中阐述的精确结构。
另外,可以使用用于执行本文所述功能的通用处理器、数字信号处理
器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可 编程逻辑器件、分立门或者晶体管逻辑、分立硬件部件或者其任意的适当 组合,来实现或执行结合本文公开的实施例所描述的各种示例性的逻辑、 逻辑框、模块和电路。通用处理器可以是微处理器,或者,该处理器也可 以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可能实 现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器的组 合、 一个或多个微处理器与DSP内核的组合,或者任何其它此种结构。另 外,至少一个处理器可以包括用于执行本文所描述的一个或多个步骤和/或 动作的一个或多个模块。
此外,本文结合移动通信设备(或者例如,移动设备)描述了各个方 面。移动通信设备还可以称为系统、用户单元、用户站、移动台、移动装 置、移动设备、蜂窝设备、多模式设备、远程站、远程终端、接入终端、用户终端、用户代理、用户装置或用户设备等等。用户站可以是蜂窝电话、
无绳电话、会话发起协议(SIP)电话、无线本地环路(WLL)站、个人数 字处理(PDA)、具有无线连接能力的手持设备或连接到便于与处理设备进 行无线通信的无线调制解调器或类似装置的其它处理设备。
此外,本文所描述的各个方面或特征可以实现成方法、装置或使用标 准编程和/或工程技术的制品。此外,结合本文公开的多个方面所描述的方 法或算法的步骤和/或动作可以直接体现为硬件、由处理器执行的软件模块 或两者的组合。另外,在一些方面,方法或算法的步骤和/或动作可以至少 作为代码和/或指令、或代码和/或指令的任意组合或集合而存储于机器可读 介质和/或计算机可读介质上,它们可以包含在计算机程序产品中。此外, 本文中使用的术语"制品"旨在涵盖可从任何计算机可读设备、载体或介 质访问的计算机程序。例如,计算机可读介质可以包括但不限于磁存储 设备(例如,硬盘、软盘、磁带等),光盘(例如,压縮盘(CD)、数字多 用途盘(DVD)等),智能卡和闪存设备(例如,卡、棒、U盘等)。另夕卜, 本文所描述的各种存储介质可表示用于存储信息的一个或多个设备和/或其 它机器可读介质。术语"机器可读介质"可以包括但不限于能够存储、包 含和/或携带指令和/或数据的无线信道和各种其它介质。
此外,本文中使用的"示例性" 一词意思是用作例子、例证或举例说 明。本文中描述为"示例性"的任何方面或设计不应被解释为比其它方面 或设计更优选或更具优势。使用"示例性" 一词旨在以具体的方式来表示 构思。本申请所使用的术语"或者"旨在表示包括性的"或者",而不是排 它性的"或者"。也就是说,除非另外指定,或者从上下文能清楚得知,否 则"X使用A或者B"旨在表示任何自然的包括性置换。也即,在该例子 中,X可以使用A, X可以使用B,或者X可以使用A和B二者,因此, 在上述任何一个例子下都满足句子"X使用A或者B"。另外,除非另外指 明或从上下文能清楚得知是针对单数形式,否则,本申请和所附权利要求 书中使用的冠词"一"和"一个"通常应被解释为"一个或多个"。
本文所使用的术语"推断"或"推出"通常指的是根据通过事件和/或 数据获得的一组观察来推理或推断系统、环境和/或用户的状态的过程。例 如,推理可以被用来识别特定的前后关系或动作,或可以产生状态的概率分布。推理可以是概率性的,也就是说,根据对数据和事件的考虑,对相 关的状态的概率分布进行计算。推理还可以指用于根据事件和/或数据的集 合来构成高级事件的技术。这种推理导致根据观察到的事件和/或存储的事 件数据的集合来构造新的事件或动作,而不管事件是否在时间接近方面相 关,也不管事件和数据是否来自一个或多个事件和数据源。
参照图1,描绘了用于为移动操作环境(106)中的一个或多个移动应 用程序提供安全通信的示例性系统100的框图。系统100包括主应用程序 102,用于发起与其它应用程序(104)的握手会话。主应用程序102可以 是配置为在移动操作系统(106)上工作的任何合适的应用程序。主应用程 序102的例子可以包括诊断收集应用程序(例如,服务质量[QoS]应用程 序)、通信应用程序(例如,电子邮件、即时消息[IM]、短消息服务[SMS]、 语音呼叫建立和/或保持、IP电话[VoIP]建立和/或保持、铃声下载或播放应 用程序、网页浏览应用程序、诸如无线应用协议[WAP],等等),或它们的 组合等等。移动操作环境可以是用于存储和执行移动应用程序,并在所述 应用程序之间传送数据的任何合适的环境,例如包括无线二进制运行环境 (BREW)等,如下文所述。
主应用程序102发起握手,用于建立与至少一个其它应用程序(104) 的安全通信会话。尽管本公开的许多内容涉及两个应用程序之间的单个通 信,然而,应用程序(102)可以同时保持与多个其它应用程序(104)的 多个安全通信会话。握手可用来建立主应用程序102和接收方应用程序104 之间的可信"信道"。因此,可以在可信信道上使用例如用于标识数据、指 令等的地址指针,在主应用程序和接收方应用程序之间交换任意数据(例 如,二进制数据等)。
握手可由主应用程序102通过发送握手请求来发起,其中,该握手请 求至少包括主应用程序102的唯一标识符或为握手而生成的随机数,或以 上两者。唯一标识符是与主应用程序相关联的应用程序ID,其可以被接收 方应用程序用来验证主应用程序是可信的。通常,操作系统(106)可以要 求对于用于在操作系统(106)上执行的应用程序来讲要满足某些标准。其 中一个要求可以是包括可信主应用程序的唯一标识符的列表。具有该列 表的接收方应用程序104就可以验证所接收到的握手请求是由授权发出请求的应用程序发送的。随后,接收方(104)可以信任该应用程序并与之通 信。
除了主应用程序的唯一标识符之外,握手请求还可以包括为握手而生 成的随机数(例如,32位、16位、64位等)。随机数可以被发送到期望的 接收方应用程序并且被包含在由接收方应用程序104向主应用程序104发 送的响应中。因此,就可以将包括所述随机数(或者例如,它的可预测的 变化)的响应识别为源自于期望的接收方。根据另外的方面,可以使用特 定的散列函数(例如,SHA-1、 SHA-2等)来散列随机数,和/或为了通过 特定的通信接口 (106)进行传输而截断随机数。散列后的随机数更加难以 解密,因此提供了针对欺骗攻击的有力保护。可以使用截断以便使用支持 不同大小数量的多种协议和/或通信接口 (106)来发送随机数。例如,如果 所生成的标识握手会话的随机数是32位的,而与接收方应用程序(104) 间的通信接口只允许16位的数据传输,那么可以将该32位的随机数散列 并随后将其截断为16位,以便传输。随后,接收方可以散列和/或截断随机 数并将其与所接收到的散列和域截断后的数进行比较,以验证通信的发送
方是否是握手的发起方(102)。
接收方应用程序104可以接收握手请求并验证发送方(102)是否是可 信的主应用程序。具体来说,可以从握手请求中提取出唯一标识符并将其 与可信的主应用程序标识符的列表进行比较。如果所提取的标识符与列表 中的一个标识符相匹配,则可以向发送方(102)发送握手响应,从而在发 送方(102)和接收方(104)之间建立起安全信道。如果所提取的标识符 与列表中的标识符不匹配,则忽略握手和任何后续通信,直至接收到经验 证的握手为止。
另外,接收方应用程序104能够提取并存储包括在握手请求中的随机 数。作为一个具体的例子,随机数可以被存储在临时存储器(未示出)中, 从而使得恶意程序更难以提取随机数并骗取接收方应用程序(104)的身份。 如上文所述,在验证了包括在握手请求中的唯一标识符之后,接收方应用 程序104可以发送包括该随机数的握手响应。具体来说,通过包括随机数, 接收方应用程序104就能向主应用程序102标识其自身。根据特定方面, 如上文所述,接收方应用程序104可以散列和/或截断随机数,以使得骗取接收方应用程序(104)的身份(例如,对生成该随机数并因此配置为信任 该随机数的主应用程序102进行欺骗)更加困难和/或使得散列后的数与特 定通信接口 (106)更加兼容。
此外,接收方应用程序104还可以生成第二随机数并将其包括在握手 响应中。第二随机数可由主应用程序102用来在随后与接收方应用程序104 的通信中标识其自身。如上所述,通过主应用程序102进行的后续通信可 以散列和减截断第二随机数,以保护第二随机数的完整性。
根据其它方面,在从接收方应用程序104接收到握手响应之后,主应 用程序102可以向接收方应用程序104发送数据事件。例如,数据事件可 以涉及适用于移动环境的任何数据或数据结构,包括对数据的请求或是执 行指令的请求(例如,收集诊断信息、包括配置参数等等),或其组合等等。 请求自身可以包括数据,或者可以使用地址指针来标识共享存储器中的数 据等等。除了数据/指令之外,数据事件可以包含由接收方应用程序生成的 第二随机数(例如其中,第二随机数是散列和/或截断的),以标识和/或证. 明数据事件的发送方是主应用程序102。
根据特定的方面,主应用程序102在接收到并发的数据事件响应之前, 停止发送另外的数据事件(例如,不同于并发数据事件),其包括另外的指 令、数据请求等。通过等待特定的响应,产生了通信往返的构思。往返涉 及双向通信;例如,往返会要求主应用程序发起的请求以及接收方作出的 响应,反之亦然。往返构思还使得能够重发在预期时段内未接收到的数据。 例如,针对握手请求和握手响应所测量的、在主应用程序102和接收方应 用程序104之间的数据接口 106上的通信延迟可用来建立预期响应定时器。 在发送数据请求、握手等之后,应用程序(102、 104)可以设置预期响应 定时器,其用于指示对传输的预期响应时间。如果在预期响应时间内(或 者可以结合阈值变化时间(例如,预期响应时间的分数或倍数))未接收到 响应,则可以认为接收方应用程序104无响应。
作为前述内容的一个特定实施例,对于每一次往返通信,可以递增随 机数。例如,如果主应用程序接收到包括第二随机数的握手响应,则随后 的数据事件请求(例如,请求诊断信息)可以递增一次随机数(例如,标 识第一往返通信)并连同数据事件请求一起发送递增后的随机数(例如,散列和/或截断后的)。接收方应用程序104可以通过也递增随机数(并且例 如,适当地散列和截断随机数),并将结果与包括在数据事件中的随机数进 行比较,从而验证数据事件的发送方。因此,系统100提供了安全的往返 通信以及标识往返的方法。另夕卜,如果随机数比较不相匹配,那么可以忽 略接收到的通信。如果在接收到预定次数和/或可配置次数(例如,3次) 的通信之后,随机数比较仍不匹配,则可以忽略随后的请求/响应,直到在 主应用程序102和接收方应用程序104之间重新发起握手,在应用程序
(102、 104)之间重新建立起安全信道。
如果没有接收到对请求的响应(例如,在响应时间内或在响应时间加 阈值内),那么应用程序(102、 104)可以重新发起请求。由于往返要求, 应用程序(102、 104)可以假定,至少对于无响应的应用程序(102、 104) 而言,不存在其它未完成的请求。如果接收到对重新发起的请求的响应, 则可以处理数据和/或适当地继续通信。如果仍未接收到响应,则应用程序
(102、 104)可以重新发起预定次数的和/或可配置次数的请求(例如,根 据主应用程序102和接收方应用程序104之间的数据接口 106中的、预期 的或所确定的分组丢失来建立),至少直到接收到对其中一个请求的响应为 止。此外,如果在重新发起预定次数和/或可配置次数的请求之后,仍未接 收到响应,那么应用程序(102、 104)可以停止发送请求,并且简单地等 待响应;或者,如果应用程序(102、 104)是主应用程序102,则可以发送 握手重新发起,以判断接收方应用程序104是否仍然可用。因此,与很多 传统的数据传送方法不同,可以重新发送和域重新请求丢失的请求和域随 机数,而无需重新发送理解所丢失的分组所需的额外的数据分组(例如, 在安全TCP/IP环境中分组丢失的情况下所表现的)。因此,本公开通过允 许重传未接收到对其的响应的单个请求,提供了在分组丢失环境中的高效 的数据重传。
根据其它方面,系统100可以在移动操作系统(106)上执行的应用程 序之间重新发起握手。例如,如果可配置次数的数据事件请求没有引起响 应,那么主应用程序102可以重新发起握手。握手可以至少包括主应用 程序102的唯一标识符以及为握手会话而生成的随机数(或者例如, 一个 新随机数,用以创建新的握手会话)。通过这种方式,如果接收方应用程序104丢失了由主应用程序生成的随机数,那么可以重新建立通信。根据特定 实施例,可以重新发起可配置次数的和/或预定次数的握手。所述次数可以 基于接口 (106)中的所确定的和/或预期的分组丢失、受恶意软件干扰的可 能性或它们的组合等等。
此外,如果在阈值时段内没有从接收方应用程序104接收到数据,那 么主应用程序102可以重新发起握手。或者,可以在首次发起握手后的默 认时段后,或在默认时段的组合(例如,l小时、2小时、3小时等等)后, 重新发起握手。根据其它方面,如果从设备的用户接口接收到握手"开始" 命令(例如,用户执行诊断和/或发起握手的用户接口[UI]"帮助"功能等 等),则可以重新发起握手。通常,握手的重新发起可以被限制为可配置的 次数。因此,例如,如果发送了 3次握手重新发起却没有响应,那么可以 简单地终止和/或不再继续该握手,例如,服从于握手的用户发起。因此, 即使丢失了为会话提供的随机数等,应用程序间通信仍可重新建立和/或继 续。
应当意识到,系统100可以使用任何合适的移动操作系统和/或数据接 口 106来进行应用程序(102、 104)之间的通信。根据一个实施例,BREW 操作系统可以包括操作系统/数据接口 106。更具体地,BREW表示由加利 福尼亚州圣地亚哥的高通公司开发的无线二进制运行环境(BREW)软件。 例如,可以使用其它用于控制无线计算设备上的应用程序的执行的运行环 境。操作系统/数据接口 106可以包括软件类扩展,其允许模块的驻留版本 或远程可访问版本被设备的处理引擎(未示出)处理。这些软件类扩展能 够在所述设备上与处理子系统进行通信,并能够进行数据读取和发出命令。 例如,软件扩展可以代表调用其的应用程序(102)来发送命令。随后,模 块可以将子系统的响应通过数据接口 106转发至接收方应用程序(104)。 无线设备上的每个驻留应用程序(102、 104)或模块都可以创建新的软件 扩展的实例,以与独立于其它应用程序(102、 104)或模块的子系统进行 通信。
图2示出了能够发起在移动操作环境中执行的应用程序之间的安全通 信的示例系统200的框图。系统200可以包括发起方应用程序202,用于 与一个或多个其它接收方应用程序(例如,参见下文图3)建立握手会话。发起方应用程序202可以使用一个或多个散列和/或截断后的随机数来标识 和/或证明通信的发送方。另外,发起方应用程序202可以使用往返发送和 接收数据事件来进行通信,从而使得在丢失数据和/或丢失标识符的情况下 能够为每个事件进行重传。因此,与传统结构相比,提供了高效、低功率 和安全的通信结构。
发起方应用程序202可以包括安全会话模块204,用于至少发起与接 收方应用程序(未示出)的握手,其中,所述握手包括发起方应用程序202 的唯一 ID和随机数。该随机数可以用于标识由接收方应用程序发起的随后 的通信。如本文所述,可以散列和域截断随机数(例如,通过与发起方应 用程序202耦合的散列模块216),以使得对于安全通信而言,欺骗及类似 的攻击更加困难。根据另外的实施例,如果未接收到握手响应,或者,如 果发送了多个数据事件请求而未接收到数据事件响应,则安全会话模块204 可以重新发起握手。重新发起握手有助于重新建立安全会话,但是向接收 方应用程序重新提供与会话相关的随机数(例如,如果接收方应用程序丢 失了随机数,并且因此无法验证和/或响应接收到的事件)。
根据另外的实施例,安全会话模块204可以在多种情况下重新发起握 手。首先,如果在阈值时段内没能从接收方应用程序接收到数据。这种握 手可用以刷新通信并确定,例如,仍与发起方应用程序202相耦合。此外, 如果刷新时间期满(例如,如上所述),则可以重新发起握手。或者,如果 从设备用户接口接收到命令(例如,如果用户请求发起握手),则可以重新 发起握手。
根据其它实施例,安全会话模块202可以发起握手终止。例如,如果 在通信中所接收到的随机数没能正确地验证为是由发起方应用程序202所 生成的随机数或其递增(例如,表明潜在的未授权实体试图破坏安全通信), 那么就会发生握手终止。另外,如果在发起预定次数的握手请求之后仍未 接收到握手响应,那么就可以发起握手终止。例如,这种结果可以指示接 收方应用程序没有与发起方应用程序可通信性地耦合。作为另一个例子, 如果发起方应用程序确定通信会话完成,那么就发送终止。
发起方应用程序202还包括验证模块206。验证模块206可用于接收对 安全会话模块204所发起的握手的响应。该响应可以包括响应数、第二随机数。验证模块206可以提取响应数并将该响应数与随机数进行比较, 以便判断通信是否是由接收方应用程序发送的。特别地,如合适,验证模 块206可以散列和/或截断随机数,将结果与响应数进行比较。如果结果匹 配,则可以验证该响应数为所述随机数。
此外,发起方应用程序202还可以包括通信模块208,用于如果验证模 块206匹配了响应数和随机数(或者例如,随机数的适当递增标识了特定 往返会话),则向接收方应用程序发送数据事件请求。此外,如果未从接收 方应用程序接收到对数据事件的响应,则通信模块208可以重发数据事件。 根据特定的方面,数据事件请求可以包括第二随机数的递增值。另外,递 增可以与握手和握手响应之后的特定往返通信相关(例如,对于第一往返 数据事件的第一递增,对于第二往返数据事件的第二递增,等等)。递增可 用于进一步保护通信免受未授权方的破坏。例如,如果数据事件不包括随 机数的正确递增值,即使未授权程序获取了随机数或第二随机数,发起方 应用程序202仍会拒绝包括这些数的数据事件。由于未授权的程序从握手 起将不太可能再监视通信,所以不太可能解密并发的往返实例并获得发起 方应用程序202的信任。
发起方应用程序202还包括传输管理模块210,用于如果从接收方应 用程序接收到至少包括第二数的递增值的数据事件响应,则使得通信模块 发送第二数据事件。换言之,管理模块202可以在接收到数据事件响应之 前,禁止通信模块发送另外的数据事件,以便实现本文所述的往返通信策 略。因此,丢失的随机数和/或数据事件请求可由发起方应用程序202发起, 以便进行移动操作环境下的可靠通信。
根据另外的方面,系统200可以包括可与发起方应用程序202连接的 传输可靠性模块218。传输可靠性模块218可以用于确定发起方应用程序 202所使用的通信接口 (例如,上文图1中的运行环境/数据接口 106)的分 组丢失频率和/或可能性。如果未接收到响应,那么发起方应用程序202可 使用分组丢失确定来确定适当的数据事件重发次数和/或握手重传事件的次 数。具体来说,应用程序(202)在确定适当的重传时,可以考虑分组丢失 的可能性,如果分组丢失频率较高,则可以建立相对较多次数的重传。如 果分组丢失频率较低,则可以建立相对较少次数的重传。此外,系统200可以包括定时部件212,用于计算主应用程序和接收 方应用程序之间的预期时间。例如,预期时间可以至少部分地基于接收对 安全会话模块204所发起的握手的响应所需的时间。此外,如果在预期响 应时间(例如,可选地,根据阈值时段来修改,例如响应时间的分数或倍 数)内没有接收到对数据事件或后续握手的响应,那么通信模块208或安 全会话模块204可以分别重传数据事件或握手。
根据其它方面,系统200可以包括处理缓冲器,用于使得发起方应 用程序202能够在安全通信期间缓冲到来的响应和/或请求。因此,不必中 断应用程序(202)并发执行的操作而来处理响应/请求。代替其,可以将响 应/请求中的数据复制到处理缓冲器中,并在之后的时间段寻址该数据。因 此,尽管接收到并发的处理请求,系统200仍能进行同步处理。
图3示出了示例系统300的框图,其可以响应在移动操作环境下执行 的应用程序之间的安全通信。系统30'0包括接收方应用程序302,其用于 至少接收握手请求;提取并验证发送方应用程序的ID;以及如果发送方应 用程序是可信的主应用程序,则发起握手响应。因此,系统300可以进行 移动操作环境下的安全通信。
接收方应用程序302可以至少包括安全模块304,用于从主应用程序(未 示出,参见上文图2中的202)接收握手请求。该握手请求可以包括主应 用程序的唯一 ID和/或主应用程序生成的随机数。另外,接收方应用程序 302可以包括核对模块306,用于验证主应用程序的唯一ID。例如,核对 模块可以将所述唯一 ID与可信的主应用程序标识符列表312进行比较。该 列表(312)可以包括与接收方应用程序302应当信任并应接受来自其的握 手的应用程序相关联的所有唯一 ID。因此,可以通过参照列表312来验证 主应用程序的唯一ID。
接收方应用程序302还包括接口模块308,用于如上文所述,如果核 对模块306验证了唯一ID,则向主应用程序发送握手响应。根据一些实施 例,握手响应可以包括随机数或该数的散列、截断后的版本(例如,如 本文所述,由散列模块314生成的),和/或由接收方应用程序302生成的第 二随机数,用于标识响应于请求的通信;和/或接收方应用程序302所发送 的响应。此外,接口模块308可以用于接收、响应和发起数据事件请求(例如,请求数据、执行指令等等)。例如,数据事件请求可以至少包括随 机数的递增值,其中,该递增值用于标识往返通信,随机数用于标识与安
全模块304接收的握手相关的通信。类似地,与接口模块308 (以及,例如, 接收方应用程序302)所发起的数据事件请求相关的响应可以至少包括随 机数的递增值(例如,包括在数据事件请求中的)和/或主应用程序的唯一 ID。或者,数据事件响应可以包括接收方应用程序所请求的数据、指令 结果或它们的组合等等。
根据另外的方面,接收方应用程序302还可以包括管理模块310,用 于要求接口模块308在接收另外的数据事件请求之前,对先前接收到的数 据事件请求作出响应。因此,如本文所述,管理模块310可以在接收方应 用程序302和主应用程序之间实施往返通信策略。另外,管理模块310可 以允许接口模块308对数据事件请求作出响应,并在该响应中包括第二随 机数的递增值和/或接收方应用程序302的应用程序ID。响应可以为发起方 应用程序标识适当的往返,并且还可以通过应用程序ID来提供应用程序 (302)的信息。另外,管理模块310还允许接口模块308发送数据事件请 求,其中,数据事件请求包括随机数的递增值(例如,用于标识源自接 收方应用程序的通信以及标识通信的适当的往返)以及对数据和/或要由主 应用程序来执行的指令的请求。
根据一个或多个其它方面,管理模块310可以帮助缓沖输入的指令, 从而避免中断接收方应用程序302的并发处理。具体来说,管理模块310 可以分配适用于包括在数据事件请求中的指令的数据缓冲器316,并将包括 在数据请求中的数据复制到数据缓冲器316。另外,管理模块310可以设置 处理定时器,其至少部分地基于所估计的完成当前处理所需的时间。此外, 管理模块310还可以阻止接收方应用程序302处理包括在数据事件中的数 据,直至处理定时器到期为止。因此,管理模块310有助于接收方应用程 序302同步执行指令。
根据一些实施例,管理模块310可以指示接口模块308忽略一个或多 个数据事件请求。例如,如果随机数或其递增值与适当的往返通信不匹配, 那么就可以怀疑通信的完整性。因此,管理模块310可以要求在对所述通 信做出任何响应之前发起新的握手,该新的握手具有可验证的可信的唯一ID。
根据另外的实施例,管理模块310还用于接收握手重新发起消息,其 包括例如,新随机数和所述唯一ID或第二唯一ID。管理模块310可以在 所述唯一 ID/第二唯一 ID被验证之前,将新随机数存储在临时缓冲器(316) 中。如果ID被验证为可信的应用程序,那么就同意握手,在这种情况下, 新随机数可以替换先前由主应用程序发送的随机数。如果ID不能被验证, 那么就否决握手,并且可以从临时缓冲器(316)中删除新的随机数。因此, 管理模块310可以在不丢失先前握手的已验证过的参数的情况下,处理新 发起的握手。
根据其它方面,如果未接收到对接口模块308所发送的数据事件请求 的响应,则接口模块308可以将请求重发可配置的次数(例如,基于所确 定的分组丢失等等)。如果在重发预定次数的请求后,仍未接收到响应,则 管理模块可以阻止接口模块308发送其它请求,直至接收到后续的握手(例 如,其包括可验证的主应用程序类ID)为止。因此,管理模块310还可以 限制耗费在尝试从未响应主应用程序.引出响应上的处理资源,以便为移动 操作环境下的应用程序提供更高效且可靠的数据交换。
图4示出了示例性移动设备400,其可以执行移动应用程序在应用程序 间提供安全和低功率的传输。具体来说,移动设备400可以提供有助于移 动应用程序(414、 416)之间的通信的公共平台(408、 410、 412),和/或 可以为第一应用程序(414、 416)提供平台,以与包括第二应用程序(414、 416)的远程设备(未示出,但可参见下文图5)进行无线连接,其中,中 间的无线网络、核心移动网络和/或IP网络等提供了远程设备(400、 504a、 504b)之间的通信接口。因此,系统400可以提供移动应用程序之间的安 全通信,其中,移动应用程序是通过单个设备(400)或远程、网络设备(400、 504a、 504b)的处理和通信结构(例如,处理器408、存储器410、通信策 略412以及适合的总线结构)来耦合的。
移动设备400包括至少一个天线402 (例如,传输接收机或包括输入 接口的此类接收机的组),用于接收信号(例如,与移动应用程序数据传送、 握手、握手响应、数据事件、数据事件响应、握手终止等相关的);接收机 404,用于对接收到的信号执行典型动作(例如,滤波、放大、下变频等)。具体来讲,天线402可以接收本文所述的对握手请求的响应、数据事件请 求等(例如,包括由在移动设备400上执行的至少一个应用程序生成的 随机数、由相应的应用程序生成的随机数、对数据事件的响应等)。
天线402和接收机404还可以与解调器406耦合,其中,解调器406 可以对接收到的符号进行解调,并将其提供给处理器408用于评估。处理 器408可以分析通过天线902或移动设备的用户输入接口 (未示出)接收 到的信息,和域生成通过发射机420来传输的信息。另外,处理器408可 以控制和/或访问移动设备400的一个或多个部件(406、 412、 414、 416、 418)。另外,如本文所述,处理器408可以执行为移动应用程序提供安全 的应用程序间数据传送的一个或多个模块、应用程序(412、 414、 416)等。
移动设备400可以还包括存储器410,其可操作地耦合至处理器408, 用于存储要发送和接收的数据等。存储器410可以存储与通信策略412相 关的信息,通信策略412用于管理位于移动设备400上的和/或通过远程接 口分布的(例如,参见下文图5)移动应用程序(414、 416)之间的安全通 信。具体来说,在通信策略412中可以包括如下规则出于标识和安全性 的目的,生成、递增、散列和/或截断随机数并向目标应用程序(414、 416) 发送该数的规则;以及如本文所述的,用于管理往返通信、重发未确认通 信、发起以及重新发起握手等的规则。此外,如本文所述,存储器410可 以包括主应用程序414,至少用于发起与另外的应用程序(416)的握手 请求(例如,包括上文图2中所描绘的一些或所有模块);和/或第二应用程 序416,用于接收握手请求,并验证主应用程序414是否是可信的应用程序 (例如,包括上文图3中所描绘的一些或所有模块)。
将会认识到,本文所描述的数据存储(例如,存储器1408)可以是易 失性存储器,也可以是非易失性存储器,或者既可以包括易失性存储器又 可以包括非易失性存储器。作为举例而非限制,非易失性存储器可以包括 只读存储器(ROM)、可编程ROM (PROM)、电可编程ROM (EPROM)、 电可擦除PROM (EEPROM)或闪存。易失性存储器可以包括随机存取 存储器(RAM),其作为外部高速缓存存储器。作为举例而非限制,RAM 可具有多种形式,诸如同步RAM (SRAM)、动态RAM (DRAM)、同步 DRAM (SDRAM)、双倍数据率SDRAM (DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM (SLDRAM)和直接型Rambus RAM (DRRAM)。本主题的系统和方法中的存储器1408旨在包括、而不限于上 述这些或任何其它合适的存储器类型。
移动设备400还包括调制器418;发射机420,用于向例如基站、接 入点、另一个接入终端、远程代理等发送生成的信号(例如,通过处理器 408和调制器418)。尽管将主应用程序414和/或第二应用程序416描绘为 与处理器408相分离,但是应当认识到,主应用程序414和/或第二应用程 序416可以是处理器408或多个处理器(未示出)的一部分。
图5描绘了根据一些方面的示例性的网络500,网络500用于为在远程 设备(504a、 504b)上运行的移动应用程序(未示出,可参见上文图4中 的414和416)提供安全通信。系统500可以包括一个或多个扇区中的一个 或多个基站502,其用于在彼此间和/或向一个或多个移动设备(504a、 504b) 进行对无线通信信号的接收、发送、重发等。如图所示,每个基站502可 以为特定地理区域提供通信覆盖,图示为三个地理区域,标记为506a、506b、 506c和506d。每个基站502可以包括发射机链和接收机链,发射机链和接 收机链中的每一个可以包括与信号发送和接收相关联的多个部件(例如, 处理器、调制器、复用器、解调器、解复用器、天线等,如在下文图6中 所描绘的),这些部件都是本领域技术人员所知的。例如,移动设备504可 以是蜂窝电话、智能电话、膝上型计算机、手持通信设备、手持计算设备、 卫星无线电、全球定位系统、PDA和/或用于在无线网络500中进行通信的 任何其它合适的设备。可以结合本文所描述的各个方面来使用系统500,以 便在远程设备(例如,移动设备504a、 504b或者网络500的操作部件,如 在下文图6中所描绘的)上运行的移动应用程序之间进行安全通信。
根据一个或多个特定方面, 一般来说,基站502是与移动设备504a、 504b进行通信的固定站,其可以称作接入点、节点B或一些其它术语。移 动设备504a、 504b通常分散在系统500中,并且每一个移动设备(504a、 504b)可以是固定的、移动的或半移动的(例如,膝上型计算机)设备。 移动设备可以在任何给定时刻与零个、 一个或多个基站502在下行链路上
(例如,从基站502向设备504a、 504b发送数据)和上行链路上(例如, 从移动设备504a、 504b向基站502发送数据)进行通信。对于集中式结构而言,系统控制器(例如,无线电网络控制器[RNC]等,未示出)可以耦合 至基站502,并为与基站502相关联的通信、协议、诊断收集等操作提供协 调和控制。对于分布式结构而言,基站502可根据需要相互通信。
图6示出了根据其它方面的,包括基站602的系统600的例子,基站 602有助于和/或参与移动应用程序的安全远程通信。系统600包括基站602 (例如,接入点等),其包括接收机610,用于通过多个接收天线606从 一个或多个移动设备604接收信号;发射机622,用于通过发射天线608向 一个或多个移动设备604进行发送。接收机610可以从接收天线606接收 信息,并且可以还包括信号接收方(未示出),用于接收与未接收的或无法 解密的数据分组相关的反馈数据。另外,接收机610可操作地关联于解调 器612,该解调器612用来对接收到的信息进行解调。处理器614可以分析 由解调器612所提供的解调后的符号。处理器614还耦合至用于存储应用 程序618的存储器616,其中,所述应用程序618有助于和/或参与本文所 述的安全远程通信。
例如,应用程序618可以是主应用程序,用于发起握手并向在移动设 备604上运行的接收方应用程序发送(例如,与诊断信息、数据分析等相 关的)数据事件请求(例如,应用程序618可以包括结合发起安全移动应 用程序握手和参与安全通信所描绘的、上文图2中的一些或所有模块)。或 者,应用程序618可以是辅助应用程序,如本文所述,用于接收握手请求 并认证发起方主应用程序(例如,应用程序618可以包括结合接收和响应 于握手并参与安全通信而描绘的、上文图3中的一些或所有模块)。应用程 序618可以还包括用于生成和/或验证随机数的规则,其中,随机数用于 向移动设备604上对应的应用程序标识应用程序618,反之亦然;或用于生 成和/或验证随机数的递增值的规则,其中,随机数的递增值用于标识特定 的往返通信。此外,如本文所述,这些规则可指定如下策略重发未确认 的传输的策略、重新发起握手请求和/或响应的策略以及终止握手的策略。 因此,应用程序618能够与移动设备604上的一个或多个应用程序进行安 全移动通信,和/或能够进行与执行本文所阐述的各种动作和功能相关的任 何其它合适的动作。
应该理解,本文所描述的实施例可以实现为硬件、软件、固件、中间件、微码或它们的任何组合。对于硬件实现,处理单元可以在一个或多个
专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、 可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、 微控制器、微处理器、用于执行本文所述功能的其它电子单元或它们的组 合中实现。
当所述实施例是由软件、固件、中间件或微码、程序代码或代码段来 实现时,它们可以存储在机器可读介质中,如存储部件中。代码段可以代 表过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者 指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信 息、数据、自变量、参数或存储器内容来耦合到另一个代码段或硬件电路。 信息、自变量、参数、数据等等可以使用任何适用的方法(包括存储器共 享、消息传递、令牌传递、网络传输等)进行传递、转发或发送。
对于软件实现,本文所描述的技术可用执行本文所述功能的模块(例 如,过程、函数等)来实现。软件代码可以存储在存储器单元中,并且可 以由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器 外,在后一种情况下,它可以经由各种本领域中已知的方式可通信地耦合 到处理器。
参照图7-12,描绘了涉及为至少部分地在移动操作环境中运行的应用 程序提供安全通信的方法。虽然为了简化说明,将所述方法描述为一系列 动作,但是应该理解并认识到,这些方法并不受动作顺序的限制。例如, 根据一个或多个方面, 一些动作可以按不同顺序发生和/或与本文中示出和 描述的其它动作同时发生。另外,本领域技术人员应该理解并认识到,方 法也可以替代地表示成一系列相关联的状态或事件,例如状态图。另外, 为了实现根据一个或多个方面的方法,并非举例说明的所有动作都是必需 的。
参照图7,描绘了用于发起移动操作环境下的移动应用程序之间的安全 通信的方法700的例子。在702,方法700可以发起与移动应用程序的握手, 其中,该握手包括主移动应用程序的唯一标识符和为握手而生成的随机数。 主应用程序可以用于使用消息传递结构,或共享存储器,或通过两者的 适当组合或类似的数据传送平台,经由移动操作系统(例如,BREW操作等)与移动应用程序进行通信。在握手中所指定的唯一标识符可用来将主 应用程序标识为可信的应用程序。在另一方面,移动应用程序可以使用随 机数来向主应用程序标识其自身。因此,在主应用程序接收到的包括随机 数(和/或例如,随机数的适当递增值)的通信可以与移动应用程序相关联。 因此,如果在主应用程序接收的通信不包括所述随机数(和/或例如,随机 数的适当递增值),那么就可以假定该通信与握手不相关,因而是不安全的。
在704,方法700可以接收握手响应。具体来说,握手响应可以包括第 一数以及移动应用程序所生成的第二随机数。作为一个具体的例子,主应 用程序可以在向移动应用程序发送的数据事件中包括所述第二随机数(和/ 或例如,它的适当的递增值)。第二随机数可以将主应用程序标识/证明为发 起了与所述移动应用程序的安全握手会话的可信的应用程序。
在706,方法700可以验证在附图标记704处随握手响应而接收到的第 一数是否是随机数或它的适当递增值。例如,可以将该第一数与随机数进 行比较来判断它们是否相等。或者,如果第一数是随机数的散列(例如, SHA-1、 SHA-2等)和/或截断(例如,32到16位等)后的结果,那么可 以散列、截断该随机数,并将其与所述第一数进行比较。如果第一数和随 机数(或者例如,随机数的散列和/或截断后的结果)相匹配,那么主应用 程序就可以将握手响应认证为源于移动应用程序,并且可以存储用于与握 手相关联的后续数据事件请求的第二随机数。如果第一数和随机数不相匹 配,那么可以丢弃第二随机数。
在708,方法700可以向移动应用程序发送数据事件。该数据事件可以 包括第二随机数或其递增值(例如,向移动应用程序标识主应用程序和/或 标识握手会话的特定往返通信),以标识/证明主应用程序。此外,数据事件 可以包括数据块(以及例如,标识数据块的大小的地址指针、标识数据块 在共享存储器中的位置的地址指针等等),其可以从移动应用程序请求另外 的数据、请求执行指令和在响应中提供结果等。因此,方法700所描述的 安全通信可用来获得数据,和/或控制/配置安全环境中的其它应用程序。
在710,可以延迟与握手会话相关联的第二数据事件,直到接收到对数 据事件的响应为止,其中,所述握手会话在附图标记702处发起并与随机 数和/或其递增值相关联。因此,方法700可以实现一个或多个移动应用程序之间的往返通信。具体来说,往返通信可以包括一个或多个发起的事件 和接收到的对这些事件的响应,其中,每对事件/响应都基于一个用于标识 往返通信的递增的随机数。因此,可以为移动操作环境提供涉及相对低功 耗的同步通信(例如,使用散列函数来加密,而不是使用计算密集型的加 密/解密方法)。
图8示出了根据一个方面的,用于重发数据事件以完成往返通信的方 法800的例子。在802,方法800可以在两个应用程序之间建立安全通信握 手,两个应用程序中的至少之一是移动应用程序。握手及其响应可以包括 至少一个生成的随机数,以标识随后的数据请求的发起方。此外,可以使 用散列函数和/或截断来对随机数进行编码,以便保存移动处理功率。因此, 方法800可以提供高效、安全的应用程序间数据传送。
根据另外的方面,方法800还可以提高所述应用程序之间的传输可靠 性。例如,在804,方法800可以发送数据事件。该数据事件可以包括随机 数(或者例如,该随机数的适当递增值),用于向接收方移动应用程序标识 发起方移动应用程序。此外,数据事件可以包括对接收方应用程序的操作 (例如,数据传送、诊断操作、分析等等)请求。在806,判断是否接收到 对数据事件的响应。具体来说,该判断可以使用响应定时器,其中,响应 定时器至少部分地基于所确定的和/或所预期的应用程序之间的往返响应时 间(例如,在握手会话期间测量的),可选地包括该响应时间的附加的分数 或倍数。作为具体的例子,如果在特定的响应定时器到期之前未接收到响 应,那么方法800前进至附图标记808。如果在该响应定时器到期之前接收 到了对数据事件的响应,那么方法800可以前进至810,以继续握手通信。
在附图标记808处,方法800可以重发可配置次数(例如,与所确定 的和/或所预期的应用程序之间的数据分组丢失的可能性相关)的数据事件, 至少直到接收到数据事件响应。在812,方法800可以再一次判断在重发多 次(可配置)请求之后是否接收到数据事件响应。如果接收到数据事件响 应,那么方法800可以进入到810以继续通信。如果没有接收到适当的响 应,那么方法800可以进入到附图标记814。
在814,方法800可以重新发起可配置次数的握手,至少直到接收到握 手响应。作为一个例子,如果接收方应用程序丢失了用来标识握手会话的随机数(或者例如,存储随机数的存储器遭到了破坏),那么接收方应用程
序可能无法认证在附图标记804和808处所发送的数据事件。因此,如本 文所述,接收方应用程序会忽略该请求。在附图标记814处,通过发起握 手,可以将随机数或新随机数以及主应用程序的唯一标识符重新提交给接 收方应用程序。因此,握手可以被刷新或重新开始。
在附图标记816,方法800可以判断是否接收到对握手的响应。如果接 收到了响应,则方法800可以进入810以继续通信(例如,重传/发送数据 事件或随后的数据事件)。如果没有接收到响应,则方法800可以进入818, 在818,可以发送握手终止。在818,可以假定接收方应用程序不再与发送 方应用程序可通信地耦合,或者接收方已经被恶意程序破坏,或是通信策 略被破坏了等等。握手终止可以包括删除与握手相关联的所有数据,例如 随机数、主应用程序的和/或接收方应用程序的ID、通信中所涉及的数据等 等。正如所描述的,通过在发起下一个数据请求之前重发丢失的/未认证的 数据请求,方法800能够提供可靠的同步通信。因此,传输中的错误可以 被立即纠正,从而可以避免冗余的重传(例如,如在安全TCPIP通信中所 表现的)。
图9描绘了用于在移动应用程序之间的安全通信中递增往返通信的示 例性方法卯0。在902,方法900可以发送至少包括一个随机数的握手发起。 该随机数可由接收方应用程序用来安全地将通信标识为源自于该接收方 (例如,因为仅向接收方应用程序发送随机数)。如本文所述,握手可以还 包括发起方应用程序的唯一 ID。
在卯4,可以接收对握手的响应。在906,可以判断响应是否包括随机 数或其适当的版本(例如,散列的和/或截断后的版本)。如果判断是否定的, 则方法900可以进入910,在910,发送握手终止,并且可选地,可以删除 与握手会话相关的所有数据,包括随机数、接收到的数、所发送的数据等 等。如果在附图标记904处接收的响应中包括适当的数,那么方法卯0可 以进入卯8,在908,可以递增接收到的随机数并将其包括在发往接收方应 用程序的数据事件中。如本文所述,递增后的随机数可以标识并发的往返 通信会话。
在912,判断对数据事件的响应(如果接收到的话)是否包括了随机数的适当递增。如果没有包括,则方法900进入910,在910,可以发起握手 终止。具体来说,可以假定,如果接收到不正确的递增,那么数据事件响 应是由未授权的应用程序发送的(例如,随机数被破坏),或者,接收方应 用程序的安全通信策略已被破坏等等。在附图标记912,如果接收到了随机 数的适当递增值,那么方法900可以进入914,在914,将随机数的额外的 递增值包括在随后的数据事件中。在916,另外判断对随后的数据事件的响 应(如果接收到的话)是否包括了随机数的适当的额外递增值。如果包括, 则方法900可以进入918,在918,继续按照通过方法900所描述的方式和 /或按照本文其它地方所描述的方式来继续通信。在916,如果未确定适当 的递增值,则方法900可以进入910,在910,如上所述,可以发起握手终 止。正如所描述的,方法900可以提供对递增后的随机数的反复分析,所 述递增后的随机数用于标识握手会话以及适当的数据事件往返,以保障移 动应用程序之间的通信。
图IO示出了用于对移动操作环境中的移动应用程序之间的安全通信进 行响应的示例性的方法1000。在1002,可以接收握手请求。如本文所述, 该握手请求可以包括发起方应用程序的唯一标识符和/或用于标识捱手的随 机数。在1004,可以对照可信的主应用程序ID的列表来核对所述唯一标识 符(如果接收到的话)。如果发现了与接收到的唯一标识符相匹配的,则方 法卯0可以进入1006。如果没有发现相匹配的,则方法900可以终止(未 示出)。在1006,如果对照可信的应用程序的列表验证了唯一 ID,那么可 以发送对握手的响应。在1008,可以接收数据事件请求。该数据事件请求 可以包括例如,包括在握手响应中的第二随机数,用于标识与握手会话 相关联的随后的输入通信(例如,通过在附图标记1002处接收到的握手请 求以及在附图标记1006处发送的握手响应而建立的该会话)。在IOIO,可 以延迟接收另外的数据事件请求,至少直到对所述数据事件请求作出了响 应为止(例如,在接收另外的数据事件请求之前发送对所述数据事件请求 的响应)。因此,方法1000可以实施往返通信策略,以保障通信,其中并 入了由发起方和接收方应用程序所生成的随机数。另外,可以散列和截断 这些随机数,以便以较低的处理需求和功耗来提供额外的安全性。因此, 方法1000提供了一种对安全应用程序间通信作出响应并参与安全应用程序间通信的方法,这种方法尤其有益于移动操作环境。
图11描绘了示例性的方法1100,用于在初始请求和往返通信完成之前, 缓冲随后的数据事件请求,以保障应用程序间的数据传送。在1102,如本 文所述,可以建立安全的移动应用程序握手。在1104,可以接收数据事件 请求。此外,在1106,可以分配数据缓冲器,用于存储包括在数据事件请 求中的数据和/或由数据事件请求指定的数据。例如,这种请求可以包括-指令、配置参数、要分析的数据、要执行的移动通信诊断(例如,QoS功 能)等等。在1108,将在附图标记1104处接收到的数据事件请求中所包括 的数据复制到在附图标记1106处分配的数据缓冲器中。在lllO,可以设置 处理定时器。例如,处理定时器可以为在接收方应用程序处执行的任何当 前处理指示期望的完成时间。处理定时器可以延迟处理在数据事件请求中 接收的数据,直至完成当前处理为止。在1112,方法1100可以禁止处理(以 及例如,接收,其中,接收包括处理)在数据事件请求中接收的数据,至 少直到定时器到期。因此,在处理(例如,接收,其中接收包括处理)当 前指令前,可以完成并响应由应用程序接收的先前的指令。通过在完成先 前的处理之前缓冲随后的指令、请求等,方法1100提供了一种有助于在同 步环境中进行往返通信的机制。
图12示出了用于在移动应用程序之间的安全通信中接收重新发起的握 手的示例性方法1200。在1202,如本文所述,可以建立安全移动应用程序 握手,其包括至少一个随机数,用于标识通信的参与方(以及,例如, 能够标识随后的往返通信)。另外,握手还可以包括主应用程序的唯一ID, 其可以将所述应用程序标识为可信的实体。在1204,可以接收包括新随机 数以及唯一 ID或新的唯一 ID的握手重新发起。在1206,在新随机数得到 验证之前,将新随机数存储在临时缓冲器中。所述验证可以包括接收由 接收握手重新发起的应用程序所建立的数据,或者通过接收针对成功地发 送了数据的、包括新随机数的确认响应(ACK)而建立的数据。因此,接 收握手重新发起的应用程序会尝试将合法数据从来自恶意和/或未授权源的 恶意或未授权数据中滤出。
在1208,如本文所述,可以验证新的唯一 ID。例如,将新的唯一 ID 与可信主应用程序唯一ID列表进行对照。如果发现了匹配,那么新的唯一
41ID可以标识特定的可信主应用程序。如果没有发现匹配项,那么就可以假 定新的唯一ID是与未授权的应用程序相关联的。在1210,如上所述,判断 新的唯一ID是否得到了验证。如果未通过验证,那么方法1200进入1214, 在1214,删除新随机数且不发送握手响应。如果新的唯一ID被验证,那么 方法1200可以进入1212,在1212,可以将随机数替换为新随机数,以标 识应用程序之间的随后的通信。正如所描述的,方法1200提供了一种机制, 由此,可以在存储新随机数和唯一 ID并且释放和/或清除先前的随机数和/ 或唯一ID之前,先对握手进行验证。因此,就可以减少尝试通过使用假随 机数替代随机数的方式来中断安全通信的欺骗攻击。
图13给出了根据本公开的多个方面的,用于终止握手的示例性方法 1300的流程图。在1302,方法1300可以建立安全移动应用程序握手,其 至少包括第一随机数和/或发起方应用程序的唯一 ID。第一随机数可用于标 识由发起方应用程序接收到的握手ACK来自于握手的目标。此外,唯一 ID可以向目标指示发起方应用程序被授权向该目标发送握手。
在1304,可以接收握手ACK,其至少包括第一随机数和/或第二随机数。 如本文所述,可以用与第一随机数被发送时的形式一样的形式来接收第一 随机数,或者用加密形式或散列形式等来接收第一随机数。通过将接收到 的第一数(或其适当的散列或加密后的版本)与第一随机数进行比较,可 以识别出ACK是合法的。如果ACK不合法,那么正如本文所述,可以发 送握手重新发起和/或可以结束通信。
在1306,可以发起至少包括唯一 ID和第二随机数的一个版本的终il;事 件。例如,所述版本可以是第二随机数的递增值。所述版本还可以是该数 的散列或加密形式,等等。在1308,可以设置ACK定时器,以便确立终止 事件的ACK的回程时间。例如,ACK定时器可以基于与安全移动应用程 序握手和握手ACK相关联的往返时间。在1310,接收终止ACK。该终止 ACK可以至少包括第二随机数或其适当版本、目标应用程序的应用程序 ID或上述两者。
在1312,判断ACK定时器是否满足。具体来讲,是否在由ACK定时 器所设置的时间范围之内接收到了终止ACK。如果没有接收到,那么方法 1300进入1314,在1314,退出握手并忽略另外的通信,直到进行了成功的握手为止,例如附图标记1302处所示。退出握手可以包括禁止用于握手
的数据事件传输、清零在握手过程中生成的所有随机数和/或释放与握手所 涉及的应用程序相关的特定数据。
在附图标记1312,如果满足了定时器,那么方法1300进入1316,在 1316,继续终止事件。在1318,判断在附图标记1310处随终止ACK而接 收的第二随机数的版本是否被正确地复制、递增、散列或加密,或进行了 上述操作的适当组合。如果随终止ACK而接收到的第二随机数是适当的, 那么方法1300可以进入1320,在1320,取消ACK定时器并完成握手终止。 握手终止的完成可以包括清除为握手生成的数以及释放与握手所涉及的 应用程序相关的数据。在附图标记1318处,如果确定第二随机数是不适当 的,那么方法1300可以进入1322,在1322,退出握手,如在附图标记1314 处所描述的。
图14和图15提供了根据所声明主题的特定方面的示例性系统(1400、 1400)的框图。具体来说,系统1400能够发起和参与移动操作环境中的安 全应用程序间通信。例如,系统1400可以包括用于发起握手的模块1402。 具体来说,模块1402能够发起与移动应用程序的握手,该握手包括主移动 应用程序的唯一标识符和为握手而生成的随机数。此外,系统1400可以包 括用于接收响应的模块1404。具体来说,模块1404能够接收对由模块1402 发起的握手的响应,其中,所述响应包括第一数和第二数。例如,第二数 可以是由移动应用程序(例如,握手的确定目标)随机产生的,并可用来 标记和/或证明从主应用程序发往移动应用程序的请求。
此外,系统1400可以包括用于验证数据的模块1406。模块1406能够 验证作为部分握手响应而接收的第一数是否是为握手而生成的随机数(或 者,例如,它的散列和/或截断后的版本、或者其递增值,或者以上两者)。 还包括用于发送数据事件的模块1408。模块1408能够发起数据事件并将数 据事件发往移动应用程序,如果经模块1406验证,第一数为所述随机数, 则所述数据事件包括第二随机数的递增值(例如,由移动应用程序生成)。 此外,系统1400还可以包括用于延迟第二数据事件的模块1410。模块 1410至少在从移动应用程序接收到数据事件响应之前,延迟系统1400处理 和/或传送第二数据事件,所述数据事件响应至少包括第二随机数的递增值。
43因此,系统1400可以实施安全通信环境中的往返同步通信策略,其至少包 括随机地生成数,以用于标识和/或证明应用程序间数据请求。
此外,系统1500可以包括用于接收握手请求的模块1502。具体来说, 模块1502能够从主应用程序接收握手请求,该握手请求至少包括主应用 程序的唯一ID或主应用程序生成的随机数,或者包括以上两者。另外,系 统1500可以包括用于核对ID的模块1504,其可以对照可信主应用程序 标识符列表来核对所接收的唯一 ID (如果有的话)。这种核对可用来将可信 的应用程序与未授权的或不可信的应用程序区分开来。此外,系统1500可 以包括用于发送握手响应的模块1506。如果经模块1504确定所述唯一 ID 与可信主应用程序标识符列表中的一个唯一 ID相匹配,则模块1506可以 向主应用程序发送握手响应。此外,系统1500还可以包括用于接收数据事 件请求的模块1508;以及用于延迟接收所述请求的模块(例如,其中,除 本文所述的缓冲和/或设置处理定时器以外,接收可以包括一些形式的对接 收到的数据的数据处理)。具体来说,模块1510可以延迟接收另外的数据 请求,直到系统1500发起对数据事件请求的响应为止。因此,可以实施往 返策略,还使得能够在移动应用程序之间的数据传送中重发丢失的请求和/ 或重新发起握手事件。因此,可以为分组丢失环境中的同步通信提供一种 高效的数据传输结构,其中,数据不会由于一个或多个分组丢失而丢失或 变得无用。
上文的描述包括一个或多个方面的例子。当然,不可能为了描述上述 方面而描述部件或方法的每一种可能的组合,但是本领域的技术人员可以 认识到,各种方面的其它组合和变换是可能的。因此,本文所描述的方面 旨在涵盖落入所附权利要求书的保护范围内的所有改变、修改和变形。此 外,就术语"包含"在详细说明或权利要求中的使用程度来说,该术语意 在指包括性的,其类似于术语"包括"作为权利要求中过渡文字被使用时 所解释的那样。
权利要求
1、一种用于在移动操作环境中的应用程序之间提供数据传输的方法,包括发起与移动应用程序的握手,所述握手包括主移动应用程序的唯一标识符和为所述握手而生成的随机数;接收并验证对所述握手的响应,所述响应至少包括第二数;如果对所述握手的响应被验证,则向所述移动应用程序发送数据事件,所述数据事件包括所述第二数或所述第二数的一个版本;以及在从所述移动应用程序接收到数据事件响应之前,冻结所述主应用程序的执行,所述数据事件响应至少包括所述第二数或所述第二数的所述版本。
2、 根据权利要求1所述的方法,还包括如果未从所述移动应用程序接收到所述数据事件响应,则重发所述数 据事件。
3、 根据权利要求1所述的方法,还包括执行可配置次数的数据事件重发操作,直至接收到所述数据事件响应 为止。
4、 根据权利要求3所述的方法,还包括确定在所述移动应用程序和所述主移动应用程序之间的接口中的分组 丢失频率或可能性,以确定数据事件重发操作的所述可配置次数。
5、 根据权利要求3所述的方法,还包括如果在执行了所述可配置次数的数据事件重发操作之后,仍未接收到 所述数据事件响应,则重新发起所述握手。
6、 根据权利要求1所述的方法,还包括如果在阈值时段内未从所述移动应用程序接收到对所述握手的响应或 所述数据事件响应,则重新发起所述握手。
7、 根据权利要求1所述的方法,还包括如下操作中的至少之一 使用散列函数来转换所述随机数或生成所述第二数的所述版本; 截断所述随机数或所述第二数,以使得能够传输比应用程序接口所能容纳的数更大的数;递增所述第二数,以生成所述第二数的所述版本; 对所述第二数进行加密,以生成所述第二数的所述版本。
8、 根据权利要求1所述的方法,还包括 如果所述第一数未被验证为所述随机数,则发起握手终止。
9、 根据权利要求1所述的方法,还包括使用单个移动设备来执行并可通信地耦合所述移动应用程序和所述主 移动应用程序。
10、 根据权利要求1所述的方法,还包括 使用第一设备来存储并执行所述主移动应用程序;以及 使用远离所述第一设备的第二设备来存储并执行所述移动应用程序,其中,通过有线或无线网络,或者通过两者来可通信地耦合所述第一和第二 设备。
11、 根据权利要求1所述的方法,还包括根据在发起所述握手和接收对所述握手的响应之间所需的时间来计算 预期响应时间;并且如果在所述预期响应时间内没有接收到所述数据事件 响应,那么执行如下操作中的至少一个终止与所述移动应用程序的通信,直至发起并验证了随后的握手为止;或者重发所述数据事件。
12、 一种用于在移动操作环境中的应用程序之间提供数据传输的装置,包括安全会话模块,用于发起与接收方应用程序的握手,其中,所述握手 包括主应用程序的唯一 ID和随机数;验证模块,用于接收并验证对所述握手的响应,所述响应至少包括第 —数;通信模块,用于如果对所述握手的响应被验证,则向所述接收方应用程序发送数据事件,所述数据事件包括所述第二数或所述第二数的一个版本;以及传输管理模块,用于在从所述移动应用程序接收到数据事件响应之 前,冻结所述主应用程序的执行,所述数据事件响应至少包括所述第二数 或所述第二数的所述版本。
13、 根据权利要求12所述的装置,其中,如果未从所述接收方应用程 序接收到所述数据事件响应,则所述通信模块重发所述数据事件。
14、 根据权利要求12所述的装置,还包括传输可靠性模块,用于确定所述主应用程序和所述接收方应用程序 之间的分组丢失的可能性或频率,以及根据所确定的分组丢失来为未确认 的数据事件确定重发次数。
15、 根据权利要求14所述的装置,其中,如果在执行了所述次数的重 发之后仍未接收到所述数据事件响应,则所述安全会话模块重新发起所述 握手。
16、 根据权利要求12所述的装置,其中,在发生如下情况中的至少一 个时,所述安全会话模块重新发起所述握手在阈值时段内未从所述移动应用程序接收到对所述握手的响应或所述数据事件响应;握手刷新时间到期;或者 从设备用户接口接收到握手发起命令。
17、 根据权利要求12所述的装置,还包括散列模块,用于执行如下操 作中的至少一个-对所述随机数进行散列、截断、加密、递增或上述操作的组合;或 对所述第二数进行散列、截断、加密、递增或上述操作的组合,以生 成所述第二数的所述版本。
18、 根据权利要求12所述的装置,其中,在发生如下情况中的至少一 个时,所述安全会话模块用于发起握手终止所述第一数未被验证为所述随机数; 对于预定次数的握手,未接收到握手响应; 通信会话完成。
19、 根据权利要求12所述的装置,其中,单个移动设备执行并且可通 信地耦合所述移动应用程序和所述主移动应用程序。
20、 根据权利要求12所述的装置,其中,经由有线或无线网络可通信 地耦合的第一和第二远程处理设备分别执行所述接收方应用程序和所述主 应用程序,所述第一和第二远程处理设备中的至少一个是移动设备。
21、 根据权利要求12所述的装置,还包括定时部件,用于至少部分地根据接收和发起所述握手之间的时间来计 算所述主应用程序和所述接收方应用程序之间的预期响应时间,其中,如 果在所述预期响应时间内没有接收到所述数据事件响应,则所述通信模块 重发所述数据事件。
22、 根据权利要求12所述的装置,还包括处理缓冲器,用于使得所述主应用程序能够在不中断所述主应用程序 的其它操作的情况下,接收并缓冲数据事件响应或握手响应。
23、 用于在移动操作环境中的应用程序之间提供数据传输的至少一个处理器,包括第一模块,用于发起与移动应用程序的握手,所述握手包括主移动应 用程序的唯一标识符和为所述握手而生成的随机数;第二模块,用于接收并验证对所述握手的响应,所述响应至少包括第~* 、丄,/國-一数;第三模块,用于如果验证了对所述握手的响应,则向所述移动应用程序发送数据事件,所述数据事件包括所述第二数或所述第二数的一个版本;以及第四模块,用于在接收到数据事件响应之前,冻结所述主移动应用程 序的执行,所述数据事件响应至少包括所述第二数的递增值。
24、 一种用于在移动操作环境中的应用程序之间提供数据传输的装置, 包括发起装置,用于发起与移动应用程序的握手,所述握手包括主移动应 用程序的唯一标识符和为所述握手而生成的随机数;接收验证装置,用于接收并验证对所述握手的响应,所述响应至少包 括第二数;发送装置,用于如果验证了对所述握手的响应,则向所述移动应用 程序发送数据事件,所述数据事件包括所述第二数或所述第二数的一个版 本;以及冻结装置,用于在接收到数据事件响应之前,冻结所述主移动应用程 序的执行,所述数据事件响应至少包括所述第二数的递增值。
25、 一种计算机程序产品,包括计算机可读介质,其包括用于为移动环境应用程序提供数据传输安全 性的指令,所述指令包括第一指令集,用于使计算机发起与移动应用程序的握手,所述握手包 括主移动应用程序的唯一标识符和为所述握手而生成的随机数;第二指令集,用于使计算机接收并验证对所述握手的响应,所述响应 至少包括第二数;第三指令集,用于使计算机执行如下操作如果验证了对所述握手的 响应,则向所述移动应用程序发送数据事件,所述数据事件包括所述第二 数或所述第二数的一个版本;以及第四指令集,用于使计算机在接收到数据事件响应之前,冻结所述主 移动应用程序的执行,所述数据事件响应至少包括所述第二数或所述第二 数的所述版本。
26、 一种用于在移动操作环境中的应用程序之间提供数据传输的方法, 包括-从主应用程序接收握手请求,所述握手请求包括所述主应用程序的唯 一 ID或由所述主应用程序生成的随机数;对照可信主应用程序标识符列表来核对所述唯一 ID;如果所述唯一ID与所述可信主应用程序标识符列表中的一个ID相匹 配,则向所述主应用程序发送握手响应;接收数据事件请求;以及在接收或处理另外的数据事件请求之前,对所述数据事件请求作出响应。
27、 根据权利要求26所述的方法,还包括将所述随机数或所生成的用于标识源自于接收方应用程序的通信的第 二随机数,或者将这两者包括在所述握手响应中。
28、 根据权利要求27所述的方法,还包括 为所述数据事件分配数据缓冲器;将所述数据事件中包括的数据复制到所述数据缓冲器; 至少部分地根据所估计的、完成当前处理所需的时间来设置处理定时器;以及在所述处理定时器到期之前,禁止处理所述数据事件中包括的数据。
29、 根据权利要求27所述的方法,还包括 接收所述数据事件请求中的所述第二随机数的递增值。
30、 根据权利要求27所述的方法,还包括-将所述第二随机数的递增值或所述接收方应用程序的应用程序ID,或 者将这两者包括在对所述数据事件请求的响应中。
31、 根据权利要求26所述的方法,还包括-将所述随机数的递增值以及响应于所述数据事件请求的数据包括在对 所述数据事件请求的响应中。
32、 根据权利要求26所述的方法,还包括如果所述数据事件请求不包括所述第二随机数的当前递增值,则在接 收到具有可信的唯一ID的随后的握手事件之前,忽略所述数据事件请求和随后的数据事件请求。
33、 根据权利要求26所述的方法,还包括接收握手重新发起消息,其包括新随机数并且包括所述唯一 ID或第二 唯一ID;在临时缓冲器中存储所述新随机数;验证所述唯一 ID或所述第二唯一 ID是否与所述可信主应用程序标识 符列表中的一个ID相匹配;以及如果验证了所述唯一 ED或所述第二唯一 ID,则用所述新随机数替换所 述随机数;或者,如果所述唯一 ID或所述第二唯一 ID未通过验证,则将 所述新随机数从所述临时缓冲器中清除。
34、 根据权利要求26所述的方法,还包括向所述主应用程序发送接收方数据事件请求;以及 延迟第二接收方数据事件请求的发送,至少直到接收到对所述接收方 数据事件请求的响应为止。
35、 根据权利要求34所述的方法,还包括从所述主应用程序接收响应,所述响应包括所述随机数的递增值或所 述主应用程序的唯一ID,或者包括两者。
36、 根据权利要求34所述的方法,还包括如下操作中的至少一个 将所述接收方数据事件请求重发可配置的次数,直到接收到对所述接收方数据事件请求的响应为止;如果在发送了可配置次数的请求之后,仍未接收到对所述接收方数据 事件请求的响应,则在接收到至少具有验证过的主应用程序类ID的随后的 握手之前,禁止发送所述接收方数据事件请求。
37、 一种用于在移动操作环境中的应用程序之间提供数据传输的装置, 包括安全模块,用于从主应用程序接收握手请求,所述握手请求包括所述 主应用程序的唯一 ID或由所述主应用程序生成的随机数;核对模块,用于对照可信主应用程序标识符列表来验证所述唯一 ID;接口模块,用于如果所述唯一 ID与所述可信主应用程序标识符列表 中的一个ID相匹配,则向所述主应用程序发送握手响应;并且用于接收数 据事件请求;以及管理模块,用于要求所述接口模块在接收另外的数据事件请求之前, 对所述数据事件请求作出响应。
38、 根据权利要求37所述的装置,其中,所述握手响应包括所述随 机数或所生成的用于标识响应于接收方应用程序的通信的第二随机数,或 者包括以上两者。
39、 根据权利要求38所述的装置,其中,所述管理模块还用于执行如 下操作中的至少一个为所述数据事件分配数据缓冲器; 将所述数据事件中包括的数据复制到所述数据缓冲器; 至少部分地根据所估计的、完成当前处理所需的时间来设置处理定时器;在所述处理定时器到期前,禁止接收方应用程序处理所述数据事件中 包括的数据。
40、 根据权利要求38所述的装置,其中,所述数据事件请求至少包括 所述随机数的递增值。
41、 根据权利要求38所述的装置,其中,所述管理模块允许对所述数 据事件请求作出响应,所述数据事件请求包括所述第二随机数的递增值或 所述接收方应用程序的应用程序ID,或者包括以上两者。
42、 根据权利要求37所述的装置,其中,所述管理模块允许所述接口 模块发送数据事件请求,所述数据事件请求包括所述随机数的递增值,还 包括对数据或由所述主应用程序执行的指令的请求,或者对以上两者的请 求。
43、 根据权利要求37所述的装置,其中,如果所述数据事件请求不包 括所述第二随机数的当前递增值,则在接收到具有可信的唯一ID的随后的 握手事件之前,所述管理模块忽略所述数据事件请求和随后的数据事件请 求。
44、 根据权利要求37所述的装置,其中,所述管理模块还用于执行如 下操作中的至少一个接收握手重新发起消息,其包括新随机数并且包括所述唯一 ID或第二 唯一 ID;在临时缓冲器中存储所述新随机数, 验证所述唯一 ID或所述第二唯一 ID是否与所述可信主应用程序标识符列表中的一个ID相匹配;或者如果验证了所述唯一 ID或所述第二唯一 ID,则用所述新随机数替换所 述随机数;或者,如果所述唯一 ID或所述第二唯一 ID未通过验证,则将 所述新随机数从所述临时缓冲器中清除。
45、 根据权利要求37所述的装置,其中所述接口模块向所述主应用程序发送接收方数据事件请求;以及 所述管理模块延迟第二接收方数据事件请求的发送,至少直到通过所 述接口接收到对所述接收方数据事件请求的响应为止。
46、 根据权利要求45所述的装置,其中,通过所述接口模块接收到的 对所述接收方数据事件请求的响应包括所述随机数的递增值或所述主应用 程序的唯一ID,或者包括上述两者。
47、 根据权利要求46所述的装置,其中,执行如下操作中的至少一个: 所述接口模块将所述接收方数据事件请求重发可配置的次数,直到接收到对所述接收方数据事件请求的响应为止;或者如果在发送了可配置次数的请求之后,仍未接收到对所述接收方数据 事件请求的响应,则在接收到至少具有验证过的主应用程序类ID的随后的 握手之前,所述管理模块禁止所述接口发送所述接收方数据事件请求。
48、 用于在移动操作环境中的应用程序之间提供数据传输的至少一个 处理器,包括第一模块,用于从主应用程序接收握手请求,所述握手请求包括所述 主应用程序的唯一 ID或由所述主应用程序生成的随机数;第二模块,用于对照可信主应用程序标识符列表来核对所述唯一 ID;第三模块,用于如果所述唯一 ID与所述可信主应用程序标识符列表 中的一个ID相匹配,则向所述主应用程序发送握手响应;第四模块,用于接收数据事件请求;以及第五模块,用于在接收另外的数据事件请求之前,对所述数据事件请 求作出响应。
49、 一种用于在移动操作环境中的应用程序之间提供数据传输的装置, 包括握手请求接收装置,用于从主应用程序接收握手请求,所述握手请求 包括所述主应用程序的唯一 ID或由所述主应用程序生成的随机数;核对装置,用于对照可信主应用程序标识符列表来核对所述唯一 ID;握手响应发送装置,用于如果所述唯一ID与所述可信主应用程序标 识符列表中的一个ID相匹配,则向所述主应用程序发送握手响应;用于接收数据事件请求的装置;以及延迟装置,用于延迟接收另外的数据事件请求,直到发起对所述数据 事件请求的响应为止。
50、 一种计算机程序产品,包括计算机可读介质,其包括用于在移动操作环境中的应用程序之间提供 数据传输的指令,所述指令包括第一指令集,用于使计算机从主应用程序接收握手请求,所述握手请 求包括所述主应用程序的唯一 ID或由所述主应用程序生成的随机数;第二指令集,用于使计算机对照可信主应用程序标识符列表来核对所 述唯一ID;第三指令集,用于使计算机执行如下操作如果所述唯一ID与所述可 信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送握 手响应;第四指令集,用于使计算机接收数据事件请求;以及 第五指令集,用于使计算机在接收另外的数据事件请求之前,对所述 数据事件请求作出响应。
全文摘要
本文描述了为在移动操作环境(106)中执行的移动应用程序(102,104)提供安全、高效的通信。作为一个例子,主移动应用程序(102)可以发起握手,该握手包括主应用程序的唯一标识符和用于标记和/或证明响应请求的随机数。接收方应用程序(104)可以利用已证明的主应用程序的列表来核对所述唯一标识符,以验证主应用程序。如果得到了验证,则接收方利用所述随机数和第二随机数进行响应,其中,第二随机数可以标记和/或证明由主应用程序发送的数据请求。根据一些实施例,随机数可以被散列和/或截断,以提供对所述数的低功率加密。此外,可以实施往返策略,以提供可靠的数据传输。因此,可以在移动环境中进行可靠、安全和低功率的同步通信。
文档编号H04L9/32GK101548503SQ200780045036
公开日2009年9月30日 申请日期2007年12月4日 优先权日2006年12月5日
发明者E·C·C·叶, J·黄, K·福克, M·A·卢希 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1