在保护敏感信息的同时外包文档传输任务的制作方法

文档序号:11161024阅读:310来源:国知局
在保护敏感信息的同时外包文档传输任务的制造方法与工艺

作者可以创建具有适合于一些读者而不是其他读者消费的信息的文档。例如,医疗记录可以包含关于患者的敏感信息;在许多司法管辖区,法律可能会阻止作者将敏感信息泄露给未经授权的个人。为了解决这个问题,作者可以选择来混淆文档内的敏感项目,以产生经混淆的或“清理过的”文档。混淆可以构成去除敏感项目,并且可能用不具有敏感内容的虚拟项目替换敏感项目(例如,通过用虚构名“John Doe”替换实际患者姓名)。然后,作者可以将经混淆的文档分发给适当的接收者。为了完成交易,接收者可以根据不同的应用特定目标读取或分析经混淆的文档。在本文中,接收者作为经混淆的文档的“端点消费者”操作,并且交易可以被表征为“单向”,例如从作者到消费者进行。

虽然上述总体战略通常对其预期目的有效,但只设计用于涉及文档传播的一种交易。该策略可能不太适合于其他更复杂的事务。



技术实现要素:

本文描述了外包环境,外包实体可以通过该外包环境在开发最终文档的过程中与工作者实体合作,而不以其非混淆的原始形式将可能包含在文档中的敏感信息泄露给工作者实体。

从外包实体的角度来看,环境可以通过以下操作:(a)提供其中包含一个或多个敏感项目的非混淆原始文档(NOD);(b)混淆NOD中的敏感项目以产生包含经混淆的项目的经混淆的原始文档(OOD);(c)向工作者实体提供OOD;(d)从工作者实体接收经混淆的经转换文档(OTD),该OTD包含由工作者实体做出的、有助于最终文档的开发的对OTD的至少一个改变;以及(e)通过将经混淆的项目恢复到其对应的敏感项目来对OTD进行去混淆,以产生内容恢复的经转换文档(CTD)。在一种情况下,例如,工作者实体可以通过对OOD进行不影响NOD的信息承载内容的格式化类型改变来产生OTD。

上述方法可以在各种类型的系统、设备、组件、方法、计算机可读存储介质、数据结构、图形用户界面演示、制品等中体现。

本发明内容被提供以用于以简化形式介绍概念的选择,这些概念在以下的具体实施方式中将作出进一步的描述。本发明内容并不旨在识别要求保护的主题的管件特征或者核心特征,其也并不旨在被用来限制要求保护的主题的范围。

附图说明

图1示出了用于外包在文档上执行的文档转换任务同时保护包含在文档中的敏感信息的环境的概述。

图2示出了用于在图1的环境中使用的文档创建工具的实例和外包工具的实例。

图3示出了图1的环境的一个实施方式。

图4示出了图1的环境的另一实施方式。

图5-8示出了可以由图1的环境提供的各种用户界面演示。

图9示出了作为图2的外包工具的组件的混淆组件的一个实施方式。

图10示出了去混淆组件的一个实施方式,该去混淆组件是图2的外包工具的另一组件。

图11描绘了分别用于控制向外包实体和工作者实体呈现非混淆内容和混淆内容的一个策略。

图12是示出从外包实体的角度看图1的环境的一种操作方式的流程图。

图13是示出从工作者实体的角度看图1的环境的一种操作方式的流程图。

图14示出了可用于实现前述附图中所示的特征的任何方面的说明性计算功能。

在整个公开和附图中使用相同的附图标记来指代相同的组件和特征。系列100数字是指最初在图1中找到的特征,系列200数字指的是最初在图2中找到的特征,系列300数字指的是最初在图3中找到的特征,等等。

具体实施方式

本公开内容组织如下。部分A描述了用于以安全方式将文档转换任务外包给工作者实体的说明性环境,即,没有以原始形式向工作者实体公开可能包含在文档中的敏感信息。部分B阐述了解释部分A的环境的操作的说明性方法。部分C描述可用于实施部分A和B中描述的特征的任何方面的说明性计算功能。

作为初步事项,一些附图描述了在一个或多个结构组件的上下文中的概念,不同地被称为功能、模块、特征、元件等。图中所示的各种组件可以以任何方式由任何物理和有形机制实施,例如通过在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等,和/或其任何组合。在一种情况下,图中所示的各种组件的分离成不同的单元可以反映在实际实施方式中对应的不同物理和有形组件的使用。附加地或另外,图中所示的任何单个组件可以由多个实际物理组件实现。附加地或另外,图中的任何两个或更多个分离组件的描绘可反映由单个实际物理组件执行的不同功能。将依次描述的图14提供关于图中所示的功能的一个说明性物理实施方式的附加细节。

其他附图以流程形式描述了概念。在该形式中,某些操作被描述为构成以某顺序执行的不同框。这样的实施方式是说明性的而非限制性的。本文描述的某些框可以被分组在一起并且在单个操作中执行,某些框可以被分解成多个组件框,并且某些框可以以与本文所示的顺序不同的顺序执行(包括执行框的并行方式)。流程图中所示的框可以通过任何物理和有形机制以任何方式实现,例如通过在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等,和/或其任何组合。

关于术语,短语“被配置为”包括可以构造任何种类的物理和有形功能以执行识别的操作的任何方式。该功能可以被配置为使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等和/或其任何组合来执行操作。

术语“逻辑”包括用于执行任务的任何物理和有形功能。例如,流程图中所示的每个操作对应于用于执行该操作的逻辑组件。可以使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等和/或其任何组合来执行操作。当由计算设备实施时,逻辑组件表示电子组件,其是计算系统的物理部分,然而被实施。

以下解释可将一个或多个特征识别为“可选”。这种类型的语句不应被解释为可以被认为是可选的特征的详尽指示;即,其他特征可以被认为是可选的,虽然在文本中没有明确地标识。此外,单个实体的任何描述并不旨在排除使用复数个这样的实体;类似地,多个实体的描述并不旨在排除单个实体的使用。此外,虽然描述可以将某些特征解释为执行所识别的功能或实施所识别的机制的替代方式,但是特征也可以以任何组合方式组合在一起。最后,术语“示例性”或“说明性”是指潜在的许多实施方式中的一个实施方式。

A.说明性环境

图1示出了用于以安全方式外包文档转换任务的环境102的概述。即,环境102提供允许至少一个外包实体和至少一个工作者实体在产生任何类型的最终文档中协作的功能(下面提供其示例)。此外,环境102提供确保正在创建的文档中的任何敏感内容对于外包实体而不是对工作者实体可访问的功能。这样,外包实体可以将文档转换任务委托给工作者实体,而工作者实体不知道敏感内容。外包实体可能想要防止工作者实体学习敏感内容,因为工作者实体没有被授权消费该信息,和/或任何其他应用特定的原因。

在一种情况下,外包实体和工作者实体可以对应于文档创建过程中的两个人类参与者。通常,工作者实体作为相对于外包实体的共同创建者操作。例如,在一种情况下,工作者实体可以对应于执行外包实体的指令的外包实体的代理。可替代地或另外,工作者实体可以基于具有任何特定等级的外包实体所提供的指导,或者可能基于没有来自外包实体的指导,在修改文档时行使他或她的独立判断。例如,对于指导谱的许可端,外包实体可以简单地要求工作者实体以由工作者实体认为合适的任何方式改进文档。任何类型的协议或认识可以决定外包实体与工作者实体之间的关系的性质。在一些情况下,工作者实体为外包实体执行工作以获费用。在其他情况下,工作者实体“免费”执行工作,例如,当工作者实体和外包实体对应于相同组织的雇员时。

在其他情况下,工作者实体可以代表自动化代理(诸如计算机程序),其在具有或不具有人工的监督的情况下响应于来自外包实体的指令而执行任务。然而,为了便于和简化解释,此后将假设外包实体和工作者实体代表文档创建过程的人类参与者。

总的来说,图1表示由外包实体和工作者实体对文档执行的时间序列的操作,最终产生最终文档。在初始阶段,外包实体可以使用一个或多个文档创建工具104(以下以单数引用)来创建非混淆原始文档(NOD)106。例如,文档创建工具104或NOD 106的一些其他源可以使用文字处理应用、图形应用、图像捕获和/或编辑应用、视频捕获和/或编辑应用、幻灯片组生成应用、网页编辑工具等或其任何组合来产生NOD 106。附加地或替代地,文档创建工具104可以表示用于获取已创建的文档的机制,诸如用于扫描已经存在的文档或照片等的扫描仪,或用于从本地和/或远程数据存储或其他源取得NOD 106的机制。

无论以何种方式产生,NOD 106可以包括任何类型的内容并且可以具有任何组织结构(包括没有结构)。例如,NOD 106可以包含字母数字内容、图像内容、视频内容、图形内容、原始数据等的任何组合。在NOD 106表示网页或网页的一部分的特定情况下,NOD 106还可以包含与呈现相关的标记内容(例如,超文本标记语言内容、级联样式表内容等)、可执行内容(例如,代码、代码等)等。在其他情况下,文档可以包括具有相同类型或不同类型的两个或更多个部分。例如,文档可以对应于包含多个组件文档或部分的主文档;这些组成部分可以具有相同类型或不同类型。

更一般地,在开发过程的该阶段,假如状态还不是最终的,NOD 106表示具有任何完成状态的“进行中”文档。在一个示例中,例如,外包实体可以生成文档的原始文本,并且工作者实体可以对该文档执行格式化;在这里,外包实体所准备的文档尚未是最终的,因为格式化尚未完成。

NOD 106还包含一个或多个敏感项目108形式的敏感信息。敏感信息表示对于任何应用程序特定的原因,工作者实体不被允许消费的任何内容。例如,NOD 106中的敏感信息可以对应于NOD 106的所有字母数字内容。在另一种情况下,敏感信息可以对应于NOD 106中的所有(或一些)实体名,和/或NOD 106中的所有(或一些)数值,等等。没有限制什么内容项目在特定环境中可以被认为是“敏感的”。

在外包过程中的这一点上,NOD 106暴露其包含的敏感信息。换言之,敏感信息尚未被混淆,使得检索文档的任何人都可以检查敏感信息(即,假设NOD 106未被加密或以其他方式被保护)。

在开发过程的下一阶段中,环境102使用混淆组件110来混淆NOD 106中的敏感项目108,以产生经混淆的原始文档(OOD)112。OOD 112包含表示NOD 106中的敏感项目108的经混淆的对等物的经混淆的项目114。作为本文所使用的术语,经混淆的项目表示作为敏感项目的替代而操作并且隐藏敏感项目的实际信息承载内容的任何信息。混淆组件110可以使用一种或多种自动和/或手动技术来识别NOD 106中要被替换的敏感项目,如下面将结合图6的解释更详细地描述的。此外,如下面结合图9的解释将更详细地描述的,混淆组件110可以使用一种或多种技术来产生经混淆的项目114,一旦它们被找到。

如下面将要阐明的,混淆组件110还可以通过提供允许外包实体验证NOD 106中意图被混淆的所有敏感项目实际上已被混淆的一个或多个工具来帮助外包实体混淆NOD 106。下面结合图6的说明来描述代表性的验证工具。

接下来,工作者实体可以使用至少一个文档创建工具116(以下以单数形式提及)对OOD 112进行至少一个改变,产生经混淆的经转换文档(OTD)118。每个这样的改变转换文档,并且表示对产生最终文档的总任务的贡献。更具体地,在第一类型的改变中,工作者实体改变在OOD 112中呈现信息的方式,但不影响底层信息本身。在第二类型的改变中,工作者实体将至少一个内容项目添加到OOD 112,但是同样地,不修改出现在OOD 112中的原始信息。但是在第三种类型的改变中,环境102可以允许工作者实体至少在一定程度上改变OOD 112中的信息的信息承载内容。其他类型的改变可以表示上述三种类型的改变的混合。

考虑以下说明性示例来阐明可以由工作者实体执行的操作的性质。在一种情况下,工作者实体改变OOD 112的格式。例如,工作者实体可以改变OOD 112中的内容的空间布置,OOD 112内的文本信息的大小和样式字体等等。在一些情况下,工作者实体可以使用由文档编辑程序提供的适当格式化工具进行格式化改变。可替代地,在OOD 112表示注定要成为网页(或其部分)的页面的那些情况下,工作者实体可以通过修改与OOD 112相关联的与呈现相关的标记内容来进行格式化类型改变,例如,通过修改与网页相关联的HTML。

在另一种情况下,工作者实体通过将背景图像添加到OOD 112来转换OOD 112。或者,工作者实体可以在由外包实体所选择的OOD 112中的特定位置处将库存图像添加到OOD 112,以例如示出由OOD 112中的文本信息进行的点。

在另一种情况下,工作者实体产生将伴随OOD 112并影响OOD 112呈现其信息的方式的程序。例如,工作者实体可以产生根据一些指定的一个或多个因素来过滤与OOD 112相关联的数据项目的脚本型程序。可替代地或附加地,在OOD 112表示注定要成为网页的页面的那些情况下,工作者实体可以添加影响网页的功能的代码(例如,代码等),例如通过添加管理页面对终端用户对鼠标点击和鼠标悬停的响应的方式的代码等。

在另一种情况下,工作者实体可以进行影响文档本身的整体特性或分类的改变。例如,外包实体可以使用文字处理应用来创建常规文档。工作者实体可以例如通过向文档添加适当的HTML、代码等将文档转换为网页。在其他情况下,工作者实体可以仅使用OOD 112作为创建单独的新文档的指导,而不是逐字地对与OOD 112本身相关联的信息进行操作。在本文中,与上面提供的示例相比,工作者实体可以被说成以更具有比喻和间接的意义“转换”OOD 112。

在另一种情况下,工作者实体可以创建可视呈现以描绘与OOD 112相关联的一组数据项目。例如,工作者实体可以在任何类型的图表、任何类型的图形等中组织集合中的数据项目。工作者实体可以例如通过使用由图表生成应用、图形编辑应用等提供的工具以手动方式产生这种改变。或者,工作者实体可以产生程序(如前面段落中所描述的),当运行时,其将产生数据项目的期望的可视描述。

上述类型的改变不影响存在于OOD 112中的信息的信息承载内容。例如,上述类型的改变不以将改变OOD 112的语义内容的方式改变OOD 112中的字或符号。实际上,环境102可以通过防止工作者实体修改出现在OOD 112中的原始信息,例如通过防止工作者实体修改OOD 112中的字的字符、句子中的单词的顺序、句子的顺序等,来对工作者实体的改变实施该约束。环境102可以通过锁定OOD 112中的单个项目(或所有项目),防止它们被工作者实体修改来实现上述效果。

