How to protect your crypto seed phrase security: a practical self-custody guide

如何保护您的加密种子短语安全:实用的自我保管指南

By Emma Carter阅读 9 分钟

种子短语是自我保管钱包的主恢复密钥,因此保护它就等于保护资金的所有权。良好的种子短语安全同时涵盖两个方面:阻止社会工程盗窃和防止备份的物理丢失或破坏。

种子短语安全:它是什么以及为什么重要

种子短语,也称为恢复短语,是一种人类可读的备份,可以恢复对自我保管加密钱包的访问。它通常由12个或24个单词组成,单词必须按正确的顺序输入才能进行恢复。这很重要,因为种子短语实际上是可以再生钱包私钥的根秘密。如果其他人获得了你的种子短语,他们可以完全控制你的加密货币。如果你丢失了种子短语并且也失去了对钱包设备的访问,通常没有中央权威可以恢复访问。种子短语风险有两种形式,需要不同的防御。第一种是丢失或破坏,例如错放唯一副本、水损或火灾。第二种是盗窃或暴露,例如在假网站上输入短语、将其保存到被接管的云账户中,或向冒充者透露。加密安全来源还强调不可逆性。一旦资产被转移,就没有退款。这使得预防成为优先事项,这也是为什么种子短语安全需要数字纪律和物理备份规划的原因。威胁模型:种子短语是如何被盗的(网络钓鱼和社会工程)

大多数种子短语泄露并不是从攻击者“破解”密码学开始的。它们是从社会工程开始的,这是一种针对人类行为而非技术漏洞的操控。常见的战术包括网络钓鱼、冒充、伪装和诱饵。网络钓鱼是获取被盗种子短语的最直接途径。攻击者发送一条消息或建立一个看似合法的网站,然后提示你输入种子短语以“验证”、“恢复”或“修复”某些内容。冒充通常是这种网络钓鱼尝试的外衣,攻击者假装是支持人员、团队负责人或交易所代表。最常见的渠道是加密用户已经寻求帮助的地方。社会工程尝试通常通过Telegram、Discord和X上的私信到达你。网络钓鱼指导中强调的一个模式是“支持”在你在公共聊天中发布问题后首先联系你。另一个是模仿真实钱包或服务的假网站,并用“连接钱包”或“恢复”流程替换正常按钮,要求输入种子短语。

诈骗中的红旗往往会重复出现。注意微妙的URL拼写错误、紧急警告(你必须立即采取行动)以及需要你连接钱包或输入恢复单词的意外奖品或空投。攻击者还使用“更新”叙述,例如在安全事件后告诉你更新或重新验证你的种子短语。

账户接管可以使这些攻击更容易执行。基于短信的多因素身份验证可以通过SIM卡交换被绕过,攻击者控制了你的电话号码并接收验证代码。安全指导建议使用身份验证器应用程序的多因素身份验证,而不是短信。风险并非理论。来源中引用的一个高调例子是2025年初的Bybit黑客事件,报告称约有15亿美元被盗,涉及社会工程和供应链妥协。即使你的个人设置小于交易所,这个教训仍然适用。攻击者寻找控制资金的秘密的最简单路径,而对于自我保管用户来说,这个秘密通常就是种子短语。黄金法则:绝对不要对种子短语做的事情

当你消除最常见的失败模式时,种子短语安全会迅速改善。目标是消除你可能被欺骗透露短语的情况,或短语可以在你不注意的情况下被复制。

绝不要与任何人分享你的种子短语。信誉良好的钱包提供商和支持团队不会要求你提供它,任何要求输入或分享的请求都是常见的网络钓鱼指标。

绝不要将你的种子短语存储在连接互联网的数字位置。这包括照片、截图、文本文件、云笔记、云驱动器、电子邮件草稿和消息。指导警告这些位置容易受到恶意软件、网络钓鱼和账户接管的攻击。

避免仅依赖记忆作为唯一备份。记忆可以是额外的保护层,但如果它是唯一的保护层,单个错误或失误可能会永久锁定你。

避免点击来自未请求消息的链接或打开附件。当你需要访问钱包网站或支持页面时,手动导航到可信的URL,而不是使用私信或电子邮件中提供的链接。避免从非官方来源安装钱包应用程序或浏览器扩展。网络钓鱼指导警告关于假应用程序和扩展程序,它们旨在窃取种子短语。更安全的工作流程是仅从官方来源下载,并在输入任何敏感信息之前验证你是否在正确的域名上。最佳实践存储:能够抵御黑客和灾难的离线备份

实际目标很简单。你想要一个离线的种子短语备份,能够在多年后读取,并存储在小偷无法轻易访问且灾难无法轻易摧毁的地方。

