CN104145444A - 操作计算设备的方法、计算设备及计算机程序 - Google Patents

操作计算设备的方法、计算设备及计算机程序 Download PDF

Info

Publication number
CN104145444A
CN104145444A CN201380011096.5A CN201380011096A CN104145444A CN 104145444 A CN104145444 A CN 104145444A CN 201380011096 A CN201380011096 A CN 201380011096A CN 104145444 A CN104145444 A CN 104145444A
Authority
CN
China
Prior art keywords
data access
computing equipment
application
access application
container
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
CN201380011096.5A
Other languages
English (en)
Other versions
CN104145444B (zh
Inventor
肖恩·迈克尔·昆兰
凯文·查尔斯·勒曼
哈尼夫·索马尼
彼得·马克西米利安·巴克
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.)
BlackBerry Ltd
Original Assignee
Visto 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 Visto Corp filed Critical Visto Corp
Publication of CN104145444A publication Critical patent/CN104145444A/zh
Application granted granted Critical
Publication of CN104145444B publication Critical patent/CN104145444B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/88Detecting or preventing theft or loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/082Access security using revocation of authorisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/126Anti-theft arrangements, e.g. protection against subscriber identity module [SIM] cloning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Selective Calling Equipment (AREA)

Abstract

在各个数字容器中将数据以加密的形式存储在计算设备上。至少一个数据访问应用程序(116)被存储在计算设备上。计算设备的控制应用程序(114)连接至远程控制中心(400)。来自远程控制中心(400)的命令(410)在所连接的控制应用程序(114)处接收。命令(410)包含就计算设备上存储的至少一个数据访问应用程序(116)和容器中的至少一个而言要采取的动作。命令(410)从所连接的控制应用程序(114)传递至数据访问应用程序(116)或容器,并且数据访问应用程序(116)或容器实现命令(410)。

Description

