CN104520805B - 根据企业信息控制策略的带有密钥和数据交换的安全应用程序生态系统 - Google Patents

根据企业信息控制策略的带有密钥和数据交换的安全应用程序生态系统 Download PDF

Info

Publication number
CN104520805B
CN104520805B CN201380041169.5A CN201380041169A CN104520805B CN 104520805 B CN104520805 B CN 104520805B CN 201380041169 A CN201380041169 A CN 201380041169A CN 104520805 B CN104520805 B CN 104520805B
Authority
CN
China
Prior art keywords
ecosystem
application program
application
key
catalogue
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.)
Active
Application number
CN201380041169.5A
Other languages
English (en)
Other versions
CN104520805A (zh
Inventor
W·E·曹贝乐
T·J·安德维克
B·麦科肯德尔
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.)
Norton identity protection
Original Assignee
Symantec Corp
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 Symantec Corp filed Critical Symantec Corp
Publication of CN104520805A publication Critical patent/CN104520805A/zh
Application granted granted Critical
Publication of CN104520805B publication Critical patent/CN104520805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • G06F16/196Specific adaptations of the file system to access devices and non-file objects via standard file system access operations, e.g. pseudo file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

计算机上生态系统的多个应用程序根据企业的信息控制策略安全地交换加密数据,而不允许来自所述生态系统外部的非授权访问。生态系统代理创建生态系统目录,所述生态系统目录包含关于所述生态系统中每个特定应用程序(包括所述生态系统代理)的策略信息和识别信息。每个生态系统应用程序生成非对称密钥对,所述生态系统应用程序只通过所述目录与所述生态系统中的应用程序共享所述非对称密钥对中的公用密钥。所述生态系统代理的私用密钥用于加密目录。通过使用适当的生态系统应用程序密钥来加密和解密消息和数据对象,数据在所述生态系统中的应用程序之间安全地传送。所述生态系统中的每个特定应用程序都遵循企业信息控制策略。生态系统应用程序可从所述目录读取策略,并从所述企业接收策略更新。

Description

