Skip to content

信封与归档 ​

Anpio Key 有两种看起来很像、用途完全不同的文件。

信封 keys/<thumbprint>.json归档 <thumbprint>.anpkeyd.json
是什么钥匙在这台机器上的加密存放形式把身份搬到另一台机器的加密文件
用什么解开口令 + device.secret(绑硬件时再加芯片材料)导出时设置的那个独立口令
能直接换机器吗不能只拷这一个文件能,设计上就是可移植的
口令能复用吗能,是日常口令不能,必须单独设置
谁生成keygen 或导入export-seed,默认构建里没有

只拷信封不够 ​

解封信封还需要同一目录下的 device.secret。把 keys/ 单独拷到另一台机器,那边的 device.secret 不一样,信封打不开。

反过来,把整个软件目录连同 device.secret 一起拷走,并且知道口令,就能在另一台机器上解开。所以整套目录和口令一样敏感。

绑了硬件会多一路材料 ​

硬件根把一份解封材料放进芯片,磁盘上没有:

text
KEK = HKDF-SHA256( argon2id(口令) ‖ device.secret ‖ HS, salt )

三样少一样都打不开。细节见硬件根。

归档是什么 ​

归档是“把身份带走”的文件,只有导出时的那个口令保护,不依赖原机器的 device.secret 或硬件。

因此:

  • 归档文件本身可以被离线暴力破解,强度只取决于口令和 Argon2id 成本;
  • 导出时强制要求一个不弱的口令;
  • 导出只执行一次,不提供重试循环;
  • 归档口令必须和日常口令不同。

导入之后要知道两件事 ​

  1. 导入出来的是同一把钥匙,不是副本。 两台机器都能签,对方分不出来。旧机器上那份要处理掉。
  2. 导入会用新机器的 device.secret 和新口令重新封装。 旧归档仍然能用旧归档口令打开,不会因为导入而失效。

两个格式已经冻结 ​

助记词方案 bip39-entropy-v1 和归档格式 anp-keyd-archive v1 一旦发布就不能改。改了不是报错,是用户手里的旧备份打不开。

24 个 BIP-39 词直接编码 32 字节 seed,不使用标准 BIP-39 的 PBKDF2 派生。用其他钱包的 to_seed 可能得到另一把钥匙,而且不会报错。细节见设计说明第三节。

Apache-2.0 许可