基于区块链的网络身份认证及保险机制

2021-10-18 08:13麦超钟林峰杨振国胡振宇刘文印
现代计算机 2021年24期
关键词:管理器合约密码

麦超,钟林峰,杨振国,胡振宇,刘文印,3

(1.广东工业大学计算机学院,广州510006;2.广东工业大学网络身份安全实验室,广州510006;3.鹏城实验室网络空间安全研究中心,深圳518000)

0 引言

当前高速发展的互联网已经深入到社会生活的各个方面,极大地促进了社会经济的发展。然而在享受信息的高度网络化带来的各种便利时,网络安全方面的挑战也随之而来,各种网络身份信息泄露事件愈演愈烈,使个人和企业遭受巨大损失。网络安全公司Shape Security发布的2018Credential Spill Report[1]显示,来自51个不同组织的23亿份证书发生过泄漏;在传统的网络身份认证机制中,主要包含了客户端和网站服务器。用户通过操作客户端填充相应的登录信息(例如账号密码、短信验证码等)与网站服务器交互。但因为网站服务器都是相对孤立,不同的网站服务器安全防护程度参差不齐,又因为用户存在着密码疲劳、密码复用等问题,攻击者往往会从安全防护程度低的服务器作为突破口进行网络身份的攻击,转而利用所得数据攻击安全防护高的系统。所以目前传统的网络身份认证机制中存在着明显的安全木桶短板问题。如何对众多繁杂的账号密码进行有效的管理认证及安全保护成为了身份认证技术所面临的新挑战。

1 相关性研究

目前流行的密码管理器有登录易[2]、Password⁃Box、1Password等,专注解决使用密码时“烧脑”“密码疲劳”等问题。tiQr项目研究组推出的基于Android/iOS平台的tiQr软件[3-4]除了实现对于用户网络身份保存、管理等基本功能外,还实现了通过扫描网站登录页显示的二维码登录的功能。SQRL(Secure,Quick,Reliable Login)项目研究组正在研发的SQRL软件[5]也包含了扫描获取网站信息的功能。联合单点登录技术是目前比较流行的企业业务整合的解决方案之一,常见的单点登录技术有OpenID[6]、SMAL[7]等。网络电子身份证eID作为公安部第三研究所的科研成果[8],依托国家公安部全国人口库,在确保个人信息身份真实性的同时,有效避免了用户身份信息被保留在网络运营商时潜在的泄露风险[9]。与eID类似,王娟等[10]提出了基于虚拟卡技术的移动互联网身份认证系统ID-Vcard,将虚拟卡作为一种身份管理的形式,从而更好地保护用户的身份隐私。

在互联网保险领域,目前,包括各银行、360、腾讯、支付宝、苏宁金融等,推出的都是对自己平台账户的安全保险,很少有第三方保险公司参与其中。在传统的保险行业中,各保险类型都更加偏向实体与民生的保护,关于网络身份的保险研究较少。但是,愈演愈烈的网络身份被盗事件让网络身份保险成为当下

网络身份管理领域迫切的需求之一。本文贡献:

(1)本文利用密码管理器账号密码管理功能,提出了基于区块链的网络身份登录认证机制,结合了区块链点对点交互、分布式存储、去中心化共识等特点,解决了网络身份安全的木桶短板,提高了网络身份认证的整体安全水平和用户身份操作记录的可信任性。

(2)本文提出基于区块链网络身份保险机制,结合智能合约功能,可应对理赔判别难度大、凭证可信任程度不足、过程繁杂、时间长等问题,保证了用户身份操作记录的可信任性、不可篡改和实现自动理赔。

2 预备知识

2.1 NULS链

