用于确保电子交易平台安全的系统和方法与流程

文档序号:24399036发布日期:2021-03-27 02:01阅读:209来源:国知局
用于确保电子交易平台安全的系统和方法与流程
用于确保电子交易平台安全的系统和方法
1.交叉引用
2.本申请为非临时的,并且要求2018年5月28日提交的美国临时申请号62/677,133;2018年6月28日提交的美国临时申请号62/691,406;2018年7月12日提交的美国临时申请号62/697,140;2019年2月15日提交的美国临时申请号62/806,394;以及2019年3月27日提交的美国临时申请号62/824,697的所有权益,包含优先权;所有美国临时申请的标题均为用于确保电子交易平台安全的系统和方法。
3.上述申请的内容均以全文引用的方式并入本文中。
技术领域
4.本公开大体上涉及电子数据处理领域,且具体地说涉及确保电子交易数据处理的安全。


背景技术:

5.消费者在其使用金融产品(例如,信用卡或忠实会员卡)进行购买时对金融机构和供应商产生一定程度的信任,使得在消费者未明确同意的情况下,其私密信息,例如交易数据将不会暴露给其它方。同时,消费者对个性化报价的反应比对非个性化推荐的反应会更好。
6.一般来说,银行和商家不愿意与其它组织共享消费者数据,因为对消费者隐私的保护对他们来说最为重要。另外,甚至在消费者明确同意的情况下,银行和商家仍不愿意与其它方共享消费者数据,因为他们可能会失去对共享数据的控制或所有权。
7.在数据处理和变换期间,需要确保对隐私的保护。然而,提高的保密性产生技术挑战,因为加密和解密的额外步骤可导致增加的基础结构需求,以及对性能的技术限制。


技术实现要素:

8.本文中所描述的实施例涉及经调适成克服与改进保密性和安全性相关联的技术挑战的技术解决方案。描述数据聚合器计算机系统,其被配置成从多个单独计算系统接收一个或多个数据集。
9.在一些实施例中,描述特定特征克服计算资源约束方面的挑战,尤其是在提高的加密等级下操作的环境下,因为额外加密引起增加的计算负担。
10.此外,如在一些实施例中,利用单独安全存储器区域,此区域为在其可以物理方式或以电子方式与其它计算子系统,例如内核程序或操作系统分离时受约束的存储器空间(例如,甚至对服务器装置具有根访问权限的管理员可能无法访问存储于受保护存储器区域中的基础数据)。因此,暴露于恶意攻击或数据外泄的几率明显降低,因为安全包围区提供安全性极高的环境以用于进行数据处理或机器学习。
11.这些数据集可表示单独计算系统的组织的敏感信息,所述组织不希望其它计算系统或甚至数据聚合器计算机系统的管理员可以访问所述敏感信息。描述系统、方法和计算
机可读介质,其相对于具有增强保密性和安全措施的改进处理架构的操作利用安全处理技术,例如安全包围区。在一些实施例中,所述机器学习数据模型架构和其组件也存储在安全存储器区域中,使得其无法进行交互或访问。
12.如上文所描述,这些增强保密性和安全措施引起增加的技术挑战,因为例如加密和解密要求减少了各种情形下可用的总计算资源。计算资源可归因于特定方面需要仅使用安全处理器进行且数据元素在处于安全处理环境外部时可需要仅以经加密格式存储的要求而受约束。安全处理涉及保护总计算步骤使得各方在不具有适当访问权限的情况下不能够访问机器学习数据架构中使用的基础数据的一个或多个部分。
13.所接收数据集存储于受保护存储器区域中,所述受保护存储器区域经加密使得其对于操作系统和内核系统不可访问。受保护存储器区域至少包含数据存储区域和维持分离数据处理子系统的数据处理子系统存储区域,所述数据处理子系统处理数据以生成输出数据结构。在实例实施例中,所述数据处理子系统应用处理函数,其在生成输出时利用查询请求的组分和/或所存储数据集的元素。
14.作为简化实例,数据集可用于基准测试且响应于关于基准测试统计的查询请求,可查询聚合数据集以获得响应(例如,利用不仅来自数据源a而且来自数据源b、c、d的数据集,同时维持基础数据集的保密性和安全性,因为各方均不能够访问受保护存储器区域)。受保护存储器数据区域可例如通过用仅对于安全包围区数据处理器已知而对任何其它方(甚至包含上面驻留有安全包围区数据处理器的系统的管理员)不可访问的密钥机构加密或经由上面驻留有安全包围区数据处理器的系统的操作系统或内核程序而受保护。
15.在一些其它实施例中,提供专用高速缓存存储器,其中可加载受保护存储器区域,且其中数据集可加载且接着在记录之后经加密,且其中数据集在加载到受保护存储器区域中之后不再可访问。
16.在第二方面中,例如,经由安全存储的机器学习数据模型架构进行处理,所述机器学习数据模型架构经由存储于其上的数据集反复地保持和训练。在此实施例中,所述机器学习数据模型架构的基础组件(例如,隐蔽层、计算节点、互连、表示节点的数据结构)也不可经由上面驻留有安全包围区数据处理器的系统的操作系统或内核程序访问,因为所述机器学习数据模型架构的基础组件也维持或存储于受保护存储器区域中。互连计算节点共同操作以响应于查询数据消息经由在多个训练时期内训练的动态修改激活函数生成输出数据结构(例如,鉴于优化损失函数通过经由梯度下降进行学习)。
17.在实施例中,利用安全包围区(例如,分离数据处理器、硬件或软件或其组合)以用于进行机器学习子任务。在一些实施例中,安全包围区可存储用于安全地访问基础数据的加密密钥。
18.安全包围区处理引起计算资源约束方面的限制,这可导致性能和速度降低。相对于非安全处理范例,归因于加密和访问限制要求,复杂度提高。
19.因此,如在本文中的各种实施例中所描述,提出涉及具有强保密性和稳固安全性的机器学习数据架构的方法。在一些实施例中,机器学习架构包含多个互连安全包围区处理分区(例如,单独安全包围区处理器),其处理并维持单独训练模型架构。
20.在经由分区中的每一个处理数据时,更新单独模型架构以生成经更新模型架构参数数据结构。来自分区中的每一个的经更新模型架构参数数据结构聚合在参数聚合单元处
(例如,参数服务器,其可为其自身的包围区)。参数聚合单元被配置成保存更新、接着重新传播到安全处理传统的聚合的经训练模型架构。一些实施例的此架构有助于克服与安全包围区分区的减小吞吐量相关的技术约束。例如,一些安全包围区分区限于大致90mb或更小的模型架构大小。因此,多个经协调分区共同操作以提供总体安全的处理。
21.如一些实施例中所描述的用于机器学习和安全学习的应用程序包含例如通过机器学习模型架构生成数据结构,其包含用于基于与标识符的训练集的类似性识别集群的客户标识符的子集。例如,标识符的训练集可包含高收益忠实客户,且可利用经训练模型架构以识别不在训练集内但可忽略的目标客户作为潜在目标。在此实例中,使用安全机器学习数据架构的安全处理用于确保未经授权用户不会对基础数据(其可包含敏感客户数据)进行未授权访问。例如,安全包围区处理器用于确保商家无法全面了解客户档案,尤其当此类商家不是客户档案的保管人时。
22.在另一实施例中,包围区分区还被配置成在并行操作期间彼此互连使得包围区分区能够在彼此之间共享、确定参数,相较于从聚合器处理器接收经训练模型中的经更新参数。
23.根据一个方面,提供有一种用于在处理器的受信任执行环境(tee)内处理数据的系统。所述系统可包含:信任管理器单元,其用于验证合作伙伴的身份标识并在身份标识的所述验证后将通信密钥发出到所述合作伙伴;至少一个接口,其用于从所述合作伙伴接收使用所述通信钥匙加密的经加密数据;安全数据库,其在所述tee内用于通过存储密钥存储所述经加密数据并用于防止所述tee内对所述经加密数据的未授权访问;以及推荐引擎,其用于对所述经加密数据进行解密和分析以基于经解密数据生成推荐。
24.根据另一方面,提供有一种用于在处理器的受信任执行环境(tee)内处理数据的计算机实施方法。所述方法可包含:验证合作伙伴的身份标识;在身份标识的所述验证后将通信密钥发出到所述合作伙伴;从所述合作伙伴接收使用所述通信密钥加密的经加密数据;通过存储密钥存储所述经加密数据以防止所述tee内对所述经加密数据的未授权访问;以及对所述经加密数据进行解密和分析以基于经解密数据生成推荐。
25.根据另一方面,具有受保护存储器区域的计算机可读存储器存储于dram上。
26.根据另一方面,将受保护存储器区域解密到计算机可读高速缓存存储器中所需的密钥存储于安全包围区数据处理器内且在安全包围区数据处理器外部不可访问。
27.根据另一方面,将所述受保护存储器区域解密到所述计算机可读高速缓存存储器中所需的所述密钥最初是由随机数项生成,且所述随机数项存储于所述安全包围区数据处理器内且在所述安全包围区数据处理器外部不可访问。
28.根据另一方面,通过安全包围区数据处理器周期性地进行远程鉴证程序以验证所述系统的安全性,所述远程鉴证程序包含将包含diffie hellman消息的远程鉴证有效负载发射到所述安全包围区数据处理器。
29.根据另一方面,通过安全包围区数据处理器周期性地进行远程鉴证程序以验证所述系统的安全性,所述远程鉴证程序包含所述安全包围区数据处理器生成远程鉴证脚本数据结构并发射所述远程鉴证脚本数据结构以及经签名质询有效负载和新diffie hellman消息有效负载。
30.根据另一方面,安全包围区数据处理器被配置成提供:分区控制器引擎,其被配置
成提供一个或多个安全包围区子处理器并将受保护存储器区域的分区发射到所述一个或多个安全包围区子处理器中的每一个;所述一个或多个安全包围区子处理器,其被配置成使用所述机器学习数据模型架构的本地副本处理受保护存储器区域的对应分区以生成一个或多个参数更新数据结构;分区聚合引擎,其被配置成从所述一个或多个安全包围区子处理器中的每一个接收所述一个或多个参数更新数据结构,并处理所述一个或多个参数更新数据结构以优化所述机器学习数据模型架构的至少一个参数,所述机器学习数据模型架构分配到所述一个或多个安全包围区子处理器以更新所述机器学习数据模型架构的对应本地副本。
附图说明
31.现将参考附图,仅借助于实例描述实施例,其中在附图中:
32.图1为根据一些实施例的说明用于处理安全消费者数据的实例平台的框图;
33.图2a为根据一些实施例的用于处理安全交易数据的平台上的实例(虚拟)无尘室的示意图;
34.图2b为根据一些实施例的用于处理安全交易数据的平台上的另一实例无尘室的示意图;
35.图3为根据一些实施例的平台上的无尘室的另一示意图;
36.图4为根据一些实施例的说明合作伙伴与实例平台的信任管理器之间的远程鉴证程序的示意图;
37.图5为根据一些实施例的来自实例平台的安全和加密单元的示意图;
38.图6为根据一些实施例的实例平台的又一示意图;
39.图7为根据一些实施例的来自实例平台的数据建模单元和数据存储单元的示意图;
40.图8为根据一些实施例的来自实例平台的主节点和工作者节点的示意图;
41.图9展示根据一些实施例的各种节点的实例作业指配;
42.图10展示根据一些实施例的安全包围区的实例存储器结构;
43.图11a展示根据一些实施例的实例资源管理结构;
44.图11b展示根据一些实施例的资源管理数据程序的实例示意图;
45.图12为根据一些实施例的用于实施实例平台的计算装置的示意图;
46.图13说明根据一些实施例的由实例平台执行的实例程序;且
47.图14说明根据一些实施例的用于处理安全交易数据的平台上的实例无尘室的另一示意图。
48.图15说明根据一些实施例的包含用于处理安全交易数据的无尘室的分布式系统的又一示意图。
49.图16说明使用yarn作为资源管理器实施数据分析的实例spark框架。
50.图17展示在spark框架下的实例执行器结构。
51.图18展示在spark框架下与驱动器应用程序共同操作的实例执行器结构。
52.图19为根据一些实施例的机器学习架构和数据流的实例示意框图。
53.图20为展示到不同客户层的资源分配的实例说明。
54.图21为根据一些实施例的展示两个不同数据集的客户之间的交叉和目标机会区域的实例文氏图。
55.图22为根据一些实施例的经调适成展示展示所生成推荐的图形配件的图形用户界面的实例呈现。
56.图23为根据一些实施例的经调适成展示展示所生成推荐的图形配件栏的图形用户界面的实例呈现。
57.图24为根据一些实施例的实例生产环境和数据流的说明。
具体实施方式
58.应了解,阐述许多特定细节以便提供对本文中所描述的示例性实施例的彻底理解。然而,本领域普通技术人员应理解,可在没有这些特定细节的情况下实践本文中所描述的实施例。此外,本说明书并不被视为以任何方式限制本文中所描述的实施例的范围,而是实际上仅仅描述本文中所描述的各种实例实施例的实施。
59.使用具有适用于数据集的改进安全性和保密性的专用组件和电路系统的技术装置,包含计算机来实施实施例。如在本文中所提及,实施例涉及安全包围区数据处理器和其结合具有受保护存储器区域的计算机可读存储器的用途。
60.安全包围区数据处理器与受保护存储器区域介接以安全地存储和加密从特定数据源(例如,从合作伙伴组织)接收的数据集,所述数据集在一些实施例中可用特定针对于合作伙伴组织或数据源的密钥加密。在实施例中,密钥可经预生成且与合作伙伴组织或数据源相关联。在另一实施例中,系统可包含密钥生成器,其在需要新密钥将数据集加载到受保护存储器区域中时执行密钥生成仪式。
61.如在本文中所提及,加载特定针对于特定计算装置或数据源的数据集。在一些实施例中,单向加载,使得密钥经破坏或加密密钥未提供回到特定计算装置或数据源。在变体实施例中,单向加载可使用经加载以用于训练或以其它方式并入到数据处理或机器学习数据模型架构中的数据,在数据删除之后(例如,数据仅用于训练)。
62.在其它实施例中,加载可为双向的其中特定计算装置或数据源能够提取其自身的数据集或修改先前提供的数据集中的数据。在替代实施例中,输出数据结构可为对数据集中的数据的修改(例如,用元数据扩展数据集)且数据集的提取可用于生成经扩展或以其它方式改进的数据版本(例如,提供客户数据,且提取展示所估计客户类型分类字符串的扩增客户数据)。在一些实施例中,所述机器学习数据模型架构也可加载或卸载,使得未经训练机器学习数据模型架构可载入且可提取出经训练机器学习数据模型架构,而无需使得任一方均能够访问基础数据集。
63.消费者在其使用金融产品(例如,信用卡或忠实会员卡)进行购买时对金融机构和供应商产生一定程度的信任,使得在消费者未明确同意的情况下,其私密信息,例如交易数据将不会暴露给其它方。同时,消费者对个性化报价的反应比对一般推荐的反应会更好。一般来说,银行和商家不愿意与其它组织共享消费者数据,因为对消费者隐私的保护对他们来说最为重要。
64.另外,甚至在消费者明确同意的情况下,银行和商家仍不愿意与其它方共享消费者数据,因为他们可能会失去对共享数据的控制或所有权。将从特定数据源接收的数据集
存储到受保护存储器区域中,使得其它方不能够访问所述数据集,但所述数据集在受保护存储器区域内可由数据处理子系统访问以用于生成以输出数据结构的形式封装的计算机生成洞察和/或值。在一些实施例中,输出数据结构也可包含经训练机器学习数据模型架构。
65.输出数据结构可响应于查询数据消息生成,所述查询数据消息在一些方面中可包含供系统处理的新信息或可为针对受保护存储器区域中存储于其上的聚合现有信息的查询请求。
66.例如,查询数据消息可提供针对假想客户档案的向量,且经训练机器学习数据模型架构可输出存储字段的数据结构,所述字段指示经训练机器学习数据模型架构是否预测假想客户档案将适合于所提出的报价。
67.在另一实例中,查询数据消息可不包含任何额外信息而是实际上可为基于存储于受保护存储器区域中的聚合信息或基于经训练机器学习数据模型架构的查询。例如,查询数据消息可指向:“一般来说,相对于在美国的平均时间长度,客户在华盛顿特区的零售店中花费的平均时间长度有多长?”,或在存在经训练机器学习数据模型架构的情况下可指向“基于华盛顿特区中客户的总体聚合交易行为,识别了多少客户集群?”(例如,如果无监督模型用于识别多个集群)。
68.本文中描述用于处理私用消费者数据,例如交易数据的安全平台。在一些实施例中,平台可与参与合作伙伴(例如,银行和商家)介接以从每一合作伙伴的相应系统接收包含交易数据(也被称作“txn数据”)的消费者数据。消费者数据可用加密密钥加密。
69.平台可将所接收到的消费者数据存储于安全区域(也被称作“无尘室”)中,其中消费者数据接着经解密和分析以为每一消费者生成个性化报价。从合作伙伴所接收到的消费者数据出于规定目的,即,出于运行分析和生成报价的目的无法由除了无尘室之外的任何其它用户、系统或程序访问、解密或读取。此平台使得能够对经加密数据执行分析、相对于失去或削弱对消费者数据的控制和所有权提升对银行和商家的关注,并用以保护消费者数据的隐私。在一些实施例中,托管平台的计算机的所有者可不能够查看或推断关于输入或输出数据的任何内容。
70.在一些实施例中,无尘室实施于处理器(例如,cpu)的受信任执行环境(tee)内的一个或多个安全包围区内,其中可训练和执行数据模型以进行任何级别的分析。密钥管理能力还使得确保对存储于无尘室内的数据的适当加密和解密。
71.本文中所描述的实施例涉及经调适成克服与改进保密性和安全性相关联的技术挑战的技术解决方案。具体地说,描述系统、方法和计算机可读介质,其相对于具有增强保密性和安全措施的改进机器学习数据架构的操作利用安全处理技术,例如安全包围区。
72.如上文所描述,这些增强保密性和安全措施引起增加的技术挑战,因为例如加密和解密要求减少了各种情形下可用的总计算资源。计算资源可归因于特定方面需要仅使用安全处理器进行且数据元素在处于安全处理环境外部时可需要仅以经加密格式存储的要求而受约束。
73.图1为说明根据一些实施例的用于经由网络150接收和处理安全消费者数据的实例电子交易平台100的框图。消费者数据可从一个或多个合作伙伴系统115接收,所述合作伙伴系统可包含一个或多个银行系统112和一个或多个商家系统113。图2a至图3提供实施
于平台100上的实例无尘室300的示意图。
74.处理装置101可执行存储器109内的指令以配置各种组件或单元120、121、122、123、124、125。处理装置101可为例如微处理器或微控制器、数字信号处理(dsp)处理器、集成电路、现场可编程门阵列(fpga)、可重新配置处理器,或其任何组合。处理装置101可包含存储器109、数据存储器108,和其它存储器111。在一些实施例中,处理装置101包含被称为受信任执行环境(tee)103的安全区。tee 103可包含存储器109和数据存储器108,且为可执行各种单元和应用程序且可处理和存储数据的分离环境。运行于tee 103内的应用程序可充分利用处理装置101的满功率,同时受保护以防主操作系统中的组件和应用程序的影响。tee 103内的应用程序和数据受保护以防不合需要的访问和篡改,甚至以防处理装置101的所有者的影响。在一些情况下,tee 103内的不同应用程序和数据存储在需要时可彼此单独分离并受保护。
75.在一些实施例中,tee 103的受保护存储器区域(例如,安全数据仓库108)通过使用加密分离。在此实例中,加密密钥存储于tee 103自身内,使得其可视需要访问数据但基础数据不可由其它组件,例如服务器或kernel程序上操作的操作系统访问。在替代实施例中,通过使用与其它组件的物理或电路分离而进行分离。在又一替代实施例中,利用物理和加密分离两者。
76.因为平台100的组件和数据保持于tee 103内,因此其归因于tee 103提供的分离和安全性较佳受保护以防未授权访问和篡改。因此,合作伙伴系统115具有可信度,使得其消费者数据不会无意泄漏或被其它各者访问。如下文将描述,每一合作伙伴可验证tee 103内的平台100为安全的且在将任何数据发射到平台100之前无篡改(例如,经由鉴证程序)。因此,合作伙伴系统115对平台100的信任程度较高且将更愿意将其消费者数据发送到平台100以供处理且继而接收针对性推荐和报价给到当前和潜在客户。
77.数据存储器108可为例如具有合适容量的一个或多个nand快闪存储器模块,或可为一个或多个持久性计算机存储装置,例如硬盘驱动器、固态驱动器等。在一些实施例中,数据存储器108包括被配置成托管经加密数据的安全数据仓库。
78.存储器109可包含计算机存储器的组合,例如静态随机存取存储器(sram)、随机存取存储器(ram)、只读存储器(rom)、电光学存储器、磁光学存储器、可擦除可编程只读存储器(eprom)和电可擦除可编程只读存储器(eeprom)、铁电ram(fram)等。
79.在一些实施例中,tee内的数据可存储于数据存储器108、存储器109或其某一组合中。
80.数据存储器108可包含被配置成存储与tee 103相关联的信息,例如用于远程鉴证、加密和解密的加密密钥的安全数据仓库。数据存储器108还可存储保密信息,例如包含交易数据的消费者数据。存储器108和/或其它存储器111可使用各种类型的存储技术提供,且可以各种格式存储,例如关系数据库、非关系资料库、平面文件、电子数据表、经扩展标记文件等。数据存储器108可包含例如用于加载受保护存储器区域等的计算机可读高速缓存存储器,以及受保护存储器区域自身。在数据存储器108被配置成用于双向访问时,数据存储器108可存储对应于特定数据源的对应公用密钥以用于在由与特定数据源相关联的计算装置请求的访问之前对数据进行加密。
81.在一些实施例中,数据存储器108维持分离机器学习数据模型架构,其基于通过
tee103接收的数据集进行训练,所述数据集在对数据存储器108进行处理之后可或可未经存储。例如,如果数据在处理和训练之后未存储于数据存储器108上,那么可因为需要较少总存储而改进性能。这在数据集特别大或庞大的情况下有用。在另一实施例中,数据集在受保护存储器区域中存储于数据存储器108上以供未来使用或跨时间分析。
82.数据存储器108还可存储输出数据结构,其可经由推荐引擎120进行交互,所述输出数据结构存储通过由数据处理子系统进行处理而生成的字段值。在一些实施例中,tee103的所述数据处理子系统包含基于从对应合作伙伴计算装置接收的数据集的聚合生成的存储函数。
83.每一i/o单元107使得平台100能够与一个或多个输入装置,例如键盘、鼠标、相机、触摸屏和麦克风或与一个或多个输出装置,例如显示屏和扬声器互连。i/o单元107可用于接收指令以准备将数据加载到数据存储器108中/卸载数据,且可需要提供访问或以其它方式解密或验证数据以用于加载到数据存储器108中所需的特定访问密钥。
84.i/o单元107还可接收触发所述数据处理子系统生成各种输出数据结构的查询数据消息以作为数据结构、指令集或查询字符串。
85.每一通信接口105使得平台100能够与其它组件通信、与其它组件交换数据、访问并连接到网络资源、为应用程序服务,和通过连接到能够携载数据的网络(或多个网络)执行其它计算应用程序,所述网络包含因特网、以太网、普通老式电话服务(pots)线、公用交换电话网(pstn)、综合业务数字网(isdn)、数字订户线(dsl)、同轴电缆、光纤、卫星、移动、无线(例如,wi

fi、wmax)、ss7信令网、固定线、局域网、广域网等,包含这些网络的任何组合。
86.平台100可用于在能够访问应用程序、局域网、网络资源、其它网络和网络安全装置之前注册和认证用户(使用例如登录、唯一标识符和口令)。平台100可为一个用户或多个用户服务。在一些实施例中,用户的凭证信息存储于tee 103内,从而使其安全并确保来自合作伙伴的高度信任。
87.图2a展示用于处理安全交易数据的平台100上的实例虚拟无尘室300。虚拟无尘室300可被称为vcr或仅无尘室300。合作伙伴系统115可用由无尘室300生成的密钥加密用户数据(例如,消费者交易数据),且接着跨越安全信道将经加密数据发射到无尘室300内的安全数据仓库108。所述用户数据可仅在安全包围区133中经解密和处理。安全包围区133内由程序生成的数据输出接着经加密并存储于安全数据仓库108内。
88.安全包围区133可被配置成将经加密数据集存储于单个安全包围区中并执行一个或多个分析算法。安全包围区133还可实施集群管理以安排多个安全包围区和cpu。如在本文中所提及,在一些实施例中,利用分区跟踪来自利用机器学习数据模型架构的本地版本的一个或多个安全包围区子处理器的模型数据架构更新并传递参数更新以周期性地更新所述机器学习数据模型架构的全局版本,从而实际上实现所述机器学习数据模型架构的训练程序的并行性,这在有可能会聚的情况下改进会聚速度。
89.例如,安全包围区133可提供对来自合作伙伴系统133的敏感数据的安全存储,且为平台100上能够用适合且安全的密钥管理系统对经加密数据进行解密的唯一组件。安全包围区133还可经实施以对经解密数据执行分析并提供输出。输出可在安全包围区133外部传输之前经加密。
90.在一些实施例中,一个或多个数据集可形成合作伙伴系统115中的数据集。数据集可由合作伙伴系统115使用安全包围区133所生成的密钥来加密,接着发射到无尘室300且随后存储于安全数据仓库108中。可由工作者应用程序对经加密数据执行分析。工作者应用程序可在执行所述分析之前使用适合的解密密钥对数据进行解密。一旦进行分析,就可生成输出数据。在一些情况下,输出数据可经加密。无尘室300可为平台100中的唯一实体,其可(i)存储经加密数据和(ii)出于分析的目的进行解密,使得无尘室300外部的人、系统或程序不可访问安全包围区133。
91.安全包围区133保护数据不受管理员影响,因为操作系统/内核系统无法通过使用硬件级别安全性访问经解密包围区内容。
92.图10展示根据一些实施例的安全包围区133的实例存储器结构。仅安全包围区可加载来自dram的受保护存储器区域(所有其它应用程序都会从高速缓存管理器获取高速缓存错误)。
93.dram上的包围区数据经加密且仅在使用特殊指令加载到高速缓存中时经解密,因此保护包围区数据不受管理员、os/内核系统/程序和外部实体影响。对解密密钥的访问受限,并且在一些实施例中,对解密密钥的访问仅可用于安全包围区133内而不可由人类分析员访问。
94.人类分析员可例如通过使用对应密钥对控制与单个数据源相关联的数据的加载/验证/卸载或控制未经训练或经训练机器学习数据模型架构的加载/卸载而与安全包围区133交互。如在本文中所提及,因为安全包围区133经调适成防止其它方访问基础数据集,因此安全包围区133实际上提供对基础数据处理子系统,或在一些实施例中对分离机器学习数据模型架构的黑盒访问。
95.现在参考图2b,无尘室应用程序300可实施于平台100上,且从例如银行系统112和商家系统113等多个合作伙伴接收一个或多个数据集。银行系统112可具有关于消费者拥有的一个或多个金融产品(例如,信用卡)的消费者数据。商家113可具有关于一个或多个交易的消费者数据。每次消费者在商家使用金融产品,例如在购买交易期间,各种数据经发射并存储在银行系统112和商家系统113处。
96.例如,银行可具有关于交易的多个交易数据210a、210b、210c,包含:交易的数据和时间、已发生交易的商家的名字和位置、与商家相关联的商家类别代码(mcc)、银行名字和id、金融产品的遮蔽主账号(pan)、在交易期间记入金融产品的金额,和交易授权码,其为在交易结束时由银行发送的多字符代码。
97.对于另一实例,商家可具有关于交易的多个交易数据230a、230b、230c,例如交易的数据和时间、已发生交易的商家的名字和位置、在交易期间销售的产品或服务的库存单位(sku),和销售的每一sku的数量或金额。
98.在一些情况下,商家113可不具有实体零售商店。例如,商家可为基于网络的零售商且进行在线交易。
99.无尘室300可从银行系统112、商家系统113和其它类型的合作伙伴系统115(例如,并非银行的金融机构)接收各种消费者数据,例如交易数据210a、210b、210c、230a、230b、230c,并可基于消费者数据生成推荐和报价,例如个性化报价。所述推荐和报价可直接发送到合作伙伴和/或消费者以用于在销售点(pos)处或在线兑换。在一些实施例中,推荐和报
价可仅在消费者主动同意并选择加入时生成。如果合作伙伴选择参与并使用平台100提供的技术,那么一般来说,可假设合作伙伴已获得适当的消费者同意来使用其数据通过平台100生成合适的推荐和报价。
100.在一些实施例中,合作伙伴可能需要请求来自一个或多个消费者的同意以经由合作伙伴与消费者的一个或多个通信信道存储其数据。例如,合作伙伴移动或基于网络的应用程序的项目和服务可指示当消费者使用移动或基于网络的应用程序时,则表示同意。在商家商店中,可请求同意并经由支付或pos终端上的提示表示同意。
101.现在参考图3,其展示根据一些实施例的平台100上的无尘室300的另一示意图。无尘室300为容纳于处理器101的内部存储器109中的安全环境。其可包含基于由芯片制造商提供以安全地存储、解密和处理数据的安全处理硬件开发的安全包围区133。
102.无尘室300可接收、存储、加密和解密消费者数据。平台100可以允许合作伙伴系统115共享并将经加密数据发射到无尘室300中而无需涉及人、系统或程序的未授权访问。无尘室300可使用户控制和同意由合作伙伴系统提供的数据,并了解数据将如何用于产生所产生特定结果。无尘室300还允许合作伙伴系统将经加密数据传送到无尘室中而无需涉及人、系统或程序对日期的未授权访问。
103.安全和加密单元125可被配置成验证和证明无尘室300以用于接收和处理消费者数据,验证发送消费者数据的每一合作伙伴经认证,并在适当时加密、解密、清除、正规化和存储消费者数据。
104.推荐引擎120可被配置成基于从合作伙伴系统115接收的消费者数据生成推荐和报价。推荐和报价可为普通的或针对性的。推荐和报价对于一组消费者可为针对性的,或对于特定消费者可为个性化的。在一些实施例中,推荐(分析)引擎可出于个性化服务和相关商家报价的目的对合作伙伴数据进行建模。引擎120可充分利用一个或多个数据模型以为消费者提供批量或触发(例如,基于位置)的个性化报价。
105.在一些实施例中,机器学习算法和sql查询可通过引擎120在包围区环境中实施。例如,使用anjuna security
tm
和h20
tm

