CN101548503A - 为移动操作环境提供安全的应用程序间通信 - Google Patents

为移动操作环境提供安全的应用程序间通信 Download PDF

Info

Publication number
CN101548503A
CN101548503A CNA200780045036XA CN200780045036A CN101548503A CN 101548503 A CN101548503 A CN 101548503A CN A200780045036X A CNA200780045036X A CN A200780045036XA CN 200780045036 A CN200780045036 A CN 200780045036A CN 101548503 A CN101548503 A CN 101548503A
Authority
CN
China
Prior art keywords
application program
data event
response
random number
data
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
CNA200780045036XA
Other languages
English (en)
Other versions
CN101548503B (zh
Inventor
K·福克
J·黄
E·C·C·叶
M·A·卢希
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101548503A publication Critical patent/CN101548503A/zh
Application granted granted Critical
Publication of CN101548503B publication Critical patent/CN101548503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本文描述了为在移动操作环境(106)中执行的移动应用程序(102,104)提供安全、高效的通信。作为一个例子,主移动应用程序(102)可以发起握手,该握手包括主应用程序的唯一标识符和用于标记和/或证明响应请求的随机数。接收方应用程序(104)可以利用已证明的主应用程序的列表来核对所述唯一标识符,以验证主应用程序。如果得到了验证,则接收方利用所述随机数和第二随机数进行响应,其中,第二随机数可以标记和/或证明由主应用程序发送的数据请求。根据一些实施例,随机数可以被散列和/或截断,以提供对所述数的低功率加密。此外,可以实施往返策略,以提供可靠的数据传输。因此,可以在移动环境中进行可靠、安全和低功率的同步通信。

Description

为移动操作环境提供安全的应用程序间通信
相关申请的交叉引用
本专利申请要求享受在2006年12月5日递交的、名称为“用于在单个平台上的两个应用程序之间建立可信通信的方法和装置”(METHODAND APPARATUS FOR ESTABLISHING A TRUSTED COMMUNICATIONBETWEEN TWO APPLICATIONS ON A SINGLE PLATFORM)、序号为60/868,701的临时申请以及在2007年3月14日递交的、名称为“用于应用程序间通信的方法和装置”(METHOD AND APPARATUS FOR INTERAPPLICATIONS COMMUNICATION)、序号为60/894,897的临时申请的优先权,以上申请已转让给本申请的受让人,故明确地以引用方式并入本文。
技术领域
以下说明总体上涉及移动设备应用程序以及无线通信,更具体地涉及在一个或多个移动平台上运行的移动应用程序之间提供安全的数据交换。
背景技术
近年来,蜂窝通信技术和蜂窝通信设备都取得了各种进展。一些进展,诸如将摄像和录像技术集成到所述设备上、在移动通信中包括电子邮件和短消息服务等等,都涉及软件和/或硬件应用。这些应用为现有的普遍的通信设备(例如,蜂窝电话)增加了灵活性、处理功率和通信能力等等。因此,这类设备在消费市场中更加流行,促使更多的消费者去购买这种设备或升级为包括了新应用以及新技术的设备。
此外,各种类型的恶意软件(malware)通常会阻碍电子通信。一些恶意软件相对无害,其仅仅监控用户活动以协助开发新产品、制订商业或市场策略以使得这些产品能够吸引消费者。尽管监控程序一般不会对运行环境或所存储的数据造成损害,但总体上这些监控程序会消耗电子设备的处理资源。然而,一些恶意软件会主动地破坏设备运行环境、毁坏数据、窃取密码和用户信息等等。这些恶意软件可以通过各种方式运行,但通常都是将它们自身写入设备上的可信程序,伪装成这类程序等等。由于恶意软件的影响,出现了各种用于在电子运行环境下保障通信安全的方法。移动设备也会受到欺骗程序以及其它恶意软件的攻击,通常,它们都将从安全通信中获益。尽管是移动的。
发明内容
下面给出对一个或多个实施例的简要概述,以提供对这些实施例的基本理解。该概述不是对全部考虑到的实施例的广泛概括,也不旨在标识全部实施例的关键或重要元件或者描述任意或全部实施例的范围。其目的仅在于以简化形式呈现一个或多个实施例的一些概念,作为后文所提供的更详细描述的序言。
本公开为在移动操作环境中执行的移动应用程序提供安全、高效的通信。作为一个例子,主移动应用程序可以发起握手,所述握手包括主移动应用程序的唯一标识符和用于标记和/或证明由主移动应用程序所接收到的响应通信的随机数。接收方应用程序可以利用已证明的主应用程序的列表来核对所述唯一标识符,以验证主应用程序。如果唯一标识符被验证,那么接收方应用程序对握手作出响应,其中,所述响应包括所述随机数以及可用来标记和/或证明提交给接收方应用程序的随后的通信的第二随机数。此外,主应用程序和接收方应用程序可以延迟请求和/或响应,直到相应地接收到或发送了对应的响应或请求为止。因此,可以进行应用程序之间的同步通信。
根据本公开的另外方面,可以为连续的通信递增所生成的、用于标识发起方或接收方应用程序的随机数。响应应当包括随机数的适当的递增值,以便验证该响应。因此,本公开提供了往返通信,其中,每一次往返都由随机数的递增值来标识,并且每一次往返都在发起随后的往返之前完成。
根据其它方面,可以散列和/或截断随机数,以模糊所述数,并提供对抗未授权应用程序的额外的安全性。另外,由于同其它加密/解密方法相比,散列函数需要较少的处理,因此,与传统技术相比,本公开可以以涉及相对较少功耗的高效的方式来提供移动应用程序之间的安全数据传送。根据其它方面,移动应用程序可以在单个操作设备(如蜂窝电话)上执行,或者在通过移动网络、传输控制协议/互联网协议(TCP/IP)网络等连接的远程操作设备(例如分散的蜂窝电话等等)上执行。
根据其它方面,公开了用于在移动操作环境中的应用程序之间提供数据传输的方法。该方法可以包括:发起与移动应用程序的握手,所述握手包括主移动应用程序的唯一标识符和为握手而生成的随机数;接收包括第一数和第二数的对所述握手的响应,所述第二数是由移动应用程序随机生成的。该方法还可以包括:验证所述第一数是否是为握手而生成的所述随机数,以及如果所述第一数被验证为所述随机数,则向移动应用程序发送数据事件,该数据事件包括所述第二数的递增值。此外,该方法还可以包括:在发送第二数据事件之前,等待来自移动应用程序的数据事件响应,该响应至少包括所述第二数的递增值。
根据另外的方面,公开了用于在移动操作环境中的应用程序之间提供数据传输的装置。该装置可以包括:安全会话模块,用于发起与接收方应用程序的握手,其中,所述握手包括主应用程序的唯一ID和随机数。此外,所述装置可以包括验证模块,用于:接收握手响应,其中,所述响应包括响应数和第二随机数;以及判断所述响应数是否是所述随机数或所述第二随机数的递增值。另外,该装置可以包括通信模块,用于:如果所述响应数被验证为所述随机数或所述第二随机数的递增值,则向所述接收方应用程序发送数据事件,所述数据事件包括所述第二随机数的递增值。此外,所述装置还可以包括传输管理模块,用于:如果从接收方应用程序接收到至少包括所述第二数的递增值的数据事件响应,则使得通信模块发送第二数据事件。
根据其它方面,公开了用于在移动操作环境中的应用程序之间提供数据传输的至少一个处理器。该处理器可以包括:第一模块,用于发起与移动应用程序的握手,所述握手包括主移动应用程序的唯一标识符和为所述握手而生成的随机数;第二模块,用于接收包括第一数和第二数的握手响应,所述第二数是由移动应用程序随机生成的。另外,该处理器可以包括:第三模块,用于验证所述第一数是否是为握手而生成的所述随机数;第四模块,用于:如果所述第一数被验证为所述随机数,则向移动应用程序发送包括所述第二数的递增值的数据事件。此外,该处理器可以包括:第五模块,用于在第二数据事件能被发送之前,等待来自移动应用程序的、至少包括所述第二数的递增值的数据事件响应。
根据其它方面,公开了用于在移动操作环境中的应用程序之间提供数据传输的装置。该装置可以包括:发起装置,用于发起与移动应用程序的握手,所述握手包括主移动应用程序的唯一标识符和为所述握手而生成的随机数;接收装置,用于接收包括第一数和第二数的握手响应,所述第二数是由移动应用程序随机生成的。此外,该装置可以还包括:验证装置,用于验证所述第一数是否是为握手而生成的所述随机数;发送装置,用于:如果所述第一数被验证为所述随机数,则向移动应用程序发送包括所述第二数的递增值的数据事件。另外,该装置可以包括:延迟装置,用于延迟待发送的第二数据事件,直到从所述移动应用程序接收到至少包括所述第二数的递增值的数据事件响应为止。
根据至少一个方面,公开了包括计算机可读介质的计算机程序产品,其中,所述计算机可读介质包括用于为移动环境应用程序提供数据传输安全的指令。该计算机可读介质可以包括:第一指令集,用于使计算机发起与移动应用程序的握手,所述握手包括主移动应用程序的唯一标识符和为所述握手而生成的随机数。另外,该计算机可读介质可以包括:第二指令集,用于使计算机接收包括第一数和第二数的握手响应,所述第二数是由移动应用程序随机生成的。此外,该计算机可读介质可以包括第三指令集,用于使计算机执行如下操作:如果所述第一数被验证为所述随机数,则向移动应用程序发送包括所述第二数的递增值的数据事件。此外,该计算机可读介质还可以包括:第四指令集,用于使计算机在第二数据事件能被发送之前,等待来自移动应用程序的、至少包括所述第二数的递增值的数据事件响应。
根据一个或多个其它方面,公开了用于在移动操作环境中的应用程序之间提供数据传输的方法。该方法可以包括:从主应用程序接收握手请求,其中,所述握手请求包括所述主应用程序的唯一ID或由所述主应用程序生成的随机数;对照可信主应用程序标识符列表来核对所述唯一ID。另外,该方法可以包括:如果所述唯一ID与所述可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送握手响应。另外,该方法还可以包括:在接收另外的数据事件请求之前,先对数据事件请求作出响应。
根据另外的方面,公开了用于在移动操作环境中的应用程序之间提供数据传输的装置。该装置包括:安全模块,用于从主应用程序接收握手请求,所述握手请求包括所述主应用程序的唯一ID或由所述主应用程序生成的随机数。此外,该装置可以包括:核对模块,用于对照可信主应用程序标识符列表来验证所述唯一ID;接口模块,用于:如果所述唯一ID与所述可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送握手响应,还用于接收数据事件请求。此外,该装置还可以包括:管理模块,用于要求所述接口在接收另外的数据事件请求之前,先对所述数据事件请求作出响应。
根据其它的方面,公开了用于在移动操作环境中的应用程序之间提供数据传输的至少一个处理器。该处理器包括:第一模块,用于从主应用程序接收握手请求,所述握手请求包括所述主应用程序的唯一ID或由所述主应用程序生成的随机数:第二模块,用于对照可信主应用程序标识符列表来核对唯一ID。此外,该处理器可以包括:第三模块,用于:如果所述唯一ID与所述可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送握手响应;第四模块,接收数据事件请求。另外,该处理器可以包括:第五模块,用于在接收另外的数据事件请求之前,先对所述数据事件请求作出响应。
根据一个或多个另外的方面,公开了在移动操作环境中的应用程序之间提供数据传输的装置。该装置可以包括:握手请求接收装置,用于从主应用程序接收握手请求,所述握手请求包括所述主应用程序的唯一ID或由所述主应用程序生成的随机数;核对装置,用于对照可信主应用程序标识符列表来核对所述唯一ID。此外,该装置可以包括:握手响应发送装置,用于:如果所述唯一ID与所述可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送握手响应;以及用于接收数据事件请求的装置。此外,该装置可以还包括:延迟装置,用于延迟接收另外的数据事件请求,直到接收到对所述数据事件请求的响应为止。
根据其它方面,公开了包括计算机可读介质的计算机程序产品,其中,计算机可读介质包括用于在移动操作环境中的应用程序之间提供数据传输的指令。具体来说,该计算机可读介质可以包括:第一指令集,用于使计算机从主应用程序接收握手请求,所述握手请求包括所述主应用程序的唯一ID或由所述主应用程序生成的随机数。该计算机可读介质可以还包括:第二指令集,用于使计算机对照可信主应用程序标识符列表来核对所述唯一ID;第三指令集,用于使计算机执行如下操作:如果所述唯一ID与所述可信主应用程序标识符列表中的一个ID相匹配,则向所述主应用程序发送握手响应。此外,该计算机可读介质还可以包括:第四指令集,用于使计算机接收数据事件请求;第五指令集,用于使计算机在接收另外的数据事件请求之前,先对所述数据事件请求作出响应。
为了实现前述和相关目的,所述一个或多个方面包括下文将详细描述并特别在权利要求中指明的特征。下文的说明书和附图详细阐明了所述一个或多个方面中的某些示例性方面。但是,这些方面仅仅是说明应用各个方面的基本原理的一些不同方式,所描述的方面旨在包括所有这些方面及其等价物。
附图说明
图1示出了用于在移动应用程序之间提供安全、低功率的通信的示例性系统的框图。
图2描绘了用于在移动操作环境中执行的应用程序之间发起安全通信的系统的例子的框图。
图3描绘了用于对在移动操作环境中所执行的应用程序之间的安全通信作出响应的系统的例子的框图。
图4示出了用于执行移动应用程序并提供应用程序之间的安全、低功率传输的移动设备的例子。
图5描绘了根据一些方面的,用于为在远程设备上运行的移动应用程序提供安全通信的网络的例子。
图6示出了根据其它方面的,用于促进移动应用程序之间的安全的远程通信的基站的例子。
图7描绘了用于在移动操作环境中的移动应用程序之间发起安全通信的方法的例子。
图8示出了根据一个方面的,用于重发数据事件以完成往返通信的方法的例子。
图9描绘了用于在移动应用程序之间的安全通信中递增往返通信的方法的例子。
图10示出了用于对移动操作环境中的移动应用程序之间的安全通信作出响应的方法的例子。
图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可以重新发起握手。或者,可以在首次发起握手后的默认时段后,或在默认时段的组合(例如,1小时、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的框图,其可以响应在移动操作环境下执行的应用程序之间的安全通信。系统300包括接收方应用程序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描绘了用于在移动应用程序之间的安全通信中递增往返通信的示例性方法900。在902,方法900可以发送至少包括一个随机数的握手发起。该随机数可由接收方应用程序用来安全地将通信标识为源自于该接收方(例如,因为仅向接收方应用程序发送随机数)。如本文所述,握手可以还包括发起方应用程序的唯一ID。
在904,可以接收对握手的响应。在906,可以判断响应是否包括随机数或其适当的版本(例如,散列的和/或截断后的版本)。如果判断是否定的,则方法900可以进入910,在910,发送握手终止,并且可选地,可以删除与握手会话相关的所有数据,包括随机数、接收到的数、所发送的数据等等。如果在附图标记904处接收的响应中包括适当的数,那么方法900可以进入908,在908,可以递增接收到的随机数并将其包括在发往接收方应用程序的数据事件中。如本文所述,递增后的随机数可以标识并发的往返通信会话。
在912,判断对数据事件的响应(如果接收到的话)是否包括了随机数的适当递增。如果没有包括,则方法900进入910,在910,可以发起握手终止。具体来说,可以假定,如果接收到不正确的递增,那么数据事件响应是由未授权的应用程序发送的(例如,随机数被破坏),或者,接收方应用程序的安全通信策略已被破坏等等。在附图标记912,如果接收到了随机数的适当递增值,那么方法900可以进入914,在914,将随机数的额外的递增值包括在随后的数据事件中。在916,另外判断对随后的数据事件的响应(如果接收到的话)是否包括了随机数的适当的额外递增值。如果包括,则方法900可以进入918,在918,继续按照通过方法900所描述的方式和/或按照本文其它地方所描述的方式来继续通信。在916,如果未确定适当的递增值,则方法900可以进入910,在910,如上所述,可以发起握手终止。正如所描述的,方法900可以提供对递增后的随机数的反复分析,所述递增后的随机数用于标识握手会话以及适当的数据事件往返,以保障移动应用程序之间的通信。
图10示出了用于对移动操作环境中的移动应用程序之间的安全通信进行响应的示例性的方法1000。在1002,可以接收握手请求。如本文所述,该握手请求可以包括发起方应用程序的唯一标识符和/或用于标识握手的随机数。在1004,可以对照可信的主应用程序ID的列表来核对所述唯一标识符(如果接收到的话)。如果发现了与接收到的唯一标识符相匹配的,则方法900可以进入1006。如果没有发现相匹配的,则方法900可以终止(未示出)。在1006,如果对照可信的应用程序的列表验证了唯一ID,那么可以发送对握手的响应。在1008,可以接收数据事件请求。该数据事件请求可以包括:例如,包括在握手响应中的第二随机数,用于标识与握手会话相关联的随后的输入通信(例如,通过在附图标记1002处接收到的握手请求以及在附图标记1006处发送的握手响应而建立的该会话)。在1010,可以延迟接收另外的数据事件请求,至少直到对所述数据事件请求作出了响应为止(例如,在接收另外的数据事件请求之前发送对所述数据事件请求的响应)。因此,方法1000可以实施往返通信策略,以保障通信,其中并入了由发起方和接收方应用程序所生成的随机数。另外,可以散列和截断这些随机数,以便以较低的处理需求和功耗来提供额外的安全性。因此,方法1000提供了一种对安全应用程序间通信作出响应并参与安全应用程序间通信的方法,这种方法尤其有益于移动操作环境。
图11描绘了示例性的方法1100,用于在初始请求和往返通信完成之前,缓冲随后的数据事件请求,以保障应用程序间的数据传送。在1102,如本文所述,可以建立安全的移动应用程序握手。在1104,可以接收数据事件请求。此外,在1106,可以分配数据缓冲器,用于存储包括在数据事件请求中的数据和/或由数据事件请求指定的数据。例如,这种请求可以包括:指令、配置参数、要分析的数据、要执行的移动通信诊断(例如,QoS功能)等等。在1108,将在附图标记1104处接收到的数据事件请求中所包括的数据复制到在附图标记1106处分配的数据缓冲器中。在1110,可以设置处理定时器。例如,处理定时器可以为在接收方应用程序处执行的任何当前处理指示期望的完成时间。处理定时器可以延迟处理在数据事件请求中接收的数据,直至完成当前处理为止。在1112,方法1100可以禁止处理(以及例如,接收,其中,接收包括处理)在数据事件请求中接收的数据,至少直到定时器到期。因此,在处理(例如,接收,其中接收包括处理)当前指令前,可以完成并响应由应用程序接收的先前的指令。通过在完成先前的处理之前缓冲随后的指令、请求等,方法1100提供了一种有助于在同步环境中进行往返通信的机制。
图12示出了用于在移动应用程序之间的安全通信中接收重新发起的握手的示例性方法1200。在1202,如本文所述,可以建立安全移动应用程序握手,其包括:至少一个随机数,用于标识通信的参与方(以及,例如,能够标识随后的往返通信)。另外,握手还可以包括:主应用程序的唯一ID,其可以将所述应用程序标识为可信的实体。在1204,可以接收包括新随机数以及唯一ID或新的唯一ID的握手重新发起。在1206,在新随机数得到验证之前,将新随机数存储在临时缓冲器中。所述验证可以包括接收:由接收握手重新发起的应用程序所建立的数据,或者通过接收针对成功地发送了数据的、包括新随机数的确认响应(ACK)而建立的数据。因此,接收握手重新发起的应用程序会尝试将合法数据从来自恶意和/或未授权源的恶意或未授权数据中滤出。
在1208,如本文所述,可以验证新的唯一ID。例如,将新的唯一ID与可信主应用程序唯一ID列表进行对照。如果发现了匹配,那么新的唯一ID可以标识特定的可信主应用程序。如果没有发现匹配项,那么就可以假定新的唯一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和第二随机数的一个版本的终止事件。例如,所述版本可以是第二随机数的递增值。所述版本还可以是该数的散列或加密形式,等等。在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处理和/或传送第二数据事件,所述数据事件响应至少包括第二随机数的递增值。因此,系统1400可以实施安全通信环境中的往返同步通信策略,其至少包括:随机地生成数,以用于标识和/或证明应用程序间数据请求。
此外,系统1500可以包括用于接收握手请求的模块1502。具体来说,模块1502能够从主应用程序接收握手请求,该握手请求至少包括:主应用程序的唯一ID或主应用程序生成的随机数,或者包括以上两者。另外,系统1500可以包括:用于核对ID的模块1504,其可以对照可信主应用程序标识符列表来核对所接收的唯一ID(如果有的话)。这种核对可用来将可信的应用程序与未授权的或不可信的应用程序区分开来。此外,系统1500可以包括用于发送握手响应的模块1506。如果经模块1504确定所述唯一ID与可信主应用程序标识符列表中的一个唯一ID相匹配,则模块1506可以向主应用程序发送握手响应。此外,系统1500还可以包括用于接收数据事件请求的模块1508;以及用于延迟接收所述请求的模块(例如,其中,除本文所述的缓冲和/或设置处理定时器以外,接收可以包括一些形式的对接收到的数据的数据处理)。具体来说,模块1510可以延迟接收另外的数据请求,直到系统1500发起对数据事件请求的响应为止。因此,可以实施往返策略,还使得能够在移动应用程序之间的数据传送中重发丢失的请求和/或重新发起握手事件。因此,可以为分组丢失环境中的同步通信提供一种高效的数据传输结构,其中,数据不会由于一个或多个分组丢失而丢失或变得无用。
上文的描述包括一个或多个方面的例子。当然,不可能为了描述上述方面而描述部件或方法的每一种可能的组合,但是本领域的技术人员可以认识到,各种方面的其它组合和变换是可能的。因此,本文所描述的方面旨在涵盖落入所附权利要求书的保护范围内的所有改变、修改和变形。此外,就术语“包含”在详细说明或权利要求中的使用程度来说,该术语意在指包括性的,其类似于术语“包括”作为权利要求中过渡文字被使用时所解释的那样。

Claims (50)

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相匹配;以及
如果验证了所述唯一ID或所述第二唯一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相匹配,则向所述主应用程序发送握手响应;
第四指令集,用于使计算机接收数据事件请求;以及
第五指令集,用于使计算机在接收另外的数据事件请求之前,对所述数据事件请求作出响应。
CN200780045036XA 2006-12-05 2007-12-04 为移动操作环境提供安全的应用程序间通信 Active CN101548503B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US86870106P 2006-12-05 2006-12-05
US60/868,701 2006-12-05
US89489707P 2007-03-14 2007-03-14
US60/894,897 2007-03-14
US11/947,738 2007-11-29
US11/947,738 US8225093B2 (en) 2006-12-05 2007-11-29 Providing secure inter-application communication for a mobile operating environment
PCT/US2007/086418 WO2008070686A2 (en) 2006-12-05 2007-12-04 Providing secure inter-application communication for a mobile operating environment

Publications (2)

Publication Number Publication Date
CN101548503A true CN101548503A (zh) 2009-09-30
CN101548503B CN101548503B (zh) 2013-06-19

Family

ID=39471793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780045036XA Active CN101548503B (zh) 2006-12-05 2007-12-04 为移动操作环境提供安全的应用程序间通信

Country Status (7)

Country Link
US (1) US8225093B2 (zh)
EP (1) EP2115935A2 (zh)
JP (1) JP5043957B2 (zh)
KR (1) KR101122853B1 (zh)
CN (1) CN101548503B (zh)
TW (1) TW200841667A (zh)
WO (1) WO2008070686A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105321321A (zh) * 2015-11-03 2016-02-10 惠州市鸿业电力信息科技有限公司 保证北斗卫星天线与设备之间数据传输准确的方法和系统
CN105379223A (zh) * 2013-05-20 2016-03-02 思杰系统有限公司 用于移动应用管理的对移动应用的身份的验证
CN106164878A (zh) * 2014-03-31 2016-11-23 飞力凯网路股份有限公司 信息处理装置、信息处理方法和程序
CN106339203A (zh) * 2016-08-10 2017-01-18 钱庆照 一种随机数据生成方法
CN106953728A (zh) * 2017-03-28 2017-07-14 联想(北京)有限公司 一种数据传输方法和电子设备
CN106982210A (zh) * 2017-03-28 2017-07-25 联想(北京)有限公司 一种数据下载方法和电子设备
CN110249585A (zh) * 2017-02-17 2019-09-17 智联科技私人有限公司 用于信息请求和/或信息供应的装置和方法

Families Citing this family (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2619355A1 (en) * 2005-08-15 2007-02-22 John Roujinsky Method and system for obtaining feedback from at least one recipient via a telecommunication network
GB0603781D0 (en) * 2006-02-24 2006-04-05 Nokia Corp Application verification
KR101366803B1 (ko) * 2007-04-16 2014-02-24 삼성전자주식회사 Http를 이용한 통신 방법 및 장치
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US7899058B2 (en) * 2008-03-12 2011-03-01 Telefonaktiebolaget L M Ericsson (Publ) Using a hash value as a pointer to an application class in a communications device
US8660268B2 (en) * 2008-04-29 2014-02-25 Red Hat, Inc. Keyed pseudo-random number generator
US8285746B2 (en) * 2008-06-16 2012-10-09 Canon U.S.A., Inc. Securing data from a shared device
US9258113B2 (en) 2008-08-29 2016-02-09 Red Hat, Inc. Username based key exchange
JP5348138B2 (ja) * 2008-10-24 2013-11-20 日本電気株式会社 パケットロス頻度計測システム、パケットロス頻度計測方法およびプログラム
KR101012872B1 (ko) * 2009-09-16 2011-02-08 주식회사 팬택 플랫폼 보안 장치 및 방법
US9225526B2 (en) * 2009-11-30 2015-12-29 Red Hat, Inc. Multifactor username based authentication
US8271031B2 (en) * 2009-12-30 2012-09-18 Sap Ag Communication between integrated device and mobile application client on mobile personal communication device
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US8572706B2 (en) 2010-04-26 2013-10-29 Vmware, Inc. Policy engine for cloud platform
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US8813065B2 (en) 2010-04-26 2014-08-19 Vmware, Inc. Microcloud platform delivery system
US9772831B2 (en) 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US9160408B2 (en) * 2010-10-11 2015-10-13 Sunpower Corporation System and method for establishing communication with an array of inverters
KR101141164B1 (ko) * 2010-11-17 2012-05-02 삼성에스디에스 주식회사 어플리케이션간 메시지 교환 시스템 및 방법
US20120124659A1 (en) * 2010-11-17 2012-05-17 Michael Craft System and Method for Providing Diverse Secure Data Communication Permissions to Trusted Applications on a Portable Communication Device
GB2500356A (en) 2011-01-20 2013-09-18 Box Inc Real time notification of activities that occur in a web-based collaboration environment
KR101250661B1 (ko) * 2011-02-08 2013-04-03 주식회사 팬택 모바일 플랫폼 보안 장치 및 방법
US8527196B2 (en) * 2011-03-23 2013-09-03 Denso International America, Inc. System and method for determining routes to desired locations
US9015710B2 (en) 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
US9652741B2 (en) 2011-07-08 2017-05-16 Box, Inc. Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US9026784B2 (en) * 2012-01-26 2015-05-05 Mcafee, Inc. System and method for innovative management of transport layer security session tickets in a network environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US10031783B2 (en) 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9331995B2 (en) * 2012-04-23 2016-05-03 Sap Se Secure configuration of mobile application
GB2505272B (en) 2012-05-04 2014-07-09 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occurred via cloud-enabled platform
US9690635B2 (en) 2012-05-14 2017-06-27 Qualcomm Incorporated Communicating behavior information in a mobile computing device
US9609456B2 (en) 2012-05-14 2017-03-28 Qualcomm Incorporated Methods, devices, and systems for communicating behavioral analysis information
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
US9298494B2 (en) 2012-05-14 2016-03-29 Qualcomm Incorporated Collaborative learning for efficient behavioral analysis in networked mobile device
US9324034B2 (en) 2012-05-14 2016-04-26 Qualcomm Incorporated On-device real-time behavior analyzer
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8515865B1 (en) * 2012-05-26 2013-08-20 At&T Intellectual Property I, L.P. Methods, systems, and products for charging batteries
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
JP5631940B2 (ja) * 2012-07-23 2014-11-26 株式会社東芝 情報処理装置、方法、プログラム
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8868574B2 (en) 2012-07-30 2014-10-21 Box, Inc. System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment
US9330257B2 (en) 2012-08-15 2016-05-03 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
KR101701889B1 (ko) * 2012-08-15 2017-02-02 이카노스 커뮤니케이션스, 인크. 크로스-토크 환경들에서의 강건한 핸드쉐이크 절차
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
CN102843681A (zh) * 2012-08-15 2012-12-26 腾讯科技(深圳)有限公司 信息交互方法和装置
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9558202B2 (en) 2012-08-27 2017-01-31 Box, Inc. Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9117087B2 (en) * 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
WO2014046974A2 (en) 2012-09-20 2014-03-27 Case Paul Sr Case secure computer architecture
US9521130B2 (en) * 2012-09-25 2016-12-13 Virnetx, Inc. User authenticated encrypted communication link
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
JP5982343B2 (ja) 2012-10-17 2016-08-31 ボックス インコーポレイテッドBox, Inc. クラウドベース環境におけるリモートキー管理
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
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
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
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9507795B2 (en) 2013-01-11 2016-11-29 Box, Inc. Functionalities, features, and user interface of a synchronization client to a cloud-based environment
EP2757491A1 (en) 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
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
KR102038964B1 (ko) 2013-03-18 2019-11-26 삼성전자주식회사 어플리케이션 간의 상호 인증 방법 및 장치
US9461905B2 (en) * 2013-05-02 2016-10-04 Raytheon Company Method for indirect link characterization and quality measurement of a digital network
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
MX358674B (es) * 2013-07-10 2018-08-31 Sony Corp Dispositivo de recepción, método de recepción, y método de transmisión.
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US10652240B2 (en) 2014-05-29 2020-05-12 Entersekt International Limited Method and system for determining a compromise risk associated with a unique device identifier
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US10250698B2 (en) 2014-08-25 2019-04-02 Futurewei Technologies, Inc. System and method for securing pre-association service discovery
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
CA2961970A1 (en) * 2014-09-23 2016-03-31 Surgical Safety Technologies Inc. Operating room black-box device, system, method and computer readable medium
US9998360B2 (en) * 2014-11-17 2018-06-12 Honeywell International Inc. Minimizining message propagation times when brief datalink interruptions occur
US10404475B2 (en) * 2015-01-22 2019-09-03 Visa International Service Association Method and system for establishing a secure communication tunnel
EP3274889A4 (en) * 2015-03-26 2019-01-02 Surgical Safety Technologies Inc. Operating room black-box device, system, method and computer readable medium
EP3435848A4 (en) 2016-03-31 2019-11-20 Dexcom, Inc. SYSTEMS AND METHODS FOR INTERCONNECTING COMMUNICATION
US10601595B2 (en) 2016-05-04 2020-03-24 Avaya Inc. Secure application attachment
US10262146B2 (en) * 2016-12-15 2019-04-16 Vmware, Inc. Application-to-application messaging over an insecure application programming interface
US11063762B1 (en) 2018-02-22 2021-07-13 Allscripts Software, Llc Computing system for inter-application communication
US10884815B2 (en) 2018-10-29 2021-01-05 Pivotal Software, Inc. Independent services platform
WO2020131942A1 (en) 2018-12-19 2020-06-25 Dexcom, Inc. Intermittent monitoring
US20210306858A1 (en) * 2020-03-25 2021-09-30 Jpmorgan Chase Bank, N.A. Method and system for detecting instrumentation tools
US11728998B2 (en) * 2020-10-22 2023-08-15 EMC IP Holding Company LLC Authenticating communications between physical ports using knowledge of shared secrets
US11595490B2 (en) * 2021-04-14 2023-02-28 Ubkang (Qingdao) Technology Co., Ltd. Methods and systems for implementing a function for an application using a middleware
US20240031436A1 (en) * 2022-07-19 2024-01-25 Centurylink Intellectual Property Llc Dynamic storage and forwarding of data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463154B1 (en) * 1998-08-28 2002-10-08 Lucent Technologies Inc. Method for determining temporary mobile identifiers and managing use thereof
US6801941B1 (en) * 1999-08-12 2004-10-05 Sarnoff Corporation Dynamic wireless internet address assignment scheme with authorization
GB2357227B (en) 1999-12-08 2003-12-17 Hewlett Packard Co Security protocol
JP2004528609A (ja) 2000-05-24 2004-09-16 ボルテール アドバンスト データ セキュリティ リミテッド フィルタリングのなされたアプリケーション間通信
EP1524815B1 (en) * 2000-08-25 2009-09-23 Research In Motion Limited System and method for implementing an enhanced transport layer security protocol
JP2002132722A (ja) 2000-10-30 2002-05-10 Nippon Telegr & Teleph Corp <Ntt> 代行認証方法、その各装置、その装置の処理方法、及びプログラム記録媒体
JP2003208409A (ja) 2002-01-15 2003-07-25 Mitsubishi Electric Corp 認証システム及び認証方法
CA2387328C (en) * 2002-05-24 2012-01-03 Diversinet Corp. Mobile terminal system
JP2005244668A (ja) 2004-02-26 2005-09-08 Sanyo Electric Co Ltd 通信装置および通信方法
US20060136901A1 (en) 2004-12-22 2006-06-22 Sony Ericsson Mobile Communications Ab Mobile financial transaction management system and method
US20100091993A1 (en) * 2007-02-02 2010-04-15 Panasonic Corporation Wireless communication device and encryption key updating method
TWI410105B (zh) * 2008-12-01 2013-09-21 Inst Information Industry 無線網路架構之行動台、存取台、閘道裝置、基地台及其握手方法
WO2010124739A1 (en) * 2009-04-30 2010-11-04 Peertribe Sa A method and system for wireless connecting a mobile device to a service provider through a hosting wireless access node

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105379223A (zh) * 2013-05-20 2016-03-02 思杰系统有限公司 用于移动应用管理的对移动应用的身份的验证
CN105379223B (zh) * 2013-05-20 2017-06-23 思杰系统有限公司 管理对企业资源的访问的方法和装置
CN106164878A (zh) * 2014-03-31 2016-11-23 飞力凯网路股份有限公司 信息处理装置、信息处理方法和程序
CN105321321A (zh) * 2015-11-03 2016-02-10 惠州市鸿业电力信息科技有限公司 保证北斗卫星天线与设备之间数据传输准确的方法和系统
CN105321321B (zh) * 2015-11-03 2019-05-17 惠州市鸿业电力信息科技有限公司 保证北斗卫星天线与设备之间数据传输准确的方法和系统
CN106339203A (zh) * 2016-08-10 2017-01-18 钱庆照 一种随机数据生成方法
CN106339203B (zh) * 2016-08-10 2018-10-19 钱庆照 一种随机数据生成方法
CN110249585A (zh) * 2017-02-17 2019-09-17 智联科技私人有限公司 用于信息请求和/或信息供应的装置和方法
CN110249585B (zh) * 2017-02-17 2023-02-17 智联科技私人有限公司 用于信息请求和/或信息供应的装置和方法
CN106953728A (zh) * 2017-03-28 2017-07-14 联想(北京)有限公司 一种数据传输方法和电子设备
CN106982210A (zh) * 2017-03-28 2017-07-25 联想(北京)有限公司 一种数据下载方法和电子设备

Also Published As

Publication number Publication date
EP2115935A2 (en) 2009-11-11
TW200841667A (en) 2008-10-16
JP5043957B2 (ja) 2012-10-10
JP2010511965A (ja) 2010-04-15
US8225093B2 (en) 2012-07-17
US20080215883A1 (en) 2008-09-04
WO2008070686A3 (en) 2008-08-07
KR20090094362A (ko) 2009-09-04
KR101122853B1 (ko) 2012-04-20
WO2008070686A2 (en) 2008-06-12
CN101548503B (zh) 2013-06-19

Similar Documents

Publication Publication Date Title
CN101548503B (zh) 为移动操作环境提供安全的应用程序间通信
US10567428B2 (en) Secure wireless ranging
US20140325218A1 (en) Wireless Charging System Using Secure Wireless Charging Protocols
Misra et al. Security of a mobile transaction: A trust model
CN102215221A (zh) 从移动设备对计算机的安全远程唤醒、引导及登录的方法和系统
CN1536808A (zh) 简化加密网络的装置和方法
CN110234111A (zh) 一种适用于多网关无线传感器网络的双因素认证密钥协商协议
CN101779411A (zh) 网络中设备的识别和认证
CN101527729A (zh) 一种ike可靠报文协商的方法、设备及系统
CN103069768A (zh) 基于主机的移动性和多宿主协议的轻量级安全方案的方法和设备
CN102461265A (zh) 位置确定的网络访问
CN106156677B (zh) 身份证读卡方法和系统
CN102035645B (zh) 一种资源受限网络的实体鉴别方法及系统
CN103249043A (zh) 传感器节点设备认证和状态认证的方法以及安全协议方法
CN101931561A (zh) 远程控制网络设备管理系统及管理端与网络设备操作方法
CN105828330B (zh) 一种接入方法及装置
CN102884773A (zh) 用于减轻移动ip网络中路径上攻击的方法
JP4018584B2 (ja) 無線接続装置の認証方法及び無線接続装置
EP3556051B1 (en) Apparatuses, system, and methods for controlling an actuator through a wireless communications system
CN111651740B (zh) 一种面向分布式智能嵌入式系统的可信平台共享系统
JP2009239496A (ja) 鍵暗号方式を用いたデータ通信方法、データ通信プログラム、データ通信プログラム記憶媒体、データ通信システム
JP4103995B2 (ja) Icチップ制御システム、通信端末及びコンピュータプログラム
CN104159320A (zh) 一种局域异构网络的数据交换方法
Stirparo et al. Secure Bluetooth for Trusted m-Commerce
Spahić et al. Pre-authentication using infrared

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1136717

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
CI01 Publication of corrected invention patent application

Correction item: International Day of publication

Correct: 20080612

False: 20080807

Number: 25

Volume: 29

CI03 Correction of invention patent

Correction item: International Day of publication

Correct: 20080612

False: 20080807

Number: 25

Page: The title page

Volume: 29

ERR Gazette correction

Free format text: CORRECT: INTERNATIONAL PROCLAMATION DATE; FROM: 2008.08.07 TO: 2008.06.12

RECT Rectification
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1136717

Country of ref document: HK