基于属性基加密的海洋浮标数据安全管理系统的设计与实现

2022-01-06 02:19顾震凯张绍华李超戴炳荣
渔业现代化 2021年6期
关键词:密文浮标密钥

顾震凯,张绍华,李超,戴炳荣

(1上海海洋大学信息学院,上海 201306;2上海计算机软件技术开发中心,上海 201112)

海洋浮标是海洋观测中的重要手段,具有连续、长期、全天候、全天时、稳定可靠等特点[1],能够实现数据的自动采集、自动发送,其通信方式较为多样[2-3]。近海浮标一般采用移动网络通信,远海浮标通常采用卫星通信、北斗短报文等方式[4-5]。

渔业捕捞中,由于鱼类资源时空变化大[6],需要快速寻找中心渔场以提高捕捞效率[7-8]。近年来,海洋浮标通过携带鱼探设备,成为探测渔场的重要手段[9-10],但是由于海洋浮标数据容易受到黑客的攻击窃取,导致渔业公司花费时间与金钱成本投放的海洋浮标没有得到应有的收益[11-13]。目前的研究中,已经有不少研究人员对海洋浮标的数据管理系统给出了研究方案:任鹏等[14]基于R语言与相关Web框架Shiny构建了一个海洋浮标大数据处理平台;朱明垒[15]提出了海洋资料浮标的数据接收系统,但以上方案只是针对海洋浮标数据存储与管理的需求,未考虑数据传输过程中的安全性;张新文等[16]采用对称加密与非对称加密结合的方式设计了海洋浮标数据的管理系统,通过加密来保护数据传输的安全性,但其数据的共享缺乏灵活性,为实现数据的细粒度共享,本研究引入了属性基加密。

属性基加密(ABE)最初由Sahai等[17]提出,根据访问策略的嵌入位置不同,可分为两种[18]:一种是将访问策略嵌入密钥的密钥策略属性基加密(KP-ABE);另一种是将访问策略嵌入密文的密文策略属性基加密(CP-ABE),将访问策略嵌入密文这意味着数据的拥有者可以通过设定不同的访问策略来决定谁可以访问这份数据密文,可以对数据实现细化到用户属性的访问控制。因此,CP-ABE在数据的细粒度共享方面有着广阔的应用前景。

本研究首先对北斗海洋浮标系统的工作模式进行了分析,根据海洋浮标系统的实际工作情况设计了海洋浮标数据安全管理系统的各层架构与功能模块,并基于对称加密与属性基加密设计了数据存储与数据请求的业务流程。最后对系统进行实现,并将多种加密方案进行了对比测试。

1 北斗海洋浮标系统介绍

北斗海洋浮标是一种基于北斗卫星的定位与短报文传输进行通信的浮标,除了可以监测洋流的速度以及方向外,还可通过搭载多种传感器为航海、渔业、港工以及海洋开发提供服务[19-20]。北斗海洋浮标以浮球作为浮标体,浮标体上搭载太阳能电池板为整个浮标系统进行供电[21-22],浮标上的数据采集系统将各传感器采集到的数据通过通信系统发送到北斗卫星。岸上的数据中心从北斗卫星接收数据,对数据进行转码[23]和预处理后将数据存储在数据库中,并对数据进行管理。

图1 海洋浮标与岸基数据接收系统结构Fig.1 The structure of ocean buoy and shore-based data receiving system

2 系统设计

2.1 系统模块设计

基于可操作性、安全性、可扩展性的原则设计了3个子系统,分别为数据加解密子系统、数据管理子系统和密钥管理子系统,具体的功能模块如图2所示。其中,数据加解密子系统包括AES加解密的实现,CP-ABE加解密的实现和访问策略的构建等;数据管理子系统包括海洋浮标数据管理,海洋水文数据管理,渔业信息数据管理等;密钥管理子系统负责管理系统中使用的密钥,如AES对称密钥,CP-ABE加解密中的系统公钥δPK,系统主密钥δMK以及用户的私钥δSK等。

