Poker EOS被盗 2万多EOS事件启示 - 谈私钥安全

私钥被盗,满盘皆输——Poker EOS被盗 2万多EOS事件启示。
A secret between more than two is no secret. 两人以上知道的秘密就不算秘密。

事件回顾

5月24日凌晨,Poker EOS 官方中文电报群中发出通知:由于项目方账户私钥泄露,被黑客攻击。

官方通知

官方被盗通知

截止5月24日19点,据项目方统计,此次黑客攻击事件项目方损失共计26992.2297EOS,pokereoshome 损失13140EOS,pokereosgame损失8800EOS,poekreobonus损失200EOS,流入交易所900万PKE交易损失约4852.2297EOS。

官方被盗公告

官方被盗公告

项目方给出此次攻击事件发生的原因是团队私钥管理不当。其实因私钥管理不当而导致损失的事件可以说不是罕见的事了。

交易所被盗金额统计图

交易所被盗金额统计图

据资料汇总,从2014年起至2019年3月共发生交易所被盗事件33起,其中主要因私钥泄露导致损失的有3起:2018年 4月12日,印度加密货币交易所Coinsecure因冷存储恢复失败暴露了用于离线存储的私钥被盗438比特币,警方发现私钥在网上曝光超过12小时;2018年7月26日,KICKICO由于安全漏洞发生导致黑客成功获得了“KICK智能合约账户”的私钥,损失770美元;2015年1月9日,Bitstamp多个操作钱包遭到破坏,导致19,000比特币丢失,据称是由于该公司一名员工下载了一个恶意文件,该文件使攻击者可以访问包含wallet.dat文件的服务器以及公司热钱包的密码。

除交易所被盗外,也有针对个别用户进行攻击,盗取私钥的,2018年7月发生的近千万EOS被盗事件,黑客通过盗取受害人的私钥而盗走了其价值近千万的EOS。

而今年年初轰动一时的交易所Quadriga CX上亿资产被锁事件则是由于其创始人兼首席执行官的突然离世导致其中1.47亿美元的加密数字货币秘钥丢失“被上锁”。

这些丢失的资产一去不复还。因为区块链的“去中心化”的特性,基于区块链技术的加密货币一旦丢失,基本是不可找回的,不可逆的,除非主网分叉。

私钥及其重要性

那么什么是私钥呢?有账号就有私钥。私钥是钱包里资金所有权的证明和合约拥有权的证明,其本质是32个byte组成的数组,由256个0或者1随机组成,可以把它理解成银行卡的密码,这个密码除了自己不会有任何人知道,不过银行卡密码是可以自己设置的,而私钥是随机生成的。

阅读这篇文章:理解开发 HD 钱包 更好的了解私钥与账号的关系。

回到此次事件,我们来看EOS私钥。一些普通用户可能不知道在EOS的账号体系中有两种权限的私钥,即Owner 私钥和Active 私钥,并不是只有一把私钥。

Owner 私钥是所有权,具有Active 私钥所有权限,以及具有重置 Active 私钥等最高权限。

Active 私钥即操作权,可以用于平时的转账、投票等满足日常的操作。

Owner私钥和Active私钥的关系类似老板和员工的关系。Owner即老板,拥有最高的权限,可以做任何事情。Active即员工,相对而言权限较小。但是老板只在有重大事件时参与运营,日常的经营业务则是由员工完成的。

于是,平时最常露面的是员工(Active),主要用来做平时的转账、投票等日常的操作。老板(Owner)并不经常出现,只有当员工(Active)发生重大问题,才会需要他出面。

对于Owner私钥和Active私钥的使用与保管,EOS官方推荐用户平时只使用 Active 私钥,把 Owner 私钥离线保存,只在有重大安全问题时用到 Owner 私钥。

这就意味着会有两种操作模式:单私钥模式和双私钥模式

单私钥模式即Owner 和 Active 使用同一把私钥,这样来说相对简单,只需备份一把私钥。

双私钥模式即 Owner和Active使用不同的私钥,相对单私钥模式而言,这种模式多了一道保险,安全性能更高。

