耿钦涛 王洋洋
关键词:高校数据;秘密共享;可搜索加密;双层加密;区块链
0 引言
在数字化大背景下,高校开始探索数字化改革,推动智能化、一体化的公共数据平台建设,实现数据为教育现代化赋能,立足师生普遍关注、久攻不破的体制机制改革难题,以数字化改革为总抓手,加快提升治理体系的现代化水平。从目前情况来看,在新技术的不断涌现下,大数据平台下的数据分析、云平台下的数据存储、各个应用之间的数据交换和共享等都极易造成个人隐私数据泄露和篡改。高校数据共享过程中重监控式管理而轻体验式服务、数据隐私保护存在隐忧[1]。在数据资源共享过程中如何保证高校数据的完整性、安全性、隐私性等是各个高校面临的一个重大挑战。数据资源的可复制性使得数据的共享保护及确权溯源难度极大,数据共享管控不严,易导致数据被越权使用,数据确权溯源不准确,易导致数据被滥用后需要数据提供方承担责任。
1 相关研究
近年来,学者们在高校数据共享上提出了许多解决方案。李超等[2]提出了建设学校的数据中心和共享平台,将高校的核心数据集成到数据中心,然后通过数据中心对外进行数据共享。毛文卉等[3]针对在数据共享中存在数据标准缺失、数据质量和数据安全等问题,提出高校数据共享治理框架,旨在从数据管理、数据安全、数据质量等方面解决数据共享中存在的问题,该框架有效地提升了数据共享的水平和质量。这些传统的数据共享和存储方案对机构的依赖性强,数据集中易泄露,数据安全存在隐患。随着区块链技术的发展,基于区块链技术在高校数据共享上也开展了一些研究。Zhao Gang等、陈儒玉等、Muhamed 等[4-6]通过智能合约在区块链中存储和管理学生的学习数据、学位证书数据,利用分布式存储方式解决了传统系统存在的单点故障问题,有效地管理学生数据,保证数据安全可靠。胡莹等、Kapliienko等[7-8]提出基于授权的共识机制区块链架构,将高校数据的哈希值存储到联盟链中,真实数据保存在高校的数据中心,有效地提升数据存储与验证的效率,保护了个人隐私。Rashid等[9],利用传统的关系数据库和分布式账本的区块链方式对高校的学生信息以及教育基金数据进行管理和共享,高校学生的基础数据都由传统的关系型数据库进行维护,资助数据通过区块链进行存储和记录。高飞等[10]构建了私有链和联盟链的混合模式进行高校数据管理,通过私有链的各节点对学校数据进行存储,采用联盟链与外部机构实现高校数据共享。这种方式可以快速实现数据上链,该模式仍然是用中心化的架构来维护区块链,通过集中管理者进行监督、管理和控制。宋东翔等[11]结合用户零知识证明登和联盟链的方式构建了高校共享数据方案,有效地提升了系统的安全性和高校工作的效率,实现了校内用户可以共享二维表数据。
综上所述区块链在高校的应用和研究主要集中在学位认证、学生身份确认、电子档案、学习记录、知识产权保护等高校数据方面[12],针对高校数据共享方面的系统性解决方案还比较少。同时,区块链在金融、医疗、隐私数据等领域的数据共享研究较多[13],为高校数据共享提供了参考价值。鉴于目前高校的技术力量比较薄弱,数据共享上往往采取比较传统的方式如开放数据接口、共享视图、数据拷贝等方式,由于这些方式都存在数据泄露、数据监管不严和使用越权等情况。本文提出了区块链下的可搜索高校数据共享方案,该方案采用了区块链、双层加密、Shamir秘密共享等技术,将高校人事数据、学工数据、教务数据、科研数据等各职能部门的公共数据贯通,实现敏感数据保护、用户权限控制、避免数据滥用和防止数据越权访问的目的,实现高校数据可搜索和安全共享。
2 区块链下的可搜索高校数据共享模型设计理念
2.1 系统架构
本文提出的区块链技术下的可搜索高校数据共享方案的系统架构由四个层级组成:基础设施层、联盟链层、应用系统层、用户层,系统架构如图1所示。基础设施层包含网络资源、计算资源和存储资源等,该层为联盟链层提供基础的支撑。联盟链层是由运行在基础设施的各节点以及平台软件组成,该层通过加密单元对共享数据进行加密入链,对共享数据的关键字进行加密,并对外提供数据共享和权限验证。应用系统层通过具体的应用场景开发应用服务和API 接口,通过应用系统对外提供用户的数据申请、注册、数据分享等可视化的操作。用户层包括学院或部门管理机构,生态企业、科研机构,学院或部门管理机构主要是对数据的维护、拥有数据的共享和数据授权验证权限。生态企业主要为学校提供信息化服务的企业,该用户主要是对数据进行申请和使用,并利用所获取的数据为学校提供相关应用系统的开发。科研机构主要是对数据进行查询、申请和使用,科研机构可以利用所获取的数据开展相关研究工作,如学生培养情况、学校发展状况、教师科研水平等。
2.2 具体流程
在本方案中,联盟链中用户的密钥和公钥通过SM2国密算法生成,共享数据加密的密钥采用加密算法AES生成。方案可分为数据存储与保护、数据的搜索与访问、数据解密等三个阶段。高校共享的数据由两部分组成,分别是基础数据和敏感数据。敏感数据是指涉及师生隐私的数据,如身份信息、电话、健康状况等数据,基础数据指可以被公开的数据如获奖情况、论文发表情况等。在数据存储与保护阶段,通过双层加密方式对共享数据进行双层加密,采用被授权用户的公钥对加密数据的密钥进行加密,达到用户权限细颗粒度控制的目的。在数据的搜索与访问阶段,采用Shamir秘密共享方式获取搜索凭证,对搜索内容进行加密发送,并通过权限控制中心验证,确保访问权限控制和搜索安全。在数据解密阶段,通过权限控制中心验证后,获取双层加密数据和加密后的密钥,并通过用户私钥解密获取加密共享数据的解密密钥,并进行分层解密获取共享数据,保证数据精准访问和避免数据越权訪问。
2.2.1 数据的存储与保护
高校数据要实现共享,首先需要对高校数据进行上链存储与保护。共享数据由敏感数据和基础数据组成,两种数据由于重要程度不同,可共享的对象也不同,为了做到细颗粒度的控制,本文采用双层加密的方式分别对共享数据进行加密,为数据共享提供基础支撑和保护。首先,第一层加密是对敏感数据加密:1) 从共享数据库中获取需加入联盟链中的共享数据,识别共享数据中的基础数据和敏感数据;2) 通过密码运算单元,采用数据加密算法AES生成一个对称密钥k1,对敏感数据加密生成敏感数据密文;3) 获取被授权访问用户的公钥pi,该公钥通过SM2国密算法生成,使用用户的公钥pi对k1逐一加密,并将加密后的k1密文和被授权用户的公钥pi组成的键值对存储到联盟链的全局变量中;4) 采用敏感数密文替换共享数据中的敏感数据,形成新的共享数据。其次,第二层加密是对新的共享数据进行加密:1) 通过密码运算单元,采用数据加密算法AES生成一个对称密钥k2;2) 采用k2对新的共享数据进行整体加密,形成新共享数据密文;3) 使用被授权访问新共享数据用户的公钥pi对k2逐一加密,并将加密后的k2密文和被授权用户的公钥pi组成的键值对存储到联盟链的全局变量中。最后,为了确保搜索的安全,从共享数据抽出关键字,并加密保存在区块链中:1) 输入Shamir生成的共享份额(xi,yi) ,计算出密钥S;2) 通过密钥S加密关键字;3) 把加密后的关键字与新共享数据密文的哈希地址组成键值对存储到联盟链的全局区域。具体流程如图2所示。
2.2.2 数据的搜索与访问
用户通过输入关键字获取可以访问的内容。用户将自己的份额(xi,yi) 输入智能合约通过Shamir秘密共享算法计算密钥S,并通过密钥S对搜索的关键字进行加密。通过智能单元模块处理获取加密的关键字,然后在区块链全局区域关键字库集合中查询此关键字对应的共享数据的哈希地址。获取地址后通过权限管理功能判断用户是否有权限访问此数据,如果用户有数据访问权限则发送数据给用户,如果用户无权限访问该数据,用户可以发起申请访问,数据拥有者判断是否授权给用户访问该数据,如果授权审批通过,智能合约算法把该用户加入授权访问列表中,然后返回搜索数据给搜索用户,否則用户无法获取搜索的数据。具体流程如图3所示。
2.2.3 数据解密
用户获取到共享数据,需要对数据进行双层解密后才能读取数据的真实内容。首先,第一层解密:1) 根据用户的公钥和地址在全局变量中获取解密密文数据的密钥k2的密文;2)用户通过自己的私钥解密k2 的密文,获取密钥k2的明文;3) 用密钥k2解密新共享数据密文,获取新共享数据。其次,第二层解密:1) 根据用户的公钥和地址在全局变量中获取解密密文数据的密钥k1密文;2) 用户通过自己的私钥解密k1的密文,获取密钥k1的明文;3) 用密钥k1解密新共享数据中的敏感数据密文,获取敏感数据明文;4) 用敏感数据明文替换新共享数据中的密文,得到共享数据的明文。具体流程如图4所示。
3 实验与分析
3.1 实验环境
为了验证区块链下的可搜索高校数据共享方案的可行性,本文搭建了一个原型系统进行验证方案的可行性。本方案实验所使用的硬件环境为Intel(R)CPU E5-2670 @2.30GHz 2.29GHz(2处理器),内存为16GB,操作系统为64位Windows server 2012R2,编程语言为Java, 开发环境为eclipse,在加密过程中引入SM2、Shamir、P2P 等相关jar包实现联盟链的搭建。
3.2 安全性分析
本方案中采取了双层加密方式且在授权访问控制时是分开授权,针对敏感数据采用按字段逐一授权,实现了细颗粒度的权限控制,保证数据的访问安全。在搜索过程中,每个用户都有用于生成搜索凭证的份额,用户注册时都会有预先设置好的智能合约生成用户搜索的份额和一对非对称密钥。只有计算出正确的搜索密钥凭证才能进行数据搜索和使用申请,实现了数据的搜索安全。针对数据共享过程而言,数据的拥有者事先需要把数据存储到联盟链中,通过双层加密和解密方式保证了数据的完整性和数据的隐私性。
3.3 性能分析
本文实现的方案中数据共享效率受到文件大小、敏感信息个数、关键字数量等因素影响,因此,分别测试在不同文件大小、敏感信息个数、关键字数量不同的情况下的加解密时间和在不同参与节点情况下搜索凭证生成和搜索时间。
实验采用三种方式开展,实验一针对不同文件大小进行测试,在该实验中固定敏感信息个数为5个,通过改变文件大小来计算文件加解密的时间。实验结果如果5所示。实验二针对不同敏感信息个数开展测试,在该实验中固定文件大小200KB,通过改变敏感信息个数进行计算文件加密和解密的时间。实验结果如图6所示。实验三针对不同参与节点来计算数据搜索的时间,在该实验中固定每个区块上的文件大小200KB、关键字个数为100,通过改变参与节点数来计算获取搜索凭证和数据的时间。实验结果如图7 所示。
从以上实验结果可以得出,在实验一和实验二中,随着文件大小和敏感信息个数的增加,加密和解密的时间也呈逐步上升趋势,参考实际的应用场景本案例主要是针对结构化数据,该文件大小可以满足高校数据上链的需求,加解密时间也可以达到实际业务场景的要求。实验三随着参与节点的增加搜索凭证和搜索数据返回时间也不断上升,本文测试了3到10 个节点参与的情况下,搜索数据的时间同样可以满足现实业务场景需求。综上所述,本文方案的性能在满足业务需求和安全性的同时保障了系统可用性。
4 结束语
针对高校数据敏感信息多、涉及用户群体大、数据易被篡改和数据隐私保护难等问题,本文提出了区块链下的可搜索高校数据共享方案。该方案采用双层加密的方式对高校数据中的敏感数据和基础数据进行分别加密后上链存储,采用SM2产生非对称密钥实现数据安全存储保护,运用权限控制中心对用户授权实现细颗粒度控制,通过 Shamir秘密共享实现数据安全搜索。最后通过安全分析表明了该方案可以确保数据的访问安全、搜索安全、数据的完整性和数据的隐私。此外,从性能分析证明在不同文件大小、敏感信息个数及关键字数量情况下,该方案的共享效率是有效可行的。在未来工作中,将对敏感信息采用非对称方式加密进一步加强数据安全的保护和精准授权,并在保障搜索效率的同时实现多关键字的搜索和非结构化数据的上链存储。