第二十七篇 墨客区块链(MOAC BlockChain) 区块链安全

版权声明:Copyright Reserved © 2018-2020 https://blog.csdn.net/lyq13573221675/article/details/84789911

本文主要内容来自白墨子安全实验室主任苗知秋。

白墨子安全实验室官网:http://www.mozi.one

一、区块链底层安全

关于区块链底层的层级划分问题,尚无权威的国家或者国际标准,一直是众说纷纭的;但通常都是细节上的小分歧,对于区块链的基本架构,目前已经有比较统一的共识。

一个典型的区块链分层架构如下图所示:

这是一个广义上的区块链分层架构,最上层的“合约层”和“应用层”,严格意义上来说不算是区块链底层。真正的区块链底层我们认为应该到“共识层”或者“激励层”为止,再往上应该算是区块链的上层应用层面了,划入底层是不太合适的。

本文从“数据层”、“网络层”、“共识层”三个角度阐述区块链底层的安全问题。

1.1 “数据层”是区块链底层安全的核心

以比特币为代表的区块链从诞生之初,主要就是以“分布式账本”或“分布式数据库”的形式被世人所认知的。以分布式账本为主的底层数据是区块链安全运行的核心,区块链底层安全工作的最终归宿都是为了维护底层数据的安全、完整和无误。只要底层账本数据没有问题,那么可以认为区块链的安全是有基本保障的,相反,一旦底层数据出现错误,那么所有安全工作的成果都是差评。

1.2 “网络层”是区块链底层安全的基础

从结构上来看,区块链本质上是一个“分布式的P2P网络”,所有节点之间的消息传递、数据同步全都依赖于P2P网络的通信机制。这个网络层一旦出现安全问题,则区块链的安全基础会被动摇,所以,我们说网络层是区块链安全的基础。区块链底层的安全,一定要构建在一个强健、稳定的网络基础之上的。一旦网络层出现问题,区块链底层的安全将受到极大威胁。目前已出现多起瞄准网络层发起的安全攻击事件,比如面向以太坊的日蚀攻击等。

日蚀攻击Eclipse Attack)是发生在网络层的攻击,由其它节点通过囤积和垄断受害者的对等连接槽执行,从而导致该节点位于隔离网络。这种类型的攻击旨在通过阻止最新区块链信息到达被遮蔽的节点从而实现隔离节点的目的。

1.3 “共识层”是区块链底层安全的关键

“共识”是区块链技术的核心概念之一,前面提到过的底层账本数据就是“共识的结果”。底层账本数据的重要性我们前面已经强调过,为了达成一个让众多节点公认的“正确的结果”,前提就是共识机制的安全性。区块链底层数据由于各种安全机制的保护,难以被直接攻破,因此很多攻击者将目光转向产生底层数据的共识机制,企图通过对共识机制的操纵,达到更改底层数据的目的。这也使得对共识层的安全防护日益重要,成为区块链底层安全的关键所在。

1.4 底层不安全,上层应用就收到影响

如果底层不安全,上层的安全将是沙上筑塔。区块链底层的安全是整体安全的基础,并且通常无法通过上层解决。如果区块链底层不安全,那么像转账、智能合约、包括最上层的应用都将处于高风险之中。因为上层的各种应用,都是基于底层提供的各种基础服务运行的,并通过底层传输各种数据。

底层的不安全,必将给上层带来极大的安全风险。有些安全风险在上层可以采取打补丁的办法弥补,但是会造成应用的臃肿和复杂化;而有些安全风险是上层完全无法弥补的,只能从底层来解决。

比如,虚拟机自从被以太坊引入区块链系统之后,已经成为区块链底层不可或缺的基础部件,由于虚拟机安全问题引发的区块链安全事件层出不穷,这里面最典型的就是:由于虚拟机缺乏溢出检测机制而导致计算溢出问题

更进一步举例,以太坊虚拟机EVM定义无符号整数为uint256,可以表示一个256位的大整数,但是底层的虚拟机模块并没有提供溢出的检测机制,这样如果使用不谨慎就造成了之前我们常见的溢出攻击,比如很热门的God.Game事件。

此外,“GAS费用较高者优先被打包进入区块”的机制,理论上是为了让区块链更便于使用,激励用户为生态贡献力量,但是在某些情况下会被攻击者利用而成为安全漏洞,Fomo3D攻击就是利用了这点发起大量消耗巨量gas的垃圾交易获得了胜利。这也是由于底层不安全导致的上层应用安全风险案例。

1.5 没有一步到位的安全,也没有绝对的安全

“安全是设计出来的,而不是打补丁修改出来的。”这里并不是把安全设计和安全补丁对立起来,这句话的主要意思是,安全需要从产品的设计之初就纳入考虑范畴,从整体框架的设计上就要融入安全的思想,而不能一开始不管不顾,只管多拉快跑,妄图事后再通过打补丁的方式提升安全水平。因为系统的基本设计一旦定型,遇到安全问题再打补丁不仅费时费力,而且很多问题已经无法在现有框架内解决,除非把整个系统推倒重来。

因此,安全设计是必须的,安全设计是系统安全的基础,是系统的先天体质,同时也是后续安全补丁的基础。由于在设计之初不可能一步到位,同时由于安全环境的不断变化,所以安全补丁也是必须的。安全补丁是对初始设计的补充,是后天的增强,先天的安全设计和后天的安全补丁是相辅相成的,共同增强系统的安全能力

1.6 比特币在安全方面的优势

比特币从2009年问世到现在,基本一直稳定运行,没出过什么大问题。

作为一名老资格的安全专家,中本聪非常明白“越简单越安全,越复杂越危险”的道理,他为此不惜削减了大量周边功能,包括将比特币底层功能限制于转账等基本指令,而没有采用后来以太坊采用的图灵完备的指令体系,心无旁骛,专注于基于区块链技术实现电子现金系统的这一核心目标。在共识机制上比特币采用了最简单也最费力的POW机制。所有这一切,都极大限制了比特币的应用场景,但也给比特币带来了无与伦比的安全性。

比特币不适合商用并不意味着安全性和商用性之间存在矛盾,而是与比特币的核心定位有关。中本聪从设计之初对比特币的定位就是一个安全可靠的电子货币系统,从这一点上来看,比特币完美实现了这一目标。

总结比特币平台在安全方面的成功经验,我们认为主要有以下几点:

  • 系统设计之初即融入安全思想,为区块链平台先天注入安全基因;
  • “如无必要,勿增实体”的奥卡姆剃刀定律,不在核心目标之外做画蛇添足的事;
  • 涉及到核心安全方案时,要慎重取巧,甚至宁拙勿巧;

二、钱包安全及数字资产保护

2.1 保存好私钥

使用区块链钱包,安全方面要做的,第一步是保存好私钥。

常见的不安全的私钥备份方法如下:

  • 有的用户把私钥存在自己邮箱里

邮箱并不是一个安全的存储场所,邮箱被攻破是很常见的事。因此,我们不但不建议用户把私钥存储在邮箱里,而且其他类似的敏感信息也不要存在邮箱中。

  • 有的用户把私钥通过QQ等发到手机上,或者用手机对屏幕拍照来备份

手机作为常用的移动终端,每天随身携带,丢失的概率不小,而且也容易被同事、朋友,甚至陌生人偷窥。同时,很多手机有云同步功能,会自动将手机中的很多信息上传到云端,这样就大大增加了信息泄漏的可能性。鉴于私钥的敏感性,不建议将私钥存储在手机上。

  • 有的用户把私钥存储在自己的云笔记上

云笔记是一个比邮箱更不安全的存储方式,用以记录一些日常琐事也就罢了,如果用来记录私钥等敏感信息,那就非常危险了。

白墨子安全实验室曾经对某款市场占有率名列前茅的云笔记app进行安全测试,发现不仅用户名,连密码都是明文传输的,以这种安全防护水平,怎么能放心地把私钥交给它?!

安全讲坛 | 白墨子第一讲:钱包安全及数字资产保护

2.2 白墨子安全建议

最安全的私钥备份方法,还是以纸笔方式记录。纸笔记录方式的主要问题,是容易出现书写错误,比如把近似字母抄错,像l和1,O和0等。

由于原始的私钥是给计算机用的,不是给人看的,因此可读性很差。在此,我们推荐使用“助记词”的方式备份私钥,可读性良好,也不容易出现书写错误。

在纸上记录完成后,妥善保管在安全的地方,有条件的可以租用银行保险箱,没条件的可以在家里找个安全的地方妥善保存。

安全讲坛 | 白墨子第一讲:钱包安全及数字资产保护

2.3 黑客攻击

黑客对用户的攻击是全方位的。如果确认要发起攻击,他会动用一切可以动用的资源,从一切可以发起攻击的角度进行切入。包括用户的邮箱、微博、微信、论坛留言、手机存储、手机号码、身份证号等等。

黑客的攻击手段除了被动监听和数据分析之外,还可能会主动发起一些攻击,比如诱导用户打开钓鱼邮件、钓鱼网站等,攻击用户的常用邮箱、手机云盘、云笔记等。

总之,黑客为了达到目的,会采取一切可以采取的手段,整合一切可以采集到的信息,对用户进行全方位的分析和渗透。这也是我们为什么强烈建议不要将私钥在网上存储的原因,网上的一切都存在被攻破的可能。

网络防护的最高等级是物理隔离。对于私钥这样的敏感信息,安全性是第一位的,便利性是第二位的,还是以最原始的纸笔形式存储在网络之外比较放心。

安全讲坛 | 白墨子第一讲:钱包安全及数字资产保护

2.4 区块链钱包

区块链钱包与传统意义的互联网钱包相比,各有异同。相同之处是在普通用户看来,两者都有一个“账户”的概念,转账需要输入密码确认。

与相同之处相比,两者不同之处更多:

区块链钱包是完全公开透明的,只要知道地址,每个人(无需知道私钥)都可以查询该账户的余额及每一笔钱的来龙去脉。而互联网钱包中,上述信息都是严格保密的,只有钱包的主人才能查询相关信息。

区块链钱包和互联网钱包都是一个形象化的说法,两者本身都没有保存任何钱在里面。区块链钱包的钱是存储在区块链上的,钱包只是一把钥匙,里面只有用户的私钥及其保护私钥的密钥。互联网钱包的钱是存储在相关公司的服务器上的,钱包中连密码都没有存储,只提供了与服务器的访问接口,一切的操作都需要远程服务器的认证和授权。

安全讲坛 | 白墨子第一讲:钱包安全及数字资产保护

区块链钱包是完全匿名的,互联网钱包按照国家相关法律规定是严格实名制的,因此在认证钱包主人方面,互联网钱包有一整套完备的认证体系。简洁版的认证方式如密钥授权,短信认证等,复杂版的可以身份证件识别、人脸识别等,这使得用户如果不慎忘记密钥,也可以通过其他方式重置密码,或者挂失账户,不会因此造成财务上的损失,问题的关键是证明“你是你”。

但对于区块链钱包来说,私钥是至高无上的,私钥就是一切。账户是匿名的,系统不提供除了私钥之外的其他认证手段,谁掌握私钥,谁就是钱包的主人。因此,对于区块链钱包来说,如果用户丢失了私钥,那么就失去了一切。

这样就使得区块链钱包私钥的保存和备份显得无比重要,怎么强调也不为过,这是传统互联网钱包所不具有的新需求。硬件钱包的出现,就是以硬件的方式帮助用户存储私钥,同时确保私钥永不触网,最大限度地保障钱包私钥的安全。

安全讲坛 | 白墨子第一讲:钱包安全及数字资产保护

出于研究的需要,白墨子安全实验室曾经对一些钱包产品进行过简单的测评,发现的常见安全问题主要有以下几点:

  1. 用户私钥存储过于随意,没有充分考虑私钥存储的安全问题,存在泄漏风险;
  2. 用户的转账过程缺乏足够严格的验证机制,容易遭受中间人攻击;
  3. 用户的身份验证机制不够强健,钱包容易被盗用。

冷钱包是离线存储的,主要体现为两种形式,一种是专门用来存储钱包的从不联网的终端设备,一种是硬件形式设计的专用钱包。一般的使用建议是:冷钱包存储大额资产,以确保安全;热钱包存储小额资产,以便于日常使用

三、交易所安全