从钱包创建开始。在创建钱包时立即创建备份。自我保管提供商不会为你存储或恢复种子短语,因此延迟备份可能会将丢失的手机或损坏的硬件钱包变成永久损失。

纸张可以有效,如果你把它当作脆弱的原始文件来处理。清晰地写下单词,并确认你以正确的顺序捕捉到每个单词。一些指导建议使用档案质量的纸张和墨水,然后保护纸张免受水、火、褪色和随意发现的影响。纸张通常是最容易的起点,但也是最容易损坏的。

金属备份因其耐用性而被广泛推荐。其理念是将种子短语刻印或雕刻在钢或其他金属上,以便它能比纸张更好地抵御火灾和水的侵害。多个来源将金属描述为长期存储的高耐用性标准。

存储备份的位置和存储介质同样重要。常见的安全位置选项包括防火个人保险箱和银行保险箱。操作目标是将备份远离小偷和环境危害,同时在需要时仍然可以访问。

冗余减少单点故障。将多个副本保存在地理上分开的安全位置可以保护你免受一个位置因火灾、洪水或简单错放而被破坏。同时,更多的副本可能会增加被盗的风险,因为目标更多。缓解措施是将每个副本保存在受控、隐秘的位置,并限制知道其存在的人。

如果你考虑任何数字备份,请将其视为特殊情况,设定严格的限制。一些指导允许在隔离设备上进行加密的离线存储,但其他来源强烈不鼓励数字存储,因为它是恶意软件和账户接管的主要目标。如果你的目标是作为初学者最小化风险,最安全的基线是离线物理备份。

高级保护:通过多重签名或Shamir式共享分散风险(以及何时使用它们)一旦你有了可靠的离线备份,下一步就是减少“单一秘密,单一失败”问题。当风险价值较高、多个需要控制访问的人,或你想要更强的保护以防止一个位置被妥协时,高级设置可以提供帮助。多重签名,简称多签,是一种钱包设置,要求多个批准才能移动资金。与其说一个密钥足以支出,不如说你可以要求如三名签署者中有两个批准的门槛。这降低了一个被盗设备或一个暴露的种子短语耗尽所有资金的风险。

Shamir的秘密共享式方法将一个秘密分割成多个份额,以便只需要选定的子集来重建它,例如3-of-5。实际存储的含义是你可以将份额放在不同的安全位置,以便没有单一位置包含完整的恢复材料。

这些方法需要仔细执行。来源讨论Shamir的秘密共享作为一种成熟的方法,他们还提到分割和多签作为概念。关键的陷阱是临时手动分割。如果你错误地分割了一个短语,你可能会创建一个无法恢复资金的情况,或者部分泄露足以导致盗窃。对于高级设置,更安全的方向是使用成熟的方案和兼容的工具,而不是自己发明方法。

另一个风险降低选项是设计上的分离。你可以将资金分散在多个钱包中,以便一个妥协不会抹去所有内容。这确实增加了操作开销,因为你现在有多个种子短语需要保护,但它可以限制爆炸半径。

恢复准备:测试恢复,保持设备清洁,并为紧急情况做好计划种子短语的安全性在你知道可以恢复之前并不完整。一个从未经过测试的备份可能会在最糟糕的时刻由于抄写错误、缺失的单词或错误的顺序而失败。恢复在兼容的钱包之间以可预测的方式进行。如果你的设备丢失或损坏,你可以在新的干净设备上安装一个兼容的钱包,选择导入或恢复选项,并按正确的顺序输入种子词。这个过程会重新生成钱包的私钥并恢复访问权限。

在紧急情况发生之前练习恢复演练。指导建议测试恢复,理想情况下使用少量资金,以确认备份是准确的,并且你理解工作流程。这也是验证你的手写是否清晰,以及你的存储方法是否可用的时刻。

保持操作卫生,以免创建新的攻击路径。保持钱包应用和浏览器扩展的更新,但避免通过电子邮件、弹出窗口或私信发送的更新链接。网络钓鱼指导警告说,虚假的更新可能是恶意软件的传播途径,因此应通过官方渠道进行更新。

在不将你的种子短语变成共享知识的情况下,为失能和遗产做好计划。指导建议为近亲准备应急计划,包括说明和安全位置的详细信息,而不披露种子短语本身。它还警告说,在某些司法管辖区,遗嘱可能成为公共记录,因此你在遗产文件中包含的内容要谨慎。

如果你怀疑你的种子短语或钱包已被泄露,优先考虑速度。关于网络钓鱼响应的指导建议迅速将剩余资金转移到安全钱包,因为一旦资产被转移出去,通常就会消失。

来源

BitPay

Crynet.io

Crypto.comTangem

TechTimes

Shieldfolio

CryptoCrafted

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

相关阅读