比特币(Bitcoin)的概念最初由中本聪在2008年提出,一种P2P形式的去中心化的支付系统。以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台,提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。作为加密货币与去中心化应用平台,开发者可以在智能合约中搭建属于自己的应用。但更多情况下,智能合约往往不能满足开发者的实际需求,如果修改底层源码则面临着增加更多与业务本身无关的工作量。NULS[11]是全球性区块链开源社区项目,设计的技术架构由微内核和功能模块组成,提供可升级的业务、共识、网络、账本、账户、区块管理、链管理、交易管理、事件总线等功能模块,开发者可以在业务模块中快速开发自己的业务逻辑,同时根据实际需求相对独立地修改某一功能模块,这样可以方便公司或企业更好地搭建开发和使用区块链系统。如图1所示,Nulstar模块负责管理所有的模块,各模块之间通过WebSocket进行通信。本文提出的基于区块链的网络身份认证及保险机制的基本逻辑主要在业务模块和智能合约模块中实现。

图1 NULS模块化架构

2.2 SM2加密算法

SM2算法是我国自主研发基于椭圆曲线离散对数问题(ECDLP)的非对称密钥算法。2010年,国家密码管理局发布了SM2椭圆曲线公钥密码算法标准[12],包括数字签名算法、密钥交换。根据相关研究,256位SM2加密算法的安全性远胜于主流RSA-1024算法,且密钥生成速度和签名速度也优于RSA算法[13]协议和公钥加解密算法。本文中SM2加密算法用于网络身份认证和保险机制通信信息的加密。

2.3 POC共识算法

区块链共识机制的目标是使分布式网络中所有节点保存的数据满足一致性和有效性[14]。常见的共识算法有工作量证明(proof of work,POW)[15]、股益证明(POS)[16]、权威证明(proof of authority,POA)[17]共识机制。本文机制中使用信用证明(proof of credit,POC)[18]算法,在节点信用达标的情况下,锁定一定数量的代币即可加入共识,共识节点排序后每轮轮流出块。生成的区块不需要依靠算力竞争记账权,在保证系统安全可信任的情况下,有效地减少了资源浪费,提高了区块的生成速度。

2.4 智能合约

从技术层面来说,智能合约相当于一种计算机程序,可以自动执行全部或者部分合约相关操作,同时生成被验证的证据,以此来证明合约操作执行结果的有效性,并且此过程不需要人为干预。区块链的去中心化特性、共识算法等要素,使得智能合约允许在无信任的环境下用户不需可信第三方中心的保障就可完成交易。因此,部署在区块链上的智能合约具有匿名性、去中心化、防窜改和可追溯等特性。以太坊是目前应用最广泛的智能合约开发平台[19]。在本文的基于区块链的网络身份保险机制中,将使用智能合约功能,实现保险机制的申请理赔和自动理赔功能,保证数据及操作的可信仍性及有效性,提高理赔的效率。

3 基于区块链的网络身份认证机制设计

如图2所示,认证机制中主要包含了三大部分,传统身份认证机制、去中心化密码管理器轻节点、区块链系统。其中,区块链系统中包含了NULS链本身的基础模块,如网络模块提供网络连接通信支持,区块模块存储区块链共识数据。特别的,我们提出去中心化密码管理器作为区块链轻节点,去中心化网站服务器作为区块链的全节点,具体分别如下介绍。

3.1 去中心化密码管理器轻节点(DPM)

DPM除了兼容传统密码管理器帮助用户进行密码管理,解决密码烧脑、疲劳、复用等问题外,还可以作为区块链网络中的一个轻节点,通过构建广播区块链交易的方式,直接地利用点对点技术与区块链系统进行通信,降低了传统密码管理器中心化服务器转发的风险,实现网络身份的去中心化管理。

3.2 去中心化网站服务器全节点(DServer)

DServer是各种网站在区块链系统中的联盟全节点,作为传统网站服务器(TServer)与区块链沟通的桥梁和“防火墙”,可以传递和检查并过滤来自DPM的注册、登录、修改密码、投保理赔等请求,以此提高网络身份服务器的整体安全性和可信任性。

3.3 基于区块链的网络身份认证流程