操作计算设备的方法、计算设备及计算机程序
技术领域
本发明涉及操作计算设备的方法、计算设备及计算机程序。
背景技术
存在许多当存储和/或传输数据时期望或需要加密数据以便主要防止对数据进行未授权访问的情况。已知大量不同的用于加密数据的方法和技术。其中一些利用“容器(container)”概念:数据被加密并“包装(wrapped)”在(数字)容器中,该容器在各种访问策略可以用于控制哪些用户可以访问容器内的(加密)数据并在什么情况下对其进行访问。容器是其规范描述了不同的数据元素和元数据如何共同存在于计算机文件中的元文件格式。用于加密(并相应解密)数据的加密密钥本身可以加密以便进行安全存储,在现有技术中通常通过使用用户输入的密码作为用于此加密的加密密钥。
在某些传输系统上可以以加密的形式发送数据,例如包括无线和有线连接、局域网和广域网、因特网、蜂窝(移动)电话系统等中的一个或多个。数据可以在用户设备之间发送或者可以上传到一些中央服务器或多个服务器,诸如用户的工作场所或从其下载。
然而,加密数据的问题使得用户是容易进行访问的。这是一个特定的问题,其中用户正在使用移动设备,例如包括无线设备(诸如所谓的智能手机或平板电脑等)或包括利用有线连接来连接至网络的设备的相对低的计算功率的其他设备,因为这些设备可以具有相对有限量的存储性和功能性。特定的实例使用户能够具有总体上查看和/或编辑数据或文件的安全方式,或就数据或文件而言实现其他动作,例如包括其他的操纵、转换、处理、存储、传输和其他计算操作。这样的文件可能已经在用户设备处以电子邮件附件的形式或通过一些其他文件传输协议或方法被下载或接收。由于容器可以包含许多文件,因此这会导致一些问题,因为通常存储许多不同类型的文件并且每种不同类型的文件都需要不同的应用程序代码来查看/编辑/操纵等,所以容器应用程序变得更大,其就支持更不相同的类型的文件。期望使加密文件可用于用户设备(诸如查看器/编辑器等)上的第三方应用程序,但是该可用性必须以安全的方式实现,而不危及加密文件的安全性。
在实践中可能产生的另一个问题是用户设备上的安全容器可能需要在某些方面进行实时更新。例如,可能存在管理用户设备和存储在用户设备上的至少一些文件的一些中央控制中心。可能是因为用户设备已经丢失或被盗,中央控制中心例如可能想要修改用于容器中的一个或多个文件的某些访问策略等或删除容器或其内的文件。然而,可能是用户设备上的一些容器从来不会只有效地连接至中央控制中心,因此在实践中难以及时地针对用户设备上关注的所有容器更新访问策略等或删除文件。
产生的另一个问题是如何生成将被用于加密和解密数据的加密密钥的问题。这是一个特定问题,其中存在运行于计算设备上的几个应用程序,其要求以加密的形式访问或存储数据。这包括上述的情况,其中计算设备上存在以加密的形式访问和/或存储数据的几个应用程序(诸如查看器/编辑器等)。每当特定应用程序访问用户设备上的数据时必须输入密码对于用户来说不方便,但出于安全性目的,还优选地不将相同的加密密钥用于每个应用程序。
本发明的各个方面针对克服上文陈述的一个或多个问题。
发明内容
根据本发明的第一方面,提供了一种操作计算设备的方法,计算设备具有在各个数字容器中以加密的形式存储在计算设备上的数据并且具有存储在计算设备上的至少一个数据访问应用程序,该方法包括:将计算设备的控制应用程序连接至远程控制中心;在所述连接的控制应用程序上接收来自所述远程控制中心的命令,该命令包含针对下列各项中的至少一个而要采取的动作:存储在计算设备上的所述至少一个数据访问应用程序和容器;将命令从所述连接的控制应用程序传递至所述数据访问应用程序或容器;以及所述数据访问应用程序或容器实现该命令。
即使这些数据访问应用程序和容器自身不连接至远程控制中心,这方面的实施例的实例也使命令能够及时传递至计算设备上的数据访问应用程序和/或容器。
在实施例中,命令包含就至少一个数据访问应用程序而言要采用的动作,所述方法包括所述控制应用程序使所述数据访问应用程序执行以实现命令。
在实施例中,所述或每个数据访问应用程序不能直接连接至远程控制服务器。例如,如果所述或每个数据访问应用程序将用户认证委托给控制应用程序并且在每个这样的认证交换期间控制应用程序单独向它们代理动作和策略,则使控制应用程序与远程控制中心之间的频繁通信更可能,从而帮助确保动作和策略及时传递至预期目的地。
在实施例中,命令使用加密密钥进行加密。在实施例中,加密密钥是迪菲-赫尔曼密钥交换(Diffie-Hellman key exchange)的共享秘密密钥、通过控制应用程序发送至数据访问应用程序的公共/私有密钥对的公共密钥、或在初始握手期间在控制应用程序与数据访问应用程序之间协商的对称会话密钥。这提供了一种协商加密密钥的安全且方便的方式。另外,为了增加密钥交换的安全性,在为这些标识符提供进程间通信消息的操作系统环境下,每个密钥交换消息可以通过检查消息的源应用程序标识符而被认证为源自期望的应用程序。
在实施例中,数据访问应用程序启用数据的查看、编辑、操纵、转换、处理、存储和传输中的至少一项。
根据本发明的第二方面,提供了一种计算设备,具有在各个数字容器中以加密的形式存储在其上的数据并具有存储在其上的至少一个数据访问应用程序,该计算设备包括构造成并布置成使计算设备进行以下操作的处理系统:将计算设备的控制应用程序连接至远程控制中心;并且将在所述连接的控制应用程序处接收的命令针对以下项中的至少一项而从远程控制中心传递至所述数据访问应用程序或容器:存储在计算设备上的至少一个数据访问应用程序和数字容器,命令包含就所述数据访问应用程序或容器而言要采用的动作;由此所述数据访问应用程序或容器实现命令。
处理系统可以包括至少一个处理器和包括计算机程序代码的至少一个存储器,至少一个存储器和计算机程序代码配置成利用至少一个处理器使计算设备进行如上操作。
根据本发明的第三方面,提供了一种包括代码的计算机程序,该代码使得当计算机程序在具有在各个数字容器中以加密的形式存储在其上的数据并具有存储在其上的至少一个数据访问应用程序的计算设备上执行时,所述计算设备被配置为:将计算设备的控制应用程序连接至远程控制中心;并且将在所述所连接的控制应用程序处接收的命令针对以下项中的至少一项从远程控制中心传递至所述数据访问应用程序或容器:存储在计算设备上的至少一个数据访问应用程序和数字容器,命令包含就所述数据访问应用程序或容器而言要采用的动作;由此所述数据访问应用程序或容器实现命令。
可以提供一种非瞬态计算机可读存储介质,包括其上存储的当由处理系统执行时使处理系统实现如上所述方法的一组计算机可读指令。
本发明的另外的特征和优点根据仅通过实例的方式给出的参照附图做出的本发明的优选实施例的以下描述将变得显而易见。
附图说明
图1示意性地示出了根据且适用于实施本发明的实施例的计算设备的实例的组件;
图2示意性地示出了用于本发明的实施例的网络组件和设备的实例;
图3示意性地示出了获得加密密钥和安全查看器/编辑器应用程序与客户端程序之间最初配对的过程的实例;
图4示意性地示出了经由客户端程序将动作命令从中央控制服务器发送至安全查看器/编辑器应用程序的实例;以及
图5示意性地示出了将文件发送至安全查看器/编辑器应用程序的实例。
具体实施方式
图1示意性地示出了计算设备100的实例的组件。所示的实例是客户端或用户设备100。具体实例是便携式计算设备100,但是本发明的实施例同样适用于非便携式计算设备,例如包括台式计算机、信息亭式计算机等。在任何一种情况下,对于便携式或非便携式计算设备来说,设备100可以经由有线或无线连接或有线和无线连接的组合而连接至一些类型网络。便携式计算设备100可以采用智能手机、个人数字助理(PDA)、电子阅读器、平板电脑或笔记本电脑等的形式。
计算设备100包括可以是能够接收用户输入的触摸屏显示屏102和/或计算设备100可以具有诸如键盘104或一些点设备(未示出)的独立的输入设备,其可以无线地或通过有线连接集成到或连接到计算设备100。计算设备100还包括处理器106、非易失性存储设备108(诸如硬盘驱动器和/或非易失性存储器等)和随机存取存储器(RAM)110。处理器106处理存储在随机存取存储器110中的已经从非易失性存储设备108加载的指令。这些指令呈现计算机软件的形式,所述计算机软件呈现实现操作系统和客户端程序的一个或多个程序的形式。RAM110还被处理器106上运行的程序用作以电子信号的形式存储并访问数据的工具,其中在执行程序期间使用该数据。操作系统提供用于存储、修改并访问非易失性存储设备108中保存的文件的文件系统。该文件系统可经由操作系统提供的程序设计接口访问在处理器106上运行的其他程序。处理器102上运行的程序还经由触摸屏102或键盘104等处理从用户输入获得的用户输入。计算设备100还包括网络接口112(或多个这样的接口),其允许处理器102上运行的程序经由通信网络(或多个这样的网络)、经由有线和/或无线连接至并从其它设备和系统传输和接收数据。
在图2中示意性地示出了可以由计算设备100使用网络接口112做出的通信链接的实例。网络接口112可以包括能够与无线访问节点120通信的无线电访问网络接口,诸如基站或无线访问点的无线访问节点120提供对通信网络130的访问。网络接口112也许能够使用例如包括全球移动通信系统(GSM)、通用移动通信系统(UMTS)、长期演进技术(LTE)及固定的无线访问(诸如IEEE802.16WiMax)及无线联网(诸如IEEE802.11WiFi)的数个无线电访问技术中的一个或多个连接至无线访问节点120。可选地或另外地,网络接口112可以提供诸如经由调制解调器或路由器等至通信网络130的有线连接。通信网络130可以是或可以包括因特网和/或公共陆地移动电话网络(PLMN)和/或公共交换电话网络(PSTN)。
计算客户端设备100可以包括允许经由通信网络130在处理器106上运行的程序与外部装置之间通信的联网程序。可以经由通信网络130进行通信的外部设备可以包括诸如网络操作中心(NOC)140的远程数据处理设备装置。NOC140可以是一个计算机服务器或多个计算机服务器,其可以经由通信网络150与其他远程数据处理设备,诸如连接至企业级网络(未示出)的一个或多个企业级服务器160、162、164通信。通信网络150例如可以是或可以包括因特网、PLMN、PSTN等。通常可以通过放置在通信网络150与企业级网络之间的防火墙170来防止从通信网络150对一个或多个企业级服务器160、162、164和企业级网络的一般访问,使得如果不满足防火墙170执行的标准,则可以监控并(任选地)丢弃在通信网络150与企业级网络之间传递的所有的网络流量。例如,防火墙170可以被配置为只允许NOC140和一个或多个企业级服务器160、162、164之间的网络连接并丢弃从通信网络150至一个或多个企业级服务器160、162、164和/或企业级网络的所有其他网络连接。
为了访问由诸如NOC140的远程数据处理设备和一个或多个企业级服务器160、162、164提供的内容和服务,计算设备100的用户可以使用计算设备100上的客户端程序114。客户端程序114例如可以在用户购买计算设备100之前预加载到计算设备100上或随后由用户下载并安装到计算设备100上。一个或多个企业级服务器160、162、164可以提供对包括存储、发送并接收电子邮件的企业电子邮件服务的企业级服务的访问;存储并检索文件的企业级文件共享服务;访问并修改企业级数据库(或多个数据库)的企业级数据库服务;访问并修改诸如联系人列表、日历、任务列表的个人信息的企业级个人信息管理(PIM)服务;以及其他服务,包括企业级资源规划、客户关系管理、现场/支持力自动化、客户数据内容存储等。这些服务中的每一个可以由一个或多个企业级服务器160、162、164和/或由可以连接至一个或多个企业级服务器160、162、164的企业级网络内的一个或多个其他服务器提供以提供对这些服务的访问。为了访问这些服务,客户端程序114的用户通过用户输入一些识别和认证详情首先由NOC140和/或一个或多个企业级服务器160、162、164来识别并认证。一旦用户输入识别和认证详情,这些详情就可以通过安全(例如,加密)数据连接从计算设备100传输至NOC140,安全(例如,加密)数据连接通过(相对不安全)通信网络130来建立。一旦用户已经通过NOC140识别并认证,客户端程序114就可以保持其与NOC140之间的数据连接以便允许客户端程序114与NOC140之间的通信。该数据连接可以是通过数据通信网络130进行的安全连接并允许数据在计算设备100与一个或多个企业级服务器160、162、164之间发送。因此,NOC140可以充当客户端程序114与一个或多个企业级服务器160、162、164之间的中继器并帮助确保计算设备100与一个或多个企业级服务器160、162、164之间安全的数据传输。客户端程序114与NOC140之间的数据连接还可以用于将从一个或多个企业级服务器160、162、164接收的信息“推动(push)”至计算设备100上运行的应用程序。NOC140的网络接口还可以允许NOC140经由通信网络180(例如包括因特网)与诸如提供其他服务的一个或多个第三方计算机服务器190的其他远程数据处理设备通信。应该注意,当上面的大多数情况被视为用户提供企业级服务的“企业级”服务器时,本发明的实施例广泛应用于客户端设备100的用户通过网络连接至一些远程数据存储器或其他服务器的许多场景。而且,另外,客户端设备100可以在无需经由NOC140,而再次经由有线或无线或有线和无线连接的组合(例如包括经由因特网)连接的情况下直接连接至第三方计算机服务器190。
存储在计算设备100上的至少一些数据(诸如经由NOC140获得的数据)以安全加密的形式存储。如上所述,已知大量不同的加密数据的方法和技术。在本实例中,加密利用可应用于控制哪些用户可以访问容器内的(加密)数据的(数字)容器,其中数据被加密并“包装”在用于各种访问策略的容器中。例如,可以确定访问策略,并且如果需要则由诸如一个或多个企业级服务器160、162、164的管理员的远程用户来改变。访问策略的改变可以经由NOC140通信至计算设备100。
通常,计算设备100将包括就计算设备100上的数据或文件而言允许实现各种动作(例如包括查看、编辑、其他操纵、转换、处理、存储、传输以及其他计算操作)的一个或多个程序或应用程序。为简洁起见,该说明书中讨论的具体实例是包括一个或多个安全查看器/编辑器应用程序116的计算设备100的实例,所述一个或多个安全查看器/编辑器应用程序116可以用于查看和/或编辑以安全的形式存储在计算设备100上的数据,该数据通常以计算机文件的形式存储。然而,将理解,这仅仅是就计算设备100上的数据或文件而言实现动作的应用程序的一个具体实例并且本发明的方面可广泛适用于其他这样的应用程序。一般地说,在一个实例中,其操作如下。应该注意,在实践中,可能存在几个不同的安全查看器/编辑器或安装在计算设备100上的其他应用程序116。然而,再次为了简单起见,以下描述主要考虑只存在一个安全查看器/编辑器应用程序116的情况。
正如下面进一步讨论的,安全查看器/编辑器应用程序116必须从计算设备100上运行的客户端程序114获得数据或文件来访问应用程序密钥以便能够针对此安全查看器/编码器应用程序116解锁以加密的形式存储在计算设备100上的安全存储装置中的文件。从客户端程序114传递至安全查看器/编辑器应用程序116的请求和其他消息被认证为源自客户端程序114。相反,从安全查看器/编辑器应用程序116传递至客户端程序114的请求和其他消息被认证为源自所支持的安全查看器/编辑器应用程序。这些认证可以基于发送请求的请求应用程序或程序的一些标识符。而且,客户端程序114与安全查看器/编辑器应用程序116之间的所有容器间通信(它们是否是对文件进行访问的请求,例如传输文件本身)出于安全性目的都进行加密,例如以停止可以在能够拦截并解释通信、访问文件等的计算设备100上运行的一些“窃听(eavesdropping)”应用程序。(此窃听应用程序可以是设备的操作系统的合法功能,但在数据的安全性至关重要的环境下是不可取的。)为了启用该加密,在一个实施例中,客户端程序114和安全查看器/编辑器应用程序116交换用于后续通信的“容器间传输(Inter-container Transport)”密钥,任选受到密钥转动间隔的影响。客户端程序114随机为每个安全查看器/编辑器应用程序116生成容器间传输密钥并将这些密钥保持在安全存储装置中。因此,如果存在多个安全查看器/编辑器应用程序116,则客户端程序114因此有效地与安全查看器/编辑器应用程序116的每一个分开“配对”,每次配对都具有其自身的密钥。以这种方式,安全查看器/编辑器应用程序116不需要回调客户端程序114以在每个文件/策略推动之后获得容器间传输密钥,而仅当其当前没有在存储器中高速缓存与请求中指示的密钥ID(keyID)匹配的容器间传输密钥时。
应注意,用于共享或获得容器间传输密钥的请求自身不能利用该密钥进行加密。因此,在一个实施例中,使不利用容器间传输密钥进行加密的所有请求是请求对的一部分,其中加密密钥在客户端程序114与安全查看器/编辑器应用程序116之间正在进行(on-the-fly)协商或交换。大量密钥交换方法可以用于该目的。用于此的一个实施例使用“匿名迪菲-赫尔曼密钥交换”算法,但是优选实施例使用更安全的“椭圆曲线迪菲-赫尔曼密钥交换”算法。这些算法只要求从每个端点(在该实例中分别为客户端程序114和安全查看器/编辑器应用程序116)发送一条消息以完成交换。这些迪菲-赫尔曼密钥交换方法本身是已知的并允许之前不了解彼此的两方通过不安全通信信道共同建立共享秘密密钥。该密钥然后用于使用对称密钥密码来加密后续通信。概括地,基本迪菲-赫尔曼密钥交换算法操作如下:
1、艾丽丝和鲍勃同意使用质数p和作为本原根(primitive root)模p的数g。
2、艾丽丝选择秘密整数a,并且然后向鲍勃发送A=ga模p。
3、鲍勃计算s=Ab模p。
4、鲍勃选择秘密整数b,并且然后向艾丽丝发送B=gb模p。
5、艾丽丝计算s=Ba模p。
6、艾丽丝和鲍勃现在共享秘密“s”(给出Ab模p=Ba模p=s)。
该方法的重要优点是需要每个方向上的仅一条消息以便建立共享密钥s,在该实例中,其用于加密随后用于加密客户端程序114与安全查看器/编辑器应用程序116之间的后续通信的容器间传输密钥请求。另外,假设消息如在上文的概述中一样排序,“鲍勃”(即,客户端程序114或安全查看器/编辑器应用程序116,根据情况而定)另外可以包括利用步骤4的消息中的共享秘密s(即,共享加密密钥)加密的数据,其节约了时间,随着发送分开的消息涉及处理以包括交换共享密钥之后的加密数据。应该注意,可以使p和g是公共的。只有a、b和s必须保持秘密。椭圆曲线迪菲-赫尔曼是上文讨论的迪菲-赫尔曼密钥交换算法的变型,其使用椭圆曲线密码学并且根据交换密钥的速度和尺寸一般更安全并且更有效,但使用相同的基本原则和方法进行操作。在该说明书中,这两种方法一般被称为迪菲-赫尔曼密钥交换,除非上下文另外要求。
因此,在这里,如果没有用于加密至并自客户端程序114发送并接收的消息的容器间传输密钥,或当前容器间传输密钥例如已经过期,则在一个实施例中,安全查看器/编辑器应用程序116与客户端程序发起迪菲-赫尔曼密钥交换以便获得共享加密密钥。客户端程序114然后使用此共享加密密钥以加密的形式将容器间传输密钥发送至安全查看器/编辑器应用程序116,此容器间传输密钥用于加密客户端程序114与安全查看器/编辑器应用程序116之间的后续交换。
作为获得如上所述的用于加密至并自客户端程序114发送并接收的消息的容器间传输密钥的选择或补充,安全查看器/编辑器应用程序116(或其他应用程序)和客户端程序114可以分别生成公共/私有密钥对,其中各个公共密钥用于加密应用程序之间发送的后续消息并且各个私有密钥用于签名所述消息,或者其中各个证书用于确保应用程序之间的后续TLS(传输层安全性)连接,如下所述。对于安全查看器/编辑器应用程序116和客户端程序114之间的初始配对来说,每个应用程序将包含其自身公共密钥的证书发送至其他应用程序。在安全查看器/编辑器应用程序116和客户端程序114之间的后续TLS连接期间,发起连接的应用程序通过核实初始握手期间提供的证书与先前从其他应用程序获得的证书匹配来认证其连接的应用程序。类似地,接受传入连接的应用程序通过核实握手期间提供的客户端证书与先前从其他应用程序获得的证书匹配来认证其连接的应用程序。在此情况下,如下面进一步讨论的,对称会话密钥在初始握手期间可以在应用程序之间协商,会话密钥用于加密应用程序之间的后续通信。
安全查看器/编辑器应用程序116优选地依赖客户端程序114认证本地用户,而不直接提示用于客户端密钥以允许其生成访问加密文件的密钥。“单点登录(single-sign-on)”元件允许用户通过在客户端程序114的用户接口输入单个用户选择客户端密码来同时解锁客户端程序114和所有相关联的安全查看器/编辑器应用程序116,这对用户来说更方便。
因此,每当启动或重新启动时,每个安全查看器/编辑器应用程序116从客户端程序114请求其自身的“客户端密码(client password)”或文件访问应用程序密钥以便能够解锁以加密的形式存储在其自身的安全存储装置中的文件。该文件访问应用程序密钥通过客户端程序114具体针对安全查看器/编辑器应用程序116来生成并且例如不匹配被用户用来访问客户端程序114自身的用户选择的密码。当客户端程序114首先从指定的安全查看器/编辑器应用程序116接收此请求时(例如,当安全查看器/编辑器应用程序116首先在计算设备100上启动或开始时),其生成用于应用程序的应用程序密钥并且还存储密钥以供以后获取。如果客户端程序114接收此请求并且已经解锁(即,正在运行并且已经使用用于客户端程序114的用户选择的密码打开),则通过将适当的文件访问应用程序将密钥发送至安全查看器/编辑器应用程序116来做出响应。如果尚未解锁,则客户端程序114提示用户输入用于客户端程序114的用户选择的密码,并且然后在输入正确的用于客户端程序114的用户选择的密码之后,利用此安全查看器/编辑器应用程序116的文件访问应用程序密钥来响应于安全查看器/编辑器应用程序116。与上文一致,对此文件访问应用程序密钥的传输例如使用如上所述的迪菲-赫尔曼密钥交换的共享秘密密钥或公共/私有密钥对的公共密钥进行加密。
一旦安全查看器/编辑器应用程序116从客户端程序114获得其文件访问应用程序密钥,则文件访问应用程序密钥被用于推导出用于加密/解密用于加密/解密计算设备100上的数据的主数据库密钥的密钥。为了重申这一点,为了增加安全性,计算设备100上的数据使用主数据库密钥进行加密,并且此主数据库密钥自身使用用于所述(或此特定)安全查看器/编辑器应用程序116的针对所述(或此特定)安全查看器/编辑器应用程序116以该加密的形式存储在计算设备100上的数据存储器中的文件访问应用程序密钥来进行加密。在需要时,此加密的主密钥可以使用文件访问应用程序密钥由安全查看器/编辑器应用程序116进行访问和解密,使得安全查看器/编辑器应用程序116然后可以解密数据。用于数据自身的加密可以使用任何合适的加密技术。特定适用的实例是例如使用随机的192位密钥作为主数据库密钥的AES-CBC(密码分组链接模式下的高级加密标准密码算法)。
由于安全查看器/编辑器应用程序116取决于用于解锁其自身本地数据存储器的文件访问应用程序密钥的客户端程序114,因此优选的是,文件访问应用程序密钥不单是由客户端程序114随机生成并只存储在客户端程序114的本地数据库中的串。如果是这样的情况,则客户端程序114的卸载/重装通常会导致无法访问先前存储有任何这些查看器/编辑器应用程序116的所有数据。因此,优选的是,文件访问应用程序密钥可远程地并且尤其独立于客户端设备100和客户端程序114回收。
实现这一点的特别有用的方式是使文件访问应用程序密钥可从可以远程地从客户端设备100存储的信息回收。(特定合适的位置例如是上文提及的防火墙170后面的企业级服务器160、162、164中的一个或一些其他远程数据存储器。)另外,由于文件访问应用程序密钥在设备记录从远程数据存储器中删除,然后重新提供客户端设备100的情况下可进行理想回收,因此该文件访问应用程序密钥信息优选存储在与客户端设备100和/或企业级用户ID的唯一ID相关联的记录中的远程数据存储器处。优选进行考虑的另一个因素是安全查看器/编辑器应用程序116首先可以在客户端程序114处于NOC140或其他远程数据存储器的覆盖范围之外时(例如可能因为客户端设备100的网络连接不可用)使用并且在其随后回到覆盖范围之前客户端程序114可以被卸载。因此,恢复安全查看器/编辑器应用程序116的文件访问应用程序密钥优选地不取决于在除客户端程序114初始激活或再激活时之外的任何时候客户端程序114使信息与远程数据存储器同步的能力。
满足要被安全查看器/编辑器应用程序116使用的文件访问应用程序密钥的这些要求的一种方式是通过客户端程序114从特定于客户端设备100和/或客户端设备100的用户的应用程序密钥和所涉及的特定安全查看器/编辑器应用程序的标识符的组合生成文件访问应用程序密钥。参照图3,在详细的具体实例中,其可实现如下。远程数据存储器300(其例如可以是NOC140或一些其他服务器)存储利用服务的每个企业级用户ID的随机24字节的“用户安全查看器/编辑器应用程序密钥”。对于与企业级用户ID相关联的每个激活设备100,即在设备100将激活请求310发送至远程数据存储器之后激活设备100,从用户安全查看器/编辑器应用程序密钥推导出“设备安全查看器/编辑器应用程序密钥”320。该推导例如可以是一些基于密码的加密技术。合适实例是公共密钥加密标准的PKCS#5技术。推导出的设备安全查看器/编辑器应用程序密钥320从远程数据存储器300发送至客户端设备100上的客户端程序114。客户端程序114然后从接收的设备安全查看器/编辑器应用程序密钥320并使用唯一对应于各个安全查看器/编辑器应用程序116并发送至客户端程序114的标识符(诸如数值标识符),例如再次使用PKCS#5技术为客户端设备100上的每个安全查看器/编辑器应用程序116生成(330)文件访问应用程序密钥。这会为每个客户端设备100上的每个安全查看器/编辑器应用程序116产生唯一文件访问应用程序密钥。重要的是,存储在远程数据存储器300处的用户安全查看器/编辑器应用程序密钥的知识足以推导出所有这些文件访问应用程序密钥。然而,一个安全查看器/编辑器应用程序116情况的文件访问应用程序密钥的知识不允许推导出不同情况的文件访问应用程序密钥。因此这提供了安全文件访问应用程序密钥,其可以从远程地从客户端设备100存储的信息中回收并且不披露用于其他安全查看器/编辑器应用程序116的其他文件访问应用程序密钥(无论在相同还是在不同客户端设备100上)。
图3还示意性地示出了用户将安全查看器/编辑器应用程序116初始安装在客户端设备100上并启动(340)。而且,图3还示出了在一个实施例中,对于安全查看器/编辑器应用程序116和客户端程序114之间的初始配对,安全查看器/编辑器应用程序116使用命令(这里是“AUTHORIZEREQ”命令350和“AUTHORIZE_RESP”命令360)来交换然后在如上讨论的椭圆曲线迪菲-赫尔曼密钥交换计算中使用的一对椭圆曲线点。客户端程序114使用响应AUTHORIZE_RESP命令360来使用获得的共享加密密钥以加密的形式将容器间传输密钥发送至安全查看器/编辑器应用程序116。此容器间传输密钥然后被用于加密客户端程序114和安全查看器/编辑器应用程序116之间的后续交换。而且,客户端程序114使用响应AUTHORIZE_RESP命令360来将文件访问应用程序密钥发送至安全查看器/编辑器应用程序116,其使用文件访问应用程序密钥来根据需要加密并解密所加密的主密钥,使得安全查看器/编辑器应用程序116然后可以加密并解密370存储在客户端设备100上的相关数据。如上文注意到的并且如下面更详细讨论的,用于加密从客户端程序114至安全查看器/编辑器应用程序116或从安全查看器/编辑器应用程序116至客户端程序114的交换的加密密钥可以可选地或另外地是分别由客户端程序114和安全查看器/编辑器应用程序116生成的公共/私有密钥对的公共密钥。作为上述另一个实例,加密密钥可以是初始握手过程期间,尤其在客户端程序114与安全查看器/编辑器应用程序116之间的连接是TLS连接的情况下在客户端程序114与安全查看器/编辑器应用程序116之间协商的会话密钥。
在实施例中,客户端程序114支持将各种动作和策略从一些中央控制服务器发送至以安全的形式将文件或数据存储在客户端设备100上的安全查看器/编辑器应用程序116和/或其他应用程序和/或容器。此中央控制服务器例如可以是企业级服务器160、162、164和/或NOC140或一些其他控制服务器之一并管理客户端设备100以及存储在客户端设备100上的至少一些应用程序和文件。中央控制中心例如可能想要修改用于容器中的一个或多个应用程序或文件的某些访问策略等,或删除应用程序或容器或其内的文件,可能是因为用户设备100已经丢失或被盗。这些动作和策略例如因此可以包括擦除(wipe)、停工(lockout)、剪切/粘贴限制策略、认证超时(authentication timeout)、硬件/OS支持等。“停工”是可以发送至客户端设备100以防止对客户端设备100进行访问的消息。“擦除”是可以发送至客户端设备100以导致擦除(即,删除)容器中包含的所有数据的消息。诸如剪切/粘贴限制等限制策略防止用户复制、剪切、粘贴使得经由安全查看器/编辑器应用程序116对用户可访问的数据。“认证超时”发送至每个安全查看器/编辑器应用程序116以指示在与客户端程序114重新进行认证交换之前允许多少空闲时间经过(起然后重新提示用户输入密码)。客户端程序114通常不会将密码复杂性/过期等策略发送至安全查看器/编辑器应用程序116,因为每个安全查看器/编辑器应用程序116的密码的设置由客户端程序114自身处理,如上文讨论的。
在实例中,客户端程序114可以发送利用安全查看器/编辑器应用程序116或所涉及的其他应用程序或容器的相关共享容器间传输密钥加密的策略消息,尤其是如果策略更新被“推动”至安全查看器/编辑器应用程序116或所涉及的其他应用程序或容器。另外,策略消息例如可以使用如上文讨论的迪菲-赫尔曼密钥交换的共享秘密密钥来进行加密,尤其是如果策略更新或消息在认证阶段期间发送。再者,可选地或另外地,用于加密客户端程序114和安全查看器/编辑器应用程序116之间的这些交换的加密密钥可以是分别由客户端程序114和安全查看器/编辑器应用程序116生成的公共/私有密钥对的公共密钥,和/或在应用程序之间协商的作为TLS握手处理的一部分的会话密钥。客户端程序114可以将动作消息(例如,擦除/停工)发送至安全查看器/编辑器应用程序116或所涉及的其他应用程序或数据或文件容器,而不使用传输加密,因为其不包含必须保密的用户特定内容,并且当客户端程序114和安全查看器/编辑器应用程序116或其他应用程序或容器中的任意一个处于锁定状态下时,发送并处理这些消息必须是可能的。在安全查看器/编辑器应用程序116或其他应用程序或容器接收并处理这些消息之后,优选将确认消息发送至客户端程序114,但是这是任选的。要注意,这些动作和策略消息独立于可以从客户端程序114发送至安全查看器/编辑器应用程序116或其他应用程序的任何文件进行发送,所述动作和策略消息有效地在“侧信道(side channel)”中发送。
图4中示意性地示出了这种情况的实例。中央控制中心400将设备擦除命令410发送至客户端设备100上的客户端程序114。客户端程序114利用确认应答(ACK)420做出响应。客户端程序114删除(430)对客户端程序114来说可访问的对应的本地加密数据库。客户端程序114还将对应的擦除命令(WIPE)440发送至对应的安全查看器/编辑器应用程序116,其作为响应发送确认应答(WIPE_ACK)450。安全查看器/编辑器应用程序116然后还删除460与安全查看器/编辑器应用程序116相关联并符合擦除命令的对应的本地加密数据库。
当客户端程序114以这种方式用于代理动作和策略或将其从中央控制服务器传递至安全查看器/编辑器应用程序116或其他应用程序时,优选的是,安全查看器/编辑器应用程序116和其他应用程序都不与中央控制服务器直接连接。反而优选的是,应用程序将用户认证全部委托给客户端程序114并且在每个这样的用户认证交换期间客户端程序114单独向它们代理动作和策略。以这种方式,使客户端程序114与中央控制服务器之间的频繁通信更可能,从而帮助确保动作和策略及时传递至预期安全查看器/编辑器应用程序116或其他应用程序。
为了安全地例如将文件从客户端程序114发送至安全查看器/编辑器应用程序116或将文件从安全查看器/编辑器应用程序116发送至客户端程序114,在不将未加密的信息传输或写入至客户端设备100的存储区域(诸如硬盘或一些其他非瞬态存储装置)的情况下,文件在一些实施例中以安全的方式通过客户端设备100上的“内部”TCP(传输控制协议)套接字进行发送。在苹果(商标)iOS操作系统的环境中这尤其是有用的,因为缺少NSURL(尤其是内存限制)和UIDocumentInteractionController(不能使用加密文件名称)这两者,这些是通常用于允许用户与运行要管理的iOS的设备上的文件交互的处理。
参照图5,在苹果(注册商标)iOS操作系统的环境中使用TCP套接字实现安全套接字传输的实施例的实例操作如下。交换开始于用户选择500需要发送(因为用户希望访问文件等)的文件和该文件的目的地(例如,要用于查看或编辑文件的安全查看器/编辑器应用程序116)。该文件以加密的形式存储在客户端设备100上,其通常可以不同于安全查看器/编辑器应用程序116访问的加密。一旦用户选择文件和目的地应用程序,发送应用程序开始在绑定到随机选择端口的本地IP地址(例如,127.0.0.1)的TCP套接字上进行侦听510。接收安全查看器/编辑器应用程序116一连接至此本地端口,在端口上进行侦听的线程就将开始发送加密文件数据。与此同时,发送应用程序组装其将使用iOS openURL命令发送(520)至接收安全查看器/编辑器应用程序116的STREAM_PUSH命令URL。STREAM_PUSH命令的目的是改变其应用连接至本地端口以接收(加密)文件数据的安全查看器/编辑器应用程序116。STREAM_PUSH命令包含要连接的端口号和发送的文件的名称,这两者都使用容器间传输密钥进行加密。然而,并不是一定需要加密端口号,另外,文件名称相反利用文件数据通过TCP连接发送。加密IV(初始化向量)可以添加到通过TCP连接发送的文件数据前面。安全查看器/编辑器应用程序116接收消息,然后在给定的TCP端口上连接至客户端程序114(在背景中),并且它们建立套接字连接530。仍然在该背景下,客户端程序114然后逐块地将文件解密到存储器中,将文件重新加密成可以由安全查看器/编辑器应用程序116解密的格式,并通过套接字将成块的数据(540)发送至解密、重新加密并写入数据的安全查看器/编辑器应用程序116。该方法避免未加密数据被发送至或写入至客户端设备100的磁盘。
在客户端程序114将文件传输至安全查看器/编辑器应用程序116的实例的环境中讨论上述对文件进行的安全套接字传输。当安全查看器/编辑器应用程序116将文件传输至客户端程序114时,反转过程本质上是适用的。例如如果用户希望发送包含或附有使用安全查看器/编辑器应用程序116查看和/或编辑的文件的电子邮件,或希望保存此文件,则这种情况可能会发生。将文件从安全查看器/编辑器应用程序116发送至客户端程序114,其然后可以保存文件和/或使其发送至或附在电子邮件等上。
更详细地,在客户端设备100运行苹果(注册商标)iOS操作系统的环境下,本发明实施例的具体实例可以操作如下。首先,为了将从客户端程序114传递至安全查看器/编辑器应用程序116的请求认证为源自客户端程序114,并且相反,为了将从安全查看器/编辑器应用程序116传递至客户端程序114的请求认证为源自所支持的安全查看器/编辑器应用程序,检查作为每个请求的“sourceApplication”参数传递的应用程序bundleID。当发送过程进行接收过程的应用程序被注册为处理程序的URL的“openURL”调用时,发送过程的应用程序“bundleID”通过主机操作系统发送至接收过程。保证这些“bundleID”对苹果AppStore提供的应用程序来说是唯一的。因为只有企业提供的或AppStore的应用程序才可以安装在(没有破解的)iOS设备上,该信息可以被用作正在提出请求的应用程序的认证的形式。然后,为了将文件发送至安全查看器/编辑器应用程序116,客户端程序114最初使用iOS UIDocumentInteractionController来向用户呈现接受特定附件的应用程序列表(基于文件类型)。支持文件查看和/或编辑的每个安全查看器/编辑器应用程序116在应用程序的属性列表中注册为与由安全查看器/编辑器应用程序116支持的文件类型对应的文件扩展名的处理程序。例如,为了处理pdf文件,安全查看器/编辑器应用程序116应该注册处理带有扩展名“pdf”的文件。出于安全的原因,客户端程序114实现UIDocumentInteractionControllerDelegate的documentInteractionController:canPerformAction方法以便防止“复制”和“打印”选项出现在“打开方式”对话框中。UIDocumentInteractionController机制也用于将大文件从安全查看器/编辑器应用程序116传输至客户端程序114。客户端程序114在其自身的应用程序属性列表中注册为特定统一类型标识符(UTI)的处理程序。这允许安全查看器/编辑器应用程序116,在实例化UIDocumentInteractionController之后,通过将控制器的UTI设定为特定UTI对其进行配置以便只将文件发送至客户端程序114。控制器仍然需要显示“打开方式”对话框,但对话框只列出客户端程序114(原因是其大概只是支持指定UTI的应用程序)。openURL可以用于所有非文件传输消息并且用于发起上文讨论的TCP STREAM_PUSH通信。另外,可以注意,优选不允许OS使用标准UIDocumentInteractionController机制将文件发送至安全查看器/编辑器应用程序116。反而,一旦用户选择文件的目标应用程序,就进行检查以确定目标应用程序116是否为表明其是安全查看器而不是标准iOS文件查看器的特殊URL的支持刊登广告。如果这样,则取消UIDocumentInteractionController(550)并使用上述本地TCP连接/STREAM_PUSH机制520将文件推动至所选的应用程序116。图5还示出了上文提到的“AUTHORIZE_REQ”命令350以及“AUTHORIZE_RESP”命令360以及存储在客户端设备100上的相关数据的加密和解密370。
正如上面注意到的,可选地或另外地,安全查看器/编辑器应用程序116(或其他应用程序)和客户端程序114可以分别生成公共/私有密钥对,其中各个公共密钥是用于加密应用程序之间的通信的共享加密密钥。对于安全查看器/编辑器应用程序116与客户端程序114之间的初始配对,每个应用程序将包含其自身公共密钥的证书发送至其他应用程序。在一些实施例中,各个公共密钥被用作用于加密应用程序之间的后续通信的共享加密密钥。在这些实施例中,通信的发送者优选签名利用其私有密钥发送的消息。在其他实施例中,通过TCP连接的所有后续通信都可以使用TLS(传输层安全性)确保。在此情况下,公共/私有密钥对分别用于加密/签名安全查看器/编辑器应用程序116(或其他应用程序)和客户端程序114之间的初始握手,在此期间,协商对称“会话”密钥,此会话密钥然后用于批量加密通过连接发送的数据。在这些情况下,在安全查看器/编辑器应用程序116和客户端程序114之间的后续通信期间,发起连接的应用程序通过核实初始TLS握手期间提供的证书与先前从其他应用程序获得的证书匹配来认证其连接的应用程序。类似地,接受传入连接的应用程序通过核实TLS握手期间提供的客户端证书与先前从其他应用程序获得的证书匹配来认证其连接的应用程序。另外,证书的交换也可以使安全查看器/编辑器应用程序116(或其他应用程序)和客户端程序114能够确定是否授权它们彼此交换,例如通过验证这两个证书是否由相同的权威(例如,相同的企业)签名。例如,指定企业可以允许由指定企业激活的应用程序只与针对相同企业激活的应用程序交互。如果证书由不同企业签名,则一个企业或其他的策略可以被实现为防止应用程序交互。对于这种情况和相关事件的进一步讨论,可以参照2012年7月17日提交的共同未决美国专利申请第61/672,457号,其全部内容通过引用并入本文。
尽管参照附图在本文中描述的实施例的至少某些方面包括在处理系统或处理器中执行的计算机处理,但是本发明还扩展到计算机程序,特别是在适于将本发明付诸实践的载体上或其中的计算机程序。程序可以是非瞬态源代码、目标代码、代码中间源代码和目标代码的形式(诸如以部分编译的形式),或者适用于实现根据本发明的处理的任何其他非瞬态形式。载体可以是能够携带程序的任何实体或设备。例如,载体可包括存储介质,诸如固态驱动器(SSD)或其他基于半导体的RAM;ROM(例如CD ROM或半导体ROM);磁记录介质(例如软盘或硬盘);一般的光学存储设备等。
上述实施例应被理解为本发明的说明性实例。可设想本发明的其他实施例。应理解,关于任何一个实施例所描述的任何特征可单独使用或与所描述的其它特征组合,并且还可与任何其他实施例中的一个或多个特征或任何其他实施例的任何组合来组合使用。此外,在不脱离在所附权利要求中所限定的本发明的范围的情况下,也可采用上面未描述的等价物和修改。

