在线excel表格助力企业高效管理与数据分析的未来趋势
623
2022-05-29
1 业务场景
推进公共数据资源开发利用,是政府实现深化“放管服”改革和数字政府建设的必然要求,有利于优化产业结构,培育新增长点,发展壮大数字经济,更好的服务于辖区企业,促进经济高质量发展。
公共数据资源共享需求迫切,在实际落地时遇到诸多挑战,最主要的问题是如何确保不同来源数据的安全,避免敏感数据在使用过程泄漏出去。业界主要采用可信智能计算(隐私计算)和联邦学习等技术应对数据安全挑战,通过建立集中式或分布式的加密计算环境,保障数据使用过程中不被泄漏,实现数据的“可用不可见”。
xx市政数局和华为合作,在华为云上创建了公共数据开放联盟(测试环境),政府部门使用华为云账号参与联盟,完成政务数据注册、数据发布等相关操作。银行作为数据使用方,基于政府开放的公共数据,建立小微企业信用评估模型,为普惠金融的落地提供技术支持。
2 方案架构
公共数据开放联盟在华为云端支持接入多方数据,以本次业务场景为例,接入了工信局、电力局等委办局(下面架构图只标示了前两者)的开放数据,不同委办局均作为联盟参与方,将 RDS 云数据库中的企业关联数据,接入到数据联盟,并配置字段级数据访问隐私规则,控制银行对数据的访问方式,避免敏感数据泄漏。银行登录本地 TICS Agent 管理页面,发起融合数据分析任务,基于企业信用评估规则设计 SQL 分析脚本,运行脚本完成企业信用评估分析。
方案实施前置条件:
联盟参与方均已加入数据联盟,完成 TICS Agent 代理部署,参考 跨内网代理部署 TICS Agent
数据提供方(电力局、工信局)已准备公共数据资源,且导入 RDS for Mysql 数据库
3 数据接入
数据提供方首先须将数据接入数据联盟,数据接入操作不会搬迁数据,只是建立 JDBC 数据连接通道,并将元数据信息发布到数据联盟。数据接入的操作,均须登录 TICS Agent 完成,包括以下步骤:
登录 TICS Agent 代理:登录华为云控制台 TICS 服务,选择 代理管理,点击代理名进入代理管理页面,点击代理登录地址 “前往代理 Agent”,打开代理登录界面,输入代理用户名 Admin 与代理登录密码,完成代理登录
创建连接器:连接器用于打通数据库访问通道,点击 “连接器管理” -> “创建”,输入相关信息
创建接入数据集:登录代理页面,点击 “数据管理” -> “创建”,选择需要导入的数据库、表和字段信息
配置隐私策略:配置页面同上一步骤,勾选需要导入的字段,在字段类别一栏填入隐私保护策略
唯一标识:对应数据库的 Unique 主键,如身份证号,SQL 语法只允许作为 JOIN 操作的比对条件,确保对个人标识的隐私保护
敏感:需要保密的信息,配置完成后,用户无法通过 SELECT 字段操作,查看该字段的明细数据;可以和其他敏感字段一起,进行不可逆的四则运算操作
非敏感:不存在任何使用限制,用户可以通过 SELECT 字段操作查看明细信息,如不希望明文显示,可配置为 “脱敏”,用户只能看到脱敏后的数据
重复以上步骤,依次将数据集导入到电力局和工信局数据联盟账号,分别为 nanshu1 和 nanshu2。
nanshu1 依次导入生成以下数据库表:
数据库名称:SZZF_YSXX(重命名后的名称,下同);数据描述:企业用水量
数据库名称:SZZF_YQXX;数据描述:企业用气量
数据库名称:szzf_ydxx;数据描述:企业用电量
nanshu2 依次导入生成以下数据库表:
数据库名称(重命名后的名称,下同):SZZF_ZBCGXX;数据描述:招标采购信息
数据库名称:SZZF_SZCYFZZXZJFCMD;数据描述:深圳市产业发展专项资金扶持资助名单
数据库名称:SZZF_SQLJBTMD;数据描述:市区两级贴息数据名单
数据库名称:SZZF_SBJN_INFO;数据描述:企业社保缴纳情况表
数据库名称:SZZF_LRJYYCML_INFO;数据描述:列入经营异常名录信息表
4 信用评估
银行基于电力局和水利局导入的数据,以企业信用代码 CREDIT_NO 为关联字段,针对企业不同类别数据设置不同权重,最终得到不同企业的信用评分值,具体操作步骤如下:
创建作业:登录 TICS Agent 代理,点击 “作业管理” > “联邦数据分析” > “创建”,弹出 “创建作业” 对话框,输入作业名称 “信用评分”,完成作业创建
设计信用评分脚本:基于企业信用评估模型,将以下 SQL 语句设计的企业的信用评估模型,输入到作业执行框中
SELECT A.数据日期, A.统一社会信息代码, A.注册号, A.企业名称, 0.5*资助金额*0.3+0.4*贴息金额*0.3+0.2*标的金额*0.3+(0.05*水费缴纳金额+0.05*汽费缴纳金额+0.05*电费缴纳金额)*0.1 as 信用评分 FROM ( SELECT T1.DATA_DT 数据日期 , T1.CREDIT_NO 统一社会信息代码 , T1.GSZCH 注册号 , T1.CUS_NAME 企业名称 , T1.SBJN_NUM 社保缴纳人数 , T1.SBJN_BAL 缴纳金额 , T2.KQTD_BAL 资助金额 , T3.LJTX_BAL 贴息金额 , T4.BDBAL 标的金额 , T5.WT_BAL 水费缴纳金额 , T6.ELC_BAL 电费缴纳金额 , T7.LNG_BAL 汽费缴纳金额 , T8.SEQ_NO 序号 FROM nanshu2.SZZF_SBJN_INFO T1 LEFT JOIN ( SELECT CUS_NAME, CREDIT_NO, INDUSTRY, ZC_ADDRESS, KEY_TEC, JY_STAUS, SUM(KQTD_BAL) AS KQTD_BAL FROM nanshu2.SZZF_SZCYFZZXZJFCMD WHERE DATA_DT BETWEEN '2019-12-31' AND '2022-01-01' GROUP BY CUS_NAME, CREDIT_NO, INDUSTRY, ZC_ADDRESS, KEY_TEC, JY_STAUS ) T2 ON T1.CREDIT_NO= T2.CREDIT_NO LEFT JOIN ( SELECT DATA_DT, CUS_NAME, CREDIT_NO, INDUSTRY, ZC_ADDRESS, TXT, JY_STAUS, SUM(LJTX_BAL) AS LJTX_BAL FROM nanshu2.SZZF_SQLJBTMD WHERE DATA_DT BETWEEN '2019-12-31' AND '2022-01-01' GROUP BY DATA_DT, CUS_NAME, CREDIT_NO, INDUSTRY, ZC_ADDRESS, TXT, JY_STAUS ) T3 ON T1.CREDIT_NO= T3.CREDIT_NO LEFT JOIN ( SELECT CUS_NAME, CREDIT_NO, ZC_ADDRESS, LEGAL_REPRESENTATIVE, KEY_TEC, CARD_NO, GSZCH, ZZJGDM, LSBD, LSZBSJ, SUM(BDBAL) AS BDBAL, BLJL FROM nanshu2.SZZF_ZBCGXX WHERE DATA_DT BETWEEN '2019-12-31' AND '2022-01-01' GROUP BY CUS_NAME, CREDIT_NO, ZC_ADDRESS, LEGAL_REPRESENTATIVE, KEY_TEC, CARD_NO, GSZCH, ZZJGDM, LSBD, LSZBSJ, BLJL ) T4 ON T1.CREDIT_NO= T4.CREDIT_NO LEFT JOIN nanshu2.SZZF_LRJYYCML_INFO T8 ON T1.CREDIT_NO= T8.CREDIT_NO LEFT JOIN nanshu1.SZZF_YSXX T5 ON T1.CREDIT_NO= T5.CREDIT_NO LEFT JOIN nanshu1.SZZF_YDXX T6 ON T1.CREDIT_NO= T6.CREDIT_NO LEFT JOIN nanshu1.SZZF_YQXX T7 ON T1.CREDIT_NO= T7.CREDIT_NO ) A WHERE A.序号 IS NULL
执行作业:点击 “保存并执行” 按钮,作业将在电力局和工信局的两侧代理启动运行,将结果汇总到汇聚节点 AGG 进行融合分析
查看作业结果:点击下方 “执行结果” 标签,查看信用评分的执行结果,代理页面会显示前 100 条记录,最终的执行结果,则存储在代理本地路径下(路径地址在创建代理时设置)
查看计算过程:点击 “计算过程” 标签,通过可视化的方式,查看数据在代理和汇聚节点间的流转路径、数据条数等信息
5 数据安全
融合数据分析场景,数据使用方利用多方数据,使用标准 SQL 语句进行融合分析,数据(原始数据或中间结果数据)将在 TICS AGG 汇聚节点融合,由此带来 3 类数据泄漏风险:传输过程泄漏、计算过程泄漏和数据使用方泄漏,下面分别针对 3 类风险分别介绍应对方案。
5.1 传输过程泄露
数据传输过程包括 数据提供方 -> TICS AGG -> 数据使用方 三个环节,这三个环节均暴露在公网环境下,须对传输数据进行加密,加密过程说明如下:
数据提供方加密:数据从提供方发出时,生成 sessionKey 对数据进行加密(使用非对称加密算法 RSA2048),AGG 公钥对 sessionKey 进行加密(加密算法使用 AES 256,后续会支持国密算法 SM2 和 SM4),使用 Agent 1 私钥签名,通信协议采用 GRPC + TLS;多个提供方使用同一 AGG 公钥对数据进行加密,但使用不同的 Agent 私钥进行签名
TICS AGG 解密与计算执行:TICS AGG 收到数据提供方 TICS Agent 发来的数据后,使用 Agent 1 公钥对数据进行签名校验,确保数据来自可信代理;同时使用 AGG 私钥对数据进行解密,此时解密过程必须在可信计算环境 TEE 内才能完成,因为私钥只在 AGG 的可信计算的内存环境中保存,不落盘存储,第 3 方就算拦截了数据,也无法进行解密。解密后的数据,在 TEE 环境中执行明文运算,得到最终结果
注:如果可信计算环境采用的是基于软件的同态加密技术,则 TICS AGG 无需对加密数据执行解密操作,直接使用密文进行运算,得到加密后的结果数据,发送给数据使用方,由使用方完成数据解密
TICS AGG 加密与数据使用方解密:AGG 完成聚合计算后,使用 Agent 2 公钥对计算结果加密,使用 AGG 私钥签名,将加密后的数据通过 GPRC + TLS 协议传输给数据使用方代理 TICS Agent 2;TICS Agent 2 使用 AGG 公钥对数据签名进行校验,使用 Agent 2 私钥对数据进行解密,获取计算结果
5.2 计算过程泄露
融合计算在 TICS AGG 节点完成,计算过程对数据保护有两种实现方式,TEE 硬件加密和基于软件的密文计算技术,对比如下:
TEE 硬件加密技术安全机制:TICS AGG 聚合节点部署在鲲鹏 TEE 或者带 Intel SGX 芯片的服务器上,负责数据解密的私钥会存放在 Arm TrustZone 或者 SGX 芯片上,数据解密、明文计算和计算结果加密的操作,只能在 TEE 隔离可信计算环境下调用执行,外部无法通过 dump 等操作看到内部信息。由于 TEE 加密技术对硬件有依赖,可以使用基于 docker 的安全容器作为替代方案,所有计算均在封闭的 docker 安全容器内执行。
软件密文计算技术安全机制:采用同态加密技术,针对每一个计算任务,数据使用方生成公私钥对,将公钥发送给数据提供方,数据提供方对敏感数据进行加密处理,AGG 计算使用的数据是密文,第 3 方无法破解。同态加密使用 PSI 算法进行集合求交,以纯密文的方式进行 ID 交互和碰撞,TICS AGG 平台管理方也看不到明文信息。加密的最终结果发送给数据使用方,数据使用方拥有同态加密的私钥,使用私钥解密拿到最终结果。
5.3 数据使用方泄露
数据使用方得到的融合计算结果数据,是通过标准 SQL 分析语句运算得出,存在敏感数据通过数据使用方泄漏的风险。可信计算关键要保护敏感原始数据,数据使用方可以获取基于敏感原始数据的分析结果,敏感原始数据不会直接暴露,且不会被其他方式逆推获取,实现数据“可用不可见”的安全理念。
可信智能计算技术,主要通过以下技术手段,避免敏感数据被数据使用方泄漏:
设置安全隐私策略:参考本文章节 3 数据接入 配置隐私策略的描述,对数据库各字段设置 “唯一标识”、“敏感”和“非敏感”隐私保护规则,实现数据安全的防护,以下示例说明安全隐私策略的保护原理
“敏感”字段使用方无法查询明细:安全隐私策略为“敏感”的字段,不支持 SELECT 该字段的操作,避免数据使用方直接获取“敏感”字段信息
# nanshu1.SZZF_YSXX 企业用水量表字段 WT_BAL 用水量的安全隐私策略为“敏感” SELECT CUS_NAME 企业名, WT_BAL FROM nanshu1.SZZF_YSXX # 以上操作执行时将失败,提示“用水量 WT_BAL 是敏感数据, 不允许在结果中被 SELECT”
避免恶意分组查“敏感”数据:根据安全隐私策略设计,可以对敏感数据执行统计类操作,如 AVG, SUM 等,但须防止用户通过恶意分组行为,如每一分组只有一个用户,来嗅探明细数据
# 数据使用方通过两个表做 JOIN 操作,根据企业 ID 进行分组,再对“敏感”字段用水量 WT_BAL 求和,由于企业 ID 在每个表格中是唯一的,该方式将获得各企业的用水量信息 SELECT t2.CREDIT_NO, SUM(WT_BAL) FROM nanshu1.SZZF_YSXX t1 JOIN nanshu2.SZZF_SBJN_INFO t2 ON t1.CREDIT_NO = t2.CREDIT_NO GROUP BY t2.CREDIT_NO # 以上操作执行时将失败,提示“sum(用水量)存在泄露用水量的可能”(检测到每组的用水量只有1个,怀疑是恶意分组) # 下面语句可以顺利执行 SELECT AVG(WT_BAL) FROM nanshu1.SZZF_YSXX t1 JOIN nanshu2.SZZF_SBJN_INFO t2 ON t1.CREDIT_NO = t2.CREDIT_NO
多个敏感数据融合分析:多个“敏感”字段的多项式分析,由于其不可逆推,将通过安全隐私策略的检测;多项式存在的一个风险:用户用不同计算公式,针对同一变量进行多次计算,从而通过多项式方程求解得到原始值,针对该风险,后续可通过对比当前分析模型和历史分析模型的近似程度,识别恶意行为
SELECT A.数据日期, A.统一社会信息代码, A.注册号, A.企业名称, 0.5*资助金额*0.3+0.4*贴息金额*0.3+0.2*标的金额*0.3+(0.05*水费缴纳金额+0.05*汽费缴纳金额+0.05*电费缴纳金额)*0.1 as 信用评分 FROM # 以下 SQL 语句省略,参考上文章节 4 信用评估
唯一标识信息套取:设置为“唯一标识”的字段,都是个人或企业的唯一识别信息,如身份证和企业信用代码,一般为字符串类型,主要作为 JOIN 操作的比对条件;“唯一标识”字段属于重点保护信息,应防止用户绕开保护机制,套取全量的标识信息
# nanshu1.SHEBAO 社保信息表字段 SFZID 身份证号码,nanshu2.XUELI 学历表字段 SFZID 身份证号码 ZSID 学历证书号,两张表中的 SFZID 设置安全隐私策略为“唯一标识” SELECT ZSID FROM nanshu1.SHEBAO s JOIN nanshu2.XUELI b ON s.SFZID = b.SFZID # 以上操作执行时将失败,提示“提示 zsid 会泄露身份证 id”,因为“唯一标识”是强保护策略,执行时检测到 ZSID 和 SFZID 是一对一关系,存在唯一标识信息被套取风险
复杂计算数据提供方审批:基于安全隐私策略的数据安全防护,该领域的研究刚起步,在实际应用中,可能存在安全漏洞,同时,安全限制过强的规则,也会影响一些正常业务分析的执行。TICS 提供数据提供方审批的配置项,可以在数据联盟级别配置,配置生效后,所有的计算任务执行,均会提交到数据提供方侧审批,TICS 会根据隐私规则,提供计算任务的数据安全分析报告,复制审批决策
差分隐私防止多项式逆推:设置为“敏感”的多个字段,在做多项式联合分析的时候,数据使用方恶意设计多个相似计算任务,修改多项式计算的参数,或者改变参与计算的“敏感”字段数量,从而倒推得到特定的敏感字段值。针对这种情况,可以采用差分隐私技术,在每一次计算过程中添加随机高斯噪声,保证多次历史结果无法准确逆推敏感数据明文
SELECT SUM(amount) FROM T1.CREDIT_ID JOIN T2.CREDIT_ID GROUP BY industry
数据计算全流程可视:融合数据分析的计算全过程,将通过可视化数据流图方式保存下来,可随时回溯数据使用方对数据的详细操作,对数据使用方的恶意行为形成有效威慑,也有助于监管方的安全审计
区块链计算过程存证:全过程数据相关行为支持使用区块链存证,包括谁使用了数据、使用了哪些数据、执行了哪些操作等,确保数据计算全过程不可篡改和抵赖,实现数据行为可追溯可审计。未来,融合数据分析计划引入区块链的智能合约,实现数据使用前的数据确权
未来规划:数据安全的攻防,长期来看类似于网络攻防的发展,安全隐私策略、规则的设计根据业务场景的需求,将不断完善、丰富,是一个持续迭代的过程。同时,针对结构化数据集,将增加更多精细化的权限控制策略,包括数据集的访问策略、数据集行级权限控制等(当前的隐私策略设计主要针对列级)
6 应用价值
本案例的实际应用效果获得了用户的高度认可,数据可用不可见的用数方式,打消政府部门对于敏感数据泄露的顾虑,有利于提升公共数据开放的广度和深度,促进小微企业普惠金融等业务场景的快速落地。经多方用户调研,本方案在以下几个方面,对业务应用支持效果最为突出:
可信计算:数据传输、计算和使用全流程安全保障,对敏感数据全方位保护,特别是基于 TEE 硬件加密和软件密文计算技术,在计算环节对数据进行安全防护,解决了以往数据泄露防护最弱的一环
简单易用:屏蔽不同数据来源的技术差异,基于统一的 SQL 分析脚本执行融合分析运算,数据使用方不用考虑数据源类别、网络连通性、数据存储和计算环境,聚焦业务应用,降低了数据使用方利用多方数据的难度
安全审计:计算过程可视,使用区块链进行过程存证,有助于数据使用环节的安全审计,便于数据监管方管理数据使用方行为
开放架构:支持云边两种数据接入方式,满足不同类型用户需求。支持主流数据库数据源接入,数据提供方无需对业务数据库做任何改造。
7 FAQ
Q1 联邦数据分析场景下,数据是否都将汇聚到 AGG 节点
只有需要汇聚的中间结果数据,是在聚合节点进行计算。换句话说,凡是在本地节点完成计算的,都在本地算,本地算完的中间结果,再推送到聚合节点做融合计算。
机器学习 金融专区
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。