交易所是区块链产业链条中的重要一环,承载着活跃市场促进流通的重要作用。但与普通的钱包相比,交易所尤其是中心化交易所的安全问题更加突出和严重。安全问题已经成为交易所关注的首要问题,甚至成为决定交易所存亡的关键。

3.1 交易所安全问题更加突出、更容易遭受黑客攻击的主要原因:

(1) 涉及资金量巨大,发起攻击的诱惑大

目前,中心化交易所在数字币交易领域占据主导地位,大量的数字资产向交易所集聚和沉淀。这使得交易所犹如黑暗中熊熊燃烧的火炬,吸引了攻击者的极大注意力。与普通用户钱包中的三瓜俩枣相比,交易所中积聚的海量资金使其成为了攻击者的首要选择。试想一下,一旦攻击成功,收益之大难以想象,攻击者几乎可以为此付出任何代价,超高的收益比什么都有诱惑力。

(2) 涉及环节众多,可选择的攻击点多

交易所作为一个资产频繁转移和高速流动的场所,资产的流转过程绝非平静,而是充满风险,明抢暗夺的故事每天都在发生。从用户把资产存储在交易所开始,就面临各种各样的风险。包括假冒网站的钓鱼攻击,资产存提阶段的地址冒充和劫持、金额篡改,账户信息泄漏,交易所钱包被盗导致的连带风险等。可以说,从用户进入交易所到用户离开交易所,几乎每个环节都可能会遭遇黑客攻击,这使得交易所的整体安全风险急剧增加。

(3) 涉及人员众多,容易从薄弱点切入

普通用户的钱包一般而言只有一个人掌握,这个秘密可以被很容易地保护。而交易所作为一个组织机构,涉及人数和部门众多。英文中有句谚语,“A secret between more than two is no secret.”, 意思是:两人以上知道的秘密就不算秘密。非常形象地道出了交易所面临的安全困境。

黑客对交易所发起攻击,他可以下手的对象可不仅仅是一个人,各部门负责人、系统运维工程师、交易所中高层管理人员,甚至普通技术人员,都可以成为他的渗透和攻击对象。只要让他在某个环节中发现一丝漏洞,就有可能变成一扇洞开的大门。

这是一场不对称的战斗,防守方必须做到处处安全,而攻击方则只需要找到一处弱点。

3.2 交易所安全的重点环节:

(1) 防钓鱼网站和假冒客户端软件

交易所通过设定各种防伪措施,帮助用户识别真实网站和真实客户端软件,避免客户被诱骗。

(2) 基础设施的安全防护

包括主机(或者云主机)、域名、CDN等底层服务的安全,网络设备的安全,操作系统平台的安全,访问控制和权限管理,各种对外接口的安全管控等,这是交易所安全运行的基础。

(3) 用户身份的严格验证

这里的用户不限于真实个人,同时也包括通过api接口访问的机器设备等。需要采用合适的身份验证方案,包括但不限于生物识别、pin码、数字证书、硬件认证设备等,对用户身份进行全面、深入的验证,避免用户身份被冒用。

(4) 存币、提币、转币等敏感操作的安全审核

存币、提币、转币等操作直接涉及资产的转移,属于黑客最容易切入的攻击点,安全风险级别较高,因此应当进行足够的安全审核,排除可能存在的安全风险,确保资产安全。

(5) 敏感数据的严格保护

在交易所中,有很多数据需要得到保护,但其中有些数据格外敏感和重要,需要采取特别的措施进行重点保护,比如用户帐号库、钱包私钥等。切勿轻视,更不要有侥幸心理。

(6) 异常操作的感知和预警

交易所应当建立风险评估机制和安全态势感知系统,对操作的安全性进行实时监测和分析,当发现异常行为时,及时告警,有效提升交易所安全等级。

(7) 健全管理制度,增强员工尤其是高管的安全意识,杜绝社会工程攻击

社会工程攻击,是一种利用”社会工程学” 来实施的网络攻击行为。在计算机科学中,社会工程学指的是通过与他人的合法地交流,来使其心理受到影响,做出某些动作或者是透露一些机密信息的方式。这通常被认为是一种欺诈他人以收集信息、行骗和入侵计算机系统的行为。

