电脑端应用、Web端应用和手机端应用,哪个才是硬件钱包的理想型『热端配套应用』?
—
撰文 | Cobo金库大掌柜
市面上所有的硬件钱包都逃不过要与安装在联网设备(热端)上的配套应用通讯,从而实现查询余额、广播交易、查询交易等联网操作。这里划今天第一个重点:配套应用只保存地址,不保存私钥。
目前,主流配套应用有三类:电脑端应用(以Ledger为代表)、Web端应用(以Trezor为代表)和手机端应用(以Cobo金库为代表)。不要小看配套应用的安全性的重要性,Ledger曾经发生过配套App端的发币地址被替换的攻击事件,Trezor的网页端应用被钓鱼的事件也发生过不止一次。
那么,从安全性的角度来说,三种形式哪种最好呢?聊数字货币钱包之前,我们先看看传统银行业的做法。上了岁数的大掌柜粉丝们都知道,十年前,我们操作“网银”都是通过网页来操作,一般还会用到一个身份认证的U盾。随着手机的普及,大家现在的“网银”操作逐渐被手机App替代。除了手机App操作更便捷这个原因以外,另一个重要原因就是手机端App更加安全。放到硬件钱包领域,同理,手机端的配套App相比电脑端或者网页端,都更安全。
比特币领域除了白皮书,最著名的一本书《精通比特币》的作者Andreas曾经在采访中表示:“(对普通人来说)你的智能手机的安全性远远高于你的笔记本电脑。”
接下来,掌柜的就来掰扯一下你的手机为什么比电脑更加安全。
手机端应用(App)之所以安全,是因为苹果和谷歌商店在上架App之前会对其代码进行审核,主要审核两个地方:App是否能够访问操作系统;App是否能够访问其他App的数据。这样保证了你下载的软件不会在系统中“越权”去访问甚至攻击你的钱包App。而电脑端的操作系统一般没有这道屏障,它是一个更为开放的环境,甚至系统中既有的原生安全“屏障”也可以通过命令行工具等简单绕开。

手机应用商店除了对发布应用的代码进行审核,另外一个重要作用是,他会对发布应用的签名进行校验。从而保证该应用是来源于被授权的发布者。相比之下,电脑端的环境就会复杂很多。虽然有系统级的应用商店,但是下载渠道太多,导致了用户经常会安装非应用官方发布的应用——这些应用可能会对你的钱包App造成威胁,甚至直接下载到被篡改的钱包App。有些电脑端软件会利用PGP机制让用户验证下载软件的合法性,但也只有凤毛菱角的用户有能力完成这步操作。因此,电脑端应用成了黑客攻击的主要目标。
这里补充一下,由于很多第三方的安卓应用商店不一定会进行严格的审核,建议从谷歌应用商店下载安卓App,或者干脆直接用iPhone。
出于安全考虑,安卓和iOS系统都会要求手机端App采用“沙盒”安全机制。
根据安卓和iOS官方的描述,沙盒会限制权限,“默认情况下,应用之间无法交互,并且对操作系统的访问权限是有限的。” 即使恶意代码传入了越狱或root过的设备,攻击的可能性会相对小,因为只要是从官方应用商店下载的应用,都会在沙盒环境隔离运行。
通常安卓和苹果系统默认启用文件加密,MacOS系统同样可以,但是在Windows上,默认情况下是不启用bitlocker的。而且电脑端通常更不严谨,可以允许用户更改系统设置并绕过安全机制,从而为黑客打开了方便之门。

苹果手机嵌入了一个安全硬件模块 Secure Enclave,独立于应用程序处理器之外,具备自己的安全启动和软件更新,为系统提供敏感数据、密钥存储和加解密服务,并且限制其他非法软件的访问,即使在内核遭到入侵的情况下,也可以维护数据保护的完整性。而安卓手机则有 TEE(可信执行环境,Trusted Execution Environment)。TEE在设备中提供一个安全区域,确保敏感数据在隔离、可信的环境中存储、处理和保护,通过提供隔离的、安全执行的授权软件,实现端到端的安全。
苹果手机在启动设备时,所有系统固件均需通过验证是来自苹果公司。安卓也有类似的机制,启动时会验证所有执行的代码均来自可信任的来源,如OEM厂商等。
但手机已经如此安全,掌柜为什么仍然推荐大家使用硬件钱包?请查看《用离线电脑/手机存储私钥真的安全吗?》
仅限手机端适配的配套App是相对更安全的,但也存在缺陷。例如,由于手机端操作系统严格限制了应用的访问权限,用户自定义隐私设置就缺乏了灵活性。
相比电脑端和Web端应用,手机端应用适用更多场景。但需要注意的是,使用公共WiFi运行硬件钱包配套App,可能会因中间人攻击被监控网络流量,造成隐私泄露,隐私信息往往会被利用到社会工程学攻击。当我们进行交易时,建议使用加密的Wi-Fi或蜂窝网络环境,苹果和谷歌的安全性将进一步保护硬件钱包与配套App的连接。