图2 海洋浮标数据安全管理系统模块Fig.2 The modules of ocean buoy data security management system

2.2 系统总体架构

根据浮标数据管理系统运行的实际需求[24],本系统采用多层分布式框架结构[25]。系统的具体架构如图3所示。

图3 系统总体架构Fig.3 The overall architecture of system

其中,数据层是整个系统的基石,使用MySQL数据库对各类海洋浮标数据进行维护管理,使用Redis数据库对用户的登录凭证进行有时间限制的存储;逻辑层为系统的具体功能实现,其中数据加解密子系统是对AES加解密和属性基加解密以及访问策略的实现,密钥管理子系统是对系统中生成与使用的密钥,如AES密钥,属性基加密中的系统公钥δPK和系统主密钥δMK以及用户私钥δSK等的安全保存与管理;表现层为本系统的用户操作界面以及数据呈现界面的实现;用户层为系统的具体使用者,大致可分为渔业的从业人员、渔业领域科研人员和本系统的管理人员等。本研究中使用的相关符号的含义如表1所示。

表1 相关符号的定义Tab.1 Definition of related symbols

3 系统实现的关键技术

3.1 密文策略的属性基加密CP-ABE的实现

密文策略的属性基加密(CP-ABE)是将密文与访问策略相关联,用户私钥与属性相关联,不需要知道用户的身份,当用户的属性与密文的访问策略相匹配时,便能使用其私钥解密密文。CP-ABE的工作流程分为4个步骤[26]:

(1)初始化阶段:(δPK,δMK)=ABE.SetUp(λ),输入安全参数λ,生成系统公钥δPK和系统主密钥δMK。

(2)数据加密阶段:Tenc=ABE.Encrypt(δPK,Tplain,δAP),使用系统公钥δPK与数据拥有者设置的访问策略δAP对数据明文Tplain进行加密,得到密文Tenc。

(3)密钥生成阶段:δSK=ABE.KeyGen(δMK,A),使用用户的属性集A,系统主密钥δMK,生成用户私钥δSK。

(4)密文解密阶段:Tplain=ABE.Decrypt(Tenc,δSK),使用用户私钥δSK对数据密文Tenc进行解密,如果用户的属性集A满足设置的访问策略δAP,则解密成功,得到数据明文Tplain。

3.2 数据存储

海洋浮标数据的安全主要体现在存储与分享过程中数据的可靠性、机密性等[27-28]。实现数据安全的核心是加密算法与访问控制[29]。根据海洋浮标数据安全性的实际需求,本系统采用AES对称加密与CP-ABE加密结合的方法,设计了安全的数据加密与存储的方案。

数据加密并存储的过程如图4所示,主要步骤如下。

首先是浮标数据的采集与解码。海洋浮标的各类传感器收集数据,通过北斗卫星短报文的通信形式传输到岸基的数据中心。根据海洋实时数据处理规范,岸基数据中心将接收到的数据进行解码,解码后获得浮标数据Tplain。

其次在浮标数据管理中心接收到数据Tplain后,系统进行初始化工作,密钥管理子系统随机生成一个AES密钥αKEY,长度固定为128位,并根据预先设定的安全参数λ生成系统公钥δPK,系统主密钥δMK。接着使用AES密钥对Tplain进行加密,加密后的密文为Tenc,根据所加密的浮标数据的类型设置相应的访问策略δAP,使用系统公钥δPK与访问策略δAP对αKEY进行CP-ABE加密,生成密钥密文αCK。

最后是数据存储。系统将加密后的浮标数据Tenc和密钥密文αCK存储到数据库中。

在浮标数据存储的过程中,通过AES密钥对浮标数据进行加密,再使用CP-ABE对AES密钥进行加密,数据与密钥在传输的过程中均为密文状态,保障了数据的机密性。数据的获取依赖于AES密钥的获取,而AES密钥则通过CP-ABE进行加密,只有属性满足设定访问策略的用户才能够对AES密钥进行CP-ABE解密,实现了数据的细粒度的访问控制。

