Coldcard 是最安全的开源比特币硬件钱包吗?

如果您查看当前的加密硬件钱包市场,您会注意到几乎所有这些都分为两大类,主要由两种不同的意识形态驱动。

一方面,我们有Trezor 类型的钱包,它遵循保持一切开放和可验证的开源意识形态。然后,还有Ledger 类型的钱包,通过(通常是EAL5+ 认证的)安全元件(SE) 提供不太开放的银行级安全性。

最安全、开源的比特币硬件钱包——Coldcard

但是这两种方法都有起伏。像Trezor 这样的完全开源的系统通常没有安全元素。因此,秘密通常存储在通用MCU 中,很容易被故障攻击暴露出来。

或者,Ledger 型钱包可以抵抗此类故障攻击,因为机密存储在安全元件中。但是有了这些,设备固件和软件的重要部分通常仍然无法用于同行评审。因此,引入了某种信任因素,这在许多加密爱好者中不太受欢迎。

然而,有一个这样的硬件钱包似乎通过提供两全其美的方式达到了最佳状态——提供用于存储秘密的SE,同时保持固件和软件完全开源。

我们谈论的是Coinkite 的Coldcard 硬件钱包。

冷卡外观

Coldcard 具有简单的半透明设计,可以更好地视觉检测内部组件中的篡改。该公司更专注于确保设备安全,以及保持低制造成本和零售价格。

它有一个用于显示信息的OLED 屏幕、一个包含数字0-9 的12 键键盘,以及OK(确认)和X(拒绝)按钮。这些按钮可用于输入您的Coldcard PIN、浏览用户界面和签署交易。

还有一个MicroSD 卡插槽(稍后会详细介绍)、3 个LED 指示灯和一个用于供电和直接连接的Micro-USB 端口。

有关Coldcard 硬件的更多信息,请参阅官方文档

为什么冷卡与众不同?

Coldcard 与当前市场上其他流行的硬件钱包有很大不同。

安全元素,但不是“通过默默无闻的安全”

通常,大多数带有SE 的硬件钱包使用双芯片架构——一个用于正常设备功能的通用MCU,一个用于存储秘密和签署交易的银行级SE。

但是,银行级SE 通常附带(部分或完全)闭源固件。这个想法是,如果攻击者不了解系统,就无法利用该系统。因此,这种类型的硬件通常提供“隐秘的安全性”。

Coldcard 也使用了类似的双芯片架构,但它的SE 与Ledger 型硬件钱包中常见的SE 有很大不同。

它使用Microchip 的ATECC508A (Mk2)、ATECC608A (Mk3) 来存储关键的主密钥。该微控制器是一种密码协处理器,可提供基于硬件的安全密钥存储。更重要的是,它没有任何闭源组件。

安全MCU 可以执行SHA-256 散列并包括一个内部真随机数生成器(TRNG)。结合这些功能和精心的协议设计,Coldcard 强制攻击者必须知道特定的PIN 序列(作为钱包设置过程的一部分保存)才能访问机密。

Coldcard PIN 的长度可以从4 到12 位,分为两部分——前缀和其余PIN——每部分长度为2 到6 位。建议使用至少包含8 (4 + 4) 位数字的PIN。

输入前缀PIN 后,Coldcard 从BIP39 词表中生成两个词。这对词对每个Coldcard 设备和前缀PIN 组合都是唯一的,可作为识别网络钓鱼攻击企图的措施。

如果显示的反网络钓鱼词对与预期的不匹配,要么您输入了错误的前缀PIN,要么可能是网络钓鱼设备!

此外,安全MCU限制了PIN 尝试的最大次数——针对重复的PIN 尝试强制执行增量时间延迟——这样强力攻击对于强PIN 代码是不切实际的。

所以,如果攻击者现在决定直接暴力破解秘密,那也太倒霉了!SHA-256 加密散列与TRNG 一起确保强加密。搜索空间现在是2^256,即使在主MCU 上完全更换固件或从板上移除SE 芯片时,这仍然是正确的。

因此,ATECCX08A 芯片依赖于加密散列函数的安全性,而不是“通过默默无闻的安全性”。使用这样的SE 允许Coinkite 保持其所有固件和软件的开源,可以进行同行评审和验证。

完全“气隙”的解决方案

Coldcard 可以离线操作,无需以任何方式连接到计算机或移动设备。它不支持蓝牙或WiFi 连接,您只需将Coldcard 插入电源插座即可有效地执行Coldcard 上的所有操作。也可以选择通过USB 与计算机进行操作。

