APP下载

基于区块链的船舶信息访问控制优化研究

2020-12-07黄敏

魅力中国 2020年10期
关键词:密文密钥加密

黄敏

(四川托普信息技术职业学院,四川 成都 611743)

引言

船舶是我国海上或河流货物运输、渡海渡河的交通工具,然而保证所有船舶的安全航行,船舶信息的安全访问是首要任务。本文针对目前区块链中船舶信息访问用户的身份隐私和船舶信息存取隐私的需求,设计了一套从身份识别和访问控制两个方面基于区块链中的联盟链隐私保护方案。在用户身份隐私方面,该方案实现了用户在网络中匿名,实现船舶信息存取和用户的不可关联性;通过验证,本方案实现了对船舶信息的安全访问控制,最大程度防止了非法用户截取或篡改船舶的机密信息,保证了船舶信息安全,为船舶安全航行奠定了基础,对船舶信息的安全访问研究具有重要意义。以下就现有的联盟链进行优化,以提高船舶信息访问的安全性、以及对船舶信息进行有效访问控制。

一、联盟链中二级证书机制的研究和改进

通过分析发现,现有Fabric中二级证书机制存在以下两个问题:一是生成TcertPub_Key公匙时的密钥派生算法较复杂。二是现有可追溯的方式存在一定的问题。监管者或者是用户需要通过一种安全的方式获取加密密钥pre-k,所以这会增加方案的复杂性。为了解决现有方案中存在的问题,提出了如下优化方案。

(一)交易证书结构改进

此改进方案从TcertPub_Key公匙的生成过程着手,采用优化后的复杂密钥派生算法。此改进过程不仅提高了密钥派生算法的效率,而且减少了Tcert证书的存储空间,降低了数据库密钥存储的压力。

改进的Tcert包括三部分:Tcert的私匙TcertPriv_Key、Tcert的公匙TcertPub_Key和extension的生成。改进后的Tcert结构如下:1.TcertID:Tcert的ID;2.DerivationID:认证上事务的派生 ID;3.EncDerivationID:派生ID的密文;4.TcertPub_Key:Tcert的公匙;5.Extension:证书扩展域;6.ValidityPeriod:证书的有效期。

改进后的交易证书同样是标准的X509证书,与原方案不同的是在改进的方案中交易证书Tcert的扩展域部分不需要存储TcertIndex加密之后的密文,同时也不需要存储EnrollmentID的密文信息,但是需要存储Tcert的派生ID(DerivationID)的密文信息EncDerivationID[1]。

(二)改进后交易证书的生成

改进后Tcert的生成过程,包含三部分:证书公钥(TcertPub_Key)的生成和私钥(TcertPriv_Key)的生成以及证书扩展域(Extension)的生成。

首先是证书公钥的生成,在接收到用户的请求后生成TcertPub_Key的步骤如下:1.TCA生成随机数nonce;2.TCA计算派生IDDerivationID=Hash(nonce);3.TCA利 用DerivationID和 注 册 证书公钥EnrollPub_Key生成签名公钥TcertPub_Key=EnrollPub_Key+DerivationID*G。

与此同时,利用加密密钥EncryptKey对DerivationID进行加密,并将密文存储在证书的扩展域部分,拓展域的生成步骤如下:1.TCA生成自己的根密钥TCA_KDF_Key,并利用所要生成的交易证书Tcert中的序列号TcertID产生派生密钥KeyDF_Key;2.TCA生成加密DerivationID的加密密钥EncryptKey;3.TCA计算密文enDerivationID;4.将密文存储在证书的扩展域extension部分。

将批量生成的交易证书Tcerts以及派生密钥KeyDF_Key通过安全信道发送给用户,用户用以恢复出签名私钥及发起交易。

最后是改进后Tcert私钥的生成。用户在接收到传送过来的Tcerts证书以及KeyDF_Key后生成Tcerts证书对应的签名私钥。

(三)改进后的二级证书机制分析

改进之后的方案优化了生成公钥TcertPub_Key过程中的密钥派生算法以及证书扩展域extension部分,而且能够实现了前台匿名后台可追溯的需求,优化了Tcert生成过程中的密钥派生算法,降低了数据库密钥存储的压力。

二、联盟链中访问控制机制的改进

联盟链提供了节点的准入机制,很大程度限制了恶意节点,使区块链网络更加安全,但是联盟链中所有节点依然共享同一账本,因此提出对联盟链网络进行粒度更小的划分,使其隐私性更高[2]的方案。

(一)基于账本的访问控制机制设计

账本可以理解为一串经过加密的区块的链条,每一个区块包含着transactions和当前world state等信息。区块中除了包含常规信息,还包含一些交易数据相关信息,这些信息可以被同一通道中所有成员节点获取,这些信息虽然不能明确的表示交易内容,但是有链码执行能力的节点可以根据己知的信息运行相应的链码得出交易输出结果,结合读写集合推测交易内容。本论文设计了一种基于账本内容的访问控制策略。下面介绍了改造后Fabric网络的交易流程,该步骤如下所示:

1.利用支持SDK的应用程序生成对称密钥Key,并加密交易提案。2.应用程序将交易提案打包为适当的架构格式,并使用用户私钥签名生成交易提案。3.应用程序将交易提案发送给预置的背书节点。4.背书节点处理交易提案,使用对称密钥Key解密输入数据。5.背书节点模拟执行交易,产生读写集。6.背书节点发送背书结果。7.应用程序验证背书策略。8.应用程序SDK将交易提案和响应广播到到排序服务。9.排序服务将交易按时间顺序排序,并打包成块。改造后的区块整体结构根本没有改变,因此改造方案可适应原方案的数据结构和接口。最后由于账本数据保存在PC的文件系统中,为了避免文件数据被恶意攻击或窃取,可在文件系统层次上对账本数据进行加密。

三、结语

船舶信息的安全访问与存储直接关系着船舶航行方向的正确与船舶自身的安全,控制船舶信息被非法人员窃取和篡改、可有效防止船舶在航行中失去原有的航行方向,在航行过程中直接关系到船上人员、货物的安全。本文对fabric平台优化了交易证书Tcert的表结构以及Tcert证书生成过程中的密钥派生算法;最后经过实验证明提出的优化方案明显大大降低了非法人员的非法访问,为船舶的安全航行奠定了基础。

猜你喜欢

密文密钥加密
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
群智感知网络环境下的一种高效安全数据聚合方案*
基于模糊数学的通信网络密文信息差错恢复
支持多跳的多策略属性基全同态短密文加密方案
密码系统中密钥的状态与保护*
保护数据按需创建多种加密磁盘
电力安全防护加密装置
Android密钥库简析