106.受众构建器单元121可被配置成针对每一生成的推荐或报价生成消费者列表。消费者列表可包含一个或多个消费者。受众构建器单元121可基于属性,例如年龄、位置、婚姻状况、商家等界定针对性受众。所述属性可与存储于数据存储器108中的数据集中的可用变量相关。
107.客户端身份标识和同意单元122可被配置成验证和确认客户端身份标识和同意。客户端系统可需要在将消费者数据发射到平台100之前表示明确同意。客户端系统可为被配置成发送查询到平台100并从平台接收关于经加密数据的应答的系统。例如,客户端系统可指代经限定(即,具有适当权限)以从平台100搜寻经处理数据的合作伙伴门户116。
108.pos/电子商务兑换单元123可被配置成在销售点(pos)处或在基于在线的电子商务网站处向潜在消费者呈现所生成推荐和报价。所述报价可被配置成用于在消费者在pos或电子商务网站处接受所述报价时立即兑换。
109.对账和结算单元124可被配置成处置一个或多个交易的清算、结算和对账程序。
110.在一些实施例中,通信链路(例如,图3中的链路a)可在任何数据发射之前建立于合作伙伴与平台100之间。通信链路可经端到端加密使得使用所述链路发送或接收的任何
数据均为安全的且无法被第三方拦截。
111.在一些实施例中,合作伙伴在可建立和确保通信链路安全之前需要被认证。可用密钥确保通信链路安全。例如,待使用通信链路发射的所有数据可通过加密算法或程序,例如使用可被称为密钥或访问密钥的加密散列函数加密。
112.此加密散列函数可被称为单向散列函數,即,在数学上来说,其可几乎不可能反转。到加密程序的输入数据可被称为“纯文字”、“输入”或“消息”,而加密程序的输出可被称为“输出”、“散列摘要”、“摘要”或“散列值”。加密可使用适合的散列函數。在一些实施例中,加密散列函数可以是以下各项中的一个:md5、sha1和sha2。
113.在一些实施例中,公用密钥

私用密钥对可用于加密通信链路。即,一旦合作伙伴的身份标识已经验证和认证,安全和加密单元125就可与合作伙伴确立通信链路,并使用通信链路将访问密钥(公用密钥)发送到合作伙伴。
114.合作伙伴可使用访问密钥来加密通信链路上发射的所有数据。当无尘室300经由通信链路接收经加密数据时,对应私用密钥可用于对数据进行解密,使得其可相应地经清除、正规化和处理。
115.安全和加密单元125可在预设持续时间之后针对合作伙伴取消或更新访问密钥。安全和加密单元125还可通过一个或多个合作伙伴或通过管辖权取消或更新访问密钥。在一些实施例中,每当终止或需要建立通信链路时,安全和加密单元125也可取消或更新访问密钥。
116.在一些实施例中,除通信链路的端到端加密之外或作为端到端加密的替代方案,链路加密可用例如密码编译协议,例如传输层安全(tls)或安全套接字层(ssl)应用于通信链路。
117.在一些实施例中,在合作伙伴系统115将任何数据发射到无尘室300之前,合作伙伴可请求验证平台100为可信的且尚未经篡改。这可通过远程鉴证程序来得以实现。远程鉴证程序可以允许平台100认证自身并展现用于运行平台100和无尘室300的硬件和软件为可靠、可信的且尚未经篡改。
118.数据传送协议可应用于合作伙伴系统115与平台100之间。例如,信息交换协议可为类似于tls/ssl的应用层信道加密。在会话开始时,双方彼此认证。密钥交换可用于此程序上且因此建立两个共享密钥,其各自用于从一方到另一方的数据流。
119.密钥交换机制可用于数据加密。例如,可实施secp256r1(prime256v1)椭圆曲线上的迪菲-赫尔曼密钥交换。此密钥交换的结果为256位的共享随机性。此直接共享秘密或其sha256散列可分裂成用于两个流的两个128位aes密钥。
120.数据可通过高级加密标准

伽罗瓦/计数器模式(aes

gcm),以伽罗瓦计数器模式施加aes块密码的认证加密机制来加密。使用认证加密保证了各方之间传达的数据的保密性和可靠性。用于gcm的随机数(也被称作初始化向量)的长度为12字节,起始于全零并在每一消息之后以小字节存储次序的方式递增。在排空2
96
个可能随机数之后,对应加密密钥“失效”且由新近协商的加密密钥替代。在一些实施例中,加密可在排空2
96
个可能随机数之后。
121.认证方法和恶意输入
122.远程鉴证机制可用于认证和确立安全通信信道,其中远程客户端(例如,合作伙伴系统115)可确保其与以包围区模式运行于平台100的可信非受损处理器上的一段特定代码
通信。远程鉴证还可由包围区使用以将公用密钥以不可延展方式发送到客户端。此机制依赖于高度非平凡群组签名,而且基于高度同行评审研究。
123.在一些实施例中,客户端或合作伙伴系统可包含含有用于与平台100建立安全加密信道的模块的python语言指令码,并将输入数据转换成待由无尘室300消耗的典型形式。
124.远程鉴证可构成客户对分析服务的信任的基础。其可以三个方式与密钥交换整合:
125.1.每一客户端执行一次远程鉴证或至少一次。在此情况下,包围区将不具有长期公用密钥,且将diffie hellman消息直接置于远程鉴证的有效负载上。
126.2.包围区提供远程鉴证脚本。远程鉴证本质上为交互式协议,其被设计成仅说服与其交互的检验器。然而,如果所有检验器质询均确定性地使用强散列函數产生,那么协议变为非交互式协议,单个执行可借以说服任何数目的检验器。此变换被称为fiat

shamir启发式。可通过不受信任的包围区主机自身进行因此经变换的协议。包围区通过呈现类似于公用密钥证书的此协议脚本并由嵌入于远程鉴证脚本中的公用密钥对质询和其新diffie hellman消息进行签名来进行认证。
127.3.证书:客户端可将远程鉴证验证委托给第三方并使用其颁发的证书。这不是很有前景的选项。
128.客户端或合作伙伴系统可对平台100进行认证。认证可帮助控制数据流限制,但决不排除将垃圾数据注入到系统中或引发敏感攻击的可能性。这些攻击需要简短解释:可注入垃圾以便停止系统,或故意生成错误分析结果,由此攻击者可受益;以及敏感攻击更为微妙。
129.攻击者可观察分析的最终结果如何相对于其提供的输入的改变而改变,且相较于设计者所预期,经由观察提供给其的输出来推断关于其它方所提供的数据的更多信息。在一些实施例中,为了应对可能的攻击,报价呈现需要谨慎精心地制作且呈现给客户端机构的信息可受限制。
130.在一些实施例中,如openssl等库可在以下考虑因素下予以实施:最佳包围区

设计实践需要简单性和极简主义。因此,可安全地委托给不受信任组件的功能性应如此委托。在ssl的上下文中,将代数对象(例如公用密钥和密文)的本机表示变换为标准表示和策略检查就是此类任务。
131.如先前所论述,所述服务以不同于双向ssl连接的方式对客户端进行认证。即,所实施的ssl规范可以允许模块化地切换到用户界定的认证协议。
132.图4展示说明合作伙伴系统115与安全和加密单元125的信任管理器实用程序127之间的远程鉴证程序的示意图。在步骤410处,证书管理器实用程序128可为每一合作伙伴颁发公用密钥证书129。证书129可用于向信任管理器127证明传入数据为可信的。
133.在步骤420处,在来自合作伙伴系统115的请求后,信任管理器127可通过合作伙伴系统115发起远程鉴证程序以验证平台100的可靠性。来自合作伙伴系统115的请求可包含已经出于远程鉴证的目的生成的随机数n(非可预测随机值)。信任管理器127接收包含随机数n的请求,且继而将随机数和请求发送到平台100上的受信任平台模块(tpm)135以用于密钥鉴证。
134.tpm 135被设计成提供基于硬件的安全性相关功能。tpm 135可包含多个物理安全
机构以使其防篡改,且其它各者不能够篡改tpm 135的功能。
135.tpm密钥鉴证使用对于每一tpm 135是唯一的签注密钥(ek)并在制造时生成。对ek的信任是基于tpm 135中ek的安全且防篡改存储和ek的证书与tpm制造商的证书颁发机构(ca)相关的事实。即,ek的证书可通过tpm制造商的颁发ca以密码方式验证。一个或多个鉴证识别密钥(aik)可通过tpm 135生成并由ek签名。aik可通过受信任证书颁发机构验证。
136.在一些实施例中,从信任管理器127到tpm 135的请求包含平台100的一个或多个当前平台配置寄存器(pcr)值。请求可任选地包含tpm 135对pcr值进行签名所需的tpm版本号或任何其它信息。pcr值主要用于存储系统测量结果而无法任意重写。pcr值可为散列值,其在运算上不可能伪造。一些pcr值可重设为默认值,这将需要适当权限。
137.tpm 135从信任管理器127接收请求并继续用鉴证识别密钥(aik)对pcr值进行签名,接着将包含随机数、pcr值和aik的经签名响应发送回到信任管理器127。信任管理器127接着将经签名响应发送到合作伙伴系统115,其可具有安装于其上以用于分析和验证经签名响应的合作伙伴门户116。
138.合作伙伴系统115接收经签名响应,通过验证pcr值和aik签名为准确的而验证经签名数据为可靠且可信的。例如,合作伙伴系统115可经由受信任证书颁发机构验证aik为有效的。对于另一实例,合作伙伴系统115可通过比较所述值与存储在将pcr值映射到信任等级的数据库中的值而验证pcr值为可信的。合作伙伴系统115可通过检查经签名响应中的随机数对应于合作伙伴在其初始请求中所发送以用于鉴证的随机数而进一步验证pcr值为当前的。
139.在一些实施例中,替代pcr值,可使用另一散列值,例如平台100的软件代码的散列值,其中散列代码表示平台100的当前状态。
140.一旦基于经签名响应,合作伙伴系统115满足平台100上运行的无尘室300为可靠且可信的,在步骤430处就可发生ssl/tls握手以便确立安全通信信道。
141.在步骤440处,经加密数据可使用安全通信信道从合作伙伴系统115发射到平台100。在一些实施例中,公用密钥

私用密钥对可用于加密数据。如本文中所描述,安全和加密单元125可使用通信信道将访问密钥(公用密钥)发送到合作伙伴系统115。合作伙伴可使用访问密钥加密通信信道上发射的所有数据。当无尘室300经由通信信道接收经加密数据时,对应私用密钥可用于对数据进行解密,使得其可相应地经清除、正规化和处理。合作伙伴门户116(参见图5)可将指配给合作伙伴系统115的一个或多个公用密钥存储于合作伙伴密钥库中。无尘室300可将对应于每一公用密钥的私用密钥存储于密钥库130中。密钥库130可存储多个私用密钥,其各自对应于指配给合作伙伴的公用密钥。合作伙伴系统115可指配一个或多个公用密钥以用于加密数据。
142.在一些实施例中,因为任意长度字符串可使得经加密数据可识别,因此数据集在发射之前可经预处理。例如,一个或多个数据字符串可经填充到特定长度,例如系统所允许的最大长度。在其它实施例中,数据字符串可分裂成预定义结构,且每一原子组件在发射之前可经散列或加密。
143.图14展示根据一些实施例的用于处理安全交易数据的实例无尘室300的另一示意图。无尘室300可包含被配置成将一个或多个包围区的公用密钥发送到合作伙伴门户116以用于在合作伙伴门户处加密数据的数据管理器134。包围区133a、133b、133n可被称为目的
地包围区,因为每一包围区可由数据管理器134选择为来自合作伙伴门户116的经加密数据的目的地。文件系统,例如hadoop文件系统(hdfs)可包含于无尘室中以管理包围区133a、133b、133n所存储的经加密数据。
144.在一些实施例中,合作伙伴门户116可经由tls或vpn发起与数据管理器134的通信信道215以用于将数据发送到无尘室300。合作伙伴门户116可首先将指示数据待发射到无尘室的请求发射到数据管理器134。在一些实施例中,请求可包含表示待发射的数据量的信息。基于数据请求,数据管理器134可选择一个或多个目的地包围区133a、133b、133n以用于从合作伙伴门户116接收传入数据。
145.在一些实施例中,数据管理器134可基于每一包围区待获取的数据量而选择目的地包围区,使得每一所选目的地包围区经指定以经由此通信会话从合作伙伴门户116接收特定量的数据。另外,数据管理器134可针对目的地包围区中的每一个选择公用密钥并将一个或多个公用密钥发送到合作伙伴门户116,所述一个或多个公用密钥各自对应于所选目的地包围区,因此合作伙伴门户可在经由通信信道215发射经加密数据之前使用适当的公用密钥加密原始数据。例如,数据管理器134可发送表示待通过每一目的地包围区接收的数据量的上限和对应公用密钥(例如,“maxsize,publickeyid”)的信息,因此合作伙伴门户116可针对每一目的地包围区以符合目的地包围区的要求的方式加密适当量的传入数据。
146.一旦合作伙伴门户116从数据管理器134接收表示数据量、一个或多个目的地包围区和一个或多个公用密钥的信息,合作伙伴门户116就可继续对原始数据进行加密。例如,合作伙伴门户116可针对每一目的地包围区随机生成256位数据加密密钥(dek)并使用aes

256cbc或gcm用相应dek加密一些原始数据。合作伙伴门户116可基于目的地包围区的数目和公用密钥的对应数目生成dek。可针对每一目的地包围区且因此针对与目的地包围区相关联的每一公用密钥生成不同dek。合作伙伴门户116可接着基于生成dek的对应目的地包围区使用适合的公用密钥加密dek中的每一个。接下来,合作伙伴门户116可经由通信信道215将经加密数据以及经加密密钥(例如,经加密dek)发送到数据管理器134。
147.在一些实施例中,通信信道215可为vpn通信信道,在此情况下,合作伙伴门户116和无尘室300均已验证为可信的。
148.在一些实施例中,可在tls下建立和维持通信信道215,类似于合作伙伴系统115与安全和加密单元125的信任管理器实用程序127之间的tls信道,如上文相对于图4所描述。
149.客户端系统119可将查询118提交到无尘室300上的资源管理器1100。所述查询可为经由通信会话216发送的数据查询。在一些实施例中,客户端系统119必须为对于无尘室300经授权的一方以便发送数据查询;为此目的,资源管理器1100可被配置成与客户端系统交互以确保客户端系统为经授权方且对于所述查询具有适当权限。资源管理器1100可响应于所述查询将应答传回到客户端系统,一旦已经验证客户端系统对于所述查询具有适当权限。
150.为了发送数据查询,客户端系统可发起与资源管理器1100的经认证tls通信会话216。通信会话216可以类似于合作伙伴系统115与安全和加密单元125的信任管理器实用程序127之间的tls信道的方式建立和维持,如上文相对于图4所描述。
151.经由tls通信协议,资源管理器1100可验证客户端系统对于无尘室300为经授权方。一旦客户端系统已经验证为经授权方,资源管理器1100就可发射并在客户端系统处显
示客户端系统能够访问的一个或多个数据分析。客户端系统可从所显示的数据分析选项选择一个或多个选项。数据分析中的一些可需要客户端系统可被配置成供应的额外信息。客户端系统可接着将完整数据查询发送到资源管理器1100。
152.资源管理器1100可从客户端系统接收数据查询,并继续将查询发送到应用程序管理器1124以便基于来自客户端系统的数据查询启动数据分析。应用程序管理器1124可为被配置成生成一个或多个包围区133a、133b、133n以便使用包围区对经加密数据进行分析的应用程序。在一些实施例中,一个或多个工作者节点可用于执行所需的数据分析。
153.在一些实施例中,可以开放一个或多个数据分析操作以用于检测和/或通过参与无尘室300中的所有经授权方进行签名以向经授权方确保无尘室为安全且完好的。
154.在一些实施例中,包围区133a、133b、133n可在存储于其上的数据/文档之间进行经认证和加密的通信。例如,在一个或多个包围区对133a、133b、133n之间,可建立tls通信信道以确保数据在包围区之间的安全通信和交换。
155.图15说明根据一些实施例的包含用于处理安全交易数据的无尘室300的分布式系统的示意图。无尘室300可包含被配置成将一个或多个包围区的公用密钥发送到合作伙伴门户116以用于在合作伙伴门户处加密数据的数据管理器134。包围区133a、133b、133n可被称为目的地包围区,因为每一包围区可由数据管理器134选择为来自合作伙伴门户116的经加密数据的目的地。文件系统,例如hadoop文件系统(hdfs)可包含于无尘室中以管理包围区133a、133b、133n所存储的经加密数据。
156.在一些实施例中,分布式模型可使用无尘室300实施,其中一个或多个合作伙伴门户116可维持其相应数据,使用防火墙后方的连接到合作伙伴门户116的数据引擎执行数据分析中的一些或全部,且仅将必要的分析结果,例如元数据发送到无尘室300以供进一步处理。
157.类似于图14中说明的来自系统的数据查询118,来自客户端系统119的查询请求118可发送到资源管理器1100。查询请求118可包含对于数据分析的查询。
158.为了发送数据查询118,客户端系统119可发起与资源管理器1100的经认证tls通信会话216。通信会话216可以类似于合作伙伴系统115与安全和加密单元125的信任管理器实用程序127之间的tls信道的方式建立和维持,如上文相对于图4所描述。经由tls通信协议,资源管理器1100可验证客户端系统119对于无尘室300为经授权方。一旦客户端系统119已经验证为经授权方,资源管理器1100就可发射并在客户端系统处显示客户端系统能够访问的一个或多个数据分析。客户端系统可从所显示的数据分析选项选择一个或多个选项。数据分析中的一些可需要客户端系统119可被配置成供应的额外信息。客户端系统119可接着将完整数据查询发送到资源管理器1100。
159.查询请求118可接着发送到应用程序管理器1124,其随后可基于数据查询118启动数据分析。应用程序管理器1124可确定基于数据查询118所需的数据分析。应用程序管理器还可确定执行对数据查询118作出响应需要的数据分析所需的数据的类型和来源。在一些实施例中,应用程序管理器1124可检索或接收将每一合作伙伴映射到其相应数据的表格。应用程序管理器可进一步针对每一合作伙伴生成详细指令,包含所需的数据分析的类型和来自每一合作伙伴的所需的数据的类型。所述指令可经由安全信道(例如,tls)发送到数据管理器134,其可接着经由tls或vpn连接215将所述指令发送到一个或多个合作伙伴门户
116。
160.在接收到所述指令后,每一合作伙伴门户116可从数据库(未说明)检索必要且适合的数据,所述数据库可为合作伙伴门户116的部分或连接到合作伙伴门户。所述合作伙伴门户可接着基于来自数据管理器的所述指令在数据引擎,例如合作伙伴分析引擎117上执行适当的数据分析。合作伙伴分析引擎117可为合作伙伴门户116的部分或连接到合作伙伴门户。在一些实施例中,合作伙伴分析引擎117可为由无尘室300提供和配置但与合作伙伴门户116安装在相同物理部位处的数据引擎。合作伙伴分析引擎117可安装在合作伙伴门户116的防火墙后方,使得为了使数据管理器将指令发送到引擎117,需要建立tls或vpn连接215,且在一些实施例中,需要进行加密以用于发射数据。
161.合作伙伴分析引擎117可执行数据管理器所需的适当的数据分析,生成数据输出或数据结果,其可接着经加密并发射到数据管理器134。在来自应用程序管理器的指令后,数据管理器可接着将经加密数据结果发送到一个或多个包围区133a、133b、133n。
162.在一些实施例中,合作伙伴分析引擎117可首先将数据结果发送到合作伙伴门户116,其可接着经由数据管理器134将数据结果发送到无尘室300。
163.在一些实施例中,数据管理器134可基于每一包围区待获取的数据量而选择目的地包围区,使得每一所选目的地包围区经指定以经由此通信会话从合作伙伴门户116或合作伙伴分析引擎117接收特定量的数据。另外,数据管理器134可针对目的地包围区中的每一个选择公用密钥并将一个或多个公用密钥发送到合作伙伴门户116,所述一个或多个公用密钥各自对应于所选目的地包围区,因此合作伙伴门户可在经由通信信道215发射经加密数据之前使用适当的公用密钥加密原始数据结果。例如,数据管理器134可发送表示待通过每一目的地包围区接收的数据量的上限和对应公用密钥(例如,“maxsize,publickeyid”)的信息,因此合作伙伴门户116或合作伙伴分析引擎117可针对每一目的地包围区以符合目的地包围区的要求的方式加密适当量的传入数据。一旦合作伙伴门户116或合作伙伴分析引擎117从数据管理器134接收表示数据量、一个或多个目的地包围区和一个或多个公用密钥的信息,合作伙伴门户116或合作伙伴分析引擎117就可继续对原始数据结果进行加密并经由连接215将经加密数据结果发送到数据管理器134。
164.在一些实施例中,通信信道215可为vpn通信信道,在此情况下,合作伙伴门户116、合作伙伴分析引擎117和无尘室300均已验证为可信的。
165.在一些实施例中,可在tls下建立和维持通信信道215,类似于合作伙伴系统115与安全和加密单元125的信任管理器实用程序127之间的tls信道,如上文相对于图4所描述。
166.在一些实施例中,发送回到数据管理器134的数据结果可包含元数据或其它类型的数据。在一些实施例中,可需要进一步数据分析以基于从一个或多个合作伙伴门户116和/或合作伙伴分析引擎117发送的数据结果完成数据查询。应用程序管理器1124可指示适当数目的安全包围区133a、133b、133n基于从合作伙伴发送的数据结果完成分析。在一些实施例中,应用程序管理器1124可为被配置成生成一个或多个包围区133a、133b、133n以便使用所述包围区对经加密数据进行分析的应用程序。在一些实施例中,一个或多个工作者节点可用于执行所需的数据分析。
167.最终数据结果可由无尘室300生成,并传回到客户端系统119,其使用可为经加密信道的安全通信信道216经由资源管理器1100发送原始数据查询118。
168.在一些实施例中,替代将最终数据结果发射回到客户端系统,无尘室300可替代地代表客户端系统基于最终数据结果执行动作。
169.在一些实施例中,可以开放一个或多个数据分析操作以用于检测和/或通过参与无尘室300中的所有经授权方进行签名以向经授权方确保无尘室为安全且完好的。
170.在一些实施例中,包围区133a、133b、133n可在存储于其上的数据/文档之间进行经认证和加密的通信。例如,在一个或多个包围区对133a、133b、133n之间,可建立tls通信信道以确保数据在包围区之间的安全通信和交换。
171.在一个极其简单的实例中,每一合作伙伴116可各自具有包含数字集的数据集,且客户端发送请求所有合作伙伴当中的最小数字的数据查询。应用程序管理器可指示每一合作伙伴使用合作伙伴分析引擎117对其自身的数据进行其自身的分析,合作伙伴分析引擎基于属于相应合作伙伴的数据集每一合作伙伴生成相应最小数字。此结果可接着经加密并发送到无尘室中的应用程序管理器,其接着进行最终数据分析,比较来自所有合作伙伴的相应数据结果,并生成包含每一合作伙伴发送的所有相应最小数字当中的最小数字的最终结果。在此情况下,无尘室并不访问全部合作伙伴数据,而是基于每一合作伙伴具有的数据集仅访问元数据或数据输出。
172.在另一实例中,客户端系统119可发送数据查询118以找出在过去三个月在商品,例如巧克力上已花费最多金额的前一百名消费者。资源管理器1100可接收此查询、转发到应用程序管理器1124,并针对每一合作伙伴生成关于数据分析的适合的指令,所述应用程序管理器接着确定特定合作伙伴门户以用于执行数据查询。应用程序管理器可基于内部或外部知识数据库选择已知具有可能会在巧克力上花钱的大量消费者的一个或多个合作伙伴。例如,应用程序管理器可选择为巧克力专家或基于现有销售信息售出大量巧克力的供应商。
173.关于数据分析的所述指令(其可包含所需的数据的类型以及所需的数据分析的类型以及所选合作伙伴列表)可经由tls连接215发送到数据管理器134,且数据管理器134可经由与用于数据加密的公用/私用密钥的集合的tls或vpn连接将每一相应指令发送到每一所选合作伙伴。在一些实施例中,所述指令可在发射到每一合作伙伴或每一合作伙伴分析引擎之前经加密。
174.每一合作伙伴分析引擎117可从数据管理器134接收所述指令,且继续根据所接收指令执行所请求的数据分析。合作伙伴分析引擎可在需要时从每一合作伙伴门户检索适当的数据,以便执行所述指令中所指定的数据分析。
175.来自每一合作伙伴分析引擎117的数据结果可接着发送到相应合作伙伴门户116以供加密和发射到无尘室300,其可执行额外数据分析以生成表示在过去三个月在巧克力上已花费最多金额的前一百名消费者的最终结果。例如,来自相应合作伙伴116的数据结果可包含在过去三个月在巧克力上已花费最多金额的前五十名消费者以及每一消费者花费的相应金额。
176.来自另一相应合作伙伴116的数据结果可包含在过去三个月在巧克力上已花费最多金额的前x名消费者(例如,三十名或一百名),以及每一消费者花费的相应金额。无尘室300可接着在数据结果中发送的所有合作伙伴当中确定在过去三个月在巧克力上已花费最多金额的前一百名消费者。
177.在一些实施例中,无尘室300可经由连接216将此数据结果发送回到客户端系统119。在其它实施例中,无尘室300可阻止来自客户端系统119的此数据结果,且替代地将巧克力优惠券发送到此消费者列表,所述消费者可对使用优惠券或促销优惠购买更多巧克力感兴趣。
178.现在参考图5,其展示无尘室300的实例安全和加密单元125与数据存储器108。在一些实施例中,每一合作伙伴115允许最小数据集存储于无尘室300的数据存储器108中。同时,合作伙伴均不可访问或查看聚合的数据,即使合作伙伴可请求经由门户116可用的一个或多个动作。例如,合作伙伴115可请求平台100针对新报价以特定用户群组为目标。对于另一实例,合作伙伴可请求平台100分析对于特定人口统计用户群组,消费趋向如何。
179.在一些实施例中,合作伙伴系统115可包含合作伙伴门户116。合作伙伴门户116可被配置成使用公用密钥加密消费者数据并将经加密数据发射到平台100。合作伙伴门户116可以允许合作伙伴,例如银行和商家生成和/或存储密钥和证书,并与无尘室api对话。合作伙伴系统115可在将消费者数据提供到无尘室300时提供所需的json数据字段。
180.一旦经加密数据从合作伙伴门户116到达平台100,其就会经过数据管线api,并接着经处理以供存储于数据存储器108中。加密和分析单元131可在一个或多个安全包围区133中具有多个工作者应用程序或节点,其各自处于相应且单独的安全包围区133中,以用于处理传入消费者数据。在一些实施例中,每一工作者应用程序或节点可处理特定针对于一个合作伙伴的消费者数据。即,每一合作伙伴在无尘室300中的一个或多个安全包围区133中可具有处理来自所述特定合作伙伴的消费者数据的专用工作者节点132a、132b。
181.安全包围区133中的单个工作者应用程序或节点132a、132b可对存储于安全数据仓库108中的数据进行解密和分析。每一工作者节点132a、132b可包含合作伙伴配置单元、数据模型单元、数据加密/解密单元和数据分析单元。合作伙伴配置单元可包含特定针对于合作伙伴的信息,例如,合作伙伴配置单元可提供将来自合作伙伴的传入数据映射到相应数据属性、数据类型、数据字段和/或数据大小的数据架构模板。
182.数据加密单元可被配置成基于加密技术或算法将一个或多个数据集加密成经加密内容。在一些实施例中,加密单元确定、检索或生成适合的密钥以加密一个或多个数据集,以便产生经加密数据元素。用于加密的每一密钥可存储于密钥库130中。
183.数据解密单元可被配置成基于加密技术或算法以及密钥将一个或多个经加密数据集解密成纯文字。在一些实施例中,数据解密单元确定、检索或生成适合的密钥以解密一个或多个经加密数据集,以便产生纯文字。
184.数据分析单元可被配置成对经解密数据执行分析。
185.在一些实施例中,所需的数据字段或属性的最小集合需要由每一合作伙伴提供。例如,最小数据集可包含交易的时间和数据、商家名、银行名和id、mcc、认证代码、消费者名字(如果已知),和遮蔽pan。通过合作伙伴发送的任何额外数据可经存储以供未来使用。
186.合作伙伴系统116可分批地发射消费者数据,例如,大量数据可在合作伙伴首先在无尘室300注册时经由安全通信信道以一批或多批推送到平台100。常常,来自合作伙伴的初始批次的数据可包含横跨多日、多个月或多年的数据,其可经分析以得到对消费者行为的宝贵洞察。数据分批处理还可在被平台100视为适合的时或在设定间隔期间(例如,每月)进行。
187.合作伙伴还可在发生交易时(例如,当消费者在商店进行购买时)实时或近实时地发射消费者数据。
188.数据模型单元被配置成在数据已经解密之后进行数据建模和数据正规化步骤。数据模型单元可每隔一段时间,例如每隔x小时或x天调度数据正规化作业,以将新的经解密数据导入模型。数据模型单元还可调度模型训练作业,每当数据正规化作业修改正规化数据时,以便精简数据模型。
189.在一些实施例中,数据存储器108可按需要为可扩展的。
190.图6为展示无尘室300的各种组件的另一示意图。在一些实施例中,无尘室300可包含合作伙伴档案140和用户档案145。用户可指代消费者。合作伙伴档案140可包含包含合作伙伴的注册细节的合作伙伴注册表。用户档案145可包含包含用户的注册细节的用户注册表。每一合作伙伴可具有合作伙伴档案140且每一用户可具有用户档案145。每一合作伙伴和用户可具有数据仓库中数据模型单元所确定的其自身的相应数据模型。
191.图7展示用于数据集群部署和管理的数据建模单元和数据存储单元108的示意图。如可看出,数据模型训练器、数据模型和加密/解密密钥出于额外安全性可存储于安全包围区中。所接收消费者数据可经解密且存储为原始数据,其可接着经正规化且存储为正规化数据。正规化数据可发送到安全包围区133内的模型训练器并且进一步由模型训练器处理。因为不同合作伙伴可具有不同数据集,因此数据集需要在经聚合和分析之前经正规化。
192.在一些实施例中,系统可将交易和sku数据映射到(i)特定消费者;和/或(ii)规定的分段(例如,邮政编码、商家、当前位置)。例如,消费者数据可基于一个或多个数据字段映射于银行系统112与商家系统113之间。例如,授权码和/或mcc可用于使来自银行的交易的交易数据与来自商家的同一交易的交易数据相关,因为mcc和授权码对于同一交易在银行与商家之间为共用的。授权码的安全性问题可为观察混排运算的数据流会渗漏关于授权码的信息。在一些实施例中,节点可被配置成如无尘室300所确定为适合的或基于每一项作业偶尔使二进位分配随机化。
193.在一些实施例中,节点可被配置成混排如例如图9中所说明的传入授权码的次序,图9展示在作业开始时通过驱动节点内的受保护组件分布于工作者当中的机密作业密钥。
194.对于另一实例,如果金融产品的pan可用,那么交易可使用卡pan映射于银行与商家之间。然而,尽管授权码可链接回到pan,但归因于pci遵从性,pan不大可能被捕获。
195.另外,启发法可基于位置和时间信息使用以进一步确认交易数据的链接并使错误最小化。
196.返回参考图7,“存储密钥”可用于加密并确保存储于本地存储器上的数据安全。存储密钥可使用包围区的密封密钥存储于永久性存储器中。加密密钥的缺失可引起故障。“作业随机化密钥”为通过驱动节点发布的随机数,用于混淆工作者节点当中的作业细分。“通信密钥”通过每一其它网络节点维持。节点通过其公用密钥识别、由信任管理器127认证。
197.图8概述数据集群如何工作,无关于所应用分析的类型(正规化、模型训练和模型的应用)。平台100可从庞大的输入数据库中生成洞察。此可实现于一个或多个机器上。在一些实施例中,可实施hadoop框架以用于管理和对商品计算机的较大集群执行大数据分析。集群资源管理的任务基本上独立于数据。工作者包围区可嵌入于由例如hadoopyarn或hadoop堆栈的另一组件等资源管理应用程序管理的集群内。在一些情况下,数据集的量和
大小可较大(例如,超过256mb),这可需要多个安全包围区133以供分布式存储和处理。
198.如图11a中所示,资源管理应用程序管理资源并跟踪工作者节点进行的作业。资源管理应用程序可为用户提供控制使用节点的架构特征、访问本地文件系统并按需要加密消息的选项。在一些实施例中,资源管理应用程序可使用yarn
tm
实施。资源管理应用程序可包含或与各种组件相关,例如客户端、主应用程序和工作者应用程序(其也可被称作工作者节点或工作者)。
199.客户端或客户端系统或应用程序可提交对于数据处理或数据分析的请求。在一些实施例中,客户端系统可为外部的一方,例如合作伙伴系统115或平台100或无尘室300内的组件。客户端还可将整个输入文件提交到例如hdfs等数据库中。
200.主应用程序(application master)(或“主应用程序(master application)”)协商资源,请求所产生的工作者容器并跟踪其作业进度。主应用程序请求资源管理器(参见例如图11a)以产生工作者容器来执行大量分析。其还发送整个输入文件和关于文件的哪一部分要处理的方向。在已完成通知所有工作者之后,其组合分析的部分结果。
201.工作者应用程序执行数据分析。可存在工作者应用程序的多个例子。每一工作者可在安全包围区内,或含有安全包围区,且所述包围区可接收输入文件和其应进行处理的间隔。在安全包围区内部进行分析,且将结果写回到hdfs中以供主应用程序进行聚合。
202.安全包围区外部的数据的任何表示可经加密。此包含工作者节点当中经混排的输入或中间数据的任何分区。节点在共享关键数据之前还检查彼此的可靠性。
203.返回参考图8,在一些实施例中,可实施集群管理子系统以供安全包围区分配工作负载来分析各种数据集。集群管理子系统可包含主应用程序(或主节点)和一个或多个工作者应用程序(或工作者节点)。集群应用系统可包含yarn资源管理器应用程序,其管理并将作业分配到多个包围区中的多个工作者节点,所述工作者节点可解密和处理数据。工作者应用程序还可包含spark或h2o执行器。未修改的分布式数据可存储于数据库,例如hadoop分布式文件系统(hdfs)中。
204.在一些实施例中,每一工作者节点可获取数据集分区的最小值并在完成后将局部最小值提交到主应用程序。主应用程序接着将全局最小值计算为所有局部最小值的最小值。此程序可指示分布式应用程序的哪些组件需要查看未加密的数据。显而易见,资源管理子系统自身的组件无需如此。在所述组件当中,对于资源管理子系统,工作者和主应用程序可查看数据,这可实施于安全包围区内。
205.安全包围区,例如sgx包围区封装为运行时间库(窗口和因此unix系统中的dll)。其意图由另一本机应用程序托管。此应用程序继而可为经由jni2桥接件连接回到主应用程序的共享库自身或为由java应用程序产生的子程序。
206.可实施数据库管理系统以简化并使集群内较大文件的存储效率更高。其处置复写(出于故障恢复性)、负载平衡和其它应用程序非相依任务。
207.安全包围区133中的单个工作者应用程序(图8中也被称作“工作者节点”)可与资源管理子系统或例如yarn等应用程序整合。工作者应用程序可解密和分析存储于安全数据仓库108中的数据。在一些实施例中,可实施资源管理应用程序(例如,yarn)以管理多个cpu。集群管理应用程序可跨越多个安全包围区管理多个工作者应用程序。集群管理应用程序还可处置作业调度,如图11a和图11b中所示。
208.在一些实施例中,在安全包围区133之间,出于额外安全性可存在一个或多个认证步骤。
209.在一些实施例中,安全包围区内的工作者应用程序可使用合适的编程语言,例如c++实施。在一些实施例中,yarn和相关联管理功能可以合适的编程语言,例如java
tm
实施。在一些实施例中,分析引擎和分析模块可以合适的编程语言,例如python或java实施。
210.驻留于不受信任环境中的受信任工作者应用程序可需要彼此共享机密数据并共享作业随机化,且如果未恰当地管理,那么会将客户数据置于风险中。此外,出于客户便利性,系统应设计有一个入口点,意味着客户端必须验证分布式系统的仅一个组件且由此获得对整个解决方案的信任度,这可通过如上文所描述的远程鉴证实现。
211.图11a展示实例资源管理结构。资源管理子系统或应用程序可使用yarn配置和实施,包含资源管理器1100和一个或多个节点管理器1121、1131、1151。一旦作业请求由资源管理器1100例如从客户端系统119(例如,合作伙伴系统115或平台100中的不同组件)接收,资源管理器1100就可将资源请求发送到容器1120内的节点管理器1121,这可生成主应用程序1123。接下来,主应用程序1123可将容器请求传回到资源管理器1100并在单独容器1130、1150内产生工作者节点132a、132b以执行任务。
212.图11b展示根据一些实施例的资源管理数据程序的实例示意图。作为第一步骤,客户端系统119可将作业提交到yarn集群,从而为主应用程序1123创建容器。接下来,主应用程序1123产生若干工作者节点或容器132a、132b、132c,其各自具有包围区。容器132a、132b、132c接着从数据库(例如,hdfs)读取经编码数据并将数据发送到包围区。在包围区内,数据经解码、经处理、重新编码,且接着返回到外部容器。将经编码结果写回到hdfs,其中客户端系统119可对所述结果进行检索。每一工作者节点可执行特定任务。其中的一些或全部可执行不同或相同作业。在一些实施例中,需要客户端在每一作业开始时提交整个输入文件。数据集可比任何特定作业长且可已经置于集群上。
213.在一些实施例中,工作者节点可了解其已将输入文件的哪些分区存储在本地并报告到主应用程序。主应用程序可接着作出关于分区处理到工作者的分配的知情决策。
214.在一些实施例中,可实施容器之间的经加密信道以有助于复杂的作业。hdfs可设置为以各种方式镜射数据以便改进效率,同时允许系统从故障恢复。在一些情况下,包围区可暂时保存其相应进度并在需要中断的情况下恢复。
215.经由hdfs传递短暂消息可非常低效。在一些实施例中,节点可在彼此之间确立网络连接。
216.数据集在存储器中可经加密。在一些实施例中,所有工作者节点可共享单个加密密钥。在其它实施例中,每一节点可具有其自身的加密密钥。前者具有简单性的优点,因为文件的全面查看为可能的。后者提供更好的安全性保证,因为攻击者成功破坏一个节点将节点暴露整个数据集。
217.如果部分结果聚合于主应用程序中,那么所述结果可存储于安全包围区中。在一些实施例中,所有数据分析可委托给工作者节点且仅作业元数据可暴露于主应用程序。
218.在一些实施例中,平台100中的无尘室300可跨越集群中的许多机器处理大批量数据。实例分布式处理数据库设置可使用hadoop实施。另外,hadoop分布式文件系统(hdfs)提供在节点当中分配数据的简单方式。spark(分布式数据科学框架)也可与hadoop一起实施。
例如,主应用程序和一个或多个工作者应用程序可各自包含机器学习/数据分析组件,例如spark或h2o驱动器或执行器。驱动器应用程序可启动用于各种程序,例如密钥值存储的执行器应用程序和执行器内部的存储器管理器。
219.现在参考图16,其展示使用yarn作为资源管理器实施数据分析的实例spark框架。apache spark
tm
为开源分布式通用集群计算框架,其可包含用于大规模数据处理的分析引擎。在此实例实施例中,客户端系统119可具有所安装的spark客户端。主应用程序1123可具有经安装以协调资源应用的驱动器应用程序1125。驱动器应用程序1125可为运行应用程序的main()函数并创建sparkcontext对象以协调资源来执行各种数据分析任务的程序。
220.可充当工作者应用程序或工作者daeman的yarn容器可协调一个机器上的资源分配。每一yarn容器可包含执行器1127a、1127b,其可执行spark任务或应用程序。一般来说,执行器可为经启动用于工作者节点或yarn容器上的应用程序的实施程序,其进行任务并跨越任务将数据保存在存储器或磁盘存储器内。每一应用程序可具有其自身的执行器。
221.在一些实施例中,驱动器应用程序1125可运行于单独线程上的主应用程序1123上。
222.在一些实施例中,spark应用程序可作为集群上的独立程序集运行,由驱动器应用程序1125中的sparkcontext对象协调。例如,为了运行于集群上,sparkcontext对象可连接到包含yarn的若干类型的集群管理器,其可跨越应用程序分配资源。一旦经连接,spark就获取集群中节点上的执行器,其为进行计算并存储无尘室300的数据的程序。
223.接下来,spark应用程序可将应用程序代码(由被传递到sparkcontext对象的jar或python文件界定)发送到执行器。最后,sparkcontext对象可将任务发送到执行器1127a、1127b来进行。
224.在一些实施例中,linux内核库(lkl)和musl库可用于在spark框架下实施驱动器和执行器应用程序。使用lkl写入的程序代码可运行与musl相关的大多数应用程序,包含经写入用于alpine linux(当其使用musl替代libc时)sgx lkl的大多数封装。尽管仅提供gcc交叉编译指令码,但还可通过修改c指令码以添加来自alpine g++封装的c++或仅对alpine linux进行编译来编译g++应用程序。
225.然而,对使用lkl的实施存在一些限制。例如,大多数应用程序仅为单进程应用程序,但多线程为可能的。可存在明显页面错误额外开销,因为存储器密集型应用程序为缓慢的。另外,因为鉴证程序需要建立信任链,因此鉴证程序可需要在lkl包围区的初始状态期间执行的第一鉴证,接着使用所述包围区验证虚拟磁盘图像的散列。
226.根据一些实施例,为了克服上述限制,无尘室300可具有经修改spark框架。spark和hadoop组合可需要一些修改,例如:
227.·
移除datatimeutils.scala
228.·
移除或避开使用fork()(使用若干次以检查os特征或发现用户所处群组)
229.·
提供自定义群组后端以避免使用默认值:shellbasedunixgroupsmapping.java
230.这些实例修改可获取以本地(单节点)独立模式工作的spark框架。
231.在一些实施例中,当无尘室300接收一定量的经加密数据时,其可将数据分配到主应用程序1127以供数据分析。驱动器应用程序1125可接收经加密数据并将数据发射到一个或多个执行器1127a、1127b以执行一个或多个数据分析任务。
232.在每一执行器内,单独执行程序可在敏感数据(其需要在受信任安全环境中处理)与不敏感数据(其可在不受信任环境中计算)之间进行。现在参考图17,其展示spark框架下的实例执行器结构。执行器1127可具有三个组件,包含:不受信任环境,例如不受信任java虚拟机(jvm)1128;受信任环境,例如受信任jvm 1129;和共享存储器2003。
233.不受信任jvm 1128可被配置成对不含有任何客户或金融数据的不敏感数据,例如元数据执行数据分析。不受信任jvm 1128可具有块管理器,其可为数据块的密钥值存储器(块存储器)。块管理器可充当每一执行器中的本地高速缓冲存储器,并提供接口以用于使用各种存储,即存储器、磁盘和堆外存储本地地且远端地上载和获取块。不受信任jvm 128可包含sparkenv 2004,其可为具有彼此交互以确立用于spark应用程序的分布式计算平台的spark公共服务的spark运行时环境。不受信任jvm内的虚设任务运行器2006可为单个任务的执行线程,其可在请求执行器执行任务时创建。虚设任务运行器2006可仅对并不需要在受信任环境内处理的不敏感数据执行任务。
234.受信任jvm 1129可包含被配置成对敏感数据执行任务的分离任务运行器2007,所述敏感数据可在数据处理之前经解密。
235.共享存储器2003可包含环形缓冲器消息队列和共享对象区/场所。lkl库提供纯文字共享存储器文件。在一些实施例中,用于在共享存储器内通信的方法使用环形缓冲器消息队列。实施环形缓冲器可需要能够访问锁定结构。难以实施pthread共享互斥体,因为这些互斥体由内核对象支持,且主机和lkl容器可具有单独内核。替代地,原子操作(自旋锁)可实施为由硬件操作支持的这些操作。
236.根据本文中所描述的一些实施例,下文为共享存储器环形缓冲器的实例代码:
[0237][0238]
在一些实施例中,存储器映射文件和原子操作更高效地以c++实施(而非java或scala)。例如,可实施jni桥和包装器类以从java调用本机代码。在其它实施例中,可使用jna但其调用fork()。下文为环形缓冲器实施的程序代码的实例框:
[0239][0240]
图18展示根据一些实施例的在spark框架下与驱动器应用程序1125共同操作的实例执行器结构1127。驱动器1125可包含spark运行时环境sparkenv 2001以及用于经解密数据的数据存储区域2002,经解密数据可包含不敏感信息,例如元数据(例如,文件目录信息)。
[0241]
根据本文中所描述的一些实施例,下文为实例测试驱动器应用程序1125:
[0242][0243]
执行器1127包含不受信任的jvm 1128、共享存储器通信2003和受信任的jvm 1129。不受信任的jvm 1128包含sparkenv 2004、用于经加密数据的数据存储区域2005,和虚设任务运行器2006。经加密数据可以加密形式从驱动器1125发送,并以加密形式经由共享存储器通信2003发送到受信任的jvm 1129。一旦经加密数据到达受信任的jvm 1129,其就可经解密并存储于用于经解密数据的数据存储器2008中,且随后可在受信任的jvm 1129内由分离任务运行器2007处理。
[0244]
图19为根据一些实施例的机器学习架构1900和数据流的实例示意框图。展示虚拟无尘室平台,其针对于用于安全处理的机构。从包含商家、银行等各种来源接收数据。
[0245]
如图19中所提供,提供机器学习api,其允许商家/数据所有者通过选择模型类型(例如,推荐器、集群技术)和数据集id发起训练流程。
[0246]
商家合作伙伴计算装置将能够对模型进行黑盒访问,且可以分批模式训练阶段执行模型训练。在一变型中,其它训练阶段可包含近实时在线训练automl和交互式模型设计。模型可包含适合于不同用例(例如,k

均值、矩阵分解、随机森林等)的各种方法。系统包含安全设置,其对于已经界定的每一数据元素确立访问控制权限(例如,读取、创建、更新、删除),每一平台合作伙伴和其在一个部门内的角色(例如,营销和sai具有不同数据访问控制
权限)的明确定界。
[0247]
所述源中的每一个可为特定客户数据的保管人。然而,所述源中的每一个可不希望使其客户数据可用于其它合作伙伴,例如归因于各种保密性指令和最佳实践。安全处理涉及保护总计算步骤使得各方在不具有适当访问权限的情况下不能够访问机器学习数据架构中所使用的基础数据的一个或多个部分。
[0248]
数据集假设已经在平台中获取,与共用架构协调并与银行数据所有者(例如,机器学习角色)数据集聚合。商家数据所有者不应通过调整其参数、权重等对所选模型进行细粒度访问。商家可仅指定模型类型,而服务提供商将能够进一步调整模型。
[0249]
数据以加密形式提供并经加载用于数据处理和系统。模型架构工作流程管理器编排机器模型以用于训练活动以及工作流程进展。模型架构工作流程管理器被配置成查询用于特定数据集的聚合的数据存储器,所述特定数据集与所选模型、商家和银行合作伙伴相关。隐私敏感数据元素或数据集将经加密以确保合作伙伴的数据保密性。
[0250]
在实施例中,安全包围区(例如,分离数据处理器,其为硬件或软件或其组合)用于进行机器学习子任务。在一些实施例中,安全包围区可存储用于安全地访问基础数据的加密密钥。所述系统包含一系列安全包围区处理器,以点线展示,其经调适成共同操作以生成表示数据科学洞察的数据结构。
[0251]
例如,数据处理可托管于sgx包围区内,其中聚合的数据集将经加载以供进一步处理,在馈送到训练流程之前。在包围区中,数据经解密,接着施加所需的格式化、变换,推算缺失值,识别和移除离群值等。当完成处理时,接着数据将经加密以发送到将经处理数据保存在数据库中的另一组件。
[0252]
安全包围区处理引起计算资源约束方面的限制,这可导致性能和速度降低。相对于非安全处理范例,归因于加密和访问限制要求,复杂度提高。
[0253]
因此,如在本文中的各种实施例中所描述,提出涉及具有强保密性和稳固安全性的机器学习数据架构的方法。在一些实施例中,机器学习架构包含多个互连安全包围区处理分区(例如,单独安全包围区处理器),其处理并维持单独训练模型架构。
[0254]
在一些实施例中,如果数据大小超过例如90mb,那么将需要进行分割、反复地发送并由多个sgx包围区处理。具体地说,归因于由安全包围区处理器对可用数据处理性能的约束,数据分割单元1902经调适成分割数据使得个别数据处理分区1904和1906各自并行地使用单独存储的模型数据架构处理数据。在一些实施例中,个别数据处理分区1904、1906为单独安全处理包围区。
[0255]
数据分割单元1902为分区控制器引擎,其可实施为被配置成提供一个或多个安全包围区子处理器并将经加密数据的分区发射到所述一个或多个安全包围区子处理器中的每一个的电子电路。
[0256]
敏感数据元素在其经加载时保持经加密。在包围区中,经处理数据经解密,接着将施加聚合、计算以提取新特征。当完成特征提取时,接着特征数据集将经加密。当完成每一训练阶段时,模型输出、参数、权重、量度将经加密。
[0257]
当经由分区中的每一个处理数据时,更新单独模型架构以生成经更新模型架构参数数据结构。个别数据处理分区1904、1906的所述一个或多个安全包围区子处理器被配置成使用机器学习架构的本地副本处理经加密数据的对应分区以生成一个或多个参数更新
数据结构。
[0258]
来自所述分区中的每一个的经更新模型架构参数数据结构聚合在参数聚合单元1908(例如,参数服务器,其可为其自身的包围区)处。
[0259]
参数聚合单元1908被配置成保存更新、接着重新传播到安全处理传统的聚合的经训练模型架构。其可部署于sgx包围区内,且其将接收模型参数、权重等的所有更新。模型可在其离开包围区时经加密。
[0260]
在一些实施例中,至少两个安全包围区子处理器1904和1906被配置成在彼此之间直接发射一个或多个参数更新数据结构以更新机器学习架构的对应本地副本。
[0261]
一些实施例的此架构有助于克服与安全包围区分区的减小吞吐量相关的技术约束。例如,一些安全包围区分区限于大致90mb或更小的模型架构大小。因此,多个经协调分区共同操作以提供总体安全处理。
[0262]
经训练模型、其参数、权重等持续存在以进一步由预测/评分机制使用。
[0263]
在另一实施例中,包围区分区还被配置成在并行操作期间彼此互连使得包围区分区能够在彼此之间共享、确定参数,相较于从聚合器处理器接收经训练模型中的经更新参数,例如,使得经由用于合作伙伴的输出api可用,所述api可查询先前经训练模型以查询预测结果。所述api将接收合作伙伴id、模型类型和数据记录作为输入以施加机器学习预测。所述api可将预测结果输出回到用户。
[0264]
如一些实施例中所描述的用于机器学习和安全学习的应用程序包含例如通过机器学习模型架构生成数据结构,其包含用于基于与标识符的训练集的类似性识别集群的客户标识符的子集。
[0265]
例如,标识符的训练集可包含高收益忠实客户,且可利用经训练模型架构以识别不在训练集内但可忽略的目标客户作为潜在目标。在此实例中,使用安全机器学习数据架构的安全处理用于确保未经授权用户不会对基础数据(其可包含敏感客户数据)进行未授权访问。例如,安全包围区处理器用于确保商家无法全面了解客户档案,尤其当此类商家不是客户档案的保管人时。
[0266]
例如,预测利用经训练模型,其部署为执行实际计算以用于预测评分结果的sgx包围区。将经训练模型架构和输入数据记录提供给预测器引擎,其输出封装预测评分、信任度、量度等的一个或多个数据结构。预测结果(模型id、模型类型、合作伙伴id、预测评分、输入记录)可记录在数据库中以供进一步性能监视。
[0267]
图20为展示到不同客户层的资源分配的实例说明。在此实例中,可以观察到,商家将其主要资源集中在理解和服务层1客户上。
[0268]
商家可充分利用外部公司以层2和层3客户群为目标扩增资源。另一机构,例如金融机构(fi)有机会提供机器学习机制以(i)分析其层1客户(忠实和非忠实会员)和(ii)应用洞察将客户从层2客户驱动为层1客户。fi的水平数据可用以更好地评定和应用洞察以驱动商家合作伙伴的转换,从而使得忠实度提高并使收益增加。类似地,机器学习模型可用于转换层3+客户。
[0269]
图21为根据一些实施例的展示两个不同数据集的客户之间的交叉和目标机会区域的实例文氏图2100。作为商家,目标可为希望与不在具有sku报价的商店购物的新客户接触。
[0270]
重叠区域包含用于训练机器学习模型架构的客户。因此,可通过训练机器学习模型提取人格权属性。例如,商家想要售出的bose 1234扬声器可能供过于求。系统使用购买bose 1234扬声器的fi+m1客户的身份标识训练模型,所述模型识别其人格权属性(例如,位置、年龄、职位)。
[0271]
一旦机器学习模型经训练,其就可应用于来自一个商家或财务机构的客户集的新人格权以识别潜在目标客户。在此实例中,对于可发射到新近识别客户的扬声器购买可有报价。在此情况下,机器学习模型架构将提供封装客户的目标的标识符的数据结构,其可用于生成机器指令以供自动报价生成和分配。人格权属性应用于fi客户而非m1客户,且系统可控制bose 1234扬声器的sku报价到那些fi客户的发送。
[0272]
图22和图23展示所生成推荐的实例。
[0273]
图22为根据一些实施例的经调适成展示展示所生成推荐的图形配件的图形用户界面的实例呈现2200。在此呈现中,提供报价生成商家门户仪表板,其包含生成人格权的目标集的推荐配件,在此情况下,还展示可导致推荐的理由的属性。此方法可用于改进应用于受众构建器的选择准则,且可提供用于基于所推荐受众基于图21的优惠活动中所提供的信息建立受众的程序的自动化。
[0274]
图23为根据一些实施例的经调适成展示展示所生成推荐的图形配件栏的图形用户界面的实例呈现2300。在此配件栏中,展示多个推荐,其指示可为目标的客户和基于机器学习数据架构的机器学习输出这些客户为何成为目标的理由。
[0275]
系统评定vcr核心中的数据以及(i)身份标识有吸引力的受众和(ii)商家应考虑的所提议优惠活动。实例:vcr发现存在25万客户,其由于财富增加,对环境和长途旅行的积极敏感性而非常有可能购买电动汽车。推荐carco,vcr的合作伙伴对此受众群体公布$1000的优惠。
[0276]
图24为根据一些实施例的实例生产环境和数据流的说明。在此变体实例中,金融机构和商家两者各自具有对应私用集装箱化环境。商家的数据可通过sku数据通知,从而允许商家将购买与在级别处销售的实际产品或服务连接。
[0277]
图12为计算装置1200,例如服务器的示意图。如所描绘,所述计算装置包含至少一个处理器1202、存储器1204、至少一个i/o接口1206,和至少一个网络接口1208。
[0278]
处理器1202可为因特尔或amd x86或x64、powerpc、arm处理器等。存储器1204可包含位于内部或外部的计算机存储器,例如随机存取存储器(ram)、只读存储器(rom)、压缩光盘只读存储器(cdrom)的合适的组合。
[0279]
每一i/o接口1206使得计算装置1200能够与一个或多个输入装置,例如键盘、鼠标、相机、触摸屏和麦克风等,或与一个或多个输出装置,例如显示屏和扬声器互连。
[0280]
每一网络接口1208使得计算装置1200能够与其它组件通信、与其它组件交换数据、访问并连接到网络资源、为应用程序服务,和通过连接到能够携载数据的网络(或多个网络)执行其它计算应用程序,网络包含因特网、以太网、普通老式电话服务(pots)线、公用交换电话网(pstn)、综合业务数字网(isdn)、数字订户线(dsl)、同轴电缆、光纤、卫星、移动、无线(例如,wi

fi、wmax)、ss7信令网、固定线、局域网、广域网等。
[0281]
计算装置1200可用于在提供对应用程序、局域网、网络资源、其它网络和网络安全装置的访问之前注册和认证用户(使用例如登录、唯一标识符和口令)。计算装置1200可为
一个用户或多个用户服务。
[0282]
图13描述由具有tee的平台100执行的实例流程图1300。在步骤1310处,平台100可验证合作伙伴系统115的身份标识。在步骤1320处,平台100可在验证合作伙伴的身份标识后,将通信密钥发出到合作伙伴系统115以用于对消费者数据进行加密。在步骤1330处,平台100可从合作伙伴接收使用通信密钥加密的经加密数据。在步骤1340处,平台100可通过存储密钥存储经加密数据以防止tee内对经加密数据的未授权访问。在步骤1350处,平台100可对经加密数据进行解密和分析以基于经解密数据生成推荐。
[0283]
本文中所描述的装置、系统和程序的实施例可以硬件和软件两者的组合形式实施。这些实施例可实施于可编程计算机上,每一计算机包含至少一个处理器、数据存储系统(包含易失性存储器或非易失性存储器或其它数据存储元件或其组合)和至少一个通信接口。
[0284]
程序代码应用于输入数据以执行本文描述的功能并生成输出信息。输出信息应用于一个或多个输出装置。在一些实施例中,通信接口可以是网络通信接口。在元件可以组合的实施例中,通信接口可以是软件通信接口,例如用于程序间通信的软件通信接口。在又其它实施例中,可存在实施为硬件、软件和其组合的通信接口的组合。
[0285]
贯穿先前论述,关于控制和计算装置,可提供多个参考。应了解,使用此类术语可表示一个或多个计算装置,所述计算装置具有至少一个处理器,其被配置成执行存储在计算机可读有形、非暂时性介质上的软件指令。例如,平台100可具有服务器,其包含以一方式耦合到网页服务器、数据库服务器或其它类型的计算机服务器以实现所描述作用、职责或功能的一个或多个计算机。
[0286]
先前论述提供许多实例实施例。尽管每一实施例表示发明性元件的单个组合,但其它实例可包含所公开元件的所有可能组合。因此,如果一个实施例包括元件a、b和c,且第二实施例包括元件b和d,那么还可使用a、b、c、或d的其它剩余组合。
[0287]
术语“连接”或“耦合到”可包含直接耦合(其中两个彼此耦合的元件彼此接触)和间接耦合(其中至少一个额外元件位于所述两个元件之间)。
[0288]
实施例的技术解决方案可呈指令物理操作的软件产品形式。软件产品可以存储在非易失性或非暂时性存储介质中,所述非易失性或非暂时性存储介质可以是光盘只读存储器(compact disk read

only memory,cd

rom)、usb闪存盘或移动硬盘。软件产品包含多个指令,所述指令使得计算机装置(个人计算机、服务器或网络装置)执行实施例提供的程序。
[0289]
本文所述实施例通过物理计算机硬件实施,包含计算装置、服务器、接收器、发射器、处理器、存储器、显示器和网络。本文所述实施例提供有效的物理机器,尤其是配置的计算机硬件布置。本文所述实施例针对电子机器和电子机器实施的程序,用于处理和转换表示各种类型信息的电磁信号。本文描述的实施例普遍地且一贯地涉及机器及其用途;且本文描述的实施例在与计算机硬件、机器和各种硬件组件一同使用之外没有意义或实际可应用性。例如,使用心理步骤替换尤其被配置成实施非物理硬件的各种动作的物理硬件可大体上影响实施例的工作方式。此类计算机硬件限制明显是本文描述的实施例的必要要素,且其在对本文描述的实施例的操作和结构没有物质影响的情况下无法省去或替换成心理装置。所述计算机硬件对于实施本文描述的各种实施例是必要的,且并非仅用于迅速地且以高效方式执行步骤。
[0290]
平台100可实施为计算装置,其具有至少一个处理器、数据存储装置(包含易失性存储器或非易失性存储器或其它数据存储元件或其组合)和至少一个通信接口。所述计算装置组件可以不同方式连接,包含直接耦合、经由网络间接耦合,和分散在宽地理区域内并经由网络连接(这可被称为“云端计算”)。
[0291]
举例来说且不受限制,所述计算装置可为服务器、网络设备、微机电系统(mems)或微型机械装置、机顶盒、嵌入装置、计算机扩展模块、个人计算机、笔记本电脑、个人数据助理、蜂窝式电话、智能电话装置、umpc平板计算机、视频显示终端、游戏控制台、电子阅读装置,和无线超媒体装置或能够被配置成进行本文中所描述的程序的任何其它计算装置。
[0292]
处理器可以是例如微处理器或微控制器、数字信号处理(dsp)处理器、集成电路、现场可编程门阵列(fpga)、可重新配置处理器、可编程只读存储器(prom),或其组合。
[0293]
数据存储装置可包含位于内部或外部的任何类型的计算机存储器的合适的组合。
[0294]
计算装置可包含i/o接口以使得计算装置能够与一个或多个输入装置,例如键盘、鼠标、相机、触摸屏和麦克风,或与一个或多个输出装置,例如显示屏和扬声器互连。
[0295]
尽管已经详细地描述实施例,但应理解,可在本文中进行各种改变、替换和更改。
[0296]
此外,本申请的范围并不意图限于说明书中所描述的程序、机器、制品、物质组成、构件、方法和步骤的特定实施例。如本领域的普通技术人员将易于从本发明的公开内容了解,可利用执行与本文中所描述的对应实施例大体上相同的功能或实现与所述对应实施例大体上相同的结果的当前现有或稍后待开发的程序、机器、制品、物质组成、构件、方法或步骤。因此,所附权利要求书既定在其范围内包含这些程序、机器、制品、物质组成、构件、方法或步骤。
[0297]
可理解,上文所描述和说明的实例仅意图为示例性的。
[0298]
申请人注意到所描述实施例和实例为说明性且非限制性的。特征的实际实施可并有本文中所描述的方面和特征中的一些或全部的组合,不应被视为未来或现有产品计划的指示。申请人参与基本研究和应用研究,且在一些情况下,在探索性基础上开发所描述特征。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1