基于区块链的身份认证系统的设计与实现毕业论文
2020-02-16 22:40:07
摘 要
区块链的概念是在2009年由比特币的发明者中本聪所提出的,是比特币的底层技术,其本质上是一个去中心化的数据库。目前互联网上的毛衣大部分都是需要依赖于可信任的第三方机构进行交易,还处于“基于信用的模式”。而区块链的本质是一个去中心化、去信任化的分布式数据库技术方案[1]。区块链在存储过程中每一个节点都参与存储并且区块链可以生成一套在时间上有序、不可篡改、可信任的记录,区块链可以把各方面的孤立数据库整合起来,令任何一方都无法控制这些数据,只按照规则和共识更新。目前有很多身份认证的方式,但随着互联网时代的飞速发展,传统的认证方式即口令(密码)来认证已经不能满足人们的需求,人们对交易对象的身份认证要求越来越高,随之出现了加密算法,以公钥和私钥来进行身份的认证,但在目前这个大型互联网交互的时代,为了更加确保认证信息不被篡改且不仅仅需要满足单对单的信息交互,因此,将区块链技术应用到身份认证上是十分符合身份认证的发展趋势的。将加密后的秘钥存放到区块链上,根据区块链的不可篡改性来保证身份认证的安全性。区块链的这些特点,使其在金融领域、知识产权领域和社会管理等方面都能有着很大的作用,因此,区块链技术成为了近年来人们研究的热点,越来越受到人们的重视。
根据上述的背景,本文将描述基于区块链技术的身份认证系统,系统包括用户注册、用户登录、身份信息修改、账户注销、区块信息查询、已注册用户查询这些基本功能完成基于区块链的去中心化开发。搭建hyperledger fabric原始框架,使用node.js实现前端与智能合约的交互,使系统可以在测试网络中正常运行。
基于区块链的身份认证系统,其意义在于将传统的数据库存储信息以及对数据库的修改操作保存到区块链上,以此来保证用户信息的安全性;此外,区块链可以用来存储用户的身份信息,并记录每一次对信息进行修改的操作,方便了对记录的查找,区块链本身使用哈希算法对信息进行加密,有着不可篡改性,保证了用户信息的安全,因此,基于区块链的身份认证系统符合区块链的发展趋势并且其有着相当广泛的应用前景。
关键词:区块链、去中心化、身份认证、fabric
ABSTRACT
The concept of blockchain was proposed by Bitcoin inventor Nakamoto in 2009. It is the underlying technology of Bitcoin, which is essentially a decentralized database. Most of the sweaters on the Internet today rely on trusted third-party agencies for transactions, and are also in a "credit-based model." The essence of the blockchain is a decentralized, de-trusted distributed database technology solution [1]. At present, there are many ways of identity authentication. However, with the rapid development of the Internet era, the traditional authentication method, that is, password (password) authentication can no longer meet people's needs, and people's identity authentication requirements for transaction objects are getting higher and higher. An encryption algorithm has emerged to authenticate the identity with a public key and a private key. However, in the current era of large-scale Internet interaction, in order to ensure that the authentication information is not falsified and not only needs to satisfy the one-to-one information interaction, The application of blockchain technology to identity authentication is in line with the development trend of identity authentication. The encrypted key is stored in the blockchain, and the security of the identity authentication is ensured according to the inelastic modification of the blockchain.In the blockchain, each node participates in the storage process and the blockchain can generate a set of records that are time-ordered, non-tamperable and trustworthy. The blockchain can integrate all kinds of isolated databases to make any None of the parties can control this data and only update it according to rules and consensus. These characteristics of the blockchain make it play a big role in the financial field, intellectual property field and social management. Therefore, blockchain technology has become a hot topic in recent years, and people are getting more and more people Pay attention to it.
According to the above background, this paper will describe an identity authentication system based on blockchain technology. The system includes user registration, user login, identity information modification, account logout, block information query, and registered user query. The basic functions are based on blockchain. Decentralized development. Build the original framework of the hyperledger fabric, use node.js to realize the interaction between the front end and the smart contract, so that the system can run normally in the test network.Blockchain-based identity authentication system, the significance of which is to save the traditional database storage information and the modification operation of the database to the blockchain to ensure the security of user information; in addition, the blockchain can be used for storage. The identity information of the user, and the operation of modifying the information every time, facilitates the searching of the record, and the blockchain itself uses a hash algorithm to encrypt the information, which is incapable of modifying, ensuring the security of the user information, therefore, The blockchain-based identity authentication system conforms to the development trend of blockchain and has a wide application prospect.
Key Words: BlockChain、Decentralization、Authentication、fabric
目录
第一章 绪论 3
1.1研究背景 3
1.2国内外研究现状 4
1.3研究意义 4
1.4研究内容与工作 5
1.5本文的组织结构 5
第二章 技术概述 6
2.1区块链工作原理 6
2.2区块链技术 6
2.2.1P2P协议 6
2.2.2区块链中的密码学[7] 6
2.2.3哈希函数 7
2.2.4 Merkle树 7
2.2.5 共识算法 8
2.3身份认证技术 9
图 2.3 证书签发流程图 9
2.4本章小结 9
第三章 需求分析与设计 10
3.1总体规划 10
3.1.1系统架构 10
3.1.2需求分析 10
3.2身份信息维护模块分析与设计 11
3.2.1身份信息维护流程 11
3.2.2身份信息维护功能设计 11
3.3区块查询模块分析与设计 12
3.3.1区块查询流程 12
3.3.2区块查询模块设计 13
3.4已注册用户信息查询模块分析与设计 13
3.4.1已注册用户信息查询流程 13
3.4.2已注册用户信息查询模块设计 14
3.5 PKI数字证书设计 14
3.5.1证书申请流程 14
3.5.2证书签发流程 14
3.5.3证书使用流程 14
3.6本章小结 14
第四章 身份认证系统的实现 16
4.1系统实现概述 16
4.1.1基于Hyperledger fabric原始框架的开发 16
4.1.2业务逻辑处理 16
4.2前端界面开发 16
表 4.1 前端界面设计表 16
4.3函数定义 17
表 4.2函数定义表 17
4.4前端实现 18
图 4.2 用户注册页面 18
图 4.3 身份修改页面 18
4.4数字证书生成 18
图 4.4 Keytool工具生成数字证书的过程 19
4.5 node.js实现 19
4.6本章总结 20
第五章 总结与展望 21
参考文献 22
致谢 23
- 绪论
1.1研究背景
区块链(BlockChain)技术最早起源于2008年11月中本聪发布的《比特币:一种点对点的电子现金系统》一文,这篇论文的发表标志着比特币成功问世。在之后,相继出现了第一个序号为0和第一个序号为1的创世区块,2009年1月两个区块相接成链,标志着区块链的诞生。
区块链是比特币的底层技术,其实质上是一个去中心化去信任的、运用自身节点对网络数据进行分布式存储、验证、传输和交流的计算机技术的创新应用模式[2]。区块链是一个一个区块通过哈希值进行链接而形成的链,就目前而言,互联网上的大部分交易仍然采用有第三方可信任的机构进行“基于信任的模式”,而区块链在存储过程中,区块链上的所有节点都参与存储,在记录过程中所有的区块都会参与记录、共同维护,并且在区块链中使用了密码学技术,这使区块链可以生成一套记录时间有先后、不可篡改、可信任的数据库。区块链技术具有去中心化、开放性、可靠性、安全可信、匿名性的特点。一般来说,区块链系统整体上由数据层、网络层、共识层、合约层和应用层这五个部分结构组成。区块链是用来解决交易的信用和安全问题的,它包含分布式账本技术:即交易记账由分布在不同地方的多个节点共同完成的,而且每一个节点记录的都是完整的账目,它们都可以监督交易得合法性,同时也可以为其作证,由于每一个都可以单独的记录数据,所以避免了单一记账可以记假账或者出现贿赂的情况,而且因为记账的节点数量足够多,所以想要破坏起来的难度就更高,对安全性有了充分的保障;二、区块链采用了非对称加密和授权技术:在区块链上存储的信息是公开的,每个人都有权访问,但账户的身份信息是高度加密的,只有在拥有者的授权下,才能够访问到;三、共识机制:解决所有账户之间如何达成共识的问题;四、智能合约:是基于可信的不可篡改的数据自动执行某些规则。
身份认证一直是人们所关注的焦点问题,姓名是我们最常见的身份认证方式,但由于人口越来越多,以姓名来认证身份显然是不可靠的;相互熟识的人之间可以通过声音等来验证身份,即自己所了解到的信息来进行认证;而随随着科技的进步,另一种认证方式逐渐兴起,即通过口令(密码)来确认个人信息,但简单的口令是很容易被破解的,应要求而出现的数字认证解决了这样的问题,数字认证技术即通过对信息进行加密处理生成相对应的公钥以及私钥并对信息进行数字签名而实现的一种认证方式,这种认证方式使人们可以对交易对象的身份进行确认,降低了冒认的可能性,但数字认证方式也存在着缺陷,人们想要认证交易对象的确实身份,但数字认证仍然存在对公钥的篡改风险,而且在如今这个大型的互联网交互时代,仅靠数字认证只能实现一对一的交易,无法满足多对多的网络交易需求,而区块链的出现,适时地解决了这个问题,由于区块链本身就是分布式账本,可以满足数据对所有区块公开,满足了大型互联网交互的要求,同时,区块链上的信息因其共识算法的缘故,想对其中任意区块进行信息上的篡改都需要拥有超过区块链上51%的总算力方能对信息进行篡改,因此,将数字认证存储到区块链上在相当程度上解决了防篡改的问题。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: