本文是一篇项目管理论文,本文的主要研究内容为零信任架构中区块链数字身份问题,传统的身份认证在模式到实施上都有待完善与革新。
第一章 绪论
1.1 选题背景与研究意义
1.1.1选题背景
互联网的蓬勃发展,为人们生活提供了方便。由于应用日益增多,人们在进行身份验证时,同一资料常常需要反复提交,这样就给民众生活造成诸多不便。为此,需要一种能够支持多种应用系统,且具有较高安全性和可扩展性的身份认证方案。以PKI(PublicKey In frastructure)机制为例。这种方式具有高度的独立性和权威性,在保证用户隐私方面有明显优势。尽管有些身份证书服务提供商通过提供身份证书简化了身份验证过程,但是由于集中存储管理,也存在许多安全问题。目前,许多国家都面临着网络信息安全问题,如网络蠕虫、木马病毒、计算机犯罪以及各种安全威胁等等,比如在2011年遭到黑客入侵之后,一个荷兰CA证书提供商向许多网站提供虚假证书,造成重大经济损失,一旦中央控制系统受到攻击,就会造成无法估量的危害。因此,区块链应运而生,以解决上述问题。在虚拟货币系统中,它是底层技术,早期区块链不被重视。
随着互联网时代的到来,大数据成为一种新的信息资源,而区块链是实现大数据分析和共享的有效手段之一,现如今区块链已经运用到各种领域中。同时,大数据分析技术也为区块链上访问控制提供了新的方法和工具。区块链在分布式交易中具有透明性,不易篡改等特性,和无需第三方背书可信机制,这正符合大数据环境下访问控制所要解决的信任机制——分布式部署机制对访问控制的要求。区块链技术为构建去中心化的身份认证方案带来了新的思考。
目前,在很多领域中,基于分布式网络环境下的身份认证都需要集中进行管理。结合区块链技术进行身份认证,既解决了以上集中管理所产生的安全问题,又因为区块链具有开放性,透明度等特点,信息共享亦得以实现。区块链技术的出现,给去中心化身份认证方案提供一种新思路。在传统身份认证系统存在不足的基础上,提出基于区块链的身份认证模型,并给出具体实现方法及相关安全性证明。既解决了以上集中管理所产生的安全问题,又因为区块链具有开放性,透明度高等特点,从而实现信息共享。
1.2 国内外研究现状
1.2.1国外相关研究
访问控制技术作为保障数据共享安全的重要途径,在大数据背景下仍将扮演重要角色[1]。人们对于大数据概念的理解往往通过分析大数据本身的特点,大规模(Volume)、高速性(Velocity)和多样性(Variety)是它最普遍的特征,也就是3V特点[2-5]。静态口令和动态口令虽然有很大不同,但二者在应用中还是可以很好地结合起来的。由于动态口令认证具有安全性高、扩展性强等优点,所以在许多领域里得到广泛应用。例如:网络身份验证、电子钱包安全、银行账户管理等方面。目前在安全领域应用最为广泛的动态口令认证有基于密文和基于明文两种方案,前者主要用于验证用户是否拥有真实身份;后者可以通过加密解密算法对密钥进行修改后使用,从而达到防止攻击者盗取数据、窃取机密以及伪造签名等目的。
以太坊技术最早由Vitalik Buterin在2013年提出,当时他在Bitcoin Magazine上发表了一篇名为“以太坊:一个世界计算平台”的文章,他提出了以太坊的技术基础。此后,Buterin和许多其他研究人员和开发者推动了以太坊技术的发展。2014年,以太坊联合创始人Gavin Wood发表了一篇名为“以太坊:一个新的世界计算机”的文章,提出了一种称为“以太坊虚拟机”的技术。2015年,以太坊正式发布了其公开测试网络,它是一个去中心化的全球计算机网络,它允许用户在网络上执行智能合约和其他功能。此后,以太坊发布了其正式的主网络,它是一个去中心化的全球计算机网络,用户可以在上面运行智能合约,构建去中心化的应用(DApp),并进行数字资产交易。2016年,以太坊发布了一种名为“以太坊合约”的技术,这种技术可以帮助开发者构建可信的去中心化的应用程序(DApp),比如投票系统、游戏和金融服务等。
第二章 系统所需技术基础
2.1 区块链技术
2.1.1区块链简介
区块链技术是一种分布式账本技术,它允许多个参与者在一个去中心化的网络中记录、验证和共享信息。区块链技术的核心原理是一种分布式数据库,它可以将数据分成多个独立的区块,每个区块都有自己的哈希值。每个区块都会记录交易的发起者、接收者、时间和金额,并且会记录前一个区块的哈希值,这样可以追溯到每个区块的来源。 区块链技术采用共识机制来确保每个区块的完整性和安全性。这种共识机制允许多个参与者参与验证和确认新的区块,这样就可以确保数据的安全性。区块链技术还可以使用智能合约来执行自动化的交易,这可以节省时间和资源[38]。
通过分布式的数据存储系统,区块链可以把数据分布在多个节点上,从而减少单一系统的风险。并且,由于区块链的数据存储技术不需要受信任的中心服务器,因此可以有效防止数据被篡改。 另外,区块链还提供了一种去中心化的数据存储方式,使得数据可以更加安全可靠地保存在网络中。
目前,一般将区块链平台划分为以下几层[39]:
(1)在数据层方面
数据层在整个区块链平台中处于最下层。数据链上最重要的部分就是对数据表的管理与访问。数据存储与交易安全采用封装链的结构、非对称加密与共识算法相结合的技术手段得以实现。由于区块链本身具有去中心化特点,因此需要对数据进行分层处理以保证数据一致性。区块链采用的是一种比较简单的方式,通过哈希指针完成块间连接,允许当前块通过每个块中包含的前一块哈希(创建块除外)指向前一块,从而连接在一起构成链结构。它利用Merkle树来组织块内事务。每一个叶节点就是一个区块内事务数据哈希值,事务数据配对执行哈希,构成父节点,父节点配对哈希,组建自己的上级节点。重复执行该操作直至产生最后一个Merkle根,这样就保证了通过Merkle根的对比,能够发现数据中的任何更改,从而对区块查询进行了迅速,可靠地保障。节点间采用共识算法保证数据一致性,这样,区块链就可以保证整个网络公开的情况下,不会对数据进行篡改与追踪。
2.2 零信任架构理念
以NIST、美国国防部零信任为参考架构、其他行业模型及实践经验,在我们看来,当前业界对于零信任架构已经有了统一的认识,对一般的零信任体系结构[42]总结如下:
(1)访问主体为启动资源访问的人,设备,应用,系统等。
(2)访问对象受到零信任系统防护的应用,把所有数据源以及计算服务都看作是“资源”。
(3)身份安全基础设施是一个重要的支持组件,它建立在身份能力零信任架构之上。在此之上构建的身份认证服务系统则主要提供用户信息和业务数据的访问控制机制。是通过身份管理的方式,实现各种身份信息管理。
(4)数据平面在不同情景,不同层次上完成统一代理数据流量。按受保护资源,既可作为物理设备、虚拟化设备,容器、插件等多种形式。在访问过程中,控制平面通过对网络状态信息进行采集,结合用户需求实现对业务流的合理分配,并将其反馈给客户端。控制平面承担着对数据平面进行访问控制。
身份安全为身份管理提供了保障、身份验证与授权功能。零信任是一种在网络环境下实现身份认证、访问控制等服务功能的机制。作为一种零信任技术部件,它与零信任架构中的“身份安全基础设施等”相对应。身份认证技术就是为了证实用户的真实身份而进行的认证。零信任的安全模型中,可依据用户行为进行实时策略调整。零信任技术通过对用户数据和应用的安全性保护来增强系统的可扩展性、灵活性、扩展性及可用性。同时,由于基于隐私计算的协议不需要访问任何特定设备或装置,所以无需部署硬件即可运行。因此,零信任技术能够有效地解决现有的各种网络安全问题,并且其成本也很低。通过对用户操作和设备状态的动态监控,确保系统运行在最佳模式上;并根据需要对不同情况采取相应的处理措施。因此,基于身份信息的网络安全防护可以说是零信任最重要的应用之一。零信任安全体系主要由身份认证技术、可信数据加密算法及移动终端三大部分组成。
第三章 需求分析与设计...........................21
3.1 设计基础........................................21
3.2 零信任架构规划........................21
第四章 身份认证系统设计与实现.................................29
4.1 hardhat 框架..................................29
4.2 hardhat 部署私有链.....................30
第五章 系统功能测试............................40
5.1 测试环境............................40
5.2 账户注册及登录功能测试.........................40
第五章 系统功能测试
5.1 测试环境
表5-1为本次系统功能测试的开发环境:
第六章 研究结论与展望
6.1 研究结论
本次研究工作总结如下:
设计了一个基于零信任架构理念与区块链技术相结合的数字身份认证系统。在对传统的系统进行改造中引入了基于区块链去中心化结构和共识算法的思想。通过以太坊平台hardhat框架部署,实现了对用户多类型身份信息存储,实现了对用户个人信息进行管理。经验证方用户的个人信息进行查询并审查,使得用户的身份具有可信性。同时将用户个人信息加密密文记录在链上并进行存储,保证了数据隐私性和完整性。区块链技术具有用户身份信息可由添加到网络中的节点直接获取等