根据企业信息控制策略的带有密钥和数据交换的安全应用程 序生态系统
技术领域
本公开一般涉及计算机安全,更具体地,涉及提供一种应用程序的安全生态系统,所述应用程序根据企业信息控制策略来安全地交换加密数据,而不允许来自生态系统外部的非授权访问。
背景技术
随着个体拥有和携带诸如智能手机和平板电脑的移动计算设备变得越来越普遍,人们想要自由地将自己的设备用于工作和个人用途(这种方式有时被称为“带上自己的设备型式”)。用户熟悉且适应自己的设备,不想针对工作而学习怎样操作或携带第二台设备。同时,当在非企业的设备上访问和处理机密信息时,企业拥有对企业机密信息的处理进行控制的合法需求。
任何计算平台上的生产工作均依赖于相同的数据被多个应用程序安全访问以及在多个应用程序之间被交换的能力,其中每个应用程序适用于该交互的不同方面。然而,雇主想要根据企业信息控制策略来限制对企业机密数据的访问和使用。此外,一些用户(例如,顾问或那些有多个雇主的用户)想要针对其与多个组织的职业关系而使用其个人计算设备,其中这些组织中的每一者均拥有独立的信息控制要求。
这些问题需要得到解决。
发明内容
在计算机,例如移动计算设备上,提供了一种安全生态系统。属于生态系统成员的多个应用程序根据企业的信息控制策略安全地交换加密数据,而不允许生态系统外部的非授权访问。本文中称为生态系统代理的特定生态系统应用程序在计算设备上创建生态系统目录。在一个实施例中,基于生态系统的名称,在计算设备上的一位置处创建生态系统目录。生态系统目录包含针对生态系统中每个特定应用程序(包括生态系统代理)的条目。每个目录条目包括关于特定应用程序的策略信息和识别信息。例如,此类条目可包含:1)针对特定应用程序的策略,2)使特定应用程序获得策略更新的信息,以及3)关于特定应用程序的使生态系统中的其他应用程序与该特定应用程序安全地进行加密数据通信的信息。在一个实施例中,使其他应用程序与该特定应用程序安全地进行加密数据通信的信息为特定应用程序的包标识符或包名称、特定应用程序的地址、特定应用程序的公用密钥(并且在一些实施例中,为用于加密特定应用程序的公用密钥的全生态系统范围的对称加密密钥)、特定应用程序支持的介质类型以及特定应用程序的本地化标题的形式。
在一个实施例中,计算设备上针对生态系统成员资格而配置的每个特定应用程序生成非对称密钥对,该特定应用程序只与生态系统中的应用程序共享该非对称密钥对中的公用密钥,而该特定应用程序完全不共享该非对称密钥对中的私用密钥。生态系统代理可使用其私用密钥加密生态系统目录,使得需要生态系统代理的公用密钥来解密生态系统目录。在一个实施例中,生态系统代理还生成全生态系统范围的对称加密密钥,其用于加密和解密生态系统应用程序的公用密钥,从而进一步阻止从生态系统的外部访问生态系统应用程序的公用密钥。
生态系统内的应用程序之间安全地传送数据,使得所传送的数据在没有生态系统内部授权的情况下无法从生态系统的外部访问。生态系统应用程序之间的安全通信可包括用第一密钥由生态系统内的提供方应用程序加密数据,使得生态系统内的任何接收方应用程序可使用第二密钥来解密数据。更具体地,为了与单个生态系统应用程序安全地传送数据,这可采用第一生态系统应用程序从生态系统目录读取第二生态系统应用程序的公用密钥的形式。第一生态系统应用程序使用第二生态系统应用程序的公用密钥来加密消息或数据对象以安全地传送到第二生态系统应用程序。第一生态系统应用程序与第二生态系统应用程序进行加密消息或数据对象通信或共享,且第二生态系统应用程序使用自有私用密钥将加密消息或数据对象解密。为了将数据安全地传送到多个生态系统应用程序,第一生态系统应用程序可使用其自有私用密钥来加密消息或数据对象。然后,第一生态系统应用程序可与多个其他的目标生态系统应用程序进行加密消息或数据对象通信或共享。接收方生态系统应用程序可从目录读取第一生态系统应用程序的公用密钥,并使用第一生态系统应用程序的公用密钥来解密消息或数据对象。生态系统中的每个特定应用程序都遵循企业信息控制策略。这可采用生态系统中每个特定应用程序从生态系统目录读取其策略并且然后遵循其策略的形式。在一些实施例中,生态系统应用程序还可从企业接收策略更新,并且遵循所接收的策略更新。
在计算设备上针对生态系统成员资格而配置但不是生态系统成员的应用程序可使用加入生态系统的请求来调用生态系统代理。生态系统代理验证寻求加入的应用程序的信任状态,如果成功则将新应用程序添加到生态系统。这可采用针对新的应用程序将条目写入生态系统目录的形式,写入的条目至少包括与新应用程序有关使生态系统中其他应用程序将加密数据安全地传送到新应用程序的信息。生态系统代理可向新应用程序提供其自有公用密钥,从而使新应用程序使用生态系统代理的公用密钥来解密目录。在其中生态系统代理的公用密钥自身由生态系统范围内的对称加密密钥进行加密的实施例中,生态系统代理还向新应用程序提供生态系统范围内的对称加密密钥,使得新应用程序可解密生态系统代理的公用密钥。新加入的应用程序读取其目录条目,从目录获得它的策略,并遵循其获得的策略。在一些实施例中,新加入的应用程序还验证生态系统代理的信任状态,并且只有在生态系统代理被验证是值得信任时才继续加入生态系统。
列表可维护为基础介质类型与用于基于基础介质类型处理生态系统特定加密格式的内容的功能之间的映射。列表可用于基于基础介质类型正确地处理生态系统特定加密格式的生态系统特定加密消息和对象。计算设备外部的组件也可为生态系统的成员,其中外部组件为生态系统应用程序提供服务。此类外部组件可从企业直接接收密钥和策略,并遵循接收的策略。
本发明内容和以下具体实施方式中所述的特征和优点并不包括全部,并且特别地,相关领域的普通技术人员在考虑其附图、说明书和权利要求书后,许多另外的特征和优点将显而易见。此外,应该指出的是,说明书中所用的语言主要被选择用于可读性和指导目的,而不是被选择用来限定或限制本发明的主题,必需借助权利要求书确定此发明主题。
附图说明
图1为根据一些实施例的示例性网络体系结构的框图,安全生态系统组件可在该示例性网络体系结构中实施。。
图2为根据一些实施例的适用于实施安全生态系统组件的计算机系统框图。
图3为根据一些实施例的在计算设备的安全生态系统情景下提供安全生态系统组件功能的高级概览的框图。
图4A为根据一些实施例的示出生态系统应用程序的安全生态系统组件的模块的框图。
图4B为根据一些实施例的示出生态系统代理的安全生态系统组件的模块的框图。
图5为根据一些实施例的安全生态系统的操作的框图。
图6为根据一些实施例的与外部组件接合的安全生态系统的操作的框图。
图7为根据一些实施例的安全生态系统的操作的流程图。
这些图仅出于举例说明的目的来示出各种实施例。本领域技术人员根据下列讨论将易于认识到,在不脱离本文所述原理的情况下,可采用本文所述的结构和方法的替代实施例。
具体实施方式
图1为框图,示出了示例性网络体系结构100,安全生态系统组件101可在该示例性网络体系结构中实施。。所示网络体系结构100包括多个客户端103A、103B和103N,以及多个服务器105A和105N。在图1中,安全生态系统组件101被示为驻存在客户端103A上,后端组件109驻存在服务器105A上。应当理解这仅是例子,并且在各种实施例中该系统101的各种功能可在客户端103、服务器105上被实例化,或可在多个客户端103和/或服务器105之间分发。
客户端103和服务器105可使用计算机系统210(例如图2所示和下文所述的计算机系统)实施。客户端103和服务器105可通信地联接到网络107,例如经由以下结合图2所述的网络接口248或调制解调器247进行。客户端103能够使用例如网页浏览器或其他客户端软件(未示出)访问服务器105上的应用程序和/或数据。客户端103可以但不需要为移动计算设备的形式,包括能够连接到网络107以及运行应用程序的便携式计算机系统210。此类移动计算设备有时被称为智能手机,但多数未如此命名的移动电话也有这些功能。平板电脑和笔记本电脑为移动计算设备的其他例子。
虽然图1示出了三个客户端103和两个服务器105作为例子,但实际上可部署更多(或更少)客户端103和/或服务器105。在一个实施例中,网络107为互联网的形式。可在其他实施例中使用其他网络107或基于网络的环境。
图2为计算机系统210的框图,该计算机系统210适于实施安全生态系统组件101。客户端103和服务器105都可以此类计算机系统210的形式实施。图2所示类型的计算机系统210可以但不需要是移动计算设备的形式。如图所示,计算机系统210的一个组件是总线212。总线212可通信地耦合计算机系统210的其他组件,诸如至少一个处理器214;系统存储器217(例如,随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器);输入/输出(I/O)控制器218;音频输出接口222,其可通信地耦合到外部音频设备,诸如扬声器系统220;显示适配器226,其可通信地耦合到外部视频输出设备,诸如显示屏224;一个或多个接口,诸如串行端口230、通用串行总线(USB)插座230、并行端口(未示出)等;键盘控制器233,其可通信地耦合到键盘232;存储接口234,其可通信地耦合到至少一个硬盘244(或其他形式的磁介质);主机总线适配器(HBA)接口卡235A,其被配置为与光纤通道(FC)网络290连接;HBA接口卡235B,其被配置为连接到SCSI总线239;光盘驱动器240,其被配置为接收光盘242;鼠标246(或其他指示设备),其例如经由USB插座228耦合到总线212;调制解调器247,其例如经由串行端口230耦合到总线212;以及网络接口248,其例如直接耦合到总线212。
其他组件(未示出)可以类似方式连接(如,文件扫描仪、数字相机、打印机等等)。相反地,图2中所示的所有组件不需要都存在。可以使用与图2中所示方法不同的方法来互连这些组件。
总线212允许处理器214与系统存储器217之间的数据通信,如上所指出的,所述系统存储器可包括ROM和/或快闪存储器以及RAM。RAM通常是将操作系统和应用程序加载到其中的主存储器。除其他代码外,ROM和/或快闪存储器还可包含控制某些基本硬件操作的基本输入输出系统(BIOS)。应用程序可存储在本地计算机可读介质(如,硬盘244、光盘242)上并加载到系统存储器217中并且被处理器214执行。应用程序也可加载到来自远程位置(即,远程定位的计算机系统210)的系统存储器217中,例如经由网络接口248或调制解调器247进行。在图2中,安全生态系统组件101被示为驻存在服务器内存217中。以下结合图3更详细地阐释安全生态系统组件101的工作方式。
存储接口234耦合到一个或多个硬盘244(和/或其他标准存储介质)。硬盘244可以是计算机系统210的一部分,或者可以是物理上独立的,可以通过其他接口系统进行访问。
网络接口248和/或调制解调器247可直接或间接可通信地联接到网络107,例如互联网。此类联接可以是有线的或无线的。
图3示出了根据一些实施例的在计算机210上于安全生态系统301情景下运行的安全生态系统组件101功能的高级概览。如上所述,安全生态系统组件101的功能可驻存在客户端103(包括但不限于移动计算设备形式的客户端103)上、服务器105上或在多个计算机系统210之间分发,包括在基于云的计算环境内,在该基于云的计算环境中安全生态系统组件101的功能作为一种服务通过网络107提供。应当理解,虽然安全生态系统组件101在图3中示出为单个实体,但所示安全生态系统组件101表示功能集合,其可根据需要被实例化为单个或多个模块(安全生态系统组件101的特定多个模块的实例化在图3中示出)。应当理解,安全生态系统组件101的模块可在任何计算机系统210的系统存储器217(如,RAM、ROM、快闪存储器)内被实例化(例如被实例化为目标代码或可执行映像),使得当计算机系统210的处理器214处理模块时,计算机系统210执行相关功能。如本文所用,术语“计算机系统”、“计算机”、“客户端”、“客户端计算机”、“服务器”、“服务器计算机”和“计算设备”意指被配置和/或被编程为执行所述功能的一个或多个计算机。另外,实施安全生态系统组件101功能的程序代码可存储在计算机可读存储介质中。任何形式的有形计算机可读存储介质可用于该情景(context),例如磁或光存储介质。如本文所用,术语“计算机可读存储介质”并不意味着电信号与基础物理介质分离。
如图3所示,多个被配置为在生态系统301内使用的应用程序303在计算机210(诸如移动计算设备)的系统存储器217中的安全生态系统301中运行。作为用于说明的例子,图3示出了三个在生态系统301中运行的应用程序303,但实际上生态系统可包括其他数量(包括大得多的数量)的应用程序303。针对生态系统301成员资格而配置的每个应用程序303都包含安全生态系统组件101,其提供下文详细讨论的生态系统特定功能。安全生态系统组件101功能使多个应用程序303(例如移动应用程序303)在计算机210上作为符合据企业300提供的信息控制策略的安全、互连的生态系统301运行。本文使用的术语“生态系统”301意指计算设备210上的一组应用程序303,其被配置为使得应用程序303可根据企业信息控制策略相互之间安全地交换加密消息305和加密数据对象307,其中应用程序303和生态系统301外的其他组件无法未经授权访问生态系统301或其内容。本文使用的术语“企业”300意指在其管理下,根据信息控制策略使其电子数据可供个体使用的任何组织。企业、政府和大学都是企业300的例子。
如以下详细阐述,生态系统301内的应用程序303可安全地发送加密消息305和共享数据加密对象307(例如,文件),而不允许生态系统301外部的应用程序303(包括那些在同一计算设备210上运行的应用程序)的未授权访问。生态系统301可包括企业特定应用程序303,以及来源于企业外部的第三方应用程序303(例如,Google Play或苹果公司的AppStore上发布的商业应用程序303),企业特定应用程序303可从在后端企业服务器309的系统存储器217中运行的后端组件109下载。以下详细描述分发企业准备好的包含安全生态系统组件101功能的应用程序303的流程。
不止一个生态系统301可共存于单个计算设备210中,并且被配置为使得共存的生态系统301不被允许访问彼此的数据,或以其他方式参与到本文所述的受保护的生态系统级数据共享中。如以下详细描述,根据企业策略,安全生态系统组件101使用有效协议来将授权应用程序303安全地注册到生态系统301中,来加密生态系统数据,以及来在同一生态系统301中的应用程序303之间安全地共享该数据。
图4A示出了根据一些实施例的被配置为参与到生态系统301中的应用程序303的安全生态系统组件101的模块。结合图5详细描述这些模块的操作。安全生态系统组件101的密钥生成模块401用于生成用于加密内容以用于生态系统301内的安全通信的密钥409。安全生态系统组件101的代理调用模块421用于调用生态系统代理411,生态系统代理411是下文详细讨论的特定生态系统应用程序303。安全生态系统组件101的应用程序验证模块423用于验证其他应用程序是被信任参与到生态系统301中。安全生态系统组件101的通信模块424用于应用程序303之间的通信,以及生态系统应用程序303与后端企业服务器309之间的通信。加密模块425对内容加密以用于安全通信,而解密模块427解密所加密的内容。目录读取模块429从生态系统目录读取内容,这在下文详细描述。最后,策略执行模块431用于确保遵循企业信息控制策略。在其他实施例中,被配置为参与到生态系统301中的应用程序303的安全生态系统组件101可根据需要包括更多、更少或不同的模块。
图4B示出了根据一些实施例的生态系统代理411的安全生态系统组件101的模块。如上面所提及,生态系统代理411为特定生态系统应用程序303。与图4A一样,结合图5详细描述图4B所示的模块的操作。安全生态系统组件101的目录创建模块403创建生态系统目录413。安全生态系统组件101的目录写模块405将内容写入到生态系统目录413中。安全生态系统组件101的应用程序添加模块419将新应用程序303添加到生态系统301。生态系统代理411的安全生态系统组件101还包括密钥生成模块401、应用程序验证模块423、通信模块424、加密模块425、解密模块427、目录读取模块429和策略执行模块431,这些模块执行与上文结合图4A所述相同的功能。在其他实施例中,生态系统代理411的安全生态系统组件101可根据需要包括更多、更少或不同的模块。
现在转到图5,根据一些实施例描述了安全生态系统301的操作。如以下更详细地阐释,生态系统301的各种应用程序303使用一组密钥409来加密和解密数据以便允许某些或所有生态系统应用程序303的授权访问,并同时阻止来自生态系统301外部的访问。在一个实施例中,生态系统301中每个应用程序303的安全生态系统组件101的密钥生成模块401生成非对称的密钥对,应用程序303只与生态系统301的其他成员共享该非对称的密钥对中的公用密钥409public(如下所述),而该非对称的密钥对的私用密钥409private只有应用程序303知道。应当理解,由于所述术语在本文中用于生态系统301的情景下,因此公用密钥409public并非对全世界公用或对计算设备210上的所有组件公用,而是只在生态系统301内公用。在一个实施例中,除了生态环境应用程序301密钥对409之外,还存在全生态系统范围的对称加密密钥409ecosystem,其不与任何特定生态系统应用程序303相关联,而是与整个生态系统301相关联。在一些实施例中,全生态系统范围的对称加密密钥409ecosystem自身用密钥加密密钥(KEK)409key加密。全生态系统范围的对称密钥409ecosystem和/或KEK 409key可由应用程序303(本文称作生态系统代理411,其在下面讨论)的安全生态系统组件101的密钥生成模块401生成。在不同的实施例中,在生态系统301的情景下使用的特定密钥409会有所不同。以下更详细地描述了各种密钥409的使用。
给定的生态系统301最初由生态系统代理411在计算设备210上建立,生态系统代理411如上文作为特定生态系统应用程序303所述。更具体地,生态系统代理411是一种执行本文所述的特定功能的生态系统应用程序303。虽然代理411在本文中被描述和示为单个实体,但在一些实施例中,代理411的功能可在多个应用程序303间分发。代理411通常可从企业300获得。如何能从企业300获得代理411的一个例子是从后端企业服务器309下载。如以下更详细地阐释,代理411被信任以建立生态系统301,例如因为代理411被安排提供有由受信源签署的断言,该断言规定该特定应用程序303的确是代理411。
当安装了代理411时,其安全生态系统组件101的目录创建模块403创建随后由代理411管理的加密生态系统目录413。在一个实施例中,目录413的位置基于生态系统301的名称计算,使得知道生态系统301的名称的应用程序303可定位(但在不具有适当密钥409的情况下,不读取)目录413。利用生态系统的名称,目录413的位置可以使用例如散列算法(例如,双重散列)来计算以管理冲突。在其他实施例中,目录413的位置被保护不受以其他方式从生态系统301外部的访问。例如,在一个实施例中,代理411向新应用程序303传送目录413的位置作为加入生态系统301协议的一部分。目录413的位置是平台特定的。例如,在iOS下,目录413可存储为粘贴板对象。在一些实施例中,生态系统代理411维护目录413,其他应用程序303不可写入到或以其他方式修改目录413,虽然其他生态系统应用程序303通常可读取目录413,但前提是它们有适当的密钥409来解密该目录。目录413可使用生态系统代理411的私用密钥409private进行加密和签署。在目录413不能被保护为免于受到其他应用程序303删除或修改的平台下,代理411可周期性地检查目录413的完整性,并根据需要执行修复。如果应用程序303发现目录413丢失或破坏,检测应用程序303可将相应的损坏指示发送到代理411。
目录包含每个活动生态系统应用程序303(包括生态系统代理411)的记录415(条目)。应用程序303的记录415包括策略块和信息块。策略块包括企业300提供的针对应用程序303的默认(初始)策略,以及用于后端企业服务器309的地址(例如URL),应用程序301可从该地址可获得周期性策略更新。下面更详细地讨论应用程序级企业策略的使用。用于特定生态系统应用程序303的信息块包括被生态系统中的其他应用程序303用于进行与特定应用程序303安全通信的信息,例如,应用程序303的包ID或包名称、应用程序303的地址、应用程序301的公用密钥409public、应用程序303支持的介质类型以及应用程序303的本地化标题。应用程序303地址的格式在不同的平台间不同。例如,在iOS下,自定义URL方案被用作应用程序地址,而在Android下则使用意图(Intent),在意图中统一资源标识符(“URI”)以应用程序的包名称(packageName)开头。支持的介质类型的表达也是平台特定的。例如,在iOS下,介质类型表达为MIME类型、通用类型标识符(“UTIs”)以及对应的文件扩展名,而在Android下,介质类型表达为MIME类型以及对应的文件扩展名。应用程序303的本地化标题可用于加入协议期间的用户确认,和/或用于面向用户的菜单。
如以下更详细地讨论,生态系统应用程序303使用其自有目录记录415的策略块中的信息来获悉并从而遵循其企业策略。另外,生态系统应用程序303使用生态系统301中的其他应用程序303的目录记录415的信息块来获悉其他生态系统应用程序303,并获得适当的密钥409和识别信息以共享加密对象307并向特定(或所有的)生态系统应用程序303发送加密消息305。
当代理411已安装并创建了目录413时,代理411的安全生态系统组件101的目录写模块405将与代理411相关的目录记录415写入到目录413中(回想代理411自身是一种生态系统应用程序303)。然后,代理411的安全生态系统组件101中的应用程序添加模块419管理其他应用程序303的加入计算设备210上的生态系统301的请求。为了理解应用程序303请求加入生态系统301的过程,首先讨论移动计算设备210以及其他类型的计算机210的应用程序303的分发是有帮助的。许多开发者编写用于多种流行移动操作系统的应用程序(“apps”)。例如,Apple公司的iOS(以前称为iPhone OS)是在Apple移动设备诸如iPhone、iPod Touch和iPad上运行的移动操作系统。许多针对iOS的应用程序303可从Apple公司的App Store下载。Android是开源的,基于Linux的用于移动设备的操作系统。许多Android应用程序303可通过Google Play(以前被称为安卓市场)以购买或免费的方式得到。Android应用程序303也可从其他在线商店和另外的第三方站点下载。另一个实例是WindowsPhone,其是由Microsoft开发的移动操作系统,在诸如Nokia、Acer以及Fujitsu的供应商的智能手机上运行。用户可从由Microsoft运营的Windows Phone Marketplace下载用于Windows Phone的应用程序303。iOS、Android以及Windows Phone只是当前流行的移动操作系统的例子,但也存在其他的操作系统。另外,虽然本公开的许多内容描述了生态系统301在移动计算设备210上实施的实施例,但在另一些实施例中,生态系统301在其他类型的计算机210诸如台式电脑和工作站上实施。在任何情况下,应用程序303可从多个来源下载到计算机210上。参与到生态系统301中的应用程序303可从企业300(例如,从后端企业服务器309)下载,或者从第三方站点,诸如Apple的App Store或Google Play,下载。
企业300提供的应用程序303在分发之前由企业300签署。在应用程序303由企业300提供的情况下,任何安全生态系统组件101特定功能可被企业300实例化于应用程序303中,或者被安全生态系统组件101的发布者实施为代码,并通过使用应用程序打包来添加到应用程序303。应用程序打包包括将代码添加到现有应用程序303。这使包含已添加代码的应用程序303必须在分发前再次签署。这对于企业300提供的应用程序303来说有效,因为企业300可提供签署其应用程序303的证书。在企业300外部开发并且由第三方分发的应用程序在分发前由其开发者(第三方应用程序303的供应商)签署。因此,在第三方分发前非企业应用程序303被配置为加入生态系统301的情况下,安全生态系统组件101特定功能以安全生态系统组件101发布者提供的代码形式被添加到应用程序303,并且通过在构建过程中可包括的软件开发套件(“SDK”)或库添加到应用程序303。然后,开发者可在分发前重新签署修改过的应用程序303。为获得对此类代码的访问,第三方应用程序供应商与安全生态系统组件101的发布者建立关系,发布者根据这种关系提供SDK。在不同的实施例中,根据各种需要的标准,发布者限制特定供应商的接入,和/或在允许其分发前审查被配置为用于生态系统301的第三方应用程序303。
应当理解,无论安全生态系统组件101的功能是通过应用程序打包还是通过SDK添加到应用程序,添加的代码均改变应用程序303的默认行为以使本文所述的安全生态系统组件101功能实例化。这可通过拦截执行将要修改的默认功能的系统调用(如访问文件系统的调用)来实施,并用执行安全生态系统组件101特定功能的调用来替换或打包这些系统调用来实施。例如,向磁盘写入(以及读取)数据的尝试被拦截以自动提供本文所述的加密(以及解密),而进程间通信被拦截以确保受保护内容的复制/粘贴(以及其他进程间通信)遵循本文所述的策略(例如,通过藉由正确加密、限制性名称空间、MIME类型转换等来只供生态系统成员访问)。所拦截的特定系统调用在不同实施例之间可不同。系统调用拦截的具体实施技术在不同的移动操作系统间不同。例如,在iOS下,拦截发生在运行时间。在Android下,代码被拆散、修改、添加以及重新组合。
在一个实施例中,所有要参与到生态系统303中的应用程序303在分发之前都提供有对其真实性的已签署断言。针对从后端企业服务器309下载的应用程序303,断言可由企业300签署。对于通过第三方站点分发的应用程序303,断言可由受信方签署,受信方诸如安全生态系统组件101的发布者、电子身份的受信第三方认证者、企业300等。断言可包含特定应用程序303的标识符(例如,用于iOS应用程序303的包ID,用于Android应用程序303的包名称)、应用程序303的地址以及应用程序303的本地化标题。在不同的实施例中,根据基本观点,即受信签名验证应用程序303被信任加入生态系统301,以及关于应用程序303的信息识别具有足够特性的应用程序303以确认计算设备210上的特定应用程序303即是断言验证的那一个,断言可包含更多、更少或不同的关于应用程序303的信息。例如,在加入协议的特定情景下(以下讨论),其中移动操作系统提供应用程序303的可靠的识别,该可靠识别呈现断言;接收断言的应用程序303可在设备210上接收消息的情景下,结合接收到的消息来验证断言。
返回到对请求加入生态系统301的应用程序303的讨论,寻求加入生态系统301的应用程序303的安全生态系统组件101的密钥生成模块401生成非对称密钥对,包括应用程序303只与生态系统301的成员共享的公用密钥409public以及应用程序303根本不共享的私用密钥409private。在其他实施例中,生态系统应用程序303使用的密钥409的特定格式或结构有所不同。应用程序303的安全生态系统组件101的代理调用模块421使用加入生态系统301的请求来调用代理311,其在一些实施例中包括该应用程序的公用密钥409public使得代理411可对到应用程序303的返回通讯加密。代理411可基于生态系统301的名称而寻址,使得知晓生态系统301名称的应用程序303可调用代理411以提出加入生态系统301的请求。就企业应用程序303而言,在分发之前,生态系统的名称可提供在应用程序包中,使得应用程序303知晓生态系统名称。就被配置以便能够加入生态系统301的第三方应用程序303而言,应用程序303可提示用户输入生态系统名称。用户可通过手动输入、通过扫描对名称编码的QR代码或其他图像,根据用户电子邮箱地址等等方式来提供该名称。在一个实施例中,生态系统301可使用操作系统特定的方法找到驻存在设备210上的可用的代理411或者目录413来被自动发现。在另一个实施例中,已安装的应用程序303可例如通过与后端服务器309通信来从企业300接收生态系统名称。在分发之前不给第三方应用程序303提供生态系统名称的原因是,尽管一般来讲应用程序303被配置为能够加入生态系统301,但事先不知道应用程序303将被安装到哪里,生态系统301的名称将是什么或者其各种安装对象将是什么。
应用程序303使用生态系统名称来向代理411提出加入生态系统301的请求。调用代理411的方法是平台特定的。例如,iOS中,代理411可基于生态系统名称通过自定义URL方案寻址。更具体地,在当前iOS版本下,使用UIApplication:openURL:方法,其中使用代理的自定义URL方案构成URL,并且经base64编码的请求作为查询字符串参数被传送。应当理解,这是根据一个使用iOS的实施例的提出加入请求的具体实施所特定的例子。
寻求加入生态系统301的应用程序303向代理411建立其受信任的状态。在一个实施例中,这采取应用程序303将其签署的断言作为加入请求的一部分提供给代理411的形式。然后,代理411的安全生态系统组件101的应用程序验证模块423通过将断言中的应用程序标识符(例如,包ID)与操作系统所指示的尝试加入的应用程序303的应用程序标识符匹配以及验证签名的合法性来验证断言。在其他实施例中,应用程序验证模块423以其他方式验证寻求加入生态系统301的应用程序303的信任状态。例如,签署的断言可由除应用程序303之外的源诸如后端企业服务器309提供。在另一个实施例中,代理411上的应用程序验证模块423通过参考由例如后端企业服务器309或另一受信源提供的受信应用程序303的白名单和/或不受信任的应用程序303的黑名单来补充验证过程。白名单和/或黑名单被用作在线过滤器以识别已知为受信或非受信的特定应用程序303。在另一个实施例中,由受信源诸如后端企业服务器309分发的应用程序303在没有签署的断言的情况下受到信任。除应用程序303的验证外,在一些实施例中,代理411(或正加入的应用程序303)提示用户或以其他方式与用户交互,且应用程序303仅响应于来自用户的确认指令才被加入到生态系统301。在其他实施例中,不具有这个步骤。在一些但不是所有的实施例中,代理411还在进行加入操作之前认证用户(例如,通过后端企业服务器和/或通过输入密码等)。
在给定的实施例中使用的验证步骤成功完成后,代理411上的应用程序添加模块419将正加入的应用程序303添加到生态系统301。这包括代理411中的目录写模块405更新目录413以针对新加入的应用程序303添加新记录415。然后,代理411的安全生态系统组件101的通信模块424可通过向正加入的应用程序303发送代理的公用密钥409public和全生态系统范围的对称加密密钥409ecosystem来对加入请求作出响应。通信模块424也可向应用程序303提供代理的签署断言(回想代理411自身是生态系统应用程序303,并且从而可以与其他生态系统就绪应用程序303相同的方式被验证为受信任的)。(然后,应用程序303的安全生态系统组件101的应用程序验证模块423可验证代理的签署断言,或者以另一种方式验证代理411为受信任的,所述另一种方式诸如上面在代理411验证应用程序303的情景中所讨论的那些方式。代理411的安全生态系统组件101的加密模块425可利用应用程序的公用密钥409public来对从代理411发送至应用程序303的数据加密。这样,应用程序303的安全生态系统组件101的解密模块427可使用应用程序的自有私用密钥409private来对所述数据进行解密,但没有其他组件能读取所述数据。
已添加到生态系统301的应用程序303的安全生态系统组件101的目录读取模块429使用生态系统名称来定位目录413。应用程序的解密模块427使用提供的全生态系统范围的对称加密密钥409ecosystem来解密代理的公用密钥409public,并使用代理的公用密钥409public来解密目录413。应用程序的目录读取模块429开始从由代理411添加到目录413的应用程序目录记录415读取策略块。应用程序303的安全生态系统组件101的策略执行模块431采用并遵循应用程序的策略块中所指定的策略,其如上所述是企业300所规定的用于应用程序303的默认策略。然后,应用程序303的通信模块424使用来自策略块的后端企业服务器309的地址来联系后端企业服务器309。应用程序303向后端企业服务器309通知应用程序303已经加入了特定计算设备210上的特定的生态系统301。后端企业服务器309可在后端企业服务器309获悉应用程序303已加入生态系统301时,以及根据需要在应用程序303是生态系统301的成员的整个期间持续地,向应用程序303提供任何策略更新或者特定策略指令。响应于接收到来自后端企业服务器309的任何策略指令/更新,应用程序的策略执行模块431相应地采用并遵循更新的策略。
生态系统301内的应用程序303可在它们之间根据企业策略以加密的消息305的形式以及以共享加密对象307的形式安全地共享信息。针对给定应用程序303的通信模块424将安全消息305发送到生态系统301中其他应用程序303中的一者,发送方应用程序303的加密模块425可首先使用接收方应用程序303的公用密钥409public(如从目录413收集的)来加密消息305。然后,接收方应用程序303的解密模块427可使用其自有的只有其具有的私用密钥409private,来解密接收到的消息305。为了将消息305发送到不止一个的其他应用程序303(或者生态系统301中的所有应用程序303),发送方应用程序303可使用其自有私用密钥409private来对消息305进行加密。这样,生态系统301中的任何应用程序303,但不包括生态系统301外部的组件,可从目录413读取发送方应用程序的公用密钥409public并解密消息305。应用程序303的通信模块424可与一个或多个其他生态系统应用程序303在只读基础上共享数据对象307(例如,存储在如SD卡上的文件),在这种情况下共享应用程序的加密模块425可,基于所述其他生态系统应用程序303中的特定一者或多者是否预期能够访问对象307,如上面在对消息305加密的讨论中所述那样来加密对象307。针对将可由除发送方之外的其他应用程序303写入的共享数据对象307,全生态系统范围的对称加密密钥409ecosystem可用于加密对象307。消息305和/或对象307可例如在标头的明码中指示通信级别、加密方法以及用于加密的密钥409。然后,接收方应用程序303可使用该信息来解密并访问有效载荷中的加密内容。在一个实施例中,生态系统应用程序303可通过将数据存储在目录413中的方式共享数据。
应当理解,安全的内部生态系统对象307和消息305可基于常规的介质类型,但是使用上文所述的特定密钥409来加密。因此,如果生态系统应用程序303如同它是在基础的常规媒体类型中那样尝试处理生态系统特定的加密内容,尝试就会失败。这是因为操作系统自动地尝试使用特定的、关联的应用程序来打开给定格式的内容。这些应用程序不是被配置为处理加密数据,而是被配置为处理基础的常规介质类型。因此,对介质类型的“空间”进行管理,以便为由生态系统301内的应用程序303处理其加密版本提供支持。连同至MIME类型的映射、UTI(就iOS而言)以及那些介质类型的加密版本的文件扩展名一起,对支持的介质类型的列表417进行维护。当打开加密的内部生态系统内容时,列表417被安全生态系统组件101用于正确地处理生态系统特定的加密消息305和对象307。
期望通用的常规介质类型能适用由不同供应商编写的应用程序,以及能在不同的企业300或部署下操作的生态系统301内工作。因此,在一个实施例中,安全生态系统组件101的发布者将该列表417例如作为网络服务来发布,授权的第三方供应商和后端企业服务器309可签约该网络服务。软件供应商和企业客户可请求添加到列表417,但这些添加可由安全生态系统组件101的发布者进行调节。这使同一介质类型列表417能够跨企业300和生态系统301部署而一致地使用。
其上驻存有生态系统301的计算设备210的用户可选择从现有的生态系统301中移除应用程序303。为此,在一个实施例中,用户调用代理411,代理411从目录413中移除针对该应用程序303的记录415。在一个实施例中,此类指令还可,或替代地来自企业300,例如来自后端企业服务器309。在一个实施例中,从生态系统移除应用程序303之后,代理411更新全生态系统范围的对称加密密钥409ecosystem及其自有密钥409,并且在一些情况下指导其他生态系统应用程序303更新它们的密钥对409。在应用程序级密钥303被更新的情况下,应用程序303向代理411提供它们的新公用密钥409public,而代理411更新目录413以包含新的应用程序级公用密钥409public。在一些情况下,用户可能只是从计算设备210中删除应用程序303而不是特别地从生态系统301中移除应用程序303。在一个实施例中,生态系统就绪应用程序303被配置为指导代理411来将上述移除功能作为它们的删除处理的一部分而执行。在一些实施例中,代理411周期性地搜索目录413中列出的但已从计算设备210中删除的生态系统应用程序303。针对应用程序303扫描计算设备210的实施技术是平台特定的。例如,在iOS下,代理411可通过使用UIApplication的canOpenURL:方法检查给定应用程序303的存在。在Android下,代理411可定位应用程序303的APK并且验证签名。响应于确定应用程序303已被删除,代理411移除其目录记录415(并且在一些实施例中,执行上述的密钥409处理)。
转到图6,在一些实施例中,计算设备210外部的组件601可为生态系统301的成员以便向生态系统应用程序303提供服务。此类外部组件601的例子是ActiveSync网关603,ActiveSync网关603即时加密和解密电子邮件附件。此类外部组件601的另一个例子是代理服务器605,代理服务器605为发送到和接收自基于云的文件托管服务的内容对象307提供加密/解密服务。此类外部组件601可从后端企业服务器309接收非对称密钥对409,后端企业服务器309仅向与其具有信任关系并因此有资格进入生态系统301的组件601提供密钥409。在一个实施例中,外部组件601提供有单个密钥对409,而在另一个实施例中,外部组件601针对每个要执行的服务均提供有一个密钥对409。当外部组件601在线时,其被授予对其密钥409的访问权限。在一个实施例中,外部组件601负责对后端企业服务器309轮询其策略配置,并周期性地登入后端企业服务器309以检查策略更新。在其他实施例中,此类信息可被例如后端企业服务器309或计算设备210上的代理411主动提供给外部组件601。后端企业服务器309可与计算设备210上的代理411直接交互以将记录415添加到针对每个外部组件601(或者针对由其提供的每项服务)的目录413中。因此,在此类实施例中,用于应用程序303加入生态系统301的上述协议不用于外部组件601。
图7是根据一些实施例的示出了计算机210上应用程序303的安全生态系统301的操作步骤的流程图。目录创建模块403在计算设备210上创建701生态系统目录413,其中生态系统目录413包含针对生态系统301中每个特定应用程序303的条目,该条目包括关于特定应用程序303的策略信息和识别信息。密钥生成模块401为计算机210上每个特定的生态系统就绪应用程序303生成703非对称密钥对309,特定应用程序303只与生态系统301中的应用程序303共享非对称密钥对309中的公用密钥409public,并且特定应用程序303根本不共享非对称密钥对309中的私用密钥409private。通信模块按照企业信息控制策略,通过用合适的生态系统应用程序密钥409加密和解密消息305和数据对象307来在生态系统301中的应用程序303之间安全地传送705消息305和数据对象307,使得消息305和数据对象307在没有生态系统301内部授权的情况下不能从生态系统301外部访问。
如熟悉本领域的技术人员所理解的,在不脱离本发明的精神或实质特征的情况下,本发明可以以其他特定形式来体现。同样地,部分、模块、代理程序、管理器、组件、功能、规程、动作、层、特征、属性、方法论、数据结构和其他方面的具体命名和划分不是强制性的或重要的,并且实施本发明的机制或其特征可具有不同名称、划分和/或格式。出于阐释目的,已参考特定实施例描述了以上说明书。然而,以上示例性讨论并非意图是穷举的或限制为所公开的精确形式。鉴于上述教导,许多修改形式和变型形式都是可能的。为了最好地阐释相关原理及其实际应用,选择并描述了实施例,由此使得本领域其他技术人员最好地利用具有或不具有可适合所设想的具体用途的各种修改形式的各种实施例。

Claims (15)

1.一种用于提供安全生态系统的计算机实现的方法,所述安全生态系统至少包括计算设备上的多个应用程序,其中所述生态系统中的所述应用程序根据企业的信息控制策略安全地交换加密数据,而不允许来自所述生态系统外部的非授权访问,所述方法包括:
由所述计算设备上的生态系统代理创建生态系统目录,所述生态系统目录包含针对所述生态系统中每个特定应用程序的条目,每个条目包含关于所述特定应用程序的策略信息以及关于所述特定应用程序的识别信息,其中所述生态系统代理为所述生态系统中的应用程序;
由所述计算设备上的每个特定生态系统就绪应用程序生成非对称密钥对,所述特定应用程序只与所述生态系统中的应用程序共享所述非对称密钥对中的公用密钥,并且所述特定应用程序根本不共享所述非对称密钥对中的私用密钥;
在所述生态系统中的应用程序之间安全地传送数据,使得所传送的数据在没有所述生态系统内部授权的情况下无法从所述生态系统外部访问;
其中在所述生态系统中的应用程序之间安全地传送数据还包括:由所述生态系统中的提供方应用程序使用第一密钥来加密数据,使得所述生态系统中的至少一个接收方应用程序能够使用第二密钥来解密所述数据;
由第一生态系统应用程序从所述生态系统目录读取第二生态系统应用程序的公用密钥;由所述第一生态系统应用程序使用所述第二生态系统应用程序的所述公用密钥来加密选自包含以下项的组中的至少一个:对消息进行加密以安全地传送到所述第二生态系统应用程序以及对数据对象进行加密以与所述第二生态系统应用程序安全地共享;执行选自包含以下步骤的组中的至少一个:将加密消息从所述第一生态系统应用程序传送到所述第二生态系统应用程序以及由所述第一生态系统应用程序将所加密的数据对象与所述第二生态系统应用程序共享;以及由所述第二生态系统应用程序使用所述第二生态系统应用程序的私用密钥来解密选自包含以下项的组中的至少一个:传送的消息和数据对象;以及
由所述生态系统中的每个特定应用程序遵循企业信息控制策略。
2.根据权利要求1所述的方法,其中创建生态系统目录还包括:
由所述生态系统代理在所述计算设备上的一位置处创建所述生态系统目录,其中所述生态系统目录的位置基于所述生态系统的名称。
3.根据权利要求1所述的方法,其中创建生态系统目录还包括:
由所述生态系统代理使用所述生态系统代理的私用密钥来加密所述生态系统目录,使得需要所述生态系统代理的公用密钥来解密所述生态系统目录。
4.根据权利要求1所述的方法,其中创建生态系统目录还包括:
由所述生态系统代理创建所述生态系统目录,使得所包含的针对所述生态系统中每个特定应用程序的条目至少包括:1)针对所述特定应用程序的策略,2)使所述特定应用程序能够获得策略更新的信息,以及3)关于所述特定应用程序的使所述生态系统中的其他应用程序能够将加密数据安全地传送到所述特定应用程序的信息。
5.根据权利要求1所述的方法,其中创建生态系统目录还包括:
由所述生态系统代理将条目写入到所述生态系统目录,所写入的条目至少包括针对所述生态系统代理的策略、使所述生态系统代理能够获得策略更新的信息以及关于所述生态系统代理的使所述生态系统中的其他应用程序能够将加密数据安全地传送到所述生态系统代理的信息。
6.根据权利要求1所述的方法,还包括:
由所述生态系统代理生成至少一个全生态系统范围的密钥;以及
使用所述至少一个全生态系统范围的密钥来加密和解密所述生态系统的所述应用程序的公用密钥,从而阻止来自所述生态系统外部的对所述生态系统的所述应用程序的所述公用密钥的访问。
7.根据权利要求1所述的方法,其中在所述生态系统中的应用程序之间安全地传送数据还包括:
由所述第一生态系统应用程序使用所述第一生态系统应用程序的私用密钥来对消息进行加密以安全地传送到多个其他生态系统应用程序;
将加密消息从所述第一生态系统应用程序传送到所述多个其他生态系统应用程序;
由所述多个其他生态系统应用程序从所述生态系统目录读取所述第一生态系统应用程序的公用密钥;以及
由所述多个其他生态系统应用程序使用所述第一生态系统应用程序的所述公用密钥来解密所述消息。
8.根据权利要求1所述的方法,其中在所述生态系统中的应用程序之间安全地传送数据还包括:
由所述第一生态系统应用程序使用所述第一生态系统应用程序的私用密钥来对数据对象进行加密以与多个其他生态系统应用程序安全地共享;
由所述第一生态系统应用程序将所加密的数据对象与所述多个其他生态系统应用程序共享;
由所述多个其他生态系统应用程序从所述生态系统目录读取所述第一生态系统应用程序的公用密钥;以及
由所述多个其他生态系统应用程序使用所述第一生态系统应用程序的所述公用密钥来解密所述数据对象。
9.根据权利要求1所述的方法,还包括:
由应用程序使用加入所述生态系统的请求来调用所述生态系统代理;
由所述生态系统代理验证所述调用应用程序的信任状态;以及
响应于将所述调用应用程序成功地验证为被信任加入所述生态系统,由所述生态系统代理将所述调用应用程序添加到所述生态系统。
10.根据权利要求9所述的方法,其中将所述调用应用程序添加到所述生态系统还包括:
由所述生态系统代理将条目写入到所述生态系统目录,所写入的条目至少包括针对所述调用应用程序的策略、使所述调用应用程序能够获得策略更新的信息以及关于所述调用应用程序的使所述生态系统中的其他应用程序能够将加密数据安全地传送到所述调用应用程序的信息;以及
向所述调用应用程序提供所述生态系统代理的公用密钥和所述全生态系统范围的密钥,从而使所述调用应用程序能够使用所述全生态系统范围的密钥解密所述生态系统代理的公用密钥,并使用所述生态系统代理的公用密钥解密所述目录。
11.根据权利要求1所述的方法,其中由所述生态系统中的每个特定应用程序遵循企业信息控制策略还包括:
由所述生态系统中的每个特定应用程序从所述生态系统目录读取针对所述特定应用程序的策略;以及
由所述生态系统中的每个特定应用程序遵循其策略。
12.根据权利要求1所述的方法,其中由所述生态系统中的每个特定应用程序遵循企业信息控制策略还包括:
由至少一个生态系统应用程序接收来自所述企业的至少一个策略更新;以及
由所述至少一个生态系统应用程序遵循从所述企业接收的所述至少一个策略更新。
13.根据权利要求1所述的方法,还包括:
维护基础介质类型与用于基于基础介质类型处理生态系统特定加密格式的内容的功能之间的映射的列表;以及
使用所述列表基于所述基础介质类型正确地处理所述生态系统特定加密格式的生态系统特定加密消息和对象。
14.根据权利要求1所述的方法,还包括:
提供至少一个组件作为所述生态系统的成员,其中所述至少一个组件在所述计算设备的外部并且向生态系统应用程序提供至少一个服务;
由是所述生态系统的成员的每个特定外部组件从所述企业接收至少一个密钥对和策略;以及
由是所述生态系统的成员的每个特定外部组件遵循其策略。
15.一种用于提供至少包括多个移动应用程序的安全生态系统的移动计算设备,其中所述生态系统中的所述移动应用程序根据企业的信息控制策略安全地交换加密数据,而不允许来自所述生态系统外部的非授权访问,所述移动计算机设备包括:
计算机存储器;
至少一个处理器;
驻留在所述计算机存储器中的目录创建模块,其被配置成创建生态系统目录,所述生态系统目录包含针对所述生态系统中每个特定移动应用程序的条目,每个条目包括关于所述特定移动应用程序的策略信息以及关于所述特定移动应用程序的识别信息;
驻留在所述计算机存储器中的密钥生成模块,其被配置成由所述移动计算设备上每个特定生态系统就绪移动应用程序生成非对称密钥对,所述特定移动应用程序只与所述生态系统中的移动应用程序共享所述非对称密钥对中的公用密钥,并且所述特定移动应用程序根本不共享所述非对称密钥对中的私用密钥;
驻留在所述计算机存储器中的通信模块,其被配置成在所述生态系统中的移动应用程序之间安全地传送数据使得所传送的数据在没有所述生态系统内部授权的情况下无法从所述生态系统外部访问;
其中在所述生态系统中的移动应用程序之间安全地传送数据还包括:由所述生态系统中的提供方移动应用程序使用第一密钥来加密数据,使得所述生态系统中至少一个接收方移动应用程序能够使用第二密钥来解密所述数据;由第一生态系统应用程序从所述生态系统目录读取第二生态系统应用程序的公用密钥;由所述第一生态系统应用程序使用所述第二生态系统应用程序的所述公用密钥来加密选自包含以下项的组中的至少一个:对消息进行加密以安全地传送到所述第二生态系统应用程序以及对数据对象进行加密以与所述第二生态系统应用程序安全地共享;执行选自包含以下步骤的组中的至少一个:将加密消息从所述第一生态系统应用程序传送到所述第二生态系统应用程序以及由所述第一生态系统应用程序将所加密的数据对象与所述第二生态系统应用程序共享;以及由所述第二生态系统应用程序使用所述第二生态系统应用程序的私用密钥来解密选自包含以下项的组中的至少一个:传送的消息和数据对象;以及
驻留在所述计算机存储器中的策略遵循模块,其被配置成由所述生态系统中每个特定移动应用程序遵循企业信息控制策略。
CN201380041169.5A 2012-08-29 2013-08-28 根据企业信息控制策略的带有密钥和数据交换的安全应用程序生态系统 Active CN104520805B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/598248 2012-08-29
US13/598,248 US9286477B2 (en) 2012-08-29 2012-08-29 Secure app ecosystem with key and data exchange according to enterprise information control policy
PCT/US2013/056967 WO2014036068A1 (en) 2012-08-29 2013-08-28 Secure app ecosystem with key and data exchange according to enterprise information control policy