Claims (16)

1.一种操作计算设备的方法,所述计算设备具有在各个数字容器中以加密的形式存储在所述计算设备上的数据并且具有存储在所述计算设备上的至少一个数据访问应用程序,所述方法包括:
将所述计算设备的控制应用程序连接至远程控制中心;
在所述连接的控制应用程序上接收来自所述远程控制中心的命令,所述命令包含针对下列各项中的至少一个而要采取的动作:存储在所述计算设备上的所述至少一个数据访问应用程序和所述容器;
将所述命令从所述连接的控制应用程序传递至所述数据访问应用程序或容器;以及
所述数据访问应用程序或容器实现所述命令。
2.根据权利要求1所述的方法,其中,所述命令包含针对所述至少一个数据访问应用程序而要采取的动作,所述方法包括所述控制应用程序使所述数据访问应用程序执行以实现所述命令。
3.根据权利要求1或权利要求2所述的方法,其中,所述或每个数据访问应用程序不能直接连接至远程控制服务器。
4.根据权利要求1至3中任一项所述的方法,其中,利用加密密钥对所述命令进行加密。
5.根据权利要求4所述的方法,其中,所述加密密钥是迪菲-赫尔曼密钥交换的共享秘密密钥、通过所述控制应用程序发送至所述数据访问应用程序的公共/私有密钥对的公共密钥、或在初始握手期间在所述控制应用程序与所述数据访问应用程序之间协商的对称会话密钥。
6.根据权利要求1至5中任一项所述的方法,其中,所述数据访问应用程序启用所述数据的查看、编辑、操纵、转换、处理、存储和传输中的至少一项。
7.一种计算设备,具有在各个数字容器中以加密的形式存储在所述计算设备上的数据并且具有存储在所述计算设备上的至少一个数据访问应用程序,所述计算设备包括处理系统,所述处理系统被构造并配置为导致所述计算设备进行以下操作:
将所述计算设备的控制应用程序连接至远程控制中心;以及
针对以下各项中的至少一项将在所述连接的控制应用程序上接收的来自所述远程控制中心的命令传递至所述数据访问应用程序或容器:存储在所述计算设备上的所述至少一个数据访问应用程序和所述数字容器,所述命令包含针对所述数据访问应用程序或容器而要采取的动作;
由此所述数据访问应用程序或容器实现所述命令。
8.根据权利要求7所述的计算设备,经布置使得在所述命令包含针对所述至少一个数据访问应用程序而要采取动作的情况下,所述控制应用程序使所述数据访问执行以实现所述命令。
9.根据权利要求7或权利要求8所述的计算设备,经布置使得所述或每个数据访问应用程序不能直接连接至所述远程控制服务器。
10.根据权利要求7至10中任一项所述的计算设备,经布置使得利用加密密钥对所述命令进行加密,所述加密密钥是迪菲-赫尔曼密钥交换的共享秘密密钥、通过所述控制应用程序发送至所述数据访问应用程序的公共/私有密钥对的公共密钥、或在初始握手期间在所述控制应用程序与所述数据访问应用程序之间协商的对称会话密钥。
11.根据权利要求7至11中任一项所述的计算设备,其中,所述数据访问应用程序启用所述数据的查看、编辑、操纵、转换、处理、存储和传输中的至少一项。
12.一种包括代码的计算机程序,该代码使得当在具有在各个数字容器中以加密的形式存储在计算设备上的数据并且具有存储在所述计算设备上的至少一个数据访问应用程序的所述计算设备上执行所述计算机程序时,所述计算设备被配置为:
将所述计算设备的控制应用程序连接至远程控制中心;以及
针对以下各项中的至少一项将在所述连接的控制应用程序上接收的来自所述远程控制中心的命令传递至所述数据访问应用程序或容器:存储在所述计算设备上的所述至少一个数据访问应用程序和所述数字容器,所述命令包含针对所述数据访问应用程序或容器而要采取的动作;
由此所述数据访问应用程序或容器实现所述命令。
13.根据权利要求12所述的计算机程序,包括使得在所述命令包含针对所述至少一个数据访问应用程序而要采取动作的情况下,所述控制应用程序使所述数据访问应用程序执行以实现所述命令的代码。
14.根据权利要求12或权利要求13所述的计算机程序,包括使得所述或每个数据访问应用程序不能直接连接至所述远程控制服务器的代码。
15.根据权利要求12至14中任一项所述的计算机程序,包括使得利用加密密钥对所述命令进行加密的代码,所述加密密钥是迪菲-赫尔曼密钥交换的共享秘密密钥、通过所述控制应用程序发送至所述数据访问应用程序的公共/私有密钥对的公共密钥、或在初始握手期间在所述控制应用程序与所述数据访问应用程序之间协商的对称会话密钥。
16.根据权利要求12至15中任一项所述的计算机程序,用于在所述计算设备上执行,其中,所述数据访问应用程序启用所述数据的查看、编辑、操纵、转换、处理、存储和传输中的至少一项。
CN201380011096.5A 2012-02-29 2013-02-27 操作计算设备的方法、计算设备及计算机程序 Active CN104145444B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261604898P 2012-02-29 2012-02-29
US61/604,898 2012-02-29
PCT/US2013/027972 WO2013130568A2 (en) 2012-02-29 2013-02-27 Method of operating a computing device, computing device and computer program