3.3 数据请求

根据海洋浮标数据安全性的要求,本系统设计了浮标数据请求的方案,支持基于用户属性的细粒度的数据访问控制。

用户请求浮标数据的过程如图5所示。

图5 海洋浮标数据请求的过程Fig.5 The process of ocean buoy data request

主要步骤如下:

首先客户端用户发起海洋浮标数据的请求。用户在海洋浮标数据管理系统中注册,并登录后,将其请求海洋浮标的编号和自身属性集A发送给海洋浮标数据管理系统的服务端。

其次服务端通过接收到的海洋浮标编号在数据库中检索相应浮标的加密数据Tenc以及相关AES密钥的密文αCK。服务端中密钥子系统给出系统主密钥δMK、系统公钥δPK。

服务端使用系统主密钥δMK和用户属性集A生成用户私钥δSK,并使用私钥δSK对接收到的AES密钥的密文αCK进行CP-ABE解密,如果用户的属性集A符合预先设定的访问策略δAP,则可成功解密,否则无法解密。CP-ABE解密完成后得到AES密钥αKEY,对接收到的浮标数据密文Tenc进行AES解密,解密后可得到请求的海洋浮标数据的明文Tplain。

最后服务端将浮标数据Tplain回送给用户,用户退出系统,断开连接。至此数据请求的工作完成。

4 系统实现

4.1 系统实现过程

本系统的实现中,使用Java基于SpringBoot框架来进行服务端业务模块的开发,Java版本使用JDK8,数据库采用MySQL数据库与Redis数据库,操作系统为Windows10,PC机硬件为AMD Ryzen5 5600U处理器,16 GB RAM。后台在阿里云服务器进行部署,服务器系统为CentOS。系统架构采用客户端/服务端(C/S)架构,具体的双端实现如下。

在系统的服务端的实现上,本研究基于JPBC密码库使用Java实现了加解密模块,包括AES密钥的生成,AES加解密功能的实现,CP-ABE中访问策略的构造,CP-ABE加解密功能的实现,其中AES密钥固定为128位,大小为16 B。在数据库方面,本研究通过MyBatis框架实现对MySQL数据库中数据的维护管理,通过Redis数据来实现用户登录凭证的有过期机制的存储。浮标数据在系统开发中均以Json形式传输与显示。

在系统的客户端的实现上,本研究基于Vue.js框架设计了系统的操作与管理页面,通过TCP协议与服务端建立连接,并进行数据的传输。

4.2 系统测试

本系统采用AES对称密钥加密浮标数据,采用CP-ABE加密AES密钥,浮标数据与密钥均以密文的形式传递,保障了数据的机密性与安全性,但在系统工作的过程中,对数据的处理操作将增加系统的性能开销。本研究从加密效率、安全性等方面对多种加解密方案进行了对比,并对属性个数不同的情况下,CP-ABE加解密所需要的时间进行了测试对比。

(1)不同加解密方案的对比

基于海洋浮标数据管理[30-31]的实际需求,本系统在选择加密算法时对比了多种加密算法,其中有中国国家密码局发布的对称加密SM4算法,开源的对称加密AES算法和基于密文策略的属性基加密CP-ABE,表2是多种加密算法在加密效率、密钥安全、数据共享等方面的对比结果。从表中可以看出,在加解密效率方面,AES算法相比于SM4算法稍有优势,同时CP-ABE相比于SM4和AES算法在密钥管理安全与数据的细粒度共享方面有着显著的优势,但是CP-ABE的加解密效率相比于SM4和AES较低,因此本研究采用了先对海洋浮标数据使用AES加密再对AES密钥使用CP-ABE加密的方案,由于AES密钥长度较短,大小在本系统中固定为16 B,使用CP-ABE对其加密会比较迅速,可以有效地解决CP-ABE加解密效率略低的问题,同时对AES密钥加密也解决了对称加密中存在的密钥泄漏问题,因此,本研究采用的加密方案在加密效率、密钥安全、细粒度数据共享等方面均具有一定的优越性。