Publications (2)

Publication Number Publication Date
CN104520805A CN104520805A (zh) 2015-04-15
CN104520805B true CN104520805B (zh) 2017-08-08

Family

ID=50184273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380041169.5A Active CN104520805B (zh) 2012-08-29 2013-08-28 根据企业信息控制策略的带有密钥和数据交换的安全应用程序生态系统

Country Status (6)

Country Link
US (1) US9286477B2 (zh)
EP (1) EP2891055A4 (zh)
JP (1) JP6009083B2 (zh)
CN (1) CN104520805B (zh)
CA (1) CA2881539C (zh)
WO (1) WO2014036068A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181842A1 (en) 2012-12-21 2014-06-26 Mobile Iron, Inc. Secure mobile app connection bus
US9866382B2 (en) * 2012-12-21 2018-01-09 Mobile Iron, Inc. Secure app-to-app communication
US20140188970A1 (en) * 2012-12-29 2014-07-03 Cloudcar, Inc. System and method enabling service and application roaming
US20140281499A1 (en) * 2013-03-15 2014-09-18 Openpeak Inc. Method and system for enabling communications between unrelated applications
US20150074684A1 (en) * 2013-09-11 2015-03-12 Cellrox, Ltd. Techniques for enabling inter-process communication (ipc) among multiple personas in a mobile technology platform
CN106462541A (zh) * 2014-05-13 2017-02-22 关德 用于管理、共享和组织存储在多项云端服务上的信息的系统和方法
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10171437B2 (en) 2015-04-24 2019-01-01 Oracle International Corporation Techniques for security artifacts management
CN104811454B (zh) * 2015-05-11 2018-01-19 中国电力科学研究院 一种基于门限密码理论的访问控制方法
US10699020B2 (en) 2015-07-02 2020-06-30 Oracle International Corporation Monitoring and alert services and data encryption management
CN106407832B (zh) * 2015-08-03 2021-03-09 阿里巴巴集团控股有限公司 一种用于数据访问控制的方法及设备
US9639708B2 (en) 2015-08-18 2017-05-02 Google Inc. Methods and systems of encrypting file system directories
US11086771B2 (en) * 2015-10-13 2021-08-10 Apptimize Llc Dynamic management and control of test features in native applications
US9588758B1 (en) * 2015-12-18 2017-03-07 International Business Machines Corporation Identifying user managed software modules
US11424931B2 (en) * 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US10044719B2 (en) 2016-01-29 2018-08-07 Zscaler, Inc. Client application based access control in cloud security systems for mobile devices
US10599409B2 (en) 2016-02-02 2020-03-24 Blackberry Limited Application lifecycle operation queueing
US11063980B2 (en) * 2016-02-26 2021-07-13 Fornetix Llc System and method for associating encryption key management policy with device activity
US10596318B2 (en) * 2016-03-31 2020-03-24 Dexcom, Inc. Systems and methods for inter-app communications
US10860723B1 (en) 2016-08-24 2020-12-08 Alertsec, Inc. Encryption compliance verification system
US10652279B1 (en) 2016-08-24 2020-05-12 Alertsec, Inc. Encryption compliance verification system
TWI605358B (zh) * 2016-08-31 2017-11-11 啟碁科技股份有限公司 通訊集線器及其應用程式間的訊息驗證方法
US10956237B2 (en) * 2017-06-02 2021-03-23 Oracle International Corporation Inter-application sharing of business intelligence data
US10708244B2 (en) * 2017-06-07 2020-07-07 Virtual Connect Technologies, Inc. System and method for encryption, storage and transmission of digital information
CN108156143A (zh) * 2017-12-14 2018-06-12 上海格尔安全科技有限公司 基于可信执行环境的Android应用程序之间的安全通信方法
AU2019402884A1 (en) 2018-12-19 2021-07-01 Dexcom, Inc. Intermittent monitoring
US11093628B2 (en) 2019-02-14 2021-08-17 International Business Machines Corporation Cross-domain content-lifecycle management
US11271738B1 (en) * 2020-10-01 2022-03-08 Sap Se Secure, reliable, and decentralized communication in cloud platform

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781663A (en) * 1994-06-30 1998-07-14 Canon Kabushiki Kaisha System for recognizing various input data types
CN101356520A (zh) * 2006-01-06 2009-01-28 微软公司 用于系统管理服务器的对等分发点特征

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781633A (en) * 1996-07-01 1998-07-14 Sun Microsystems, Inc. Capability security for transparent distributed object systems
US20050182966A1 (en) * 2004-02-17 2005-08-18 Duc Pham Secure interprocess communications binding system and methods
KR20080043402A (ko) * 2005-09-08 2008-05-16 샌디스크 코포레이션 미디어 컨텐츠의 보안 저장 및 전달을 위한 이동식 메모리시스템
US20070043667A1 (en) 2005-09-08 2007-02-22 Bahman Qawami Method for secure storage and delivery of media content
DE602006021712D1 (de) * 2006-05-16 2011-06-16 Sap Ag Kontext-sensitivitätsbasierte Kryptographie
US8369526B2 (en) * 2008-02-12 2013-02-05 Discretix Technologies Ltd. Device, system, and method of securely executing applications
US9656092B2 (en) * 2009-05-12 2017-05-23 Chronicmobile, Inc. Methods and systems for managing, controlling and monitoring medical devices via one or more software applications functioning in a secure environment
EP2508014B1 (en) * 2009-12-04 2018-04-04 Telefonaktiebolaget LM Ericsson (publ) Methods, secure element, server, computer programs and computer program products for improved application management
US9064131B2 (en) * 2010-07-28 2015-06-23 Nextlabs, Inc. Protecting documents using policies and encryption
US9147085B2 (en) 2010-09-24 2015-09-29 Blackberry Limited Method for establishing a plurality of modes of operation on a mobile device
US9270490B2 (en) * 2010-10-22 2016-02-23 Sabse Technologies, Inc. Contextual presence system and associated methods
US8359016B2 (en) 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
US8352749B2 (en) * 2010-12-17 2013-01-08 Google Inc. Local trusted services manager for a contactless smart card
US8549656B2 (en) * 2011-02-11 2013-10-01 Mocana Corporation Securing and managing apps on a device
CN103535090B (zh) 2011-02-15 2017-07-07 黑莓有限公司 用于移动设备的身份管理的系统和方法
US9251315B2 (en) * 2011-12-09 2016-02-02 Verizon Patent And Licensing Inc. Security key management based on service packaging
US9436940B2 (en) * 2012-07-09 2016-09-06 Maxim Integrated Products, Inc. Embedded secure element for authentication, storage and transaction within a mobile terminal

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781663A (en) * 1994-06-30 1998-07-14 Canon Kabushiki Kaisha System for recognizing various input data types
CN101356520A (zh) * 2006-01-06 2009-01-28 微软公司 用于系统管理服务器的对等分发点特征

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Good Technology aims to secure BYOD policies;Alastair Stevenson;《http://www.v3.co.uk/v3-uk/news/2192235/good-technology-aims-to-secure-byod-policies》;20120717;第1-2页 *

