CN105379223B - 管理对企业资源的访问的方法和装置 - Google Patents

管理对企业资源的访问的方法和装置 Download PDF

Info

Publication number
CN105379223B
CN105379223B CN201480038881.4A CN201480038881A CN105379223B CN 105379223 B CN105379223 B CN 105379223B CN 201480038881 A CN201480038881 A CN 201480038881A CN 105379223 B CN105379223 B CN 105379223B
Authority
CN
China
Prior art keywords
mobile solution
mobile
application
access
solution
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
CN201480038881.4A
Other languages
English (en)
Other versions
CN105379223A (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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN105379223A publication Critical patent/CN105379223A/zh
Application granted granted Critical
Publication of CN105379223B publication Critical patent/CN105379223B/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • 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
    • 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/31User authentication
    • G06F21/33User authentication using certificates
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Abstract

提供了一种管理对企业资源的访问的方法。访问管理器可运行在移动设备处以验证在该移动设备处安装的移动应用。如果访问管理器不成功地验证移动应用,访问管理器可阻止移动应用访问计算资源。如果访问管理器确实成功地验证了移动应用,那么访问管理器可将移动应用识别为信任的移动应用。访问管理器可因此允许信任的移动应用访问计算资源。

Description

管理对企业资源的访问的方法和装置
交叉引用相关申请
本申请要求在2013年5月20日提交并具有相同标题的美国专利申请第13/898,167的优先权,其要求2013年3月29日提交的标题为“Systems and Methods for EnterpriseMobility Management”的美国临时专利申请第61/806,577的优先权。
技术领域
本文所述的各方面总体上涉及到在移动计算设备处的移动应用的管理。更具体地,各方面提供用于校验在未受管的设备上运行的移动应用和控制该移动应用的执行的方式。
背景
移动及设备的使用持续增长。具体地,商业和其他企业变得依赖移动计算设备以允许个体远程访问各种计算资源。这种资源可包含例如电子邮箱服务、文件服务、数据和由企业的计算系统或移动设备自身提供的其他电子资源。
不论个体相对于计算资源位于本地或远距离处,企业可设法保护并控制对这些资源的访问。相应地,企业可实现各种技术机制(例如,网关和防火墙)和访问控制机制(例如,用户验证和授权),以便确保个体只可访问用户被授权并有资格访问的资源。这种机制还可防止未被授权的个体访问计算资源的任何一个。
关于移动设备,企业可采用各种方式来控制对于来自那些移动设备的计算资源的远程访问。这种尝试可被称为移动设备管理。在一种方式中,企业可为个人提供公司所有的和公司控制的移动设备。这种设备可被配置,从而使得企业能控制该移动设备的配置、功能、操作和数据。就这一点而言,公司所控制的移动设备可被称为受管设备。企业可例如经由客户端-服务器结构远程控制受管的设备。企业服务器可远程地向位于受管设备处的客户端应用发出命令。这种命令可包含,例如,安装新应用或功能、更新已有的应用或功能、更新配置设置、提供数据等等。如果受管设备丢失或被偷,企业可发送命令以锁定或擦除设备,以便防止未被授权的个体获取对设备的访问权或经由设备获取对资源的访问权。
然而,个体可能发现保留公司所有的移动设备和个人移动设备是不方便的。相反地,个体可能更愿意从他们的个人移动设备访问资源。这个实践可被称为BYOD(带来您自己的设备)。因为这些个人设备可能不是公司控制的,这种个人设备可被称为未受管设备。为了满足这个倾向,允许未受管设备访问这些资源的方法正在发展中。
例如,提供被配置成操作在未受管的设备处的公司控制的移动应用、受管的移动应用是正在发展的一种方式。然而,存在挑战。为了使得在未受管的设备上运行的受管移动应用成为可行的方式,可能需要防止经由受管的移动应用对资源未授权的访问或使用的机制。具体地,存在验证对受管移动应用的身份以确定受管移动应用已经被修改以避开保护资源的安全机制的需求。此外,存在控制对未受管移动设备处的受管移动应用的操作的需求。
概述
下文呈现本文所述各种方面的简单概要。该概述并不是广义的综述,亦非旨在确定权利要求的关键或重要元素或描绘权利要求的范围。以下概述仅仅呈现简化形式中的一些概念,作为对以下提供的更详细描述的介绍前言。
为了克服以上描述的现有技术中的限制,以及克服将在阅读和理解本说明书时明显的其它限制,本文描述的方面针对使用在移动计算设备处的受管移动应用对位于企业计算系统处的远程计算资源的访问进行控制。此外,本公开的各方面针对控制在移动计算设备本身处的本地计算资源的访问。访问管理器可执行验证过程,其确定请求访问计算资源的移动应用是否已经准确地识别了其自身,以及随后在安装在移动计算设备之后是否未被篡改。以这种方式,访问管理器可保证请求访问计算资源的移动应用可被信任并且没有尝试避开用于保护那些资源的安全性机制。从而,与企业关联的个人可有利地使用他们的个人移动设备来利用远程和本地计算资源。
本文所述的第一方面提供管理对计算资源的访问的方法。访问管理器可运行在移动设备处以验证在该移动设备处安装的移动应用。如果访问管理器不成功地验证移动应用,访问管理器可阻止移动应用访问计算资源。如果访问管理器确实成功地验证了移动应用,那么访问管理器可将移动应用识别为信任的移动应用。访问管理器可因此允许信任的移动应用访问计算资源。
本文所述的第二方面提供移动计算设备。移动计算设备可包含被配置成访问计算资源的移动应用、与移动应用有关的所存储的识别信息和访问管理器。访问管理器可被配置成验证移动应用并防止或允许对如上所述的计算资源的访问。
本文所述的第三方面提供被配置成在移动设备处操作的访问管理器。访问管理器还可被配置验证移动设备处的移动应用并防止或允许经由如上所述的移动应用对计算资源的访问。访问管理器还可被配置成基于在移动应用处存储的应用策略来控制移动应用的操作。
本文所述的一些方面提供:所存储的识别信息可以是与移动应用有关的且与移动应用一起创建的原始数字证书。访问管理器可通过将为移动应用创建的原始数字证书与从在移动计算设备处的移动操作系统接收的数字证书进行比较来验证移动应用。相对于移动计算设备,计算资源可位于本地或远处。计算资源的示例包含在移动计算设备或远程计算系统处运行的软件应用、由移动计算设备或远程计算系统提供的服务、在移动计算设备或远程计算系统处存储的数据、在移动计算设备或远程计算系统处的硬件及其组合。
所存储的识别信息还可以是创建时嵌入到移动应用的标识令牌或从移动应用派生的标识令牌。基于嵌入的和派生的标识令牌的布置来构造应用签名。访问管理器验证期间还可向移动应用提供随机数(nonce),并使用该随机数,以使用应用签名和随机数来计算期望的散列值。访问管理器可产生诸如期望的散列值的期望的响应,并将期望的响应与跟随来自访问管理器的挑战的从移动应用接收的响应进行比较。
本发明的实施例还涉及以下方面:
1)一种管理对企业资源的访问的方法,包括:
在移动计算设备处运行访问管理器;
使用所述访问管理器验证在所述移动计算设备处安装的移动应用;
当所述访问管理器对所述移动应用的验证不成功时,防止所述移动应用访问计算资源;
当所述访问管理器对所述移动应用的验证成功时,将所述移动应用识别为信任的移动应用;
允许所述信任的移动应用访问所述计算资源。
2)根据项目1)所述的方法,还包括:
在所述移动计算设备处存储与所述移动应用有关的识别信息;以及
其中,验证移动应用包含基于存储的识别信息来验证所述移动应用。
3)根据项目2)所述的方法,其中,验证所述移动应用还包含:
挑战所述移动应用以提供识别所述移动应用的响应;
至少部分地基于所述存储的识别信息来产生期望的响应;
将所述期望的响应与由所述移动应用提供的所述响应进行比较;
当所述期望的响应与由所述移动应用提供的所述响应匹配时,确定所述移动应用是有效的;以及
当所述期望的响应与由所述移动应用提供的所述响应不匹配时,确定所述移动应用是无效的。
4)根据项目3)所述的方法,还包括:
在将所述移动应用安装在所述移动计算设备处之前,将标识令牌嵌入所述移动应用;
配置所述移动应用以提取嵌入的标识令牌;以及
将所述嵌入的标识令牌包含在所述存储的识别信息中,从而使得所述期望的响应至少部分地基于所述嵌入的标识令牌;以及
其中,由所述移动应用提供的响应至少部分地基于从所述移动应用提取的所述嵌入的标识令牌。
5)根据项目4)所述的方法,其中,验证所述移动应用还包含:
使用所述访问管理器从所述移动应用派生一个或多个标识令牌;
基于所述嵌入的标识令牌和派生的标识令牌的排列来产生期望的应用签名;以及
至少部分地还基于所述期望的应用签名来产生所述期望的响应。
6)根据项目5)所述的方法,其中,验证所述移动应用还包含:
向所述移动应用提供随机数;
使用所述期望的应用签名和所述随机数计算期望的散列值;以及
其中,所述期望的响应是所述期望的散列值。
7)根据项目2)所述的方法,其中,所述存储的识别信息是在创建所述移动应用时为所述移动应用产生的原始数字证书。
8)根据项目7)所述的方法,其中,验证所述移动应用包含:
基于所述原始数字证书计算第一散列值,以及基于从所述移动计算设备的移动操作系统接收到的数字证书计算第二散列值;
将所述第一散列值与所述第二散列值进行比较;
当所述第一散列值与所述第二散列值匹配时,确定所述移动应用是有效的;以及
当所述第一散列值与所述第二散列值不匹配时,确定所述移动应用是无效的。
9)根据项目2)所述的方法,还包括:
使用所述访问管理器在所述移动计算设备处打开传输控制协议(TCP)套接字;
等待所述移动应用以所述TCP套接字建立与所述访问管理器的连接;以及
其中,当所述移动应用以所述TCP套接字建立与所述访问管理器的连接时,所述访问管理器发起对所述移动应用的验证。
10)根据项目1)所述的方法,还包括:
获取与所述信任的移动应用有关的应用策略;
在所述移动计算设备处存储所述应用策略;以及
使用所述访问管理器并基于所述应用策略来控制所述信任的移动应用的操作。
11)一种移动计算设备,包括:
移动应用,其被配置成访问计算资源;
与所述移动应用有关的存储的识别信息;
访问管理器,其被配置成基于所述存储的识别信息来验证所述移动应用;以及
其中,所述访问管理器还被配置成:
当对所述移动应用的验证不成功时,防止所述移动应用访问所述计算资源;
当对所述移动应用的验证成功时,将所述移动应用识别为信任的移动应用;以及
允许所述信任的移动应用访问所述计算资源。
12)根据项目11)所述的移动计算设备,其中,所述访问管理器还被配置成:
挑战所述移动应用以提供识别所述移动应用的响应;
至少部分地基于所述存储的识别信息来产生期望的响应;
将所述期望的响应与由所述移动应用提供的所述响应进行比较;
当所述期望的响应与由所述移动应用提供的所述响应匹配时,确定所述移动应用是有效的;以及
当所述期望的响应与由所述移动应用提供的所述响应不匹配时,确定所述移动应用是无效的。
13)根据项目12)所述的移动计算设备,其中:
所述移动应用包含嵌入的标识令牌,并被配置成提取所述嵌入的标识令牌;
所述存储的识别信息包含所述嵌入的标识令牌,从而使得所述期望的响应至少部分地基于所述嵌入的标识令牌;以及
其中,由所述移动应用提供的响应至少部分地基于从所述移动应用提取的所述嵌入的标识令牌。
14)根据项目13)所述的移动计算设备,其中,所述访问管理器还被配置成:
从所述移动应用派生一个或多个标识令牌;
基于所述嵌入的标识令牌和派生的标识令牌的排列来产生期望的应用签名;以及
至少部分地还基于所述期望的应用签名来产生所述期望的响应。
15)根据项目14)所述的移动计算设备,其中,所述访问管理器还被配置成:
向所述移动应用提供随机数;
使用所述期望的应用签名和所述随机数计算期望的散列值;以及
其中,所述期望的响应是所述期望的散列值。
16)根据项目11)所述的移动计算设备,其中,所述存储的识别信息是在创建所述移动应用时为所述移动应用产生的原始数字证书。
17)根据项目16)所述的移动计算设备,还包括移动操作系统,其中,所述访问管理器还被配置成:
基于所述原始数字证书计算第一散列值,以及基于从所述移动操作系统接收到的数字证书计算第二散列值;
将所述第一散列值与所述第二散列值进行比较;
当所述第一散列值与所述第二散列值匹配时,确定所述移动应用是有效的;以及
当所述第一散列值与所述第二散列值不匹配时,确定所述移动应用是无效的。
18)根据项目11)所述的移动计算设备,其中,所述计算资源是以下项中的至少一个:
i)运行在所述移动计算设备处或远程计算系统处的软件应用;
ii)由所述远程计算系统的所述移动计算设备提供的服务;
ii)被存储在所述移动计算设备处或所述远程计算系统处的数据;
iv)在所述移动计算设备处或所述远程计算系统处的硬件;以及
v)上述项的组合。
19)根据项目11)所述的移动计算设备,还包括:
应用策略,其与所述移动设备有关;以及
其中,所述访问管理器被配置成基于所述应用策略来控制所述信任的移动应用的操作。
20)一种访问管理器,其被配置成在移动计算设备处运行,并被配置成:
基于在所述移动计算设备处存储的与在所述移动计算设备处安装的移动应用有关的识别信息来验证所述移动应用;
当对所述移动应用的验证不成功时,防止所述移动应用访问计算资源;
当对所述移动应用的验证成功时,将所述移动应用识别为信任的移动应用;
允许所述信任的移动应用访问所述计算资源;以及
基于在所述移动计算设备处存储的应用策略来控制所述信任的移动应用的操作。
结合下文更详细地讨论的公开的内容的益处,将理解这些和其他方面。
附图简述
可通过参照下面附图考虑的描述获得本文描述的方面和其优势的更完整的理解,其中相似的参考数字表示相似的特征,且其中:
图1示出的是可根据本文所描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2示出的是可根据本文描述的一个或多个说明性方面来使用的说明性远程访问系统架构。
图3根据本文所述一个或多个示例性方面描绘可使用的示例性虚拟化(超级管理器)系统架构。
图4示出的是可根据本文所描述的一个或多个说明性方面使用的说明性的基于云的系统架构。
图5示出的是说明性企业移动性管理系统。
图6示出的是另一个说明性企业移动性管理系统。
图7示出的是说明性移动设备管理系统。
图8示出的是用于受管移动应用的说明性应用签名和挑战响应的框图。
图9是用于管理未受管移动设备处的移动应用的示例方法步骤的流程图。
图10是用于在未受管移动设备处为受管操作准备受管移动应用的示例方法步骤的流程图。
图11是用于初始化未受管移动设备处的受管移动应用的示例方法步骤的流程图。
图12是在具有第一类型的移动操作系统的未受管移动设备处用于验证受管移动应用的示例方法步骤的流程图。
图13是在具有第二类型的移动操作系统的未受管移动设备处用于验证受管移动应用的示例方法步骤的流程图。
图14是用于在受管移动应用的操作期间强制执行应用策略的示例方法步骤的流程图。
详细描述
在各种实施方式的以下描述中,对以上识别的附图进行参考,且其形成本文的一部分,且其中以示例说明的方法展示各种实施方式,其中可实践本文描述的方面。应该理解的是,可利用其它实施方式,且可进行对结构和功能的修改而不脱离本文中所描述的范围。各个方面能够用于其它实施方式且能够以各种不同方式实践或执行。
作为对下面更详细描述的主题的概述,本文所描述的方面针对控制对位于远程的企业计算系统处或移动计算设备自身处的计算资源的访问。访问管理器可执行验证过程,其确定请求访问计算资源的移动应用是否已经准确地识别了其自身,以及随后在安装在移动计算设备之后是否未被更改。以这种方式,访问管理器可保证请求访问计算资源的移动应用可被信任并且没有尝试避开用于保护那些资源的安全性机制。从而,与企业关联的个人可有利地在他们的个人移动设备处利用计算资源。相对于移动计算设备,计算资源可位于本地或远处。计算资源的示例包含在移动计算设备或远程计算系统处操作的软件应用、由移动计算设备或远程计算系统提供的服务、在移动计算设备或远程计算系统处存储的数据、在移动计算设备或远程计算系统处的硬件及其组合。本公开中,远程位于企业的计算系统处的计算资源被称为企业资源。
应当理解的是,本文所使用的短语和术语是出于描述的目的,并且不应被视为限制性的。而是,本文使用的短语和术语应被给予其最广泛的解释和含义。“包含”和“包括”及其变形的使用意欲包括其后列出的项及其等效形式以及额外的项及其等效形式。术语“安装”、“连接”、“耦合”、“定位”、“接合”和类似的术语意欲包括直接和间接安装、连接、耦合、定位和接合。
计算机架构
计算机软件、硬件和网络可用于多种不同的系统环境中,除了别的之外,包括单机、连网、远程访问(又叫做远程桌面)、虚拟化和/或基于云的环境。图1示出系统结构和数据处理设备的一个示例,其可用于在单机和/或联网环境中实施本公开的一个或多个说明性方面。各个网络节点103、105、107和109可经由诸如互联网的广域网(WAN)101进行互连。也可以或可选地使用其它网络,包括私有内联网、企业网、LAN、城域网(MAN)、无线网络、个人网络(PAN)等等。网络101用于说明的目的并且可以用更少或附加的计算机网络来代替。局域网(LAN)可具有任何已知的LAN拓扑的一个或多个,并可使用各种不同的协议的一个或多个,诸如以太网。设备103、105、107、109和其他设备(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其它通信介质连接到网络中的一个或多个网络。
如本文使用的和在附图中所描绘的术语“网络”指的不仅是在其中经由一个或多个通信路径耦合在一起的远程存储设备的系统,而且也指可耦合的单机设备,偶尔指,具有存储能力的这种系统。因此,术语“网络”不但包括“物理网络”,而且包括“内容网络”,其含有归属于单一实体的、驻留在所有物理网络的数据。
组件可包括数据服务器103、web服务器105和客户端计算机107、109。数据服务器103提供对数据库和控制软件的总体访问、控制和管理,以用于执行本文所描述的公开的一个或多个说明性方面。数据服务器103可连接到web服务器105,其中用户通过该web服务器105根据请求与数据交互并获得数据。可选地,数据服务器103本身可充当web服务器,并可直接连接到互联网。经由直接或间接的连接,或经由某一其它网络,数据服务器103可通过网络101(例如,互联网)连接到web服务器105。用户可使用远程计算机107、109与数据服务器103交互,例如,使用web浏览器经由web服务器105托管一个或多个外部暴露的网站连接到数据服务器103。客户端计算机107、109可以与数据服务器103合作使用以访问存储在其中的数据,或可以被用于其他目的。例如,从客户端设备107,用户可使用互联网浏览器访问web服务器105,如本领域已知的,或通过执行通过计算机网络(例如互联网)与web服务器105和/或数据服务器103进行通信的软件应用。
服务器和应用可组合在相同的物理机上,并保留分离的虚拟或逻辑地址,或可驻留在分离的物理机上。图1仅示出可以被使用的网络结构的一个示例,并且本领域中的技术人员应当理解,如在本文进一步所描述的,所使用的特定网络结构和数据处理设备可以改变,并且对于它们提供的功能来说是次要的。例如,通过web服务器105和数据服务器103提供的服务可被组合在单一服务器上。
每个组件103、105、107、109可为任何类型的已知计算机、服务器或数据处理设备。数据服务器103例如可以包括控制数据服务器103的整体运行的处理器111。数据服务器103可进一步包括RAM 113、ROM 115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等等),以及存储器121。I/O 119可包括各种用于读、写、显示、和/或打印数据或文件的接口单元和驱动器。存储器121还可存储用于控制数据处理设备103的总体操作的操作系统软件123、用于指示数据服务器103执行本文描述的本公开的方面的控制逻辑125、以及提供辅助、支持、和/或其它可能或可能不与本公开的方面结合使用的功能的其它应用软件127。本文中,控制逻辑还可被称为数据服务器软件125。数据服务器软件的功能可涉及操作或决策,这些操作或决策基于编码到控制逻辑的规则自动地进行、由用户提供输入到系统手动进行、和/或基于用户输入的自动处理的组合(例如,查询、数据更新等)。
存储器121还可存储在执行本公开的一个或多个方面中使用的数据,包括第一数据库129和第二数据库131。在一些实施方式中,第一数据库可包括第二数据库(例如,作为分离的表、报告等)。即,该信息可存储在单个数据库中,或分离成不同的逻辑、虚拟或物理数据库,其取决于系统设计。设备105、107、109可具有如关于设备103所描述的类似或不同的架构。本领域技术人员应理解,如本文所述的数据处理设备103(或设备105、107、109)的功能可遍布多个数据处理设备,例如,以将处理负载分配到多个计算机、以基于地理位置、用户访问级别、服务质量(QoS)等分开事务。
一个或多个方面可以在通过本文所描述的一个或多个计算机或其他设备执行的、诸如一个或多个程序模块中的计算机可用或可读数据和/或计算机可执行指令来体现。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,这些当在计算机或其它设备中通过处理器执行时,执行特定任务或执行特定抽象数据类型。该模块可用随后编译用于执行的源代码编程语言来编写,或可用脚本语言来编写,诸如(但不限于)HTML或XML。该计算机可执行指令可存储在计算机可读介质中,诸如非易失性存储设备。可利用任何适当的计算机可读存储介质,包括硬盘、CD-ROM、光学存储设备、磁性存储设备和/或其任何组合。此外,代表如本文所述的数据或事件的各种传输(非存储)介质,可在源和目的之间穿过信号传导介质(诸如金属线、光纤)和/或无线传输介质(例如,空气和/或空间)以电磁波的形式传输。本文所描述的各个方面可被体现为方法、数据处理系统或计算机程序产品。因此,各种功能可整体或部分地体现在软件、固件和/或硬件或硬件等同物,诸如集成电路、现场可编程门阵列(FPGA)等等。特定数据结构可以被用于更有效实施本公开的一个或多个方面,并且预期此类数据结构在本文所述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图2,可在远程访问环境中实现本文所述的一个或多个方面。图2描绘了示例性的系统架构,包括在说明性计算环境200中的通用计算设备201,其可根据本文所述的一个或多个说明性方面来使用。通用计算设备201可以被用作单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a,所述系统经配置提供用于客户端访问设备的虚拟机。通用计算设备201可具有用于控制服务器及其相关组件(包括随机存取存储器(RAM)205、只读存储器(ROM)207、输入/输出(I/O)模块209和存储器215)的整体操作的处理器203。
I/O模块209可包括鼠标、键盘、触摸屏、扫描仪、光学阅读器和/或手写笔(或其它输入设备)(通用计算设备201的用户可通过这些输入设备提供输入),并且也可包括用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示设备中的一个或多个。软件可存储在存储器215和/或其它存储中,以提供指令给处理器203用于配置通用计算设备201为专用计算设备,以便执行如本文所述的各种功能。例如,存储器215可以存储由计算设备201使用的软件(诸如操作系统217、应用219和关联的数据库221)。
计算设备201可在支持连接到一个或多个远程计算机(诸如终端240(也称为客户端设备))的网络化环境中运行。终端240可以是个人计算机、移动设备、笔记本计算机、平板计算机、或服务器,其包括以上描述的关于通用计算设备103或201的许多或全部元素。在图2中描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,但还可包括其它网络。当用于LAN网络环境中时,计算设备201可通过网络接口或适配器223连接到LAN 225。当在WAN联网环境中使用时,计算设备201可包括调制解调器227或用于建立在WAN 229(诸如计算机网络230(例如,互联网))上的通信的其它广域网接口。将认识到的是,所示的网络连接是说明性的,且可使用在计算机之间建立通信链接的其它设备。计算设备201和/或终端240还可为移动终端(例如,移动电话、智能电话、PDA、笔记本等等),其包括各种其他组件,诸如电池、扬声器和天线(未示出)。
本文描述的各方面也可以用许多其他通用或专用计算系统环境或配置来运行。可适合于结合本文所述的方面使用的其它计算系统、环境和/或配置的示例,包括,但不限于,个人计算机、服务器计算机、手持或笔记本设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
如图2所示,一个或多个客户端设备240可与一个或多个服务器206a-206n(在本文中统称为“服务器206”)通信。在一个实施方式中,计算环境200可包括在服务器206和客户机240之间安装的网络设备。该网络设备可管理客户端/服务器连接,并在某些情况下可负载平衡多个后端服务器206之间的客户端连接。
在一些实施方式中,客户机240可指代单个客户机240或单组客户机240,而服务器206可指代单个服务器206或单组服务器206。在一个实施方式中,单个客户机240与一个以上的服务器206通信,而在另一实施方式中,单个服务器206与一个以上的客户机240通信。在又一实施方式中,单个客户机240与单个服务器206通信。
在一些实施方式中,下列非穷举术语的任何一个可引用客户机240:客户机;客户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;端点;或端点节点。在一些实施方式中,下列非穷举术语的任何一个可引用服务器206:服务器;本地机器;远程机器;服务器群;或主机计算设备。
在一个实施方式中,客户机240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施方式中虚拟机可以是由类型1或类型2的管理程序所管理的任何虚拟机,例如,由Citrix Systems、IBM、VMware开发的管理程序,或任何其它管理程序。在一些方面中,虚拟机可由超级管理器管理,而在其它方面中,虚拟机可由在服务器206上执行的超级管理器或在客户端240上执行的超级管理器管理。
一些实施方式包括客户端设备240,其显示由在服务器206上远程执行的应用或由其它本地化机器上远程执行的应用生成的应用输出。在这些实施方式中,客户端设备240可以执行虚拟机接收器程序或应用,以在应用窗口、浏览器或其他输出窗口中显示输出。在一个示例中,应用是桌面,而在其它示例中应用是生成或呈现桌面的应用。桌面可包括为操作系统的实例提供用户界面的图形壳,在该操作系统中可集成本地和/或远程应用。如在本文所使用的,应用是在操作系统(和可选地,还有桌面)的实例已经被装入之后执行的程序。
在一些实施方式中,服务器206使用远程表示协议或其他程序以将数据发送到在客户端上执行的瘦客户端或远程显示应用,以便呈现通过在服务器206上执行的应用生成的显示输出。瘦客户端或远程显示协议可以是下列非穷举协议列表中的任意一个:通过佛罗里达州劳德代尔堡(Ft.Lauderdale,Florida)的Citrix系统公司开发的独立计算架构(ICA)协议;或通过华盛顿雷德蒙德(Redmond,Washington)的微软公司制造的远程桌面协议(RDP)。
远程计算环境可包括多于一个的服务器206a-206n,使得,例如在云计算环境中,服务器206a-206n逻辑组合在一起成服务器群206。服务器群206可包括地理上分散而同时逻辑分组在一起的服务器206,或位于彼此接近同时在逻辑上分组在一起的服务器206。在一些实施方式中,在服务器群206中地理上分散的服务器206a-206n使用WAN(广域网)、MAN(城域网)、或LAN(局域网)通信,其中不同的地理区域可表征为:不同大陆;大陆的不同区域;不同的国家;不同的州;不同的城市;不同的校区;不同的房间;或前述地理位置的任何组合。在一些实施方式中,服务器群206可作为单一实体进行管理,而在其他实施方式中,服务器群206可包括多个服务器群。
在一些实施方式中,服务器群可包括服务器206,其执行基本上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN,等)。在其它实施方式中,服务器群206可包括执行第一类型的操作系统平台的一个或多个服务器的第一组,以及执行第二类型的操作系统平台的一个或多个服务器的第二组。
服务器206可根据需要配置成任何类型的服务器,例如,文件服务器、应用服务器、web服务器、代理服务器、装置、网络装置、网关、应用网关、网关服务器、虚拟服务器、部署服务器、SSL VPN服务器、防火墙、网络服务器、应用服务器或作为主应用服务器、执行活动目录的服务器、或执行提供防火墙功能、应用功能、或负载平衡功能的应用加速程序的服务器。还可使用其他服务器类型。
一些实施方式包含第一服务器106a,第一服务器106a从客户机240接收请求并将请求转发给第二服务器106b,并以来自第二服务器106b的响应来响应由客户机240产生的请求。第一服务器106a可以获得可用于客户机240的应用的列举以及与托管在应用列举内被识别的应用的应用服务器206相关联的地址信息。然后,第一服务器106a可使用web接口呈现对客户端请求的响应,并直接与客户端240通信以给客户端240提供对所标识的应用的访问。一个或多个客户端240和/或一个或多个服务器206可经由例如互联网101的网络230传输数据。
图2示出说明性桌面虚拟化系统的高级别架构。如图所示,桌面虚拟化系统可以是单个服务器或多个服务器系统、或云系统,包括配置以给一个或多个客户端访问设备240提供虚拟桌面和/或虚拟应用的至少一个虚拟化服务器206。如在本文使用的,桌面指图形环境或空间,其中一个或多个应用可被托管和/或执行。桌面可包括为操作系统的示例提供用户界面的图形壳,在该操作系统中可集成本地和/或远程应用。应用可包括装载了操作系统(和任选地,还有桌面)的实例之后执行的程序。操作系统的每个实例可以是物理的(例如每设备一个操作系统)或虚拟的(例如在单个设备上运行的OS的很多实例)。每个应用可在本地设备上执行或在远程定位的设备上执行(例如远程)。
进一步参考图3,计算机设备301可以配置为在虚拟化环境(例如,单一服务器环境、多服务器环境、或云计算环境)中的虚拟化服务器。在图3中示出的虚拟化服务器301可以被部署为在图2中示出的服务器206的一个或多个实施方式和/或由其实现,或通过其他已知的计算设备实现。包含在虚拟化服务器301中的是硬件层,其可包括一个或多个物理盘304、一个或多个物理设备306、一个或多个物理处理器308和一个或多个物理存储器316。在一些实施方式中,固件312可存储在物理存储器316中的存储器元件内并可由一个或多个物理处理器308执行。虚拟化服务器301还可以包括操作系统314,其可以被存储在物理存储器316的存储器元件中并由物理处理器308中的一个或多个执行。仍然进一步地,超级管理器302可存储在物理存储器316中的存储器元件中,并可由一个或多个物理处理器308执行。
在一个或多个物理处理器308上执行的可以是一个或多个虚拟机332A-C(总体上表示为332)。每一个虚拟机器332可具有虚拟盘326A-C和虚拟处理器328A-C。在一些实施方式中,第一虚拟机332A可使用虚拟处理器328A执行包括工具堆栈324的控制程序320。控制程序320可以被称为控制虚拟机、Dom0、域0,或用于系统管理和/或控制的其他虚拟机。在某些实施方式中,一个或多个虚拟机332B-C可以使用虚拟处理器328B-C执行访客(guest)操作系统330A-B。
虚拟化服务器301可以包括与虚拟化服务器301通信具有一件或多件硬件的硬件层310。在一些实施方式中,硬件层310可包括一个或多个物理盘304、一个或多个物理设备306、一个或多个物理处理器308和一个或多个存储器316。物理组件304、306、308和316可包括,例如以上所述任何组件。物理设备306可包括,例如,网络接口卡、视频卡、键盘、鼠标、输入设备、监视器、显示设备、扬声器、光盘驱动器、储存设备、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载均衡器、虚拟专用网(VPN)网关、动态主机配置协议(DHCP)路由器等),或连接到虚拟化服务器301或与其通信的任何设备。硬件层310中的物理存储器316可包括任何类型的存储器。物理存储器316可以存储数据,并且在某些实施方式中可以存储一个或多个程序或一组可执行指令。图3示出其中固件312被存储在虚拟化服务器301的物理存储器316内的实施方式。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的一个或多个处理器308来执行。
虚拟化服务器301还可包括超级管理器302。在某些实施方式中,超级管理器302可以是一种程序,其由虚拟化服务器301上的处理器308来执行,以形成和管理任何数量的虚拟机332。超级管理器302可以被称为虚拟机监视器或平台虚拟化软件。在一些实施方式中,超级管理器302可以为可执行指令以及监视在计算机器上执行的虚拟机的硬件的任何组合。超级管理器302可以是类型2的超级管理器,其中,该超级管理器在执行于虚拟化服务器301上的操作系统314内执行。虚拟机然后在超级管理器之上的层执行。在一些实施方式中,类型2超级管理器在用户的操作系统的上下文内执行,以使类型2超级管理器与用户的操作系统进行交互。在其它实施方式中,虚拟化环境中的一个或多个虚拟化服务器301可替代地包括类型1超级管理器(未示出)。可通过直接访问硬件层310中的硬件和资源在虚拟化服务器301上执行类型1超级管理器。就是说,虽然类型2超级管理器302通过如所示的主机操作系统314访问系统资源,但是类型1超级管理器无需主机操作系统314可以直接访问所有系统资源。类型1超级管理器可以在虚拟化服务器301的一个或多个物理处理器308上直接执行,并且可以包括存储在物理存储器316中的程序数据。
在某些实施方式中,超级管理器302可以向操作系统330或控制程序320提供虚拟化资源,操作系统330或控制程序320以模拟直接访问系统资源的操作系统330或控制程序的方式在虚拟机332上执行。系统资源可以包括但不限于物理设备306、物理盘304、物理处理器308、物理存储器316和包括在虚拟化服务器301硬件层310中的任何其他组件。超级管理器302可以被用于仿真虚拟化硬件、分区物理硬件、虚拟化物理硬件和/或执行提供访问计算环境的虚拟机。在另外的其他实施方式中,超级管理器302控制用于在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。超级管理器302可包括由加利福尼亚州帕罗奥多的VMWare公司制造的那些超级管理器;XEN超级管理器,一种开源产品,其开发是由开源Xen.org社区监督;由微软或其它公司提供的HyperV、VirtualServer或虚拟PC超级管理器。在某些实施方式中,虚拟化服务器301执行形成虚拟机平台的超级管理器302,访客操作系统可以在该虚拟机平台上执行。在这些实施方式中,虚拟化服务器301可以被称为主机服务器。这样的虚拟化服务器的例子是由佛罗里达州罗德岱堡的Citrix系统公司提供的XEN SERVER。
超级管理器302可以形成访客操作系统330在其中执行的一个或多个虚拟机332B-C(总体被称为332)。在某些实施方式中,超级管理器302可以加载虚拟机映像以形成虚拟机332。在其他实施方式中,超级管理器302可在虚拟机332内执行访客操作系统330。在另外的其他实施方式中,虚拟机332可以执行访客操作系统330。
除了创建虚拟机332之外,超级管理器302可控制至少一个虚拟机332的执行。在其他实施方式中,超级管理器302可以向至少一个虚拟机332呈现由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象。在其他实施方式中,超级管理器302可以控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可包括确定虚拟机332是否应有权访问处理器308,以及如何将物理处理器能力提供给虚拟机332。
如图3中所示,虚拟化服务器301可以托管或执行一个或多个虚拟机332。虚拟机332是可执行指令集,其在由处理器308执行时,模仿物理计算机的操作,使得虚拟机332可以非常类似于物理计算设备来执行程序和过程。虽然图3示出其中虚拟化服务器301托管三个虚拟机332的实施方式,但是在其他实施方式中,虚拟化服务器301可以托管任何数量的虚拟机332。在某些实施方式中,超级管理器302向每个虚拟机332提供该虚拟化机332可用的物理硬件、存储器、处理器和其他系统资源的独特虚拟视图。在某些实施方式中,该独特虚拟视图可以基于虚拟机允许、一个或多个虚拟化机识别符的策略引擎的应用、访问虚拟机的用户、在虚拟机上执行的应用、由虚拟机访问的网络中的一个或多个,或任何其他期望的标准。例如,超级管理器302可以形成一个或多个非安全的虚拟机332和一个或多个安全的虚拟机332。非安全虚拟机332可被防止访问安全虚拟机332可被允许访问的资源、硬件、存储器位置和程序。在其他实施方式中,超级管理器302可以向每个虚拟机332提供该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的大致相似的虚拟视图。
每个虚拟机332可具有虚拟盘326A-C(总体被称为326)和虚拟处理器328A-C(总体被称为328)。虚拟盘326在一些实施方式中是虚拟化服务器301的一个或多个物理盘304的虚拟化视图或虚拟化服务器301的一个或多个物理盘304的一部分的虚拟化视图。物理盘304的虚拟化视图可由超级管理器302产生、提供并管理。在一些实施方式中,超级管理器302提供给每个虚拟机332物理盘304的唯一视图。因此,在这些实施方式中,当与其他虚拟盘326比较时,包括在每个虚拟机332中的特定虚拟盘326可以是独特的。
虚拟处理器328可以是虚拟服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施方式中,可通过超级管理器302生成、提供和管理物理处理器308的虚拟化视图。在一些实施方式中,虚拟处理器328基本上具有至少一个物理处理器308的所有相同特征。在其他实施方式中,虚拟化处理器308提供物理处理器308的更改视图,使得虚拟处理器328的特性中的至少某些特性不同于对应物理处理器308的特性。
进一步参考图4,本文所描述的一些方面可在基于云的环境中实施。图4说明了云计算环境(或云系统)400的示例。如在图4中看到的,客户端计算机411-414可与云管理服务器410通信以访问云系统的计算资源(例如主机服务器403、存储资源404和网络资源405)。
管理服务器410可以在一个或多个物理服务器上实施。管理服务器410除了可以运行其他软件以外,还可以运行例如Ft.Lauderdale,FL Citrix Systems公司的CLOUDSTACK或OPENSTACK。管理服务器410可管理各种计算资源,包括云硬件和软件资源,例如主机计算机403、数据存储设备404和联网设备405。云硬件和软件资源可以包括专用和/或公共组件。例如,云可被配置为由一个或多个特定的消费者或客户端计算机411-414和/或通过私有网络使用的私有云。在其它实施方式中,公共云或混合公共-专用云可通过开放或混合网络由其他消费者使用。
管理服务器410可被配置成提供用户界面,云操作员和云客户可通过用户界面与云系统交互。例如,管理服务器410可提供一组API和/或具有用户界面的一个或多个云操作员控制台应用(例如基于web的单机应用)以允许云操作员管理云资源,配置虚拟化层,管理客户账户,并执行其它云管理任务。管理服务器410也可包括一组API和/或具有用户界面的一个或多个消费者控制台应用,用户界面被配置成经由客户端计算机411-414从终端用户接收云计算请求,例如创建、修改或销毁云内的虚拟机的请求。客户端计算机411-414可经由互联网或其它通信网络连接到管理服务器410,并可请求对由管理服务器410管理的一个或多个计算资源的访问。响应于客户端请求,管理服务器410可包括被配置成基于客户端请求来选择并提供在云系统的硬件层中的物理资源的资源管理器。例如,管理服务器410和云系统的额外组件可被配置成通过网络(例如互联网)为在客户端计算机411-414处的消费者提供、创建并管理虚拟机及其操作环境(例如超级管理器、存储资源、由网络元件提供的服务等),给消费者提供计算资源、数据存储服务、联网能力和计算机平台及应用支持。云系统还可被配置成提供各种特定的服务,包括安全系统、开发环境、用户界面等。
某些客户端411-414可例如与代表相同终端用户或加入同一公司或组织的不同用户创建虚拟机的不同客户端计算机有关。在其它例子中,某些客户端411-414可以是不相关的,例如参与不同公司或组织的用户。对于不相关的客户端,可对其他用户隐藏关于任一个用户的虚拟机或储存器的信息。
现在参考云计算环境的物理硬件层,可用性区401-402(或多个区)可以指所分配的一组物理计算资源。区可以在地理上与计算资源的整个云中的其它区分离。例如,区401可以是位于加利福尼亚的第一云数据中心,且区402可以是位于佛罗里达的第二云数据中心。管理服务器410可位于可用区中的一个区,或在单独的位置。每个区可包括通过网关与在区之外的设备(例如管理服务器410)通过接口连接的内部网络。云的终端用户(例如客户端411-414)可以或可以不知道在区之间的区别。例如,终端用户可请求创建具有指定量的存储器、处理能力和网络容量的虚拟机。管理服务器410可对用户的请求做出响应并可分配资源以在用户不知道虚拟机是否使用来自区401或区402的资源而被创建的情况下创建虚拟机。在其它示例中,云系统可允许终端用户请求在特定区或在区内的特定资源403-405上分配虚拟机(或其它云资源)。
在这个例子中,每个区401-402可包括各种物理硬件组件(或计算资源)403-405(例如物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换机和可用于向消费者提供云计算服务的额外的硬件资源的布置。在云区401-402中的物理托管资源可包括可被配置成创建并托管虚拟机实例的一个或多个计算机服务器403,例如上面描述的虚拟化服务器301。在云区401或402中的物理网络资源可以包括一个或多个网络元件405(例如,网络服务供应商),其包括经配置向云客户提供网络服务的硬件和/或软件(诸如防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等等)。在云区401-402中的存储资源可包括存储磁盘(例如固态硬盘(SSD)、磁硬盘等)和其它存储设备。
在图4中示出的示例云计算环境还可以包括虚拟化层(例如,如图1-3中所示),该虚拟化层具有经配置形成和管理虚拟机和使用云中的物理资源向客户提供其他服务的另外硬件和/或软件资源。虚拟化层可以包含如上面在图3中所述的超级管理器以及提供网络虚拟化、存储虚拟化等的其他组件。虚拟化层可以作为相对于物理资源层的分离层或可与物理资源层共享一些或全部相同的硬件和/或软件资源。例如,虚拟化层可包括安装在具有物理计算资源的每个虚拟化服务器403中的超级管理器。可以另选使用已知的云系统,例如WINDOWS AZURE(华盛顿雷德蒙德的微软公司),AMAZON EC2(华盛顿西雅图的Amazon.com公司),IBM BLUE CLOUD(纽约阿蒙克的IBM公司)或其他云系统。
企业移动性管理架构
图5表示用于在BYOD环境中使用的企业移动技术架构500。该架构使移动设备502的用户能够从移动设备502访问企业或个人资源并使用用于个人使用的移动设备502。用户可使用用户所购买的移动设备502或者企业提供给用户的移动设备502来访问该类企业资源504或企业服务508。用户可利用仅用于商业使用,或用于商业和个人使用的移动设备502。移动设备可运行iOS操作系统、安卓操作系统等等。企业可以选择实施以管理移动设备504的策略。以这种移动设备可被识别、保护或安全验证、以及被提供对企业资源的选择性的或全部的访问的方式,可通过防火墙或网关植入该策略。策略可以是移动设备管理策略、移动应用管理策略、移动数据管理策略、或移动设备、应用和数据管理策略的某些组合。通过移动设备管理策略的应用来管理的移动设备504可以被称为登记设备。
移动设备的操作系统可以被划分为受管分区510和未受管分区512。受管分区510可具有施用于其的策略,以保护受管分区中运行的应用和存储的数据。在受管分区上运行的应用可以是安全应用。安全应用可以是电子邮件应用、web浏览应用、软件即服务(SaaS)访问应用、Windows Application访问应用等等。安全应用可以是安全本地应用514,由安全应用启动器518执行的安全远程应用522,由安全应用启动器518执行的虚拟化应用526等等。安全本地应用514可由安全应用封装器520封装。当安全本地应用在设备上执行时,安全应用封装器520可包括在移动设备502上执行的综合策略。安全应用封装器520可包括元数据,其指引在移动设备502上运行的安全本地应用514到在企业托管的资源,其中安全本地应用514可在安全本地应用514执行时要求完成请求的任务。由安全应用启动器518执行的安全远程应用522可以在安全应用启动器应用518内执行。由安全应用启动器518执行的虚拟化应用526可利用移动设备502、企业资源504等等的资源。由安全应用启动器518执行的虚拟化应用526在移动设备502上使用的资源,可包括用户交互资源、处理资源等等。用户交互资源可用于收集和传输键盘输入、鼠标输入、摄像机输入、触觉输入、音频输入、可视化输入、手势输入等等。处理资源可用来呈现用户接口、从企业资源504接收的过程数据等等。由安全应用启动器518执行的虚拟化应用526在企业资源504上使用的资源可包括用户接口生成资源、处理资源等等。用户接口生成资源可用于组装用户接口、修改用户接口、刷新用户接口等等。处理资源可用于创建信息、读取信息,更新信息、删除信息等等。例如,虚拟化应用可记录与GUI相关联的用户交互,并将它们传送到服务器应用,其中服务器应用将使用用户交互数据作为到在服务器上运行的应用的输入。在这种布置中,企业可选择在服务器端维护应用以及与应用相关联的数据、文件等。尽管企业可按照本文原则,通过保护其用于在移动设备上部署,选择“移动化”一些应用,这种布置也可选择用于某些应用。例如,尽管可保护用于在移动设备上使用的一些应用,对于在移动设备上的部署,其它应用可能没有准备或是不合适的,所以企业可选择通过虚拟化技术给移动用户提供对未准备的应用的访问。作为另一个示例,企业可具有带有大量和复杂的数据集的大型复杂的应用(例如,材料资源计划应用),定制用于移动设备的应用将是非常困难的或是不期望的,所以企业可选择提供通过虚拟化技术对应用的访问。作为另一个示例,企业可具有维持被企业视为对即使安全的移动环境也过于敏感的高度安全数据(例如,人力资源数据、客户数据、工程数据)的应用,所以企业可选择使用虚拟化技术以允许移动访问这种应用和数据。企业可选择提供在移动设备上完全安全和全功能的应用,以及虚拟化应用以允许对被认为更适合在服务器端运行的应用的访问。在实施方式中,虚拟化应用可在安全存储位置之一的移动电话上存储一些数据、文件等。例如,企业可选择允许在电话上存储某些信息,而不允许存储其它信息。
如本文所述,在与虚拟化应用的连接中,移动设备可具有被设计以呈现GUI且然后记录用户与GUI的交互的虚拟化应用。该应用可传送用户交互到服务器端,以作为用户与应用的交互被服务器端应用使用。作为响应,在服务器端的应用可发送新GUI返回到移动设备。例如,新GUI可以是静态页面、动态页面、动画等等。
运行在受管分区上的应用可以是稳定的应用。稳定的应用可以由设备管理器524来管理。设备管理器524可以监测稳定的应用,并且如果用于发现和解决将在该稳定应用中产生的问题的技术未被用于发现和解决这些问题,则利用此类技术。
安全应用可以访问存储在移动设备的受管分区510中的安全数据容器528中的数据。在安全数据容器中保护的数据可由以下应用访问,安全封装的应用514、由安全应用启动器518执行的应用、由安全应用启动器518执行的虚拟化应用526等等。存储在安全数据容器528中的数据可包括文件、数据库等等。存储在安全数据容器528中的数据可包括限定到特定安全应用530的数据,在安全应用532中共享的数据等等。限制到安全应用的数据可包括安全通用数据534和高度安全数据538。安全通用数据可使用强的加密形式,诸如AES 128位加密等等,而高度安全数据538可使用非常强的加密形式,诸如AES 254位加密。在接收到来自设备管理器524的命令时,可从设备删除存储在安全数据容器528中的数据。安全应用可以具有双模式选项540。双模式选项540可向用户呈现在非安全模式中运行安全应用的选项。在非安全模式中,安全应用可访问存储在移动设备502的非受管分区512的非安全数据容器542中的数据。存储在非安全数据容器中的数据可以为个人数据544。存储在非安全数据容器542中的数据,也可由在移动设备502的非受管分区512上运行的非安全应用548访问。当存储在安全数据容器528中的数据从移动设备502中删除时,存储在非安全数据容器542中的数据可保持在移动设备502上。企业可能希望从移动设备中删除选择的或所有数据、文件,和/或企业(企业数据)拥有的、许可的或控制的应用,而留下或以其它方式保留个人数据、文件和/或由用户(个人数据)拥有的、许可的或控制的应用。该操作可称为选择性擦除。根据本文所描述的方面安排的企业和个人数据,企业可执行选择性擦除。
移动设备可连接到在企业的企业资源504和企业服务508,公共互联网548等等。移动设备可通过虚拟私有网络连接来连接到企业资源504和企业服务508。虚拟专用网络连接可以指定用于移动设备上的特定应用550、特定设备、特定安全区等552。例如,在手机的安全区域的每个封装的应用可通过应用专用VPN访问企业资源,使得基于与应用相关联的属性,可能与用户或设备属性信息结合,将被授权对VPN的访问。虚拟私有网络连接可携带Microsoft Exchange流量、Microsoft Active Directory流量、HTTP流量、HTTPS流量、应用管理流量等等。虚拟私有网络连接可支持并实现单点登录认证过程554。单点登录过程可允许用户提供单独一组认证凭证,然后其由认证服务558验证。然后,认证服务558可授予用户访问多个企业资源504,而无需用户提供认证凭证到每个单个的企业资源504。
虚拟私有网络连接可由访问网关560建立和管理。访问网关560可包括性能增强特征,其管理、加速和提高企业资源504到移动设备502的输送。访问网关也可重新路由从移动设备502到公共互联网548的流量,使得移动设备502能够访问公共互联网548上运行的公共可用的和不安全的应用。移动设备可经由传输网络连接到访问网关。传输网络可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、私有网络等等。
企业资源504可包括电子邮件服务器、文件共享服务器、SaaS应用、web应用服务器、Windows应用服务器等等。电子邮件服务器可包括Exchange服务器、Lotus Notes服务器等等。文件共享服务器可包括ShareFile服务器等等。SaaS应用可包括Salesforce等等。Windows应用服务器可包括被构建以提供旨在本地Windows操作系统上运行的应用的任何应用服务器等等。企业资源504可以是内建式资源、基于云的资源等等。可通过移动设备502直接地或通过访问网关560访问企业资源504。可经由传输网络由移动设备502访问企业资源504。传输网络可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、私有网络等等。
企业服务508可包括认证服务558、威胁检测服务564、设备管理器服务524、文件共享服务568、策略管理器服务570、社交集成服务572、应用控制器服务574等等。认证服务558可包括用户认证服务、设备认证服务、应用认证服务、数据认证服务等等。认证服务558可以使用证书。该证书可由企业资源504等等存储在移动设备502上。存储在移动设备502上的证书可存储在移动设备上的加密位置中,该证书可暂时存储在移动设备502上,供认证时使用等。威胁检测服务564可包括入侵检测服务,未经授权访问尝试检测服务等等。未经授权访问尝试检测服务可包括未授权尝试访问设备、应用、数据等等。设备管理服务524可包括配置、供应、安全、支持、监测、报告和退出服务。文件共享服务568可包括文件管理服务、文件存储服务、文件协作服务等等。策略管理器服务570可包括设备策略管理服务、应用策略管理器服务、数据策略管理器服务等等。社交集成服务572可包括接触集成服务、协作服务、社交网络集成,诸如Facebook、Twitter和LinkedIn等等。应用控制器服务574可包括管理服务、供应服务、部署服务、分配服务、撤销服务、封装服务等等。
企业移动性技术架构500可包括应用商店578。应用商店578可包括未封装的应用580、预封装的应用582等等。应用可从应用控制器574填入应用商店578。可由移动设备502通过访问网关560、通过公共互联网548等等访问应用商店578。应用商店可设置有直观和易于使用的用户接口。应用商店578可以提供对软件开发工具包584的访问。软件开发工具包584可给用户提供通过如在本说明书中先前描述地对应用进行封装来安全化由用户选择的应用的能力。然后,使用软件开发工具包584封装的应用通过使用应用控制器574将其置于应用商店578中来对移动设备502可用。
企业移动技术架构500可包括管理和分析能力588。管理和分析能力588可提供与如何使用资源、多久一次使用资源等等相关的信息。资源可包括设备、应用、数据等等。如何使用资源可包括哪些设备下载哪些应用,哪些应用访问哪些数据等等。资源被多久使用一次可包括应用多久被下载一次,一组特定的数据被应用访问了多少次等等。
图6是另一说明性企业移动管理系统600。为了简化起见,上面参考图5所述的移动管理系统500的某些组件已被省略。图6所示的系统600的架构在许多功能方面类似于上面参考图5所述的系统500的架构,并且可以包括未在上面提到的另外功能。
在此情况下,左手侧表示具有接收器604的登记的移动设备602,其与基于云服务的网关606(“云网关”)交互以访问各种企业资源608和服务609(诸如在上面右手侧所示的Exchange、Sharepoint、PKI资源、Kerberos资源、证书发行服务。云网关606还可包含访问网关和应用控制器功能。虽然未具体示出,移动设备602还可以与企业应用商店(“StoreFront”)交互用于选择和下载应用。
接收器604充当用于在企业数据中心托管的Windows应用/桌面的UI(用户接口)媒介,,其使用诸如可从Citrix获得的HDX/ICA协议的远程显示协议来访问。接收器604还支持移动设备602上的本地应用的安装和管理,诸如本地iOS或Android应用。例如,在以上图中所示的受管应用610(邮件、浏览器、封装的应用)全都是在设备上本地执行的本地应用。这种架构的接收器604和移动应用管理协议起到提供策略驱动管理能力以及诸如连接和SSO(单点登录)到企业资源/服务608的功能的作用。移动应用管理协议的一个示例是可从Citrix获得的MDX(移动经验技术)协议。接收器604处理主要用户到企业的认证,通常到带有到其它云网关组件的SSO的访问网关(AG)的认证。接收器604从云网关606获得策略,以控制移动设备602上的受管应用610的动作。
本地应用610与接收器604之间的安全进程间通信(IPC)链接612表示管理通道,该管理通道允许接收器提供通过管理框架614“封装”每个应用来执行的策略。管理框架614例如可以是可从Citrix获得的MDX框架。IPC链接612还允许接收器604提供实现连接和SSO到企业资源608的凭证和认证信息。最后,IPC链接612允许管理框架614调用由接收器604所实施的用户界面功能(诸如在线认证和离线认证)。
接收器604和云网关606之间的通信本质上为管理信道从管理框架614的扩展,该管理框架614封装每个本机受管应用610。管理框架614向接收器604请求策略信息,该接收器604反过来向云网关606请求策略信息。管理框架614请求验证,且接收器604登录云网关606的网关服务部分,其例如可以是可从Citrix获得的NetScaler访问网关。接收器604还可调用云网关606上的支持服务,其可产生输入材料以导出用于本地数据仓库616的加密密钥,或提供客户端证书,其可实现对PKI保护资源的直接认证,如下面更充分地解释的。
更详细地,管理框架614“封装”每个受管应用610。这可经由明确的构建步骤或经由构建后的处理步骤合并。管理框架614可在首次启动应用610时与接收器604“配对”,以初始化安全IPC链接612并获得该应用的策略。管理框架614可以执行本地应用的策略的相应部分(诸如接收器登录的依赖关系和限制如何可以使用本地OS服务或本地OS服务如何可以与应用610交互的遏制策略中的某些遏制策略)。
管理框架614可以使用接收器604在安全IPC链接612上所提供的服务以促进认证和内部网络访问。对于私有和共享数据仓库616(容器)的密钥管理还可由在受管应用610和接收器604之间的适当的相互作用进行管理。只有经过在线认证后仓库616可以是可用的,或如果策略允许,可在离线认证后可用。第一次使用仓库616可需要在线认证,且离线访问可被限制在再次需要在线认证之前的大多数策略刷新时段。
可发生直接从个人受管应用610通过云网关606的接入网关功能对内部资源的网络访问。管理框架614负责精心安排代表每个应用610的网络访问。接收器604可通过提供以下在线认证获得的次级凭证限制的合适的时间来促进这些网络连接。可以使用网络连接的多种模式,诸如反向web代理连接和端到端的VPN式隧道618。
邮件和浏览器受管应用610具有特定的状态,并可使用通常可能不可用于任意封装的应用的设施。例如,邮件应用可使用特定后台网络访问机制,其允许其在延长的时间周期访问邮件服务器(例如,Exchange),而不要求完整的AG登录。浏览器应用可使用多个私有数据仓库来隔离不同类型的数据。
该架构支持各种其它安全特征的结合。例如,云网关606(包含其网关服务)在一些情况下可能不需要验证诸如活动目录(AD)密码的目录服务密码。企业能够自行决定在一些情况下目录服务密码是否用作一些用户的认证因素。如果用户是在线或离线(例如,连接或不连接到网络的),则可使用不同的认证方法。
设置认证是一种特征,其中云网关606可识别被允许访问需要强认证的高级别分类的数据的受管本地应用610,并确保在执行适当的认证后才允许对这些应用的访问,即使这意味着在事先弱级别的登录之后用户需要重新认证。
这种解决方案的另一个安全特征是对移动设备602上的数据仓库616(容器)的加密。可加密仓库616,使得所有在设备上的数据,包括文件、数据库和配置,得到保护。对于在线仓库,密钥可存储在服务器(例如,云网关606)上,且对于离线仓库,可由用户密码保护密钥的本地副本。当数据被本地存储在设备602上的安全容器616中时,优选最少使用AES 256加密算法。
还可实现其它安全容器的特征。例如,可包括日志特征,其中应用610内部发生的所有安全事件被记录并报告给后端。可支持数据擦除,诸如,如果应用610检测到篡改,关联的加密密钥可用随机数据写覆盖,在用户数据销毁的文件系统上不留下痕迹。截图保护是另一特征,其中应用可防止任何数据以截图方式存储。例如,密钥窗口的隐藏属性可设置为YES。这可导致当前显示在屏幕上的无论是什么内容都将被隐藏,造成空白屏幕截图,其中任何内容正常驻留。
本地数据传输可被防止,例如通过防止任何数据本地传送到应用容器之外,例如,通过复制其或将其发送到外部应用。键盘缓存特征可操作以禁用敏感文本字段的自动更正功能。SSL证书验证可以是可操作的,使得应用具体验证服务器SSL证书,而不是其被存储在密钥链中。可使用加密密钥生成特征,使得使用由用户提供的通行码产生在设备上用于加密数据的密钥(如果需要离线访问)。如果不需要离线访问,其可以与在服务器端随机生成并存储的另一个密钥进行逻辑异或。密钥导出功能可运行,使得由用户密码产生的密钥使用KDF(密钥导出功能,特别是PBKDF2),而不是创建它的加密散列。后者使得密钥易受暴力或字典攻击。
此外,一个或多个初始向量可用于加密方法中。初始化向量可导致相同的加密数据的多个副本,以产生不同的密文输出,防止重放和密码攻击。即使偷走加密密钥,如果不知道用于加密数据的初始化向量,也可阻止攻击者解密任何数据。此外,可使用认证接解密,其中仅当用户在应用中已经验证之后,才解密应用数据。另一个特征可涉及在存储器中的敏感数据,只有当需要它时其可保持在存储器中(而不是在磁盘中)。例如,登录后登录凭证可从存储器中擦除,且不存储加密密钥和objective-C示例变量内的其它数据,因为可它们可容易地引用。相反,可为这些手动分配存储器。
可实现不活动超时,其中在不活动的策略定义的周期之后,终止用户会话。
可以以其他方式阻止管理框架614的数据泄露。例如,当应用610置于后台时,可在预定的(可配置的)时间周期之后清空存储器。当后台运行时,可获取应用的最后显示屏幕的快照以加快前台处理。该截图可包含机密数据,且因此应被清除。
另一个安全特征涉及OTP(一次性口令)620的使用,而无需用于访问一个或多个应用的目录服务622密码的使用。在一些情况下,一些用户不知道(或不允许知道)他们的目录服务密码,所以这些用户可使用OTP 620认证,诸如通过使用类似于SecurID的硬件OTP系统(OTP还可由不同的供应商来提供,诸如Entrust或Gemalto)。在某些情况下,在用户用用户ID认证之后,用OTP 620发送文本到用户。在某些情况下,这仅可被实施用于在线使用,其中提示为单字段。
可实施用于这些应用610的离线认证的离线密码,其中经由企业策略允许离线使用。例如,企业可希望以这种方式访问StoreFront。在这种情况下,接收器604可要求用户设定定制的离线密码,且不使用目录服务密码。云网关606可提供策略以控制和执行关于最小长度、字符类组合和密码寿命的密码标准,诸如由标准Windows Server密码复杂性要求所描述的,尽管这些要求可能被修改。
另一功能涉及到作为次级凭证用于特定应用610的客户端侧证书的启用(用于经由管理框架微VPN功能访问KPI受保护web资源的目的)。例如,电子邮箱应用可利用该种证书。在这种情况下,可支持使用移动数据同步协议(例如,由ActiveSync采用的协议)的基于证书的认证,其中来自接收器604的证书可由云网关606取回,并在密钥链中使用。每个受管应用可具有一个相关联的客户端证书,通过在云网关中定义的标签识别。
云网关606可与企业专用web服务进行交互,以支持客户端证书的发布,允许相关的受管应用来认证内部PKI保护的资源。
可增强接收器604和程序管理框架614,以支持获取和使用客户端证书,以用于认证到内部PKI保护的web资源。可支持多于一个的证书,诸如以匹配各种安全等级和/或分离的要求。证书可以被电子邮件和浏览器受管应用使用,并且最终被任意封装的应用使用(假设那些应用使用web服务类型通信模式,其中管理框架介导https请求是合理的)。
在iOS上的管理框架客户端证书支持可依赖于将PKCS 12BLOB(二进制大型对象)导入每个受管应用中的iOS密钥链中,以用于每个使用周期。管理框架客户端证书支持可使用具有私有内存中密钥存储的HTTPS实现方式。客户端证书可能不会存在于iOS的密钥链中,并不会被存留,除非可能在强保护的“仅在线”数据值中。
双向的SSL还可通过请求将移动设备602认证到企业来进行实施以提供额外的安全性,并且反之亦然。也可实现认证到云网关606的虚拟智能卡。
有限的和全部的Kerberos支持可以是额外的特征。全部的支持特征涉及对目录服务622进行完全Kerberos登录的能力,使用目录服务密码或信任的客户端证书,并获得Kerberos服务标签来响应HTTP协商认证挑战。有限的支持特征涉及在AFEE中的约束授权,其中AFEE支持调用Kerberos协议过渡,因此其可获取和使用Kerberos服务标签(针对于受约束的授权)以响应于HTTP协商认证挑战。这种机制以逆向web代理(也叫做CVPN)模式工作,并且当http(但不是https)连接以VPN代理时,以微VPN模式工作。
另一个特征涉及应用容器的锁定和擦除,其检测到越狱或获得超级权限时可自动发生,并作为来自管理控制台的推送的命令,并可包括远程擦除功能,即使当应用610没有运行时。
可支持StoreFront和应用控制器的多站点架构或配置,允许从失败情况下的几个不同位置之一服务用户。
在一些情况下,可允许受管应用610经由API(例如OpenSSL)访问证书和私有密钥。企业的可信的受管应用610可被允许以应用客户端证书和私有密钥执行特定公共密钥操作。可相应地识别和处理各种使用情况,诸如当应用行为类似于浏览器且不需要证书访问时,当应用读取了“我是谁”的证书时,当应用使用证书来建立安全会话令牌时,以及当应用使用用于重要数据数字签名(例如,交易日志)或用于临时数据加密的私有密钥时。
受管移动应用的识别
在图7中,示出了说明性移动设备管理系统700。系统700在很多方面可能与分别参考图5和图6描述的系统500和600相似。系统700为了简单起见还可忽略上文所述的某些组件,并可包含上文没有提及的额外的特征。
移动设备管理系统700可包含企业系统702,企业系统702与一个或多个移动设备704经由网络706进行信号通信。企业系统可包含企业应用服务器708、访问网关710和诸如企业资源712的一个或多个计算资源。
企业应用服务器708可在很多方面与参考图5讨论的应用商店578相似。企业应用服务器708可提供对可用于安装在诸如移动设备704的移动设备处的移动应用714的访问。如上面所看到的,移动应用714可包含安全的和非安全的移动应用。因此,移动应用714可对应上面参考图5描述的未封装的应用180和预封装的应用182。还如上面所看到的,安全移动应用可用安全应用封装器封装,安全应用封装器实现对安全移动应用的执行的管理。就这一点而言,安全移动应用、封装的移动应用或登记的移动应用还可被称为受管移动应用。
企业应用服务器708可还提供对分别与移动应用714有关的应用策略716和应用元数据718的访问。应用策略716可表示通过其获取对移动应用的管理的机制的其中一个。如上面所看到的,应用策略716可定义关于哪个用户可利用受管移动应用、受管移动应用可访问哪个计算资源、当在移动设备处执行时在受管移动应用处可获取的特征以及其组合的权利和权益。
应用元数据718指的是描述和/或识别移动应用的信息。在新移动应用的创建期间可产生应用元数据718并经由企业应用服务器708使得应用元数据718变得可获取,当新的移动应用被发布到企业应用服务器时,应用元数据718可包含例如移动应用的名称、移动应用的大小、用于移动应用的独特标识符、移动应用的版本等等。如在下面进一步讨论的,应用元数据718还可包含对验证移动应用的身份有用的信息。
访问网关710可促进从在诸如移动设备704的移动设备处运行的受管移动应用访问企业资源712。访问网关710可以在许多方面与分别参考图5和图6描述的访问网关160和云网关606相似。企业资源712可对应于分别参考图5和图6描述的企业资源504和608和企业服务508和609。一旦被验证、认证并授权,移动应用可经由如上所述的访问网关710访问企业资源712。
受管移动应用720和未受管移动应用722均可位于移动设备704。访问管理器724也可位于移动设备704处并管理在移动设备上的受管移动应用720的执行。包含受管和未受管移动应用两者的移动设备可被称为未受管移动设备,因为企业可只有能力对该移动设备处的受管移动应用进行控制,并没有能力对该移动设备的诸如未受管应用的其他方面进行控制。因为移动设备704包含受管移动应用720和未受管移动应用722,以图7中的示例的方式示出的移动设备可被称为未受管移动设备并可表示个体的个人移动设备。
访问管理器应用724(“访问管理器”)可在很多方面与参考图6讨论的接收器604相似。如下文中讨论的,访问管理器724可管理用户认证、移动应用身份的验证,以及移动应用策略的强制执行。用户可访问企业应用服务器708(例如,经由web浏览器)以首先下载访问管理器724并将其安装到移动设备704。如上面所看到的,访问管理器724还可充当对企业应用服务器708的接口,使得用户能够浏览、下载并安装可从企业系统702获得的移动应用。
当用户下载受管移动应用720达到移动设备704处时,访问管理器724还可下载与受管移动应用720有关的应用元数据718和与受管移动应用有关的任何应用策略716。如上面所看到的,访问管理器724可从企业应用服务器708接收用于移动应用720的应用元数据718。在一些示例实现中,访问管理器724可在诸如图5的安全数据容器528和/或图6的安全数据仓库616的移动设备704的安全位置处存储应用元数据718和应用策略716。
访问管理器724还可保持当前安装在移动设备704处并在访问管理器的管理下的受管移动应用的清单726。在安装新受管移动应用之后,访问管理器724可将新条目添加到受管移动应用清单726。清单726中的新条目可对应于在移动设备704处安装的新受管移动应用。
如上面看到的,访问管理器724还被配置成验证受管移动应用720的身份,例如,以便确保受管移动应用已经准确地识别自己和/或以便确保受管移动应用在安装在移动设备704之后未被篡改。访问管理器可依赖于包含在应用元数据718中的识别信息728,以便验证受管移动应用720的身份。在一些示例实施方式中,访问管理器724可依赖于受管移动应用720运行于其上的移动平台,以便验证受管移动应用的身份。移动平台的操作系统可产生识别信息,访问管理器724可将该识别信息与用于受管移动应用的存储的识别信息进行比较。如果存储的识别信息与从操作系统接收的识别信息匹配,则访问管理器724将受管移动应用720识别为信任的移动应用并授予对企业资源712的访问权。如果用于受管移动应用的存储的识别信息与从操作系统接收的识别信息不匹配,则访问管理器724将受管移动应用720识别为可疑的或不可信任的移动应用并拒绝对企业资源712的访问权。如上面所看到的,访问管理器724还可授予或拒绝在移动设备704本身处的本地计算资源的访问权。例如,移动设备704处的本地计算资源可包含照相机或其他记录硬件;诸如GPS的定位服务、诸如移动或互联网服务的网络服务、诸如蓝牙的通信服务、诸如剪切并粘贴和截屏幕特征的界面命令。
在其他示例实施方式中,访问管理器724可挑战受管移动应用720以识别自己。访问管理器724可向受管移动应用720发出挑战请求并确定期望的挑战响应。期望的挑战响应是期望从准确地识别自己并未被篡改的受管移动应用接收的响应。如在下文中进一步解释的,只有准确地识别自己并未被篡改的移动应用可能能够产生期望的挑战响应。如果从受管移动应用720接收的响应与期望的响应匹配,则访问管理器724可将受管移动应用720识别为信任的移动应用。将受管移动应用720识别为信任的移动应用之后,访问管理器可向受管移动应用提供访问企业资源712所需的证书。如果从受管移动应用720接收的响应与期望的响应不匹配,则访问管理器将受管移动应用识别为可疑的或不可信任的移动应用并拒绝对企业资源712的访问权。再次地,访问管理器724可取决于从受管移动应用720接收的响应与期望的响应是否匹配来授予或拒绝对在移动设备704处的本地计算资源的访问。
期望的响应可至少部分地基于包含在与受管移动应用720有关的应用元数据718中的识别信息728。当创建移动应用自身时,可创建识别信息。例如,识别信息可以是原始数字证书或可被用于产生应用签名的原始信息。期望的响应可因此包含或以其他方式对应于识别信息728。如下文中进一步解释的,提交假身份的移动应用或者随后被篡改的移动应用不能够产生期望的响应,并因此不能够获取对计算资源的访问权。
可有选择地采用各种方式,以验证受管移动应用的身份。最终实现的特定方式可取决于移动设备704的移动平台和操作系统。例如,可从加利福尼亚州山景的谷歌公司获得的Android(安卓)操作系统可包含访问管理器通过其强识别请求对计算资源的访问的移动应用的机制。本领域的专业人士将认识到,安卓操作系统可包含请求应用的签名证书的内置机制,访问管理器724可利用该内置机制来验证请求对诸如企业资源712的计算资源的访问权的受管移动应用的身份。还将认识到,安卓操作系统可阻止应用在安装之后被篡改,并可阻止移动应用使用为不同移动应用创建的签名证书。以此方式,访问管理器724可依赖于由移动平台的操作系统提供的签名证书,以便验证受管移动应用的身份。下文中将更详细地讨论使用签名证书对应用身份的验证。
然而,其他操作系统可能不包含访问管理器724可依赖以验证请求对计算资源的访问权的受管移动应用的身份的内置机制。例如,可从加利福尼亚州库比蒂诺的苹果公司获得的iOS操作系统可能不包含请求用于受管移动应用的签名证书的机制。此外,用于iOS中的进程间通信的方法可不包含验证在通信的每一端处的移动应用的身份的机制。在iOS平台上运行的移动应用可交换通信,例如,经由复制并粘贴过程、经由同意的URL方案或经由网络。
在一些示例实现中,访问管理器724和受管移动应用720可被配置成诸如经由传输控制协议(TCP)来经由网络进行通信。在此示例中,访问管理器724可打开TCP套接字并等待从受管移动应用720接收连接请求。然而,应理解,TCP不包含识别请求对访问管理器724的连接的受管移动应用的机制。因为iOS平台可能不包含获取用于进行请求的移动应用的签名证书的机制,额外的步骤可被采用以验证请求的移动应用的身份。除了依赖于签名证书之外,在此示例中的访问管理器724可至少部分地取决于嵌入到和/或得自如下文提出的受管移动应用720的识别信息732。
上文讨论的封装过程可配置移动应用以作为受管移动应用运行。就这点而言,封装过程可将管理框架730包括(例如,插入、嵌入、封装等)在受管移动应用720中。管理框架730可对应于分别参考图5和图6描述的安全应用封装器120和管理框架614。如上文中参考图6讨论的,管理框架730使得访问管理器724能够管理移动应用720的操作。
受管移动应用720还可采用管理框架730来向访问管理器724识别自己。具体地,管理框架730可在身份验证过程中产生对于由访问管理器724构成的挑战的响应。
在一些示例实现中,受管移动应用720的管理框架730可被配置成产生应用签名。管理框架730还可被配置成提供至少部分地基于该应用签名的挑战响应。应用签名可反过来基于嵌入到和/或从受管移动应用720派生的识别信息732。换言之,管理框架730可基于与受管移动应用720有关的静态信息和动态信息产生应用签名。
静态信息可以是在上文所述的封装过程中嵌入到受管移动应用720中的秘密信息。例如,秘密信息可包含在封装过程中嵌入到应用的一个或多个标识令牌734。标识令牌734可以例如是嵌入到受管移动应用720的二进制码中的随机字母数字字符串。管理框架730可被配置成当构建应用签名时提取标识令牌734,以便响应从访问管理器724接收的挑战。
动态信息可以是从受管移动应用720派生的标识令牌。例如,派生的标识令牌可以是在诸如移动应用二进制码、应用图标、应用框架等的移动应用包的各种组件上使用选择性散列函数获取的散列值。访问管理器724可在身份验证过程中以特别的方式派生该动态识别信息。一个或多个选择性散列函数可被用于产生表示派生的标识令牌的一个或多个选择性散列值。访问管理器可利用管理框架730以协助按需从受管移动应用720派生动态识别信息。
管理框架730还可被配置成响应于从访问管理器724接收的挑战来构建应用签名。应用签名可包括从受管移动应用720提取的静态信息和从受管移动应用派生的动态信息的组合。管理框架730可还被配置成以特定的方式在应用签名中排列静态信息和动态信息。因此,可通过嵌入到受管移动应用的静态信息、从移动应用派生的动态信息和应用签名中的静态和动态信息的排列来获取受管移动应用720的强识别。
如上面所看到的,访问管理器724可被配置成当挑战受管移动应用720时产生期望的响应。因此,访问管理器724可同样地被配置成构建期望的应用签名。访问管理器724可基于包含在用于受管移动应用720的应用元数据718中的识别信息728来构建期望的应用签名。访问管理器还可被配置成从受管移动应用720动态地派生动态信息。而且,访问管理器724可被同样地配置成以特定的方式在期望的应用签名中排列静态信息和动态信息。
为了防范重放攻击,访问管理器724可向受管移动应用720提供随机数(例如,任意的和随机的数),以供响应于挑战而使用。访问管理器724可使用期望的应用签名对随机数进行散列,以便获取期望的散列值。相似地,受管移动应用的管理框架730可使用接收的随机数对应用签名进行散列,以便获取响应散列值。响应于来自访问管理器724的挑战,受管移动应用720可因此向访问管理器提供从应用签名获取的计算的散列值和从访问管理器接收的随机数。访问管理器可因此将期望的散列值与接收的散列值进行比较。当期望的散列值与接收的散列值匹配时,访问管理器724还可将受管移动应用720识别为信任的移动应用。
参考图8,示出了说明性应用签名和挑战响应的框图。如上面所看到的,受管移动应用800可响应于来自访问管理器804的挑战,产生应用签名802。应用签名802可包含嵌入到受管移动应用800中的标识令牌806和从受管移动应用派生的标识令牌808。如在图8中可见的,受管移动应用800可以以在应用签名802中的特定方式排列嵌入的标识令牌806和派生的标识令牌808。作为示例,受管移动应用800可以以特定顺序连接嵌入的标识令牌806和派生的标识令牌808,以构建应用签名。作为另一个示例,受管移动应用800可连接嵌入的标识令牌806的部分和派生的标识令牌808的部分,以构建应用签名。应理解,可有选择地采用构建应用签名的各种方式。还如上面所看到的,访问管理器804向受管移动应用800提供随机数810。受管移动应用800可采用散列函数812以基于应用签名802和随机数810来产生散列值814。响应816于接收的挑战,受管移动应用800可向访问管理器802提供散列值814。
为了验证受管移动应用800的身份,访问管理器804可基于与应用元数据822和从受管移动应用派生的标识令牌808一起存储的标识令牌820构建期望的应用签名818。访问管理器804还可采用散列函数812基于来自应用元数据822的标识令牌820和随机数810来产生期望的散列值824。响应于挑战,访问管理器804可接收挑战响应816并将挑战响应中的散列值814与期望的散列值824进行比较。
应理解,通过本公开的益处,只有从企业应用服务器(图7中的708)接收的未修改的移动应用可产生期望的散列值824。还应理解,期望的应用签名818可以不被持久地存储在移动设备中,而是根据验证要求访问计算资源的移动应用800的身份的需要来重构。上面提出的方式因此表示强识别移动应用以便确定是否授予或拒绝移动应用访问计算资源的机制。
图9-14示出与验证受管移动应用的身份、一旦验证就强制执行应用策略以及控制受管移动应用的操作的方面有关的示例方法步骤。
在图9中,示出了用于管理未受管移动设备处的移动应用的示例方法步骤的流程图900。企业可创建受管移动应用,受管移动应用被配置成运行在移动设备(例如,未受管移动设备)处并被配置成从移动设备访问计算资源(框902)。企业还可配置受管移动应用在移动设备处被访问管理器应用管理。如上面所看见的,企业可封装或以其他方式包含管理框架(例如,MDX框架),管理框架使得访问管理器能够验证受管移动应用的身份并控制受管移动应用的操作。
创建受管移动应用之后,企业还可创建与受管移动应用有关的识别信息(框904)。例如,识别信息可以是已签名的应用证书和/或包含标识令牌的应用元数据。在一些示例实现中,可将标识令牌嵌入到受管移动应用中(例如,嵌入到应用二进制码中)。用户可下载并在移动设备处安装访问管理器(框906)。访问管理器可向用户提供接口,从该接口浏览企业应用服务器(例如,企业应用商店)并选择各种受管移动应用以下载到移动设备。访问管理器可要求用户提供访问凭证,以便登录企业应用服务器。可将用户与用户简档相关联,并可将用户简档与各种权利和权益相关联。以此方式,作为可用于下载而向用户呈现的受管移动应用取决于分配给用户的权利和权益,例如,企业应用服务器只呈现用户有权使用的受管移动应用。
已经选择受管移动应用之后,用户可经由访问管理器下载移动应用并将移动应用安装在移动设备处(框908)。企业应用服务器还可提供与移动应用有关的识别信息和与移动应用有关的访问策略。因此,当用户下载并安装受管移动应用时,访问管理器还可下载并存储与移动应用有关的识别信息(框910)和应用策略(框912)。
已经在移动设备处安装移动应用之后,用户可利用移动应用来访问计算资源。当移动应用试图访问计算资源,移动应用可登记到访问管理器并请求对资源的访问(框914)。在接收到访问计算资源的请求之后,访问管理器可获取从企业应用服务器接收并存储在移动设备处的识别信息(框916)。访问管理器还可从移动操作系统接收诸如签名的应用证书的识别信息,或者从移动应用本身接收诸如至少部分地基于应用签名的散列值的识别信息(框918)。
访问管理器然后可将存储的识别信息与接收的识别信息进行比较(框920)。如果接收的识别信息与存储的识别信息匹配(框922:是),则访问管理器可确定移动应用是有效的并将移动应用识别为信任的移动应用。相应地,访问管理器可允许受管移动应用访问计算资源(框924)。例如,访问管理器可向移动应用提供建立与企业资源的连接并访问企业资源所需的访问凭证、证书、密钥等等。在一些示例实现中,与移动应用有关的应用策略可确定移动应用访问并使用计算资源的方式。如果接收的识别信息与存储的识别信息不匹配(框924:否),则访问管理器可确定移动应用是无效的并不将移动应用识别为信任的移动应用并从而阻止移动应用访问计算资源(框926)。
在图10中,示出了用于在未受管移动设备处准备受管移动应用用于受管操作的示例方法步骤的流程图1000。如在上面看到的,一些移动操作系统可能不提供访问管理器可用以验证移动应用的身份的内置机制。因此,移动应用可被配置,从而它可强识别自身。企业可使用工具包以将移动应用准备为受管移动应用(框1002)。工具包可添加将移动应用转为受管移动应用的功能(例如,MDX框架)(框1004)。工具包还可产生标识令牌(例如,随机字符串)并将其嵌入到受管移动应用中(框1006)。添加到受管移动应用的功能可包含使得受管移动应用能够提取、排列并组合嵌入的标识令牌以便创建应用签名的功能。添加到受管移动应用的功能还可包含使得受管移动应用能够当构建应用签名时动态地派生标识令牌并排列和组合派生的标识令牌和嵌入的标识令牌的功能。而且,添加到受管移动应用的功能可额外地包含使得受管移动应用能够至少部分基于应用签名产生散列值的功能。
工具包还可产生用于受管移动应用的应用元数据,其包含嵌入到移动应用的标识令牌(框1008)。企业然后可向企业应用服务器发布受管移动应用和与移动应用有关的应用元数据和任何应用策略(框1010)。企业应用服务器可从移动设备接收下载所选择的移动应用的请求(框1012)。如果访问管理器还未被安装在移动设备处(框1014:否),则企业应用服务器可首先将访问管理器下载到移动设备(框1016)。一旦将访问管理器安装在移动应用处(框1014:是),企业应用服务器可响应于接收到请求,将所选择的移动应用下载到移动设备(1018)。如上面所看到的,企业应用服务器还可将与所选择的移动应用有关的应用元数据下载到移动设备,以供在移动设备处存储。访问管理器可具有对应用元数据的访问权,从而使得访问管理器能够验证与应用元数据有关的移动应用的身份。
在图11中,示出了用于在未受管移动设备处初始化受管移动应用的示例方法步骤的流程图1100。当第一次激活并初始化移动设备(框1102)时,访问管理器应用可以是启动的最早的移动应用的其中一个(框1104)。例如,访问管理器可自动启动为移动设备的启动过程的一部分和/或以响应在移动设备处接收的用户输入。当访问管理器应用启动时,访问管理器可向用户要求访问凭证(例如,用户名和密码)(框1106)。访问管理器然后可向企业服务器提供访问凭证用于认证(框1108)。如果企业服务器不认证用户(框1110:否),则访问管理器可阻止移动设备处的任何受管移动应用访问计算资源(框1112)。例如,访问管理器可抑制为移动应用提供与企业资源建立连接所需的访问凭证。
如果企业服务器确实认证了用户(框1110:是),则企业服务器可验证访问管理器本身的身份(框1114),以便确保访问管理器应用未被篡改。企业服务器可以与受管移动应用相同的方式验证访问管理器的身份。作为示例,用于对访问管理器签名的签名证书可被用于验证访问管理器应用。例如,企业系统可验证受管移动应用。如果访问管理器未被验证有效(框1116:否),则受管移动应用的管理框架可将访问管理器看作在移动设备中缺少的,并且受管移动应用从而可被阻止访问计算资源(框1112)。
如果企业服务器确实验证了访问管理器应用的身份(框1116:是),则受管移动应用可被启动(框1118)。在启动时和操作期间,移动应用可登记到访问管理器,以便访问管理器可验证受管移动应用的身份(框1120)。如果访问管理器不能验证受管移动应用的身份有效(框1122:否),则访问管理器可阻止受管移动应用访问计算资源(框1124)。如果访问管理器成功地验证受管移动应用的身份(框1122:是),则访问管理器可将受管移动应用识别为信任的移动应用(框1126)。如果受管移动应用刚刚在移动设备启动,则访问管理器可更新由访问管理器管理的移动应用的清单,以包含该信任的移动应用(框1128)。已经验证受管移动应用的身份之后,访问管理器还可允许信任的移动应用访问计算资源(框1130)。
在图12中,示出了用于验证具有第一类型的移动操作系统的未受管移动设备处的受管移动应用的示例方法步骤的流程图1200。在此示例中,移动操作系统可不包含访问管理器可用以验证移动应用的身份的内置机制。访问管理器可从受管移动应用接收试图访问计算资源的请求(框1202)。接收到请求之后,访问管理器可发起与受管移动应用的握手,以开始身份验证过程(框1204)。受管移动应用可例如通过向访问管理器提供独特的应用标识符来向访问管理器确认自己身份(框1206)。反过来,访问管理器可利用应用标识符来取回与移动应用有关的应用元数据(框1208)。访问管理器还可产生随机数并将随机数提供给移动应用(框1210)。
访问管理器和受管移动应用然后可开始构建用于验证移动应用的身份并确定移动应用是否为信任的移动应用的应用签名和对应的散列值的过程。移动应用可提取嵌入的标识令牌(框1212)并派生用于构建应用签名的派生的标识令牌(框1214)。移动应用然后可排列并组合所提取的标识令牌和所派生的标识令牌以获取应用签名(框1216)。移动应用然后可使用应用签名和从访问管理器接收的随机数来计算散列值(框1218)。
已经将随机数提供给移动应用之后,访问管理器可从与移动应用有关的应用元数据取回嵌入的标识令牌(框1220)。访问管理器可相似地从移动应用派生用于构建期望的应用签名的派生的标识令牌(框1222)。访问管理器然后可排列并组合从应用元数据取回的嵌入的标识令牌和所派生的标识令牌以获取期望的应用签名(框1224)。访问管理器然后可使用期望的应用签名和提供给移动应用的随机数来计算期望的散列值(框1226)。
应理解,如果从应用元数据取回的嵌入的标识令牌与从移动应用提取的嵌入的标识令牌相同;如果从访问管理器派生的标识令牌与从移动设备派生的标识令牌相同;如果由访问管理器构建的期望的应用签名和由移动应用构建的应用签名相同;以及如果移动应用使用由访问管理器提供以计算散列值的随机数,那么由访问管理器计算的散列值应该与由移动应用计算的散列值相同。因此,移动应用可响应于访问管理器而提供散列值(框1228),以及访问管理器可将期望的散列值与从移动应用接收的值进行比较(框1230)。如果期望的散列值与接收的散列值不匹配(框1232:否),则访问管理器可确定移动应用已经错误地识别自己、在安装到移动设备之后已被篡改等等。因此,访问管理器可拒绝移动应用访问计算资源(框1234)。如果期望的散列值与接收的散列值匹配(框1232:是),则访问管理器可将移动应用识别为信任的移动应用并允许信任的移动应用访问计算资源(框1236)。
在图13中,示出了用于验证具有第二类型的移动操作系统的未受管移动设备处的受管移动应用的示例方法步骤的流程图1300。在此示例中,移动操作系统可包含访问管理器可用以验证移动应用的身份的内置机制。访问管理器可从受管移动应用接收访问计算资源的请求(框1302)。访问管理器可向移动操作系统请求用于移动应用的独特的应用标识符(框1304)并接收应用标识符作为响应(框1306)。
基于用于移动应用的应用标识符,访问管理器可查询受管移动应用的清单(1308)。如果受管移动应用的清单不包含请求对计算资源的访问的移动应用(框1310:否),则访问管理器拒绝移动应用对资源的访问(框1312)。然而,如果受管移动应用的清单包含请求对计算资源的访问的移动应用(框1310:是),则访问管理器可向移动操作系统请求用于移动应用的应用证书(框1314)。
如上面所看到的,企业应用服务器可为在移动设备处安装的移动应用提供应用证书。应用证书可被存储在由访问管理器可访问的移动设备处的安全存储位置。因此,访问管理器可从移动操作系统接收所请求的应用证书(框1316)并取回存储的、由企业应用服务器提供的应用证书(框1318)。在一些示例实现中,访问管理器可计算用于每个证书的各自的散列值(1320),例如,通过使用SHA-1散列函数。访问管理器可将存储的证书的散列值与从移动操作系统接收的证书的散列值进行比较(框1322)。如果散列值匹配(框1324:是),则访问管理器可确定移动应用是信任的移动应用并允许移动应用访问计算资源(框1326)。如果散列值不匹配(框1324:否),则访问管理器可确定移动应用是不信任的移动应用并拒绝移动应用访问计算资源(框1312)。
在图14中,示出了用于在受管移动应用的操作期间强制执行应用策略的示例方法步骤的流程图1400。如上面所看到的,企业应用服务器可提供与在移动设备处安装的移动应用有关的应用策略。企业可定期地更新应用策略,以及访问管理器可因此被配置成在允许受管移动应用访问计算资源之前确保最近的最新的应用策略被存储在移动设备处。以这种方式,企业可向应用和应用功能授予或取消权益。
在访问管理器验证受管移动应用的身份(框1402)之后,访问管理器可取回与受管移动应用有关的且在移动设备处存储的应用策略(框1404)。访问管理器然后可向企业应用服务器查询与应用策略有关的策略信息(框1406),例如,策略日期、策略版本号等等。基于从企业应用服务器接收的策略信息,访问管理器可确定在移动设备处存储的应用策略是否是当前的(框1408)。作为示例,访问管理器可将从企业应用服务器接收的策略日期或策略版本与在移动设备处存储的应用策略的策略日期或策略版本进行比较。如果策略日期或策略版本不匹配,则访问管理器可确定在移动设备处存储的应用策略不是当前的(框1408:否)。如果策略日期或策略版本确实匹配,则访问管理器可确定在移动设备处存储的应用策略是当前的(框1408:是)。
如果应用策略不是当前的(框1408:否),则访问管理器可从诸如企业应用商店的企业系统取回与移动应用有关的当前策略(框1410)。访问管理器可下载当前应用策略并将当前应用策略存储在移动设备处的安全存储位置(框1412)。一旦访问管理器获取了应用移动应用的当前策略,受管移动应用可参考应用策略,以确定它是否可以访问或者使用期望的计算资源(框1414)。
例如,管理框架可配置受管移动应用以在访问或使用计算资源之前查询策略。作为示例,框架可配置受管移动应用以查询应用策略,以便确定可否将数据复制到移动设备处的另一个移动应用。在一些示例实现中,受管移动应用可仅仅将数据复制到移动设备处的其他受管移动应用。作为另一个示例,框架可配置受管移动应用以查询应用策略,以便确定移动设备是否可以捕获受管移动应用的屏幕截图。通过本公开的益处,将理解这些和其他示例。
如果应用策略允许受管移动应用访问或使用期望的计算资源(框1416:是),则框架可允许受管移动应用实施期望的动作(框1418)。然而,如果应用策略不允许受管移动应用访问或使用期望的计算资源(框1418:否),则框架可阻止受管移动应用实施期望的动作(框1420)。
具有移动设备管理的移动应用管理
尽管已经在未受管设备的环境中讨论了移动应用管理(MAM),还可相对于受管设备采用本公开的各方面。企业可结合移动应用管理利用移动设备管理(MDM),以进一步控制移动设备的操作。具体地,移动设备可登记到MDM系统,以在MDM系统和移动设备之间建立受管关系。一旦登记了移动设备,MDM系统可利用受管关系以强制执行策略、监视移动设备、向移动设备推送信息等等。
总而言之,MDM系统可获取关于移动设备的信息,在缺乏受管关系时,这种信息原本是不可获得的。这种信息可对应通过在移动设备处的应用不可发现或不可读取的设备级的设置。这种设备级设置可包含PIN或密码设置、加密设置、网络相关设置等等。这种信息还可包含关于当前运行在移动设备处的进程和安装于移动设备处的移动应用的信息(例如,应用目录)。MDM系统可进一步获取关于受管移动设备的额外的或其他类型的信息。MDM系统可将从受管移动设备获取的信息与各种策略进行比较,并作为响应采取各种动作。
至于设备PIN/密码,MDM系统可获取表示设备是否经由PIN/密码而受保护、PIN/密码的复杂性和PIN/密码的使用时间的信息。通过受管关系,MDM系统可获取关于设备的PIN/密码设置的信息。MDM系统可将此信息与支配设备PIN/密码的策略进行比较。作为示例,如果安全策略表示移动设备必须被PIN/密码保护且从移动设备获取的信息表示设备PIN/密码设置未被启用,那么MDM系统可将表示关于设备PIN/密码的安全策略的通知推送到受管移动设备。作为另一个示例,如果MDM系统确定设备PIN/密码不满足安全策略的复杂性请求,那么MDM系统可同样地向受管移动设备推送表示要求新的、更复杂的PIN/密码以遵守安全策略的通知。作为其他示例,如果安全策略表示必须定期地改变设备PIN/密码,则确定当前设备PIN/密码已过期时,MDM系统可向受管移动设备推送表示改变设备PIN/密码的需求的通知。
至于加密设置,MDM系统还可获取表示设备是否已经启用硬件加密的信息。通过受管关系,当确定安全策略要求硬件加密并且硬件加密当前在移动设备处未被启用时,MDM系统可启用受管移动设备处的硬件加密。MDM系统还可通过受管关系在受管移动设备处设置网络相关的设置。
MDM系统可额外地获取关于当前在受管移动设备处运行的进程的信息。MDM系统可将运行中的进程与恶意应用、程序或进程的清单进行比较,以便识别受管移动设备处的例如恶意软件。通过受管关系,MDM系统可杀死被识别为恶意软件或可能恶意的任何进程。MDM系统还可通过与移动设备的受管关系删除对应的恶意应用或程序。
相似地,MDM可获取在受管移动设备处安装的应用清单。MDM系统可将安装的应用清单与例如应用白名单或应用黑名单进行比较。应用白名单可以是被允许安装在移动设备处的移动应用的清单。如果安装的应用清单包含未出现在移动应用白名单上的应用,那么MDM系统可利用受管关系以删除该应用。应用黑名单可以是被禁止安装在移动设备处的移动应用的清单。如果安装的应用清单包含出现在移动应用黑名单上的应用,那么MDM系统可相似地利用受管关系以删除该应用。应理解,MDM系统可额外地利用受管关系以将移动应用推送到受管移动设备,以便控制哪个移动应用被安装在移动设备处。鉴于本公开,应理解,MDM系统可对在移动设备处安装的移动应用发挥更稳健的控制。如上所述,MAM可根据应用违反策略的确定来禁用在移动设备处安装的移动应用。然而,当结合MAM使用MDM时,可不止禁用移动应用,还可将其从移动设备彻底删除。MDM系统可向受管移动设备推送其他类型的信息。例如,MDM系统可利用受管关系以向移动设备推送应用更新或证书。证书可以例如为X.509设备证书。
在本公开中提供的公开内容提供若干个技术优势。总之,上文提出的方式使得企业能够安全并强识别移动应用,而不管移动平台。上文提出的方式还提供验证访问诸如认证凭证、数字证书、企业数据等等的可能敏感的数据的移动应用的身份的自动方式。实现上文提出的方式的企业还可通过允许个体使用他们的个人设备访问企业资源来减少受其管理的物理设备的数量。就这一点而言,企业可避免必须将整个设备登记到移动设备管理系统,并反而可只在移动应用管理系统中登记移动设备处的各种移动应用。结合上文提供的公开的益处,将理解这些和其他优势。
虽然已经以针对结构特征和/或方法动作的语言描述了本主题,但是应该理解的是,在所附权利要求中定义的主题不必限于以上所述的具体特征或动作。相反,上述的具体特征和动作作为所附权利要求的示例性实现来描述。

Claims (16)

1.一种管理对企业资源的访问的方法,包括:
在移动计算设备处运行访问管理器;
在所述移动计算设备处存储识别信息,所述识别信息对应于嵌入到在所述移动计算设备处安装的移动应用中的标识令牌;
至少部分地基于所述标识令牌和存储的所述识别信息,使用所述访问管理器验证所述移动应用,其中,验证所述移动应用包括
挑战所述移动应用以提供至少部分地基于所述标识令牌的响应,
至少部分地基于存储的所述识别信息来产生期望的响应,
将所述期望的响应与由所述移动应用提供的所述响应进行比较,以及
基于所述期望的响应是否与由所述移动应用提供的所述响应匹配,确定所述移动应用被成功地验证或者未被成功地验证;
当所述访问管理器对所述移动应用的验证不成功时,防止所述移动应用访问计算资源;
当所述访问管理器对所述移动应用的验证成功时,将所述移动应用识别为信任的移动应用;
允许所述信任的移动应用访问所述计算资源。
2.根据权利要求1所述的方法,还包括:
在将所述移动应用安装在所述移动计算设备处之前,将标识令牌嵌入所述移动应用;
配置所述移动应用以提取嵌入到所述移动应用中的标识令牌;以及
由所述移动应用提供的所述响应还基于从所述移动应用提取的所述标识令牌。
3.根据权利要求2所述的方法,其中,验证所述移动应用还包含:
使用所述访问管理器从所述移动应用派生一个或多个标识令牌;
基于从所述移动应用派生的所述一个或多个标识令牌的排列和对应于嵌入到所述移动应用中的所述标识令牌的存储的所述识别信息来产生期望的应用签名;以及
还基于所述期望的应用签名来产生所述期望的响应。
4.根据权利要求3所述的方法,其中,验证所述移动应用还包含:
向所述移动应用提供随机数;
使用所述期望的应用签名和所述随机数计算期望的散列值;以及
其中,所述期望的响应是所述期望的散列值。
5.根据权利要求1所述的方法,还包括:
使用所述访问管理器在所述移动计算设备处打开传输控制协议套接字;
等待所述移动应用以所述传输控制协议套接字建立与所述访问管理器的连接;以及
其中,当所述移动应用以所述传输控制协议套接字建立与所述访问管理器的连接时,所述访问管理器发起对所述移动应用的验证。
6.根据权利要求1所述的方法,还包括:
获取与所述信任的移动应用有关的应用策略;
在所述移动计算设备处存储所述应用策略;以及
使用所述访问管理器并基于所述应用策略来控制所述信任的移动应用的操作。
7.一种移动计算设备,包括:
移动应用,其被配置成访问计算资源;
数据存储,其存储对应于被嵌入到所述移动应用中的标识令牌的识别信息;
访问管理器,其被配置成基于所述存储的识别信息通过
挑战所述移动应用以提供至少部分地基于所述标识令牌的响应来验证所述移动应用,
至少部分地基于存储的所述识别信息来产生期望的响应,
将所述期望的响应与由所述移动应用提供的所述响应进行比较,以及
基于所述期望的响应是否与由所述移动应用提供的所述响应匹配,确定所述移动应用被成功地验证或者未被成功地验证;以及
其中,所述访问管理器还被配置成
当对所述移动应用的验证不成功时,防止所述移动应用访问所述计算资源,
当对所述移动应用的验证成功时,将所述移动应用识别为信任的移动应用,以及
允许所述信任的移动应用访问所述计算资源。
8.根据权利要求7所述的移动计算设备,其中:
所述移动应用被配置成提取被嵌入到所述移动应用中的所述标识令牌;以及
由所述移动应用提供的所述响应还基于从所述移动应用提取的所述嵌入的标识令牌。
9.根据权利要求8所述的移动计算设备,其中,所述访问管理器还被配置成:
从所述移动应用派生一个或多个标识令牌;
基于从所述移动应用派生的所述一个或多个标识令牌的排列和对应于被嵌入到所述移动应用中的所述标识令牌的存储的所述识别信息来产生期望的应用签名;以及
还基于所述期望的应用签名来产生所述期望的响应。
10.根据权利要求9所述的移动计算设备,其中,所述访问管理器还被配置成:
向所述移动应用提供随机数;
使用所述期望的应用签名和所述随机数计算期望的散列值;以及
其中,所述期望的响应包括所述期望的散列值。
11.根据权利要求7所述的移动计算设备,其中,所述计算资源是以下项中的至少一个:
i)运行在所述移动计算设备处或远程计算系统处的软件应用;
ii)由所述移动计算设备或所述远程计算系统提供的服务;
iii)被存储在所述移动计算设备处或所述远程计算系统处的数据;
iv)在所述移动计算设备处或所述远程计算系统处的硬件;以及
v)上述项的组合。
12.根据权利要求7所述的移动计算设备,还包括:
应用策略,其与所述移动计算设备有关;以及
其中,所述访问管理器被配置成基于所述应用策略来控制所述信任的移动应用的操作。
13.一种管理对企业资源的访问的系统,所述系统被配置成:
基于在移动计算设备处存储的识别信息验证在所述移动计算设备处安装的移动应用,其中,存储的所述识别信息对应于被嵌入到所述移动应用中的标识令牌,以及其中,验证所述移动应用包括
挑战所述移动应用以提供至少部分地基于所述标识令牌的响应,
至少部分地基于存储的所述识别信息来产生期望的响应,
将所述期望的响应与由所述移动应用提供的所述响应进行比较,以及
基于所述期望的响应是否与由所述移动应用提供的所述响应匹配,确定所述移动应用被成功地验证或者未被成功地验证;以及
当对所述移动应用的验证不成功时,防止所述移动应用访问计算资源;
当对所述移动应用的验证成功时,将所述移动应用识别为信任的移动应用以及
允许所述信任的移动应用访问所述计算资源。
14.根据权利要求13所述的系统,其中,所述系统还被配置成:
从所述移动应用派生标识令牌;
产生应用签名包括所述派生的标识令牌的排列和对应于被嵌入到所述移动应用中的所述标识令牌的存储的所述识别信息;以及
其中,所述期望的响应还基于所述应用签名。
15.根据权利要求14所述的系统,其中:
所述挑战包括随机数;以及
所述期望的响应还基于所述随机数。
16.根据权利要求15所述的系统,其中,所述系统还被配置成:
用所述移动签名将在所述挑战中向所述移动应用提供的所述随机数散列以产生期望的散列值;以及
其中,所述期望的响应包括所述期望的散列值。
CN201480038881.4A 2013-05-20 2014-05-13 管理对企业资源的访问的方法和装置 Active CN105379223B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/898,167 2013-05-20
US13/898,167 US9270674B2 (en) 2013-03-29 2013-05-20 Validating the identity of a mobile application for mobile application management
PCT/US2014/037850 WO2014189722A1 (en) 2013-05-20 2014-05-13 Validating the identity of a mobile application for mobile application management

Publications (2)

Publication Number Publication Date
CN105379223A CN105379223A (zh) 2016-03-02
CN105379223B true CN105379223B (zh) 2017-06-23

Family

ID=50977092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480038881.4A Active CN105379223B (zh) 2013-05-20 2014-05-13 管理对企业资源的访问的方法和装置

Country Status (6)

Country Link
US (2) US9270674B2 (zh)
EP (2) EP3000213B1 (zh)
JP (1) JP6222592B2 (zh)
KR (3) KR101770417B1 (zh)
CN (1) CN105379223B (zh)
WO (1) WO2014189722A1 (zh)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101711863B1 (ko) 2008-11-26 2017-03-13 캘거리 싸이언티픽 인코포레이티드 애플리케이션 프로그램의 상태에 대한 원격 액세스를 제공하기 위한 방법 및 시스템
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US9544143B2 (en) 2010-03-03 2017-01-10 Duo Security, Inc. System and method of notifying mobile devices to complete transactions
US9532222B2 (en) 2010-03-03 2016-12-27 Duo Security, Inc. System and method of notifying mobile devices to complete transactions after additional agent verification
EP2386977A1 (fr) * 2010-05-11 2011-11-16 Gemalto SA Système permettant l'affichage d'un fichier informatique privé sur un écran d'un terminal de télécommunications et procédé correspondant
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
DE102011015711A1 (de) * 2011-03-31 2012-10-04 Giesecke & Devrient Gmbh Aktualisierung einer Datenträgerapplikation
JP2014531626A (ja) 2011-08-15 2014-11-27 カルガリー サイエンティフィック インコーポレイテッド アプリケーションプログラムへの非侵襲的遠隔アクセス
US9720747B2 (en) 2011-08-15 2017-08-01 Calgary Scientific Inc. Method for flow control and reliable communication in a collaborative environment
US9467463B2 (en) 2011-09-02 2016-10-11 Duo Security, Inc. System and method for assessing vulnerability of a mobile device
CA2850422C (en) 2011-09-30 2023-09-26 Calgary Scientific Inc. Uncoupled application extensions including interactive digital surface layer for collaborative remote application sharing and annotating
WO2013076554A1 (en) 2011-11-23 2013-05-30 Calgary Scientific Inc. Methods ans systems for collaborative remote application sharing and conferencing
KR20130082948A (ko) * 2011-12-23 2013-07-22 주식회사 케이티 지불 대행 시스템, 사용자 단말 및 마켓 서버
WO2013128284A1 (en) 2012-03-02 2013-09-06 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (dll) injection
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
KR102038964B1 (ko) * 2013-03-18 2019-11-26 삼성전자주식회사 어플리케이션 간의 상호 인증 방법 및 장치
US10073966B2 (en) * 2013-04-29 2018-09-11 Sri International Operating system-independent integrity verification
KR102052651B1 (ko) * 2013-04-30 2019-12-05 삼성전자주식회사 데이터 접근 제어 방법 및 그 전자 장치
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
CN105359179B (zh) 2013-05-15 2019-12-10 维萨国际服务协会 移动令牌化枢纽
US10410003B2 (en) * 2013-06-07 2019-09-10 Apple Inc. Multiple containers assigned to an application
US9294468B1 (en) * 2013-06-10 2016-03-22 Google Inc. Application-level certificates for identity and authorization
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
WO2015013321A2 (en) * 2013-07-25 2015-01-29 Declarativ, Inc. Opportunistic use of transient user interface space
US9305162B2 (en) * 2013-07-31 2016-04-05 Good Technology Corporation Centralized selective application approval for mobile devices
JP6465542B2 (ja) * 2013-09-02 2019-02-06 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
US10171501B2 (en) 2013-09-20 2019-01-01 Open Text Sa Ulc System and method for remote wipe
US10824756B2 (en) 2013-09-20 2020-11-03 Open Text Sa Ulc Hosted application gateway architecture with multi-level security policy and rule promulgations
EP2851833B1 (en) * 2013-09-20 2017-07-12 Open Text S.A. Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations
US20190230130A1 (en) * 2013-09-20 2019-07-25 Open Text Sa Ulc System and method for updating downloaded applications using managed container
US9055057B1 (en) * 2013-09-23 2015-06-09 Emc Corporation Automatic elevation of system security
JP6210812B2 (ja) * 2013-09-24 2017-10-11 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
US9342331B2 (en) * 2013-10-21 2016-05-17 International Business Machines Corporation Secure virtualized mobile cellular device
US9203823B2 (en) * 2013-10-30 2015-12-01 At&T Intellectual Property I, L.P. Methods and systems for selectively obtaining end user authentication before delivering communications
GB2519790B (en) * 2013-10-30 2017-07-12 1E Ltd Configuration of network devices
WO2015080845A1 (en) 2013-11-29 2015-06-04 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US9760704B2 (en) * 2014-05-23 2017-09-12 Blackberry Limited Security apparatus session sharing
US9602514B2 (en) * 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US9374361B2 (en) * 2014-07-03 2016-06-21 Verizon Patent And Licensing Inc. Cross-native application authentication application
US9537868B2 (en) * 2014-07-29 2017-01-03 Time Warner Cable Enterprises Llc Communication management and policy-based data routing
US10367916B2 (en) * 2014-09-12 2019-07-30 Sap Se Enhanced feature vector
WO2016064930A1 (en) 2014-10-21 2016-04-28 Proofpoint, Inc. Systems and methods for application security analysis
EP4155984A1 (en) * 2014-10-31 2023-03-29 Proofpoint, Inc. Systems and methods for privately performing application security analysis
AU2016210974A1 (en) 2015-01-30 2017-07-27 Calgary Scientific Inc. Highly scalable, fault tolerant remote access architecture and method of connecting thereto
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
US10158622B2 (en) * 2015-02-27 2018-12-18 Samsung Electronics Co., Ltd. System and method for a generic single sign-on function
CN113163405A (zh) 2015-04-20 2021-07-23 深圳市大疆创新科技有限公司 用于支持可移动物体环境中的应用开发的系统和方法
ES2758755T3 (es) 2015-06-01 2020-05-06 Duo Security Inc Método para aplicar normas de salud de punto final
DE102015108714A1 (de) * 2015-06-02 2016-12-08 Deutsche Telekom Ag Verfahren zum Einstellen von Einstellungen innerhalb eines mobilen elektronischen Endgeräts
US9703572B2 (en) * 2015-06-05 2017-07-11 Airwatch Llc Managed application detection logic
US11593075B2 (en) * 2015-11-03 2023-02-28 Open Text Sa Ulc Streamlined fast and efficient application building and customization systems and methods
US9537865B1 (en) * 2015-12-03 2017-01-03 International Business Machines Corporation Access control using tokens and black lists
US9973497B2 (en) * 2015-12-04 2018-05-15 Sap Se System and method for communication to enterprise environment users of a mobile application by the mobile application provider
US10341320B2 (en) * 2016-01-19 2019-07-02 Aerohive Networks, Inc. BYOD credential management
US10158669B2 (en) * 2016-01-28 2018-12-18 Adp, Llc Dynamic application versioning system
US10200369B1 (en) * 2016-02-16 2019-02-05 Symantec Corporation Systems and methods for dynamically validating remote requests within enterprise networks
US11388037B2 (en) 2016-02-25 2022-07-12 Open Text Sa Ulc Systems and methods for providing managed services
US10530762B2 (en) * 2016-03-09 2020-01-07 Google Llc Electing whether to unify passcodes
US10219151B2 (en) 2016-03-17 2019-02-26 Aerohive Networks, Inc. Chromebook credential management
GB2548599B (en) * 2016-03-23 2020-02-12 Jaguar Land Rover Ltd Apparatus and method for device authentication
US10528734B2 (en) 2016-03-25 2020-01-07 The Mitre Corporation System and method for vetting mobile phone software applications
CN105809440B (zh) * 2016-03-29 2020-09-11 北京小米移动软件有限公司 在线支付方法及装置
US11005836B2 (en) 2016-06-14 2021-05-11 Extreme Networks, Inc. Seamless wireless device onboarding
US10070316B2 (en) * 2016-06-16 2018-09-04 Samsung Electronics Co., Ltd. Permission delegation framework
US10205595B2 (en) 2016-06-22 2019-02-12 Vmware, Inc. Methods and apparatus to authenticate and differentiate virtually identical resources using session chaining
WO2018005879A1 (en) * 2016-06-29 2018-01-04 Interactive Intelligence Group, Inc. Technologies for managing application configurations and associated credentials
EP3479222A4 (en) * 2016-06-29 2020-01-15 Duo Security, Inc. SYSTEMS AND METHODS FOR CLASSIFYING END POINT MANAGEMENT
US10621333B2 (en) 2016-08-08 2020-04-14 International Business Machines Corporation Install-time security analysis of mobile applications
US10333715B2 (en) * 2016-11-14 2019-06-25 International Business Machines Corporation Providing computation services with privacy
US10375097B2 (en) * 2016-12-21 2019-08-06 Cisco Technology, Inc. Identifying self-signed certificates using HTTP access logs for malware detection
KR20180073041A (ko) * 2016-12-22 2018-07-02 삼성전자주식회사 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체
US10362612B2 (en) * 2017-03-06 2019-07-23 Citrix Systems, Inc. Virtual private networking based on peer-to-peer communication
US10355933B2 (en) 2017-03-31 2019-07-16 Microsoft Technology Licensing, Llc Dependency graph for coordination of device configuration
US11366914B2 (en) 2017-04-14 2022-06-21 Hewlett-Packard Development Company, L.P. Authenticating access of service of service entity to application of client device based on whether root certificate corresponding to application is installed in service entity
CN107240408B (zh) * 2017-05-11 2019-05-10 中国科学院信息工程研究所 针对cd-rom光盘介质的读写管控系统
US10645073B1 (en) * 2017-06-12 2020-05-05 Ca, Inc. Systems and methods for authenticating applications installed on computing devices
US10909228B2 (en) 2017-07-19 2021-02-02 Box, Inc. Server-side authentication policy determination for mobile applications
US11294653B2 (en) * 2017-09-27 2022-04-05 Jayant Shukla Methods and systems of disassembling executable code
US10887107B1 (en) * 2017-10-05 2021-01-05 National Technology & Engineering Solutions Of Sandia, Llc Proof-of-work for securing IoT and autonomous systems
JP6644756B2 (ja) * 2017-11-21 2020-02-12 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd 可動物体のアプリケーション開発を支援する方法、システム及びコンピュータ読取り可能媒体
US10412113B2 (en) 2017-12-08 2019-09-10 Duo Security, Inc. Systems and methods for intelligently configuring computer security
WO2019140276A1 (en) * 2018-01-12 2019-07-18 MobileIron, Inc. Asserting user, app, and device binding in an unmanaged mobile device
US11063762B1 (en) * 2018-02-22 2021-07-13 Allscripts Software, Llc Computing system for inter-application communication
US11146407B2 (en) 2018-04-17 2021-10-12 Digicert, Inc. Digital certificate validation using untrusted data
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
KR20200008498A (ko) * 2018-07-16 2020-01-28 삼성전자주식회사 애플리케이션의 액세스를 제어하기 위한 방법 및 디바이스
US11263036B2 (en) 2018-07-16 2022-03-01 Samsung Electronics Co., Ltd. Method and device for controlling access of application
US10929162B2 (en) 2018-07-27 2021-02-23 Futurewei Technologies, Inc. Virtual machine container for applications
US11227041B2 (en) * 2018-08-24 2022-01-18 Baskaran Dharmarajan Identification service based authorization
US10599486B1 (en) * 2018-09-21 2020-03-24 Citrix Systems, Inc. Systems and methods for intercepting and enhancing SaaS application calls via embedded browser
EP3648429A1 (en) * 2018-10-29 2020-05-06 Siemens Aktiengesellschaft Method and system for providing access to data stored in a security data zone of a cloud platform
CN109769010B (zh) * 2018-12-04 2021-11-30 平安科技(深圳)有限公司 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质
US11658962B2 (en) 2018-12-07 2023-05-23 Cisco Technology, Inc. Systems and methods of push-based verification of a transaction
US11044096B2 (en) * 2019-02-04 2021-06-22 Accenture Global Solutions Limited Blockchain based digital identity generation and verification
US11122091B2 (en) * 2019-04-16 2021-09-14 FireMon, LLC Network security and management system
US11089004B2 (en) * 2019-05-01 2021-08-10 Blackberry Limited Method and system for application authenticity attestation
US11017064B2 (en) 2019-05-14 2021-05-25 Bank Of America Corporation Authentication using interprogram communication
US20200364354A1 (en) * 2019-05-17 2020-11-19 Microsoft Technology Licensing, Llc Mitigation of ransomware in integrated, isolated applications
CN110399141A (zh) * 2019-07-17 2019-11-01 中科恒运股份有限公司 一种集成多应用的移动终端平台方案
US20210056053A1 (en) * 2019-08-19 2021-02-25 Cryptography Research, Inc. Application authentication and data encryption without stored pre-shared keys
EP4026359A4 (en) * 2019-09-02 2022-08-31 Grabtaxi Holdings Pte. Ltd. COMMUNICATIONS SERVER APPARATUS AND METHOD FOR DETERMINING AN ATTACK BY ABSTENTION
US11343252B2 (en) 2019-11-11 2022-05-24 Vmware, Inc. Kernel level application data protection
US11244077B2 (en) * 2020-01-31 2022-02-08 Fortanix, Inc. Securing data integrity for an application
CN111314475B (zh) * 2020-02-21 2021-05-04 北京紫光展锐通信技术有限公司 会话创建方法及相关设备
WO2021203026A1 (en) * 2020-04-03 2021-10-07 Prescient Devices, Inc. Content-based application security for distributed computing system
US20210321255A1 (en) * 2020-04-10 2021-10-14 Qualcomm Incorporated Method and apparatus for verifying mobile device communications
US20220038282A1 (en) * 2020-07-28 2022-02-03 Citrix Systems, Inc. Secure Token Transfer between Untrusted Entities
CN114386050A (zh) * 2020-10-20 2022-04-22 华为云计算技术有限公司 一种资产的访问控制方法、装置、设备及介质
US20220182385A1 (en) * 2020-12-09 2022-06-09 Citrix Systems, Inc. Cross-endpoint enterprise application authorization and management
CN115221497A (zh) * 2021-03-29 2022-10-21 北京小米移动软件有限公司 应用的使用权限的设置方法、装置、电子设备及存储介质
CN112732535B (zh) * 2021-03-31 2021-06-22 荣耀终端有限公司 一种控制应用程序限时使用的方法及电子设备
US11895133B2 (en) 2021-04-05 2024-02-06 Bank Of America Corporation Systems and methods for automated device activity analysis
US11811668B2 (en) * 2021-08-19 2023-11-07 Bank Of America Corporation System for implementing disposition bias for validating network traffic from upstream applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101548503A (zh) * 2006-12-05 2009-09-30 高通股份有限公司 为移动操作环境提供安全的应用程序间通信
CN102089765A (zh) * 2008-05-21 2011-06-08 桑迪士克公司 对外围设备的软件开发包的访问的验证

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137686A (ja) * 1994-09-16 1996-05-31 Toshiba Corp 著作物データ管理方法及び著作物データ管理装置
US5870467A (en) 1994-09-16 1999-02-09 Kabushiki Kaisha Toshiba Method and apparatus for data input/output management suitable for protection of electronic writing data
JP3779837B2 (ja) 1999-02-22 2006-05-31 松下電器産業株式会社 コンピュータ及びプログラム記録媒体
US6978375B1 (en) * 2000-09-08 2005-12-20 International Business Machines Corporation System and method for secure authentication of external software modules provided by third parties
US7565551B2 (en) * 2003-02-19 2009-07-21 Microsoft Corporation Enhancing software integrity through installation and verification
EP1652085A4 (en) * 2003-07-11 2007-12-19 Computer Ass Think Inc SYSTEM AND METHOD FOR USING A COMMON COMMUNICATION CHANNEL THROUGH WEB SIDE APPLETS
US8122100B2 (en) * 2003-07-28 2012-02-21 Limelight Networks, Inc. Multiple object download
US7526793B2 (en) * 2004-12-14 2009-04-28 International Business Machines Corporation Method for authenticating database connections in a multi-tier environment
JP4636607B2 (ja) * 2005-06-29 2011-02-23 株式会社日立ソリューションズ セキュリティ対策アプリケーションの機密ファイル保護方法
US8145917B2 (en) * 2005-12-30 2012-03-27 Nokia Corporation Security bootstrapping for distributed architecture devices
JP2008073184A (ja) 2006-09-20 2008-04-03 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
US8245285B1 (en) * 2006-09-22 2012-08-14 Oracle America, Inc. Transport-level web application security on a resource-constrained device
US8621601B2 (en) * 2008-05-21 2013-12-31 Sandisk Technologies Inc. Systems for authentication for access to software development kit for a peripheral device
EP2293217A4 (en) 2008-06-25 2017-05-03 NEC Corporation Information processing system, server device, information device for personal use, and access managing method
US8869289B2 (en) * 2009-01-28 2014-10-21 Microsoft Corporation Software application verification
JPWO2011030455A1 (ja) 2009-09-14 2013-02-04 森 清 セキュア監査システム及びセキュア監査方法
US20120297457A1 (en) * 2010-11-15 2012-11-22 Brian Schulte Interactive Malware Detector
JP5622668B2 (ja) * 2011-06-16 2014-11-12 株式会社エヌ・ティ・ティ・データ アプリケーション認証システム、アプリケーション認証方法
US9161225B2 (en) * 2011-09-23 2015-10-13 Blackberry Limited Authentication procedures for managing mobile device applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101548503A (zh) * 2006-12-05 2009-09-30 高通股份有限公司 为移动操作环境提供安全的应用程序间通信
CN102089765A (zh) * 2008-05-21 2011-06-08 桑迪士克公司 对外围设备的软件开发包的访问的验证

