CN113574837A - 跟踪客户端设备上的图像发送者 - Google Patents

跟踪客户端设备上的图像发送者 Download PDF

Info

Publication number
CN113574837A
CN113574837A CN201980093985.8A CN201980093985A CN113574837A CN 113574837 A CN113574837 A CN 113574837A CN 201980093985 A CN201980093985 A CN 201980093985A CN 113574837 A CN113574837 A CN 113574837A
Authority
CN
China
Prior art keywords
image
watermark
server
watermark vector
vector
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.)
Pending
Application number
CN201980093985.8A
Other languages
English (en)
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 CN113574837A publication Critical patent/CN113574837A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • G06T1/0078Robust watermarking, e.g. average attack or collusion attack resistant using multiple thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0052Embedding of the watermark in the frequency domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0061Embedding of the watermark in each block of the image, e.g. segmented watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0065Extraction of an embedded watermark; Reliable detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0083Image watermarking whereby only watermarked image required at decoder, e.g. source-based, blind, oblivious
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Mining & Analysis (AREA)

Abstract

本文描述了用于使用客户端设备跟踪图像发送者的方法和系统。计算系统可以接收包含对应于图像发送者的用户账户的第一水印矢量的图像。计算系统可以将图像转换为包含第一水印矢量的频域图像。计算系统可以从频域图像识别第一水印矢量。计算系统可以将第一水印矢量与多个存储的水印矢量中的每一个进行比较,以确定匹配的概率,每个水印矢量对应于已知用户账户。计算系统可以通过确定多个存储的水印矢量中的哪一个具有最高匹配概率来确定图像的发送者的用户账户,并且可以向工作场所管理员平台发送用户账户的指示。

Description