如图2所示,用户打开客户端获取二维码信息,然后使用DPM扫描二维码。DPM根据二维码信息和本地存储的账号密码等信息加密后生成登录请求交易广播到区块链中。区块链中的DServer接收到共识后的交易将其包含的登录信息转发到TServer,TServer验证登录信息正确性后,返回加密后的令牌给DServer。DServer根据令牌广播允许登录交易。客户端从允许登录交易中获取登录令牌解密后重定向登录。

相关的符号描述如下:

表1符号和方法描述

图2基于区块链的网络身份认证机制

身份认证算法过程描述如下:

4 基于区块链的网络身份保险机制设计

如图3所示,在基于去中心化网络身份认证机制的结构下,区块链系统部分增加了保险公司节点和监督节点、智能合约模块。

4.1 保险公司节点

保险公司节点主要由保险公司组成,主要负责为用户提供相应的网络身份保险业务。不同的网络身份保险公司通过部署智能合约的方式提供服务。用户通过DPM申请购买网络身份保险或申请自动理赔。

4.2 监督节点

监督节点主要由网络安全审计公司或第三方中立平台或机构组成,网络安全公司主要负责对用户的网络身份和网页安全程度进行评估,生成相应的证明可供用户或保险公司作为网络身份保险的考核数据。其次,网络安全公司同时会对区块链数据进行监测,保证数据的去中心化,可信任和不被篡改。

图3去中心化网络身份保险机制

4.3 基于区块链的网络身份保险机制描述

如图3所示,基于区块链的网络身份保险机制可分为预保险阶段、申请保险阶段和申请理赔阶段。

4.3.1 预保险阶段

预保险阶段用户需要修改登录密码、保险公司上传保险智能合约、网站服务器公司需要上传登录凭证。

针对网络身份保险中用户网络身份丢失难判别的情况,即用户的网络身份是丢失后的异常登录还是用户本身的假丢失然后登录的情况,例如告知他人进行登录而获取理赔。本文中提出了用户本身都不知道账号密码的思想,通过DPM修改为强密码后返回其隐藏值(本文中返回强密码的哈希值)作为网络身份投保的前提条件。过程如图3,步骤1.1~1.5所示,DPM广播申请修改密码交易到DServer,DServer转发密码信息到TServer,TServer验证密码信息的正确后,返回强密码隐藏值到DServer,DServer广播允许修改密码交易。DPM从允许修改密码交易获取隐藏后强密码更新DPM本地存储。

修改密码算法流程如下:

在基于区块链的网络身份保险中,主要包括了两个登录哈希凭证HashProof1和HashProof2。由Algo⁃rithm 1第9步可知,HashProof1在网络身份认证过程中由DServer广播分布式共识存储于登录许可交易中,具有可信任性可不可篡改性。HashProof2=Hash(Account,Hash(UID)),当UID不为去中心化密码管理器登录时,UID为0;由TServer以日志记录的形式调用区块链接口存储于智能合约中。HashProof2则记录了所有登录形式(此时也包括去中心化密码管理器登录的方式),例如账号密码手动登录或其他方式登录,则被认为时网络身份异常或丢失的情况。步骤如图3,0.1~0.2所示,TServer上传HashProof2到智能合约中,智能合约从区块中获取HashProof1。

保险公司业务逻辑通过一定规范进行智能合约编码后,上传到智能合约中为用户提供购买服务。过程如图3,步骤2.1所示。

4.3.2 申请保险阶段

用户在修改了网络身份密码后,返回了密码的隐藏,此时达到了申请为网络身份投保的条件。操作流程如图3,步骤2.2所示:用户通过去DPM广播申请投保交易,调用相应的保险公司的智能合约,根据其内部逻辑实现投保。

4.3.3 申请理赔阶段

用户为该账号购买了相应的网络身份保险并发现该账号异常或造成损失时,可通过去DPM申请理赔,该机制可以利用智能合约自动理赔。

智能合约HashProof1与HashProof2的比对情况如下:

如发生异常情况,则智能合约自动发起理赔通过交易,实现自动理赔。

5 实验

