您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

区块链安全技术:企业应用区块链技术时如何考量?

发表于:2018-02-06 作者:kylin1415 来源:FreeBuf

加密货币、区块链概念在 2017 年下半年以及 2018 年的前三周,都获得了更广泛的公众关注。也许从技术发展的本身来看,区块链技术在过去的一年中,并没有特别显著的发展,但是资本圈和公众的关注热度仍然成为该技术继续成长的助力。

当前的网络犯罪行为日益复杂,金融交易数据、健康医疗记录、个人身份信息和信息资产,都是黑客能够通过相应的攻击(DDoS,勒索等)进行获利的重要资产来源。而这项全新的区块链技术是否会成为网络安全的助力还是障碍?去中心化的、数字化的公开账本,这可能帮助增强平台的网络防御能力吗?应用共识机制是够能够阻止欺诈活动?本文将从企业级区块链应用的角度,阐述应用区块链技术时应当考虑的安全防护问题。

加密货币

一、基本概念

区块链技术,可以理解为分布式数据存储,或者交易/数字事件的公开账本。想要记录和存储在公开账本上的每笔交易都需要按照共识机制,被系统中大多数的参与者通过后,才能够得到确认。而在交易信息计入区块链之后,任何人都无法删除这份信息。所以说,区块链中包含的是所有确定的经过验证的交易记录。用简单的比方来说,在几千个人监督的市场环境中,你就不能像肆无忌惮地顶风“作案”了。

区块链应用最典型的例子是比特币,这种加密货币和比特币牢牢地绑定在一起,无需政府监管的匿名货币价值也超过亿级美元。这会触及到一些政府和金融机构监管的问题。比特币的底层技术设计上应该是没有问题的,运行多年也一致表现良好,并在金融应用和非金融应用上都有很多方案。尽管区块链技术在 2008 至今的实践过程中,没有出现过差错,但随着技术的发展,这也不能保证在未来不会发现问题。

二、数据机密性

经典的CIA 安全三原则模型中,我们知道机密性、完整性和可用性是信息安全的三个目标。

从信息安全机密性角度来看,如何保护数据的访问和使用权限一直是件困难的事。无论一个企业和组织投入了多少钱到安全系统中,如果雇员或者用户的密码被黑客窃取,所有的这些努力都可能白费。

而区块链能够提供的恰恰是强验证机制。应用区块链技术开发应用时,考虑网络的访问权限依旧是建立数据安全保护中最基础的一道防线。如果攻击者可以获取进入区块链节点的权限,验证和授权控制仍然可能受到影响,最终可能像其他技术一样被黑客突破,影响数据保护策略。

当然,在区块链技术本身的设计中,权限控制已经考虑在内,但也有一些区块链应用在原生设置上添加了其他的机密性及访问控制机制(如通过区块的数据加密和AAA功能)。区块数据的完整加密可以保障非授权的一方无法在数据还在传输过程(特别是在不受信任的网络上传输)时窃取数据。

1. 网络权限

如果是公有链应用,我们通常不需要对网络权限进行限制,因为公有链的协议已经让所有人/节点参与到区块链网络中来。而私有链则恰恰相反,我们需要更合适的安全控制策略来保护网络的访问权限。为了保障私有链的私有属性,本地的网络和系统还需要应用多层的安全防护措施来进行防护(防火墙,VPN,VLAN,入侵检测和入侵保护系统等等)来执行所谓的纵深防御策略。但现实是,这些安全控制策略依然不能够保证安全,更好的建议是直接在区块链应用中加入安全控制功能,成为私有链上的第一道也是最重要的防线。

除此之外,企业还需要考虑,如何合理处理好区块链网络架构中无法连接和阶段性活跃的节点。区块链应用在这些节点无法工作的情况下也需要保证性能。而在这些节点可以工作的时候,还能如何利用这些节点进行增速。企业同时还需要考虑整体的安全风险面貌,并区分风险等级,将重点放在保护核心资产上。

为了满足以上的需求,区块链应用在设计时需要包括高级安全控制功能,如应用PKI(公钥基础设施)来对用户进行认证和授权。企业可以利用分布式的公钥系统来验证设备和用户,为每个设备提供特定的SSL证书而不是密码。 如果证书数据的管理是在区块链上进行的,攻击者就无法再使用假证书。

2. 数据权限与披露