跟踪客户端设备上的图像发送者
技术领域
本文描述的各方面总体上涉及用于使用客户端设备跟踪图像发送者的增强处理系统的计算机网络、数据通信和相关软件。具体地,本公开的一个或多个方面涉及生成对应于图像发送者的水印矢量、将水印矢量嵌入图像中,以及在发送图像后提取水印矢量以识别图像发送者。
背景技术
许多组织和个人依靠电子邮件应用程序进行内部和外部通信。在一些情况下,这些电子邮件应用程序可经配置以发送图像,在一些情况下,这些图像可以包含机密信息。因此,在数据泄漏的情况下识别此类机密信息的发送者以维护企业安全可能是很重要的。然而,在许多情况下,跟踪此类发送者的方法可能很困难,并且可能会中断与此类电子邮件应用程序相关联的用户体验。现在仍然存在改进对图像发送者的跟踪的需求。
发明内容
下文呈现本文中描述的各个方面的简化概述。本概述不是广泛的概述,并且不旨在识别所需的或关键的元素或者描绘权利要求的范围。以下概述仅以简化形式呈现一些概念,作为以下提供的更详细描述的介绍性序言。
为了克服上述现有技术中的限制,并且为了克服在阅读和理解本说明书后将显而易见的其他限制,本文中描述的各方面涉及解决和克服与使用嵌入水印识别图像发送者相关联的技术问题的有效、高效、可扩展且方便的技术解决方案。例如,本公开的一些方面提供了使计算系统能够在不影响客户端设备处的用户体验的情况下提高与机密信息相关联的安全性的技术。
根据本公开的一个实施例,包括至少一个处理器、通信接口和存储计算机可读指令的存储器的计算系统可以接收包含对应于图像的发送者的用户账户的第一水印矢量的图像。计算系统可以将图像转换为包含第一水印矢量的频域图像。计算系统可以从频域图像识别第一水印矢量。计算系统可以将第一水印矢量与多个存储的水印矢量中的每一个进行比较,以确定多个存储的水印矢量中的每一个与第一水印矢量匹配的概率,每个水印矢量对应于已知用户账户。计算系统可以通过确定多个存储的水印矢量中的哪一个具有与第一水印矢量匹配的最高概率来确定图像的发送者的用户账户,并且可以向工作场所管理员平台发送图像的发送者的用户账户的指示。
在一个或多个实施例中,计算系统可以在计算系统的调度服务模块处接收图像,该调度服务模块可经配置以将图像路由到计算系统的多个工作者服务模块。在这些实施例中,工作者服务模块中的每一个可以对应于不同的已知用户账户。
在一个或多个实施例中,计算系统可以在工作者服务模块中的每一个处以及对相应的已知用户账户中的每一个应用散列函数以将已知用户账户中的每一个转换为二进制串。在工作者服务模块中的每一个处以及对每个二进制串,计算系统可以应用矩阵合成算法以为已知用户账户中的每一个生成二进制矩阵。在工作者服务模块中的每一个处以及从每个二进制矩阵中,计算系统可以提取水印矢量。在工作者服务模块中的每一个处,计算系统可以存储所提取的水印矢量,从而得到多个所存储的水印矢量。
在一个或多个实施例中,计算系统可以通过在工作者服务模块中的每一个处以及对每个二进制矩阵应用奇异值分解(SVD)算法来提取水印矢量,以确定所提取的水印矢量。在一种或多种情况下,在接收包含第一水印矢量的图像时,计算系统可以接收图像的发送者的用户账户的指示。在确定图像的发送者的用户账户时,计算系统可以跟踪与包含第一水印矢量的图像相关联的数据泄漏的来源。
在一个或多个实施例中,计算系统可以从工作场所管理员平台接收对应于已知用户账户的列表的企业用户列表输入。在这些实施例中,计算系统可以为已知用户账户中的每一个生成工作者服务模块。
在一个或多个实施例中,计算系统可以通过从频域图像的预定子区域中提取第一水印矢量来识别第一水印矢量。在一个或多个实施例中,图像可以在多于一个位置包含第一水印矢量,并且计算系统可以在至少一个位置中识别第一水印矢量。
这些和附加的方面将受益于下面进一步详细讨论的公开内容而得到理解。
附图说明
通过参考考虑附图的以下描述,可以获得对本文中描述的方面及其优点的更完整的理解,在附图中,相同的附图标记指示相同的特征,并且其中:
图1描绘了可以根据本文中描述的一个或多个示例性方面使用的示例性计算机系统架构。
图2描绘了可以根据本文中描述的一个或多个示例性方面使用的示例性远程访问系统架构。
图3描绘了可以根据本文中描述的一个或多个示例性方面使用的示例性虚拟化(管理程序)系统架构。
图4描绘了可以根据本文中描述的一个或多个示例性方面使用的示例性的基于云的系统架构。
图5描绘了一个示例性企业流动性管理系统。
图6描绘了另一示例性企业流动性管理系统。
图7A至图7C描绘了根据一个或多个示例实施例的用于部署执行对图像发送者的跟踪的增强处理系统的示例性计算环境。
图8A至图8C描绘了根据一个或多个示例实施例的用于部署执行对图像发送者的跟踪的增强处理系统的示例性事件序列算法。
图9和图10描绘了根据一个或多个示例实施例的用于部署执行对图像发送者的跟踪的增强处理系统的示例性方法算法。
图11和图12描绘了根据一个或多个示例实施例的用于部署执行对图像发送者的跟踪的增强处理系统的示例性过程流程图。
具体实施方式
在各种实施例的以下描述中,参考上文标识且形成其一部分的附图,并且在附图中以说明的方式示出其中可以实践本文中描述的各方面的各种实施例。应理解,在不脱离本文中描述的范围的情况下,可以利用其他实施例,并且可以进行结构和功能修改。各个方面能够是其他实施例并且能够以各种不同的方式实践或执行。
作为以下更详细描述的主题的概述,本文描述的各方面涉及一种用于跟踪将水印嵌入到图像的频域中的图像发送者的方法算法。这样做时,发送者信息可以隐蔽地嵌入在移动设备上,并且可以由过滤服务器自动识别。因此,该方法算法可以对几何变换攻击具有鲁棒性,并且可以在公司中用于跟踪数据泄露和实施版权保护。
与传统的离散余弦变换(DCT)水印相比时,该方法算法能够在不访问原始图像的情况下跟踪发送者信息。在一种或多种情况下,该方法算法可以在账户过滤服务器上执行,仅允许具有账户列表的公司管理员识别隐藏的加密信息。在这些情况下,账户过滤服务器可以使用工作者服务模块来计算包含各种账户信息的标记图像的概率,并输出最可能的账户。这可以增加发送者识别的准确性,并且可以使本文描述的方法算法对几何攻击具有鲁棒性。
移动设备的广泛使用在联网的办公室环境中带来了重大的安全挑战。例如,拥有一份数据的人可以分发它、复制它或更改它。当数据到达因特网时,数据所有者可能失去对其数据的控制。此外,人们可以通过拍摄照片或设备屏幕截图来获取敏感信息,并且可以使用邮件应用程序轻松地分发敏感信息。当数据泄漏导致知识产权损失时,需要追溯到特定单元、设备或个人。
为了保护公司安全,可以在可以禁用设备相机的邮件应用程序中提供端点管理策略。然而,这可能影响用户对邮件应用程序的体验。本文描述的方法算法提供了一种在使用邮件应用程序发送图像之前将账户信息嵌入到图像中的方法。此嵌入/跟踪过程可能仅对公司管理员可见。
为了减轻数据泄漏威胁和保护版权,已经提出了许多数字水印方法。一种方法算法在空间域中,另一种方法算法在频率域中。如最低有效位(LSB)等空间域水印算法支持大量水印信息,但抗干扰能力相对较差。频域算法也分为两类。一种类型对攻击具有鲁棒性,但需要原始图像进行水印提取。另一种类型使用图像中的稳定特征来提取水印,这降低了数据承载能力。
考虑到账户列表在企业安全的应用场景中是确定和可计数的,本文描述的方法算法可以使用频域算法进行嵌入,并使用账户过滤服务器进行跟踪。在客户端设备上,移动应用管理(MAM)应用程序可以仅发送标记的图像。在账户过滤服务器上,账户信息的SVD特征矢量可用于帮助检查标记图像包含对应于图像发送者的账户的可能性。因此,该方法算法对于以用户透明、安全和准确的方式在客户端设备上进行发送者跟踪是可行的。
作为对以下进一步描述的方法的简要介绍,客户端设备可以使用散列算法来保护用户信息不被外人获取。在该方法中,客户端设备可以使用MD5消息摘要算法来将可变长度账户串处理为128位的固定长度输出。公司环境中的邮件账户可能相对类似。然而,通过使用MD5散列,客户端设备可以将两个账户之间的微小差异转变成两个完全不同的散列,这可以提高数据安全性和发送者账户跟踪的准确性。
128位MD5散列可以表示为8*16矩阵,并且客户端设备可以使用SVD算法从该矩阵中提取特征矢量。在一种或多种情况下,特征矢量可以具有256位的长度,并且可以被嵌入到图像中以检查图像包含可疑账户的可能性。
客户端设备可以将原始灰度级图像划分为非重叠块(例如,32x32像素)。客户端设备可以通过应用DCT算法将这些块从空间域变换到频域,并且可以将特征矢量嵌入到一个或多个块中。然后,客户端设备可以应用反向DCT算法来恢复标记的图像,这可以使特征矢量以安全性和不可见性分散到图像的各个区域中。
对于账户列表中的每个候选账户,账户过滤服务器可以类似地加密账户信息并生成账户信息的特征矢量。账户过滤服务器可以对标记图像执行DCT变换,并且可以比较标记图像的选定块以确定账户信息的特征矢量与标记图像的特征矢量匹配的概率。
管理员计算平台可以将标记的图像和一个或多个企业用户列表输入到账户过滤器服务器中。账户过滤服务器可以使用一个或多个工作者服务模块来遍历用户列表以计算匹配的概率并输出最可能的账户。
应理解,本文中使用的措辞和术语是为了描述的目的,而不应被认为是限制性的。相反,本文中使用的短语和术语被给予其最广泛的解释和含义。使用“包括(including)”和“包括(comprising)”及其变体是指涵盖其后列出的项及其等同物以及附加项及其等同物。术语“安装”、“连接”、“耦合”、“定位”、“接合”和类似术语的使用是指包括直接和间接安装、连接、耦合、定位和接合。
计算架构
计算机软件、硬件和网络可以用在各种不同的系统环境中,包括独立环境、联网环境、远程访问环境(也称为远程桌面)、虚拟化环境和/或基于云的环境等。图1图示了可用于在独立环境和/或联网环境中实现本文中描述的一个或多个示例性方面的系统架构和数据处理设备的一个实例。各种网络节点103、105、107和109可以经由诸如因特网的广域网(WAN)101互连。也可以或可替代地使用其他网络,包括专用内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等。网络101用于图示的目的,并且可以用更少或附加的计算机网络代替。局域网133可以具有任何已知的LAN拓扑中的一个或多个,并且可以使用各种不同的协议中的一个或多个,诸如以太网。设备103、105、107和109以及其他设备(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到网络中的一个或多个。
本文中使用并在附图中描绘的术语“网络”不仅指其中远程存储设备经由一个或多个通信路径耦合在一起的系统,而且指有时可以耦合到这种具有存储能力的系统的独立设备。因此,术语“网络”不仅包括“物理网络”,而且还包括“内容网络”,其由归属于驻留在所有物理网络上的单个实体的数据组成。
这些组件可以包括数据服务器103、网络服务器105和客户端计算机107、109。数据服务器103提供对数据库和控制软件的总体访问、控制和管理,用于执行本文描述的一个或多个示例性方面。数据服务器103可以连接到网络服务器105,用户通过网络服务器105与所请求的数据进行交互并获取所请求的数据。替代地,数据服务器103充当网络服务器本身,并且直接连接到因特网。数据服务器103可以通过局域网133、广域网101(例如,因特网),经由直接或间接连接,或经由某个其他网络连接到网络服务器105。用户可以使用远程计算机107、109与数据服务器103交互,例如,使用网络浏览器经由网络服务器105所托管的一个或多个外部公开的网站连接到数据服务器103。客户端计算机107、109可以与数据服务器103一起使用以访问存储在其中的数据,或者可以用于其他目的。例如,用户可以从客户端设备107使用本领域中已知的因特网浏览器,或者通过执行通过计算机网络(诸如因特网)与网络服务器105和/或数据服务器103通信的软件应用程序来访问网络服务器105。
服务器和应用程序可以组合在相同的物理机器上,并保留单独的虚拟或逻辑地址,或者可以驻留在单独的物理机器上。图1仅图示了可以使用的网络架构的一个实例,并且本领域技术人员将理解,所使用的特定网络架构和数据处理设备可以改变,并且对于它们提供的功能是次要的,如本文进一步描述的。例如,由网络服务器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在本文中也可以被称为数据服务器软件125。数据服务器软件125的功能可以指基于编码到控制逻辑125中的规则自动做出的操作或决定、由将输入提供到系统中的用户手动做出的操作或决定,和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合。
存储器121还可以存储用于执行本文中描述的一个或多个方面的数据,包括第一数据库129和第二数据库131。在一些实施例中,第一数据库129可以包括第二数据库131(例如,作为单独的表格、报告等)。即,根据系统设计,信息可以存储在单个数据库中,或分离成不同的逻辑数据库、虚拟数据库或物理数据库。设备105、107和109可以具有与关于设备103所描述的相似或不同的架构。本领域技术人员将理解,本文中描述的数据处理设备103(或设备105、107或109)的功能可以跨多个数据处理设备分布,以例如将处理负载跨多个计算机分配,从而基于地理位置、用户访问级别、服务质量(QoS)等来隔离交易。
一个或多个方面可以体现在计算机可用或可读的数据和/或计算机可执行指令中,诸如体现在由一个或多个计算机或本文中描述的其他设备执行的一个或多个程序模块中。一般而言,程序模块包括例程、程序、对象、部件、数据结构等,其在由计算机或其他设备中的处理器执行时执行特定任务或实现特定抽象数据类型。模块可以用随后被编译用于执行的源代码编程语言来编写,或者可以用诸如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)的脚本语言来编写。计算机可执行指令可以存储在诸如非易失性存储设备的计算机可读介质上。可以使用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光存储设备、磁存储设备、固态存储设备和/或其任何组合。另外,表示本文中描述的数据或事件的各种传输(非存储)介质可以以穿过诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)的信号传导介质传播的电磁波的形式在源和目的地之间传送。本文中描述的各个方面可以实现为方法、数据处理系统或计算机程序产品。因此,各种功能可整体或部分地体现在软件、固件和/或硬件或硬件等效物(诸如集成电路、现场可编程门阵列(FPGA)等)中。特定的数据结构可用于更有效地实现本文中描述的一个或多个方面,并且这样的数据结构被认为在本文中描述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图2,本文中描述的一个或多个方面可以在远程访问环境中实现。图2描绘了包括可以根据本文中描述的一个或多个示例性方面使用的示例性计算环境200中的计算设备201的示例系统架构。计算设备201可以用作单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a,并且可以经配置以为客户端访问设备提供虚拟机。计算设备201可以具有用于控制设备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,用于在诸如计算机网络230(例如,因特网)等的WAN 229上建立通信。将理解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他装置。计算设备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系统、IBM、VMware或任何其他管理程序开发的管理程序。在一些方面中,虚拟机可以由管理程序管理,而在其他方面中,虚拟机可以由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。
一些实施例包括客户端设备240,其显示由在服务器206或其他远程定位的机器上远程执行的应用生成的应用输出。在这些实施例中,客户端设备240可以执行虚拟机接收机程序或应用以在应用程序窗口、浏览器或其他输出窗口中显示输出。在一个实例中,应用程序是桌面,而在其他实例中,应用程序是生成或呈现桌面的应用程序。桌面可以包括为其中可集成本地和/或远程应用程序的操作系统的实例提供用户界面的图形外壳。本文中使用的应用程序是在操作系统(以及可选地还有桌面)的实例已经被加载之后执行的程序。
在一些实施例中,服务器206使用远程呈现协议或其他程序来将数据发送到在客户端上执行的瘦客户端或远程显示应用程序,以呈现由在服务器206上执行的应用程序生成的显示输出。瘦客户端或远程显示协议可以是以下非穷举性协议列表中的任何一个:佛罗里达州劳德代尔堡的思杰系统公司(Citrix Systems,Inc.)开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙市的微软(Microsoft Corporation)公司制造的远程桌面协议(RDP)。
远程计算环境可以包括多于一个服务器206a-206n,使得服务器206a-206n例如在云计算环境中在逻辑上一起分组到服务器群206中。服务器群206可以包括在逻辑上分组在一起时地理上分散的服务器206,或在逻辑上分组在一起时彼此邻近定位的服务器206。在一些实施例中,服务器群206内的地理上分散的服务器206a-206n可以使用WAN(广域)、MAN(城域)或LAN(局域)通信,其中不同地理区域可以被表征为:不同的大陆;大陆的不同区域;不同的国家;不同的州;不同的城市;不同的校园;不同的房间;或前述地理位置的任何组合。在一些实施例中,服务器群206可以作为单个实体来管理,而在其他实施例中,服务器群206可以包括多个服务器群。
在一些实施例中,服务器群可以包括执行基本上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其他实施例中,服务器群206可以包括执行第一类型的操作系统平台的一个或多个服务器的第一组,以及执行第二类型的操作系统平台的一个或多个服务器的第二组。
服务器206可以根据需要经配置为任何类型的服务器,例如,文件服务器、应用程序服务器、网络服务器、代理服务器、电器、网络电器、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(SSL)VPN服务器、防火墙、网络服务器、应用程序服务器,或者经配置为主应用程序服务器、执行活动目录的服务器或执行提供防火墙功能、应用程序功能或负载平衡功能的应用程序加速程序的服务器。也可以使用其他服务器类型。
一些实施例包括第一服务器206a,其接收来自客户端机器240的请求、将该请求转发到第二服务器206b(未示出),并用来自第二服务器206b(未示出)的响应来响应由客户端机器240生成的请求。第一服务器206a可以获取客户端机器240可用的应用程序的枚举以及与托管应用程序的枚举内识别的应用程序的应用程序服务器206相关联的地址信息。然后,第一服务器206a可以使用网络接口呈现对客户请求的响应,并且直接与客户端240通信以向客户端240提供对识别后的应用程序的访问。一个或多个客户端240和/或一个或多个服务器206可以通过网络230(例如,网络101)传输数据。
图3示出了示例性桌面虚拟化系统的高级架构。如图所示,桌面虚拟化系统可以是单服务器或多服务器系统,或者云系统,该系统包括经配置以将虚拟桌面和/或虚拟应用程序的至少一个虚拟化服务器301提供到一个或多个客户端访问设备240。如本文中使用的,桌面是指其中可以承载和/或执行一个或多个应用的图形环境或空间。桌面可以包括为其中可集成本地和/或远程应用程序的操作系统的实例提供用户界面的图形外壳。应用程序可以包括在操作系统(并且可选地还有桌面)的实例被加载之后执行的程序。操作系统的每个实例可以是物理的(例如,每个设备一个操作系统)或虚拟的(例如,在单个设备上运行的OS的许多实例)。每个应用程序可以在本地设备上执行,或者在位于远处的设备(例如,远程的)上执行。
计算机设备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、Domain0或用于系统管理和/或控制的其他虚拟机。在一些实施例中,一个或多个虚拟机332B-C可以使用虚拟处理器328B-C来执行客户操作系统330A-B。
虚拟化服务器301可以包括具有与虚拟化服务器301通信的一个或多个硬件的硬件层310。在一些实施例中,硬件层310可以包括一个或多个物理磁盘304、一个或多个物理设备306、一个或多个物理处理器308以及一个或多个物理存储器316。物理组件304、306、308和316可以包括例如上述的组件中的任一个。物理设备306可以包括例如网络接口卡、视频卡、键盘、鼠标、输入设备、监视器、显示设备、扬声器、光驱、存储设备、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等),或连接到虚拟化服务器301或与虚拟化服务器301通信的任何设备。硬件层310中的物理存储器316可以包括任何类型的存储器。物理存储器316可以存储数据,并且在一些实施例中可以存储一个或多个程序或一组或多组可执行指令。图3图示了其中固件312存储在虚拟化服务器301的物理存储器316内的实施例。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的处理器308中的一个或多个执行。
虚拟化服务器301还可以包括管理程序302。在一些实施例中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建和管理任何数量的虚拟机332的程序。管理程序302可以被称为虚拟机监视器或平台虚拟化软件。在一些实施例中,管理程序302可以是监视在计算机器上执行的虚拟机的可执行指令和硬件的任何组合。管理程序302可以是类型2管理程序,其中管理程序在虚拟化服务器301上执行的操作系统314内执行。然后,虚拟机可以在高于管理程序302的级别上执行。在一些实施例中,类型2管理程序可以在用户的操作系统的背景下执行,使得类型2管理程序与用户的操作系统交互。在其他实施例中,虚拟化环境中的一个或多个虚拟化服务器301可以替代地包括类型1管理程序(未示出)。类型1管理程序可以通过直接访问硬件层310内的硬件和资源而在虚拟化服务器301上执行。即,当类型2管理程序302通过主机操作系统314访问系统资源时,如图所示,类型1管理程序可以直接访问所有系统资源而无需主机操作系统314。类型1管理程序可以直接在虚拟化服务器301的一个或多个物理处理器308上执行,并且可以包括存储在物理存储器316中的程序数据。
在一些实施例中,管理程序302可以以模拟具有对系统资源的直接访问的操作系统330或控制程序320的任何方式向在虚拟机332上执行的操作系统330或控制程序320提供虚拟资源。系统资源可以包括但不限于物理设备306、物理磁盘304、物理处理器308、物理存储器316,以及虚拟化服务器301的硬件层310中包括的任何其他组件。管理程序302可用于仿真虚拟硬件、分区物理硬件、虚拟化物理硬件和/或执行提供对计算环境的访问的虚拟机。在其他实施例中,管理程序302可以控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。管理程序302可以包括由加利福尼亚州帕洛阿尔托市的威睿公司(VMWare,Inc.)制造的管理程序;由微软公司(Microsoft)提供的桌面虚拟化、虚拟服务器或虚拟PC管理程序等。在一些实施例中,虚拟化服务器301可以执行创建客户操作系统可以在其上执行的虚拟机平台的管理程序302。在这些实施例中,虚拟化服务器301可以被称为主机服务器。这种虚拟化服务器的一个实例是由佛罗里达州劳德代尔堡的思杰系统公司(Citrix Systems,Inc.)提供的思杰管理程序。
管理程序302可以创建客户操作系统330在其中执行的一个或多个虚拟机332B-C(统称为332)。在一些实施例中,管理程序302可以加载虚拟机图像以创建虚拟机332。在其他实施例中,管理程序302可以执行虚拟机332内的客户操作系统330。在其他实施例中,虚拟机332可以执行客户操作系统330。
除了创建虚拟机332之外,管理程序302还可以控制至少一个虚拟机332的执行。在其他实施例中,管理程序302可以呈现具有由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象的至少一个虚拟机332。在其他实施例中,管理程序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的虚拟化视图。在一些实施例中,物理处理器308的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施例中,虚拟处理器328具有至少一个物理处理器308的基本上所有相同的特性。在其他实施例中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的特性中的至少一些不同于对应的物理处理器308的特性。
进一步参考图4,本文中描述的一些方面可以在基于云的环境中实现。图4图示了云计算环境(或云系统)400的实例。如图4所示,客户端计算机411-414可以与云管理服务器410通信以访问云系统的计算资源(例如,主机服务器403a-403b(本文中通常称为“主机服务器403”)、存储资源404a-404b(本文中通常称为“存储资源404”)和网络元件405a-405b(本文中通常称为“网络资源405”))。
管理服务器410可以在一个或多个物理服务器上实现。管理服务器410可以运行例如由佛罗里达州劳德代尔堡的思杰系统公司提供的思杰云(Citrix Cloud)或OPENSTACK等等。管理服务器410可以管理各种计算资源,包括云硬件和软件资源,例如,主机计算机403、数据存储设备404和联网设备405。云硬件和软件资源可以包括私有组件和/或公共组件。例如,云可经配置为由一个或多个特定客户或客户端计算机411-414和/或通过专用网络使用的私有云。在其他实施例中,公有云或混合公有-私有云可以由其他客户在开放或混合网络上使用。
管理服务器410可经配置以提供用户接口,云运营商和云客户可以通过该用户接口与云系统400交互。例如,管理服务器410可以将用户接口提供到一组应用程序编程接口(API)和/或一个或多个云运营商控制台应用程序(例如,基于网络的或独立的应用程序),以允许云运营商管理云资源、配置虚拟化层、管理客户账户,以及执行其他云管理任务。管理服务器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 Inc.))、IBM BLUE CLOUD(纽约州阿蒙克市的万国商业机器公司(IBM Corporation))或其他。
企业移动性管理架构
图5表示在“自带设备”(BYOD)环境中使用的企业移动性技术架构500。该架构使得移动设备502的用户能够从移动设备502访问企业或个人资源,并且将移动设备502用于个人用途。用户可以使用由用户购买的移动设备502或由企业提供给用户的移动设备502来访问此类企业资源504或企业服务508。用户可以将移动设备502仅用于商业用途或用于商业和个人用途。移动设备502可以运行iOS操作系统、安卓操作系统等。企业可以选择实施策略来管理移动设备502。策略可以通过防火墙或网关以这样的方式实现,即移动设备502可被识别、保护或安全验证,并提供对企业资源(例如,504和508)的选择性或完全访问。策略可以是移动设备管理策略、移动应用程序管理策略、移动数据管理策略,或者移动设备、应用程序和数据管理策略的某种组合。通过应用移动设备管理策略管理的移动设备502可以被称为注册设备。
在一些实施例中,移动设备502的操作系统可以被分成托管分区510和非托管分区512。托管分区510可以具有应用于其的策略,以保护在其上运行的应用程序和存储在托管分区510中的数据。在托管分区510上运行的应用程序可以是安全应用程序。在其他实施例中,所有应用程序可以根据与应用程序分开接收的一组一个或多个策略文件来执行,并且这些策略文件限定一个或多个安全参数、特征、资源限制和/或当应用程序在移动设备502上执行时由移动设备管理系统实施的其他访问控制。通过根据它们各自的策略文件进行操作,可以允许或限制每个应用程序与一个或多个其他应用程序和/或资源进行通信,从而创建虚拟分区。因此,如本文所用,分区可以指存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区),和/或作为如本文描述的跨多个应用程序执行一个或多个策略和/或策略文件的结果而创建的虚拟分区(虚拟分区)。换言之,通过对托管应用程序实施策略,这些应用程序可被限制为仅能够与其他托管应用程序和受信任的企业资源进行通信,从而创建非托管应用程序和设备无法访问的虚拟分区。
安全应用程序可以是电子邮件应用程序、网络浏览应用程序、软件即服务(SaaS)访问应用程序、窗口应用程序访问应用程序等。安全应用程序可以是安全本机应用程序514、由安全应用程序启动器518执行的安全远程应用程序522、由安全应用程序启动器518执行的虚拟化应用程序526等。安全本机应用程序514可以由安全应用程序包装器520包装。安全应用程序包装器520可以包括当在移动设备502上执行安全本机应用程序514时在移动设备502上执行的集成策略。安全应用程序包装器520可以包括元数据,该元数据将在移动设备502上运行的安全本机应用程序514指向企业所托管的资源(例如,504和508),安全本机应用程序514可以需要这些资源在执行安全本机应用程序514时完成请求的任务。由安全应用程序启动器518执行的安全远程应用程序522可以在安全应用程序启动器518内执行。由安全应用程序启动器518执行的虚拟化应用程序526可以利用移动设备502上、企业资源504处等的资源。由安全应用程序启动器518执行的虚拟化应用程序526在移动设备502上使用的资源可以包括用户交互资源、处理资源等。用户交互资源可用于收集和传输键盘输入、鼠标输入、相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可用于呈现用户界面、处理从企业资源504接收的数据等。由安全应用程序启动器518执行的虚拟化应用程序526在企业资源504处使用的资源可以包括用户界面生成资源、处理资源等。用户界面生成资源可用于组装用户界面、修改用户界面、刷新用户界面等。处理资源可用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用程序526可以记录与图形用户界面(GUI)相关联的用户交互,并将它们传送到服务器应用程序,其中服务器应用程序将使用用户交互数据作为对在服务器上运行的应用程序的输入。在这样的布置中,企业可以选择在服务器侧维护应用程序以及与应用程序相关联的数据、文件等。虽然企业可以根据本文的原理通过将一些应用程序固定在移动设备502上进行部署来选择“移动”这些应用程序,但是对于某些应用程序也可以选择这种布置。例如,虽然一些应用程序可以被保护以在移动设备502上使用,但是其他应用程序可能不准备或不适合部署在移动设备502上,因此企业可以选择通过虚拟化技术向移动用户提供对未准备好的应用程序的访问。作为另一实例,企业可以具有带有大型复杂的数据集的大型复杂应用程序(例如,材料资源规划应用程序),其中为移动设备502定制应用程序将是非常困难的或不期望的,因此企业可以选择通过虚拟化技术提供对应用程序的访问。作为又一实例,企业可以具有维护高度安全的数据(例如,人力资源数据、客户数据、工程数据)的应用程序,企业可能认为这些数据对于安全的移动环境来说过于敏感,因此企业可以选择使用虚拟化技术来允许对此类应用程序和数据的移动访问。企业可以选择在移动设备502上提供完全安全和完全功能的应用程序以及虚拟化应用程序526,以允许访问被认为在服务器侧更适当地操作的应用程序。在一个实施例中,虚拟化应用程序526可以将移动设备502上的一些数据、文件等存储在安全存储位置之一中。例如,企业可以选择允许将某些信息存储在移动设备502上,而不允许其他信息。
结合虚拟化应用程序526,如本文所述,移动设备502可以具有被设计成呈现GUI并随后记录用户与GUI的交互的虚拟化应用程序526。虚拟化应用程序526可以将用户交互传送到服务器侧以由服务器侧应用程序用作用户与应用程序的交互。作为响应,服务器侧的应用程序可以将新的GUI传输回移动设备502。例如,新GUI可以是静态页面、动态页面、动画等,从而提供对远程资源的访问。
安全应用程序514可以访问存储在移动设备502的托管分区510中的安全数据容器528中的数据。安全数据容器中的安全数据可以由安全本机应用程序514、由安全应用程序启动器518执行的安全远程应用程序522、由安全应用程序启动器518执行的虚拟化应用程序526等访问。存储在安全数据容器528中的数据可以包括文件、数据库等。存储在安全数据容器528中的数据可以包括限于特定安全应用程序530、在安全应用程序532之间共享等的数据。限于安全应用程序的数据可以包括安全通用数据534和高度安全数据538。安全通用数据可以使用强加密形式,诸如高级加密标准(AES)128位加密等,而高度安全数据538可以使用非常强的加密形式,诸如AES 256位加密。当接收到来自设备管理器524的命令时,可以从移动设备502删除存储在安全数据容器528中的数据。安全应用程序(例如,514、522和526)可以具有双模式选项540。双模式选项540可以向用户呈现以非安全或非托管模式操作安全应用程序的选项。在非安全或非托管模式中,安全应用程序可以访问存储在移动设备502的非托管分区512上的非安全数据容器542中的数据。存储在非安全数据容器中的数据可以是个人数据544。存储在非安全数据容器542中的数据也可以由在移动设备502的非托管分区512上运行的非安全应用程序546访问。当存储在安全数据容器528中的数据从移动设备502中删除时,存储在非安全数据容器542中的数据可以保留在移动设备502上。企业可能希望从移动设备502中删除由企业拥有、许可或控制的选定或所有数据、文件和/或应用程序(企业数据),同时保留或以其他方式保存由用户拥有、许可或控制的个人数据、文件和/或应用程序(个人数据)。该操作可称为选择性擦除。利用根据本文描述的各方面布置的企业和个人数据,企业可以执行选择性擦除。
移动设备502可以连接到企业的企业资源504和企业服务508、公共因特网548等。移动设备502可以通过虚拟专用网络连接连接到企业资源504和企业服务508。虚拟专用网络连接,也称为微VPN或应用程序专用VPN,可以专用于特定应用程序(如微VPN 550所示、特定设备、移动设备上的特定安全区域(如O/S VPN 552所示)等。例如,移动设备502的安全区域中的每个包装的应用程序可以通过应用程序专用VPN来访问企业资源,使得基于与应用程序相关联的属性(可能结合用户或设备属性信息)授予对VPN的访问。虚拟专用网络连接可以承载微软交换业务、微软活动目录业务、超文本传输协议(HTTP)业务、超文本传输协议安全(HTTPS)业务、应用程序管理业务等。虚拟专用网络连接可以支持并启用单点登录认证过程554。单点登录过程可以允许用户提供单组认证凭证,然后由认证服务558对其进行验证。认证服务558然后可以向用户授予对多个企业资源504的访问,而无需用户向每个单独的企业资源504提供认证凭证。
虚拟专用网络连接可以由接入网关560建立和管理。接入网关560可以包括管理、加速和改进企业资源504到移动设备502的递送的性能增强特征。接入网关560还可以将业务从移动设备502重新路由到公共因特网548,使得移动设备502能够访问在公共因特网548上运行的公共可用且不安全的应用程序。移动设备502可以经由传输网络562连接到接入网关。传输网络562可以使用一个或多个传输协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
企业资源504可以包括电子邮件服务器、文件共享服务器、SaaS应用程序、网络应用程序服务器、Windows应用程序服务器等。电子邮件服务器可以包括Exchange服务器、Lotus Notes服务器等。文件共享服务器可以包括ShareFile服务器等。SaaS应用程序可以包括Salesforce等。Windows应用程序服务器可以包括被构建为提供旨在在本地Windows操作系统等上运行的应用程序的任何应用服务器。企业资源504可以是基于驻地的资源、基于云的资源等。企业资源504可以由移动设备502直接或通过接入网关560访问。企业资源504可以由移动设备502经由传输网络562访问。
企业服务508可以包括认证服务558、威胁检测服务564、设备管理器服务524、文件共享服务568、策略管理器服务570、社交整合服务572、应用程序控制器服务574等。认证服务558可以包括用户认证服务、设备认证服务、应用程序认证服务、数据认证服务等。认证服务558可以使用证书。证书可以由企业资源504等存储在移动设备502上。存储在移动设备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包装的应用程序然后可以通过使用应用程序控制器574将其填充在应用程序商店578中而对移动设备502可用。
企业移动性技术架构500可以包括管理和分析能力588。管理和分析能力588可以提供与如何使用资源、使用资源的频率等有关的信息。资源可以包括设备、应用程序、数据等。如何使用资源可以包括哪些设备下载哪些应用程序、哪些应用程序访问哪些数据等。使用资源的频率可以包括应用程序下载的频率、特定数据集被应用程序访问的次数等。
图6是另一示例性企业移动性管理系统600。为了简单起见,已经省略了上面参考图5描述的移动性管理系统500的一些组件。图6所描绘的系统600的架构在许多方面类似于上文参考图5描述的系统500的架构,并且可以包括上文未提及的附加功能。
在这种情况下,左侧表示具有客户端代理604的登记的移动设备602,客户端代理604与网关服务器606(其包括接入网关和应用程序控制器功能)交互以访问各种企业资源608和服务609,诸如Exchange、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、证书发布服务,如以上右侧所示。虽然没有具体示出,但是移动设备602还可以与企业应用程序商店(店面)交互以选择和下载应用程序。
客户端代理604充当托管在企业数据中心中的Windows应用程序/桌面的UI(用户界面)中介,这些应用程序/桌面使用高清晰度用户体验(HDX)/ICA显示遥控协议进行访问。客户端代理604还支持在移动设备602上安装和管理本地应用程序,诸如本地iOS或安卓应用程序。例如,在上图中示出的托管应用程序610(邮件、浏览器、包装应用程序)都是在移动设备602上本地执行的本机应用程序。该架构的客户端代理604和应用程序管理框架用于向企业资源/服务608提供策略驱动的管理能力和功能,诸如连通性和SSO(单点登录)。客户端代理604处理对企业的主用户认证,通常是对接入网关(AG)606的认证,并对其他网关服务器组件进行SSO。客户端代理604从网关服务器606获得策略以控制移动设备602上的托管应用程序610的行为。
本机应用程序610与客户端代理604之间的安全进程间通信(IPC)链路612表示管理信道,其可以允许客户端代理提供将由应用程序管理框架614“包装”每一应用程序来实施的策略。IPC信道612还可以允许客户端代理604向企业资源608提供支持连通性和SSO的凭证和认证信息。最后,IPC信道612可以允许应用程序管理框架614调用由客户端代理604实现的用户界面功能,诸如在线和离线认证。
客户端代理604与网关服务器606之间的通信本质上是来自包裹每个本机管理应用程序610的应用程序管理框架614的管理信道的扩展。应用程序管理框架614可以从客户端代理604请求策略信息,客户端代理604又可以从网关服务器606请求策略信息。应用程序管理框架614可以请求认证,并且客户端代理604可以登录到网关服务器606的网关服务部分(例如,Citrix网关)。客户端代理604还可以调用网关服务器606上的支持服务,网关服务器606可以产生输入材料以导出用于本地数据库616的加密密钥,或者可以提供客户端证书,客户端证书可以允许对PKI保护的资源的直接认证,如下面更全面地解释的。
更详细地,应用程序管理框架614“包装”每个托管应用程序610。这可以经由显式构建步骤或经由后构建处理步骤来并入。应用程序管理框架614可以在应用程序610的第一次启动时与客户端代理604“配对”,以初始化安全IPC信道612并获得该应用程序的策略。应用程序管理框架614可以强制执行本地应用的策略的相关部分,诸如客户端代理登录依赖性和限制如何使用本地OS服务或它们如何与托管应用程序610交互的一些包含策略。
应用程序管理框架614可以使用由客户端代理604通过安全IPC信道612提供的服务来促进认证和内部网络访问。用于专用和共享数据保管库616(容器)的密钥管理也可以由托管应用程序610与客户端代理604之间的适当交互来管理。保管库616可以仅在在线认证之后可用,或者如果策略允许的话,可以在离线认证之后可用。保管库616的第一次使用可能需要在线认证,并且离线访问可能限于在再次需要在线认证之前的至多策略刷新周期。
对内部资源的网络访问可以通过接入网关606直接从各个托管应用程序610发生。应用程序管理框架614可以代表每个托管应用程序610负责协调网络访问。客户端代理604可以通过提供在在线认证之后获得的适当的时间受限的次级凭证来促进这些网络连接。可以使用多种网络连接模式,诸如反向网络代理连接和端到端VPN式隧道618。
邮件和浏览器管理的应用程序610具有特殊的状态,并且可以利用对于任意包装的应用程序通常不可用的设施。例如,邮件应用程序610可以使用特殊的后台网络访问机制,该机制允许它在延长的时间段内访问Exchange服务器608,而无需完全的AG登录。浏览器应用程序610可以使用多个专用数据保管库616来分离不同种类的数据。
该架构可以支持各种其他安全功能的结合。例如,网关服务器606(包括其网关服务)在某些情况下可能不需要验证活动目录(AD)密码。在某些情况下,是否可以将AD密码用作某些用户的认证因素可以由企业自行决定。如果用户在线或离线(即,连接到或未连接到网络),则可以使用不同的认证方法。
逐步提高认证是一种功能,其中网关服务器606可以识别被允许访问需要强认证的高度机密数据的托管本机应用程序610,并且确保仅在执行适当的认证之后允许对这些应用程序的访问,即使这意味着在先前较弱的登录级别之后用户需要重新认证。
该解决方案的另一安全功能是对移动设备602上的数据保管库616(容器)进行加密。可以对保管库616进行加密,以便保护包括文件、数据库和配置的所有设备上数据。对于在线保管库,密钥可以存储在服务器(网关服务器606)上,而对于离线保管库,密钥的本地复制可以由用户密码或生物特征验证来保护。如果或当数据在移动设备602上本地存储在安全容器616中时,可以优选地使用最少的AES 256加密算法。
也可以实现其他安全容器功能。例如,可以包括记录功能,其中发生在托管应用程序610内的安全事件可被记录并报告给后端。可以支持数据擦除,诸如如果或当托管应用程序610检测到篡改时,相关联的加密密钥可以随随机数据一起被重写,在文件系统上不留下用户数据被破坏的提示。屏幕截图保护可以是另一功能,其中应用程序可以防止任何数据存储在屏幕截图中。例如,键窗口的隐藏属性可以被设置为是。这可能导致当前显示在屏幕上的任何内容被隐藏,从而导致任何内容通常驻留的空白屏幕截图。
可以防止本地数据传送,如通过防止任何数据被本地传送到应用程序容器之外,例如通过复制它或将它发送到外部应用程序。键盘高速缓存功能可用于禁用敏感文本字段的自动校正功能。SSL证书验证可以是可操作的,从而应用程序具体地验证服务器SSL证书,而不是将其存储在密钥链中。可以使用加密密钥生成功能,使得使用由用户提供的密码短语或生物特征数据(如果需要离线访问)来生成用于加密移动设备602上的数据的密钥。如果不需要离线访问,则可以使用另一个随机生成并存储在服务器端的密钥进行异或。密钥导出函数可以操作使得从用户密码生成的密钥使用KDF(密钥导出函数,特别是基于密码的密钥导出函数2(PBKDF2))而不是创建其密码散列。后者使钥匙容易受到暴力攻击或字典攻击。
此外,在加密方法中可以使用一个或多个初始化矢量。初始化矢量将使相同加密数据的多个副本产生不同的密文输出,从而防止重放攻击和密码分析攻击。这也将防止攻击者即使使用被盗的加密密钥也无法解密任何数据。。此外,可以使用认证然后解密,其中仅在用户已经在应用程序内认证之后才解密应用程序数据。另一功能可以涉及存储器中的敏感数据,这些数据可以仅在需要时保存在存储器中(而不是保存在磁盘中)。例如,可以在登录之后从存储器中擦除登录凭证,并且不存储目标C实例变量内的加密密钥和其他数据,因为它们很容易被引用。相反,可以为这些数据手动分配存储器。
可以实现不活动超时,其中在策略定义的不活动时段之后,终止用户会话。
可以以其他方式防止从应用程序管理框架614的数据泄漏。例如,如果或当托管应用程序610被置于后台时,可以在预定(可配置)时间段之后清除存储器。当后台运行时,可以对应用程序的最后显示的屏幕进行快照以加快前台进程。屏幕截图可以包含机密数据,因此应清除。
另一安全功能可以涉及使用OTP(一次性密码)620而不使用AD(活动目录)622密码来访问一个或多个应用程序。在一些情况下,一些用户不知道(或不被允许知道)他们的AD密码,因此这些用户可以使用OTP 620进行认证,诸如通过使用如SecurID的硬件OTP系统(OTP也可以由不同的销售商提供,诸如Entrust或金雅拓(Gemalto))。在一些情况下,在用户用用户ID进行认证之后,可以用OTP 620向用户发送文本。在一些情况下,这可能仅用于在线使用,其中提示是单个字段。
对于那些经由企业策略允许离线使用的托管应用程序610,可以实施离线密码以进行离线认证。例如,企业可能希望以这种方式访问店面。在这种情况下,客户端代理604可以要求用户设置自定义离线密码,而不使用AD密码。网关服务器606可以提供策略来控制和实施关于密码的最小长度、字符类别组成和年龄的密码标准,诸如由标准窗口服务器密码复杂度要求所描述的,尽管这些要求可以被修改。
另一功能可以涉及用于某些应用程序610的客户端侧证书作为辅助凭证的启用(出于经由应用程序管理框架微VPN功能访问PKI保护的网络资源的目的)。例如,托管应用程序610可以利用这样的证书。在这种情况下,可以支持使用ActiveSync协议的基于证书的认证,其中来自客户端代理604的证书可以由网关服务器606检索并在密钥链中使用。每个托管应用程序610可以具有一个相关联的客户端证书,其由在网关服务器606中定义的标签识别。
网关服务器606可以与企业专用网络服务交互,以支持客户端证书的发布,从而允许相关的托管应用程序对内部PKI保护的资源进行认证。
客户端代理604和应用程序管理框架614可以被增强以支持获取和使用客户端证书以对内部PKI保护的网络资源进行认证。可以支持多个证书,诸如以匹配不同级别的安全和/或分离要求。该证书可以由邮件和浏览器管理的应用程序610使用,并且最终由任意包装的应用程序610使用(假设那些应用程序使用网络服务风格的通信模式,其中应用程序管理框架对HTTPS请求进行调解是合理的)。
iOS上的应用程序管理客户端证书支持可以依赖于针对每个使用周期将公钥密码学标准(PKCS)12BLOB(二进制大对象)导入每个托管应用程序610中的iOS密钥链中。应用程序管理框架客户端证书支持可以使用具有私有存储器内密钥存储的HTTPS实现。客户端证书可以不存在于iOS密钥链中,并且可能不会持久化,除非可能存在于受到强烈保护的“仅在线”数据值中。
还可以实现相互SSL或TLS,以通过要求移动设备602向企业认证来提供附加的安全性,反之亦然。也可以实现用于对网关服务器606进行认证的虚拟智能卡。
另一功能可以涉及应用程序容器锁定和擦除,其可以在发生故障或发根检测时自动发生,且作为来自管理控制台的推送命令而发生,且可以包括远程擦除功能性,甚至在托管应用程序610未运行时。
可以支持企业应用程序商店和应用程序控制器的多站点架构或配置,其允许在发生故障的情况下从若干不同位置之一服务用户。
在一些情况下,可以允许托管应用程序610经由API(例如,OpenSSL)访问证书和私钥。可以允许企业的受信管理应用程序610利用应用程序的客户端证书和私钥来执行特定的公钥操作。可以相应地识别和处理各种使用情况,诸如如果或当应用程序表现得像浏览器且不需要证书访问时,如果或当应用程序读取“我是谁”的证书时,如果或当应用程序使用该证书构建安全会话令牌时,以及如果或当应用程序使用私钥对重要数据(如事务日志)进行数字签名或临时数据加密时。
跟踪客户端设备上的图像发送者
图7A和图7B描绘了根据一个或多个示例实施例的用于使用客户端设备来跟踪图像发送者的示例性计算环境。参考图7A,计算环境700可以包括一个或多个计算机系统。例如,计算环境700可以包括客户端设备702、管理员计算平台703和账户过滤服务器704。
如下文更详细地说明的,客户端设备702可以包括经配置以执行本文描述的一个或多个功能的一个或多个计算设备。例如,客户端设备702可以是移动设备、平板电脑、智能电话、膝上型计算机、台式计算机等。在一些情况下,客户端设备702可经配置以捕获图像、将唯一水印矢量嵌入到图像中,并将图像路由到可经配置以基于唯一水印矢量确定图像的发送者的附加计算平台。
管理员计算平台703可以是包括一个或多个计算设备和/或其他计算机组件(例如,膝上型计算机、台式计算机、处理器、存储器、通信接口、服务器、服务器刀锋等)的计算机系统。另外,管理员计算平台703可经配置以从客户端设备702接收包含上述水印矢量的图像。管理员计算平台703还可经配置以将图像发送到账户过滤器服务器,以识别对应于图像的发送者,并接收对应于发送者的账户的指示。
如下围更详细地说明的,账户过滤器服务器704可以是包括一个或多个计算设备和/或其他计算机组件(例如,处理器、存储器、通信接口、服务器、服务器刀锋等)的计算机系统。另外,账户过滤服务器704可经配置以从管理员计算平台703接收图像、确定对应于图像的发送者的账户,并向管理员计算平台703提供发送者的指示。
计算环境700还可以包括一个或多个网络,其可以互连客户端设备702、管理员计算平台703和账户过滤服务器704。例如,计算环境700可以包括网络701(其可以例如互连客户端设备702、管理员计算平台703和账户过滤服务器704)。
在一个或多个布置中,客户端设备702、管理员计算平台703、账户过滤服务器704和/或计算环境700中包括的其他系统可以是能够接收用户界面、经由用户界面接收输入,以及将所接收的输入传送到一个或多个其他计算设备的任何类型的计算设备。例如,客户端设备702、管理员计算平台703、账户过滤服务器704和/或计算环境700中包括的其他系统在某些情况下可以是和/或包括服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话等,其可以包括一个或多个处理器、存储器、通信接口、存储设备和/或其他组件。如上所述,并且如下文更详细地说明的,客户端设备702、管理员计算平台703和账户过滤服务器704中的任一个和/或全部在某些情况下可以是经配置以执行特定功能的专用计算设备。
参考图7B,客户端设备702可以包括一个或多个处理器711、存储器712和通信接口713。数据总线可以互连处理器711、存储器712和通信接口713。通信接口713可以是经配置以支持客户端设备702与一个或多个网络(例如,网络701等)之间的通信的网络接口。存储器712可以包括具有指令的一个或多个程序模块,指令在由处理器711执行时使客户端设备702执行本文描述的一个或多个功能和/或访问一个或多个数据库,数据库可以存储和/或以其他方式维护可以由此类程序模块和/或处理器711使用的信息。在一些情况下,一个或多个程序模块和/或数据库可以由客户端设备702的不同存储器单元存储和/或维护。例如,存储器712可以具有、托管、存储和/或包括MAM应用程序712a、挂钩模块712b和盲水印模块712c。MAM应用程序712a可以使客户端设备702从存储的相册或相机应用程序中检索图像。挂钩模块712b可经配置以截取存储器与MAM应用程序712a之间的图像。盲水印模块712c可经配置以对用户企业账户进行编码、提取对应的特征矢量,并将特征矢量嵌入到图像的频域中,如下文更详细地讨论的。
参考图7C,账户过滤器服务器704可以包括一个或多个处理器714、存储器715和通信接口716。数据总线可以互连处理器714、存储器715和通信接口716。通信接口716可以是经配置以支持账户过滤服务器704与一个或多个网络(例如,网络701等)之间的通信的网络接口。存储器715可以包括具有指令的一个或多个程序模块,指令在由处理器714执行时使账户过滤服务器704执行本文描述的一个或多个功能和/或访问一个或多个数据库,数据库可以存储和/或维护可以由此类程序模块和/或处理器714使用的信息。在一些情况下,一个或多个程序模块和/或数据库可以由账户过滤服务器704的不同存储器单元存储和/或维护。例如,存储器715可以具有、托管、存储和/或包括调度服务模块715a、工作者服务模块715b和缩减服务模块715c。调度服务模块715a可经配置以将接收到的图像调度到各种工作者服务模块以进行分析。工作者服务模块715b可经配置以比较接收到的图像和各种用户账户以确定每个用户账户对应于图像的发送者的概率。缩减服务模块715c可经配置以确定并输出具有与图像的发送者对应的最大概率的用户账户。
图8A至图8C描绘了根据一个或多个示例实施例的用于部署执行图像发送者的跟踪和识别的增强处理系统的示例性事件序列算法。应当理解,步骤801-826可以按照关于图8A至图8C所示的顺序进行。例如,在完成图8A的步骤808之后,事件序列算法可以前进到图8B的步骤809。参考图8,在步骤801处,客户端设备702可以接收向另一计算设备发送图像的请求。在一些情况下,其他计算设备可以与客户端设备702一起位于共享内部网络上。在其他情况下,其他计算设备可以位于外部网络上。在一些情况下,在接收发送图像的请求时,客户端设备702可以接收发送机密信息、内部数据等的请求。在一种或多种情况下,客户端设备702可以通过经由客户端设备702的显示器或对应于客户端设备702的另一输入机制(键盘输入、鼠标输入等)接收用户输入来接收发送图像的请求。
作为实例,用户可以访问客户端设备702上的安全电子消息收发应用程序。在一种或多种情况下,安全电子消息收发应用程序可以在远程桌面、虚拟机等上运行。客户端设备702可以从用户接收请求客户端设备702访问并经由电子消息收发应用程序发送包含机密信息的图像的输入。在这些情况下,MAM应用程序712a可以通过存储的相册或相机应用程序请求访问图像。
在步骤802处,在步骤801处接收到发送图像的请求之后,客户端设备702可以检索对应于用户的用户账户信息(例如,电子邮件、用户名、蜂窝电话号码和序列号等),并且可以对用户账户信息应用散列算法。在这些情况下,客户端设备702可以检索所请求的图像,并且挂钩模块712b可以在将该图像递送到MAM应用程序712a之前拦截该图像。一旦被拦截,所请求的图像就可以从挂钩模块712b发送到盲水印模块712c,盲水印模块712c可以执行步骤802-808。在一种或多种情况下,通过应用散列函数,客户端设备702可以加密用户账户信息。在这些情况下,客户端设备702可以将MD5散列算法应用于用户账户信息,这可以产生对应于用户账户信息的128位二进制矢量。
在步骤803处,客户端设备702可以将矩阵合成算法应用于在步骤802处生成的128位二进制矢量。在这些情况下,客户端设备702可以基于128位二进制矢量生成矩阵。例如,客户端设备702可以生成对应于128位二进制矢量的8x18矩阵。
在步骤804处,客户端设备702可以将SVD算法应用于在步骤803处生成的矩阵。在应用SVD算法时,客户端设备702可以从表示用户账户信息的矩阵中提取特征摘要(例如,水印矢量)。在一种或多种情况下,在应用SVD算法时,客户端设备702可以提取在步骤803处生成的二进制矢量的单行。
在步骤805处,客户端设备702可以检索在步骤801处请求的图像。在一种或多种情况下,客户端设备702可以从照片存储器、相机应用程序等中检索图像。在这些情况下,客户端设备702可以检索包含机密信息的图像。在一种或多种情况下,一旦检索到图像,客户端设备702就可以将图像划分为多个32×32像素块。例如,客户端设备702可以将图像划分为64个块,每个块可以具有32×32像素的尺寸。
在步骤806处,客户端设备702可以将图像转换到频域。在一种或多种情况下,客户端设备702可以通过对图像应用DCT算法来将图像转换到频域。在步骤807处,一旦图像已经转换到频域,客户端设备702就可以将在步骤804处生成的水印矢量嵌入到图像的一个或多个块中。在一种或多种情况下,通过将水印矢量嵌入到图像中,客户端设备702可以在步骤801处嵌入请求发送图像的用户账户的标识符。
在步骤808处,一旦客户端设备702将特征矢量嵌入到频域图像中,客户端设备702就可以将频域图像转换回空间域。在一种或多种情况下,客户端设备702可以使用逆离散余弦变换(IDCT)算法将频域图像转换回空间域。结果,客户端设备702可以在发送之前将用户账户信息的指示嵌入到图像中,从而得到标记的图像。在完成步骤808之后,客户端设备可以前进到图8B所示的步骤809。
在图11所示的处理流程图1100中进一步图示了在步骤801-808执行的动作。例如,如图11所示,客户端设备702可以应用散列算法来加密用户账户字符(例如,电子邮件地址),并且可以生成加密的用户账户字符的对应矩阵。然后,客户端设备702可以从加密的信息(例如,特征矢量/水印矢量)中提取SVD特征。在确定水印矢量之后,客户端设备702可以将图像从空间域变换到频域,并且可以将水印矢量嵌入到图像的选定块中。在一些情况下,客户端设备702可以对角地或沿着图像的边缘嵌入水印矢量。在嵌入水印矢量之后,客户端设备702可以将图像从频域恢复到空间域,从而得到标记的图像。
参考图8B,在步骤809处,客户端设备702可以建立与管理员计算平台703的连接。在一种或多种情况下,客户端设备702可以建立与管理员计算平台703的第一无线数据连接,以将客户端设备702链接到管理员计算平台703。
在步骤810处,客户端设备702可以将在步骤808处生成的标记图像发送到管理员计算平台703。在一种或多种情况下,客户端设备702可以在建立第一无线数据连接的同时经由通信接口713发送标记的图像。在一种或多种情况下,盲水印模块712c可以将标记的图像返回到挂钩模块712b,挂钩模块712b可以允许标记的图像如最初请求的那样传递到MAM应用程序712a。在这些情况下,标记的图像可以从MAM应用程序712a发送到管理员计算平台703。
在步骤811处,管理员计算平台703可以接收在步骤810处发送的标记图像。在一种或多种情况下,管理员计算平台可以在建立第一无线数据连接的同时经由通信接口716接收标记的图像。在步骤812处,管理员计算平台703可以确定是否应当识别标记图像的发送者。在一种或多种情况下,如果标记图像包含机密信息,则管理员计算平台703可以确定应标识标记图像的发送者。在其他情况下,管理员计算平台703可以确定应标识所有图像的发送者,而不管图像的内容如何。附加地或替代地,管理员计算平台703可以确定,如果标记的图像正被发送到外部网络上的设备,而不是标记的图像正被发送到内部,则应该确定标记图像的发送者。如果管理员计算平台703确定不应识别标记图像的发送者,则事件序列算法可以结束。如果管理员计算平台703确定应识别标记图像的发送者,则管理员计算平台703可以前进到步骤813。
在步骤813处,管理员计算平台703可以建立与账户过滤服务器704的连接。在一种或多种情况下,管理员计算平台703可以建立与账户过滤服务器704的第二无线数据连接,以将管理员计算平台703链接到账户过滤服务器704。
在步骤814处,管理员计算平台703可以将标记的图像发送到账户过滤器服务器704。在一种或多种情况下,管理员计算平台703可以在建立第二无线数据连接的同时经由通信接口716将标记的图像发送到账户过滤器服务器704。
在步骤815处,账户过滤服务器704可以接收在步骤814处发送的标记图像。在一种或多种情况下,账户过滤器服务器704可以在建立第二无线数据连接的同时接收标记的图像。在一种或多种情况下,账户过滤器服务器704可以在调度服务模块715a处接收标记的图像。
在步骤816处,账户过滤服务器704可以在账户过滤服务器的调度服务模块(例如,调度服务模块715a)处生成标记图像的一个或多个副本,并且可以将标记图像路由到多个工作者服务模块(例如,工作者服务模块715b)中的每一个。在这些实例中,账户过滤服务器704可以包含对应于多个用户(例如,公司的雇员、内部网络的成员、雇员的子集,或任何其他预定义的用户组)中的每一个的工作者服务模块715b。在这些实例中,工作者服务模块715b中的每一个可以具有与其对应用户相关联的用户账户信息(例如,电子邮件地址、电话号码、硬件序列号、用户名等)。
作为实例,如果公司有三个雇员,则账户过滤服务器704可以为三个雇员中的每一个维护工作者服务模块715b。因此,第一工作者服务模块可以包括雇员一的电子邮件地址,第二工作者服务模块可以包括雇员二的电子邮件地址,且第三工作者服务模块可以包括雇员三的电子邮件地址。
在一种或多种情况下,账户过滤器服务器704可以接收对应于已知用户账户列表的企业用户列表输入。例如,如果公司包括雇员一、二和三,则管理员计算平台703可以将企业用户列表发送到账户过滤服务器704,并且该列表可以包括对应于雇员一、二和三的用户账户信息。在这些情况下,账户过滤服务器704可以为每个已知用户账户生成工作者服务模块715b。在一种或多种情况下,账户过滤器服务器704可以至少与标记的图像一起接收企业用户(例如,在步骤815处)。在一种或多种情况下,账户过滤服务器704可以生成用于不同雇员组的工作者服务模块715b(例如,用于工程团队的第一工作者服务模块和用于企业团队的第二工作者服务模块)。在这些情况下,工作者服务模块715b可以包含对应于每个雇员的子模块。
在步骤817处,账户过滤服务器704可以使用每个工作者服务模块715b来散列他们各自的用户账户信息。在一种或多种情况下,类似于上文关于步骤802处的客户端设备702所描述,账户过滤服务器704可以将MD5散列算法应用于每一相应工作者服务模块715b处的用户账户信息。在这些情况下,账户过滤服务器704可以在每个工作者服务模块715b处生成128位二进制矢量,其对应于这些工作者服务模块的对应用户账户信息。例如,账户过滤服务器704可以生成对应于雇员一的电子邮件地址的第一二进制矢量、对应于雇员二的电子邮件地址的第二二进制矢量,以及对应于雇员三的电子邮件地址的第三二进制矢量。
在步骤818处,账户过滤服务器704可以使用每个工作者服务模块715b来将矩阵合成算法应用于它们各自的128位二进制矢量。在步骤818处由账户过滤服务器704执行的动作可以类似于上文在步骤803处关于客户端设备702所描述的动作。例如,账户过滤器服务器704可以在每个工作者服务模块715b处生成与它们各自的128位二进制矢量相对应的矩阵。例如,账户过滤器服务器704可以生成对应于第一二进制矢量的第一矩阵、对应于第二二进制矢量的第二矩阵,以及对应于第三二进制矢量的第三矩阵。在完成步骤818之后,账户过滤服务器704可以前进到图8C所示的步骤819。
参考图8C,在步骤819处,账户过滤器服务器704可以使用每个工作者服务模块715b来将SVD算法应用于它们各自的矩阵。在步骤819处由账户过滤服务器704执行的动作可以类似于上文在步骤803处关于客户端设备702所描述的动作。例如,账户过滤服务器704可以提取对应于每个相应矩阵的水印矢量。因此,通过执行步骤817-820,账户过滤器服务器704可以为对应于与账户过滤器服务器704相关联的实体的每个可能的用户账户确定水印矢量。例如,账户过滤器服务器704可以生成对应于第一矩阵的第一水印矢量、对应于第二矩阵的第二水印矢量,以及对应于第三矩阵的第三水印矢量,从而在账户过滤器服务器704处产生对应于每个可能账户(例如,雇员一、二和三)的水印矢量。在这些情况下,账户过滤器服务器704可以在各个工作者服务模块715b的每一个处存储提取的水印矢量。
在步骤820处,账户过滤器服务器704可以将标记的图像转换到频域。在一种或多种情况下,账户过滤器服务器704可以在每个工作者服务模块715b处将标记的图像转换到频域。在其他情况下,账户过滤服务器704可以在将标记的图像路由到工作者服务模块715b之前将标记的图像转换到频域。在一种或多种情况下,账户过滤器服务器704可以通过应用DCT算法将标记的图像转换到频域。在步骤820处由账户过滤器服务器704执行的动作可以类似于在步骤806处由客户端设备702执行的动作。
在步骤821处,账户过滤服务器704可以使用每个工作者服务模块715b来分析频域图像,以确定标记的图像由对应于每个相应工作者服务模块715b的账户发送的概率。在分析频域图像时,账户过滤器服务器704可以确定由每个工作者服务模块715b确定的水印矢量与嵌入在频域图像中的水印矢量匹配的概率。在一种或多种情况下,在分析频域图像时,账户过滤器服务器704可以将水印矢量与标记图像中包含水印矢量的部分(例如,在步骤805处生成的一个或多个块)进行比较。例如,账户过滤器服务器704可以从频域图像的预定子区域中提取嵌入的水印矢量,并且可以将嵌入的水印矢量与对应于每个工作者服务模块715b处的水印矢量的水印矢量(例如,对应于可能账户的水印矢量)进行比较。在其他情况下,账户过滤服务器704可能不知道预定的子区域,并且可以分析整个频域图像以识别嵌入的水印矢量。在一种或多种情况下,频域图像可以包含多个子区域中的嵌入水印矢量,并且账户过滤器服务器704可以识别这些子区域中的至少一个中的嵌入水印矢量。
继续上述实例,账户过滤器服务器704可以确定对应于雇员一、雇员二和雇员三中的每一个的水印矢量与嵌入在频域图像中的水印匹配的概率。在该实例中,账户过滤器服务器704可以确定对应于雇员一的水印矢量有10%的几率是匹配的,对应于雇员二的水印矢量有5%的几率是匹配的,以及对应于雇员三的水印矢量有85%的几率是匹配的。
在步骤822处,账户过滤服务器704可以使用每个工作者服务模块715b将在步骤821处确定的概率传送到缩减服务模块715c。按照上述实例,工作者服务模块715b可以向缩减服务模块715c发送对应于雇员一的水印矢量有10%的几率是匹配的,对应于雇员二的水印矢量有5%的几率是匹配的,以及对应于雇员三的水印矢量有85%的几率是匹配的。
在步骤823处,账户过滤服务器704可以使用缩减服务模块715c来确定在步骤822中接收的哪个概率最大。例如,如果对应于雇员三的水印矢量有85%的几率是匹配的,则账户过滤服务器704可以确定对应于雇员三的水印矢量与发送标记图像的用户账户相关联。
在图12所示的过程流程图1200中进一步示出了在步骤815-823执行的动作。参考图12,账户过滤服务器704可以将散列算法应用于对应于多个工作者服务模块715b中的每一个的可能用户账户以加密可能账户。账户过滤服务器704可以从加密的可能账户中提取SVD特征,从而产生水印矢量。账户过滤器服务器704可以将标记的图像(从管理员计算平台703接收的)从空间域变换到频域。然后,账户过滤服务器704可以比较包含嵌入水印的频域图像的一部分,以计算平均相似度。在确定平均相似度时,账户过滤服务器704可以确定标记的图像由可能的账户发送的概率。
在步骤824处,账户过滤服务器704可以确定对应于在步骤823中选择的水印矢量的账户。在一种或多种情况下,账户过滤器服务器704可以维护将用户账户信息和水印矢量相关联的存储的账户列表。在这些情况下,账户过滤服务器704可以对水印矢量执行查找功能以确定用户账户。继续上面的实例,账户过滤服务器可以确定在步骤823处选择的水印矢量对应于雇员三。
在步骤825处,账户过滤服务器704可以生成并发送在步骤824处确定的用户账户的指示。在一种或多种情况下,账户过滤服务器704可以在建立第二无线数据连接的同时经由通信接口716向管理员计算平台703发送用户账户的指示。在一种或多种情况下,账户过滤服务器704可以在用户账户的指示中包括所识别用户是否应能够访问和/或发送包括在图像中的机密信息的警告。在这些情况下,各种用户可以与工作者服务模块712b处的不同安全级别相关联。例如,公司总裁可以访问某些信息,而初级雇员可能无法访问这些信息。
在步骤826处,账户过滤服务器704可以从账户过滤服务器704接收用户账户的指示。在这些情况下,账户过滤服务器704可以在建立第二无线数据连接的同时经由通信接口713接收账户的指示。
随后,事件序列算法可以结束,并且客户端设备702和账户过滤器服务器704可以继续使用嵌入的水印矢量来确定图像的发送者。在这样做时,客户端设备702和账户过滤服务器704可以以对几何攻击具有鲁棒性并且不影响客户端设备702处的用户体验的方式跟踪数据泄漏。
图9描绘了根据一个或多个示例实施例的用于部署执行图像发送者的跟踪和识别的增强处理系统的示例性方法算法。参考图9,在步骤905处,具有至少一个处理器、通信接口和存储器的计算设备可以接收捕获请求。在步骤910处,计算设备可以将散列算法应用于对应于图像的发送者的用户账户信息,以加密用户账户信息。在步骤915处,计算设备可以应用矩阵合成算法来生成对应于用户账户信息的矩阵。在步骤920处,计算设备可以将SVD算法应用于矩阵以生成水印矢量。在步骤925处,计算设备可以将图像划分成多个块。在步骤930处,计算设备可以将图像转换到频域。在步骤935处,计算设备可以将水印矢量嵌入到频域图像中。在步骤940处,计算设备可以将频域图像恢复到空间域,从而产生标记的图像。在步骤945处,计算设备可以确定是否捕获了附加图像。如果捕获了附加图像,则计算设备可以返回到步骤910。如果没有捕获到附加图像,则计算设备可以前进到步骤950。
在步骤950处,计算设备可以确定是否接收到发送图像的请求。如果没有接收到发送图像的请求,则计算设备可以等待发送图像的请求。如果接收到发送图像的请求,则计算设备可以前进到步骤955。
在步骤955处,计算设备可以建立与管理计算平台的连接。在步骤960处,计算设备可以将图像发送到管理计算平台。
图10描绘了根据一个或多个示例实施例的用于部署执行图像发送者的跟踪和识别的增强处理系统的示例性方法算法。虽然图9从客户端设备的角度描述了该示例性方法算法,但是图10从服务器侧的角度描述了该示例性方法算法。参考图10,在步骤1005处,具有至少一个处理器、通信接口和存储器的计算设备可以建立与管理计算平台的连接。在步骤1010处,计算设备可以接收标记的图像(例如,在步骤960处发送的标记图像)。在步骤1015处,计算设备可以将标记的图像路由到与特定用户相关联的工作者服务模块。在步骤1020处,计算设备可以散列对应于工作者服务模块的可能账户。在步骤1025处,计算设备可以对散列的可能账户应用矩阵合成算法以生成对应的矩阵。在步骤1030处,计算设备可以对矩阵应用SVD算法以生成对应于可能账户的水印矢量。在步骤1035处,计算设备可以确定是否存储了附加的工作者服务模块。如果存储了附加的工作者服务模块,则计算设备可以返回到步骤1015。如果没有存储附加的工作者服务模块,则计算设备可以前进到步骤1040。
在步骤1040处,计算设备可以将标记的图像转换到频域。在步骤1045处,计算设备可以将在步骤1030处确定的水印矢量与频域图像进行比较,以确定水印矢量与频域图像中嵌入的水印矢量之间的相似性。在步骤1050处,计算设备可以发送水印矢量与嵌入的水印矢量匹配的概率。在步骤1055处,计算设备可以确定是否存储了附加的工作者服务模块。如果存储了附加的工作者服务模块,则计算设备可以返回到步骤1045。如果没有存储附加的工作者服务模块,则计算设备可以前进到步骤1060。
在步骤1060处,计算设备可以确定哪个工作者服务模块确定水印矢量与嵌入的水印矢量之间匹配的最高概率。在步骤1065处,计算设备可以确定对应于所确定的工作者服务模块的用户账户。在步骤1070处,计算设备可以向管理员计算平台发送账户的指示。
本公开的一个或多个方面可以体现在计算机可用数据或计算机可执行指令中,诸如在一个或多个程序模块中,由一个或多个计算机或其他设备执行以执行本文所述的操作。通常,程序模块包括例程、程序、对象、组件、数据结构等,其在由计算机或其他数据处理设备中的一个或多个处理器执行时执行特定任务或实现特定抽象数据类型。计算机可执行指令可以作为计算机可读指令存储在诸如硬盘、光盘、可移动存储介质、固态存储器、RAM等的计算机可读介质上。在各种实施例中,可以根据需要组合或分布程序模块的功能。另外,功能可以整体或部分地体现在固件或硬件等效物中,诸如集成电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。特定的数据结构可用于更有效地实现本公开的一个或多个方面,并且预期此类数据结构在本文所述的计算机可执行指令和计算机可用数据的范围内。
本文描述的各方面可以体现为方法、装置或存储计算机可执行指令的一种或多种计算机可读介质。因此,这些方面可以采取完全硬件实施例、完全软件实施例、完全固件实施例或以任何组合组合软件、硬件和固件方面的实施例的形式。另外,表示本文描述的数据或事件的各种信号可以以穿过诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)的信号传导介质的光波或电磁波的形式在源与目的地之间传输。通常,一种或多种计算机可读介质可以是和/或包括一个或多个非暂时性计算机可读介质。
如本文所述,各种方法和动作可以跨一个或多个计算服务器和一个或多个网络操作。功能可以以任何方式分布,或者可以位于单个计算设备(例如,服务器、客户端计算机等)中。例如,在替代实施例中,上文讨论的一个或多个计算系统可以组合成单个计算系统,并且每个计算系统的各种功能可以由单个计算系统执行。在这样的布置中,计算系统之间的任何和/或所有上述通信可以对应于由单个计算系统访问、移动、修改、更新和/或以其他方式使用的数据。附加地或替代地,上文讨论的一个或多个计算系统可以在由一个或多个物理计算系统提供的一个或多个虚拟机中实现。在这样的布置中,每个计算系统的各种功能可以由一个或多个虚拟机执行,并且计算系统之间的任何和/或所有上述通信可以对应于由一个或多个虚拟机访问、移动、修改、更新和/或以其他方式使用的数据。
尽管已经以特定于结构特征和/或方法动作的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于以上描述的特定特征或动作。相反,以上描述的具体特征和动作是作为以下权利要求的示例实现来描述的。

