基于区块链的去中心化身份认证及密钥管理方案

2019-01-17 02:15姚英英常晓林甄平
网络空间安全 2019年6期
关键词:身份认证去中心化区块链

姚英英 常晓林 甄平

摘   要:SM9是国内商用密码体系的重要组成部分,它是基于标识的密码体制,可以避免PKI系统中复杂的证书管理难题,为物联网安全应用提供了新的解决方案。但SM9需要可信第三方KGC为用户生成和管理密钥,密钥更新极为不便。为了解决SM9密钥更新的难题,文章利用区块链技术,提出一种去中心化的身份认证及密钥管理方案。在该方案中,用户仅需要首次由IGC(Identity Generator Center)为其生成身份标识符和密钥,随后用户可以自动对密钥更新,在此过程中身份标识符作为公钥保持不变,仅对私钥和参数更新,以便于身份认证。文章重新定义了交易的数据结构,并且更新过程以交易的形式记录在区块链上,通过区块链数据的不可篡改性保证了其真实可信。文章的研究为去中心化的物联网应用场景下身份认证及密钥管理提供了新的解决方案。

关键词:去中心化;身份认证;密钥管理;SM9;区块链

中图分类号:TP309          文献标识码:A

Abstract: SM9 is an important part of China's commercial cryptosystem. It is an identity-based cryptosystem, which can avoid complex certificate management problems in PKI (Public Key Infrastructure) systems and provide a new solution for IoT security applications. However, SM9 requires a trusted third party KGC (Key Generator Center) to generate and manage keys for users, which is extremely inconvenient to update. In order to solve the problem of SM9 key update, this paper proposes a decentralized identity authentication and key management scheme by using blockchain technology. In this scheme, the user only needs to generate the identity identifier and key for the first time by the IGC (Identity Generator Center), and then the user can automatically update the key, in the process, the identity identifier remains unchanged as the public key, only Update private keys and parameters for identity authentication. This paper redefines the data struc-ture of the transaction, and the update process is recorded in the blockchain in the form of transactions, which guaran-tees its authenticity through the irreversible modification of the blockchain data. The research in this paper provides a new solution for identity authentication and key management in the decentralized IoT application scenario.

Key words: decentralization; identity authentication; key management; SM9; blockchain

1 引言

隨着物联网和5G技术的发展,万物互联的时代即将来临,预计到2020年,联网设备达250亿台,并将持续增长。大规模物联网在给人生活带来便利的同时,也提出了更高的安全需求[1]。传统的PKI(Public Key Infrastructure)认证机制并不适用于这种海量设备认证信任问题,否则将导致CA(Certificate Authority)证书管理异常复杂,一旦网络收到终端请求超过了资源处理能力,则容易导致网络服务出现问题。

基于身份的密码学IBC(Identity-Based Crypto-graphy)由Shamir首次提出[2],其中每个实体具有一个有意义的、唯一的标识作为公钥,无需数字证书将身份信息与公钥绑定,能够避免PKI中复杂的证书管理难题。2001年,Boneh和Franklin利用双线性实现了IBC加密算法构造[3]。2013年国际上发布了关于IBC的密码体系标准IEEE Std1363.3[4]。国内也已启动了基于身份的密码体制的标准化工作,国家密码管理局于2016年3月正式发布《GM/T 0044-2016 SM9标识密码算法》,对于完善中国商用密码体系具有重要意义。SM9算法可以使用用户的手机号码或邮件地址作为标识,简单易用,无需申请数字证书,非常适用于电子邮件、智能终端安全、物联网安全、云存储安全等热门应用。

但是,IBC认证机制需要可信第三方KGC(Key Generation Center)为用户分发和管理密钥,其中密钥更新是一个难题,需要KGC重新生成密钥,进而更新网络中所有用户的密钥,管理非常不便。在KGC系统参数不变的情况下,用户的公钥,如姓名、E-mail等,则需额外添加或修改诸如日期等相关参数[5],以实现私钥的更新,这将出现密钥更新后用户公钥自证性降低的问题。为解决这些难题,去中心化的认证机制提供了一个良好的选择,具有更快并且更安全的IoT接入,较低的认证代价,另外还能避免认证节点堵塞的瓶颈。区块链技术目前的研究热点,提供了物联网去中化心应用的良好解决方案[5],研究人员相继提出了基于区块链的去中心化数据隐私保护方案[5],例如固件升级模型[7]、电子商务交易模型[8]、身份管理模型[9]。