如果企业的区块链数据传输是通过完全加密来进行的话,一般就可以保证数据不会被三方窃取和阅读了。但如果应用继续结合PKI和加密密钥,则可以为企业提供更高级别的安全防护。如果企业增加了了安全通信协议,那么即使在攻击者试图实施中间人攻击的情况下,攻击者都会无法伪造对方的身份或在传输过程中泄漏数据。

三、数据完整性

保护数据的完整性,在信息系统的整个生命周期中都是尤为重要的环节。数据加密、hash比对或者使用数字签名都是系统使用者在不同状态中(传输中、闲置中、使用中)保障数据完整性的一种方法。

区块链的内置特性,即共识机制和公开账本带来的数据不可篡改/可追踪性,也是为企业确保数据完整性的另一种方法。基于以上,现有一些观点认为,区块链技术完全可以取代传统数据库的地位。

1. 不可修改性

区块链技术一定程度上可被认为是安全技术,因为它能让用技术用户相信——存储在防篡改的分布式账本上的交易内容是有效的。它所采用的分布式架构、顺序散列和密码学机制,能够抵御蠢蠢欲动的黑客——攻击区块链还是与攻击普通数据库显然是截然不同的。企业应用区块链搭建的应用,可以在数据的完整性和可信任的两个维度上得到一定的保障。

区块链的共识机制可以保障节点在添加到链之前,必定会有对交易有效性的确认。企业还可以加入更深一步的限制条件,来避免多数节点落入同一方后发生51%攻击。

2. 数据的遗忘权

区块链中的数据不可修改,这容易让我们想到今年5月就要实施的欧盟GDPR(数据隐私保护协议)中的相关条款——科技企业需要实现用户数据的遗忘,即可以在一定情况下企业需要提供用户永久删除某些数据的条件。那如果说区块链节点中的数据不可修改和删除,在网络安全信息合规上岂不是会遭遇极大的挑战?

显然,企业还是有方案来实现区块链应用数据遗忘功能的。其中之一的解决方案是企业可对用户的个人数据加密后存储在区块上,在需要实施遗忘时将密钥删除,以确保敏感数据永久无法访问。

3. 可以追踪

由于添加在公有链或私有链上的每一笔交易,都经过数字签名并盖过时间戳。所以,企业可以追溯每个交易的特定时间,并在区块链上识别交易的双方(通过公共地址)。

这个可追踪的特性意味着交易双方不可否认,这样可以保证黑客无法复制签名进行伪造,避免区块链应用遭受篡改交易内容和欺诈性交易的出现。任何一个新交易都会被包含在全球账本之中。在每一次迭代过程中,前一个状态会存储下来,形成可追踪的日志。这种可审计的能力能够给企业提供额外的安全性能。

4. 数据质量

由于私有链和公有链都只是为数据放入区块之后的准确性进行保障,区块链技术无法保障数据的质量。

四、数据可用性

由于信息是动态的,时刻在发生变化,授予了访问权限的用户需要在变化中仍然保持对于数据的访问。NIST在描述数据可用性时,将其定义为“确保及时而可靠地使用信息的权限”。

对抗DDoS

在2017年里,我们时常看到影响可用性的网络攻击,DDoS攻击频发也对网络服务能够造成很大的损害。

而区块链分布式的特性则表现在,它没有可供入侵的“入口”或单点错误,和现在广泛的数据库驱动的交易存储结构相比更安全。

在分布式平台上,如果黑客想要实施DDoS攻击首先会花费更大的成本,运用大量的交易来冲破区块链网络的承载上限。其中去中心化的架构和P2P机制会减小以往中心化 C/S 架构中服务器端的压力。

当然,企业在区块链应用的网络层和应用层中,也应该加入一些必要的抗D防护措施。

五、小结

2016 和 2017 年,区块链技术都吸引了大量金融和科技企业进行投资,许多投资者认为这项技术具备改变多个行业的能力(如医疗,公共事务,能源,工业,直击金融行业),但现状是各大企业仍然不了解这项技术及其成熟度,对区块链抱有的知识一种不切实际的幻想——他们希望部署区块链来获取利益,但对区块链的核心能力并不充分了解。

区块链

通常情况下,幻想才容易引起“泡沫”的堆积,当一些人在斥责这场“区块链革命”是几十年前互联网泡沫的翻版时,我们可以做的是看看技术本身能够给世界带来什么,因为在泡沫褪去的时候总还有能够屹立在沙滩上的人。