用不用 passphrase:这笔取舍

·阅读 7 分钟·作者:SSP Editorial Team
一篇关于 BIP-39 passphrase 的安全指南封面,标题旁有钱包、钥匙、盾牌和芯片图标。

助记词是自托管钱包的主密钥。但 BIP-39——大多数助记词背后的标准——悄悄定义了一个可选项:passphrase,有时被称为“第 25 个词”。加上它,你就在助记词之上多了一个秘密。它确实是一件有用的工具,但同时也是把自己锁在资金之外最容易的方式之一。本指南将解释什么是 BIP-39 passphrase、它真正带来什么、代价是什么、哪些错误会让人丢失资金,以及它与 SSP 把签名拆分到两把密钥的方式相比如何。

BIP-39 passphrase 究竟是什么

标准钱包会从你的助记词——也就是设置时记下的 12 或 24 个单词——派生出每一个地址。BIP-39 passphrase 则是你在这些单词之外额外提供的一个可选秘密。钱包会把助记词和 passphrase 结合起来,派生出一个完全不同的钱包:不同的地址、不同的私钥、不同的余额。只要改动 passphrase 中的一个字符,你就会得到又一个钱包,既不报错也不提示。

官方的 BIP-39 规范将 passphrase 描述为从单一助记词派生出许多钱包的方法,其中 passphrase 在密钥派生函数中充当“盐”。由此设计直接得出一个关键性质:passphrase 不会被存储在任何地方——不在你的设备上、不在助记词里、也不在任何钱包提供商处。没有任何记录可供恢复。一旦忘记,它所解锁的钱包就消失了,再怎么拥有助记词也无法找回。

正因如此,硬件钱包厂商把它当作高级功能。Trezor 关于 passphrase 与隐藏钱包的文档,把每一个 passphrase 都视为打开一个独立的隐藏钱包,而空 passphrase 只是其中的又一个钱包。

它带来什么

两项实实在在的好处足以支撑这一功能。

它能保护被人发现或被盗的助记词卡。 如果有人发现了你存放单词的纸张或金属板,受 passphrase 保护的钱包依然安全。单凭助记词只能派生出空 passphrase 钱包——而你刻意让它保持空置。资金存放在只有当助记词与一个仅存在于你脑海中的 passphrase 结合时才会出现的钱包里。小偷只掌握了两部分秘密中的一半,无法转移任何东西。

它支持隐藏钱包和合理推诿。 由于每个 passphrase 都派生出一个不同的钱包,你可以在无 passphrase 的钱包里放少量真实余额,而把真正的资产放在某个 passphrase 之后。在胁迫之下——所谓的“5 美元扳手攻击”——你可以交出助记词和一个诱饵 passphrase,露出一笔不起眼的余额,而大头始终不可见。没有办法证明隐藏钱包的存在,这正是合理推诿的意义所在。

对于真正担心备份被人实物发现的单一助记词用户来说,这些并非纸上谈兵的好处,而是开启该功能最有力的理由。

它的代价

保护你的同一机制,也抬高了赌注。

它让你的单点故障翻倍。 没有 passphrase 时,你只需保护并承受一个秘密的丢失:助记词。有了 passphrase,你必须备份并且能够重现两个相互独立的秘密,丢失其中任何一个都会丢失资金。如果 passphrase 只活在你的记忆里而记忆失灵,那么再防火的助记词备份也无济于事。

弱 passphrase 可被暴力破解。 如果攻击者真的找到了你的助记词,横在他与你的币之间的就只剩 passphrase。一个简短或易猜的 passphrase——宠物的名字、一个生日、一句常见短语——可以被离线以极快速度逐一尝试,因为攻击者已经握有助记词,无需触网即可测试候选项。passphrase 必须带有真正的熵才有价值。

它增加操作摩擦。 现在每次恢复都需要一字不差地输入 passphrase,包括大小写、空格和标点。一个你看不见的尾随空格、一种不同的键盘布局,或一个被自动更正的字符,都会悄无声息地生成一个空钱包,而不是报错。

哪些错误会让人丢失资金

大多数 passphrase 损失都源自少数几种可以避免的模式。

  • 把 passphrase 和助记词放在一起。 如果两半都在同一个抽屉、保险箱或便条里,你不过是为小偷多加了一个步骤。只有当 passphrase 单独存放——或单独记忆——时,它才能保护你。
  • 只依赖记忆。 人会遗忘。一个你从未记录在任何地方的 passphrase,离变得无法恢复只差糟糕的一周。安全的做法是与助记词分处不同地点、单独而持久的备份。
  • 不可见字符。 一个尾随空格、被手机键盘替换的弯引号,或在不同设备上渲染各异的表情符号,都可能改变所派生的钱包。请把 passphrase 限定在你能可靠重现的字符上。
  • 以为空钱包“坏了”。 恢复之后,看到空 passphrase 钱包就惊慌是很常见的。资金并未丢失;只是还没有输入 passphrase 而已。

如果你会用到助记词,我们的 助记词最佳实践指南讲解了 passphrase 所依赖的备份卫生,而 当你的一把密钥被攻破会发生什么则梳理了 passphrase 意在削弱的那种威胁。

passphrase 与 SSP 的双密钥模型

passphrase 是对一个具体问题的一种回答:如果我唯一的助记词被发现或被盗怎么办?它的回答方式,是再加一个仅凭助记词无法揭示的秘密。

SSP 对同一个问题给出了不同的回答。SSP 的 2-of-2 multisig 不是在一份助记词之上叠加第二个秘密,而是把签名拆分到两把相互独立的密钥上——一把在 SSP 浏览器扩展里,一把在 SSP Key 手机应用里——使得任何单一秘密都永远不足以转移资金。攻破一台设备、或找到一份备份的攻击者,仍然无法签署交易。第二把密钥是一个独立的审批面,而不是追加在第一把之后的一个词。

这一区别很重要。passphrase 保留了单一助记词模型,要求你守护源自同一根的两个秘密。SSP 则彻底取消了单一助记词这一前提:不存在某一句话,其被发现就能掏空钱包。关于这一设计背后的道理,为什么现在自托管很重要给出了背景,而 multisig 的失效模式以及 SSP 如何缓解则坦诚地说明了双密钥方案能防什么、不能防什么。

把 SSP 是什么、不是什么说清楚:SSP 并不提供 BIP-39 passphrase 开关,你也不应把本文当作应用内的某项设置。这一比较关乎威胁模型,而非功能——是让被人发现的备份对攻击者毫无用处的两种不同方式。

如何抉择

passphrase 适合某些用户。如果你持有单一助记词钱包、特别担心有人实物找到你的备份,并且有把握能够多年持久而分离地保管一个高熵的第二秘密,那么可以考虑开启它。隐藏钱包和合理推诿的特性是真实的,对某些威胁模型而言它们恰到好处。

在投入之前,请对失效模式保持诚实。如果你更大的风险是忘记一个秘密、丢失一份备份,或在压力下把恢复输错,那么 passphrase 反而会带来你正想逃离的那种脆弱。让必须存活的东西数量翻倍,并不是免费的。

如果让你担心的是单一助记词这一前提本身,那么把签名拆分到两把密钥可以在不要求你毫无差错地记住第二个秘密的前提下,应对同样的威胁。在丢失浏览器后恢复钱包展示了当没有任何单一秘密构成全部故事时,恢复是如何运作的。

继续学习

passphrase 与双密钥钱包,是对同一问题的两种回答——让被盗的备份对攻击者一文不值。请选择那个你能承受其失效模式的方案,而不是只挑听起来好处最大的那个。

分享本文

相关文章