本文介绍了 SeedSigner,一种DIY的硬件签名器,用户可以通过自行采购硬件并组装来制作。文章详细说明了SeedSigner的特性、缺点、所需物料、组装步骤、软件下载和验证过程,以及操作界面和使用提醒,适合对比特币安全存储有一定了解,且具备动手能力的用户。
作者:Anony
你所在的地方难以买到硬件签名器吗?或者,你担心硬件签名器里面有后门(或存在供应链攻击)吗?那么,你可以试试 SeedSigner。
SeedSigner 是一种 DIY 的硬件,也就是说,你可以通过自己采购硬件并组装,来制作一个硬件签名器。而 SeedSigner 的开发者所提供的,就是驱动这些硬件的操作系统。他们整个系统的目标是,尽可能降低比特币用户搭建多签名保管装置的成本和复杂性。怎么样,是不是很酷?
只需自己从市面上购买通用的硬件,就可以组装出硬件签名器,这确实非常吸引人。但是,丑话说在前头,从普通用户的角度看,SeedSigner 的体验有许多不便之处:
如果这些缺点你都能接受,那么,你就可以享受 SeedSigner 的这些特性了:
那么,让我们来看看如何组装一台 SeedSigner 吧。
组装一个 SeedSigner,你需要准备以下硬件:
总的来说,如果不购置外壳,大约 220 元就足以买到所需的所有硬件。如果购买外壳,则应该再加 50 元预算。
组装步骤:
SeedSigner 网站也提供了许多这样的 参考视频。
接下来我们要下载 SeedSigner 操作系统软件,并验证这些软件是相关开发者发布的,然后将它写入 TF 卡中。
首先,在 SeedSigner 的 发布页面,根据你的树莓派主板类型,选择相应的镜像。同时还应该下载哈希摘要以及对哈希值的签名。
假如你将使用 Zero 主板,那么你需要下载这些文件,并将它们都放在同一个文件夹中:
seedsigner_os.0.6.0.pi0.img
seedsigner.0.6.0.sha256
seedsigner.0.6.0.sha256.sig
这个过程需要用到软件 GPG,它的作用是验证对某个文件的数字签名。许多 Linux 系统都已经预装了GPG ;如果你是 Windows 系统,你可以在这里 下载。
我们需要在存储上述三个文件的文件夹中运行 PowerShell(或者 “Windows Terminal”);运行方法是按住键盘的 Shift 键,然后点击鼠标右键(Windows 11 可以直接右键打开)。打开 PowerShell 之后,运行以下三条命令(如果你的文件名不一样,则需要相应更改):
gpg --fetch-keys https://keybase.io/seedsigner/pgp_keys.asc
gpg --verify .\seedsigner.0.6.0.sha256.sig
Get-FileHash .\seedsigner_os.0.6.0.pi0.img
第一条命令是为了从这个网站加载 SeedSigner 开发者的公钥。第二条则是使用开发者的公钥来验证 .sig
后缀的文件是否包含了对 seedsigner.0.6.0.sha256
的有效签名。如果得到了有效的签名,你将会看到这样的信息:
gpg: using RSA key 46739B74B56AD88F14B0882EC7EF709007260119
gpg: Good signature from "seedsigner <btc.hardware.solutions@gmail.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 4673 9B74 B56A D88F 14B0 882E C7EF 7090 0726 0119
这里最关键的信息是最后一行:“公钥指纹”。将这个公钥指纹与 keybase.io 网站 上的公钥指纹相比对,如果一致,则说明 .sig
中的签名确实来自 SeedSigner 的开发者。
最后一步是得到 .img
(SeedSigner 软件镜像)的哈希值。你会看到这样的信息:
Algorithm Hash Path
------- -------------- ------
SHA256 750F406C133D17994EB58544AAD82B20F1478C8663AF303E45B2D9C49C4E9825 *********
使用 “记事本” 打开 .sha256
文件,看看这个哈希值是否在其中。如果在其中,则说明验证通过 —— 即,我们所下载的 .img
文件,确实是 SeedSigner 开发者发布的、没有遭到篡改,因为 SeedSigner 开发者签名了一个保存了哈希值的文件,而 .img
文件的哈希值恰在其中。如果遭到了别人的篡改,它会产生一个完全不同的哈希值,如果攻击者连 .sha256
也一并篡改,则在签名验证那一步就会传出错误 —— 要么 .sig
是一个无效的签名,要么它并不来自 SeedSigner 开发者。
接下来我们要将 .img
(SeedSigner 软件镜像)烧录到 TF 卡中。首先,我们需要将 TF 卡插入读卡器,并将读卡器连接电脑。其次,我们需要借助软件,比如 Raspberry Pi Imager 。
安装 Pi Imager 后打开,主界面上从左到右有三个选项:
.img
文件。烧录好 TF 卡之后,就可以将这个 TF 卡插入树莓派主板了。给树莓派供电,等待 40 秒后你会看到带有 SeedSigner 图标的开机界面。
在 SeedSigner 的主界面,你可以看到四个方块,分别是 “Scan(扫码)”、“Seeds(种子词)”、“Tools(工具)” 和 “Settings(设置)”。它们的概要功能如下:
所以,使用 SeedSigner 这样的Air-gapped 设备的方式是:
- 选择一款合适的软件钱包。比如 Sparrow 钱包。
- 让 SeedSigner 显示种子词的公钥(XPUB),并在软件钱包中使用摄像头扫描 SeedSigner 的屏幕,获得公钥。得到了公钥之后,就意味着你可以在软件钱包中生成收款地址了(也意味着你可以将这个公钥用在多签名保管装置中了)。
- 当你需要发起交易的时候,在软件钱包中生成交易,并显示为二维码,使用导入了相关种子词的 SeedSigner 扫描这个二维码,从而读取 PSBT。在 SeedSigner 屏幕上验证交易的信息与软件钱包上显示的一致之后,生成签名;在软件钱包上使用摄像头扫描 SeedSigner 的屏幕读取签名,然后你就得到了一笔完整的交易,可以广播出去了!
虽然 Air-gap 对一些用户来说比较陌生,但实际上,只要你习惯了,你会发现它的体验非常好,你不需要关心连接,只需扫码就可以了,而且也安全得多。SeedSigner 就提供了这样的体验。你可以用摄像头导入种子词、扫码需要签名的比特币交易,用屏幕传出签名,这一切都非常流畅。这既有 SeedSigner 开发者的功劳,也离不开比特币社区日积月累的工作(PSBT 格式、二维码标准)。
对于有一定动手能力的朋友来说,SeedSigner 是值得尝试的选择。
(完)
- 本文转载自: btcstudy.org/2023/08/06/... , 如有侵权请联系管理员删除。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!