具体实施方式
服务提供商可以通过互联网执行许多服务。例如,一些服务提供商通过监视和分析企业IT基础设施之间的应用、节点及服务的可用性和性能,确定实体的IT环境的健康状况。为了实现这一点,这样的服务提供商使用被称为拓扑结构的关于IT环境的详细信息。拓扑结构是由配置项组成的图表,该图表表示服务、硬件、程序元素以及这些项之间的关系。这些关系描述两个可配置的项如何彼此交互。服务提供商可以使用传感器来收集每个配置项的性能指标。性能指标和拓扑结构的结合使服务提供商能够提供IT状态和健康状况的整体观点。如果有故障或特别情况,可配置的规则设置允许服务提供商(例如,通过电子邮件)告警该实体,使得该实体能够采取纠正行动。通常,实体可以为触发告警的指标设置阈值。
由于关于实体的拓扑结构的这样的知识暴露许多与实体的商业有关的内容,且允许市场分析滥用、公司表现比较或甚至对实体的IT基础设施的网络攻击,所以由这样的服务提供商所用的许多信息是敏感的。出于这些理由,实体传统上非常保护向服务提供商供应的此类信息。当执行由服务提供商执行的服务时,商业IT基础设施信息被上传至数据中心环境,在该数据中心环境中,商业管理者担心其数据的安全和隐私。
本文描述的原理包括一种用于以如下方式向服务提供商发送加密数据的方法,该方式在向服务提供商给予其能够用于提供其服务的信息的访问权的同时,保护实体的敏感信息。这样的方法包括:在实体和服务提供商之间交换加密密钥,而不保留该加密密钥并且同时对该服务提供商隐藏该实体的身份;以及在对该服务提供商隐藏该实体的身份的同时,从该实体向该服务提供商转发基于该加密密钥的加密数据。
在下面的描述中,为了解释,陈述许多具体细节以提供对本系统和方法的深入理解。但是,本领域技术人员将理解,可以在没有这些具体细节的情况下实践本装置、系统及方法。说明书中对“示例”或类似语言的引用表示所描述的特定特征、结构或特性包括在至少一个该示例中,但不一定包括在其它示例中。
图1是根据本文描述的原理的通信中介(communicationbroker)(100)的示例的图。在此示例中,通信中介(100)与服务提供商(102)和实体(104)通信。通信中介(100)具有隐匿代理(106),隐匿代理(106)是使互联网通信无法追踪的工具。因此,服务提供商(102)或实体(104)都不能追踪其与通信中介(100)的通信以确定通信中介(100)还与谁通信。
实体(104)可以是具有IT环境的组织,如公司、政府、非营利性机构、企业实体、另一种组织或以上的组合。在其它示例中,实体(104)是从服务提供商(102)寻求在线服务的个体。虽然下面描述的示例是结合具有IT环境的实体描述的,但是实体可以通过服务提供商(102)寻求任意合适的在线服务,无论服务之后的寻求是IT相关的还是非IT相关的。
响应于实体期望接收在线服务,实体(104)建立与通信中介(100)的商业关系。通信中介(100)提供服务提供商选项列表,实体可以从该服务提供商选项列表中选择服务提供商。在一些示例中,通信中介(100)按名称列出服务提供商,并且实体(104)可以基于服务提供商的信誉、由实体进行的有关服务提供商的外部研究、由服务提供商提供的保证、其它因素、或以上的组合,来选择服务提供商(102)。在其它示例中,服务提供商(102)对于实体(104)是匿名的。在这样的示例中,通信中介(100)基于诸如可用性、服务完整性、及时性、价格、其它参数或以上的组合之类的服务提供商的参数来提供服务提供商选项。在一些示例中,通信中介(100)已具有与所列出的服务提供商中的每个建立的关系。在其它示例中,响应于实体对服务提供商的选择,通信中介(100)与被选中的服务提供商建立关系。
响应于选择服务提供商(102),通信中介(100)为实体(104)创建账单记录。此外,响应于选择服务提供商(102),通信中介(100)为合适的实体(104)创建与服务提供商(102)的关系的记录。虽然此示例是参照建立通信中介(100)和实体(104)之间的关系的特定方式描述的,但是根据本文描述的原理可以使用用于建立与通信中介(100)的关系的任意合适的机制。
实体(104)创建通过通信中介(100)与服务提供商(102)交换的加密密钥。该交换可以发生,使得实体(104)不知道其正在与谁交换加密密钥。此外,服务提供商(102)不知道其从谁接收该加密密钥。在一些示例中,可以通过依照用于通过非安全信道匿名地交换安全密钥的像迪斐-海尔曼(Diffie-Hellman)密钥交换协议这样的匿名密钥交换协议来执行这样的交换。通信中介(其是授信代理商)促进和保护这样的密钥交换。
匿名密钥交换协议可能易受中间人攻击(man-in-the-middleattack)伤害。可以通过放弃特定级别的匿名以交换较高的安全性,最小化或消除这样的攻击风险。例如,可以实现使用公钥基础设施(PKI)的半匿名密钥交换协议。
在执行加密密钥协议之后,服务提供商(102)以及实体(104)拥有通信中介(100)不知道的共有的秘密加密密钥。尽管通信中介促进实体(104)和服务提供商(102)之间的所有通信并因此看到所有消息,但是通信中介(100)不具有该加密密钥。因此,用通信中介(100)无法读的秘密加密密钥加密实体(104)和服务提供商(104)之间的所有未来的消息。这确保甚至在通过通信中介(100)路由的所有未来的通信中包括的不敏感信息也是仅实体(104)和服务提供商(102)可确定的,而通信中介(100)不知道通信的内容。只要通信中介(100)可信赖为不会对正在使用的任何匿名密钥交换协议执行中间人攻击,通信中介(100)就具有与实体(104)有关的知识,但没有对任何内容的访问权限。如果通信中介(100)是不可信赖的,则可以使用详尽监察(extensiveauditing)或半匿名密钥交换协议。服务提供商(102)可访问不敏感数据,但不具有与数据源有关的知识。
虽然本示例是参考用于加密服务提供商和实体之间的通信使得通信中介不知道通信内容的特定机制描述的,但是根据本文描述的原理可以使用用于加密通信内容的任意合适的机制。此外,虽然本示例是参照在实体和服务提供商之间交换加密密钥的特定方式描述的,但是可以使用用于交换加密密钥的任意合适的机制和/或协议。
此外,实体在未来的通信中隐匿敏感数据,使得服务提供商不能读取敏感数据。敏感数据可以包括可以允许服务提供商或另一方确定实体身份的标识符或其它类型信息。例如,可以引起对服务提供商隐藏主机名、实体名、互联网协议(IP)地址、媒体接入控制(MAC)地址、从属名、其它标识符或以上的组合。在一些示例中,用随机化的通用唯一标识(UUID)替换敏感数据。跟踪引擎跟踪哪个UUID表示哪个敏感数据,使得实体可完全访问与服务提供商的进入通信和外出通信。在一些示例中,服务提供商加密并存储映射,该映射跟踪UUID及对应的敏感信息。但是,在这样的示例中,服务提供商(102)不具有合适的加密密钥以确定该映射的加密,结果仅实体(104)可访问被映射的项。
虽然本示例是参考特定类型的敏感信息描述的,但是根据本文描述的原理可以将任意类型的消息中的任意合适的信息分类为敏感的。此外,虽然本示例是参照用于隐匿敏感信息的特定机制描述的,但是根据本文描述的原理可以使用用于隐匿敏感信息的任意合适的机制。
在从实体(104)向服务提供商(102)发送的未来的消息中,非敏感数据包含:与实体的可配置项有关、与实体的IT拓扑结构有关的信息,以及服务提供商(102)可以用于为实体(104)执行服务的其它信息。这样的信息可能对实体而言不那么敏感或不敏感,且服务提供商(102)可以使用从实体(104)接收的加密密钥来解密这样的不那么敏感或不敏感的信息。结果,服务提供商(102)可以仅用不那么敏感或不敏感的信息并且在不知道敏感信息的情况下,为实体(104)执行服务。
将接收的确认、所执行的服务的结果或来自服务提供商(102)的其它消息经由通信中介(100)返回至实体(104),服务提供商(102)不用知道其正向谁发送这些消息。还基于在实体(104)和服务提供商(102)之间交换的加密密钥加密来自服务提供商(102)的这样的通信。在服务提供商(102)处用该加密密钥加密这些通信,在实体处用该加密密钥解密这些通信。
图2是根据本文描述的原理的发送系统(200)的示例的图。在此示例中,发送系统(200)包括与服务提供商(204)和实体(206)通信的通信中介(202)。通信中介(202)包括隐匿代理(208)。
服务提供商(204)具有服务引擎(210),服务引擎(210)执行来自实体(206)的请求服务。此外,服务提供商(204)具有储存器介质(212),储存器介质(212)可以存储UUID/指标映射(214)以及实体的拓扑结构(216)。服务提供商(204)还包括解密/加密引擎(218),解密/加密引擎(218)可以用加密密钥来解密服务提供商(204)从实体(206)接收的消息。此外,服务提供商(204)可以加密通过通信中介(202)向实体(206)发送的消息,如报告、告警、其它消息或以上的组合,这些消息在实体处解密。
服务提供商(204)可以根据从实体(206)发送的被隐匿的数据来生成结果。这些结果可以以加密的形式发送回实体(204)。在一些示例中,实体首先解密这些结果,随后解隐匿这些结果。例如,加密/解密引擎(224)解密整个消息,这包括解密表示敏感数据的标识符。在解密敏感数据之后,实体(206)中的隐匿器/解隐匿器引擎(222)通过用敏感信息替换标识符来解隐匿这些结果。敏感信息及其对应的标识符被存储映射中,该映射跟踪并更新标识符和敏感信息的变化。因此,实体(206)通过解密及解隐匿进入的消息来构造来自服务提供商(204)的消息。
实体(206)具有传感器(220),传感器(220)可以用于测量实体的IT环境的特性和性能。服务提供商(204)可以将这样的测量结果用于为实体(206)执行服务。这样的服务可以包括:确定实体的IT环境的健康状况、解决实体的IT环境中的IT问题、识别实体的IT环境中的反常行为、处理来自实体的IT环境的数据、其它服务或以上的组合。
传感器可以向隐匿器/解隐匿器引擎(222)发送测量结果或收集到的指标,隐匿器/解隐匿器引擎(222)能够隐匿在测量结果及其对应消息中包括的敏感信息。如上所述,通过用任意标识符替换敏感数据使得仅实体知道整个消息,可以隐匿敏感信息。虽然隐匿器/解隐匿器引擎(222)隐匿敏感数据,但是其不隐匿服务提供商将用于执行被请求的服务的不那么敏感或不敏感的数据。实体(206)还具有加密/解密引擎(224),加密/解密引擎(224)加密测量结果、不那么敏感或不敏感的信息、任意标识符、其它消息成分或以上的组合。此外,加密/解密引擎(224)可以解密来自服务提供商(204)的消息。
实体(206)还具有密钥(keystore)库配置(226),在密钥库配置(226)中可以生成和/或存储与服务提供商交换的加密密钥。此外,密钥库配置(206)还可以生成和/或存储隐匿密钥,该隐匿密钥存储在破译任意标识符表示什么时使用的代码。在一些示例中,实体可以基于实体的输入来定制密钥库配置(206)。
可以用加密引擎(224)映射并加密实体的IT环境的拓扑结构。在加密时,拓扑结构可以被发送至服务提供商(204)并被存储在服务提供商的储存器介质(212)中。此外,可以用服务提供商(204)没有的不同加密密钥来加密任意标识符以及敏感信息的映射,使得服务提供商(204)也可以存储这样的映射。
隐匿器/解隐匿器引擎(222)以及加密引擎(224)共同地包含用于理解从服务提供商(204)通过通信中介(202)向实体(206)发送的消息的知识。加密引擎(224)解密不那么敏感的数据、不敏感的数据、和/或表示来自服务提供商(206)的消息中的敏感数据的任意标识符。隐匿器/解隐匿器引擎(222)用其对应的敏感信息替换任意标识符。服务提供商(204)不知道任意标识符表示什么,因此对服务提供商(206)隐藏敏感信息。此外,通信中介(202)没有加密密钥,也没有任意标识符的意义,因此通信中介(202)也不能理解整个消息。仅实体(206)具有允许实体(206)理解外出的消息及进入的消息的所有知识。
虽然上面的示例是参考用于事件提交的特定硬件描述的,但是根据本文描述的原理可以使用任意合适的硬件来操作其它任务。例如,其它任务可以包括用于拓扑结构变化的工作流、基于由服务提供商提供的信息的报告(包括图形报告)渲染、监视实体的基础设施、处理告警、其它任务、或以上的组合。在一些示例中,由于通过增加对实体有意义的明文来取代表示敏感信息的任意标识符,仅实体具有完全理解报告和/或告警的知识,所以这样的报告和告警最终在本地确定。在一些情况下,服务提供商可以以加密的状态存储信息(如模板),以防设备故障,设备故障可以使设备变得无状态。
图3是根据本文描述的原理的用于向服务提供商发送加密数据的方法(300)的示例的图。方法(300)包括:在实体和服务提供商之间交换(302)加密密钥,而不保留该加密密钥且不对服务提供商暴露实体的身份;以及在不暴露实体的身份的情况下,从实体向服务提供商转发(304)基于该加密密钥的加密数据。在图3的示例中,方法(300)还包括:从服务提供商向实体转发(306)基于该加密密钥的加密消息,使得对服务提供商隐藏实体的身份。
加密数据包含用随机化的唯一标识替换的敏感信息,使得对服务提供商隐藏该敏感信息。敏感信息可以包括实体名、主机名、互联网协议(IP)地址、媒体接入控制(MAC)地址、实体标识符、其它类型的信息、或以上的组合。对服务提供商隐藏加密数据中的这种敏感信息,而加密数据的其它部分是服务提供商可基于与服务提供商和实体交换的加密密钥而识别的。
同样地,从服务提供商至实体的消息也包括加密数据和被隐匿的数据。实体具有用于破译加密的加密密钥并且能够确定替换敏感信息的任意标识符的意义。因此,服务提供商不能完全理解其向实体发送的消息。此外,由于通信中介不能够确定表示敏感信息的任意标识符的意义,也不具有加密密钥来用于破译消息的加密,所以其不理解在服务提供商和实体之间交换的消息的内容。
图4是根据本文描述的原理的用于交换加密密钥的方法(400)的示例的图。在此示例中,方法(400)包括:基于服务提供商的参数,通过通信中介选择(402)服务提供商;用该通信中介创建(404)账单记录;以及在不对服务提供商暴露实体的身份的情况下,通过通信中介交换(406)加密密钥。
虽然本示例是参照用于创建与通信中介和服务提供商的关系的特定机制描述的,但是根据本文描述的原理可以使用用于建立与通信中介或服务提供商的关系的任意合适的机制。例如,可以响应于准备发送消息而交换加密密钥,并且可以将该加密密钥定制为仅用于该特定消息。结果,加密密钥可以频繁地改变,以提供额外的安全性。
图5是根据本文描述的原理的隐匿消息中的敏感数据的示例的图。在此示例中,方法(500)包括:识别(502)向服务提供商发送的实体指标;生成(504)具有该实体指标的消息;用通用唯一标识(UUID)替换(506)该消息中的敏感信息;以及跟踪(508)该UUID及敏感信息,使得仅实体具有该敏感信息。
UUID是由开放软件基金会(OSF)标准化的标识符标准。UUID使分布式系统能够在没有显著的中心协调的情况下唯一地识别信息。
虽然本示例是参照特定地用UUID隐匿敏感数据描述的,但是根据本文描述的原理可以使用任意合适的隐匿机制。例如,可以以其它方(如服务提供商及通信中介)不能破译标识符的表示的方式分配其它类型的标识符来替换敏感信息。
图6是根据本文描述的原理的发送系统(600)的示例的图。发送系统(600)具有交换引擎(602)、加密引擎(604)和转发引擎(606)。在此示例中,发送系统(600)还具有隐匿引擎(608)和跟踪引擎(610)。引擎(602、604、606、608、610)指用于执行指定功能的硬件和程序指令的组合。引擎(602、604、606、608、610)中的每个可以包括处理器和存储器。程序指令被存储在存储器中,并使处理器执行引擎的指定功能。
交换引擎(602)引起在实体和服务提供商之间以通信中介不保留加密密钥的方式交换该加密密钥。交换引擎(602)可以实现用于在通信中介不保留密钥的情况下引起交换的任意合适的匿名或半匿名密钥交换协议。
加密引擎(604)双向加密实体和服务提供商之间的通信。这样的加密基于与交换引擎(602)交换的加密密钥。在通过通信中介发送通信之前,实体和服务提供商都加密其通信。因此,服务提供商或实体使用相同的加密密钥解密通信,以破译通信表示什么。
转发引擎(606)向合适的接收者转发在通信中介处接收到的通信。通信中介可以促进双向(即,向服务提供商和向实体)通信。
隐匿引擎(608)使得对除实体之外的所有方都隐藏敏感信息。为了隐匿敏感信息,可以用任意的和随机的标识符(如UUID)替换敏感信息。跟踪引擎(610)跟踪敏感信息和由隐匿引擎(608)放置在适当位置的标识符,并且存储标识符与其对应信息的映射。这样的映射对于其特定部署是唯一的,且可以由实体存储。在其它示例中,用仅由实体拥有的第二加密密钥加密该映射。在这样的示例中,由于在没有为该映射定制的合适加密密钥的情况下,服务提供商将不能访问该映射的内容,所以可以由服务提供商存储该映射。
图7是根据本文描述的原理的发送系统的示例的图。在此示例中,发送系统(700)包括处理资源(702),处理资源(702)与存储器资源(704)通信。处理资源(702)包括至少一个处理器和用于处理编程指令的其它资源。存储器资源(704)通常表示能够存储数据(如由发送系统(700)使用的编程指令或数据结构)的任意存储器。示出在存储器资源(704)中存储的编程指令包括:服务提供商选择器(706)、账单记录创建器(708)、加密密钥生成器(710)、加密密钥交换器(712)、指标传感器(714)、数据消息生成器(176)、敏感信息隐匿器(718)、敏感信息跟踪器(720)、数据消息加密器(722)、数据消息发送器(724)、数据消息转发器(726)以及数据消息解密器(728)。
存储器资源(704)包括计算机可读存储介质,计算机可读存储介质包含计算机可读程序代码,该计算机可读程序代码用于引起由处理资源(702)执行任务。计算机可读存储介质可以是有形的和/或非暂时性的存储介质。计算机可读存储介质可以是不属于传输存储介质的任意合适的存储介质。计算机可读存储介质类型的非穷尽列表包括:非易失性存储器、易失性存储器、随机存取存储器、基于忆阻器的存储器、只写存储器、闪存、电可擦除编程只读存储器、磁存储媒介、或多种存储器、或以上的组合。
服务提供商选择器(706)表示如下编程指令:该编程指令在执行时使处理资源(702)从向实体提供的选项列表中选择服务提供商。服务提供商选择器(706)可以基于来自实体的输入而选择服务提供商。账单记录创建器(708)表示如下编程指令:该编程指令在执行时使处理资源(702)响应于服务提供商选择器(706)选择服务提供商而创建账单记录。账单记录创建器(708)表示如下编程指令:该编程指令在执行时使处理资源(702)创建通信中介和实体之间的记录。
加密密钥生成器(710)表示如下编程指令:该编程指令在执行时使处理资源(702)生成用于加密服务提供商和实体之间的消息的加密密钥。加密密钥交换器(712)表示如下编程指令:该编程指令在执行时使处理资源(702)在实体和服务提供商之间交换加密密钥。
指标传感器(714)表示如下编程指令:该编程指令在执行时使处理资源(702)感测来自实体的IT环境的指标。数据消息生成器(716)表示如下编程指令:该编程指令在执行时使处理资源(702)基于用指标传感器(714)收集的指标而生成欲送给服务提供商的消息。敏感数据隐匿器(718)表示如下编程指令:该编程指令在执行时使处理资源(702)隐匿数据消息中的敏感数据,使得对服务提供商隐藏该敏感数据。敏感数据隐匿器(718)可以通过用任意标识符替换敏感数据来隐匿敏感数据,该任意标识符的意义是服务提供商不知道的。敏感信息跟踪器(720)表示如下编程指令:该编程指令在执行时使处理资源(702)用其对应的任意标识符跟踪敏感信息。
此外,数据消息加密器(722)表示如下编程指令:该编程指令在执行时使处理资源(702)基于用加密密钥生成器(710)生成的加密密钥来加密用数据消息生成器(716)生成的数据消息。数据消息发送器(724)表示如下编程指令:该编程指令在执行时使处理资源(702)向通信中介发送该消息,通信中介具有隐匿代理,该隐匿代理防止其它方确定通信中介正在与谁通信。数据消息转发器(726)表示如下编程指令:该编程指令在执行时使处理资源(702)以服务提供商不能确定数据消息源的方式,向服务提供商转发由通信中介接收到的消息。数据消息解密器(728)表示如下编程指令:该编程指令在执行时使处理资源(702)在服务提供商处解密数据消息,使得服务提供商可以为匿名实体执行服务。数据消息解密器(728)解密数据消息的不那么敏感或不敏感的部分,而服务提供商无法辨认敏感信息,因为服务提供商不理解任意标识符表示什么。
此外,存储器资源(704)可以是安装包的一部分。响应于安装该安装包,可以从诸如便携式介质、服务器、远程网络位置、其它位置或以上的组合之类的该安装包的源下载存储器资源(704)的这些编程指令。与本文描述的原理兼容的便携式存储媒介包括DVD、CD、闪存、便携式盘、磁盘、光盘、其它形式的便携式存储器或以上的组合。在其它示例中,已安装这些编程指令。这里,存储器资源可以包括集成的存储器,如硬盘、固态硬盘等等。
在一些示例中,处理资源(702)和存储器资源(704)位于同样的物理组件内,如服务器或网络组件。存储器资源(704)可以是该物理组件的主存储器、缓存、寄存器、非易失性存储器或该物理组件的存储器体系中的其它位置的一部分。可替代地,存储器资源(704)可以通过网络与处理资源(702)通信。此外,可以从远程位置通过网络连接访问这些数据结构(如库),而这些编程指令位于本地。因此,发送系统(700)可以在实体设备上、在服务器上、在服务器集合上、或在以上的组合上实现。
图7的发送系统(700)可以是通用计算机的一部分。但是,在替代示例中,发送系统(700)是专用集成电路的一部分。
前面已提供的描述仅用于图示和描述所描述的原理的示例。此描述的目的不在于是穷尽的或将这些原理限制于所公开的任何精确的形式。根据上述教导,许多修改和变化是可能的。