黄琪 王大帝 张珊
摘 要:身份认证是保护信息系统的第一道安全防线,本文对现有的身份认证技术进行分析,提出基于区块连技术的人脸识别认证模型,介绍了该模型的技术组件及主要流程。
关键词:区块连;人脸识别;身份认证;去中心化
中图分类号:TP309 文献标识码:A 文章编号:1671-2064(2019)15-0041-02
0 引言
用户访问业务系统时,对用户身份进行审查,查看该用户是否具备继续访问和使用系统的资格,即身份认证。身份认证主要通过3种方式实现:
(1)知识类认证方式。用户回答自己所掌握的信息来证实身份,如用户的静态密码等。知识类认证方式,是早期的身份认证方法,非常不安全,容易受到社会学攻击、暴力破解等。(2)资产类认证方式。根据用户所拥有的资产来证明身份,如电子令牌、短信动态口令等。资产类认证方式,对动态电子令牌、手机等移动终端依赖性比较大。一旦移动终端设备被不法者获取,很可能利用获取动态口令进行非法登陆。(3)固有特征认证方式。采用用户独的、不可复制的特征来证明身份,如指纹、人脸等。该方式不容易被复制和破解,使用方便。
以上三种认证方式,均存在数据库泄露的风险:攻击者获取中心化的数据库,会造成大规模信息泄露,同时可篡改数据信息,以此通过身份认证。
区块链技术是一种不可篡改、可追踪、不断增长的分布式账本式数据库。本文提出一种基于区块链技术的人脸识别认证模型,采用去中心化的方式存储身份信息,使得人脸认证更加安全、可靠。
1 基于区块链技术的人脸识别认证模型
基于区块链技术的人脸识别认证模型包括两个核心技术组件:人脸识别组件和区块链组件。将采集到的人脸信息与个人信息挂钩,经过区块链共识完成存储;其次,人脸识别时,从经过共识的区块中调取人脸信息进行比对,可以防止冒名作假现象;最后,人脸识别全流程链上公开透明可追溯,有效杜绝后台修改数据现象,同时发生异常时可以实现快速定位。
1.1 技术组件
1.1.1 人脸识别组件
图1是人脸识别组件技术逻辑图。客户端SDK能够适配windows台式电脑、android移动终端、IOS移动终端、IP网络摄像头等多种终端设备,具备人脸检测、人脸对齐等通用功能,通过有线或无线网络连接人脸识别服务端。业务系统前端与人脸识别客户端SDK进行集成。客户端SDK通过终端设备进行视频流捕获,并采用H264进行解码,并提取视频流中的视频帧进行预处理,将彩色图片进行灰度化、清晰度判断等预处理,然后采用图像图像金字塔技术进行图片的缩放,并使用MTCNN网络进行人脸检测,定位人脸特征点。WEB服务器通过服务接口获取客户机识别请求,进行人脸特征提取、人脸识别运算,反馈识别结果回馈至业务系统客户端。
人脸识别流程如图2所示。通过手机、摄像头等设备采集图像,经过人脸检测、人脸对齐、特征提取等技术,采用mobilefacenet进行人脸特征提取,将特征空间中提取的人脸特征值与人脸特征库中的特征值进行搜索、比对,分别计算余弦距离,采用冒泡排序的方式选选择最相似的人脸,并输出结果。当最相似的人脸的相似值超过阈值,则身份验证成功。
1.1.2 区块链组件
如图3,给出了区块链组件的逻辑图。区块链组件主要包括区块构建管理、区块共识管理、核心服务等功能,为业务系统提供一个去中心化、分布式的、防篡改、可追溯的数据可信环境,通过API接口将数据存储在区块链上,在需要进行提取和验证时,通过API接口查詢链上的数据,形成完整的数据可信流转业务能力视图。
区块构建管理:实现对业务系统数据的存储支持以及数据的区块查询和处理结果查询。
区块共识管理:配置共识域,并采用拜占庭算法对共识节点进行管理。
核心服务:区块链组件对外提供三种核心服务API。(1)一致性服务,采用区块链技术,对数据存储进行一致性管理,以实现业务数据的一致性更新和存储,提高运行过程中存储、调用的稳定性与安全性。(2)可信服务,利用区块链技术的时序特性、数据不可篡改与抗攻击等特性,将核心操作进行区块存储,进行可信账户统计结果的区块数据共享,提升了查询数据、运行应用、账户监控力度和等级评价的可信性。(3)隐私服务,利用区块链技术实现传输通道的两端非对称加密,实现对传输数据的通道化管理和在通道中的加密传输,解决数据在通道传输过程中信息易被抓取和破解等问题。
1.2 模型环节
本模型主要包括注册和验证两个环节。用户初次发起服务请求时需要完成注册操作,注册成功后服务端返回服务和公钥;用户再次请求服务时需要完成验证操作,验证成功后服务供应商返回服务和新公钥,如图4所示。
1.2.1 注册
步骤1:用户通过客户端注册个人信息,并上传人脸图片;步骤2:人脸识别组件接收人脸图像,提取用户人脸特征,并将人脸特征值反馈给客户端;步骤3:客户端将人脸特征值和用户名的哈希值发送给服务端;步骤4:服务端的所有节点共享同一个帐本。通过拜占庭算法选举其中一个节点作为主节点,其他节点传播、计算、验证人脸识别特征的哈希摘要。当超过2/3的节点计算的哈希摘要相同,则达成共识;主节点使用私钥对人脸特征值摘要和用户名的哈希值进行签名,并写入新区块;步骤5:服务端将公钥返回给客户端,完成注册。
1.2.2 验证
已注册的用户想要获取服务,需要服务端、区块链进行身份验证。验证流程如下:
步骤1:客户端获取用户名、人脸图像、公钥;步骤2:客户端将人脸图像传递给人脸识别技术组件,提取用户人脸特征,并返回给客户端;步骤3:客户端将公钥、人脸特征值、用户名的哈希值发送给服务端;步骤4:服务端使用公钥在区块链中进行验签,遍历寻找相同的用户名哈希值;如果不存在相同的用户名哈希值,则该用户不存在;步骤5:计算该人脸特征值与区块链中存储的该用户的人脸特征值的相似度,如相似度小于阈值则验证失败,如相似度大于阈值则验证通过;步骤6:计算当前区块的哈希值(包括前一区块的哈希值、时间戳、人脸特征值、私钥签名的用户名哈希值)是否与下一区块中存储的值相等,如相等则验证通过。
2 结语
本文针对身份认证技术进行了分析,指出知识类认证、资产类认证、固有特征认证三种方式存在的缺陷,提出了基于区块连技术的人脸识别认证模型,区块链的私钥加密、分布式存储、全程可追溯可增强身份认证的安全性,解决泄库、数据篡改等问题。
参考文献
[1] 夏振杰.基于人脸识别技术的身份认证系统实现简介[J].科技信息,2010(5):44.
[2] 何昀.基于虹膜的人体特征识别方法研究与实现[D].东北师范大学,2006.
[3] OGorman L.Comparing passwords,tokens,and biometrics for user authentication[C]//Proceedings of the IEEE,2003:2019-2020.
[4] 彭永勇,张晓韬.基于区块链应用模式的可信身份认证关键技术研究[J].网络安全技术与应用,2018(02):36-37.
[5] 邵奇峰,金澈清,张召,等.区块链技术:架构及进展[J].计算机学报,2018(05):3-22.