但是如上所述,在其他情况下,环境102可以可选地允许工作者实体对信息本身进行改变。例如,在另一种情况下,工作者实体可以通过将原始文档中的单词从一种自然语言转换为另一种自然语言来进行翻译类型的改变。在另一种情况下,工作者实体可以通过修改原始文档中的单词的语法和/或拼写等来进行校对类型的改变。

环境102可以以不同的方式记录由工作者实体做出的改变。在一种情况下,环境102将OTD 118保留为由工作者实体做出的改变的唯一记录。在其他情况下,除了创建OTD 118本身之外,环境102可以保存由工作者实体做出的每个单独改变的记录,或者这些改变的至少一个子集。并且可以以任何特异性水平捕获每个这样的改变。例如,如果工作者实体改变OOD 112中的特定字的字体,则环境102可以在对应的粒度水平上记录该改变。总体上,由工作者实体进行的改变的记录在本文中被称为改变历史信息。

注意,上述类型的改变是在说明的精神而不是限制的情况下列举的;工作者实体可以做出上面没有提到的其他类型的改变。在所有情况下,这些改变促进了开发过程向着最终文档产生。

在文档创建流程的下一阶段中,去混淆组件120恢复在OTD 118中被混淆的敏感项目,以产生内容恢复的被转换文档(CTD)122,以供外包实体消费(但不是工作者实体)。去混淆组件120可以以下面将描述的不同方式来执行该任务。

图1描述了在简化示例的上下文中的上述过程改变。在该示例中,NOD 106对应于幻灯片组。在图1中以高级形式描绘的幻灯片组的至少一个幻灯片具有多个要点。假设要点中的至少一些信息项目包含敏感项目108。图1以非混淆形式将这些敏感项目108描绘为实线框。混淆组件110例如通过将敏感项目108转换为经混淆的项目114来混淆敏感项目108,以产生OOD 112。图1将经混淆的项目描绘为虚线框。

工作者实体然后将OOD 112中的要点组织成两列,然后将要点在它们各自的列中置于中心,以产生OTD 118。这种改变可以被表征为格式化类型的改变,其不影响由NOD 106赋予的任何语义内容。去混淆组件120然后在OTD 118上操作以将经混淆的项目114转换为其原始对等的敏感项目108,以产生CTD 122。CTD 122保留由工作者实体做出的格式化类型的改变。

总的来说,协作过程集成了两个领域的工作:非混淆的和混淆的。图1中的虚线124图形地表示这两个领域之间的边界。根据一个益处,环境102提供了一种机制,外包实体通过该机制可以在联合创建文档的过程中与工作者实体自由地交互,而不向工作者实体泄露包含在文档内的敏感信息。

环境102可以提供允许外包实体在整个文档创建过程中与工作者实体交互的一个或多个通信机制。例如,通信机制可以包括基于文本的机制(例如,即时消息传递机制、电子邮件机制等)、语音通信机制、视频通信机制等。通过这些机制,外包实体可以向工作者实体发送指令,并且工作者实体可以向外包实体提出问题。图1示出了虚线126,其表示由一个或多个通信机制提供的外包实体与工作者实体之间的一个或多个通信信道。

此外,在外包实体和工作者实体参与基于文本的通信会话的那些情况下,在这些实体之间交换的消息可以被认为是它们自己权利的文档。因此,混淆组件110和去混淆组件120可以以与上述相同的方式对这些文档进行操作。例如,假设外包实体写了一条消息“我想以粗体和更大的字体看到销售数字‘$140万’”而没有立即意识到他已经制作了包含敏感信息的消息。混淆组件110可以移除消息中的敏感项目并且用经混淆的项目替换它,例如通过用“$##金额”替换“$140万”等。在从工作者实体返回给外包实体的消息线程中,去混淆组件120可以用其原始敏感项目(即“140万”)替换经混淆的项目。此外,通信信道可以可选地被加密,以防止其他实体(不是外包实体与工作者实体之间的交互的一方)访问消息交换。

在一些情况下,外包实体可以满意由工作者实体产生的经转换文档(例如,OTD 118)。外包实体收到CTD 122因此将呈现文档创建过程的结束以及最终文档的产生。在其他情况下,外包实体可以对CTD 122执行进一步的操作以产生最终文档。在其他情况下,外包实体可以指示工作者实体对工作者实体已经拥有的现有OTD 118做出附加的改变。或者外包实体可以生成新的OOD,并且要求工作者实体对该新的OOD做出改变。

作为另一变型,上文描述的文档创建过程开始于生成或接收包含敏感项目108且没有经混淆的项目的非混淆原始文档(NOD)106。但是原始文档可以可选地包含处于其原始状态的至少一些经混淆的项目,例如由一些其他初步过程产生的(图1中未示出)。在这个意义上,术语非混淆文档(NOD)是指示起始文档包含至少一些尚未被混淆的敏感项目的相对术语。

作为另一可能的变型,上面在使用单个工作者实体的上下文中描述了环境102。在其他情况下,协作文档创建过程可以表示团队努力。即,一个或多个外包实体可以准备NOD 106,并且一个或多个工作者实体可以将对等OOD 112转换成OTD 118。例如,外包实体可以将NOD 106分成多个部分。混淆组件110可以混淆多个部分,以产生多个经混淆的部分。不同的工作者实体可以对经混淆的部分进行操作以产生多个经混淆的经转换部分。去混淆组件120可以恢复在经混淆的经转换部分中的敏感项目,以产生多个内容恢复的经转换部分。外包实体然后可以将多个内容恢复的转换部分组合成单个内容恢复的经转换文档。在一个特定实施方式中,外包实体可以使用众包平台来与上述多个工作者实体交互。此外,在一些情况下,可以授权不同的工作者实体来消耗NOD 106的不同部分,而不消耗其他部分。在该情况下,混淆组件110可以以不同的方式混淆NOD 106,以供不同的相应工作者实体使用。

作为另一可能的变型,NOD 106的至少一部分可以包含音频信息。混淆组件104可以通过用经混淆的音频项目(例如,嘟声、空白暂停、哑词发音等)替换这些敏感音频项目来混淆NOD 106中的敏感话语(或声音)。去混淆组件120可以执行相反的转换。在混淆与去混淆之间,工作者实体可以修改NOD 106的任何方面,诸如其体积、声音质量等。但是为了简化解释的其余部分,此后将假设混淆和去混淆发生在视觉领域。

作为另一变型,外包实体和工作者实体可以表示参与文档的联合创建的对等体。更确切地说,这两个个体可以代表两个工作者,没有工作者在另一工作者的指导下。此外,外包实体可能不知道工作者实体未被授权接收的某些敏感信息(如上述示例中);此外,工作者实体可能不知道外包实体未被授权接收的其他敏感信息。在这种情况下,混淆组件110可以可选地混淆从外包实体流向工作者实体的某些敏感信息,并且可选地混淆从工作者实体流向外包实体的其他信息。在对等操作中,去混淆组件120可以可选地对从工作者实体流向外包实体的某些敏感信息去混淆,并且可选地对从外包实体流向工作者实体的其他信息去混淆。

更具体地说,假设两名律师正在着手销售合同,例如代表第三方实体购买化合物。假设第一名律师可以消费合同中的销售数据,但不消费技术数据,而第二名律师可以消费合同中的技术数据,但不消费销售数据。混淆组件110将防止第二名律师接收销售数据并且防止第一名律师接收技术数据。另一方面,第三方实体可以被授权消费整个文档。

环境102可以以不同的方式实现上述行为,诸如通过使用不同的相应加密密钥加密文档的不同部分,并将对等的解密密钥分发给不同的工作者实体。可替代地或另外,环境102可以通过使用访问控制列表(ACL)功能等来实现上述行为。

现在转到图2,该图示出了至少一个文档创建工具202(以下以单数指代)的实例以及外包工具204的实例。图1的环境102使用这些工具的一个或多个实例来执行其功能,如下面关于图3和图4的示例所描述的。

在一个实施方式中,文档创建工具202和外包工具204表示两个计算机实现的应用。在本文中,文档创建工具202可以包含用于在其执行过程中激活外包工具204的接口机制206,和/或外包工具204可以包含用于在其执行过程中激活文档创建工具202的接口机制(未示出)。在另一示例中,文档创建工具202和外包工具204一起集成到单个应用中。例如,外包工具204可以表示与由文档创建工具202提供的代码相关联的模块。环境102可以提供用于实现文档创建工具202和外包工具204的功能的其他方式。

文档创建工具202可以包括用于加载文档、创建和编辑文档、呈现文档等的任何文档操纵机制208。文档操作机制208将根据所考虑的文档的类型而变化。例如,机制208表示用于创建和呈现文字处理文档、幻灯片组、载有图形的文档、图像、视频等中的任一个的功能。在另一种情况下,机制206表示用于创建旨在用于呈现为网页的文档的功能等。

外包工具204本身可以包括执行不同相应功能的任何数目的模块,其可以在单个站点处提供或分布在多个站点上。混淆组件210将未混淆的原始文档(NOD)转换为经混淆的原始文档(OOD)。换言之,混淆组件210表示在图1中引入的混淆组件110的实例化。去混淆组件212将经混淆的经转换文档(OTD)转换为内容恢复的经转换文档(CTD)。换言之,去混淆组件212表示图1的去混淆组件120的实例化。通信组件214实现允许外包实体与工作者实体通信的一个或多个通信机制。或者通信组件214可以表示到一个或多个单独实现的通信机制的入口。

外包工具204还可以包括一个或多个其他组件216,诸如用于从一组可用工作者实体之中选择工作者实体的模块,用于对所选工作者实体执行的工作进行排名的模块等。

图3示出了代表图1的环境102的一个实施方式的系统302。关于一个外包实体与一个工作者实体之间的交互来描绘系统302,但是如上所述,对于任何给定的文档转换任务,环境102可以由多个外包实体和/或多个工作者实体使用。

系统302包括经由网络308耦合在一起的第一客户端计算设备304和第二客户端计算设备306。外包实体与第一客户端计算设备304交互,而工作者实体与第二客户端计算设备306交互。客户端计算设备(304、306)可以表示任何类型的用户计算设备,例如选自:固定个人计算设备或工作站、膝上型计算设备、平板型计算设备、游戏控制台设备、机顶盒设备、智能手机等。

网络308可以对应于广域网(例如因特网)、局域网、点对点链路等或其任何组合。可替代地,外包实体和工作者实体可以经由其他通信策略(例如,经由便携式存储设备,如拇指驱动器等)来交换文档。

第一客户端计算设备304可以托管一个或多个文档创建工具310(以下以单数引用)和外包工具312。类似地,第二客户端计算设备306可以托管一个或多个文档创建工具314(以下以单数引用)和外包工具316。文档创建工具(310、314)可以包括上面关于图2描述的任何文档创建应用。类似地,外包工具(312、316)可以包括上面关于图2描述的任何模块。

第一客户端计算设备304可以包括用于存储其创建或接收的文档的一个或多个数据存储装置318。类似地,第二客户端计算设备306可以包括用于存储其创建或接收的文档的一个或多个数据存储装置320。数据存储装置(318、320)相对于它们各自的客户端计算设备(304、306)可以是本地的或远程的。

在一个功能分配中,第一客户端计算设备304的外包工具312负责混淆NOD 106以产生OOD 112,以及负责去混淆OTD 118以产生CTD 122。在该实施方式中,工作者的客户端计算设备306的外包工具316可以省略其自己的混淆组件和去混淆组件的本地实例化。或者,工作者的外包工具316可以包括混淆组件和去混淆组件,但是在上述场景中不调用这些组件。

例如,该描述将针对图11阐述以下实施方式,其中所有客户端计算设备都配备有去混淆文档的能力。但是该能力取决于具有解密密钥的去混淆组件,该解密密钥允许其访问文档中的敏感信息。在图3的上下文中,工作者的客户端计算设备306将缺少这样的密钥,使得其不能访问或产生NOD 106或CTD 122。在另一实施方式中,环境102可以使用访问控制列表(ACL)技术来管理不同种类的文档和文档部分的选择性消费。

第一客户端计算设备304可以以任何形式(例如作为对电子邮件消息的附件等)经由网络308向第二客户端计算设备306发送OOD 112。类似地,第二客户端计算设备306可以以任何形式经由网络308向第一客户端计算设备304发送OTD 118。

图4示出了代表图1的环境102的另一实施方式的另一系统402。系统402包括外包实体与其交互的第一客户端计算设备404和与工作者实体交互的第二客户端计算设备406。网络408将第一客户端计算设备404与第二客户端计算设备406耦合。关于对等的相同名称的组件,客户端计算设备(404、406)和网络408可以使用上面针对图3描述的相同的计算设备来实现。

第一客户端计算设备404可以托管一个或多个文档创建工具410(以下以单数引用)和外包工具412,并且可以将其文档存储在一个或多个本地和/或远程数据存储装置414中。类似地,第二客户端计算设备406可以托管一个或多个文档创建工具416(以下以单数引用)和外包工具418,并且可以将其文档存储在一个或多个本地和/或远程数据存储装置420中。同样,这些组件可以包括上面关于图3所描述的相同的功能。

与图3不同,图4的系统402还包括一个或多个远程计算系统422,下文中以单数简称为远程系统。远程系统422可以由一个或多个服务器计算设备和/或其他计算设备实现。远程系统422托管一个或多个文档创建工具(以下以单数引用)424和外包工具426,并且它将其文档存储在一个或多个数据存储装置428中。

在一个功能分配中,由远程系统422托管的远程外包工具426执行系统402中的所有混淆和去混淆功能。例如,第一客户端计算设备404可以将NOD 106传送到远程混淆组件,然后远程混淆组件产生OOD 112并将其传送到第二客户端计算设备406。类似地,第二客户端计算设备406将OTD 118传送到由远程系统422托管的远程去混淆组件,于是去混淆组件将其转换为CTD 122并将其传送到第一客户端计算设备404。为了服务于该角色,远程系统422可以用作由外包实体信任的服务,以维护其接收或产生的任何非混淆内容的机密性。

在上述情景下,第一客户端计算设备404可以以与上述相同的方式使用其本地文档创建工具410来执行文档创建任务。类似地,第二客户端计算设备406可以使用其自己的本地文档创建工具416来执行文档创建任务。

在又一实施方式中,系统402将所有文档创建任务分配给远程文档创建工具424。例如,文档创建工具424可以表示web实现的文字处理应用。第一客户端计算设备404和第二客户端计算设备406可以对由远程文档创建工具424提供的服务的分离实例化进行操作。在该情况下,由外包实体和工作者实体产生的文档可以由远程系统422操作和维护;因此,客户端计算设备(404、406)不需要对文档执行本地操作,并且不需要以上述方式经由消息在它们之间传送文档。

在另一种情况下,第一客户端计算设备404可用的文档创建功能以任何方式分布在本地客户端计算设备404与远程系统422之间。类似地,第二客户端计算设备406可用的文档创建功能以任何方式分布在本地客户端计算设备406与远程系统422之间。

在另一个实施方式中,远程文档创建工具424表示协作文档创建功能,其允许外包实体和工作者实体例如在共享工作空间内(而不是如上面提供的示例中的单独的非共享工作空间)同时创建的相同文档上工作。但是,在任何给定时间,远程外包组件426向外包实体和工作者实体给予在当前时间正在操作的文档的两个不同视图。即,外包组件426向外包实体提供文档的非混淆版本,同时向工作者实体提供文档的混淆版本。

此外,在上述协作情景中,由远程系统422提供的远程混淆组件可以自动将由外包实体进行的任何新的增量改变转换为文档的适当混淆的视图,以呈现给工作者实体。类似地,由远程系统422提供的远程去混淆组件可以自动地将由工作者实体做出的任何新的增量改变应用到文档的适当的非混淆视图,以呈现给外包实体。换言之,在上述实施方式中,在图1的上下文中引入的基本流程可以对于由外包实体或工作者实体对文档做出的每个增量改变以分片方式进行。此外,除了进行串行改变之外,外包实体和工作者实体可以彼此并行地进行一些改变。

图3和图4的实施方式应当在说明的精神而不是限制的情况下理解;即,图1的环境102的其他实施方式是可能的。

图5-8示出了可以由图1的环境102提供的说明性用户界面演示。即,环境102的功能可以在开发最终文档的不同相应阶段产生用户界面演示。为了便于描述,将假设过程流以基本上顺序的方式进行,例如,其中外包实体产生NOD 106,随后是产生OTD 118的工作者实体。但是如上所述,在其他情况下,外包实体和工作者实体可以在大致相同的时间在同一文档上工作,以增量方式进行改变。

用户界面呈现的视觉和功能方面在下文中以说明的精神阐述,而不是限制。其他实施方式可以改变用户界面呈现的任何方面,包括但不限于GUI特征的选择,那些特征的布置,与这些特征相关联的功能等。仅举一个例子,在图5-8中,文档创建工具和外包工具有助于具有专用于不同功能的两个或更多个部分的单个集成用户界面演示。但是在其他示例中,文档创建工具和外包工具可以呈现单独的相应用户界面演示。

从图5开始,该图示出了用户界面呈现502,外包实体可以在最初调用外包工具时与之进行交互。外包工具可以对应于驻留在外包实体的客户端计算设备和/或远程系统上的代码。

更具体地,假设用户首先与文档创建工具交互以产生或以其他方式提供具有单个页面504的幻灯片组。文档创建工具在用户界面演示502的部分506内呈现页面504。页面504包括表示关于特定主题的信息的多个要点。在图1的术语中,页面504构成未混淆的原始文档(NOD)106,并且在页面504上表达的信息可以被概念化为由多个内容项目组成。

假设外包实体考虑页面504中的至少一些内容项目作为对于任何特定于应用的原因而不应向工作者实体公开的敏感信息。例如,外包实体可以将页面504中的所有字母数字文本视为机密。可替代地,如在图5中实际描绘的示例中,外包实体可以仅考虑指定的发布日期(“2015年8月”)、关键市场细分(“韩国”)和基础设施成本数据(“300”、“400”和“700”)作为页面504中的敏感项目。外包实体对上面阐述的页面504的解释仅仅是说明性的。

文档创建工具可以呈现第一部分506中的任何类型的控件,诸如控制按钮508。外包实体可以点击按钮508来调用外包工具。响应于按钮508的激活,外包工具在用户界面演示502的第二部分512中向外包实体呈现选项菜单510。第一选项514允许外包实体混淆文档。第二选项允许外包实体对文档去混淆(假设在外包实体从工作者实体接收时,文档不会被自动去混淆)。第三选项允许外包实体从可用工作者实体池中选择一个或多个工作者实体。第四选项允许外包实体评估已经由工作者实体执行的工作,等等。还有其他选项可以是可用的,诸如允许外包实体管理帐户、支付服务等的选项。

前进到图6,该图示出了可以在外包实体在图5的选项510的菜单中选择混淆菜单选项514时呈现给外包实体的用户界面呈现602。在该用户界面呈现602中,文档创建工具可以可选地继续在用户界面呈现602的第一部分506内呈现幻灯片组的页面504。此外,外包工具现在可以呈现允许用户混淆页面504中的敏感项目的各种GUI特征。如上所述,在图1的术语中,其原始形式的页面504构成非混淆的原始文档(NOD)106。

例如,在部分604中,外包工具可以提供允许用户使用不同的相应机制来查找和替换NOD 106中的敏感项目的各种选项。例如,第一子部分606允许用户指定应该被混淆的内容项目的类型,诸如所有字母数字内容、所有实体名称、所有数值等,或其任何组合。外包工具可以使用一个或多个策略来根据用户选择的内容项目的类型来找到所选择的内容项目。例如,假设用户指定要对所有实体名称进行混淆。外包工具可以使用任何实体检测技术来在文档中找到实体名称,诸如通过将文档中的术语与标识已知实体名称的字典进行比较,或者通过使用机器训练的实体检测模型或基于规则的实体检测模型来分析文档中的项,等等。

第二子部分608允许外包实体指示外包工具搜索指定的敏感项目。在找到敏感项目时,外包工具可以突出其存在,然后给予外包实体手动或自动混淆敏感项目的能力。第三子部分610邀请外包实体手动搜索NOD 106以识别敏感项目。外包工具然后可以给予外包实体手动或自动地将每个识别的敏感项目转换为经混淆的对等物的选项。仍然进一步的寻找和替换策略是可能的。

虽然未示出,但是部分604还可以给予外包实体选择要被进行混淆的NOD 106的部分的选项,假设是某些部分要被混淆,并且一些部分不需要被混淆。同样,部分604可以提供用于完成该任务的各种工具。在一种情况下,部分604可以允许外包实体手动选择要被混淆的部分(例如,部分或页面)。可替代地或另外,部分604可允许外包实体指定部分选择准则;混淆组件110然后找到与准则匹配的部分并且混淆它们。例如,在具有机密名称和货币数字的合同中,外包实体可以宽泛地指定包含这些数据项目的至少一个出现的文档的任何部分将被整体混淆。

此外,尽管未示出,但是部分604还可以给予用户选择执行混淆的方式的选项,即,在外包工具自动执行混淆的情况下(而不是依靠外包实体手动执行混淆)。例如,在第一选项中,外包工具可以用与被替换的相应敏感项目具有相同长度的随机字符串替换敏感项目。在第二选项中,外包工具可以通过对其执行混淆的方式放置各种约束来修改其随机混淆,诸如通过用随机选择的字母字符替换字母字符,通过用随机选择的数字字符替换数字字符,通过用分别具有相同大小写状态的字符替换大写字符和小写字符,等等。在第三选项中,外包工具可以用类似的虚拟“真实”字替换敏感项目,例如通过用虚拟名称“John Doe”替换实际名称,或者通过用虚拟年份“3000”代替实际年份等。在一种技术中,外包工具可以通过使用将敏感项目的字符映射到经混淆的项目的集合内的条目的散列表或映射算法来执行上述功能;该条目表示实际的词,但是尽管如此,它仍然不会显示任何敏感信息。

假设外包实体选择手动审阅页面504以识别页面504中的敏感项目。作为响应,外包工具可以呈现用户界面演示602的部分612。如图所示,用户已经手动识别发布日期(“2015年8月”)、关键市场细分(“韩国”)和一个基础设施成本数据项(“300”)作为敏感项目。响应于这些选择,外包工具可以使用上述任何混淆策略来自动用经混淆的项目替换敏感项目,例如通过用无意义和随机选择的文本“Hjus&s 3333”替换敏感项目“2015年8月”。或者外包工具可以允许外包实体手动混淆这些敏感项目。

外包工具还可以应用各种策略,其允许外包实体验证他或她意图混淆的所有敏感项目实际上已经被混淆。例如,部分612可以呈现突出显示在混淆过程中已经改变的所有内容项目的子部分614。外包实体可以通过检查子部分614中的突出显示和/或通过将子部分614与出现在第一部分506中的原始页面504进行比较来验证所有适当的内容项目已经被替换。

在一些实施方式中,外包工具还可以使用第二子部分616来提供关于在混淆过程中做出的改变的附加信息。例如,第二子部分616可以列出已经从NOD 106移除以产生OOD 112的所有原始内容项目。例如,第二子部分616揭示了混淆项目618已经替换了原始敏感项目620。第二子部分616还可以提供概括已经进行的替换的更高级别的元数据。例如,摘要消息622指示已经对NOD 106进行了三次改变以产生OOD 112。

可替代地或另外,外包工具可以自动检测外包实体已经做出的改变的类型,然后自动确定是否存在尚未被替换的相同类型的现有内容项目。例如,假设外包实体手动地移除NOD 106内的除了一个实体名称之外的所有实体名称。外包工具可以通过检测已经被替换的内容项目可能与例如通过使用上述任何实体检测算法的实体名称相关来响应这些动作。外包工具然后可以确定是否存在仍在NOD 106中的尚未被替换的任何附加实体名称。如果仍有待替换的敏感项目,则外包工具可以警告用户该事实;外包工具还可以给予用户混淆剩余的敏感项目的机会。

在图6的特定示例中,外包工具已经检测到外包实体已经替换了三个基础设施成本值的集合中的第一数值,而不是第二值和第三值。作为响应,外包工具可以突出显示剩余的数值,例如,如说明性突出显示624所示。此外,外包工具可以显示消息626,其邀请用户修改第二和第三数值。还可以使用其他策略来识别尚未被混淆的敏感项目。

在某些情况下,外包实体还可能希望向工作者实体传达具体指令。外包实体可以以任何方式执行该任务,例如通过使用任何通信机制与工作者实体直接通信。在图6的情况下,外包实体还将元数据嵌入到OOD 112中,其作为对工作者实体的指令进行操作。例如,第一指令628可以要求工作者实体将背景图像添加到OOD 112。第二指令630可以请求工作者实体产生呈现基础设施成本值的条形图。在其他情况下,如上所述,外包实体可以给予工作者实体更大的自由度来进行改变,例如,通过给予工作者实体使用工作者实体认为最有效的图表类型来说明数值的选项。

图7示出了环境102可以呈现给工作者实体以供工作者实体将OOD 112转换为OTD 118使用的用户界面呈现702。更具体地,工作者实体可用的文档创建工具可以呈现用户界面演示702的第一部分704。工作者实体可以经由该部分704做出任何改变,以产生对应于NOD 106的对等页面504的OTD 118的页面706。工作者实体与之交互的文档创建工具可以由本地客户端计算设备和/或远程系统托管。

例如,在图7的仅仅代表性的情况下,工作者实体具有:(a)改变的OOD 112中的字母数字文本的字体;(b)添加到OOD 112中的相应要点的开始处的要点符号;(c)添加到OOD 112的背景图像;(d)添加到OOD 112的补充图像708;(e)格式化为条形图的数据项目,等等。尽管未示出,但是环境102可以可选地继续例如在用户界面演示702的另一部分中显示原始(未修改的)OOD 112。

在进行所有上述改变的过程中,工作者实体不暴露于出现在NOD 106中的敏感信息的真实内容。例如,工作者实体可以格式化第一要点710,而不知道它所指的具体日期。在其他情况下,外包实体可以选择对NOD 106中的所有字母数字内容进行混淆,在该处,工作者实体将具有关于每个要点的更少的信息。

特别关于页706中所示的条形图,回想外包实体已经用虚拟值替换了实际数值。此外,外包实体已经指示工作者实体产生传达基础设施成本与时间的条形图。工作者实体通过基于那些虚拟成本值714而不是真实值构建图表712来做出响应。在另一种情况下(未示出),外包实体可以保留OOD 112中的实际值,但是混淆这些实际值的含义。例如,外包实体可以识别条形图将由第一变量(用于在垂直轴上呈现)和第二值(用于在水平轴上呈现)定义,但是没有说明第一变量和第二变量分别对应于成本和时间。还可以采用其他策略来混淆要在图表或图形的构造中使用的原始数据。

工作者实体可以通过点击命令按钮716等来调用外包工具的实例化的服务。作为响应,外包工具可以呈现图5所示的选项菜单类型510。假设工作者实体希望在生产OTD 118的过程中与外包实体通信。工作者实体可以点击选项510的菜单中的适当的与通信相关的条目。作为响应,外包工具可以呈现用户界面演示702的部分718。

部分718可以表示到工作者实体的一个或多个接口,工作者实体可以通过该接口与外包实体通信。例如,部分718可以包括允许工作者实体以文本形式呈现问题的子部分720和/或允许工作者实体使用视频通信机制直接与外包实体交谈的子部分722,等等。

图8示出了呈现给外包实体以显示CTD 122的用户界面呈现802。CTD 122是由工作者实体使用图7的用户界面演示702生成的OTD 118的内容恢复版本。

更具体地,可用于外包实体的文档创建工具可以在用户界面呈现802的第一部分806中呈现OTD 118的页面804。页面804可以具有与OTD 118的页面706相同的内容和外观,除了去混淆组件现在将经混淆的项目恢复到其对应的原始敏感项目。例如,页面804可以包含第一要点中的实际启动日期(“2015年8月”)808,而不是页面706中的经混淆的项目(“Hjus&s 3333”)。并且条形图被修改为包括实际数值成本值810,而不是虚拟成本值714。

再次,外包实体可以通过激活命令按钮812等来调用外包工具的服务。作为响应,外包工具可以再次呈现图5所示的选项510的菜单。假设外包实体希望向工作者实体发送进一步的指令。外包实体然后可以在选项510的菜单中激活通信相关选项,外包工具在其上呈现用户界面呈现802的第二部分814。

第二部分814提供允许外包实体使用不同的相应通信机制(例如,基于文本的通信机制、视频通信机制等)与工作者实体进行通信的各种接口(816、818)。响应于外包实体的进一步指令,工作者实体可以对OTD 118做出进一步的改变;外包实体将接收那些改变作为CTD 122的更新版本。上述协作过程可以以上述方式重复任何次数,直到最终文档被产生为外包实体满意为止。

图9示出了混淆组件210的一个实施方式,其是图2的外包工具204的组件,并且可以相对于外包实体的客户端计算设备而本地和/或远程地实现。混淆组件210包括项目选择组件902,其提供用于选择要由混淆的项目替换的敏感项目的一个或多个机制。在一种情况下,项目选择组件902可以提供(图6的)部分604,外包实体可以通过该部分604与项目选择组件902交互。在一种方法中,项目选择组件902从外包实体接收匹配准则,然后自动找到与这些准则匹配的NOD 106中的内容项目。在第二方法中,项目选择组件902提供外包实体可以手动审阅NOD 106并选择感兴趣的内容项目等的功能。

修改验证组件904呈现一个或多个机制,外包实体通过该机制可以验证旨在被混淆的所有内容项目实际上已经被混淆。在一个示例中,修改验证组件904可以经由图6的部分612与外包实体交互。在一个验证策略中,修改验证组件904可以突出已经在部分612内对NOD 106做出的改变。在另一策略中,修改验证组件904可以自动检测外包实体已经做出的改变的类型,并且向外包实体警告尚未被混淆的相同类型的内容项目,等等。

项目修改组件906执行敏感项目与对等的经混淆的项目的实际替换。项目修改组件906可以使用不同的策略来执行该任务。在一种方法中,项目修改组件906可以用随机选择的字符或随机选择的实际字等替换每个敏感项目。在另一种方法中,项目修改组件906可以使用映射表(例如,哈希表)或映射算法以将每个敏感项目映射到经混淆的项目,等等。数据存储装置908可以存储映射表或映射算法的操作参数。

在一些情况下,项目修改组件906可以与OOD 112一起生成混淆化信息。混淆化信息识别已经使用一种或多种技术对NOD 106做出以产生OOD 112的改变。在一种技术中,例如,项目修改组件906可以创建将原始敏感项目映射到对应的经混淆的项目的文件。例如,混淆化信息中的一个条目可以指示敏感项目“2015年8月”已被随机文本“Hjus&s 333”替换。在另一技术中,项目修改组件906可以创建将NOD 106内的敏感项目出现的位置与已从那些位置移除的敏感项目一起映射的文件;这样的文件可以可选地省略描述经混淆的项目的信息。例如,该文件中的一个条目可以指示敏感项目“2015年8月”出现在页面504内的规定文本位置。

在另一种情况下,项目修改组件906可以向NOD 106和/或OOD 112添加标记。标记还可以保存在OTD 118中。每个标记标识已经被敏感项目替换的NOD 106中的敏感内容的单元(例如,字符、单词、句子、段落等)。项目修改组件906可以将该标记添加到文档中已经移除敏感项目的位置。在一种情况下,默认情况下,标记可能对读者不可见,但是如果允许,则可以给予读者通过选择适当的显示设置使其可见的能力。

在上述标记相关实施方式中,混淆化信息可以描述标记与敏感项目之间和/或标记与敏感项目与经混淆的项目项之间的关系。例如,混淆化信息可以包含与图6中的混淆相关联的标记“Z001”,其中用随机文本“Hjus&s 333”替换“2015年8月”。NOD 106和/或OOD 112可以在页面504中敏感项目(“2015年8月”)已被混淆的位置处包括该标记。

在其他实施方式中,项目修改组件906的映射表或算法可足以重构敏感项目而无需单独考虑已经进行的改变的意义上,混淆化信息是可选的。

在产生混淆化信息的那些情况下,混淆组件210可以在环境102内的各种位置处存储该信息。在一种情况下,混淆组件210可以将混淆化信息转发到至少去混淆组件212,这使得去混淆组件212能够基于该信息恢复敏感项目。在其他情况下,混淆组件210可以将模糊化信息的加密版本附加到NOD 106、OOD 112等中的一个或多个。加密的混淆化信息可以保留在由工作者实体产生的OTD 118中并被转发到去混淆组件212。

图10示出了去混淆组件212的一个实施方式,去混淆组件212是图2的外包工具204的另一个组件。去混淆组件212包括可选许可组件1002,其确定去混淆组件212是否具有将OTD 118转换为CTD 122的许可。在一种情况下,许可组件1002可以通过确定数据存储装置1004是否包含适当的解密密钥以用于解密经加密的混淆化信息等来做出该决定。一旦允许执行转换,项目恢复组件1006执行使用解密的版本的混淆化信息将OTD 118中的经混淆的项目转换为CTD 122中的原始敏感项目的实际任务。

在其他情况下,数据存储装置1008可以存储未加密版本的混淆化信息,其直接从混淆组件210接收。项目恢复组件1006可以使用未加密的混淆化信息将OTD 118转换为CTD 122。

在其他情况下,项目恢复组件1006访问由混淆组件210的项目修改组件906使用的相同的映射表或算法。项目恢复组件1006可以使用该映射信息将OTD 118转换为CTD 122,假设映射信息本身执行转换是足够的(这是在其他情况下可能不是真实的假设)。

如上所述,在一些情况下,外包工具2004可以防止工作者实体改变他或她没有对其进行改变的OOD 112中的任何内容项目。例如,外包工具2004可以防止工作者实体改变OOD 112中的文本“启动日期:Hjus&s 3333”,这可以通过将该文本指定为锁定项目来实现。在其他情况下,外包工具2004可以允许工作者实体对内容项目做出有限的改变。然而,存在由工作者实体做出的改变可能损坏经混淆的项目的风险。继而,这种损坏可能潜在地使去混淆组件212将经混淆的项目映射回其敏感项目对等物的能力复杂化,这取决于环境102如何解释已经做出的混淆。例如,在一些情况下,经混淆的项目本身可以用作用于找到相应的敏感项目的密钥;因此,经混淆的项目的损坏可能会干扰项目恢复组件1006找到正确的敏感项目的能力。

项目恢复组件1006可以使用不同的策略来解决上述情况。在第一种情况下,项目恢复组件1006可以使用相似性测试来确定修改的经混淆的项目是否充分地类似于原始的经混淆的项目(如在混淆化信息中所反映的)。如果项目充分相似,则项目恢复组件1006可以用其假定的对应敏感项目对等物来代替损坏的经混淆的项目。

在另一种情况下,如上所述,外包工具可以存储跟踪由工作者实体做出的每个改变或这些改变中的至少一些改变的改变历史信息。项目恢复组件1006可以查阅改变历史信息以确定损坏的经混淆的项目的原始形式。项目恢复组件然后可以用其假定的对应敏感项目对等物来替换损坏的经混淆的项目。或者,项目恢复组件1006可以向外包实体显示改变历史信息,这允许外包实体手动地检查和批准任何所讨论的恢复操作。

图11示出了在由工作者实体做出的改变之后可以对外包工具204的各个组件可用的信息束1102。该信息束1102可以作为集成数据结构或作为单独的信息项目存在。信息束1102可以存储在环境102内的一个或多个位置处。

信息束1102包括NOD 106、混淆化信息1104、OTD 118和改变历史信息1106。NOD 106对应于非混淆的原始文档。混淆化信息标识由混淆组件210做出的改变。OTD 118对应于由工作者实体产生的经混淆的转换文档。并且改变历史信息枚举由工作者实体做出的所有改变。

在一个实施方式中,可以允许外包工具的不同实例化读取正在处理的文档的不同版本,这取决于它们是否拥有解密密钥。例如,期望外包实体的外包工具拥有解密密钥,使其能够读取信息1102的所有部分。特别地,外包实体的外包工具可以访问NOD 106和OTD 118;它也可以使用混淆信息1104以将OTD 118转换为CTD 122。相比之下,工作者实体的外包工具预期缺少解密密钥。由此,即使其可以具有去混淆组件,该组件也不能成功地读取NOD 106或混淆化信息。在不访问混淆化信息的情况下,工作者实体的外包工具也不能产生CTD 122。

再次注意,图11的实施方式仅表示环境102可以防止敏感信息的传播的一种技术。在另一种情况下,去混淆组件212可以直接从混淆组件210接收混淆化信息,这消除了对加密和解密混淆化信息的需要。即,在后一种情况下,工作者实体的外包工具不以加密或解密形式接收混淆化信息。

B.说明性过程

图12和图13示出了以流程图形式说明部分A的环境102的操作的过程。由于已经在部分A中描述了环境102的操作的基本原理,因此在本部分中将以概括的方式解决某些操作。

从图12开始,该图示出了从外包实体的角度描述图1的环境102的一种操作方式的过程1202。例如,过程1202的至少一些方面可以由外包实体可用的外包工具的实例来执行。该外包工具可以由本地客户端计算设备和/或至少一个远程计算系统托管。

在框1204中,环境102提供其中包含可由外包实体访问的一个或多个敏感项目108的非混淆原始文档(NOD)106。在框1206中,环境102混淆NOD 106中的敏感项目108,以产生包含经混淆的项目的经混淆的原始文档(OOD)112。在框1208中,环境102可选地验证意图被混淆的所有敏感内容项目已被混淆。在框1210中,环境102向工作者实体提供OOD 112。在框1212中,环境102从工作者实体接收经混淆的经转换文档(OTD)118。OTD 118包含由工作者实体对OOD 112做出的至少一个改变。这种改变继而有助于最后文件的开发。在框1214中,环境102对OTD 118进行去混淆以产生内容恢复的转换文档(CTD)122。

框1216指示,在产生最终文档的过程中的任何阶段处,外包实体可以使用一个或多个通信机制与工作者实体通信。环回路径1218指示工作者实体可以继续对OTD 118做出改变,并且环境102可以继续将OTD 118在其当前状态下转换成CTD 122的实例以供外包实体审查。

图13是示出从工作者实体的角度看图1的环境102的一种操作方式的过程1302。例如,过程1302的至少一些方面可以由文档创建工具的实例和可由工作者实体使用的外包工具来执行。这些工具可以由本地客户端计算设备和/或至少一个远程计算系统托管。

在框1304中,环境102从外包实体接收OOD 112。在框1306中,在工作者实体的指导下的文档创建工具对OOD 12做出至少一个改变以产生OTD 118。在框1306中,环境102将OTD 118转发至外包实体,或者使OTD 118对外包实体可用。框1310指示,在产生最终文档的过程中的任何阶段处,工作者实体可以使用一个或多个通信机制与外包实体通信。回送路径1312指示工作者实体可以在收到来自外包实体的指令时继续对OTD 118做出改变。

图12和13,其中框架在信息的串行流的上下文中,其中外包实体和工作者实体正在不同的相应时间处在开发中的文档的它们各自的版本上工作。但是在其他情况下,环境102可以允许外包实体和工作者实体并行做出改变。此外或可选地,图12和13的过程(1202、1302)可以扩展到多个工作者实体在由一个或多个外包实体提供的OOD 112的部分上工作的情况。

C.代表性计算功能

图14示出了可以用于实现在上述附图中阐述的环境102的任何方面的计算功能1402。例如,图14中所示的计算功能1402的类型可以用于实现图3和图4的任何客户端计算设备、图4的远程系统422等等。在所有情况下,计算功能1402表示一个或多个物理和有形处理机制。

计算功能1402可以包括一个或多个处理设备1404,诸如一个或多个中央处理单元(CPU),和/或一个或多个图形处理单元(GPU)等等。

计算功能1402还可以包括用于存储任何种类的信息(例如代码、设置、数据等)的任何存储资源1406。例如,存储资源1406可以包括任何类型的RAM、任何类型的ROM、闪存设备、硬盘、光盘等中的任一个。更一般地,任何存储资源可以使用任何用于存储信息的技术。此外,任何存储资源可以提供信息的易失性或非易失性保留。此外,任何存储资源可以表示计算功能1402的固定或可移除组件。当处理设备1404执行存储在任何存储资源或存储资源组合中的指令时,计算功能1402可以执行上述功能中的任何功能。

关于术语,任何存储资源1406或存储资源1406的任何组合可以被视为计算机可读介质。在许多情况下,计算机可读介质表示某种形式的物理和有形实体。术语计算机可读介质还包括例如经由物理导管和/或空气或其他无线介质等发送或接收的传播信号。然而,特定术语“计算机可读存储介质”和“计算机可读介质设备”明确排除传播信号本身,同时包括所有其他形式的计算机可读介质。

计算功能1402还包括用于与任何存储资源交互的一个或多个驱动机构1408,诸如硬盘驱动机构、光盘驱动机构等。

计算功能1402还包括用于接收各种输入(经由输入设备1412)和用于提供各种输出(经由输出设备1414)的输入/输出模块1410。说明性输入设备包括键盘设备、鼠标输入设备、触摸屏输入设备、数字化垫、一个或多个摄像机、一个或多个深度相机、自由空间手势识别机构、一个或多个麦克风、语音识别机构、任何运动检测机制(例如,加速度计、陀螺仪等)等。一个特定输出机制可以包括呈现设备1416和相关联的图形用户界面(GUI)1418。其他输出设备包括打印机、模型生成机构、触觉输出机构、存档机构(用于存储输出信息)等。计算功能1402还可以包括用于经由一个或多个通信管道1422与其他设备交换数据的一个或多个网络接口1420。一个或多个通信总线1424将上述组件通信地耦合在一起。

通信管道1422可以以任何方式实现,例如通过局域网、广域网(例如,因特网)、点对点连接等或其任何组合来实现。通信管道1422可以包括由任何协议或协议组合管理的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。

可替代地或另外,可以至少部分地通过一个或多个硬件逻辑组件来执行前面部分中描述的任何功能。例如但不限于,计算功能1402可以使用以下各项中的一个或多个来实现:现场可编程门阵列(FPGA);专用集成电路(ASIC);应用特定标准产品(ASSP);片上系统(SOC);复杂可编程逻辑器件(CPLD)等。

最后,尽管用结构特征和/或方法动作专用的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于上述具体特征或动作。相反,上述具体特征和动作被公开作为实现权利要求的示例形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1