10.3.1 盗取私钥的原理

区块链的资产安全完全基于密码学,银行柜台办业务会查看身份证和人脸是不是对应,但系统不会关心发送交易的背后的那个人是否是本人,拥有私钥,就代表你是某个账户的拥有者,所以黑客或骗子会想尽一切办法偷取你的私钥。

<aside> ⚠️ 在任何时刻情况下你都不应该暴露你的私钥

</aside>

私钥可能存在三种形式:

  1. 私钥原始格式:如8e304f6cb302b452f07f961637ec3ed7749a9e497f289348e5e43a3de34b42a4
  2. 助记词格式(12个或24个):decorate divert life youth black argue rare define sense boost lazy gaze,本质上与前者等价,只是更加便于人脑记忆
  3. 加密的KeyStore文件,这种形式的文件为私钥加上了一个壳,黑客盗取之后仍然需要密码才能获得真正的私钥。部分钱包也会在KeyStore的基础上进行二次加密、私钥碎片化等更复杂的加密。

私钥被盗的特点是黑客可以做一些高权限的操作,比如转ETH,普通的智能合约无法转移用户钱包里的原生代币ETH,顶多盗取USDT等单一代币。一旦你发现自己的ETH被转移,这意味着你已经私钥泄露

10.3.2 盗取私钥的常见手段

  1. 社会工程学手段:也就是俗说中的骗,千方百计诱导受害者讲自己的私钥拱手送人

    1. 趁着受害者不会使用某功能,向社群求助时,伪装成官方工作人员私聊,忽悠了一大通之后,最终诱导受害者在某个网页输入自己的助记词,称其为“重置账户”。

      Untitled

      Untitled

      <aside> 👉 伪装官方人员骗术的显著特点是,对方会要求你立即删除在官方群聊里的求助记录,美名曰是保持版面整洁,实则是要减少你被群聊里其它人提醒的机会,将你交流对象限制到骗子一人身上。 此时你大可以截图与对方的聊天记录,大大方方地在官方群里询问此人是否是官方人员,大部分情况下就会得到澄清,这时骗子拉黑你会比你拉黑他还快。 其次,警惕任何需要输入助记词的场合,发现12个格子的页面立即警惕。

      </aside>

    2. 利用受骗人的贪心,私聊你“获得了XXX项目白名单”,“获得XX知名代币的空投”

      Untitled

      <aside> 👉 这种广撒网的骗术,一般会配合一个极其逼真的假网站,假社区。大家可以想办法从官方渠道验证信息,比如找到Twitter,或者从CoingeckoCoinMarketCap等网站去验证该网址是否是官方网址。

      </aside>

  2. 黑客手段:现在直接黑入电脑的情况较少,往往与社工手段结合,诱导受害者下载,并点开恶意软件

    1. 诱导受害者下载假钱包,如假的MetaMask插件,假的TokenPocket手机钱包APP等等,用户在导入钱包时相当于将自己的私钥拱手让人。事实上61%的被盗事件都是因为下载了假钱包导致。

      引用 慢雾:假钱包 App 已致上万人被盗,损失高达十三亿美元

      Untitled

      <aside> 👉 与识别假网站的方法相同,谨慎分辨官方网站,确保自己只从官方渠道下载钱包插件。最推荐的是通过权威平台审核的渠道下载,Chrome插件可以在**Chrome应用商店下载,手机端APP则尽量在Google的Play商店**、苹果外区的App Store下载,通过主流平台审核过的钱包更能放心。 不得不从网站下载安装包的情况,一定要加倍小心,特别是不能轻信搜索引擎的搜索结果,那可能是假网站通过竞价排名或者SEO手段获得的靠前位置。

      </aside>

    2. 以社工手段为基础,投递病毒木马为目标。现在电脑的自带安全软件功能相对完善,此类手段的恶意程序权限可能不会过高,防止触发安全软件的警报。黑客往往通过私聊、钓鱼网站等方式,诱导受害者主动下载,并点开下载的恶意程序。恶意程序有机会偷取:

      1. MetaMask等钱包的加密后的私钥:如果只偷到这一个东西,黑客并没有直接取得受害者的私钥,还需要知道密码才行。但由于这是密码学的尝试,没有试错的冷却时间,因此黑客可以用密码库去幢,暴力破解。
      2. 保存在Chrome系浏览器中的账号密码:如果用户保存的密码体现出常用密码习惯,将大大降低撞密码的难度,在暴力破解的过程中快速得到受害者的私钥。
      3. 监测剪贴板输入:监测输入内容,找到密码。还可以修改剪贴板内容造成误转账(后文详解)

      Untitled

      引用 暗夜小偷:Redline Stealer 木马盗币分析

      <aside> 👉 这种攻击手段以往就存在,区块链发展之后更增加了被盗物的价值,需要特别警惕。不轻易下载不明来源的文件,很多恶意程序都是针对Windows写的,因此Mac系统相对Windows系统更安全,Windows系统打开未知文件时应当考虑虚拟机。 此外除了针对一般人的贪心之外,还出现了一种专门针对KOL的骗局,以商务合作的名义,将恶意程序包装成试用的软件,诱导受害人下载并运行。 受害人:BuidlerDAO研究员@BocaiBocai Buidler DAO 文章:如何在钱包被盗后从黑客手里抢救 NFT?

      </aside>

10.3.3 防止私钥被盗的方法

私钥被盗是后果最严重的安全事件,这意味着你的所有资产都已经落入了黑客之手。但是具备足够的安全知识之后,这也是区块链领域中可以被完美保护的领域,也就是确保私钥永不触网(至少应减少私钥暴露在网络的可能)。

  1. 冷钱包:用户可以购买如LedgerKeyStoneOnekey等专业的硬件钱包,确保一个钱包从生成开始,整个生命周期都不曾接触网络的私钥,所有交易都经过冷钱包的授权进行。

    资产不多的情况下,可以尝试使用旧手机冷钱包体验。旧手机只在格式化后下载必要APP时联网,此后生成钱包、使用钱包的过程都不再联网,也能起到类似的效果。旧手机冷钱包通过与装在联网的主手机上的钱包APP,互扫二维码进行授权,不过旧手机冷钱包有一个缺点,二维码的容量有限,在进行“批量购买多个NFT”等复杂交易时,可能会遇到数据量过多二维码无法生成的情况。点击查看旧手机冷钱包详细

    Untitled

  2. iOS设备配合Rabby钱包,实现手机端授权,与PC端网页进行交互。在浏览器中安装Rabby钱包浏览器插件(认准https://rabby.io/,或在Chrome应用商店添加),安装完成后可以与手机端的钱包APP扫二维码进行链接(通过Rabby自带的WalletConnect功能)。 手机钱包APP上关联的可以是联网的热钱包,这样免去了在PC环境再暴露一次私钥助记词,更安全;也可以是用imtoken、TokenPocket等支持冷钱包的APP,进行互扫二维码授权。

    Untitled

  3. 即便使用MetaMask热钱包,也应当进行风险隔离,不把所有资产都放在一个钱包里,不在同一个PC导入自己的所有热钱包。小钱包攒够了一定数量的资产,再往主钱包转移,主钱包则采用最高规格的冷钱包防护手段。

    Untitled