Claims (20)

1.一种系统,包括:
至少一个处理器;以及
存储器,其存储计算机可读指令,所述计算机可读指令在由所述至少一个处理器执行时使所述系统:
接收包含对应于图像的发送者的用户账户的第一水印矢量的所述图像;
将所述图像转换为包含所述第一水印矢量的频域图像;
从所述频域图像识别所述第一水印矢量;
将所述第一水印矢量与多个存储的水印矢量中的每一个进行比较,以确定所述多个存储的水印矢量中的每一个与所述第一水印矢量匹配的概率,所述多个存储的水印矢量中的每一个对应于已知用户账户;
通过确定所述多个存储的水印矢量中的哪一个具有与所述第一水印矢量匹配的最高概率来确定所述图像的所述发送者的所述用户账户;以及
向工作场所管理员平台发送所述图像的所述发送者的所述用户账户的指示。
2.根据权利要求1所述的系统,其中:
接收所述图像包括在所述系统的调度服务模块处接收所述图像,所述调度服务模块经配置以将所述图像路由到所述系统的多个工作者服务模块;以及
所述工作者服务模块中的每一个对应于不同的已知用户账户。
3.根据权利要求2所述的系统,其中所述计算机可读指令在由所述至少一个处理器执行时还使所述系统:
在所述工作者服务模块中的每一个处以及对相应的已知用户账户中的每一个应用散列函数以将所述已知用户账户中的每一个转换为二进制串;
在所述工作者服务模块中的每一个处以及对每个二进制串应用矩阵合成算法以为所述已知用户账户中的每一个生成二进制矩阵;
在所述工作者服务模块中的每一个处以及从每个二进制矩阵中提取水印矢量;以及
在所述工作者服务模块中的每一个处存储提取的水印矢量,从而得到所述多个存储的水印矢量。
4.根据权利要求3所述的系统,其中提取所述水印矢量包括在所述工作者服务模块中的每一个处以及对每个二进制矩阵应用SVD算法以确定所述提取的水印矢量。
5.根据权利要求1所述的系统,其中接收包含所述第一水印矢量的所述图像包括接收所述图像的所述发送者的所述用户账户的指示,并且其中确定所述图像的所述发送者的所述用户账户包括跟踪与包含所述第一水印矢量的所述图像相关联的数据泄漏的来源。
6.根据权利要求1所述的系统,其中所述计算机可读指令在由所述至少一个处理器执行时还使所述系统:
从所述工作场所管理员平台接收对应于所述已知用户账户的列表的企业用户列表输入;以及
为所述已知用户账户中的每一个生成工作者服务模块。
7.根据权利要求1所述的系统,其中识别所述第一水印矢量包括从所述频域图像的预定子区域中提取所述第一水印矢量。
8.根据权利要求1所述的系统,其中所述图像在多于一个位置包含所述第一水印矢量,并且其中识别所述第一水印矢量包括在所述位置的至少一个中识别所述第一水印矢量。
9.一种方法,包括:
接收包含对应于图像的发送者的用户账户的第一水印矢量的所述图像;
将所述图像转换为包含所述第一水印矢量的频域图像;
从所述频域图像中识别所述第一水印矢量;
将所述第一水印矢量与多个存储的水印矢量中的每一个进行比较,以确定所述多个存储的水印矢量中的每一个与所述第一水印矢量匹配的概率,所述多个存储的水印矢量中的每一个对应于已知用户账户;
通过确定所述多个存储的水印矢量中的哪一个具有与所述第一水印矢量匹配的最高概率来确定所述图像的所述发送者的所述用户账户;以及
向工作场所管理员平台发送所述图像的所述发送者的所述用户账户的指示。
10.根据权利要求9所述的方法,其中:
接收所述图像包括在调度服务模块处接收所述图像,所述调度服务模块经配置以将所述图像路由到多个工作者服务模块;以及
所述工作者服务模块中的每一个对应于不同的已知用户账户。
11.根据权利要求10所述的方法,还包括:
在所述工作者服务模块中的每一个处以及对相应的已知用户账户中的每一个应用散列函数以将所述已知用户账户中的每一个转换为二进制串;
在所述工作者服务模块中的每一个处以及对每个二进制串应用矩阵合成算法以为所述已知用户账户中的每一个生成二进制矩阵;
在所述工作者服务模块中的每一个处以及从每个二进制矩阵中提取水印矢量;以及
在所述工作者服务模块中的每一个处存储提取的水印矢量,从而得到所述多个存储的水印矢量。
12.根据权利要求11所述的方法,其中提取所述水印矢量包括在所述工作者服务模块中的每一个处以及对每个二进制矩阵应用SVD算法以确定所述提取的水印矢量。
13.根据权利要求9所述的方法,其中接收包含所述第一水印矢量的所述图像包括接收所述图像的所述发送者的所述用户账户的指示,并且其中确定所述图像的所述发送者的所述用户账户包括跟踪与包含所述第一水印矢量的所述图像相关联的数据泄漏的来源。
14.根据权利要求9所述的方法,还包括:
从所述工作场所管理员平台接收对应于所述已知用户账户的列表的企业用户列表输入;以及
为所述已知用户账户中的每一个生成工作者服务模块。
15.根据权利要求9所述的方法,其中识别所述第一水印矢量包括从所述频域图像的预定子区域中提取所述第一水印矢量。
16.一种或多种存储指令的非暂时性计算机可读介质,所述指令在由包括至少一个处理器、通信接口和存储器的系统执行时使所述系统:
接收包含对应于图像的发送者的用户账户的第一水印矢量的所述图像;
将所述图像转换为包含所述第一水印矢量的频域图像;
从所述频域图像识别所述第一水印矢量;
将所述第一水印矢量与多个存储的水印矢量中的每一个进行比较,以确定所述多个存储的水印矢量中的每一个与所述第一水印矢量匹配的概率,所述多个存储的水印矢量中的每一个对应于已知用户账户;
通过确定所述多个存储的水印矢量中的哪一个具有与所述第一水印矢量匹配的最高概率来确定所述图像的所述发送者的所述用户账户;以及
向工作场所管理员平台发送所述图像的所述发送者的所述用户账户的指示。
17.根据权利要求16所述的一种或多种非暂时性计算机可读介质,其中:
接收所述图像包括在所述系统的调度服务模块处接收所述图像,所述调度服务模块经配置以将所述图像路由到所述系统的多个工作者服务模块;以及
所述工作者服务模块中的每一个对应于不同的已知用户账户。
18.根据权利要求17所述的一种或多种非暂时性计算机可读介质,其中所述指令在由所述至少一个处理器执行时还使所述系统:
在所述工作者服务模块中的每一个处以及对相应的已知用户账户中的每一个应用散列函数以将所述已知用户账户中的每一个转换为二进制串;
在所述工作者服务模块中的每一个处以及对每个二进制串应用矩阵合成算法以为所述已知用户账户中的每一个生成二进制矩阵;
在所述工作者服务模块中的每一个处以及从每个二进制矩阵中提取水印矢量;以及
在所述工作者服务模块中的每一个处存储提取的水印矢量,从而得到所述多个存储的水印矢量。
19.根据权利要求18所述的一种或多种非暂时性计算机可读介质,其中提取所述水印矢量包括在所述工作者服务模块中的每一个处以及对每个二进制矩阵应用SVD算法以确定所述提取的水印矢量。
20.根据权利要求16所述的一种或多种非暂时性计算机可读介质,其中接收包含所述第一水印矢量的所述图像包括接收所述图像的所述发送者的所述用户账户的指示,并且其中确定所述图像的所述发送者的所述用户账户包括跟踪与包含所述第一水印矢量的所述图像相关联的数据泄漏的来源。
CN201980093985.8A 2019-03-12 2019-03-12 跟踪客户端设备上的图像发送者 Pending CN113574837A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/077867 WO2020181500A1 (en) 2019-03-12 2019-03-12 Tracking image senders on client devices

Publications (1)

Publication Number Publication Date
CN113574837A true CN113574837A (zh) 2021-10-29

Family

ID=72423590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980093985.8A Pending CN113574837A (zh) 2019-03-12 2019-03-12 跟踪客户端设备上的图像发送者

Country Status (6)

Country Link
US (2) US10963981B2 (zh)
EP (1) EP3939222A4 (zh)
CN (1) CN113574837A (zh)
AU (1) AU2019433629B2 (zh)
CA (1) CA3131411A1 (zh)
WO (1) WO2020181500A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3131411A1 (en) 2019-03-12 2020-09-17 Citrix Systems, Inc. Tracking image senders on client devices
CN110148100A (zh) * 2019-05-10 2019-08-20 腾讯科技(深圳)有限公司 一种图像变换方法、装置、存储介质及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1381023A (zh) * 2000-04-05 2002-11-20 索尼英国有限公司 标识材料
US20030102374A1 (en) * 2001-12-04 2003-06-05 Richard Wojdyla Method and system for mail security and traceability
US20110314550A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Watermark to identify leak source
CN107423629A (zh) * 2017-04-12 2017-12-01 李晓妮 一种文件信息输出防泄密和溯源追踪的方法和系统

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002772A (en) * 1995-09-29 1999-12-14 Mitsubishi Corporation Data management system
US7224819B2 (en) * 1995-05-08 2007-05-29 Digimarc Corporation Integrating digital watermarks in multimedia content
US5664018A (en) * 1996-03-12 1997-09-02 Leighton; Frank Thomson Watermarking process resilient to collusion attacks
US5949885A (en) * 1996-03-12 1999-09-07 Leighton; F. Thomson Method for protecting content using watermarking
US6611599B2 (en) * 1997-09-29 2003-08-26 Hewlett-Packard Development Company, L.P. Watermarking of digital object
US6359998B1 (en) * 1998-04-23 2002-03-19 3Com Corporation Method and apparatus for wavelet-based digital watermarking
JP3214555B2 (ja) * 1998-05-06 2001-10-02 日本電気株式会社 電子透かし挿入装置
CA2269651A1 (en) * 1998-05-12 1999-11-12 Lucent Technologies, Inc. Transform domain image watermarking method and system
US6901514B1 (en) * 1999-06-01 2005-05-31 Digital Video Express, L.P. Secure oblivious watermarking using key-dependent mapping functions
US6535617B1 (en) * 2000-02-14 2003-03-18 Digimarc Corporation Removal of fixed pattern noise and other fixed patterns from media signals
AU2001285291A1 (en) * 2000-08-24 2002-03-04 Digimarc Corporation Watermarking recursive hashes into frequency domain regions and wavelet based feature modulation watermarks
KR100359506B1 (ko) * 2000-09-09 2002-11-04 주식회사 마크애니 디지털 영상 워터마킹 장치 및 방법
US20050053258A1 (en) * 2000-11-15 2005-03-10 Joe Pasqua System and method for watermarking a document
US7663670B1 (en) * 2001-02-09 2010-02-16 Digital Imaging Systems Gmbh Methods and systems for embedding camera information in images
CN100375079C (zh) * 2002-04-28 2008-03-12 联想(北京)有限公司 使用手机实现购物前随时随地鉴真的服务方法及系统
US7603720B2 (en) * 2002-04-29 2009-10-13 The Boeing Company Non-repudiation watermarking protection based on public and private keys
US6782116B1 (en) * 2002-11-04 2004-08-24 Mediasec Technologies, Gmbh Apparatus and methods for improving detection of watermarks in content that has undergone a lossy transformation
ES2424480T3 (es) * 2002-05-14 2013-10-02 Schreiner Group Gmbh & Co. Kg Patrones de autenticación visibles para documento impreso
JP2004157703A (ja) * 2002-11-06 2004-06-03 Hitachi Ltd コンテンツ保護システム
CN1517855A (zh) * 2003-01-16 2004-08-04 成都市宇飞信息工程有限公司 图像数字水印方法
GB2404805B (en) * 2003-08-08 2006-01-25 Motorola Inc Method and apparatus for fragile watermarking
US7257234B2 (en) * 2003-08-14 2007-08-14 Microsoft Corporation Watermark-based goods authentication
US7729505B2 (en) * 2003-11-10 2010-06-01 France Telecom, Sa Method and device for watermarking an image
US8032755B2 (en) * 2005-12-05 2011-10-04 Microsoft Corporation Request linked digital watermarking
US7802306B1 (en) * 2006-11-30 2010-09-21 Qurio Holdings, Inc. Multiple watermarks for digital rights management (DRM) and content tracking
JP4757208B2 (ja) * 2007-01-31 2011-08-24 キヤノン株式会社 情報処理装置およびその制御方法
US20080300900A1 (en) * 2007-05-31 2008-12-04 Marc Demarest Systems and methods for distributed sequestration in electronic evidence management
US7787654B2 (en) * 2007-09-21 2010-08-31 Shibaura Institute Of Technology Electronic watermark embedding apparatus and method and electronic watermark detecting apparatus and method
CN101141466B (zh) * 2007-10-26 2010-08-11 北京交通大学 基于交织水印和生物特征的文件认证方法
US20090136087A1 (en) * 2007-11-28 2009-05-28 Joseph Oren Replacement Based Watermarking
US8209394B2 (en) * 2008-06-02 2012-06-26 Microsoft Corporation Device-specific identity
WO2009149408A2 (en) * 2008-06-05 2009-12-10 New York University Method, system, and computer-accessible medium for authentication of paper using a speckle pattern
WO2010021774A1 (en) * 2008-08-16 2010-02-25 The University Of Connecticut Detecting and revoking pirate redistribution of content
CN101676949B (zh) * 2008-09-19 2012-09-19 深圳富泰宏精密工业有限公司 水印信息移除系统及方法
EP2387764B1 (en) * 2009-01-13 2015-11-25 Capricode Oy A method and system embedding a non-detectable fingerprint in a digital media file
US8090146B2 (en) * 2009-01-15 2012-01-03 Google Inc. Image watermarking
US9465922B2 (en) * 2009-01-22 2016-10-11 Hewlett Packard Enterprise Development Lp Methods for secure data distribution
JP5175908B2 (ja) * 2010-09-14 2013-04-03 株式会社東芝 情報処理装置及びプログラム
US9246898B2 (en) * 2012-11-20 2016-01-26 Utility Associates, Inc. System and method for securely distributing legal evidence
CN105283888A (zh) * 2013-06-12 2016-01-27 惠普发展公司,有限责任合伙企业 源于工作者的分布式过程工程
US9137010B2 (en) * 2014-01-13 2015-09-15 Cisco Technology Inc. Watermark with data integrity verification
US10250584B2 (en) * 2014-10-15 2019-04-02 Zuora, Inc. System and method for single sign-on technical support access to tenant accounts and data in a multi-tenant platform
CN104573652B (zh) * 2015-01-04 2017-12-22 华为技术有限公司 确定人脸图像中人脸的身份标识的方法、装置和终端
CN109155736A (zh) * 2016-03-21 2019-01-04 利弗莱姆有限公司 数据加水印和加指纹系统和方法
US10698986B2 (en) * 2016-05-12 2020-06-30 Markany Inc. Method and apparatus for embedding and extracting text watermark
CN109087114A (zh) * 2018-08-01 2018-12-25 龙口盛福达食品有限公司 一种红酒包装防伪水印智能检测追踪方法
US10874005B2 (en) * 2018-09-04 2020-12-22 Lutron Technology Company Llc Communicating with and controlling load control systems
US10939013B2 (en) * 2018-09-07 2021-03-02 International Business Machines Corporation Encoding information within features associated with a document
CA3131411A1 (en) 2019-03-12 2020-09-17 Citrix Systems, Inc. Tracking image senders on client devices
CN111279338A (zh) * 2019-05-20 2020-06-12 阿里巴巴集团控股有限公司 使用嵌入式版权信息识别版权材料

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1381023A (zh) * 2000-04-05 2002-11-20 索尼英国有限公司 标识材料
US20030102374A1 (en) * 2001-12-04 2003-06-05 Richard Wojdyla Method and system for mail security and traceability
US20110314550A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Watermark to identify leak source
CN107423629A (zh) * 2017-04-12 2017-12-01 李晓妮 一种文件信息输出防泄密和溯源追踪的方法和系统

