LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 用离线电脑/手机保管私钥,这放心吗?

用离线电脑/手机保管私钥,这放心吗?

2019-12-17 发粪涂墙 来源:区块链网络

使用离线电脑或手机来存储私钥是一种由来已久的“安全”的冷存储解决方案。

可是,这个方案到底靠不靠谱呢?

答案是不靠谱。

本文将分别从三种设备类型讲述为何不靠谱:

离线电脑

离线 Android 手机

离线 iPhone 手机

离线电脑

来自以色列Ben-Gurion大学的 Mordechai Guri 博士将攻击者从离线电脑窃取机密信息的过程归为以下三步:

病毒渗透 (Infiltration):一般是通过U盘将病毒程序传输到离线电脑中。

发送指令 (Command&Control):攻击者通过特殊手段(病毒程序)将指令发到存储了机密信息的离线设备中。

窃取信息 (Exfiltration):攻击者从离线设备中窃取机密信息。

病毒传输入离线电脑后,实现第 ② 步和第 ③ 步的方法非常多。Mordechai Guri 博士在他的研究中做了非常详尽的阐述。甚至有些让你无法想象。

通过视频可以了解到,攻击者可以通过病毒控制电脑的风扇、机械硬盘抖动甚至电磁信号来向外传递信息,即使是有背景音乐干扰的情况下,接收端也能正常接收信息。最恐怖的是,病毒还可以利用超声波,将离线电脑或者离线树莓派上面的私钥信息向外传输。

这里可能会有人疑问:上面的攻击方式都是建立在病毒软件能够被安装到离线电脑的基础上的,这一步有那么容易实现吗?

这可能在常人看来难以发生,但举一个实例,大家就能意识到躲在暗处的攻击者的攻击手段有多么隐蔽和难以防范。

2008年,位于中东某地的美国军事基地内,攻击者将一个安装有病毒软件(Agent.BTZ)的 U 盘故意“遗失”在基地停车场内。U 盘被美国国防部工作人员拾到,并连接到了美国国防部的内部网络中。之后,在毫无察觉的情况下,病毒入侵了整个美国国防部的内部安全网络。五角大楼的 IT 安全人员花了整整 14 个月才清除了病毒的所有残余。

而使用离线电脑做冷钱包的绝大部分人都是使用触过网的 U 盘 将转账地址传输进离线电脑,并将签名完毕的信息从离线电脑拷贝出电脑,这些都是黑客植入病毒的绝佳时机。

再举一个更加“不可能发生”的例子。

2016 年,黑客替换了 Linux Mint 官方的下载镜像,并在其中安插了后门程序。

也就是说,离线电脑的 操作系统 以及其安装的 钱包应用 ,即使是官网下载的,也存在一定风险。

更多针对离线电脑的攻击方式可以参考 Mordechai Guri 博士的研究信息汇总(详见最后一个参考链接)

离线 Andriod 手机

“离线电脑”其实并不是真正“离线”。那离线的手机呢?手机没有风扇,也没有机械硬盘,手机就能做到真正的“安全”吗?

我们先来看 Android 手机。

Android手机的安全性主要依赖 TrustZone,私钥正是保存在 TrustZone 中,有些无良厂商存私钥都不用 TrustZone(只能对他们说,快别再做软件害人了)。

如果搜索“TrustZone Attack”或者“TrustZone Side Channel Attack”这样的关键词,能够找到大量的资料,各种中英文博客琳琅满目。

总之结论就是,用 Android 手机做私钥冷存储,不安全。

离线 iPhone 手机

iPhone 的情况会比 Android 手机复杂一些。

iPhone 有一个叫做 Secure Enclave 的东西,可以理解成是嵌在主芯片内的一颗安全芯片。安全芯片的英文是 Secure Element,从命名上也可以看出他们之间千丝万缕的关系。

理论上来说,Secure Enclave 几乎能实现安全芯片的所有功能和物理特性。包括安全芯片最关键的功能——物理生成真随机数(True-Random-Number-Generator,简称 TRNG ),iPhone 的 Secure Enclave 也可以做到。

那 Secure Enclave 能替代安全芯片吗?

答案是不能,至少当下不能。

Secure Enclave 支持加密曲线 P-256,而比特币的加密曲线用的是 Secp256k1 ,几个字母不同,差之毫厘,谬以千里。

这个就导致了你用 iPhone 做冷钱包,签名一笔比特币交易的时候,签名是发生在 iOS 系统层而不是 Secure Enclave 里面。

这就是极大的风险敞口。

相比之下,使用了安全芯片的主流硬件钱包,交易签名必定是在安全芯片内完成的,保证私钥不会离开安全芯片。

如果 Secure Enclave 支持Secp256k1,就能把 iPhone 当成冷钱包来用吗?

答案依旧是不能。

因为Secure Enclave 设计之初,是为了保证 iPhone 的安全性,所以它有一些很特殊的安全机制,比如——物理生成的真随机数(TRNG)是不能读取的。

也就是说,用户无法备份主私钥,如果 iPhone 坏了,数字资产会全部遗失。

同时,Secure Enclave 也不支持第三方 App 的写操作。

所以,你也无法把你的私钥导入 Secure Encalve 保存。

读到这里,你应该明白了。iPhone 虽然有 Secure Enclave,但其实 Secure Enclave 并没有参与到数字货币的随机数生成,私钥存储,私钥签名这些关键操作中。不管你用哪一款冷钱包 App,随机数还是算法生成的伪随机数,私钥还是存在系统层,私钥签名还是在系统层内发生。

另外,不要被 Apple 发布的 CryptoKit 这个名字所迷惑,CryptoKit 其实是一个密码学组件。不是一个数字货币组件。这里 Crypto 代表的是 Cryptographic(密码学),不是 Cryptocurrency(数字货币)。

即使,对手机设备进行旁路攻击的前提是需要拿到设备,但是相比使用了安全芯片的专业硬件钱包,攻击者拿到你的手机就相当于拿到了你的私钥,而有安全芯片的硬件钱包,除了你自己,谁拿到了都只是拿到了一块砖。

综上,不论是用一台离线电脑,还是用离线手机做冷存储方案,都没有想象的那么安全。

看完上面的内容,尤其是 Secure Enclave 那一段,大家肯定对安全芯片的安全特性特别感兴趣。这其实也是硬件钱包的核心,掌柜会在后面的文章再详细展开。

—-

编译者/作者:发粪涂墙

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...