APP下载

基于区块链技术的高校身份认证系统设计

2020-02-04陈洪钧

电子技术与软件工程 2020年12期
关键词:单链哈希结点

陈洪钧

(广东技术师范大学天河学院 广东省广州市 510540)

1 大数据环境下高校身份认证的重要性

在高校信息化建设当中,每一部门都建设了不同功能、性质、技术的系统。这些系统之间没有任何的联系这就预示着每一个用户在使用这些系统的时候需要注册这一次用户名和密码,一旦密码丢失、错误就需花费大量的时间重置或者找回密码。其次每一套系统的安全性是不同的,软件危险性是不可估计的,在运行的过程中还有不可预知的安全问题。最后不同标准系统的混用,导致升级、功能拓展和新系统开发变得几乎不可能[1]。大数据时代下高校校园网络建设已经成为我国各大高校运营发展的重要组成内容,而注重校园网络建设安全问题也是其能够顺利开展进行的基本条件[2]。

由此可见,随着全球数字化时代的到来,高校数据的存储及处理需求日益丰富,同时数据安全、个人隐私的保护也面临着严峻的挑战。如何挖掘高校大数据的价值的同时来实现用户身份隐私的保护,是本文希望研究的问题。从某种角度来讲,如今的校园生活中数字世界与现实世界交错,校园中的每人每天面对的信息纷繁复杂而多彩,工作、学习、生活中方方面面都会面临着向一个群体交待“我是谁”的问题,使用区块链技术设计高校身份认证相关的服务,对于在师生及职工的身份快捷、方便安全认证有着积极的意义。

2 国内高校身份认证发展及现实意义

二十一世纪前二十年,面向我国各高校教职员工及学生的教务管理、人事管理、科研管理、学工管理、协同办公、图书管理、论文管理等多个系统逐步完善。早期各系统身份认证相互独立,信息交流困难,形成信息孤岛。后来虽然使用了统一门户的方式解决信息孤岛的问题,使用SSL 协议保护数据的传输安全,但是在身份信息数据存储的信息安全仍然没有很好的得到解决。

从国内高校各系统的身份认证分类上来看,大到有以下几种:

(1)使用用户名/密码的基于信息私密的身份认证;

(2)使用手机号/验证码、身份证、学生证等基于信任物体的身份认证;

(3)使用指纹、人脸等基于生物特征的身份认证。

这些身份认证在保障校园工作、教学、生活正常运转,预防校园欺诈方面至关重要。但是,现有的身份认证技术也存在着以下两个缺陷:

(1)很难保证用户隐私的保护。例如学生校园卡充消费、挂失、考试、考勤、毕业设计身份证、电话号码等个人隐私的保护。

(2)由于高校大多数系统中没有留存指纹、人脸等基于生物特征的信息,对于已经离职的教职员工、已经毕业的学生的身份认证困难。

图1:年度区块链索引单链表

图2:年度区块链二叉平衡搜索树

区块链作为一种新生科学技术,本质上是一种价值互联网[3]。区块链记载了从原始区块到最新产生区块的全部历史数据,是分散和开放的数据库系统。“区块+链+时间戳”形式的区块链结构可追踪溯源到任一交易,具有开放性、匿名性、难以篡改、难以伪造等特点。高校的身份认证本身需要应用于多种场景、为多个系统提供服务、对于信息本身的安全及个人隐私的保护日益加强[4]。基于各信息系统中身份认证缺陷及区块链技术的特点,本系统将采用区块链技术进行设计。

3 基于区块链技术的高校身份认证系统设计

区块链可以分为公有链、私有链、联盟链。公有链面向所有人开放,所有人都可以参与区块链系统架构开发应用;私有链针对个体开放,只有个体才有权使用;联盟链面向既定的联盟团体组织,公众可以查阅信息和进行交易,但不能参与验证交易,若要参与验证则必须获得联盟许可[3]。基于区块链技术的高校身份认证系统其本身的创建目前还只能应用于高校内部,为其他系统提供服务,所以本系统从设计属于私有链的设计。该系统的基本设计思想如下:

在数据结构的设计上,我并没有使用比特币所的Merkle tree,而是使用了单链表+二叉平衡搜索树AVL。这是由于高校的身份认证系统数据的增、删、改、查特点比较鲜明。数据新增集中发生在每年秋季入学阶段,数据修改很少发生,数据删除几乎不可能发生。基于此,对于单链表及AVL 树数据结构的增、删、改、查定义如下:

(1)每一年度学生入学完成后,创建一次该年度的AVL 树,该AVL 树创建完成后,不应单独删除单个结点(块),即使该某用户的身份证信息录入错误,也只需要在该树中插入一个新的结点,然后做旋转平衡处理。AVL 树创建完成后,需要在单链表中创建一个新的结点,该结点的block header 部分指向单链表表头,block body 部分指向创建好的AVL 树。