本节实现基于区块链网络认证及保险的功能,并且从单次登录所需时间,多节点共识丢块及智能合约自动理赔所需时间三方面验证系统的可行性、稳定性。本实验是在10台PC配置为Intel Core i7-7700HQ 3.60 GHz CPU、16 GB内存和3台不同品牌类型的手机端上进行的。通过开启Linux系统VM虚拟机,部署了100个去中心化服务器节点作为共识节点并搭建了网站的前后端。

5.1 单次登录所需时间测试

单次登录所需时间测试为用户使用去中心化密码管理器扫码登录到客户端获取登录的session和token重定向并登录成功所需的时间。在实验中,总共进行了1000次登录操作,其结果如图4所示,单次登录时间在1.5~3 s之间波动,平均登录时间的2.2628 s。同时也进行了传统网络身份单次登录所需时间测试,传统单次登录时间在0.8-1.5 s之间波动,平均登录时间为1.2954 s。由结果所示,基于去区块链的网络身份认证系统单次登录结果在用户登录体验所承受的时间范围之内,证明了该系统的可行性。

图4单次登录所需时间统计

5.2 多节点共识区块丢失率测试

丢失率=(本轮共识节点总数-本轮正常出块数)/本轮共识节点总数。

在实验中,使用POC共识算法对基于区块链的网络身份认证系统进行丢块率测试。在测试过程中,总共部署了100个节点进行1000轮测试。每轮将会由100节点轮流出块。因此,总的测试出块数量约为100×1000=100000块,出块间隔为3 s。如图5(a)所示,块丢失率在0-0.05之间波动,部分块丢失率为0,小部分块丢失率为0.01。如图5(b)所示,在1000轮测试中,约700轮块丢失数量为0,约150轮块丢数量为1,其余丢失情况在2到5块之间。从实验结果来看,绝大多数情况(每轮块丢失数量少于3),基于区块链的网络身份认证系统处于稳定状态,并不会影响用户的登录及其他操作,证明了该系统的稳定性。

图5多节点共识块丢失测试

5.3 智能合约自动理赔所需时间测试

智能合约自动理赔所需时间为:用户在申请了网络身份保护投保后,在后续使用过程中发现网络身份异常,通过如图3所示的去中心化密码管理器申请理赔界面申请自动理赔到获取到相应理赔代币所需要的时间。在实验过程中,总共进行1000次申请理赔测试。如图6所示,单次成功获得理赔的时间在1~2.5 s之间波动,平均理赔时间为2.1457 s。实验证明,基于区块链的网络身份保险系统,实现网络身份保险的去中心化及高效性。

图6智能合约理赔所需时间

5.4 系统安全性分析

本文提出了基于区块链的网络身份认证及保险机制,在传统的网络身份认证的机制下(由客户端及服务器组成),增加了去中心化密码管理器和区块链系统,在兼具解决密码疲劳、复用等问题情况,实现去中心化,直接与网络身份认证系统点对点交互,无需经过中心化机构或插件处理转发,保证了管理器的可信任性。从独立服务器方面分析,各网站在区块链中部署网站服务器全节点,对用户与网站服务器通信数据进行过滤与筛选,充当防火墙的作用,进一步保护了网站服务器。从网络身份认证及保险整体分析,各网站服务器全节点部署在相同的区块链系统,有利于提高通信系统的整体安全性,解决安全木桶短板问题。同时也为保护用户隐私、网络身份保险创造了去中心化、可信任的条件。

6 结语

本文针对密码管理器中心化,传统网络身份认证机制孤岛、安全木桶短板问题,网络身份保险凭证可信任性不足,理赔手续繁琐等问题提出基于区块链的网络身份认证及保险机制。该机制实现密码管理器去中心化,身份认证服务器节点组成联盟链,通信数据分布式共识存储等;并通过实验证明该机制认证的可行性、稳定性和理赔的高效性。

猜你喜欢
管理器合约密码
启动Windows11任务管理器的几种方法
应急状态启动磁盘管理器
谁泄露了密码
用好Windows 10任务管理器
密码藏在何处
破译密码
夺命密码
在Win 7下利用凭据管理器提高访问速度等