Also Published As

Publication number Publication date
EP3939222A4 (en) 2022-12-28
US11557016B2 (en) 2023-01-17
CA3131411A1 (en) 2020-09-17
WO2020181500A1 (en) 2020-09-17
US20200296071A1 (en) 2020-09-17
AU2019433629A1 (en) 2021-10-21
US10963981B2 (en) 2021-03-30
EP3939222A1 (en) 2022-01-19
US20210183000A1 (en) 2021-06-17
AU2019433629B2 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
US11706205B2 (en) Extending single-sign-on to relying parties of federated logon providers
US11722465B2 (en) Password encryption for hybrid cloud services
US11997083B2 (en) Secure authentication of a device through attestation by another device
CN109558721B (zh) 客户端应用程序的安全单点登录和条件访问的方法和系统
US11627120B2 (en) Dynamic crypto key management for mobility in a cloud environment
CN108028845B (zh) 使用导出凭证注册企业移动装置管理服务的系统和方法
CN107566400B (zh) 用于确定应用的操作模式的方法
US11734635B2 (en) Deploying and implementing enterprise policies that control augmented reality computing functions
CN112789841A (zh) 在远程访问或基于云的网络环境中访问资源
JP2016526202A (ja) 画像分析および管理
US11392552B2 (en) Sharing of data with applications
CN111066307B (zh) 包装延续令牌以支持跨不同地理位置的多个服务器的分页
US20220094547A1 (en) Enhanced token transfer
US11770454B2 (en) Native application integration for enhanced remote desktop experiences
US11526595B2 (en) Optically scannable representation of a hardware secured artifact
US11557016B2 (en) Tracking image senders on client devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20211029

WD01 Invention patent application deemed withdrawn after publication