表2 多种加密算法的对比Tab.2 Comparison of different encryption algorithms

(2)不同属性个数CP-ABE加解密所需时间对比

固定浮标数据大小为500 KB,通过改变属性的个数,计算CP-ABE加解密所需的时间。图6表示CP-ABE在不同属性个数下加解密所需时间的变化,由图6可以看出,随着属性个数的增加,CP-ABE加解密所需的时间也呈线性增长的趋势。因此,CP-ABE中访问策略设置的越复杂,属性设置越多,细粒度访问控制的程度越高,则消耗的计算资源也会越多。

图6 在不同属性个数下CP-ABE加解密所需时间变化Fig.6 The time spent for CP-ABE with different attributes

4.3 与其他方案的对比分析

本节中,将任鹏[14]与朱明垒[15]提出的传统海洋浮标数据管理系统,以及张新文等[16]提出的基于混合加密的浮标数据管理系统与本文方案分别从数据的加密方式,是否支持内容加密密钥的安全保管,是否支持访问控制等3个方面进行对比分析。对比的结果如表3所示,任鹏等[14]与朱明垒[15]提出的传统海洋浮标数据管理系统,未考虑浮标数据的安全问题,仅实现了浮标数据的采集存储与查询等;张新文等[16]提出的基于混合加密的浮标数据管理系统,采用了对称加密与非对称加密混合的方式对浮标数据进行加密保护,其通过非对称加密解决了对称加密的密钥保管安全问题,但其数据的共享依赖于非对称加密的公钥与私钥,公钥与私钥一一对应,在多个用户访问数据的情况下,需要使用每位用户的公钥分别为对称密钥进行加密,增加计算资源的消耗,不利于数据的共享;本研究为解决以上的问题,实现浮标数据的安全管理,首先使用AES算法加密浮标数据,解决浮标数据的安全问题,其次为解决AES密钥的安全管理问题,使用CP-ABE对AES密钥进行加密,在CP-ABE加密的过程中将访问策略嵌入了AES密钥的密文中,用户在请求数据的时候只需提交其属性集,系统为其生成私钥,并进行CP-ABE解密,如果用户属性符合访问策略,则解密成功。在多用户访问数据的情况下,此方案中只需要对AES密钥加密一次,便可实现细化到用户属性的访问控制,大大减少了计算资源的消耗,有利于数据的共享。综上所述,本研究方案在浮标数据安全,密钥安全,数据共享等领域具有显著优势。

表3 多种海洋浮标数据关系系统的对比分析Tab.3 Comparison of different ocean buoy data management schemes

5 结论

本研究将对称加密与属性基加密结合,构建了海洋浮标数据的安全管理系统。系统的测试结果表明,系统运行稳定,能够以较低的时间开销实现数据的安全存储以及细粒度访问控制,对浮标数据被攻击窃取问题的解决有着突出优势。本研究是加密技术的延伸,属性基加密的引入使得浮标数据的管理更具有灵活性,有助于传统的数据请求流程的优化,省去烦琐的权限申请,对于提高海洋浮标数据管理的安全性与灵活性的理论研究与实用价值明显,但在数据的加解密效率方面仍然存在一定的不足,下一步的研究中,会在对称加密的加解密效率与系统内通信的网络性能等方面进一步研究优化。

猜你喜欢
密文浮标密钥
浅谈浮标灵敏度的判断
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
浅谈浮标的吃铅比数值
幻中邂逅之金色密钥
群智感知网络环境下的一种高效安全数据聚合方案*
基于模糊数学的通信网络密文信息差错恢复
一种浮标位置修正算法*
支持多跳的多策略属性基全同态短密文加密方案
提问:冬钓轻口鱼如何选择浮标?