Publications (2)

Publication Number Publication Date
CN104145444A true CN104145444A (zh) 2014-11-12
CN104145444B CN104145444B (zh) 2018-07-06

Family

ID=49004603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380011096.5A Active CN104145444B (zh) 2012-02-29 2013-02-27 操作计算设备的方法、计算设备及计算机程序

Country Status (4)

Country Link
US (1) US9356994B2 (zh)
EP (1) EP2820793B1 (zh)
CN (1) CN104145444B (zh)
WO (1) WO2013130568A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2862116B1 (en) * 2012-06-18 2019-08-07 Microsoft Israel Research and Development (2002) Ltd. System and method to access content of encrypted data items in unsupported digital environments
EP2901347A4 (en) * 2012-09-27 2016-09-14 Apperian Inc CONTROL OF APPLICATIONS ON A REMOTE DEVICE
US20140096213A1 (en) * 2012-09-28 2014-04-03 Kevin Quan Method and system for distributed credential usage for android based and other restricted environment devices
US9143318B1 (en) * 2013-03-11 2015-09-22 Emc Corporation Secure recoverable offline storage of a shared secret
US20140365780A1 (en) * 2013-06-07 2014-12-11 Safa Movassaghi System and methods for one-time password generation on a mobile computing device
US10367814B2 (en) 2014-06-22 2019-07-30 Citrix Systems, Inc. Enabling user entropy encryption in non-compliant mobile applications
EP3191949B1 (en) 2014-09-08 2020-06-10 BlackBerry Limited Shared lock state
CA2959794C (en) 2014-09-08 2023-09-19 Good Technology Holdings Limited Monitoring user activity
EP3234847B1 (en) * 2014-12-15 2019-07-10 BlackBerry Limited Secure storage
US9916458B2 (en) 2015-03-31 2018-03-13 EMC IP Holding Company LLC Secure cloud-based storage of data shared across file system objects and clients
US10191914B2 (en) 2015-03-31 2019-01-29 EMC IP Holding Company LLC De-duplicating distributed file system using cloud-based object store
US10277601B1 (en) * 2015-05-11 2019-04-30 Google Llc System and method for recursive propagating application access control
US20170200225A1 (en) * 2016-01-13 2017-07-13 Itron, Inc. Secure Customer Key Injection for Build-to-Stock Systems
DE102016205321A1 (de) * 2016-03-31 2017-10-05 Siemens Aktiengesellschaft Reduzieren einer Angriffsmöglichkeit auf eine Schwachstelle eines Gerätes über eine Netzwerkzugangsstelle
US11197331B2 (en) * 2016-06-10 2021-12-07 Apple Inc. Zero-round-trip-time connectivity over the wider area network
US10158610B2 (en) * 2016-07-06 2018-12-18 Adp, Llc Secure application communication system
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
US11153315B2 (en) 2019-05-30 2021-10-19 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11138328B2 (en) 2019-05-30 2021-10-05 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11165777B2 (en) 2019-05-30 2021-11-02 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11610012B1 (en) * 2019-11-26 2023-03-21 Gobeep, Inc. Systems and processes for providing secure client controlled and managed exchange of data between parties

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086501A1 (en) * 2002-01-12 2005-04-21 Je-Hak Woo Method and system for the information protection of digital content
US20070033397A1 (en) * 2003-10-20 2007-02-08 Phillips Ii Eugene B Securing digital content system and method
US20090249492A1 (en) * 2006-09-21 2009-10-01 Hans Martin Boesgaard Sorensen Fabrication of computer executable program files from source code
CN101729550A (zh) * 2009-11-09 2010-06-09 西北大学 基于透明加解密的数字内容安全防护系统及加解密方法
CN102254124A (zh) * 2011-07-21 2011-11-23 周亮 一种移动终端信息安全防护系统和方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219423B1 (en) 1995-12-29 2001-04-17 Intel Corporation System and method for digitally signing a digital agreement between remotely located nodes
US6272631B1 (en) 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US6098056A (en) * 1997-11-24 2000-08-01 International Business Machines Corporation System and method for controlling access rights to and security of digital content in a distributed information system, e.g., Internet
US6697489B1 (en) 1999-03-30 2004-02-24 Sony Corporation Method and apparatus for securing control words
US20020047892A1 (en) 2000-05-18 2002-04-25 Gonsalves Charles J. Video messaging and video answering apparatus
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7062656B2 (en) 2002-02-22 2006-06-13 International Busness Machines Corporation Method for providing secure access to information held in a shared respiratory
WO2004019553A1 (ja) 2002-06-19 2004-03-04 Advanced Computer Systems, Inc. 相互認証方法及び装置
US7287269B2 (en) 2002-07-29 2007-10-23 International Buiness Machines Corporation System and method for authenticating and configuring computing devices
US8012219B2 (en) * 2002-08-09 2011-09-06 Visto Corporation System and method for preventing access to data on a compromised remote device
US7302570B2 (en) 2003-08-19 2007-11-27 International Business Machines Corporation Apparatus, system, and method for authorized remote access to a target system
US20050182966A1 (en) 2004-02-17 2005-08-18 Duc Pham Secure interprocess communications binding system and methods
US7591012B2 (en) 2004-03-02 2009-09-15 Microsoft Corporation Dynamic negotiation of encryption protocols
US20060195689A1 (en) 2005-02-28 2006-08-31 Carsten Blecken Authenticated and confidential communication between software components executing in un-trusted environments
CN101203893A (zh) * 2005-05-19 2008-06-18 富森南公司 远程蜂窝电话自动破坏
US20070014403A1 (en) 2005-07-18 2007-01-18 Creative Technology Ltd. Controlling distribution of protected content
CA2553081C (en) 2006-07-24 2015-08-25 Diversinet Corp. A method for binding a security element to a mobile device
EP2122531B1 (en) * 2007-01-19 2014-10-01 BlackBerry Limited Selectively wiping a remote device
US8219821B2 (en) * 2007-03-27 2012-07-10 Netapp, Inc. System and method for signature based data container recognition
US8369526B2 (en) 2008-02-12 2013-02-05 Discretix Technologies Ltd. Device, system, and method of securely executing applications
JP2009258860A (ja) 2008-04-14 2009-11-05 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
US20090262926A1 (en) 2008-04-16 2009-10-22 Infineon Technologies Ag Method and apparatus for generating a cryptographic key
US8781127B2 (en) 2008-09-05 2014-07-15 Vixs Systems, Inc. Device with privileged memory and applications thereof
US8443411B2 (en) * 2008-11-26 2013-05-14 At&T Intellectual Property I, Lp System and method to distribute video-on-demand content
KR101881303B1 (ko) 2011-11-08 2018-08-28 삼성전자주식회사 애플리케이션 데이터 보호를 위한 휴대용 단말기의 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086501A1 (en) * 2002-01-12 2005-04-21 Je-Hak Woo Method and system for the information protection of digital content
US20070033397A1 (en) * 2003-10-20 2007-02-08 Phillips Ii Eugene B Securing digital content system and method
US20090249492A1 (en) * 2006-09-21 2009-10-01 Hans Martin Boesgaard Sorensen Fabrication of computer executable program files from source code
CN101729550A (zh) * 2009-11-09 2010-06-09 西北大学 基于透明加解密的数字内容安全防护系统及加解密方法
CN102254124A (zh) * 2011-07-21 2011-11-23 周亮 一种移动终端信息安全防护系统和方法

