APP下载

基于区块链技术的身份认证与存储方法研究

2020-08-14王乃洲金连文高兵金晓峰

现代信息科技 2020年8期
关键词:身份认证区块链

王乃洲 金连文 高兵 金晓峰

摘  要:目前的网络身份认证系统基本采用中心化的设计方法,该方法存在权限控制失误或中心机构被入侵导致的信息泄露或篡改问题,文章提出了一种基于区块链技术的身份认证与存储方法。将用户身份认证信息的摘要构建相应的Merkle树并打包记入区块链,通过RSA和共识算法来保证用户认证信息和系统的安全性。该方法在保证用户信息安全性的同时,具备身份认证的便捷性。

关键词:区块链;身份认证;非对称加密;分布式共识;Merkle树

Abstract:The current network identity authentication system mainly employs the centralized design,which has the problem of authority control error and information leakage or tampering caused by the intrusion of the central organization. This paper presents a method of identity authentication and storage based on blockchain technology. The digest of the user authentication information is constructed as a Merkle tree and packed into the blockchain. The RSA and consensus algorithms are used to guarantee the security of the user authentication information and the system. This method has the convenience of identity authentication while ensuring the security of user information.

Keywords:blockchain;authentication;asymmetric encryption;distributed consensus;Merkle tree

0  引  言

區块链技术是金融科技领域的一项重要技术创新,包括了分布式系统、密码学、博弈论、网络协议等诸多学科的知识。作为一种去中心化记账平台的核心技术,实现去中心化信用的点对点交易与协作。区块链技术被认为是社交网络之后的第五次颠覆式创新,是央行纸币信用之后的第四个里程碑[1,2],是未来价值互联网的基石。

区块链技术的发展可以大致分为三个不同的结构层面:区块链1.0、2.0和3.0。美国区块链科学研究所的梅兰妮斯万指出:区块链1.0指货币,区块链2.0会发展为货币市场和金融应用;区块链3.0则是超越金融外的应用,即在政府、健康、科学、文化和艺术方面有所应用[3]。目前,利用区块链来存储个人健康数据(如电子病历、基因数据等)是极具前景的应用领域,此外在存储各类重要电子文件(视频、图片、文本等)乃至人类思想和意识等也有一定应用空间[4]。

目前的网络身份认证系统基本采用中心化的设计思想,这种中心化的认证系统如果采用对称加密的方式,需要保存每一个用户的密钥,认证过程较为麻烦,而且在数据传输的过程中很容易被窃取并篡改,然后进行字典攻击,无法保证用户身份认证和数据的完整性。而如果采用非对称的加密方式,需要有一个中心化的第三方的权威认证机构CA,在密钥交换的过程中,依然存在密钥被截取、伪造的风险。

为避免权限控制失误或中心机构被入侵导致的信息泄露或篡改问题,本文提出了一种基于区块链技术的身份认证与存储方法。借鉴比特币交易的过程,对用户身份认证的数据进行哈希处理,将哈希值保存到一种称为Merkle树的结构中,记入区块链,利用区块链的分布式账本冗余存储数据,通过共识方法和非对称加密技术来保证系统安全性,存储和保存重要的隐私数据。在认证用户身份时,采用公钥加密用户认证记录与私钥解密验证的方式,在验证终端核对用户身份,保证用户信息安全性的同时,不增加用户额外操作,提高身份认证的便捷性。

1  研究背景简介

华南理工大学和广电智能安全研究院较早从事区块链技术研究的院校和企业,是中国区块链技术和产业发展论坛首批成员单位,在基于区块链技术的总体解决方案、数字货币ATM、数字货币钱包、数字资产管理平台应用研发等领域有较深的技术积累,已经成功研发数字货币双向兑换ATM系统,并基于研究成果申请多项专利。

双方致力于实现基于区块链的数字资产管理关键技术的突破,依区块链技术开发相关金融数字资产管理系统,有利于提高企业的数字资产管理的安全性、开放性以及高效性;而基于区块链技术的航空业数字资产管理平台成功推出后,所打造的全新电子商务运营模式,将在电子商务领域树立标杆,孵化并培养起现代数字资产管理产业链。区块链使用去中心化的数据安全技术,可提升数据安全性、降低数据维护成本、推动组织智能化发展,可以有效促进区块链技术在金融、医疗、公共服务等领域的应用。