相关问题  Windows 10 上Microsoft Edge 的提示和技巧

完全“气隙”的解决方案- Coldcard 硬件钱包

Coldcard 有一个MicroSD 插槽,可以使用存储卡作为气隙之间的介质。它可以为支持的钱包应用程序生成骨架钱包,包括MicroSD 卡上的Electrum 和Wasabi,其中包含扩展的公钥。扩展公钥可用于生成新的接收地址,而无需知道相应的私钥。

Coldcard 也是世界上第一个PSBT 原生(“部分签名比特币交易格式”——BIP 174)硬件钱包;从而允许您直接在MicroSD 卡上签署交易,然后在网络上广播它们,而无需连接Coldcard。

除此之外,Coldcard 可以将MicroSD 卡用于诸如将钱包种子备份到加密文件或升级设备固件等目的,所有这些都无需直接连接到计算机。

注意:气隙提供更高的安全性,但可能有点不方便。Coldcard 通过支持气隙以及通过USB 直接连接,提供了在更安全或更方便之间进行选择的选项。

无需专用软件

即使支持第三方应用程序,大多数硬件钱包通常也依赖其官方配套应用程序来执行固件验证和升级、扩展硬币支持等任务。

Coldcard 没有专门的配套应用程序。它旨在与Electrum 和Wasabi 等本机钱包应用程序配合使用。借助MicroSD 支持、LED 指示灯等功能,固件更新和验证等任务可以直接在设备内处理。

Coldcard 通过USB 直接连接以及气隙解决方案与Electrum 和Wasabi 配合使用

Coldcard 通过USB 直接连接以及气隙解决方案与Electrum 和Wasabi 一起使用。

同样,固件更新可以直接从Coldcard 网站下载,并使用Electrum(通过USB)或Coldcard 本身(通过MicroSD 卡)加载到设备上。

注意:截至目前,Coldcard 仅支持比特币(Main & TestNet)和莱特币(Main & TestNet)加密货币。

如何设置Coldcard硬件钱包

为了提高设备的安全性,Coldcard 的设置过程与其他流行的硬件钱包略有不同。这是在Coldcard 中设置新钱包的分步指南。

注意:订购后,您的Coldcard 应装在一个密封袋中,袋子下方有一个条形码和一个数字。检查袋子是否有任何损坏迹象,如果发现任何不合适的地方,请将其报告给Coinkite 支持

  1. 使用微型USB 壁式充电器或电池组为您的Coldcard 供电。
  2. 通读Coldcard 屏幕上的使用条款;使用按键5(向上)或8(向下)浏览消息,然后按右下角的OK 键继续。
  3. 验证设备序列号并确保它与包装袋上印刷的序列号匹配。
  4. 输入将用于保护您的Coldcard 免受未经授权使用的前缀PIN;建议使用4-6 位数字。
  5. 注意并记住屏幕上显示的两个反网络钓鱼词。根据您使用的特定前缀PIN,此词对是您的Coldcard 所独有的。
  6. 输入您首选的PIN 的其余部分;建议使用4-6 位数字。
  7. 保存PIN 后,您应该会看到一个菜单,用于从BIP39 种子创建新钱包或导入现有钱包。使用5 和8 键向上或向下导航,然后按OK 按钮。
  8. 使用导入现有,您可以通过提供相应的12-24 字种子来输入您现有的钱包。
  9. 或者,当您选择New Wallet 时,下一个屏幕上将显示一组24 个种子词。滚动浏览并记录每个单词。为此,您可以使用包装中提供的Wallet Backup 卡。最后,按OK 进行测验并验证所有单词都已正确记录。

成功完成测验后,您的钱包就可以使用了。

注意:如果您希望切换到不同的钱包来存储和访问您的资产,您可以选择设置BIP39 密码。

有关如何使用不同钱包功能的更多详细信息,您可以查看Coldcard 网站

冷卡安全与不同的攻击媒介

Coldcard 采取了多项措施来确保其产品的安全性。让我们分析它们如何抵御不同的攻击媒介。

相关问题  如何在Firestick/Fire TV 上安装YouTube TV

远程攻击

Coldcard 将私钥存储在安全元件芯片中,该芯片使用SHA-256 散列和TRNG 对数据进行加密。即使将设备直接插入连接到Internet 的计算机,SE 也可确保机密永远不会暴露给外部世界。

所有支出交易都可以通过读取显示接收者地址的OLED 显示屏进行验证,并通过按物理OK 键确认。外部可用的唯一数据是用于启动交易的签名消息。

如果您足够偏执,您可以在气隙模式下使用Coldcard,在这种模式下,设备始终处于离线状态。在这种情况下,无法对Coldcard 硬件钱包执行远程攻击。

物理攻击

让我们考虑对Coldcard 钱包进行不同类型的物理/中间人(MITM) 攻击。

供应链攻击

每个Coldcard 钱包在出厂时都包装在一个特殊的序列号袋中。这个特殊的包不仅有防篡改封条,而且有一个唯一的序列号,它也记录在设备闪存的安全区域,在钱包设置过程中可以验证。

冷卡供应链攻击

此外,在Coldcard 周围使用透明塑料外壳是一种有意的设计决定,以帮助轻松发现设备内部的物理篡改迹象。此外,由于塑料外壳是焊接封闭的,因此很难在不被注意的情况下打开和重新密封外壳以进行此类物理篡改。

盗窃

如果设备被盗,将很难(读作“不可能”)访问钱包的秘密。如前所述,机密存储在安全元件中,如果不知道正确的PIN 序列,就无法从中提取机密。

错误PIN 尝试之间强制执行的时间限制使得执行暴力攻击变得不切实际,尤其是在使用强PIN 代码的情况下。此外,如果攻击者试图在没有PIN 码输入的情况下从外部强行破解秘密,由于巨大的(2^256) 搜索空间,SHA-256 哈希+ TRNG 会使强行变得不切实际。

注意:在Coldcard 的后续迭代中(自MK3 起),预先确定的连续错误PIN 尝试次数将永久破坏(“破坏”)设备及其机密。

邪恶女仆攻击

冷卡采取多种对策来阻止各种邪恶女仆的攻击:

恶意固件攻击– Ledger STM32 0xF00DBABE

Ledger Nano S 曾经遭受(目前已修复)严重的引导加载程序问题,其中固件验证过程涉及检查特定内存位置的特定十六进制常量(0xF00DBABE)。这个问题很容易被安全研究人员利用,自定义固件成功加载到Nano S,同时在特定内存位置写入0xF00DBABE。

与Nano S 不同的是,Coldcard Wallet 每次启动设备时都会校验每个闪存地址。SHA-256 散列是根据安全存储在SE 中的值计算和验证的。结果以红色(表示假)和绿色(表示真)灯显示给用户,除了SE 之外,系统的任何部分都无法访问这些灯。

执行固件升级时,新固件的SHA-256 哈希值会发生变化。那时,新的“应该是”哈希值也被写入到SE 中。如果攻击者希望刷新自定义(恶意)固件,他们必须知道主要设备PIN。

暴风雨攻击– Ledger Blue RF 泄漏

在另一个演示中,安全研究人员能够通过跟踪由于在设备屏幕上不同区域注册的触摸而产生的射频信号来确定Ledger Blue PIN 码。这很难在Coldcard 上执行,因为它的固件具有针对此类攻击的必要保护措施。

此外,从MK2 版本开始,Coldcard 使用物理键代替触摸键,从而增强了抗风性能。

故障攻击——TREZOR One Glitching

TREZOR 设备容易受到故障攻击,因为秘密(以加密形式)存储在主要通用MCU 本身上。Coldcard 的情况并非如此,所有机密都存储在ATECCX08A SE 芯片中。

如前所述,如果不知道主PIN 码,就不可能从这个SE 中提取数据。它还具有诸如在不成功的PIN 尝试和使用TRNG 对机密进行SHA-256 散列之间的强制定时延迟等功能的强力攻击。

最重要的是,Coldcard 还可以轻松检测可能的MITM 攻击,而不会泄露您的完整PIN 码。输入前缀PIN 后,它会显示两个防钓鱼字,这是您的设备独有的和前缀PIN 组合。如果单词不匹配,则表明您的Coldcard 硬件可能已被篡改。

或者,在设备通电时,在校验和验证(红灯和绿灯)期间会识别任何刷新设备固件恶意版本(不知道主PIN)的尝试。

相关问题  全新华为Band 6 全球发布

“5 美元扳手”的情况

“5 美元扳手”的情况- xkcd-security

当您受到胁迫时,硬件钱包中采用的所有安全机制都可能会失败,例如,被持枪指着以泄露设备PIN 和/或将比特币转移到攻击者的钱包。BIP39 密码支持、胁迫PIN 和BrickMe PIN 等功能使您能够在这种情况下拯救或销毁您的Coldcard 钱包。

密码

BIP 39 标准除了24 字的种子外还支持可选的密码短语,它可以为每个可能的密码短语访问一个新钱包。Coldcard 钱包支持在初始种子词中添加密码,从固件版本2.0.0 开始。

密码- Coldcard 钱包

当您随时通过输入PIN 登录Coldcard 时,默认密码始终为空。要添加密码并访问与之关联的全新钱包,请执行以下操作:

  1. 使用您的前缀和休息PIN 登录到Coldcard。
  2. 从Coldcard 菜单中选择密码短语。
  3. 在密码短语描述屏幕上按确定。
  4. 通过选择适当的选项添加新密码:编辑短语(通过向上/向下和向左/向右移动输入字符)、添加单词(从BIP39 单词列表中选择一个单词)、添加数字(使用物理键盘)。

所有这些选项都可以组合使用。您的密码可能包含BIP39 单词列表中的一个单词,后跟一些数字,然后还有一些特殊字符。短语最长可达100 个字符。

如果您需要重新输入密码或希望返回到您的24 字种子钱包,密码短语菜单还具有清除所有选项。

选择密码后,从菜单中选择应用以继续。一个八位数的钱包指纹将显示在屏幕上。此指纹可用于验证通过输入特定密码访问的钱包是否确实是您打算打开的钱包。每次输入相同的密码时,钱包指纹都应该相同。

胁迫钱包

当您被迫透露PIN 时,胁迫钱包应该作为一种逃生路线,以防万一出现胁迫情况。您可以输入胁迫PIN 而不是实际的PIN 来访问不同的钱包。

当输入胁迫PIN 时,Coldcard 会正常运行并解锁钱包,因此通常不会警告攻击者。但是,熟悉Coldcard 的人可能会分辨出其中的区别。例如,胁迫钱包没有密码短语菜单项。

BrickMe 密码

Coldcard 还允许您设置BrickMe PIN 以有效地永久销毁Coldcard 设备。当使用BrickMe PIN 时,关键秘密将被不可逆转地破坏,钱包基本上变得像砖头一样无用”。

胁迫PIN 和BrickMe PIN 都可以通过Coldcard 钱包中的设置菜单(更改PIN 代码选项)进行设置。

奖励:以最安全的方式设置Coldcard

这些提示将帮助您以最大的安全性设置您的Coldcard 钱包。

无需计算机即可开机:将Coldcard 插入壁式插座或电池组即可开机。

强12 位PIN:创建具有6 位前缀PIN 和6 位其余PIN 的强PIN 码。然后,创建一个新钱包并安全地记录您的种子以用于恢复目的。

密码短语设置:接下来,转到密码短语菜单并设置一个您可以记住但不容易猜到的强密码短语。应用密码短语后,您将登录到与特定密码短语相关的钱包。另外,记下钱包指纹以备将来参考。

PSBT:现在,使用MicroSD 卡通过PSBT 将您的资产存储或转移到与密码相关的钱包中。

始终离线:继续在气隙模式下使用Coldcard 钱包。

注意:虽然Coldcard 有一个专门针对胁迫情况的胁迫钱包,但我们不建议您使用该功能,因为熟悉Coldcard 的攻击者可以很容易地检测到实际钱包和胁迫钱包之间的区别。相反,您可能希望在没有密码的情况下在主钱包中加载一些资金(您愿意丢失),您可以在胁迫情况下访问这些资金。

附加提示:新的Coldcard MK3 具有在连续13 次PIN 尝试失败后自动“变砖”设备的功能。但是,如果您使用的是较早版本的设备,您可以设置一个BrickMe PIN,该PIN 的位数与您的主要PIN 相同,但数值较小。这样,在暴力破解您的PIN 码时,攻击者可能会在解锁设备之前先将设备变砖。

你应该得到一张Coldcard

目前,Coldcard 不支持多种货币。它不适合在旅途中发送比特币。尽管如此,Coldcard 可能是长期比特币“hodlers”的完美解决方案。

该设备主要关注安全性和成本效益,是希望以最安全的方式(气隙、安全元件)存储比特币的人的理想选择,同时又不影响开源意识形态。

获取冷卡

分享这篇文章

发表评论