受此启发,本文提出了基于区块链的去中心化身份认证及密钥管理方案,旨在解决国密SM9算法密钥更新难题。在本方案中,用户节点仅在首次注册时需要IGC(Identity Generator Center)为其颁发身份和生成密钥信息。随后,用户节点可以自动更新密钥,不再依赖于IGC,并且密钥更新过程以交易的形式记录在区块链上,通过区块链数据的不可篡改性,保证了密钥更新过程的安全可信。

2  背景知识

2.1  SM9算法

国密SM9算法是一种基于标识的公钥密码算法,是基于身份的密码学IBC范畴的一个典型例子,这类公钥密码算法的公钥数据可以采用代表用户身份的任意数据,如手机号码、电子邮件地址等信息。SM9标准分为总则、数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法和参数定义五部分,详见《GM/T 0044-2016 SM9标识密码算法》。本文主要对SM9公钥加密算法和数字签名算法进行研究。

2.1.1  公钥加密方案

设为椭圆曲线加法循环群的生成元,为椭圆曲线加法循环群的生成元,为Hash函数,为密钥推导函数,和为分别为分组加密和解密算法,为带密钥的消息认证码,为双线性对。SM9公钥加密算法,如表1所示。

由于篇幅限制及描述方便,表1中对SM9公钥加密算法进行了适当的简化处理,下面对SM9数字签名方案的描述也类似。

2.1.2  数字签名方案

SM9数字签名方案如表2所示,它主要用于对区块链上的交易进行签名,保证交易信息的不可伪造性。

2.2 区块链

区块链( Blockchain)技术起源于2008年日本名为中本聪(Satoshi Nakamoto)学者的奠基性论文《比特币:一种点对点电子现金系统》[10]。区块链是一个分布式账本,它基于密码学原理而不是基于信用,使得任何达成一致的双方直接支付,从而不需要第三方中介的参与,解决了数字加密货币领域长期以来所必需面对的两个重要问题:双重支付问题和拜占庭将军问题。区块链具有去中心化、时序数据、集体维护、可编程和安全可信等特点。区块链的结构如图1所示。

图1是区块链的简化结构,每个区块中都包括一个或多个交易,通过Hash计算,根据Merkle树的形式最终得以Merkle根,保存在区块头上。每个区块头都保存着上一个区块的Hash值,由此形成一个链式结构。这意味着若修改某个区块上的交易信息,必须修改该区块后面的所有区块信息。交易通过共识机制写入到区块链中,以一种称为工作量证明(Proof of Work, PoW)的方式实现。

区块链的交易是由一个或由多个输入和输出组成,同样是由链式结构组成,比特币也是通过一个交易转到另一个交易上,即当前交易的输入是上一个交易的输出,一个交易可以有多个输出,但每个输出只能作为一个输入,以防止双重支付。区块链交易的形式如图2所示,其表示交易0输入是100k(Satoshi是比特币的单位,1 BTC=108 Satoshi),有两个输出,其中输出0作为交易1的输入,金额为40k,输出1是交易2的输入,金额为50k,减少的10k为交易手续费,作为挖矿者的收入。

區块链技术是构建比特币网络与交易信息加密传输的核心技术,具有去中心化的关键优势,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易,为解决中心化机构普遍存在的高成本、低效率和不安全等问题提供了解决方案。

3  去中心化的身份认证及密钥管理方案

本文所提出的去中心化的身份认证及密钥管理方案如图3所示,其中所涉及的实体主要为用户U_i和用户身份生成中心(Identity Generation Center,IGC),IGC为用户生成唯一身份信息标识符,例如用户的邮箱、手机号码等,同时为用户生成初始密钥对。

本文基于区块链提出了一种去中心化的身份认证及密钥管理方案,用户的每一次的密钥更新都作为一条交易记录保存在区块链上,仿照比特币的交易形式,重新定义的交易结构如表3所示。不同于比特币中的交易,本方案中的每个交易分别仅有一个输入和输出,以保证密钥更新过程的单向性。

表3的交易数据结构中,首先给出的是交易发布者的身份信息,输入中的索引指示其作为上个交易输出所在的位置,即指示密钥更新前的身份标识符和参数,Hash值为对上个交易Hash运算后的结果,以对其完整性进行验证。输出表示密钥更新后的身份标识符和参数,有效期表示密钥更新后的有效期。本方案密钥更新主要是私钥和参数的更新,身份标识符通常情况下保持不变。最后对整个交易信息进行签名,签名密钥为更新前的密钥,以保证整个交易信息的有效性。