(2)单链表的结点只会发生增加、查询操作,不会发生修改、删除操作。树中的每个结点的block body 部分的数据是可以被修改的,但是block body 部分数据的修改需要使用安全性更高身份验证机制,例如使用本系统设计的第二种身份验证机制(见3.3 身份验证机制)。

(3)单链表的数据量较小,查询时的时间复杂度为O(n),这里的n 为单链表中结点的个数。AVL 树中的查询使用h(ID),即身份证的哈希值进行查询,所耗费的时间为o(log2n),这里的n 表示树中结点的个数。

(4)单链表增加一个结点的耗时为o(1)。AVL 树增加一个结点可能需要通过一次或多次树旋转来重新平衡这个树,旋转树的同时,可能需要修改某一个或某几个的block header 的值。当然,这种情况发生的概率比较小。

3.1 数据结构设计

为保证数据的有效性、完整性及数据查询的效率,数据结构为两级结构。第一级为年度区块链索引单链表(如图1 所示),第二级为年度区块链二叉平衡搜索树(如图2 所示),即AVL 树。

年度区块链表的每个结点是一个相对比较简单的块。每个结构的block header的保存上一个块的block header的哈希值(水平指针),也保存了一个二叉平衡搜索树的根块指针。其数据结构如图1 所示。

年度区块链二叉平衡搜索树的每个块的block header 部分保存两个指针和一个哈希值。两个指针分别为p(左子)和p(右子),其中p(左子)表示左子块的指针,p(右子)表示右子块的指针,h(ID)表示个人身份证的哈希值,该值是AVL 树的关键字,该值一端生成,不能修改。每个块的block body 部分保存了该用户的加密的公钥,用户名,密码,人脸加密信息,指纹加密信息及学号等信息的哈希值。

3.2 数据加密设计

数据加密包括数据传输的数据加密和存储的数据加密。本部分讲到的数据加密设计主要指存储的数据加密。即存储的单链表和AVL 中的每个结点,即每个块的数据加密。而传输的数据加密会在身份验证机制中介绍。

年度区块链索引单链表的每块的block header 部分保存了所指向块的block header 的哈希值。

年度身份验证区块链表的每块的block header 部分保存身份证的哈希值,并且身份证的哈希值为AVL 树的关键字。每块的block body 部分保存所有需要存储信息的哈希值,包括用户名、密码、加密的指纹信息、加密的人脸数据信息。而用户的公钥,需要使用本校的公钥进行加密存储。

3.3 身份验证机制

对于数据验证的方便性、安全性要求不同,验证方式也不应一样。本系统设计使用两种方式进行验证。

第一种验证方式,不使用用户公钥和用户私钥。身份认证信息先进行哈希运算,在传输之前使用本校的对称密钥加密后,再使用本校的公钥进行二次加密。数据在验证时,使用本校的私钥对密文进行解密后再使用对称密钥进行二次解密。

第二种验证方式,使用用户公钥和用户私钥。身份认证信息数据在传输之前使用用户私钥进行第一次加密,然后本校的对称密钥进行二次加密,最后使用本校的公钥进行第三次加密。数据在验证时,先使用本校的私钥进行第一次解密,然后使用本校的对称密钥进行二次解密,最后使用用户的公钥进行第三次解密,当然在得到用户的公钥前仍然需要使用本校的私钥进行解密。

以上两种验证方式,解密完成后验证的是身份认证信息的哈希值。从两种方式的验证过程,可以看到第一种验证方式不使用用使用户的公私钥对,更方便,安全性稍微差一些。第二种验证方式使用用户的公私钥对,安全性更高。这样可以在不同的场景下选用。

4 后期工作展望

高校身份认证系统为高校其他各系统提供微服务的子系统,本系统利用区块链中私有链的一些技术进行初步的设计,主要使用了对称加密、非对称加密及哈希算法来保证数据的安全性,使用单链表+AVL 树提高验证效率。但是目前的设计仍然是有缺陷的,目前的身份验证只能验证该身份是否合法,返回的信息过于单调。另外本系统并没有实现,无法进行验证。

后期设计工作主要分两方面。一方面,需要充分调研的基础上在块中设计更多关于高校身份认证时可以公开的信息进行存储,当然仍然需要加密。另一方面,使用设计语言及工具实现,进而进行测试,运行后验证。在具体的实现过程中,具体加密算法、分布式数据存储都有待进一步研究。

猜你喜欢

单链哈希结点
逐步添加法制备单链环状DNA的影响因素探究*
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
盐酸克伦特罗生物素化单链抗体在大肠埃希氏菌中的表达
急性淋巴细胞白血病单链抗体(scFv)的筛选与鉴定
基于维度分解的哈希多维快速流分类算法
DNA处理蛋白A在细菌自然转化中的作用
基于同态哈希函数的云数据完整性验证算法
基于Raspberry PI为结点的天气云测量网络实现
一种基于Bigram二级哈希的中文索引结构
基于DHT全分布式P2P-SIP网络电话稳定性研究与设计