Skip to main content

软件泄露你私钥的5+N种方法

号外:公众号「刘教链」文章《许家印钞机》(8.27),欢迎点击阅读。


比特币在26k上下震荡。

最近,某字处理软件和某浏览器漏洞导致私钥泄露进而资产丢失的情况屡屡发生。有必要说一说软件对我们的加密资产安全性方面会有那些可能的风险点了。

什么是软件(software)?通常,我们把在本地计算机上安装和运行的应用程序称之为软件。和网页应用在一个沙盒环境运行相区分,软件是一种独立运行的应用,因而通常具有较高的权限,安全风险也就更大。

加密安全又在传统的计算机安全基础上增加了额外的要求。我们有必要根据是否保管私钥来把软件进一步划分为有接触和保管私钥(内置钱包功能)的软件 —— 有钱包软件(或可称为web3软件),以及不接触、不保管私钥(无钱包功能)的软件 —— 无钱包软件(或可称为web2软件)。(注:可能有人不同意教链的这种命名,比如如果使用了无私钥抽象钱包技术,那种web3还是不是web3?那种软件还能不能叫做web3软件呢?这里我们暂且搁置此种争论,姑且认为web3和web2最大的区别就是用户是否直接掌握私钥。按此定义,交易所软件是web2软件,而不是web3软件。)

显然,web3软件,不管其钱包功能是显性的(用户可感知)还是隐性的(用户不可见),都更容易发生资产安全风险。我们也需要以截然不同的眼光和重视程度来对待这两类软件。

对于web2软件,最大的漏洞就是称为黑客进入你计算机的跳板或管道,这通常是远程执行漏洞。在当今几乎没有计算设备不联网的情况下,一个有漏洞的软件就足以引狼入室,然后黑客一旦远程控制了你的计算机,那就为所欲为了。如果他发现了你的计算机上有加密资产的私钥或者助记词,那么就顺手牵羊咯。

另外一种常见的“漏洞”其实出在你自己身上,那就是主动送人头。今天相当多web2软件都有云端备份和同步的功能,比如相册软件,会悄无声息地把照片通过互联网同步到服务商的云存储上备份起来,又比如文字编辑软件,或者记事本、笔记软件,会后台自动把文字同步、备份到云端。如果你把私钥、助记词明文截图保存在相册里,或者明文文本写在笔记、文档里,这软件就可能在你不知情的情况下把你的私钥给卖了。不是说云备份厂商会偷你的资产,而是传输过程中的其他人,包括黑客,以及厂商的员工等,都有机会窃听到你的私钥、助记词这些敏感信息。

如果是云备份做的足够加密安全的厂商呢,比如苹果公司的iCloud?像Uniswap出品的钱包app就有用iCloud来备份私钥文件的功能。这就取决于你相不相信苹果公司的技术实力和道德操守了。

而对于web3软件,能出卖你的方式就更多了。毕竟,私钥是在它全权掌握之中的嘛。

第一种就是故意盗窃。抛开开发商恶意盗窃不说,你从网上随意下载一个web3软件,都有可能被黑客种了木马。就等你导入私钥/助记词,私钥就被发给了黑客。解决方案是,只用正规渠道下载的正版软件。如果有技术能力,安装前最好再验证一下安装包的checksum,确保没有被篡改过。

第二种是劫持升级。现代的很多软件都有通过互联网自动升级的功能。黑客正是瞄准了这一点,劫持了升级包下载域名,让软件升级程序从黑客手里下载染毒的新版本,而不是官方的新版本,一旦升级成功,就轻松偷走私钥。

第三种是不当存储私钥。作为一个拥有私钥管理能力的软件,它必须妥善对助记词或者私钥加密保存在本机,以供用户随时使用。但是制作不良的软件要么保管不当,要么加密不强,使得黑客通过其他有漏洞的软件入侵之后,拿走了本机保存的私钥文件,进而破解了私钥。

第四种是云备份。有的软件为了让用户更便利,就自作主场地把用户的助记词或私钥自动备份到了云端。在传输过程中,可能被黑客劫持窃取。存储到云端,云服务器可能被黑客入侵、拖库,进而窃取。

第五种是不当使用私钥。这属于密码学独特的安全问题。私钥的泄露除了直接泄露私钥之外,还可以通过对公开信息反向运算计算出私钥来。如果软件在使用私钥进行签名交易或者签名其他数据的时候,使用了不良随机数(太常见的编程错误!),那么当签名结果数据公布出去之后,黑客就有机会通过多次签名之间的差值,反推出私钥。

你如何才能够知道一个钱包app是否正确实现了签名算法和随机数呢?你很难知道!所以,不要轻易尝试新软件、新硬件产品,特别是不要轻易把存有大量资产的私钥、助记词导入到这些新产品里。

既然软件有如此多的风险点,那么我们可不可以完全避免它们呢?答案是肯定的。

在教链文章《如何用私钥保管比特币》(2020.10.20)中,教链的做法是使用(安全的)工具断网离线生成私钥然后直接手写抄到纸或者本子上,中间不接触、不经过任何软件、硬件、网络。供参考。

对于需要经常进行操作的资产,教链的做法是使用外置的硬件钱包(安全的品牌),把私钥或助记词从联网设备(电脑或手机)分离出去隔离保管,这样即便黑客攻入了我的电脑,也无法从电脑上提取到私钥、助记词。而硬件钱包应选用全球大品牌产品,因为它负责保管私钥并签署每一笔交易,其算法需要足够安全。

不过,硬件钱包的危险性在于物理抢劫。对此,我们只能说,财不外露…… 不要把硬件钱包挂在书包上或者脖子上 :)

祝君平安。