方案分为四个阶段:一是参数初始化阶段主要生成SM9系统参数,同时各个IGC节点生成各自的密钥对;二是用户身份信息生成阶段,IGC为用户生成唯一的身份信息标识符和密钥对;三是密钥更新包括用户密钥更新和IGC密钥更新,通过区块链实现SM9密钥更新过程;四是用户身份信息注销阶段,当用户的密钥泄露时,由IGC实现对其身份信息注销过程。为了便于对方案进行描述,表4给出了方案中所使用的符号。

(1) 参数初始化阶段

方案主要采用SM9公钥算法,需要首先确立基点,,IGC产生随机数作为私钥,计算中的元素作为公钥,则IGC的公私密钥对为。IGC秘密保存,公开。为了能够利用SM9签名算法,IGC需要根据生成另一个私钥,即在有限域上计算,然后计算,得到,主要用于IGC的签名功能。将此过程通过共识机制写入到区块链上,交易如表5所示,其输入为空,输出为生成的公钥以及有效期 ,并对其进行签名。

(2) 用户身份标识符生成阶段

当用户首先向IGC申请注册时,通过认证之后,IGC为其生成唯一身份标识符作为公钥,为产生用户的私钥,IGC首先在有限域上计算,然后计算,得到。该过程通过离线方式进行,因此可将IGC可以将密钥安全传送给用户,并将此作为交易信息能过共识机制写入区块链中,如表6所示,该交易输入同样为空,输出为用户身份标识符、参数和有效期,最后IGC对交易信息进行签名。

(3) 密钥更新阶段

1) 当用户需要进行密钥更新时,自身充当IGC的角色。即用户选择随机数作为私钥,计算中的元素作为公钥,然后在有限域上计算和,得到。此时用户的身份信息保持不变,更新后的私钥为,参数为。同进将其作为交易通过共识机制写入区块链中,交易如表7所示,交易输入为索引和Hash值,指示其更新前参数所在的上一个交易位置,输出为密钥更新后参数以及有效期,并利用更新前的密钥对其进行签名。

2) 当IGC需要对密钥进行更新时,类似于参数初始化阶段,重新生成随机数作为私钥, 作为公钥,同进还需要重新生成签名私钥。将此作为交易信息和密钥有效期信息通过共识机制写入区块链中,交易如表8所示,输入为索引和Hash值,指示其更新前公钥所在的上一个交易位置,输出为更新后公钥及有效期,并利用更新前密钥对其签名。

(4) 密钥更换阶段

当用户因密钥泄露导致自身无法对密钥进行更新时,需向IGC申请更换密钥,该过程类似于用户身份标识符生成阶段。用户的身份标识符保持不变,IGC在有限域上计算,再计算,得到。该过程通过离线方式进行,因此IGC可以将密钥安全传送给用户,并将此作为交易信息通过共识机制写入区块链中,如表9所示,交易输入为索引和Hash值,指示在密钥泄露前其参数所在的交易位置,输出为用户身份标识符、参数(IDC的公钥)和有效期,最后IGC对交易信息进行签名。

(5) 身份信息更换阶段

当用户需要更换身份标识符时,需要向IGC进行申请,该过程同样类似于用户身份标识符生成阶段,IGC重新为其生成唯一身份标识符作为公钥,以及私钥为,并将此作为一条交易通过共识机制写入区块链中,如表10所示,交易输入为索引和Hash值,指示在身份标识符更换前其参数所在的交易位置,输出为用户身份标识符、参数(IDC的公钥)和有效期,最后IGC对交易信息进行签名。若用户想要注销身份信息,只需将输出置为空即可。

上述方案中,用户只需要首次由IGC认证其身份信息,并为其生成私钥。随后由用户本身充当IGC的角色,通过区块链完成其密钥更新过程,实现去中心化的密钥管理过程。若用户密钥泄露,只能通过IGC对其密钥进行更换。为了保证身份信息的唯一性,用户不允许私自更换其身份标识符,也只能由IGC认证后重新为其生成新的身份标识符。所有的过程都通过交易的形式记录在区块链上,由区块链的不可篡改性保证了身份认证及密钥管理过程的安全性。

4  安全及效率分析

本文方案采用SM9标准算法实现基于身份的加密和签名体制,利用区块链实现去中心化的身份认证及密钥管理。SM9算法的安全主要依赖于椭圆曲线离散对数难题,对于有限域上的椭圆曲线 和其上的两点、,计算整数,使得 ,其目前仍是公认的NP难题。影响SM9算法效率的主要是双线性对的计算,可通过不断优化提升其效率。Beuchat等[12]人开发出BN曲线上O-Ate双线性对的快速运算软件库,在Intel i7 2.8GHz的处理器上,一次双线性对计算仅需要0.832ms,具有重用的實用价值。

区块链的安全性依赖于哈希函数,据估计[11],以天河二号的算力来说,产生比特币SHA256哈希算法的一个哈希碰撞大约需要 年,充分说明了区块链的安全性。随着未来量子计算机的发展,给现有的密码算法造成安全威胁,可以采用抗量子攻击的密码算法,例如采用格密码算法替代SM9算法,这并不影响方案的实用性。基于PoW共识机制的区块链目前主要面临51%攻击问题,即攻击者通过控制网络中51%的算力就有能力篡改和伪造区块链上的数据。研究者已经提出同进依靠高算力和高内存的PoW共识算法来解决51%攻击问题[10],更加安全有效的共识机制有待于更加深入的研究和设计。

区块链要求每个节点保存一份数据备份,随着海量用户接入网络,必然导致海量数据的扩张,可通过关键节点保存所有数据备份,其它的节点保存需要数据的方式解决,或者在保证安全性的前提下,舍弃那些陈旧的历史数据以减少数据容量。比特币交易的确认时间约为10分钟,对于本文所提出的基于区块链的身份认证及密钥管理方案,其交易时间的确定可根据其实际场景的应用需要来定。

5  结束语

本文利用区块链技术,提出一种去中心化的身份认证及密钥管理方案,以解决SM9中密钥更新的难题。在本方案中,用户仅在首次注册时由可信第三方IGC为其生成身份标识符和密钥,随后的密钥更新过程完全由用户操作,不再依赖于IGC,更新过程以交易的形式保存在区块链上,能过共识机制保证了更新过程数据的真实可信。

本文提出了方案设计的基本框架,未来仍需要更加深入的研究,实现其在去中心化的(比如车联网等)物联网应用场景下身份认证及密钥管理中的应用。

基金项目

中央高校基本科研业务费专项资金资助(项目编号:2018YJS023)。

参考文献

[1] 刘志诚.物联网网络信息安全生态体系构建新论[J].网络空间安全,2018,9(12):85-89.

[2] IEEE Standard for Identity-Based Cryptographic Techniques using Pairings[C]// IEEE P1363.3/D9, May 2013. IEEE, 2013.

[3] Shamir A. Identity-based cryptosystems and signature schemes[C]//Workshop on the theory and application of cryptographic techniques. Springer, Berlin, Heidelberg, 1984: 47-53.

[4] Beuchat J L, González-Díaz J E, Mitsunari S, et al. High-speed software implementation of the optimal ate pairing over Barreto–Naehrig curves[C]//International Conference on Pairing-Based Cryptography. Springer, Berlin, Heidelberg, 2010: 21-39.

[5] Boneh D, Franklin M. Identity-based encryption from the Weil pairing[C]//Annual international cryptology conference. Springer, Berlin, Heidelberg, 2001: 213-229.

[6] Christidis K, Devetsikiotis M. Blockchains and smart contracts for the internet of things[J]. Ieee Access, 2016, 4: 2292-2303.

[7] Zyskind G, Nathan O. Decentralizing privacy: Using blockchain to protect personal data[C]//2015 IEEE Security and Privacy Workshops. IEEE, 2015: 180-184.

[8] Lee B, Lee J H. Blockchain-based secure firmware update for embedded devices in an Internet of Things environment[J]. The Journal of Supercomputing, 2017, 73(3): 1152-1167.

[9] Zhang Y, Wen J. The IoT electric business model: Using blockchain technology for the internet of things[J]. Peer-to-Peer Networking and Applications, 2017, 10(4): 983-994.

[10] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[J]. 2008.

[11] Yuan Y, Wang F Y. Blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2016, 42(4): 481-494.

[12] Buterin V. A next-generation smart contract and decentralized application platform[J]. White Paper, 2014, 3: 37.

猜你喜欢
身份认证去中心化区块链
校园网云盘系统存在的安全问题及对策
基于指纹身份认证的固定通信台站干部跟班管理系统设计
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
浅析移动互联语境下中小成本电影去中心化的创作趋向
基于区块链技术的数字货币与传统货币辨析
“去中心化”电子商务背景下大学生网络创业前景分析
浅析新媒体视阈下的新闻失实报道
Kerberos身份认证协议的改进
基于USB存储设备的透明监控系统