(1)数字货币双向兑换ATM。国外数字货币交易终端的迅猛发展,公司研发团队经过紧张的技术攻关,成功研制出新一代比特币自助终端,新终端在支持传统自助柜员机全部功能的基础上,支持目前主流数字货币(比特币)与法币的相互兑换。基于以上研究成果,公司进一步研究出一套针对传统自助柜员机的改造升级方案,使数量众多的传统自助设备也能兼备数字货币交易功能,为数字化社会服务。图1为广电运通自主开发的数字货币双向兑换ATM机系统交互界面。

(2)贵宾卡身份认证。利用区块链加解密技术,将客户已有的会员卡密码、卡号(或身份证号)、附加信息等信息生成密钥对,系统利用私钥对卡号、用户信息等进行数字签名,将该数字签名分发给用户;认证时,用户仅需出示签名信息,贵宾室仅利用公钥进行验证,后台自动核对数据真实性,并加以校验,将验证后用户照片(或短信)返回给贵宾室,核对后即可享受贵宾服务。如图2所示,为广电运通基于区块链技术开发的贵宾卡身份认证系统主界面。

(3)数字资产(积分)管理系统。基于区块链的积分管理系统可以兼容传统积分系统的全部功能,由此实现新系统与传统积分管理系统的平稳过渡。实现会员使用积分换购商品,或者积分加一定金额的现金来购买商品的业务。如图3所示,为广电运通基于区块链技术开发的积分服务平台主界面。

2  区块链技术

2.1  区块链的定义

2008年,中本聪首次提出区块链的概念[5]。区块链是将数据区块以链式组合后的数据结构,具有时间上的顺序性,同时采用密码手段保证区块信息的安全与不可篡改,最后形成去中心化共享总账(Decentralized shared ledger)。广义的区块链技术则是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式[2]。

2.2  区块链原理

区块链技术的核心是将达成一致的区块链接在一起形成一条链式结构,将这些链式区块保存到所有参与计算的节点中。单独一个区块主要包括三部分内容:前一个区块哈希值、交易信息和随机数。前一个区块哈希值保证了区块链间的顺序链接关系;交易信息是系统的核心处理数据,如交易数量、交易的发起者和接收者、交易双方用各自私钥的前面信息;随机数是代表该区块满足哈希计算要求的一个值,最先得出该值的节点拥有记账生成区块的权力,将生成的区块全网广播。所有节点收到区块后,将新区块链接到区块链,完成一笔交易。

2.3  区块链的特征

根据区块链系统的架构模式、运行特点、账本数据维护方式等,区块链的其主要特征如下:去信任、可靠数据库、去中心化。

去信任:区块链系统中的节点并不需要相互信任,系统的运行规则完全公开透明,每笔交易都需要节点间经过共识才能写入区块链账本中。由于数据内容也是公开的,各节点平等协作,因此在系统规则范围内,节点之间無法相互欺骗。

可靠数据库:账本数据在各节点都有完整拷贝,在系统容错范围内,区块链网络账本数据无法篡改。

去中心化:区块链系统采用的是分布式网络架构,没有中心化的节点,各节点地位相等。单点故障并不会影响系统的整体运行,具有良好的健壮性。

3  基于区块链技术的身份认证与存储方法

本文借鉴区块链的加解密技术,采用去中心化(De-centralized)、去信任(Trustless)、可靠数据库(Reliable Database)的核心思想,设计了一种基于区块链技术的身份认证与存储方法。

3.1  身份认证与存储的架构设计

为实现去中心化的身份认证方式,本文设计了基于区块链技术的身份认证与存储的基础架构,如表1所示。该架构共分四层,包括数据层、网络层、共识层、用户应用APP层。其中,数据层封装并保存用户信息集合的链式结构、数据区块并采用数据加密、时间戳等技术保证安全及不可篡改;网络层采用P2P协议,实现数据传播机制和分布式组网机制等;共识层主要封装网络节点采用的共识算法、数据验证机制等;用户应用APP层负责生成公钥和私钥、解决身份认证的应用场景问题等。

本模型最主要的创新点是基于用户APP的身份认证流程、身份认证信息的链式区块结构(基于时间戳)、分布式的认证共识机制。鉴于共识机制采用目前较为成熟的PoW共识算法,下文将重点阐述身份认证链式区块结构的设计、基于用户APP的身份认证流程和认证流程中实现加密与解密的关键问题。

实现基于区块链技术的身份认证与存储,最重要的部分就是链式区块结构,因此,本文设计了身份认证的链式区块结构,如图4所示。概括地,身份认证的链式区块结构是去中心化系统各节点共享的所有用户认证记录集合。为维护这个用户认证记录集合,所有分布式节点采用哈希算法,将接收到的用户认证记录,经过指定的时间间隔,封装到称为Merkle树的数据结构中,并将该Merkle树的根保存到带有时间戳的数据区块头中,将最新生成的区块链接到当前最长的主区块链上。

用户认证记录区块的具体信息一般包括区块体和区块头两部分。区块头的内容有当前系统的版本号、当前区块的目标哈希值、前一区块头的哈希值、当前区块PoW共识过程的解随机数、时间戳、Merkle树的根等信息[6]。本模型的分布式网络能够动态调整工作量证明过程的难度值,如某一节点最先找到正确的解随机数Nonce,并经过全体节点验证后,会将当前区块链接到前一区块,形成最新的区块主链。

区块体则包括当前区块的所有用户认证记录集合,这些记录经过哈希过程的计算保存到Merkle树中、形成唯一的Merkle根并将Merkle根的值记入区块头。本文采用二叉Merkle树,所以树中的节点包含两个相邻的数据块或其哈希值[7],运算过程是将每一条用户认证记录先做分组哈希,将分组后新生成的哈希值插入到Merkle树,递归这个过程直到计算出最后一个哈希值,这个值就是根哈希值,保存为区块头的Merkle根。Merkle树的作用一方面是快速归纳和校验区块数据的存在性和完整性,可以在不运行完整区块链网络节点的情况下,也能够对用户验证信息进行检验[8],另一方面区块头只需包含根哈希值而不必封装所有认证记录,提高计算区块头哈希值的计算效率。

经过以上过程,各个区块通过区块头的哈希值相接到一起,形成一条最长主链,这个链从创世区块到当前区块,记录了认证记录区块链的完整历史,能够提供认证记录的溯源和定位功能,从任意认证记录开始都可以按链式结构追本溯源。本文后续工作将利用保存的不可篡改的用户认证记录进行数据分析。

3.2  用户身份认证流程

用户身份认证采用三方模式,由用户APP、验证台、区块链服务器构成,可以适用于信用卡、贵宾卡等身份认证的场景。用户APP负责生成并更新公钥、私钥,提交认证请求和解密认证等;验证台负责用户身份信息的注册与提交、验证身份信息二维码等;区块链服务器负责将用户的公钥加密认证记录保存到区块中,按时间顺序保存,并链接形成区块链,保证用户认证记录的不可更改性。

用户身份认证流程如图5所示。首先需要注册,利用用户的私密信息生成密钥对,系统利用公钥对卡号、用户信息等进行加密,将该加密信息作为用户认证记录保存到区块链服务器。认证时,用户发出认证请求,区块链服务器返回加密后的用户认证记录,认证台生成认证记录的二维码;用户APP利用保存的对应私钥进行解密验证,认证台核对用户信息的真实性,若认证成功,用户APP将新的公钥加密认证记录发送到区块链服务器,下次认证时,将再次提取公钥加密认证记录进行解密认证。依次循环,将所有的认证记录信息打包保存在区块中,并通过上节介绍的区块链机制进行存储。

本文的身份认证流程具有安全性和便捷性的优点。首先,采用非对称的加密技术有利于数据的安全存储,即使黑客获取了用户数据,也很难破解,这样可以为用户提供安全保障。仅仅使用公钥传输和保存加密的用户认证记录到服务器,即使公钥被第三方得到,也不会泄露用户信息。用户公钥、私钥按指定时间间隔更新,保证安全性。其次,使用身份认证的各个场景用户可以通过APP扫描二维码的方式进行认证,使用和验证方便,密钥和验证过程在系统后台黑盒实现,不增加用户额外操作。

3.3  关键问题及解决方法

3.3.1  私钥生成与管理

私钥是一个256位(bits)的随机整数。首先采用用户编号、姓名、身份证号和其他相关信息等初始化伪随机数种子,然后通过伪随机数种子采用随机算法生成随机数,这个随机数共有256位,作为私钥。

256位的私钥不便于使用,所以需要对私钥进行数据压缩,易读而且能够进行错误检验。生成的私钥采用Base58Check编码,Base58Check编码中的版本前缀是数据的格式,易于辨别,编码之后的数据头包含了明确的属性。这些属性可以明确被编码的数据的类型以及如何使用[9]。

(1)在加密私钥前添加标识码。

(2)对标识码与加密私钥组成的字符串进行哈希运算,取哈希运算结果的前4个字节作为校验码。

(3)将包含校验码的新字符串进行Base58Check编码,形成易于管理的十六进制字符串。

如果需要将加密的私钥安全地保存在备份介质里,可以使用一个口令,使用AES算法加密私钥,并使用Base58Check对加密的私钥进行编码,保持密钥在任何可能被暴露情况下的安全性。

3.3.2  公钥的生成与公钥加密

公钥生成采用椭圆曲线算法的计算公式如下:

其中P是公钥,K是私钥,G是椭圆曲线基点,计算K与G的椭圆曲线乘法得到公钥。要进行身份认证,首先计算用户身份信息的哈希值,因为哈希计算的过程具有不可逆性,所以不能根据哈希计算的结果倒推出信息的原始内容;然后再把这个哈希值用公钥加密。

公钥加密的过程是:首先计算身份认证信息的摘要,然后使用ECC算法随机生成一个密钥对,用公钥对该摘要进行加密,生成最终的用户认证信息记录。

3.3.3  私钥解密验证过程

认证用户身份时,首先计算提供的用户信息的哈希值,然后将计算所得的哈希值与认证信息自带的解密后的哈希值比对,如果结果值相同,证明没有修改过用户信息的内容。因为哈希计算的特性之一是保证如果内容不同,得到的哈希值不同,所以,如果修改了内容,那么重新计算出的哈希值就必然不同。

(1)用私钥解密加密信息的二维码,得到用户认证信息的摘要。

(2)取出用户信息,作为哈希函数的输入,计算哈希值。

(3)比较第一步解密后的摘要和第二部得到的结果,如果两者的值相同,表示认证成功。

3.3.4  账本技术

保存用户的认证记录(地点、事项等)到区块中,通过产生包含时间戳信息的区块哈希值,按时间顺序记录用户的认证信息,并链接形成区块链。随着区块链的不断延长,保证用户认证记录的不可更改性,增强可信性,可以通过读取区块链中的认证记录,进行用户行为分析、商品或服务推荐等商用业务。

4  结  论

区块链技术自身尚处于快速发展的初级阶段,本文利用区块链的天然可信性、可追溯性,将用户认证信息记录到区块链的可靠数据库中,提出了一种基于区块链技术的身份认证与存储方法,能够改进现有身份认证流程,保证身份认证过程的安全性、便捷性。因为区块链以多中心、去信任的方式运行,采用颠覆式的解决方案,因此具有广阔的应用前景。

参考文献:

[1] MELANIE S. Blockchain:Blueprint for a New Economy [M]. OReilly Media,Inc,,2015.

[2] 袁勇,王飞跃.区块链技术发展现状与展望 [J].自动化学报,2016,42(4):481-494.

[3] 郑康.A公司消费类数字资产流通平台商业模式与营销策略研究 [D].南京:南京大学,2016.

[4] MELANIE S. Blockchain Thinking :The Brain as a Decentralized Autonomous Corporation [Commentary] [J]. IEEE Technology and Society Magazine,2015,34(4):41-52.

[5] NAKAMOTO S. Bitcoin:A Peer-to-Peer Electronic Cash System [EB/OL].(2008-08-21).https://bitcoin.org/bitcoin.pdf.

[6] GitHub.Bitcoin Sourcecode  [EB/OL].(2016-01-18).https://github.com/bitcoin/bitcoin/.

[7] MERKLE R C. Protocols for Public Key Cryptosystems[C]// 1980 IEEE Symposium on Security and Privacy. IEEE,1980:122.

[8] ZYSKIND G,ZEKRIFA D M S,ALEX P,et al. Decentralizing Privacy:Using Blockchain to Protect Personal Data [C]// IEEE Security & Privacy Workshops. IEEE,2015:180-184.

[9] ANTONOPOULOS A M. Mastering Bitcoin:Unlocking Digital Crypto-Currencies [M]. OReilly Media,Inc,2014.

作者简介:王乃洲(1985—),男,汉族,江苏泗阳人,高级算法研究员,博士研究生,主要研究方向:计算机视觉、区块链;金连文(1968—),男,汉族,贵州都匀人,教授,博士,主要研究方向:文字识别、计算机视觉,智能系统;高兵(1976—),男,漢族,辽宁大连人,高级算法研究员,副教授,博士,主要研究方向:数据挖掘、大数据、区块链;金晓峰(1985—),男,汉族,山东潍坊人,技术副总监,高级工程师,博士,主要研究方向:智能视频分析、模式识别。

猜你喜欢

身份认证区块链
云电子身份管理与认证系统中的关键技术优化改进
校园网云盘系统存在的安全问题及对策
基于指纹身份认证的固定通信台站干部跟班管理系统设计
保险企业的区块链技术应用方向选择研究
区块链技术在金融领域的应用与前景研究
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
基于PKI与基于IBC的认证技术比较
Kerberos身份认证协议的改进