Also Published As

Publication number Publication date
JP2016526223A (ja) 2016-09-01
EP3179697A1 (en) 2017-06-14
CN105379223A (zh) 2016-03-02
KR101877732B1 (ko) 2018-07-12
EP3179697B1 (en) 2020-11-18
KR20170098961A (ko) 2017-08-30
KR101770417B1 (ko) 2017-08-22
US9838398B2 (en) 2017-12-05
EP3000213A1 (en) 2016-03-30
US20160142418A1 (en) 2016-05-19
US20140298420A1 (en) 2014-10-02
KR20180081833A (ko) 2018-07-17
JP6222592B2 (ja) 2017-11-01
EP3000213B1 (en) 2017-04-26
KR20160010600A (ko) 2016-01-27
WO2014189722A1 (en) 2014-11-27
US9270674B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
CN105379223B (zh) 管理对企业资源的访问的方法和装置
US10609560B2 (en) Using derived credentials for enrollment with enterprise mobile device management services
US11722465B2 (en) Password encryption for hybrid cloud services
US11558372B2 (en) Authentication of a client device based on entropy from a server or other device
JP6731023B2 (ja) クライアントアプリケーションのためのセキュアなシングルサインオン及び条件付きアクセス
US20220014515A1 (en) Secure Authentication Of A Device Through Attestation By Another Device
CN105359486B (zh) 使用代理安全访问资源
CN106471783B (zh) 经由网关的企业系统认证和授权
KR102036758B1 (ko) 빠른 스마트 카드 로그온 및 연합된 풀 도메인 로그온
CN105308923B (zh) 对具有多操作模式的应用的数据管理
EP2992477B1 (en) User and system authentication in enterprise systems
CN107566400A (zh) 具有多个操作模式的应用
CN106031128B (zh) 移动设备管理的方法和装置
JP2016530582A (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
GR01 Patent grant
GR01 Patent grant