区块链技术,如何提升网络安全?
眼下,区块链已经成为科技界的热门技术,甚至被称为颠覆性技术。那么,在网络安全领域,区块链能否发挥作用呢?答案是肯定的。
——编者
当著名咨询公司Gartner在预测2018年对大部分企业公司影响显著的十大战略技术时,区块链技术位列其中。而最近普华永道国际会计事务所(PwC)发布的全球金融科技调研结果也显示,区块链技术正在快速地从实验阶段迈向企业应用阶段。区块链技术融合了分布式架构、P2P网络协议、加密算法、数据验证、共识算法、身份认证、智能合约等技术,利用基于时间顺序的区块形成链进行数据存储,利用共识机制实现各节点之间数据的一致性,利用密码学体制保证数据的存储和传输安全,利用自动化的脚本建立智能合约而实现交易的自动判断和处理,解决了中心化模式存在的安全性低、可靠性差、成本高等问题。值得注意的是,除了上述优点以外,区块链技术本身还具有优越的安全特性,人们可以应用区块链技术来提升网络安全。
在不可靠的网络上
进行可靠的传输
区块链解决了在不可靠网络上可靠的传输信息的难题,由于不依赖与中心节点的认证和管理,因此防止了中心节点被攻击造成的数据泄露和认证失败的风险。
区块链的基本工作过程如图所示,当节点A向节点B转账时,产生的交易信息会以区块的形式以P2P的方式广播到网络中所有有效节点,节点通过共识机制对该区块进行认证,当该区块的正确性和有效性被认可后,该区块按顺序被添加到网络现有区块链中,A向B的转账即完成。由于区块链中的信息得到了网络中大部分节点的一致性认同,因此该信息是无法擦除和篡改的,且所有节点都可以读取和查询交易信息。显然,区块链具备优越的安全特性。
区块链基于其数学算法和数据结构,相比传统网络安全防护具有三大特点。
第一,共识机制代替中心认证机制。传统网络的用户认证采用中央认证中心(CA)方式,整个系统的安全性完全依赖于集中部署的 CA 认证中心和相应的内部管理人员身上。如果CA被攻击,则所有用户的数据可能被窃取或者修改。而在区块链节点共识机制下,无需第三方信任平台,写入的数据需要网络大部分节点的认可才可以被记录,因此,攻击者需要至少控制全网络51%的节点才能够伪造或者篡改数据,这将大大增加攻击的成本和难度。
第二,数据篡改“一发动全身”。区块链采用了带有时间戳的链式区块结构存储数据,为数据的记录增加了时间维度,具有可验证性和可追溯性。当改变其中一个区块中的任何一个信息,都会导致从该区块往后所有区块数据的内容修改,从而极大增加数据篡改的难度。
第三,抵抗分布式拒绝服务(DDoS)。区块链的节点分散,每个节点都具备完整的区块链信息,而且可以对其他节点的数据有效性进行验证,因此针对区块链的DDoS攻击将会更难展开。即便攻击者攻破某个节点,剩余节点也可以正常维持整个区块链系统。
网络安全领域
区块链大有可为
区块链技术可用于网络安全领域。区块链技术凭借其去中心化结构而带来的安全特性,目前已被国外金融、医疗、互联网等领域各大公司用来提升网络安全。具体来看,区块链技术可以在管理和保护用户认证数据、提高网络数据安全、有效阻止DDoS攻击以及增强物联网安全等领域发挥作用。
——管理和保护用户认证数据。美国麻省理工大学推出的虚拟货币CertCoin最先采用了基于区块链的公钥基础设施,摒弃传统中心认证方式,采用公共密钥实现分布式节点之间的互相认证,从而防止网络单点故障。乌克兰公司Ukroboronprom与网络安全公司REMME合作,通过在区块链上管理用户认证相关数据,几乎完全阻断了黑客使用虚假认证消息获取用户身份的可能。
——提高网络数据安全性。全球最大规模的区块链公司Guardtime通过分布节点之间协商来提供区块链上数据的机密性和完整性,实现了爱沙尼亚100万份用户医疗数据的安全性保证。美国国防部高级研究计划局DARPA也开始采用该方式为军方敏感性数据提供安全保护。
——有效阻止DDoS攻击。区块链初创公司Nebulis目前正在开发基于区块链的分布式互联网域名系统,只允许授权用户来管理域名,其他公司诸如Blockstack和MaidSafe也开始使用分布式Web技术,替代原有第三方管理Web服务器和数据库的模式,从而阻止网络 DDoS攻击。
——增强物联网安全。通过智能合约模式,区块链一方面可以利用 P2P 网络中的网络设备节点对待接入设备进行鉴权;另一方面可以有效抵挡物联网DDoS攻击。在2016年爆发的Mirai僵尸网络DDos攻击事件中,大规模的物联网设备被入侵,致使大半美国网络瘫痪。在区块链系统中,当某个节点被入侵时,其他设备会检测到该设备异常,并且将其列为异常和不信任节点,从而将其排除。
技术成熟前
应用需谨慎
虽然区块链凭借其天然的技术特点而具有用户认证、数据保护、防DDoS攻击等安全优势,但现阶段区块链技术还不成熟,在实际应用时仍然存在诸多安全风险。
首先,区块数据的可靠性会随时间降低。早期生成的区块由于当时使用的算法过时或者密钥长度不够,此部分交易历史有可能会被篡改伪造。由于区块链采用关系型的数据结构,而且现有机制还没有删除历史交易数据的机制,将会导致新产生的区块也不可以被信任。此外,所有交易记录不断累加也会造成节点超负荷,增加安全隐患。
其次,区块链的配套软件可能存在漏洞和隐患。由于区块链系统由代码维持,攻击者会通过系统中存在的漏洞恶意篡改或者盗取数据。在2016年的The Dao事件中,由于以太坊智能合约程序存在严重漏洞,该合约筹集的公众款项不断被一个函数的递归调用而转向它的子合约,最终被窃取了价值超过60万美元的以太币。2017年7月,黑客同样利用以太坊智能合约漏洞盗取了超过约3000万美元的以太币。
最后,区块链可能会造福犯罪分子。基于区块链本身的匿名和安全特性,不法分子可能会采用区块链技术来进行违法网络交易,例如暗网交易以及进行洗钱犯罪活动等。目前,美国参议院已经通过了7000亿美元国防法案,其中就包含研究区块链技术潜在的安全风险,以及评估网络罪犯利用该技术可能造成的危害。
区块链技术具有可靠的信息交互、完整的数据存储、可信的节点认证等安全性优势,因而为网络安全提供了一种崭新的安全防护思路和模式,将传统网络边界式防护转变为全网络节点参与的安全防护新模式,通过分布式的节点共识机制来抵抗恶意节点的攻击,在网络安全领域具有极大的应用潜力。但是,现阶段区块链技术还不够成熟,区块链系统仍然存在许多安全隐患和漏洞,因此在下一步应用中,应加强区块链的监管和安全技术的研究与实践,推动区块链应用的稳步发展,充分发挥区块链技术的安全优势,有效提升网络安全防护水平。
发出此文仅出于传递信息之目的,并不意味着赞同其观点或证实其描述,内容仅供参考。
本文来源于中国信息产业网-人民邮电报。
重要声明:雷盈金融科技微信发布的文章或其他内容是基于我们认为可靠且已公开的信息,但我们对这些信息的准确性及完整性不作任何保证,也不保证文中观点或陈述不会发生任何变更。文中部分配图来自网络,我们已尽最大努力联系作者,如有未能取得授权的情况,请在后台留言,我们将尽快与您取得联系。
- Java基础-26(02)总结网络编程
- 记一次数据同步需求的改进(二) (r7笔记第5天)
- Python信贷数据处理与初步分析(ZIP解压)
- web前端之锋利的jQuery八:jQuery插件的使用(表单验证、表单提交)
- 优化算法——牛顿法(Newton Method)
- merge语句导致的CPU使用率过高的优化(r7笔记第4天)
- 由dual导致的一个潜在的监控问题(r7笔记第3天)
- 剑指Offer——编程题的Java实现
- Python中if __name__ == "__main__": 的作用
- 每周算法练习——大数的乘法问题
- Java基础-25(01)图形用户界面编程GUI
- 每周算法练习——n皇后问题
- dg broker配置的问题及分析 (r7笔记第22天)
- 备库搭建中的一波三折(r7笔记第21天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- springboot分布式之springcloud-Eureka注册中心
- c++之类模板成员函数创建时机
- vuejs之v-on小例子之实现购买数量的增加和减少
- c++之类模板对象作函数参数
- vuejs之v-for
- c++类模板与继承
- c++之类模板成员函数的类外实现
- c++之类模板分文件编写
- c++之类模板和友元
- c++之类模板案例
- 【ICLR2020】Transformer Complex-order:一种新的位置编码方式
- 多角度理解CNN
- 【NLP保姆级教程】手把手带你CNN文本分类(附代码)
- 【NLP保姆级教程】手把手带你RNN文本分类(附代码)
- 作为一名Android面试官的碎碎念,面试要掌握这几个关键点!