Also Published As

Publication number Publication date
EP2891055A4 (en) 2016-04-13
US20140068273A1 (en) 2014-03-06
JP2015532054A (ja) 2015-11-05
US9286477B2 (en) 2016-03-15
JP6009083B2 (ja) 2016-10-19
CA2881539A1 (en) 2014-03-06
WO2014036068A1 (en) 2014-03-06
EP2891055A1 (en) 2015-07-08
CA2881539C (en) 2017-10-03
CN104520805A (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
CN104520805B (zh) 根据企业信息控制策略的带有密钥和数据交换的安全应用程序生态系统
US11301575B2 (en) Secure data synchronization
KR101590076B1 (ko) 개인정보 관리 방법
US11855767B2 (en) Methods and systems for distributing encrypted cryptographic data
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
CN103563278B (zh) 保护加密的虚拟硬盘
US9124641B2 (en) System and method for securing the data and information transmitted as email attachments
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
US10397008B2 (en) Management of secret data items used for server authentication
US20130031155A1 (en) Electronic file sharing
KR20060100920A (ko) 웹 서비스를 위한 신뢰되는 제3자 인증
US9276887B2 (en) Systems and methods for managing security certificates through email
US10990692B2 (en) Managing data handling policies
CN101689989A (zh) 创建和确认密码保护文档
KR20220039779A (ko) 강화된 보안 암호화 및 복호화 시스템
US10462113B1 (en) Systems and methods for securing push authentications
CN110268693A (zh) Vnf包签名系统和vnf包签名方法
US9577995B1 (en) Systems and methods for enabling secure communication between endpoints in a distributed computerized infrastructure for establishing a social network
US9571462B1 (en) Extensible personality-based messaging system in a distributed computerized infrastructure for establishing a social network
US9286240B1 (en) Systems and methods for controlling access to content in a distributed computerized infrastructure for establishing a social network
TW201633172A (zh) 內容傳遞的方法
Sharma Enhancing Data Security Using Encryption and Splitting Technique over Multi-Cloud Environment
TW202347354A (zh) 基於區塊鏈的應用共用方法、檔案共用方法、裝置
Арустамов et al. Профессиональный иностранный язык для специалистов в области компьютерной безопасности: учебное пособие
de Oliveira Secure Documents in Collaborative Environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Norton identity protection

Address before: California, USA

Patentee before: Symantec Corp.