健全的管理制度是交易所安全体系的重中之重,怎么强调也不为过。因为所有的安全技术最终都要落实在人身上,技术系统要由人来部署、管理和维护,工作流程要由人来实施,各类资产要由人来管理。而对人的管理呢?现有条件中,唯有靠完善的管理制度,充分的安全培训,增强员工尤其是高管的安全意识,让人不敢、不愿、不能犯错,形成交易所安全管理的坚固基石。

3.3 对于中心化交易所的三点建议:

(1)积极地迎接监管,而非拒绝监管。

外部监管有利于交易所自身机制的完善,对于交易所的健康发展有百利而无一害,每个希望长远发展的正规交易所都应当欢迎来自政府、社会等外部各方的监管。这也是数字交易所未来做到取信于用户、正规化发展的必然趋势。

(2)健全内部管理机制,完善技术流程。

交易所通过自身的管理变革和技术升级,在管理制度和技术流程上,实现内部人员不敢、不愿、不能“监守自盗”,这是完全可能的。

(3)引入可信第三方,进行安全审计。

实现公开、公正、公平的交易环境,前提是数据的透明性,如何打破交易所一手遮天的黑箱迷局?一个常用的做法是:通过引入可信第三方,对交易所的数据和操作日志等信息进行定时/不定时的安全审计,一方面让外部公众有充分的知情权,另一方面也可以帮助交易所及时发现内部的安全隐患。这种做法类似于上市公司的财务审计制度,通过引入可信第三方会计师事务所对公司财务状况的合理审计,达到取信于民、消除误解的目标。

3.4 去中心化交易所的优势

和中心化交易所相比,去中心化交易所不仅降低了来自内部的潜在威胁,同时外部安全水平也大增。

首先,很明显地,去中心化交易所的资金存储在用户每个人的钱包中,不存在中心化交易所那样的巨额资金池,因此也就不存在黑客们垂涎欲滴的大钱包,极大降低了黑客发起攻击的兴致,从根源上消除安全风险。

其次,去中心化交易所中交易透明度是中心化交易所无法比拟的,可以保障每笔交易都是真实交易,对于交易所和庄家们来说,做庄和控盘的难度增加了,但对韭菜们来说,也降低了被收割的风险。

最后,去中心化交易所基于区块链撮合交易机制,再辅以跨链技术,容易实现交易所之间的联合,实现客流的共享,同时通过自动撮合机制,可以极大地扩展交易空间,增加交易深度,提升成交率。基于去中心化交易所,有望真正实现价值在互联网上的无缝流转,即真正的价值互联网。

尽管目前来看中心化交易所由于较高的交易效率高和较低的学习门槛依然是用户数字交易的主流,但是去中心化交易所却拥有更旺盛的生命力,拥有更广阔的发展空间和应用场景。

安全讲坛 | 白墨子第二讲:交易所安全

在价值互联网的时代,一切都是交易,交易提供一切。交易所基于自身优势,必将继续作为交易发生的主要场所之一。而且交易所将自然而然地成为未来价值互联网的核心基础设施之一,扮演极其重要的角色。

届时,交易所的重要使命是实现价值的无缝流转,特别是价值在网络上的无障碍交换、转移、流通。交易所的具体形态可能会发生巨大的变化,现有的中心化交易所将远远不能满足未来价值交换和流转的需求。未来的交易将是无处不在、无远弗届的,因此交易所也必然是无孔不入、触手可及的。对照这一需求,去中心化交易所的系统架构和交易场景更加符合未来人们的期望,因此将具有更加旺盛的生命力。这也是为什么我们更加看好去中心化交易所的原因之一。

与传统的信息互联网相比,价值互联网更加需要安全保护,对安全的需求也更高。随着交易成为硬需求,交易所也将成为人类社会的核心基础设施,他将承载着人类社会正常运行的重任,对交易所的安全防护,在某种意义上将成为保护人类社会正常运转的客观需求。

每一次的价值流传和交换,都可能成为黑客的攻击目标,笼罩着黑色的阴影。与之相应地,对安全防护工作的需求,也必将迎来大爆发,与交易所未来发展形态相适应。安全防护工作将与交易行为如影随形,哪里有交易,哪里就有安全需求,哪里就有安全防护工作的身影。

猜你喜欢

转载自blog.csdn.net/lyq13573221675/article/details/84789911