有的用户不知道EOS账号体系有两种权限,主要原因是钱包多采用单私钥模式,自然地这说明了大多钱包的私钥操作模式实际上是不够安全的。

而区块链应用中用来保障用户资产安全的就是公钥和私钥。公钥与私钥是成对出现的,公钥加密,私钥解密。公钥是公开的,它相当于是银行卡号,这样就不难理解私钥才是我们自己能够真正保障我们信息、资产安全的那道“防线”,失私钥者,失“天下”。

私钥是如何被盗的

私钥被盗的原由有许多种,在私钥映射、创建、使用时都有可能因操作不当导致私钥被盗。

私钥映射时:

  1. 使用了不安全的映射工具。

使用不安全的映射工具,导致映射使用的公私钥是由工具开发者(实际是攻击者)控制的,当 EOS 主网上线后,攻击者随即 updateauth 更新公私钥。或者映射工具在网络传输时没有使用 SSL 加密,攻击者通过中间人的方式替换了映射使用的公私钥。

私钥创建时:

  1. 让陌生人帮助注册账号

    由于注册账号需要已经存在的账号帮忙抵押内存,这使黑客有机可乘。黑客利用最常见的钓鱼手法——帮忙注册账号盗取用户私钥。我们前面已经说过私钥其实有两把,设置双私钥模式会增强安全性,但让他人帮忙注册账号,就意味着Owner和Active权限都将可能掌握在他人手中,这就丧失了其本该有的安全性。

  2. 用户使用空助记词或较弱的助记词组合生成的私钥

    助记词是私钥的另外一种表现形式,由于私钥随机产生,识记较为困难,为了更好地记忆复杂的私钥,用户可以使用助记词,通过助记词导入钱包。如果用户使用空助记词或是强度较弱的助记词产生的秘钥,很容易遭受“彩虹”攻击。

  3. 使用不安全的第三方私钥创建工具

    用户使用不安全的第三方私钥创建工具,例如安全保护不够强的钱包,连网在线创建私钥的网站等。

私钥使用时:

  1. 使用了不安全的 EOS 超级节点投票工具

    使用了不安全的 EOS 超级节点投票工具,使得工具开发者(实为攻击者)可窃取EOS 私钥。

  2. 用户存储私钥的媒介不安全

    用户存储私钥的方式不安全,例如存储在邮箱、备忘录等,可能存在弱口令被攻击者登录,从而被窃取私钥。

  3. 在复制粘贴私钥时,被恶意软件窃取

    用户在手机或电脑上复制粘贴私钥时,被某些恶意软件监听,导致被窃取。

防范措施

针对私钥安全防范,我们给出以下建议:

  1. 使用安全性有保证的映射工具、私钥创建工具和超级节点投票工具。

  2. 切忌让陌生人帮自己注册账号。若不得以需要让他人帮忙注册,一定要使用受信任的进程或接口。在注册好后,对Owner和Active私钥做仔细检查,以防万一。

  3. 务必备份好Owner 助记词、Active 助记词。特别注意,不管是Owner 助记词,还是Active 助记词,都需要按顺序记下并保护好。一旦有人得到了你的助记词, 那就等同于掌控了你的钱包,不需要任何密码就可以转移你的资产。

  4. 不管是私钥还是助记词最好抄写在一张纸上,不要截屏或记录在手机上,也不要通过任何渠道将助记词信息传播给他人(比如截图等等),这是非常危险的行为。

  5. 避免在使用时进行私钥的复制、粘贴

  6. 不要随意点开来源不明的链接,下载来源不明的文件。

引用及资料数据来源:

  1. 小牛币读 《史上最全交易所被盗事件大盘点》
  2. IMOS 《EOS被盗事件频起,这里有一份安全攻略供你食用》
  3. ITleaks《近千万EOS被盗事件回顾,大家请保护好自己的EOS私钥》

本文来自 深入浅出区块链社区合作伙伴:专注于区块链生态安全的Beosin 成都链安

深入浅出区块链 - 打造高质量区块链技术博客,学区块链都来这里,关注知乎微博 掌握区块链技术动态。

LBC-Team wechat
欢迎订阅公众号:深入浅出区块链技术
0%