CN104137466B - 操作计算设备的方法及计算设备 - Google Patents

操作计算设备的方法及计算设备 Download PDF

Info

Publication number
CN104137466B
CN104137466B CN201380011109.9A CN201380011109A CN104137466B CN 104137466 B CN104137466 B CN 104137466B CN 201380011109 A CN201380011109 A CN 201380011109A CN 104137466 B CN104137466 B CN 104137466B
Authority
CN
China
Prior art keywords
data
application program
data access
key
computing device
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
CN201380011109.9A
Other languages
English (en)
Other versions
CN104137466A (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
BlackBerry Ltd
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 BlackBerry Ltd filed Critical BlackBerry Ltd
Publication of CN104137466A publication Critical patent/CN104137466A/zh
Application granted granted Critical
Publication of CN104137466B publication Critical patent/CN104137466B/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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
    • 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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • H04L63/045Network 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 wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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
    • H04L9/3247Cryptographic 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 involving digital signatures

Landscapes

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

Abstract

利用控制应用程序(114)将数据以加密的形式存储在计算设备上。数据访问应用程序(116)请求对数据进行访问。确定数据访问应用程序(116)是否具有可用于控制应用程序(114)的可用共享加密密钥。如果共享加密密钥可用,则共享加密密钥被用于将对数据进行访问的请求加密。如果共享加密密钥不可用,则共享加密密钥与控制应用程序(114)协商并且所协商的共享加密密钥被用于将对数据进行访问的请求加密。控制应用程序(114)接收加密请求,利用共享加密密钥对加的密请求进行解密,并使以加密的形式存储在计算设备上的数据响应于解密请求而可用于数据访问应用程序(116)。

Description

操作计算设备的方法及计算设备
技术领域
本发明涉及操作计算设备的方法、计算设备及计算机程序。
背景技术
存在许多当存储和/或传输数据时期望或需要加密数据以便主要防止对数据进行未授权访问的情况。已知大量不同的用于加密数据的方法和技术。其中一些利用“容器(container)”概念:数据被加密并“包装(wrapped)”在(数字)容器中,该容器在各种访问策略可以用于控制哪些用户可以访问容器内的(加密)数据并在什么情况下对其进行访问。容器是其规范描述了不同的数据元素和元数据如何共同存在于计算机文件中的元文件格式。用于加密(并相应解密)数据的加密密钥本身可以加密以便进行安全存储,在现有技术中通常通过使用用户输入的密码作为用于此加密的加密密钥。
在某些传输***上可以以加密的形式发送数据,例如包括无线和有线连接、局域网和广域网、因特网、蜂窝(移动)电话***等中的一个或多个。数据可以在用户设备之间发送或者可以上传到一些中央服务器或多个服务器,诸如用户的工作场所或从其下载。
然而,加密数据的问题使得用户是容易进行访问的。这是一个特定的问题,其中用户正在使用移动设备,例如包括无线设备(诸如所谓的智能手机或平板电脑等)或包括利用有线连接来连接至网络的设备的相对低的计算功率的其他设备,因为这些设备可以具有相对有限量的存储性和功能性。特定的实例使用户能够具有总体上查看和/或编辑数据或文件的安全方式,或就数据或文件而言实现其他动作,例如包括其他操纵、转换、处理、存储、传输和其他计算操作。这样的文件可能已经在用户设备处以电子邮件附件的形式或通过一些其他文件传输协议或方法被下载或接收。由于容器可以包含许多文件,因此这会导致一些问题,因为通常存储许多不同类型的文件并且每种不同类型的文件都需要不同的应用程序代码来查看/编辑/操纵等,所以容器应用程序变得更大,其就支持更不相同的类型的文件。期望使加密文件可用于用户设备(诸如查看器/编辑器等)上的第三方应用程序,但是该可用性必须以安全的方式实现,而不危及加密文件的安全性。
在实践中可能产生的另一个问题是用户设备上的安全容器可能需要在某些方面进行实时更新。例如,可能存在管理用户设备和存储在用户设备上的至少一些文件的一些中央控制中心。可能是因为用户设备已经丢失或被盗,中央控制中心例如可能想要修改用于容器中的一个或多个文件的某些访问策略等或删除容器或其内的文件。然而,可能是用户设备上的一些容器从来不会只有效地连接至中央控制中心,因此在实践中难以及时地针对用户设备上关注的所有容器更新访问策略等或删除文件。
产生的另一个问题是如何生成将被用于加密和解密数据的加密密钥的问题。这是一个特定问题,其中存在运行于计算设备上的几个应用程序,其要求以加密的形式访问或存储数据。这包括上述的情况,其中计算设备上存在以加密的形式访问和/或存储数据的几个应用程序(诸如查看器/编辑器等)。每当特定应用程序访问用户设备上的数据时必须输入密码对于用户来说不方便,但出于安全性目的,还优选地不将相同的加密密钥用于每个应用程序。
本发明的各个方面针对克服上文陈述的一个或多个问题。
发明内容
根据本发明的第一方面,提供了一种操作计算设备的方法,方法包括:利用控制应用程序将数据以加密的形式存储在计算设备上;利用数据访问应用程序接收访问数据的请求;确定数据访问应用程序是否具有可用于控制应用程序的可用的共享加密密钥;如果数据访问应用程序具有可用于控制应用程序的可用的共享加密密钥,则使用共享加密密钥对访问数据的请求进行加密并且将加密的请求从数据访问应用程序发送至控制应用程序,并且如果数据访问应用程序不具有可用于控制应用程序的可用的共享加密密钥,则与控制应用程序协商共享加密密钥,利用协商的共享加密密钥来对访问数据的请求进行加密并且将加密的请求从数据访问应用程序发送至控制应用程序;以及控制应用程序接收加密的请求,利用共享加密密钥对加密的请求进行解密,并且使以加密的形式存储在计算设备上的数据响应于解密的请求而可用于数据访问应用程序。
这方面的实施例的实例使加密数据以不危及加密文件的安全性但对用户来说方便且不构成破坏的安全方式可用于计算设备诸如用户设备上的数据访问应用程序。
在实施例中,协商加密密钥与控制应用程序使用匿名迪菲-赫尔曼密钥交换(Diffie-Hellman key exchange)算法。这提供了一种协商加密密钥的安全且方便的方式,并在实施例中还允许在早期阶段发送加密数据作为密钥交换过程的一部分。另外,为了增加密钥交换的安全性,在为这些标识符提供进程间通信消息的操作***环境下,每个密钥交换消息可以通过检查消息的源应用程序标识符而被认证为源自期望的应用程序。
在实施例中,协商加密密钥与控制应用程序包括控制应用程序将公共/私有密钥对的公共密钥提供给数据访问应用程序并且数据访问应用程序将公共/私有密钥对的公共密钥提供给控制应用程序。在实施例中,控制应用程序和数据访问应用程序使用它们各自的私有密钥来对发送至另一应用程序的消息进行数字签名。在实施例中,协商加密密钥包括控制应用程序和数据访问应用程序在初始握手期间协商对称会话密钥,对称会话密钥被用作控制应用程序与数据访问应用程序之间的后续通信的加密密钥。
在实施例中,每个应用程序将包含其自身的公共密钥的证书发送至另一应用程序。与这些证书相关联的密钥可以用于加密并签名应用程序之间发送的后续消息。另外,证书可以用于通过使用一个这样的证书作为“客户端”证书并使用其他证书作为后续连接的“服务器证书”来确保两个应用程序之间的后续本地TLS(传输层安全性)连接。在这种情况下,对称会话密钥可以在应用程序之间的初始“握手”期间进行协商,会话密钥用于加密应用程序之间的后续应用程序。证书的交换在支持其的操作***环境中可以通过检查每个证书交换消息源自期望的应用程序来进行认证。可选地或另外,证书可以通过这两个应用程序都与其相关联并且事先与其通信的控制服务器来签名。每个应用程序然后可以验证另一应用程序的证书的签名以核实另一应用程序与公共控制服务器相关联。
在实施例中,数据访问应用程序启用数据的查看、编辑、操纵、转换、处理、存储和传输中的至少一项。
在实施例中,将以加密的形式存储在计算设备上的数据存储在数字容器中。
在实施例中,使以加密的形式存储在计算设备上的数据可用于数据访问应用程序包括:控制应用程序将数据访问应用程序密钥提供给数据访问应用程序,数据访问应用程序通过利用数据访问应用程序密钥对以加密的形式存储在计算设备上的数据进行解密。
在实施例中,通过控制应用程序利用迪菲-赫尔曼密钥交换的共享秘密密钥以加密的形式提供数据访问应用程序密钥。
在实施例中,通过数据访问应用程序使用数据访问应用程序密钥来解密被用于加密数据的密钥以使数据访问应用程序能够解密数据。
根据本发明的第二方面,提供了一种包括处理***的计算设备,处理***被构造并配置为使计算设备进行以下操作:利用控制应用程序将数据以加密的形式存储在计算设备上;确定数据访问应用程序是否具有可用于所述控制应用程序的可用的共享加密密钥,其中,使用所述数据访问应用程序访问所述数据的请求已经被接收;如果数据访问应用程序具有可用于控制应用程序的可用的共享加密密钥,则使用共享加密密钥对访问数据的请求进行加密并且将加密的请求从数据访问应用程序发送至控制应用程序,并且如果数据访问应用程序不具有可用于控制应用程序的可用的共享加密密钥,则与控制应用程序协商共享加密密钥,利用协商的共享加密密钥来对访问数据的请求进行加密并且将加密的请求从数据访问应用程序发送至控制应用程序;以及使所述控制应用程序在收到所述加密的请求时利用所述共享加密密钥对所述加密的请求进行解密,并且使以加密的形式存储在计算设备上的数据响应于解密的请求而可用于数据访问应用程序。
上述处理***可以包括至少一个处理器和包括计算机程序代码的至少一个存储器,至少一个存储器和计算机程序代码配置为利用至少一个处理器使计算设备进行如上操作。
根据本发明的第三方面,提供了一种包括代码的计算机程序,使得当在计算设备上执行计算机程序时,计算设备被配置为:利用控制应用程序将数据以加密的形式存储在计算设备上;确定数据访问应用程序是否具有可用于所述控制应用程序的可用的共享加密密钥,其中,使用所述数据访问应用程序访问所述数据的请求已经被接收;如果数据访问应用程序具有可用于控制应用程序的可用的共享加密密钥,则使用共享加密密钥对访问数据的请求进行加密并且将加密的请求从数据访问应用程序发送至控制应用程序,并且如果数据访问应用程序不具有可用于控制应用程序的可用的共享加密密钥,则与控制应用程序协商共享加密密钥,利用协商的共享加密密钥来对访问数据的请求进行加密并且将加密的请求从数据访问应用程序发送至控制应用程序;以及使所述控制应用程序在收到所述加密的请求时利用所述共享加密密钥对所述加密的请求进行解密,并且使以加密的形式存储在计算设备上的数据响应于解密的请求而可用于数据访问应用程序。
可以提供一种非瞬态计算机可读存储介质,包括其上存储的当由处理***执行时使处理***实现如上所述方法的一组计算机可读指令。
本发明的另外的特征和优点根据仅通过实例的方式给出的参照附图做出的本发明的优选实施例的以下描述将变得显而易见。
附图说明
图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加载的指令。这些指令呈现计算机软件的形式,所述计算机软件呈现实现操作***和客户端程序的一个或多个程序的形式。RAM 110还被处理器106上运行的程序用作以电子信号的形式存储并访问数据的工具,其中在执行程序期间使用该数据。操作***提供用于存储、修改并访问非易失性存储设备108中保存的文件的文件***。该文件***可经由操作***提供的程序设计接口访问在处理器106上运行的其他程序。处理器102上运行的程序还经由触摸屏102或键盘104等处理从用户输入获得的用户输入。计算设备100还包括网络接口112(或多个这样的接口),其允许处理器102上运行的程序经由通信网络(或多个这样的网络)、经由有线和/或无线连接至并从其它设备和***传输和接收数据。
在图2中示意性地示出了可以由计算设备100使用网络接口112做出的通信链接的实例。网络接口112可以包括能够与无线访问节点120通信的无线电访问网络接口,诸如基站或无线访问点的无线访问节点120提供对通信网络130的访问。网络接口112也许能够使用例如包括全球移动通信***(GSM)、通用移动通信***(UMTS)、长期演进技术(LTE)及固定的无线访问(诸如IEEE 802.16 WiMax)及无线联网(诸如IEEE 802.11 WiFi)的数个无线电访问技术中的一个或多个连接至无线访问节点120。可选地或另外地,网络接口112可以提供诸如经由调制解调器或路由器等至通信网络130的有线连接。通信网络130可以是或可以包括因特网和/或公共陆地移动电话网络(PLMN)和/或公共交换电话网络(PSTN)。
计算客户端设备100可以包括允许经由通信网络130在处理器106上运行的程序与外部装置之间通信的联网程序。可以经由通信网络130进行通信的外部设备可以包括诸如网络操作中心(NOC)140的远程数据处理设备装置。NOC 140可以是一个计算机服务器或多个计算机服务器,其可以经由通信网络150与其他远程数据处理设备,诸如连接至企业级网络(未示出)的一个或多个企业级服务器160、162、164通信。通信网络150例如可以是或可以包括因特网、PLMN、PSTN等。通常可以通过放置在通信网络150与企业级网络之间的防火墙170来防止从通信网络150对一个或多个企业级服务器160、162、164和企业级网络的一般访问,使得如果不满足防火墙170执行的标准,则可以监控并(任选地)丢弃在通信网络150与企业级网络之间传递的所有的网络流量。例如,防火墙170可以被配置为只允许NOC 140和一个或多个企业级服务器160、162、164之间的网络连接并丢弃从通信网络150至一个或多个企业级服务器160、162、164和/或企业级网络的所有其他网络连接。
为了访问由诸如NOC 140的远程数据处理设备和一个或多个企业级服务器160、162、164提供的内容和服务,计算设备100的用户可以使用计算设备100上的客户端程序114。客户端程序114例如可以在用户购买计算设备100之前预加载到计算设备100上或随后由用户下载并安装到计算设备100上。一个或多个企业级服务器160、162、164可以提供对包括存储、发送并接收电子邮件的企业电子邮件服务的企业级服务的访问;存储并检索文件的企业级文件共享服务;访问并修改企业级数据库(或多个数据库)的企业级数据库服务;访问并修改诸如联系人列表、日历、任务列表的个人信息的企业级个人信息管理(PIM)服务;以及其他服务,包括企业级资源规划、客户关系管理、现场/支持力自动化、客户数据内容存储等。这些服务中的每一个可以由一个或多个企业级服务器160、162、164和/或由可以连接至一个或多个企业级服务器160、162、164的企业级网络内的一个或多个其他服务器提供以提供对这些服务的访问。为了访问这些服务,客户端程序114的用户通过用户输入一些识别和认证详情首先由NOC 140和/或一个或多个企业级服务器160、162、164来识别并认证。一旦用户输入识别和认证详情,这些详情就可以通过安全(例如,加密)数据连接从计算设备100传输至NOC 140,安全(例如,加密)数据连接通过(相对不安全)通信网络130来建立。一旦用户已经通过NOC 140识别并认证,客户端程序114就可以保持其与NOC 140之间的数据连接以便允许客户端程序114与NOC 140之间的通信。该数据连接可以是通过数据通信网络130进行的安全连接并允许数据在计算设备100与一个或多个企业级服务器160、162、164之间发送。因此,NOC 140可以充当客户端程序114与一个或多个企业级服务器160、162、164之间的中继器并帮助确保计算设备100与一个或多个企业级服务器160、162、164之间安全的数据传输。客户端程序114与NOC 140之间的数据连接还可以用于将从一个或多个企业级服务器160、162、164接收的信息“推动(push)”至计算设备100上运行的应用程序。NOC140的网络接口还可以允许NOC 140经由通信网络180(例如包括因特网)与诸如提供其他服务的一个或多个第三方计算机服务器190的其他远程数据处理设备通信。应该注意,当上面的大多数情况被视为用户提供企业级服务的“企业级”服务器时,本发明的实施例广泛应用于客户端设备100的用户通过网络连接至一些远程数据存储器或其他服务器的许多场景。而且,另外,客户端设备100可以在无需经由NOC 140,而再次经由有线或无线或有线和无线连接的组合(例如包括经由因特网)连接的情况下直接连接至第三方计算机服务器190。
存储在计算设备100上的至少一些数据(诸如经由NOC 140获得的数据)以安全加密的形式存储。如上所述,已知大量不同的加密数据的方法和技术。在本实例中,加密利用可应用于控制哪些用户可以访问容器内的(加密)数据的(数字)容器,其中数据被加密并“包装”在用于各种访问策略的容器中。例如,可以确定访问策略,并且如果需要则由诸如一个或多个企业级服务器160、162、164的管理员的远程用户来改变。访问策略的改变可以经由NOC 140通信至计算设备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处于NOC 140或其他远程数据存储器的覆盖范围之外时(例如可能因为客户端设备100的网络连接不可用)使用并且在其随后回到覆盖范围之前客户端程序114可以被卸载。因此,恢复安全查看器/编辑器应用程序116的文件访问应用程序密钥优选地不取决于在除客户端程序114初始激活或再激活时之外的任何时候客户端程序114使信息与远程数据存储器同步的能力。
满足要被安全查看器/编辑器应用程序116使用的文件访问应用程序密钥的这些要求的一种方式是通过客户端程序114从特定于客户端设备100和/或客户端设备100的用户的应用程序密钥和所涉及的特定安全查看器/编辑器应用程序的标识符的组合生成文件访问应用程序密钥。参照图3,在详细的具体实例中,其可实现如下。远程数据存储器300(其例如可以是NOC 140或一些其他服务器)存储利用服务的每个企业级用户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使用命令(这里是“AUTHORIZE REQ”命令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和/或NOC 140或一些其他控制服务器之一并管理客户端设备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最初使用iOSUIDocumentInteractionController来向用户呈现接受特定附件的应用程序列表(基于文件类型)。支持文件查看和/或编辑的每个安全查看器/编辑器应用程序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 (20)

1.一种操作计算设备的方法,所述方法包括:
利用所述计算设备上运行的控制应用程序将数据以加密的形式存储在所述计算设备上;
接收利用所述计算设备上运行的数据访问应用程序访问所述数据的请求;
确定所述数据访问应用程序是否具有可用于所述控制应用程序的可用的共享加密密钥;
如果所述数据访问应用程序具有可用于所述控制应用程序的可用的共享加密密钥,则使用所述共享加密密钥对访问所述数据的请求进行加密并且将经过加密的请求从所述数据访问应用程序发送至所述控制应用程序,并且
如果所述数据访问应用程序不具有可用于所述控制应用程序的可用的共享加密密钥,则使得所述数据访问应用程序与所述控制应用程序协商共享加密密钥,利用协商的共享加密密钥来对访问所述数据的请求进行加密并且将经过加密的请求从所述数据访问应用程序发送至所述控制应用程序;以及
使所述控制应用程序接收所述经过加密的请求,利用所述共享加密密钥对所述经过加密的请求进行解密,并且响应于经过解密的请求使以加密的形式存储在所述计算设备上的所述数据可用于所述数据访问应用程序,
其中,使得所述数据访问应用程序通过以下操作与所述控制应用程序协商共享加密密钥:
所述数据访问应用程序向所述控制应用程序发送第一消息;
所述控制应用程序向所述数据访问应用程序发送第二消息;
所述数据访问应用程序和所述控制应用程序分别至少部分地基于所述第一消息和所述第二消息导出所述共享加密密钥。
2.根据权利要求1所述的方法,其中,使用匿名迪菲-赫尔曼密钥交换算法与所述控制应用程序协商加密密钥。
3.根据权利要求1所述的方法,其中,与所述控制应用程序协商加密密钥包括所述控制应用程序将公共/私有密钥对的公共密钥提供给所述数据访问应用程序并且所述数据访问应用程序将公共/私有密钥对的公共密钥提供给所述控制应用程序。
4.根据权利要求3所述的方法,其中,所述控制应用程序和所述数据访问应用程序使用它们各自的私有密钥来对发送至另一应用程序的消息进行数字签名。
5.根据权利要求3或权利要求4所述的方法,其中,协商所述加密密钥包括所述控制应用程序和所述数据访问应用程序在初始握手期间协商对称会话密钥,所述对称会话密钥被用作用于所述控制应用程序与所述数据访问应用程序之间的后续通信的所述加密密钥。
6.根据权利要求1所述的方法,其中,所述数据访问应用程序启用所述数据的查看、编辑、操纵、转换、处理、存储和传输中的至少一项。
7.根据权利要求1所述的方法,其中,将以加密的形式存储在所述计算设备上的所述数据存储在数字容器中。
8.根据权利要求1所述的方法,其中,使以加密的形式存储在所述计算设备上的所述数据可用于所述数据访问应用程序包括:
所述控制应用程序将数据访问应用程序密钥提供给所述数据访问应用程序,所述数据访问应用程序通过利用所述数据访问应用程序密钥对以加密的形式存储在所述计算设备上的所述数据进行解密。
9.根据权利要求8所述的方法,其中,通过所述控制应用程序利用迪菲-赫尔曼密钥交换的共享秘密密钥以加密的形式提供所述数据访问应用程序密钥。
10.根据权利要求8或权利要求9所述的方法,其中,通过所述数据访问应用程序使用所述数据访问应用程序密钥来解密被用于加密所述数据的密钥以使所述数据访问应用程序能够解密所述数据。
11.一种包括处理***的计算设备,所述处理***被构造并配置为执行计算机指令以使所述计算设备进行以下操作:
利用所述计算设备上运行的控制应用程序将数据以加密的形式存储在所述计算设备上;
接收利用所述计算设备上运行的数据访问应用程序访问所述数据的请求;
确定所述数据访问应用程序是否具有可用于所述控制应用程序的可用的共享加密密钥;
如果所述数据访问应用程序具有可用于所述控制应用程序的可用的共享加密密钥,则使用所述共享加密密钥对访问所述数据的请求进行加密并且将经过加密的请求从所述数据访问应用程序发送至所述控制应用程序,并且
如果所述数据访问应用程序不具有可用于所述控制应用程序的可用的共享加密密钥,则使得所述数据访问应用程序与所述控制应用程序协商共享加密密钥,利用协商的共享加密密钥来对访问所述数据的请求进行加密并且将经过加密的请求从所述数据访问应用程序发送至所述控制应用程序;以及
使所述控制应用程序在收到所述经过加密的请求时利用所述共享加密密钥对所述经过加密的请求进行解密,并且响应于经过解密的请求使以加密的形式存储在所述计算设备上的所述数据可用于所述数据访问应用程序,
其中,使得所述数据访问应用程序通过以下操作与所述控制应用程序协商共享加密密钥:
所述数据访问应用程序向所述控制应用程序发送第一消息;
所述控制应用程序向所述数据访问应用程序发送第二消息;
所述数据访问应用程序和所述控制应用程序分别至少部分地基于所述第一消息和所述第二消息导出所述共享加密密钥。
12.根据权利要求11所述的计算设备,经配置使得使用匿名迪菲-赫尔曼密钥交换算法与所述控制应用程序协商加密密钥。
13.根据权利要求11所述的计算设备,经配置使得与所述控制应用程序协商加密密钥包括所述控制应用程序将公共/私有密钥对的公共密钥提供给所述数据访问应用程序并且所述数据访问应用程序将公共/私有密钥对的公共密钥提供给所述控制应用程序。
14.根据权利要求13所述的计算设备,经配置使得所述控制应用程序和所述数据访问应用程序使用它们各自的私有密钥来对发送至另一应用程序的消息进行数字签名。
15.根据权利要求13或权利要求14所述的计算设备,经配置使得协商所述加密密钥包括所述控制应用程序和所述数据访问应用程序在初始握手期间协商对称会话密钥,所述对称会话密钥被用作用于所述控制应用程序与所述数据访问应用程序之间的后续通信的所述加密密钥。
16.根据权利要求11所述的计算设备,其中,所述数据访问应用程序启用所述数据的查看、编辑、操纵、转换、处理、存储和传输中的至少一项。
17.根据权利要求11所述的计算设备,其中,将以加密的形式存储在所述计算设备上的所述数据存储在数字容器中。
18.根据权利要求11所述的计算设备,经配置使得通过所述控制应用程序将数据访问应用程序密钥提供给所述数据访问应用程序而使以加密的形式存储在所述计算设备上的所述数据可用于所述数据访问应用程序,所述数据访问应用程序通过利用所述数据访问应用程序密钥对以加密的形式存储在所述计算设备上的所述数据进行解密。
19.根据权利要求18所述的计算设备,其中,通过所述控制应用程序利用迪菲-赫尔曼密钥交换的共享秘密密钥以加密的形式提供所述数据访问应用程序密钥。
20.根据权利要求18或权利要求19所述的计算设备,经配置使得通过所述数据访问应用程序使用所述数据访问应用程序密钥来解密被用于加密所述数据的密钥以使所述数据访问应用程序能够解密所述数据。
CN201380011109.9A 2012-02-29 2013-02-27 操作计算设备的方法及计算设备 Active CN104137466B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261604894P 2012-02-29 2012-02-29
US61/604,894 2012-02-29
PCT/US2013/027954 WO2013130555A2 (en) 2012-02-29 2013-02-27 Method of operating a computing device, computing device and computer program

Publications (2)

Publication Number Publication Date
CN104137466A CN104137466A (zh) 2014-11-05
CN104137466B true CN104137466B (zh) 2018-03-30

Family

ID=49004599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380011109.9A Active CN104137466B (zh) 2012-02-29 2013-02-27 操作计算设备的方法及计算设备

Country Status (4)

Country Link
US (1) US9385996B2 (zh)
EP (1) EP2820792B1 (zh)
CN (1) CN104137466B (zh)
WO (1) WO2013130555A2 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8955067B2 (en) 2012-09-12 2015-02-10 Capital One, Na System and method for providing controlled application programming interface security
US9400801B1 (en) 2013-02-07 2016-07-26 Parallels IP Holdings GmbH System and method for local file management and editing utilizing remote applications
US9350714B2 (en) * 2013-11-19 2016-05-24 Globalfoundries Inc. Data encryption at the client and server level
US9729520B2 (en) * 2014-05-05 2017-08-08 Citrix Systems, Inc. Facilitating communication between mobile applications
US9760704B2 (en) * 2014-05-23 2017-09-12 Blackberry Limited Security apparatus session sharing
CA2959794C (en) 2014-09-08 2023-09-19 Good Technology Holdings Limited Monitoring user activity
US10838761B2 (en) 2014-09-08 2020-11-17 Blackberry Limited Shared lock state
WO2016100095A1 (en) * 2014-12-15 2016-06-23 Good Technology Corporation Secure storage
US10033704B2 (en) * 2015-11-29 2018-07-24 International Business Machines Corporation Securing enterprise data on mobile devices
US10038551B2 (en) * 2015-11-29 2018-07-31 International Business Machines Corporation Securing enterprise data on mobile devices
US20170163607A1 (en) * 2015-12-03 2017-06-08 Microsoft Technology Licensing, Llc Establishing a Communication Event Using Secure Signalling
US9733992B1 (en) * 2016-05-27 2017-08-15 Huawei Technologies Co., Ltd. Inter-process communication between containers
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
US10985915B2 (en) * 2017-04-12 2021-04-20 Blackberry Limited Encrypting data in a pre-associated state
CA3141024A1 (en) * 2019-07-12 2021-01-21 Joshua Vedell Data protection and recovery systems and methods
SG10201906806XA (en) * 2019-07-23 2021-02-25 Mastercard International Inc Methods and computing devices for auto-submission of user authentication credential
FR3103987A1 (fr) * 2019-11-29 2021-06-04 Sagemcom Broadband Sas Procede de securisation de flux de donnees entre un equipement de communication et un terminal distant, equipement mettant en oeuvre le procede
US11777720B2 (en) * 2020-06-12 2023-10-03 Nagravision Sàrl Distributed anonymized compliant encryption management system
CN112199713B (zh) * 2020-12-03 2021-03-16 成都中科大旗软件股份有限公司 一种ios***软件运行算法的混淆加密方法
US11968296B2 (en) 2021-03-09 2024-04-23 Micron Technology, Inc. Utilization of a memory device for per-user encryption
US20240176876A1 (en) * 2022-11-30 2024-05-30 Island Technology, Inc. Kernel-based protection of computer processes

Family Cites Families (28)

* 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
EP1470497A1 (en) 2002-01-12 2004-10-27 Coretrust, Inc. Method and system for the information protection of digital content
US7062656B2 (en) * 2002-02-22 2006-06-13 International Busness Machines Corporation Method for providing secure access to information held in a shared respiratory
US20060143453A1 (en) * 2002-06-19 2006-06-29 Secured Communications, Inc Inter-authentication method and device
US7287269B2 (en) * 2002-07-29 2007-10-23 International Buiness Machines Corporation System and method for authenticating and configuring computing devices
CN100380337C (zh) 2002-08-09 2008-04-09 威斯托公司 用于阻止访问被破解的远程设备上的数据的***和方法
US7302570B2 (en) 2003-08-19 2007-11-27 International Business Machines Corporation Apparatus, system, and method for authorized remote access to a target system
WO2005043802A1 (en) * 2003-10-20 2005-05-12 Drm Technologies, Llc Securing digital content system and method
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
WO2006125112A2 (en) 2005-05-19 2006-11-23 Fusionone, Inc. Remote cell phone auto destruct
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
US20090249492A1 (en) * 2006-09-21 2009-10-01 Hans Martin Boesgaard Sorensen Fabrication of computer executable program files from source code
CA2676289C (en) 2007-01-19 2018-01-02 Research In Motion 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 삼성전자주식회사 애플리케이션 데이터 보호를 위한 휴대용 단말기의 장치 및 방법

Also Published As

Publication number Publication date
US9385996B2 (en) 2016-07-05
US20130227279A1 (en) 2013-08-29
EP2820792A2 (en) 2015-01-07
WO2013130555A3 (en) 2013-12-19
EP2820792B1 (en) 2019-06-12
EP2820792A4 (en) 2015-11-11
WO2013130555A2 (en) 2013-09-06
CN104137466A (zh) 2014-11-05

Similar Documents

Publication Publication Date Title
CN104137466B (zh) 操作计算设备的方法及计算设备
CN104145444B (zh) 操作计算设备的方法、计算设备及计算机程序
CN104145446B (zh) 操作计算设备的方法、计算设备及计算机程序
JP6609010B2 (ja) 複数許可データセキュリティ及びアクセス
CN110535833B (zh) 一种基于区块链的数据共享控制方法
CN105027107B (zh) 迁移计算资源的计算机实现的方法及计算***
US11675922B2 (en) Secure storage of and access to files through a web application
US20140282840A1 (en) Managing data handling policies
KR20140093716A (ko) 컴퓨팅 장치를 보안화하는 방법
US10990692B2 (en) Managing data handling policies
CN103841113A (zh) 一种基于用户模式文件***的安全网络文件***
KR20220039779A (ko) 강화된 보안 암호화 및 복호화 시스템
WO2019083379A1 (en) DATA TRANSMISSION
JP5678150B2 (ja) ユーザ端末、鍵管理システム、及びプログラム
CN108494724A (zh) 基于多授权机构属性加密算法的云存储加密***及方法
JP2015138336A (ja) 電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体
US20140282838A1 (en) Managing data handling policies
JP6778033B2 (ja) 持ち出しファイル簡易暗号化システムおよび持ち出しファイル簡易暗号化プログラム

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: 20170116

Address after: Voight, Canada

Applicant after: Good Technology Holdings Limited

Address before: Delaware

Applicant before: Visto Corp.

TA01 Transfer of patent application right
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

GR01 Patent grant
GR01 Patent grant