Also Published As

Publication number Publication date
WO2013130568A2 (en) 2013-09-06
WO2013130568A3 (en) 2013-11-07
US20130227287A1 (en) 2013-08-29
US9356994B2 (en) 2016-05-31
CN104145444B (zh) 2018-07-06
EP2820793B1 (en) 2018-07-04
EP2820793A2 (en) 2015-01-07
EP2820793A4 (en) 2015-11-18

Similar Documents

Publication Publication Date Title
CN104145444A (zh) 操作计算设备的方法、计算设备及计算机程序
CN104137466A (zh) 操作计算设备的方法、计算设备及计算机程序
CN104145446A (zh) 操作计算设备的方法、计算设备及计算机程序
CA2527718C (en) System, method and computer product for sending encrypted messages to recipients where the sender does not possess the credentials of the recipient
CA2394451C (en) System, method and computer product for delivery and receipt of s/mime-encrypted data
CN105993146A (zh) 不访问私钥而使用公钥密码的安全会话能力
EP2680207A1 (en) Secured cloud data storage, distribution and restoration among multiple devices of a user
US10050944B2 (en) Process to access a data storage device of a cloud computer system with the help of a modified Domain Name System (DNS)
CN103237305B (zh) 面向移动终端上的智能卡密码保护方法
CN105007254A (zh) 数据传输方法和系统、终端
US11621835B2 (en) Relay network for encryption system
US11418340B2 (en) Waterfall request for decryption
CA3165047A1 (en) System and techniques for trans-account device key transfer in benefit denial system
JP6058514B2 (ja) 暗号処理方法、暗号システム、およびサーバ
JP2009515393A (ja) デジタル・データの安全な寄託方法、関連するデジタル・データの復元方法、これらの方法を実施する関連装置、ならびに前記装置を備えるシステム
CN109922042B (zh) 遗失设备的子密钥管理方法和系统
CN112751664A (zh) 一种物联网组网方法、装置和计算机可读存储介质
KR20150034591A (ko) 암호화된 데이터를 재암호화하는 클라우드 서버 및 그것의 재암호화 방법
JP2006197640A (ja) 暗号化データ配信サービスシステム
US20210111876A1 (en) Secure session for decryption
Jacobson The Public Key Muddle–How to Manage Transparent End-to-end Encryption in Organizations
WO2022141157A1 (zh) 一种 Profile 数据的安全传输方法和相应装置
KR101165061B1 (ko) 웹 서비스 사용 허가 시스템 및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170112

Address after: Voight, Canada

Applicant after: Good Technology Holdings Limited

Address before: Delaware

Applicant before: Visto Corp.

TA01 Transfer of patent application right

Effective date of registration: 20180118

Address after: Voight, Ontario, Canada

Applicant after: Blackberry Ltd.

Address before: Voight, Canada

Applicant before: Good Technology Holdings Limited

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant