一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种风险数据推送方法、系统、服务器和可信单元与流程

2022-12-07 03:19:42 来源:中国专利 TAG:


1.本说明书实施例属于计算机技术领域,尤其涉及一种风险数据推送方法、系统、服务器和可信单元。


背景技术:

2.目前,监管部门对于涉及重大交易的机构通常要求其履行反洗钱的义务,即对大额交易和可疑交易的交易数据进行分析和报送。然而,机构之间的信息相互隔离形成信息孤岛,机构在信息不充分的情况下难以识别可疑用户。多个机构如何向交易的上下游账户的开户机构推送风险信息的同时保护用户的隐私数据是目前反洗钱方案中需要解决的问题。


技术实现要素:

3.本发明的目的在于提供一种风险数据推送方案,通过中间设备进行对机构的上下游账户的风险数据的推送,在保护隐私数据的同时提高了在机构之间推送上下游账户的风险数据的效率。
4.本说明书第一方面提供一种风险数据推送方法,包括:
5.第一机构的第一机构设备生成推送数据,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第二账户的风险标签基于所述一个或多个第一账户的风险标签确定,基于所述推送数据生成第一密文推送数据;将所述第一密文推送数据发送给中间设备;
6.所述第二机构的第二机构设备经由所述中间设备获取所述推送数据的第二密文推送数据,所述第二密文推送数据与所述第一密文推送数据对应,对所述第二密文推送数据解密,得到所述推送数据。
7.本说明书第二方面提供一种风险数据推送方法,由可信单元执行,包括:
8.获取第一密文推送数据,所述第一密文推送数据通过对推送数据和第二机构的标识的组合数据加密而生成,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第二账户的风险标签基于所述一个或多个第一账户的风险标签确定;
9.对所述第一密文推送数据解密,得到所述推送数据和所述第二机构的标识;
10.使用预先获取的所述第二机构的公钥对所述推送数据加密,得到所述第二密文推送数据;
11.输出所述第二密文推送数据,以用于发送给所述第二机构设备。
12.本说明书第三方面提供一种风险数据推送方法,由服务器执行,包括:
13.从第一机构的第一机构设备接收第一密文推送数据,所述第一密文推送数据通过对推送数据和第二机构的标识的组合数据加密而生成,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第
二账户的风险标签基于所述一个或多个第一账户的风险标签确定;
14.将所述第一密文推送数据和预先获取的多个机构的公钥提供给可信单元,所述多个机构中包括所述第二机构和一个或多个第三机构;
15.从所述可信单元接收第二密文推送数据及其对应的第二机构的标识、以及一个或多个第三密文推送数据及其对应的第三机构的标识,所述第二密文推送数据通过使用所述第二机构的公钥对所述推送数据加密而生成,所述一个或多个第三密文推送数据通过使用各个第三机构的公钥分别对用于指示无效数据的一个或多个数据加密而生成;
16.将所述第二密文推送数据发送给所述第二机构,将各个第三密文推送数据发送给各个第三机构。
17.本说明书第四方面提供一种风险数据推送系统,包括第一机构的第一机构设备、第二机构的第二机构设备和中间设备,
18.所述第一机构设备用于生成推送数据,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第二账户的风险标签基于所述一个或多个第一账户的风险标签确定,基于所述推送数据生成第一密文推送数据;将所述第一密文推送数据发送给所述中间设备;
19.所述第二机构设备用于经由所述中间设备获取所述推送数据的第二密文推送数据,所述第二密文推送数据与所述第一密文推送数据对应,对所述第二密文推送数据解密,得到所述推送数据。
20.本说明书第五方面提供一种可信单元,包括:
21.获取单元,用于获取第一密文推送数据,所述第一密文推送数据通过对推送数据和第二机构的标识的组合数据加密而生成,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第二账户的风险标签基于所述一个或多个第一账户的风险标签确定;
22.解密单元,用于对所述第一密文推送数据解密,得到所述推送数据和所述第二机构的标识;
23.加密单元,用于使用预先获取的所述第二机构的公钥对所述推送数据加密,得到所述第二密文推送数据;
24.输出单元,用于输出所述第二密文推送数据,以用于发送给所述第二机构设备。
25.本说明书第六方面提供一种服务器,包括:
26.接收单元,用于从第一机构的第一机构设备接收第一密文推送数据,所述第一密文推送数据通过对推送数据和第二机构的标识的组合数据加密而生成,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第二账户的风险标签基于所述一个或多个第一账户的风险标签确定;
27.提供单元,用于将所述第一密文推送数据和预先获取的多个机构的公钥提供给可信单元,所述多个机构中包括所述第二机构和一个或多个第三机构;
28.所述接收单元还用于:从所述可信单元接收第二密文推送数据及其对应的第二机构的标识、以及一个或多个第三密文推送数据及其对应的第三机构的标识,所述第二密文推送数据通过使用所述第二机构的公钥对所述推送数据加密而生成,所述一个或多个第三密文推送数据通过使用各个第三机构的公钥分别对用于指示无效数据的一个或多个数据
加密而生成;
29.发送单元,用于将所述第二密文推送数据发送给所述第二机构,将各个第三密文推送数据发送给各个第三机构。
30.本说明书第七方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面或第三方面所述的方法。
31.本说明书第八方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面或第三方面所述的方法。
32.在本说明书实施例中,机构设备可将发送给其它多个机构的密文推送数据发送给中间设备以提供给其他机构设备,机构设备也可以从中间设备获取其它机构对其的密文推送数据,提高了机构设备对上下游机构发送密文推送数据的效率,在保护隐私数据的同时保证了数据安全性。
附图说明
33.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
34.图1为本说明书实施例中的系统示意图;
35.图2为本说明书实施例中机构设备侧对账户进行脱敏的方法流程图;
36.图3为本说明书实施例中服务器验证机构身份的方法流程图;
37.图4是本说明书一实施例中的风险数据推送方法流程图;
38.图5为本说明书另一实施例的风险数据推送方法的流程图;
39.图6为本说明书另一实施例的风险数据推送方法的流程图;
40.图7为本说明书另一实施例的风险数据推送方法的流程图;
41.图8为本说明书实施例中的一种可信单元的架构图;
42.图9为本说明书实施例中的一种服务器的架构图。
具体实施方式
43.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
44.数据共享经常是机构处理业务的需求。单一机构往往无法获取足够的信息而无法处理业务,这就存在从其他机构获取信息的需求。例如,各国在反洗钱合规履职的要求中,很多都要求各个金融机构提供反洗钱审核结果。目前,很多国家央行、很多大的金融机构都有在反洗钱领域利用区块链来提升效率和准确性并满足监管的尝试。同时,数据作为一种资源,其流动性和可获取性是很多数据应用和产业发展的基础,但数据交换和共享过程中的隐私保护一直是产业发展的一大挑战。下面仍以上述的反洗钱为例加以说明。
45.反洗钱(anti-money laundering,aml)是指预防通过各种方式掩饰、隐瞒毒品犯罪、黑社会性质的组织犯罪、恐怖活动犯罪、走私犯罪、贪污贿赂犯罪、破坏金融管理秩序犯罪等犯罪所得及其收益的来源和性质的洗钱活动的措施。常见的洗钱途径广泛涉及银行、保险、证券、房地产等各种领域。大多数反洗钱工作都包括三个核心的事项:
46.1、客户身份识别制度。反洗钱义务主体在与客户建立业务关系或者与其进行交易时,应当根据真实有效地身份证件,核实和记录其客户的身份,并在业务关系存续期间及时更新客户的身份信息资料。
47.2、大额和可疑交易报告(suspicious transaction report,str)制度。非法资金流动一般具有数额巨大、交易异常等特点,因此,法律规定了大额和可疑交易报告制度,要求金融机构对数额达到一定标准的交易和缺乏合法目的的异常交易应当及时向反洗钱行政主管部门报告,以作为追查违法犯罪行为的线索。
48.3、客户身份资料和交易记录保存制度客户身份资料和交易记录保存,是指金融机构依法采取必要措施将客户身份资料和交易信息保存一定期限,可以为追查违法犯罪行为提供证据支持。
49.客户身份识别制度也就是通常所说的“了解你的客户”(know your customer,kyc),指的是获取客户相关识别信息,包括与客户建立业务时了解客户的身份、了解交易的目的、了解资金的来源和去向、以及了解客户的长经营活动和金融交易情况等,是反洗钱的基础。
50.不同金融机构都有审查可疑交易的义务。当例如机构a在监测分析中发现涉嫌洗钱风险的客户“甲”与在机构b开立账户的“乙”存在频繁/大量交易,从而可确定乙与甲存在密切关联关系且存在洗钱风险。机构a可将客户“甲”的交易对手“乙”的账户信息和风险标签主动推送给机构b,从而机构b可基于该推送信息重新确定客户“乙”的账户的风险等级。其中,可将“乙”的账户称为“甲”的账户的上下游账户(或业务关联账户),可将机构b称为机构a的上下游开户机构。本说明书实施例中基于服务器或者区块链进行机构对上下游开户机构的风险数据推送,提高了风险数据推送效率和数据安全。
51.图1为本说明书实施例中的系统示意图。如图1所示,机构设备100、机构设备200和机构设备300可以分别为例如机构a、机构b和机构c的计算设备,所述机构a、机构b和机构c例如可以为金融机构、保险机构、交易机构等机构中的任一机构。可以理解,图中示出三个机构设备作为示例,在实际中可包括其他数目的多个机构设备。机构设备中安装有反洗钱平台的客户端,各个机构设备可以直接接收用户的信息,从而客户端基于这些用户信息完成一定的处理工作,如上述审查可疑交易,从而可获得各个用户的风险标签。
52.以风险标签具体为洗钱风险等级为例,机构a和机构b可以分别基于自身的反洗钱审核能力对在本机构开户的用户账户标引洗钱风险等级。如上文所述,各个机构在对本机构开户的账户标引风险等级的同时,对于该账户对应的在其他机构开户的上下游账户也可以相应地标引风险等级,并基于其他机构的上下游账户的风险数据生成推送数据。
53.服务器400中包括可信单元,所述可信单元可以为任何可以进行隐私数据或机密数据处理、保护数据不泄露的计算单元,所述可信单元例如包括可信执行环境(trusted execution environment,tee)、可信机构中的计算设备等。图1中示出tee40作为可信单元的示例,下文以tee40作为可信单元的示例进行描述。在一种实施方式中,各个机构设备可
将经脱敏和加密的密文推送数据发送给服务器400,服务器400将各个机构的密文推送数据存储到本地或者文件存储服务器(图1中未示出)中。tee40可从服务器400接收存储密文推送数据的地址,从该地址获取密文推送数据,根据各个密文推送数据向密文推送数据对应的机构的上下游机构发送密文推送数据,从而在保护用户隐私的同时在各个机构之间推送用户的风险数据。其中,服务器400和tee40可与区块链500连接,从而结合区块链500进行本说明书实施例中的风险数据共享方案。可以理解,图1中虽然示出可信单元位于服务器400内部,本说明书实施例不限于此,tee也可以位于另一个计算设备中,服务器400可通过与该计算设备连接而连接到该tee。
54.在另一种实施方式中,各个机构设备可通过服务器400或者区块链500向其上下游机构发送密文推送数据。
55.图2为本说明书实施例中机构设备侧对账户脱敏的方法流程图。图2中的机构设备可以为图1中的多个机构设备中的任一机构设备。下文中以机构设备100为例进行描述
56.如图2所示,首先,在步骤s201,机构设备100获取其他机构上下游账户。
57.在机构设备100对应的机构a中,机构管理员可定期根据机构a内的数据分析结果生成本机构的风险账户的在其他机构的上下游账户的风险数据。该风险数据中可包括多行,每行包括一个上下游账户、该上下游账户的风险标签、及该上下游账户的开户机构的机构标识。所述风险标签为多个机构协商好的指示风险程度的标签。例如,风险标签可包括riskh、riskm、riskl等风险标签,riskh例如指示高风险,riskm例如指示中风险,riskl例如指示低风险。单个用户的风险标签可以包括多个风险标签,例如risk1、riskh,其中risk1例如指示特定类型的风险等。
58.机构管理员在机构设备100中生成风险数据之后,将风险数据上传至客户端的存储中。客户端在监听到风险数据更新之后,例如可逐行读取风险数据,以逐行获取该行中的上下游账户,以进行脱敏处理。
59.在步骤s203,机构设备100向服务器400请求上下游账户的脱敏账户。
60.具体是,由于服务器400也是不完全可信的,机构设备100在逐行进行脱敏处理中向服务器400请求一行中的账户对应的脱敏账户时也需要对上下游账户进行脱敏。具体是,机构设备可计算上下游账户account1的哈希值hash1=hash(account1),之后,机构设备100可将该哈希值hash1发送给服务器400,以请求与该哈希值对应的脱敏账户。
61.在步骤s205,服务器400向机构设备100返回脱敏账户。
62.服务器400在接收到hash1之后,可使用预设规则计算hash1对应的脱敏账户。
63.在一种实施方式中,为了进一步加强数据安全防护,服务器400可对hash1采取加盐操作,例如通过计算hash(hash1 salt),将得到的哈希值作为脱敏账户,其中,salt(盐值)为服务器预先生成的一个值。通过对hash1采取加盐操作得到用户id,可避免恶意方推测hash1对应的账户。
64.服务器在确定脱敏账户之后,将该脱敏账户返回给机构设备100。当其他机构向服务器400请求该账户的脱敏账户时,服务器可基于同样的规则和参数(即salt)计算该脱敏账户,从而可得到同样的脱敏账户,并将该脱敏账户返回给机构设备,这样,不同的机构设备在其发送给其它机构的推送数据中对同一个账户使用相同的脱敏账户。
65.各个机构设备可通过同样的方式向服务器请求本机构开户的账户的脱敏账户,并
创建本机构开户的用户标识与其脱敏账户的映射表,从而可在后续用于确定脱敏账户对应的用户,其中,该用户标识可以为用户的身份信息(如姓名、身份标识等),或者也可以为用户在本机构开户的账户。
66.在一种实施方式中,在安全要求较低的情况中,可以不对其它机构的上下游账户进行脱敏处理,即在发送给其它机构的推送数据中直接包括其它机构的账户。
67.在本说明书实施例中,可以通过dis结合区块链的方式为各个机构创建一个数字身份。区块链可以提供去中心化(或弱中心化)的、不可篡改(或难以篡改)的、可信的分布式账本,并可以提供安全、稳定、透明、可审计且高效的记录交易以及数据信息交互的方式。区块链网络可以包括多个节点。一般来说区块链的一个或多个节点归属于一个参与方。笼统的说,区块链网络的参与方越多,参与方越权威,区块链网络的可信程度越高。这里称多个参与方构成的区块链网络为区块链平台。借助区块链平台,可以帮助机构验证身份。
68.为了使用区块链平台提供的分布式数字身份服务,机构可以将自身的身份在区块链平台中登记。例如,机构a可以创建一对公钥和私钥,私钥保密存储,并可以创建一个分布式数字身份(也称为去中心化标识符,decentralized identitfiers,did)。可以由机构a自己创建did,也可以请求分布式身份服务(decentralized identity service,dis)系统来创建did。dis是一种基于区块链的身份管理方案,可以提供数字身份的创建、验证和管理等功能,从而实现规范化地管理和保护实体数据,同时保证信息流转的真实性和效率,并可以解决跨机构的身份认证和数据合作等难题。dis系统可以与区块链平台相连。通过dis系统可以为机构a创建一个did,并将该did和所述公钥发送至区块链平台保存,还将该创建的did返回给机构a。所述公钥可以包含到did文档(diddoc)中,所述diddoc可以存储于区块链平台中。dis为机构a创建did,可以基于机构a发来的公钥创建,例如采用hash函数对所述机构a的公钥进行计算后创建,也可以根据机构a的其它信息(可以包括所述公钥或不包括所述公钥)创建。后者可能需要机构a提供一些公钥之外的信息。之后,机构a可以提供验证功能,从而向其它方证明自身是机构a。图3为本说明书实施例中服务器验证机构身份的方法流程图,包括:
69.s301:机构a的机构设备100向dis发起did创建请求,所述请求中包括所述机构a的公钥。
70.s303:响应于所述创建请求,所述dis在对机构a的机构信息(例如资质、证件等)验证通过之后,为所述机构a创建did及对应的diddoc,并将该did及对应的diddoc发送至区块链平台保存。所述diddoc中包括所述机构a的公钥。所述diddoc中还包括对机构a的身份的可验证证明的下载地址等信息。
71.s305:区块链平台接收服务器发来的验证请求,所述验证请求中包括所述机构a的did。
72.s307:区块链平台从自身存储中取出所述did对应的diddoc并返回至所述服务器。
73.s309:服务器生成一个字符串,并将所述字符串发送至所述机构a的机构设备100。
74.s311:所述机构设备100用机构a的私钥对所述字符串签名并返回至所述服务器。
75.s313:所述服务器用前述接收到的所述diddoc中的公钥验证所述返回的签名是否正确,如果正确,则确认所述机构a的身份。
76.服务器400在对机构的身份验证通过之后,可执行图4所示的风险数据推送方法。
77.如图4所示,首先,在步骤s401,机构设备100生成密文推送数据。
78.机构设备100在对例如机构b中的一个或多个上下游账户进行脱敏之后,可生成与机构b对应的推送数据d0,该推送数据d0中包括机构b中的一个或多个上下游账户或其脱敏账户、及各个账户的风险标签。在一种实施方式中,该推送数据中还可以包括机构a的标识、以及与机构a中的与上下游账户关联的账户(或其脱敏账户),以指示风险标签的来源。
79.机构设备100可预先从区块链获取机构b的did的公钥,从而,机构设备100可使用机构b的公钥对推送数据d0加密,生成密文推送数据d1。可以理解,机构设备100不限于使用机构b的公钥对推送数据进行加密,而是可以使用与机构设备200协商好的任何密钥,包括对称密钥和非对称密钥。
80.在步骤s403,机构设备100将密文推送数据和机构b的标识发送给服务器400。
81.具体是,机构设备100可使用机构a的私钥(例如机构a的did的私钥)对密文推送数据和机构b的标识的组合数据(例如拼接数据)签名,得到数字签名,将机构a的did(例如dida)、密文推送数据和机构b的标识及上述数字签名发送给服务器400。
82.在步骤s405,服务器400向机构设备200发送密文推送数据。
83.在一种实施方式中,服务器400在从机构设备100接收到上述数据之后,根据“dida”获取dida的公钥,该公钥例如由服务器400在如图3所示对机构设备100的验证过程中从区块链中获取并存储在本地。之后,服务器400使用dida的公钥对上述数字签名进行验证。在验证通过的情况中,服务器400获取预先存储的机构设备200的连接地址,通过该连接地址将密文推送数据发送给机构设备200。
84.在一种实施方式中,所述服务器可将机构a的did的公钥、密文推送数据和机构b的标识及上述数字签名提供给机构设备200,从而,所述机构设备200在对所述密文推送数据解密之前,首先使用所述机构a的公钥对所述签名进行验证,在验证成功的情况下进行对所述密文推送数据的解密。
85.在步骤s407,机构设备200对密文推送数据解密,得到推送数据。
86.机构设备200在接收到密文推送数据之后,使用协商好的密钥(例如机构b的didb的私钥)对该密文推送数据解密,从而得到推送数据。具体是,该推送数据中可包括机构b中一个或多个账户的脱敏账户及对应的风险标签。机构设备200可根据预先生成的本机构中账户对应的用户标识与其脱敏账户的映射表,获取各个脱敏账户对应的用户标识,从而将推送数据中的脱敏账户替换为对应的用户标识。在进行该处理之后,机构设备200可根据该推送数据对脱敏账户对应的用户的风险等级进行重新确定,提高了风险控制的准确性。
87.在该实施例中,机构设备100可将发送给其它多个机构的推送数据都发送给服务器,由服务器分别转发给各个其它机构,提高了机构设备100对上下游机构发送密文推送数据的效率。同时,通过由服务器进行机构之间的中转,可以使得对机构b隐藏该推送数据的发送机构(即机构a),从而可进一步保护用户隐私。
88.图5为本说明书另一实施例的风险数据推送方法的流程图。
89.如图5所示,首先在步骤s501,机构设备100生成密文推送数据d2。机构设备100可与步骤s401中类似地生成推送数据d0,之后,机构设备100使用tee的公钥对推送数据d0加密,生成密文推送数据d2。
90.在步骤s503,机构设备100向服务器400发送密文推送数据d2和机构b的标识。步骤
s503可参考上文对步骤s403的描述,在此不再赘述。
91.在步骤s505,服务器400将密文推送数据d2和机构b的公钥发送给tee40。
92.服务器400在从机构设备100接收到密文推送数据d2和机构b的标识之后,可将该密文推送数据存储到服务器内或者服务器外的存储服务器中,并获取该密文推送数据的存储地址。
93.之后,服务器400可向tee发送密文推送数据的文件地址和机构b的公钥,以使得tee可从该文件地址读取密文推送数据d2,其中,机构b的公钥后续用于对发送给机构b的数据进行加密,可以理解,tee不限于使用机构的公钥对发送给机构b的数据进行加密,而是可以使用tee与机构设备200协商好的任何密钥,包括对称密钥和非对称密钥。服务器400也可以将密文推送数据d2和机构b的公钥直接发送给tee40。其中,tee也可以通过验证签名而对机构a进行验证。
94.可选地,tee可将从服务器接收的机构b的公钥存证到区块链。tee通过将从服务器接收的机构b的公钥上链,对服务器的操作进行上链,机构b可验证服务器提供的其公钥是否正确,避免了如下的服务器作恶的可能性:服务器有可能以自己的公钥替换机构设备的公钥提供给tee,从而服务器可使用自己的私钥对tee输出的以服务器公钥加密的文件解密,该文件本应以机构设备的公钥加密以发送给机构设备,从而服务器可通过该方式窃取用户隐私信息。
95.在步骤s507,tee对密文推送数据d2解密,得到推送数据,使用机构b的公钥对推送数据加密,得到密文推送数据d3。
96.具体是,tee40在获取到密文推送数据d2之后,使用自己的私钥对密文推送数据d2解密,从而获取推送文件d0。之后,tee使用机构b的公钥对推送数据d0加密,得到密文推送数据d3。
97.其中,tee是基于cpu硬件的安全扩展,且与外部完全隔离的可信执行环境。目前工业界十分关注tee的方案,几乎所有主流的芯片和软件联盟都有自己的tee解决方案,比如软件方面的tpm(trusted platform module,可信赖平台模块)以及硬件方面的intel sgx(software guard extensions,软件保护扩展)、arm trustzone(信任区)和amd psp(platform security processor,平台安全处理器)等。tee可以起到硬件黑箱作用,在tee中执行的代码和数据即便是操作系统层都无法偷窥,只有通过代码中预先定义的接口才能对其进行操作。在效率方面,由于tee的黑箱性质,在tee中进行运算的是明文数据,而不是同态加密中复杂的密码学运算,计算过程效率几乎没有损失。
98.以intel sgx(以下简称sgx)技术为例。区块链节点可以基于sgx技术创建enclave(围圈或飞地)作为tee。其中,服务器可利用cpu中新增的处理器指令,在内存中可以分配一部分区域epc(enclave page cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的enclave。上述epc对应的内存区域被cpu内部的内存加密引擎mee(memory encryption engine)加密,该内存区域中的内容(enclave中的代码和数据)只有在cpu内核中才能够被解密,且用于加解密的密钥只有在epc启动时生成并存储在cpu中。可见,enclave的安全边界只包含其自身和cpu,无论是特权或非特权软件都无法访问enclave,即便是操作系统管理员和vmm(virtual machine monitor,虚拟机监视器;或称为hypervisor)也无法影响enclave中的代码和数据,因而具有极高的安全性,并且在上述安全性保障的前提下,cpu能
够在enclave中对明文形式的数据进行处理,具有极高的运算效率,从而兼顾了数据安全性和计算效率。而对于进、出tee的数据,可以是加密的,从而保障数据的隐私。
99.所述tee在被使用前,可以向使用者证明自身是可信的。证明自身可信的过程可能涉及远程证明报告。远程证明报告产生于对tee的远程证明过程中。远程证明报告可以由权威的认证服务器对tee产生的自荐信息进行验证后生成。该远程证明报告可以用于表明tee可信任。
100.例如,机构设备100在使用tee的公钥对推送数据d0加密之前,可以首先验证tee是否可信。具体的,机构设备100可以向tee发起挑战,并接收tee返回的远程证明报告。机构设备100在获取远程证明报告后,可以根据权威认证服务器的公钥对该远程证明报告的签名进行验证,如果验证通过则可以确认tee是可信的。具体是,tee在接收所述验证请求之后,基于其内部机制生成认证信息,并将该认证信息及tee的硬件公钥发送给机构设备100。所述认证信息例如包括所述tee的签名信息、硬件信息和软件信息等。其中,所述签名信息例如通过tee的硬件密钥生成;所述硬件信息例如包括,各种硬件的指标,比如cpu主频,内存容量等等;所述软件信息包括各个程序的代码哈希值、代码名称、版本、运行日志等。如本领域技术人员所知,tee可通过内存硬件执行对其中运行程序的“测量”,例如获取该程序的代码哈希值、该程序在特定执行点的内存占有的哈希值等等,并在所述认证信息中包括对所述程序的“测量”信息,由于该“测量”信息由该tee自身实体(内存硬件)执行,而不涉及任何软件、操作系统,因此是真实可信的。机构设备100在接收到所述认证信息之后,可把所述认证信息发送给tee的远程认证服务器,从而从所述服务器接收到对所述tee的远程证明报告。所述远程证明报告包括所述tee的身份验证、及对所述tee内部执行程序的验证等等。从而,机构设备100基于该远程证明报告可确定tee是可信的,通过该tee的查询结果是可信的。同时,机构设备100可在本地保存tee的硬件公钥,以用于后续对tee的签名的验证。其中,tee中存储一对公私钥,私钥妥善保管在tee中。所述tee传出的内容,可以用所述tee内保存的私钥来签名,从而证明是由该tee执行的结果。
101.在步骤s509,tee将密文推送数据d3提供给服务器400。
102.具体是,tee可将密文推送数据d3存储到tee(即上述epc)外部,并将存储地址发送给服务器,从而服务器400可读取到该密文推送数据d3。其中,tee可将密文推送数据d3与密文推送数据d2的标识“d2”关联存储,以指示密文推送数据d3与数据d2对应。
103.在步骤s511,服务器将密文推送数据d3发送给机构b的机构设备200。
104.具体是,服务器400在接收到密文推送数据d3之后,根据密文推送数据d2与机构b标识的对应关系,获取到机构设备200的连接地址,并通过该连接地址将密文推送数据d3发送给机构设备200。
105.在步骤s513,机构设备200对密文推送数据d3解密,得到推送数据。
106.该步骤可参考上文对步骤s407的描述,在此不再赘述。
107.在本说明书实施例中,通过由机构设备对推送文件进行脱敏加密处理之后经服务器发送给tee、在tee中进行对密文推送数据的处理,排除了服务器作恶的可能,进一步提高了隐私数据的安全性,同时,通过由服务器进行机构之间的中转,可以使得对机构b隐藏该推送数据的发送机构(即机构a),从而可进一步保护用户隐私。
108.在上文两个实施例中,服务器可以知道机构设备100将要将密文推送数据推送给
哪个机构,这样对服务器泄漏了部分隐私数据,在服务器不可信的情况下,可能会带来隐私泄漏风险。本说明书通过如图6所示的另一实施例可以避免该风险。
109.图6为本说明书另一实施例中的风险数据推送方法的流程图。
110.如图6所示,首先在步骤s601,机构设备100生成密文推送数据d4。
111.机构设备100首先生成与机构b对应的推送数据d0,该推送数据d0中包括机构b中的账户(或脱敏账户)及该账户的风险标签。在一种实施方式中,该推送数据中还可以包括发送机构(即机构a)的标识、及机构a中的与上述机构b中的账户对应的账户,以用于指示该风险标签的来源。之后,机构设备100使用tee公钥对该推送数据与目标机构(例如机构b)的标识(例如机构b的didb)的组合数据进行加密,生成密文推送数据d4。通过在密文推送数据中包括机构b的标识,而不是将机构b的标识明文发送给服务器,使得服务器不能获取推送数据的目标机构,保护了用户隐私。
112.在步骤s603,机构设备100向服务器400发送密文推送数据d4。
113.在步骤s605,服务器400将密文推送数据d4和多个机构各自的公钥发送给tee40,其中,该多个机构包括机构b。该多个机构例如为如图3所示通过服务器验证的全部机构,例如包括机构a、机构b和机构c,从而服务器在对各个机构的验证过程中可获取各个机构的公钥,其中包括机构b的公钥。
114.在步骤s607,tee对密文推送数据d4解密,得到推送数据d0和机构b标识,使用机构b公钥对推送数据加密,得到密文推送数据d5,使用其他机构公钥对预设字符串加密,得到对应的密文推送数据。
115.tee40可使用自身的私钥对密文推送数据d4解密,得到推送数据d0和机构b的标识。之后,tee40使用机构b的公钥对推送数据d0加密,得到密文推送数据d5,并将密文推送数据d5与机构b的标识关联地存储在tee中。同时,tee40使用机构c的公钥对指示无效的一字符串(例如“valid 随机数x”)加密,得到密文推送数据d6,将密文推送数据d6与机构c的标识关联地存储在tee中;使用机构a的公钥对指示无效的另一字符串(例如“valid 随机数y”)加密,得到密文推送数据d7(图6中未示出),将密文推送数据d7与机构a的标识关联地存储在tee中。
116.在步骤s609,tee40向服务器400提供密文推送数据及其对应的机构标识。
117.具体是,tee40可向服务器400提供如下面所示的表格:
118.机构a密文推送数据d7机构b密文推送数据d5机构c密文推送数据d6
119.服务器400从而可根据该表格向各个机构发送其对应的密文推送数据。具体是,如图6中所示,服务器400在步骤s611,可将密文推送数据d6发送给机构设备300,在步骤s613,可将密文推送数据d5发送给机构设备200。
120.在步骤s615,机构设备200在接收到密文推送数据d5之后,可使用机构b的私钥对密文推送数据d5解密,从而得到推送数据d0。
121.机构设备300在接收到密文推送数据d6之后,可使用机构c的私钥对密文推送数据d6解密,从而得到“valid 随机数x”,机构设备300根据该明文数据中的“valid”可确定该明文数据为无效数据。
122.在该实施例中,tee40通过使用各个机构的公钥生成发送给各个机构的密文推送数据,从而对机构a发送给机构b的密文推送数据进行了混淆,使得服务器400不能获知机构a发送的密文推送数据的目标机构为机构b,从而保护了隐私数据,提高了数据安全性。
123.图6中虽然示出了机构设备100将密文推送数据d4发送给服务器,服务器将密文推送数据d4和各个机构公钥提供给tee,本说明书实施例不限于此。在一种实施方式中,机构设备100可将密文推送数据d4直接发送给可信单元,可信单元可基于预先获取的多个机构公钥生成密文推送数据d5和d6,并直接将密文推送数据d5和d6发送给对应的机构设备。
124.图7为本说明书另一实施例的风险数据推送方法的流程图。
125.如图7所示,首先,在步骤s701,机构设备100生成密文推送数据d1。该步骤可参考上文对步骤s401的描述,在此不再赘述。
126.在步骤s703,机构设备100将密文推送数据d1和机构b的标识关联地存证到区块链中。
127.具体是,机构设备100可以向区块链发送例如交易tx1,该交易tx1的发送账户为机构a的dida,该交易中包括密文推送数据d1和关联的机构b的标识。区块链中的各个节点在接收到该交易tx1之后,在对交易tx1达成共识之后,分别执行该交易tx1,将交易tx1存储的区块链中,从而将密文推送数据d1和机构b的标识关联地存证到区块链中。
128.在步骤s705,机构设备200从区块链获取密文推送数据d1。
129.机构设备200可定期从区块链的某个节点拉取区块数据,在拉取到区块数据之后,可搜索区块数据中包括机构b的标识的交易,从而可搜索出交易tx1,并从交易tx1中读取密文推送数据d1。
130.在一种实施方式中,机构设备200可定期从区块链节点拉取与机构b的标识关联存储的数据,从而,区块链节点仅将密文推送数据d1返回给机构设备200,通过这样,机构设备200不能获知该密文推送数据d1由机构a发送给机构b,从而进一步保护了隐私数据。
131.在步骤s707,机构设备200对密文推送数据d1解密,得到推送数据d0。
132.机构设备200可使用机构b的私钥对密文推送数据d1解密,从而得到推送数据d0。
133.在该实施例中,机构设备100可将发送给其它多个机构的密文推送数据都存证到区块链中,各个机构也可以从区块链中查询其它机构发送给其的密文推送数据,提高了机构设备100对上下游机构发送密文推送数据的效率。同时,通过由区块链进行对密文推送数据的存证,在保护隐私数据的同时保证了数据安全性。
134.图8为本说明书实施例中的一种可信单元的架构图,包括:
135.获取单元81,用于获取第一密文推送数据,所述第一密文推送数据通过对推送数据和第二机构的标识的组合数据加密而生成,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第二账户的风险标签基于所述一个或多个第一账户的风险标签确定;
136.解密单元82,用于对所述第一密文推送数据解密,得到所述推送数据和所述第二机构的标识;
137.加密单元83,用于使用预先获取的所述第二机构的公钥对所述推送数据加密,得到所述第二密文推送数据;
138.输出单元84,用于输出所述第二密文推送数据,以用于发送给所述第二机构设备。
139.图9为本说明书实施例中的一种服务器的架构图,包括:
140.接收单元91,用于从第一机构的第一机构设备接收第一密文推送数据,所述第一密文推送数据通过对推送数据和第二机构的标识的组合数据加密而生成,所述推送数据包括所述第一机构中一个或多个第一账户在业务上关联的第二机构中第二账户的账户信息和风险标签,所述第二账户的风险标签基于所述一个或多个第一账户的风险标签确定;
141.提供单元92,用于将所述第一密文推送数据和预先获取的多个机构的公钥提供给可信单元,所述多个机构中包括所述第二机构和一个或多个第三机构;
142.所述接收单元91还用于:从所述可信单元接收第二密文推送数据及其对应的第二机构的标识、以及一个或多个第三密文推送数据及其对应的第三机构的标识,所述第二密文推送数据通过使用所述第二机构的公钥对所述推送数据加密而生成,所述一个或多个第三密文推送数据通过使用各个第三机构的公钥分别对用于指示无效数据的一个或多个数据加密而生成;
143.发送单元93,用于将所述第二密文推送数据发送给所述第二机构,将各个第三密文推送数据发送给各个第三机构。
144.本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如图2、图3或图4所示的方法。
145.本说明书实施例还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如图2、图3或图4所示的方法。
146.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
147.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可
读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
148.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本技术不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
149.虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
150.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
151.本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
152.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
153.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
154.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
155.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
156.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
157.本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
158.本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
159.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点
可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
160.以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献