<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Passphrase on Time Friend</title><link>https://time-friend.com/zh/tags/passphrase/</link><description>Recent content in Passphrase on Time Friend</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 01 Aug 2026 10:00:00 +0000</lastBuildDate><atom:link href="https://time-friend.com/zh/tags/passphrase/index.xml" rel="self" type="application/rss+xml"/><item><title>BIP-39 Passphrase: 给助记词再加一道保险</title><link>https://time-friend.com/zh/archive/bip39-passphrase-coldcard-entropy-failure/</link><pubDate>Sat, 01 Aug 2026 10:00:00 +0000</pubDate><guid>https://time-friend.com/zh/archive/bip39-passphrase-coldcard-entropy-failure/</guid><description>&lt;p&gt;过去一年, 安全事件一波接一波, COLDCARD 只是最新的一起。&lt;/p&gt;
&lt;p&gt;7 月底, 一款硬件钱包的固件版本里, 生成助记词时随机数出了问题: 本该用硬件真随机源, 却在特定情况下悄悄回退到很弱的软件随机数。助记词只剩几十 bit 的熵, 攻击者直接推导出私钥, 41 分钟内卷走数千万美元。&lt;/p&gt;
&lt;p&gt;看了这么多复盘, 我这一年最大的改变是: &lt;strong&gt;不再无条件信任任何环节&lt;/strong&gt;。固件可能悄悄回退、随机源可能变弱、供应链可能被投毒、AI 又把攻击门槛拉低了一大截——钱包安全链条上每一环都可能出问题。所以防线不能只有一道, 助记词也绝不能是唯一那道锁。&lt;/p&gt;
&lt;h2 id="随机数是硬指标"&gt;随机数是硬指标&lt;/h2&gt;
&lt;p&gt;这次攻击的根源, 不是助记词被偷拍, 而是它&lt;strong&gt;可以被重新计算出来&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;一套 12 词助记词背后是 128 位随机数。128 bit 意味着 2 的 128 次方种可能, 正常情况下穷举到宇宙尽头也试不完。可一旦随机源只剩 40~72 bit 的熵, 攻击者只要知道某台设备那个时间窗口用的是弱随机源, 就能顺着同样的算法, 把生成助记词的过程重演出来。&lt;/p&gt;
&lt;p&gt;这个区别很重要: 不是&amp;quot;泄露&amp;quot;, 是&amp;quot;可推导&amp;quot;。任何&amp;quot;别告诉别人助记词&amp;quot;的提醒, 在这种情况下都失效了。&lt;/p&gt;
&lt;h2 id="passphrase-一定要加"&gt;Passphrase 一定要加&lt;/h2&gt;
&lt;p&gt;那有没有一种东西, 即使助记词被完整推导出来, 依然能拦住攻击者?&lt;/p&gt;
&lt;p&gt;有, 就是 &lt;strong&gt;BIP-39 Passphrase&lt;/strong&gt;(助记词口令, 俗称&amp;quot;第 13 词&amp;quot;, 24 词助记词则是第 25 词)。它是一串自己定义的字符串, 和助记词一起参与密钥推导:&lt;/p&gt;


&lt;div class="mermaid-wrap"&gt;
&lt;pre class="mermaid" role="img" aria-label="Mermaid diagram"&gt;flowchart TB
 A[助记词 12/24 词] --&amp;gt; C{PBKDF2 2048 轮&amp;lt;br/&amp;gt;HMAC-SHA512}
 B[Passphrase 口令] --&amp;gt; C
 C --&amp;gt; D[512-bit Seed]
 D --&amp;gt; E[私钥 / 地址]&lt;/pre&gt;
&lt;/div&gt;


&lt;script type="module"&gt;
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
mermaid.initialize({
 startOnLoad: false,
 theme: 'base',
 themeVariables: {
 background: '#1d1f21',
 primaryColor: '#282c34',
 primaryBorderColor: '#3e4147',
 primaryTextColor: '#c9cacc',
 lineColor: '#5a5f66',
 edgeLabelBackground: '#1d1f21'
 }
});
mermaid.run({ querySelector: 'pre.mermaid' });
&lt;/script&gt;


&lt;p&gt;关键在于: 助记词和 Passphrase 是&lt;strong&gt;两份互相独立的信息&lt;/strong&gt;。这次攻击里, 攻击者手里有的是&amp;quot;重新计算出来的助记词&amp;quot;, 而不是口令。不知道 Passphrase, 推导不出私钥。&lt;/p&gt;</description></item></channel></rss>