一种卷烟营销数据细粒度血缘安全分析方法
2022-08-25王树明
王树明,余 菁,陈 军
(1.中国烟草总公司湖北省公司;2.武汉楚烟信息技术有限公司,湖北武汉 430030)
0 引言
随着大数据时代的来临,数据作为重要的企业资产越来越受到重视,面对纷繁复杂的企业数据,如何挖掘和利用其中的信息和知识成为企业大数据分析的关键。数据血缘[1]描述了数据从产生,并随时间推移而演变的整个过程,数据血缘分析的应用领域非常广,包括数据质量评价、数据核查、数据恢复和数据引用等。本文以卷烟营销系统为研究对象,研究卷烟营销系统中数据血缘分析问题。
卷烟营销系统庞大且复杂,主要可以分为计划管理、需求预测、货源组织、货源供应、订单管理、客户服务、品牌管理、市场监测、网建管理、综合管理等十大业务环节,各业务环节之间有着复杂的数据引用关联关系。涉及的主要业务平台系统包括:省级营销平台、一体化服务平台、市综合业务平台等。营销系统中的数据有可能来自于其他多个数据源,甚至是来自外部第三方应用。同时,即使是同一数据集的数据也有可能来自不同的数据源,这些数据关系的复杂性和不确定性都给卷烟营销数据的血缘分析带来了巨大挑战。因此,当前我国省级卷烟营销系统亟需一种高效、支持细粒度的数据血缘追溯分析解决方案。
云计算具有动态可扩展、按需付费、集中管理和算力强大等优点,因此对于企业而言,将传统业务迁移到云端已成为一种必然的技术选择。现有云架构大致可以分为公有云、私有云和混合云架构。目前,公有云发展较快,但是公有云属于托管性质,云租户缺乏对物理设备的控制权,因此,很多企业和机构出于安全性考虑而选择部署私有云数据中心的方式来集成管理企业内部信息系统。企业选择部署私有云是由于私有云具有更高的安全性和可控性,但是实际运营过程中,私有云数据中心也面临着安全隐患。现有省级卷烟营销平台往往采用混合云的架构,在外包云数据中心环境下如何保障数据血缘分析的安全性和高效性是卷烟营销数据血缘分析面临的又一巨大挑战。
1 相关工作
数据血缘技术对多源数据集成、演化过程进行分析、研究,获取原始数据到目标数据的具体生成、转换流程。数据血缘包括静态的源数据信息和动态的数据演化过程。针对数据血缘分析,Cui 等[2]从数据库关系运算符操作出发,定义了数据血缘的具体流程,例如SPJ 段是通过查询、投影和选择操作构成的标准形式查询。在后续研究[3-4]中,基于数据血缘分析的定义,进一步构建数据血缘分析的完整体系,从操作对应的元组起源、数据起源追踪查询、数据分割操作、视图元组起源到数据集合起源等,并给出了数据血缘查询的具体系统实现,但是该方法需要对全局数据模型进行建模,并不能很好地解决多源数据应用场景下的数据血缘验证问题。Buneman 等[6]利用辅助数据库对数据血缘信息进行管理,根据使用者对辅助数据库的操作来追溯使用者的操作,这种方法需要额外构建辅助数据库,而且在大数据量并发操作场景下,保持事务一致性给云数据服务中心会带来很大压力。Ruan 等[9]针对区块链设计一种细粒度、安全、高效的区块链数据溯源系统LineageChain。朱运磊等[10]利用布尔公式、逻辑蕴含和图模型的性质及等价转换机制,将不确定性数据的世系表达式等价地转换为贝叶斯网络,并基于贝叶斯网络的概率推理对查询请求进行应答。
上述方法利用各类辅助数据完成数据血缘查询任务,近年来随着云计算的兴起,云数据库成为企业管理海量数据的主要选择。但外包云数据库服务模型中云计算中心并不完全可信,如何保障数据血缘审计的安全性和可验证性成为数据血缘查询研究的重要研究方向,利用密码学方法保证数据血缘安全查询是主要技术方案。Porkodi 等[11]设计一种基于混合属性加密的数据溯源方法,该溯源方法可以实现基于区块链针对物联网数据流的高效、安全溯源操作。Simon 等[12]针对数据存储优化场景,提出了一种基于图数据库的医疗应用数据溯源方法,保障在云平台环境下医疗数据的高效溯源。Marchetti 等[22]提出一种针对网络中数据泄露的溯源追踪方法,利用有向无环图及Kmeans 聚类等方法对网络流量监控识别,从而确定大型网络中恶意活动的特定主机。Priebe 等[14]利用水印技术嵌入加密安全标签和安装监视器的方式使得云租户能够实时监控其数据流。Bertino 等[15]将数据溯源技术、机密访问控制以及可信计算相结合,提出一种构建安全数据来源路线链图的方式,确保不影响人员隐私的情况下,实现数据来源的高度保证。
然而,上述方法并不能很好地兼顾外包云数据服务中心场景下数据血缘分析的高效性和安全性。近年来,大数据技术普遍应用于我国烟草数据平台和信息系统建设[7-8],我国卷烟营销系统大多基于云服务平台建设,但目前缺乏有效的烟草营销数据血缘分析解决方案。本文借鉴代理重加密方法,研究云环境下的卷烟营销数据血缘分析方法,实现了混合云模式下安全、高效的细粒度数据血缘分析服务。
2 基于代理重签名的卷烟营销数据细粒度血缘分析方法
为了实现数据血缘的细粒度、高效查询,设计基于代理重签名的卷烟营销数据血缘分析方法,首先介绍用到的密码学工具,包括代理重签名算法和双线性映射,然后介绍卷烟营销数据,最后介绍卷烟营销数据的血缘查询分析方法。
2.1 代理重签名算法
代理重加密[5]由一组多项式时间算法:KeyGen、ReKey、Sign、ReSign、Verify 组成。代理重加密算法允许一个半可信的机构(云数据中心)将用户Alice 的加密数据安全地转换成另一个用户Bob 的加密数据。对于安全的代理重加密算法而言,半可信机构不能通过代理重加密算法本身或分析存储的加密数据、收到的通信消息以获取任何参与者(Alice,Bob)信息。本文假设云数据中心是半可信的,即云数据中心会正确执行协议,但是云数据中心存在猜测平台用户秘密信息的可能。
2.2 双线性映射
设G1和G2是两个阶为素数p的循环群,g是G1的一个生成元,若映射e:G1×G1→G2为一个双线性映射,则映射e满足以下条件:①双线性:∀a,b∈Zp*,满足e(ga,gb)=e(g,g)ab;②非退化性:e(g,g)≠1∈G2,其中1 代表G2群的单位元;③可计算性:∀g1,g2∈G1,存在一个有效的算法,可以在多项式时间内计算e(g1,g2)。
2.3 卷烟营销数据
卷烟营销系统数据复杂,有可能来自烟草公司的基础数据,或者来自卷烟营销系统内部。为了进行卷烟营销数据血缘分析,将卷烟营销系统平台数据分成3 类:B 表、K表、R 表。
B 表为基础表,接口表入库后被命名为B 表。B 表来源于源端业务系统,即基础业务层的原始粒度数据。
K 表为加工过程表,其数据由B 表加工生成,可能来自一个或多个B 表。B 表加工后形成共享程度高,业务含义也丰富的K 表。
R 表为业务指标表,其数据有B 表和K 表数据加工生成,将数据按业务单元、分析主题进行加工整合,用于对外提供数据服务。
卷烟营销数据中心内B 表、K 表、R 表须严格遵守数据分层存储、层级间加工转换规则:①K 层数据表可由B 层、K 层数据表加工而成;②R 层数据表可由B 层、K 层数据表加工而成;③R 层数据表不能生成R 层数据表。
卷烟营销数据表分层存储样例如图1 所示,卷烟营销数据平台中每个数据表拥有唯一表标识(如B_id,K_id,R_id)。
Fig.1 Example of hierarchical storage of cigarette marketing data table图1 卷烟营销数据表分层存储示例
卷烟营销数据在源端业务系统产生后,按业务域和业务环节采集进入数据中心。数据中心对数据进行清洗转换、汇聚加工、分级存储。源层数据清洗转换后形成业务数据基础表(B 表层)和主数据表。基础表(B 层)数据经过加工汇聚,形成加工过程表(K 层)和业务指标表(R 层)。建立数据服务目录,对外提供数据服务,支撑源端业务系统运行及各类数据服务应用。烟草营销数据总体分布存储及处理框架如图2所示。
Fig.2 Overall distribution framework of tobacco marketing data图2 烟草营销数据总体分布框架
卷烟营销数据安全、高效血缘分析针对K 表和R 表,可以查询数据来源和演化途径,针对卷烟营销数据实际情况,即使同一个K 表或R 表中数据也可能来自不同数据源(B 表或K 表)。本文设计细粒度的血缘分析机制,可以针对元组进行细粒度的数据血缘追溯。考虑到云数据中心并不完全可信,数据库中血缘溯源数据具有不可抵赖性,可以有效抵抗来自云服务器段的伪造和替换攻击等攻击方式。
2.4 细粒度卷烟营销数据溯源标签
卷烟营销数据平台系统模型有平台管理中心、平台用户(平台应用子系统)、云数据中心3部分组成。平台管理中心主要负责平台用户身份管理,并为平台用户生成密钥信息。平台管理中心不需要强大的计算能力和存储能力,构建在烟草公司私有云环境下,可以认为是完全可信的。云数据中心负责存储管理卷烟营销数据平台中的全部数据,构建在公有云环境下,则被认为是半可信的,有可能受到外部攻击,也有可能出于好奇而探测平台数据。平台用户(平台应用子系统)为卷烟营销平台的授权用户,拥有访问、修改平台数据的权限,同时可以查询平台营销数据的血缘信息。卷烟营销数据平台系统架构如图3所示。
Fig.3 Cigarettemarketingdataplatformsystemmodel图3 卷烟营销数据平台系统模型
卷烟营销数据平台中,用户更新营销数据时,写入数据血缘信息,并对数据血缘信息进行签名。基于卷烟营销数据分层存储结构,系统中平台用户只能更新K表和R表数据,B表数据作为基础数据不能更新。平台设计代理重加密算法∏={Setup,KeyGen,Sign,ReKey,ReSign,Verify}实现平台营销数据血缘分析管理。
Setup(1λ)→(e,g,G1,G2,H)为系统初始化函数,生成全局安全参数,由平台管理中心调用,算法以系统安全参数λ作为输入,输出系统全局安全参数(e,g,h,G1,G2,H),其中e:G1×G1→G2为双线性映射,g,h(g≠h)为G1的生成元,H:{0,1}*→Zp为安全哈希函数。
Sign(t_id,b_id,sk)→σ由平台用户调用,为元组的血缘数据生成签名。系统中为了实现细粒度的数据血缘追溯,每个元组都由最后的修改者根据数据血缘信息进行签名。卷烟营销系统中B表为基础表,其数据来源于源端业务系统,可以认为在卷烟营销业务中是未经加工数据,因此B表数据并不进行数据血缘签名。平台用户更新K表或R表中数据时,对数据血缘信息进行签名。用户u(密钥为sk)修改K表数据项t_id(t_id∈Zp是元组的唯一标识)时,t_id元组数据源来自B表集合{B_id1,B_id2,…,B_idn},而当用户u修改R表数据项t_id时,t_id元组数据源来自B表集合{B_id1,B_id2,…,B_idn}和K表集合{K_id1,K_id2,…,K_idm},b为元组t_id的数据血缘连接信息,即b_id=B_id1||B_id2||…||B_idn||K_id1||K_id2||…||K_idm,u对t_id元组血缘数据签名如下:
(1)u选择随机数k∈Zp,并计算r=hk;
(2)u计算H(b_id||r),输出s=sk×(H(b_id||r)+k×t_id)modp
(3)u输出签名σ如下:
ReKey(pk,sk’)→rku→u’由平台管理中心和平台用户u’调用,算法输入用户u的公钥pk以及用户u’的私钥sk’,输出代理重加密密钥rku→u’。
ReSign(σ,rku→u’)→σ’由云数据中心执行,算法输入血缘数据签名σ(由数据的最后访问者u签名),由用户u到u’的代理重加密密钥’为数据血缘关系的验证者)。
Verify(t_id,b_id,σ)→{1,⊥}为验证算法,由平台用户u执行,基于元组t_id的血缘信息b_id的数据签名σ进行验证,当血缘数据签名正确时输出1,否则输出⊥。
2.5 基于代理重签名的卷烟营销数据血缘分析算法
卷烟营销数据平台中,平台用户u修改K表或R表数据时,根据新数据来源记录数据血缘信息,并调用Sign签名算法对数据血缘信息进行签名,上传存储在云数据中心,表结构如图4所示。
卷烟营销平台中所有的平台用户可以查询K表和R表中元组的数据血缘信息,如K表t_K_1的元组t_1中的数据来源于B表t_B_1和t_B_3,而R表t_R_1的元组t_3中的数据来源于B表t_B_4,t_B_7和K表t_K_1。用户u利用个人私钥sk对元组血缘数据进行签名σ(r,s)如式(1)所示。
基于云数据中心的安全性需求,设计两种数据血缘查询验证方法:①修改者身份公开血缘查询机制;②修改者隐私保护血缘查询机制。在修改者身份公开血缘查询模式下,数据的最终修改者身份信息公开,血缘查询者可以查询数据血缘信息,并基于血缘签名利用数据修改者的公钥验证数据血缘信息。而考虑到卷烟数据平台安全性需求,部分数据的修改者信息不能公开,则血缘查询者不能利用修改者公钥对数据血缘进行验证。本文利用代理重加密机制实现修改者身份信息隐私保护前提下的数据血缘高效查询及安全验证。
Fig.4 Storage structure of kinship information in cigarette marketing data table图4 卷烟营销数据表血缘信息存储结构
2.5.1 修改者公开血缘查询机制
在修改者公开血缘查询机制下,平台用户u访问卷烟营销平台中K 表或R 表数据元组t_id,可知t_id 的最终修改用户u’(公钥为pk’=gsk’),以及u’记录的元组血缘信息。u可以基于pk’调用Verify 算法对元组血缘数据进行查询验证,过程如下:
(1)u访问元组t_id,获取元组的数据血缘信息{B_id1,B_id2,…,B_idn,K_id1,K_id2,…,K_idm};
(2)u访问平台管理中心,获取元组t_id修改者u’的公钥pk’=gsk’;
(3)u选择随机数λ∈Zp,并发送挑战信息{t_id,λ}给云数据中心;
(4)云数据中心计算hλs,rt_id,生成验证消息{r,hλs,rt_id}并返回给u;
(5)u计算H(B_id1||B_id2||…||B_idn||K_id1||K_id2||…||K_idm||r)modp,并验证t_id 的数据血缘信息如式(2)所示:
基于双线性映射性质,式(2)的正确性可以验证如下:
修改者公开血缘查询模式中,用户无需下载血缘签名即可实现血缘数据完整性验证,从而实现云环境下卷烟营销数据安全、高效血缘查询。
2.5.2 修改者隐私保护血缘查询机制
修改者公开血缘查询模式中,用户可以高效实现血缘数据查询及验证,但是在卷烟营销平台中很多数据并不能公开修改者信息,用户无法利用签名者公钥进行验证。基于代理重签名机制,设计修改者隐私保护的数据血缘查询服务。
当用户u在修改者用户隐私保护模式下查询数据元组t_id的数据血缘信息时,验证过程如下:
(1)用户u(私钥为sk)选择随机数β∈Zp,并将β×sk发送给平台管理中心;
(3)u选择随机数λ∈Zp,并发送挑战信息{t_id,λ,给云数据中心;
(4)云计算中心针对t_id的数据签名σ(r,s)计算:
(5)云数据中心计算hλs、rt_id,生成验证消息{r,hλs,rt_id}并返回给u;
(6)u计算H(B_id1||B_id2||…||B_idn||K_id1||K_id2||…||K_idm||r)modp,并验证t_id 的数据血缘信息如式(5)所示:
基于双线性映射性质,式(5)的正确性可验证如下:
2.6 安全性分析
假设攻击者A 修改元组t_id的血缘信息{B_id1,B_id2,…,B_idn,K_id1,K_id2,…,K_idm},基于式(2)、式(5),验证s=sk×(H(b_id||r)+k×t_id)modp,而用户查询得到的B_id1||B_id2||…||B_idn||K_id1||K_id2||…||K_idm≠b_id,假设攻击者A 伪造的数据血缘数据可以通过用户的血缘查询验证,则基于随机断言模型,攻击者A 针对安全随机Hash 函数可以解决难题H(b)=H(b’),且b≠b’。基于随机Hash函数的安全性假设,攻击者A 无法在多项式时间内找到满足上述要求的b和b’,因此攻击者无法伪造签名并通过数据血缘验证。
进一步假设攻击者A 试图随机伪造签名σ’,并通过后续验证。那么攻击者A 可以找到哈希函数H(·)的一个有效碰撞,假设H(·)的输出宽度为(ll≥64),则A 找到有效碰撞的概率不大于显然这个可能性是可忽略的,因此攻击者A 无法随机伪造签名以不可忽略的概率破坏系统安全性。
3 应用实验
将本文设计的数据血缘安全分析方法用于卷烟营销系统中的数据血缘分析,设计实验分析算法的查询效率和网络消息量。当前,卷烟营销系统的数据库构建于云环境下,因此需要能够保障血缘数据安全性和完整性的血缘数据查询方法。将提出的方法与Hybrid Attribute[11]和Cloud-SafetyNet[14]两种方法进行查询效率进行比较,这3 种方法都可以对血缘数据进行安全性验证。实验数据选自营销系统的20 个表,分别隶属于卷烟营销和物流业务域,包括10个B 表,7个K 表和3个R 表。
3.1 数据血缘查询效率
统计3 种方法查询不同规模数据血缘(50~300 个元组)的时间开销,实验结果如图5所示。
Fig.5 Efficiency experiment of consanguinity query图5 血缘查询效率实验
实验结果显示,本文方法的数据血缘查询效率优于Hybrid Attribute[11]和CloudSafetyNet[14]两种对比方法。与对比方法相比,Hybrid Attribute 需要对数据多维属性分别进行处理,鉴于实验数据集中卷烟营销数据的多维特点,数据血缘查询代价较大。CloudSafetyNet 方法中需要用户客户端进行所有验证操作,而将本文提出方法的大部分验证操作外包给云服务器执行,充分发挥云数据服务优势,因此查询效率要优于CloudSafetyNet 方法。实验中选择查询50~300 个元组数据的血缘信息,本文方法的验证时间开销从723ms 到1 023ms,可以有效支持卷烟营销平台系统对于数据血缘查询的效率需求。
3.2 数据血缘验证效率
为确保云平台环境下血缘数据的安全性和可验证性,本文设计数据签名机制以保障血缘数据的不可抵赖性和防篡改特性。针对卷烟营销平台的数据安全需求,分别设计“修改者公开血缘查询机制”和“修改者隐私保护血缘查询机制”两种服务模式,设计模拟实验统计不同规模查询数据元组量条件下血缘数据验证效率,实验统计结果如图6所示。
Fig.6 Efficiency experiment of consanguinity verification图6 血缘验证效率实验
本文方法中,大量的数据计算操作由云平台完成,充分发挥了云服务外包模式的优势。实验结果显示,本文方法的数据血缘验证效率优于Hybrid Attribute[11]和Cloud-SafetyNet[14]两种对比方法。实验中选择查询验证50~300个元组数据的血缘信息,“修改者公开血缘查询机制”验证时间开销从498ms 到547ms,“修改者隐私保护血缘查询机制”验证时间开销从897ms 到970ms,可以满足卷烟营销平台系统对于数据血缘验证的效率需求。
3.3 网络消息量
网络通讯开销也为卷烟营销平台所重点关注,设计仿真实验,统计在“修改者公开血缘查询机制”和“修改者隐私保护血缘查询机制”两种服务模式下的网络流量开销。实验结果如表1所示。
Table 1 Network traffic overheads表1 网络流量开销
如表1 所示,在修改者公开血缘查询机制下,网络流量开销从3.91KB 到23.44KB,在修改者隐私保护血缘机制下,网络流量开销从5.47KB 到32.81KB。实验结果显示,本文提出方法的网络流量开销较小,不会对卷烟营销平台带来性能影响。
4 结语
本文设计一种外包云数据中心环境下的卷烟营销数据血缘安全分析方法,实现卷烟营销数据修改者隐私保护前提下的安全、高效数据血缘分析。与现有方法相比,本文方法在查询效率、网络开销方面都具有明显优势。该血缘分析算法应用于卷烟营销系统,实现卷烟营销数据的细粒度血缘追溯查询并保障卷烟营销数据在外包云服务中心的数据安全,是大型卷烟营销系统数据血缘分析的理想解决方案。