主页 > imtoken官网电话 > 比特币迎来新技术更新,核心开发者教你如何验证客户端

比特币迎来新技术更新,核心开发者教你如何验证客户端

imtoken官网电话 2024-01-26 05:10:24

今天,比特币迎来了新的发展。核心开发人员 Luke Dashjr 宣布发布 Knots 0.19.1.knots20200304 客户端。

比特币迎来新技术更新,Core开发者教你如何验证客户端

(注:Bitcoin Knots 是 Bitcoin Core 的衍生客户端,有一些 Bitcoin Core 尚未实现的功能,代码库主要由 Luke Dashjr 维护)

关于新的客户端更新,您可以在这里找到:

摆在我们面前的问题是比特币会过期吗,如何验证自己下载的客户端是安全的,没有被恶意篡改?当然,确保从受信任的网站下载是必须的,那么我们如何确保受信任的网站没有被攻击者篡改呢?

这也是本文的内容,原作者是Luke Dashjr。

这是翻译:

预计

以下说明要求您了解文件在计算机上的存储方式(理论上,如果您知道目录/文件夹是什么),以及如何使用命令行运行程序和访问文件。如果您不了解这些概念,请从指南开始。

请注意,本文中的说明只会帮助您安全地安装比特币客户端,不会帮助您保护您的硬件、操作系统或避免安装其他引入恶意软件的应用程序。通常,如果您计算机的其余部分受到威胁,那么无论您如何验证已安装的客户端,您的节点也会受到威胁。

如果你想要一个完全安全的节点,除了本文提到的说明外,你至少需要避免后门硬件(包括任何由树莓派、英特尔或 AMD 制造的)并且只运行基于 Linux 的可信操作系统,只安装或使用您的操作系统供应商提供的软件,或使用 GnuPG 以其他方式验证过的软件(如本文所述),并确保将软件更新到最新的错误修复版本。

比特币会过期吗

即使您无法解决这些问题并因此获得最大的安全性,但这并不意味着您应该放弃:无论如何验证您的比特币节点软件仍然是一个好主意。

概述

确保您安装的比特币客户端安全的三个重要步骤: 验证 OpenPGP 密钥;验证签名;验证文件本身;每个步骤都取决于前面步骤的成功,虽然我们可以跳过一个步骤,但重要的是要了解,除非所有步骤都成功,否则我们实际上并没有验证安装。

请注意,我将在 ?Bitcoin?Knots v0.19.0.1.knots20200104 客户端上验证我自己的签名,例如 ppc64le Linux,并验证其他人的签名或其他文件,您需要更改命令行以使用该指纹或文件名。

步骤 0:安装加密软件 GNU Privacy Guard (GPG)

在开始之前,您需要确保已安装 GNU Privacy Guard (GPG) 工具,该工具是文件加密验证所必需的。

如果您运行的是基于 Linux 的系统,该系统通常从操作系统供应商处安装(最近通常默认安装),您可以通过运行 gpg --version 进行检查。如果没有,请尝试使用以下命令之一进行安装(如果失败,请转到下一个):

 apt-get install gnupg dnf install gnupg2 yum install gnupg2 emerge app-crypt/gnupg pacman -S gnupg apk add gnupg 

如果你在 Windows 或 macOS 上不走运,你可以从官方网站下载 GnuPG,但我不知道有什么安全方法可以验证此类下载,当然,它们确实提供签名,但是鸡和问题来了鸡蛋:在您安装好副本之前,您无法验证这些签名!

比特币会过期吗

第 1 步:验证 OpenPGP 密钥

这一步可以说是验证过程中最难的部分:您需要确认您实际使用的密钥是由您信任的人颁发的正确密钥。如果你不小心,你可能会得到一个假的“Luke Dashjr”钥匙!

每个 OpenPGP 密钥都有一个“指纹”,它是 40 个十六进制字符(数字 0-9 和 aF),有时带有空格以便于阅读。如果您确保您使用的密钥指纹与可信签名者的指纹相匹配,那么您就知道您拥有正确的密钥。获取密钥或指纹验证密钥最安全的方法是亲自见面并确认密钥“指纹”。几乎没有人记得他们的密钥指纹,因此我们可能不得不在自己的笔记本电脑或手机上查找它,并且偶尔(通常在会议上)可能会有一个“密钥签名者”,其中一组人确认其他每个参与者要么阅读他们亲自或手动确认每个人所看到或听到的内容都是正确的。如果您有机会参加这样的会议,这是一次验证多个密钥的好方法。

如果您不感兴趣或没有机会亲自见面,理想情况下应该从多个来源验证密钥。有时,会议会发布演示视频,其中可能会在幻灯片上显示关键指纹。当然,由于“深度造假”等新技术的存在,需要注意的是,视频中的幻灯片很容易被操纵。

开发人员通常在他们的网站上发布他们的密钥或指纹,也许还有其他一些途径(例如,我的密钥或指纹,在个人网站、bitcoinknots.org、bitcoin.org 和 GitHub 上)。

如果您安装了您信任的软件的副本,有时它会包含验证更新所需的密钥(目前比特币核心仅包含源代码)。检查密钥文件的指纹 要检查密钥文件的指纹,可以使用以下命令:

 gpg --import-options show-only --import --with-fingerprint luke-jr.asc 

这会输出很多关于密钥文件的信息,相关信息在最上面:

 pub rsa8192 2012-03-23 [SC] [expires: 2020-06-09] E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F 

比特币会过期吗

在此示例中,E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F 是我的密钥指纹。

注意:如果 GPG 说密钥已过期,那可能没关系!在第 2 步中,您将更新到同一密钥的最新版本,这通常会延长到期日期。导入已验证的密钥 无论您如何验证您的密钥,都应确保记住您使用的是哪个密钥,以便将来的更新可以验证是否使用了相同的密钥。即使您跳过验证密钥步骤(这不安全),至少这将确保您的更新具有相同的签名者。

当您确定您拥有正确的密钥时,您可以像这样导入它(将 luke-jr.asc 替换为包含所需密钥的文件名):

 gpg --import < luke-jr.asc 

或者如果你只有指纹,像这样(输入你要使用的密钥指纹!):

 gpg --keyserver hkp://keyserver.ubuntu.com --recv-key E463A93F5F3117EEDE6C7316BD02942421F4889F 

第 2 步:验证签名

既然您知道使用什么密钥进行验证,下一步就是检查签名是否有效。

在继续此步骤之前,您必须确保您的签名者密钥副本是最新的。如果不这样做,您可能会收到密钥已过期的消息。运行(使用您想要的指纹):

比特币会过期吗

 gpg --keyserver hkp://keyserver.ubuntu.com --refresh-key E463A93F5F3117EEDE6C7316BD02942421F4889F 

接下来,(除了您正在检查的程序文件)您将需要两个文件:一个包含文件指纹列表的“.assert”文件,以及一个包含签名的“.assert.sig”文件列表。这是因为我们所做的不是对程序文件本身进行签名,而是对所有文件进行指纹识别,然后对列表进行签名。因此,您需要这两个文件。比特币核心的“断言”文件对发布在这里:比特币结的“断言”文件对发布在此处:请注意,每个签名者都有一个单独的文件对。如果您要验证多个人签署了您的文件(您应该这样做),您需要检查每一对文件。此外,您需要确保获得要验证的版本的文件!

在列表中找到所需文件后,单击链接以在浏览器中打开文件比特币会过期吗,然后右键单击“原始”或“下载”按钮并选择“将链接另存为”。

一旦你有了这两个“assert”文件,你可以通过运行检查签名(将文件名调整为特定的.assert.sig)

 gpg --verify bitcoin-core-linux-0.19-build.assert.sig 

如果此步骤成功,您将获得以下结果:

 gpg: Signature made Sun 19 Jan 2020 03:47:15 AM UTC gpg: using RSA key E463A93F5F3117EEDE6C7316BD02942421F4889F gpg: Good signature from “Luke Dashjr ” [ultimate] 

请注意,密钥的指纹以粗体显示。此指纹必须与您在步骤 1 中验证的密钥匹配,否则可能已被其他人签名!关于“好的签名”的部分也很重要,而姓名和电子邮件地址则不是,如果指纹错误,两者都可能是假的。

假设一切顺利,您现在知道“.assert”文件由相关密钥的控制器保护,并且可以继续验证您的实际程序文件是否列在“.assert”文件中。

比特币会过期吗

第 3 步:验证文件本身

要对程序文件进行身份验证,必须首先对其进行加密散列(基本上是提取其指纹)。

这是通过一个简单的命令完成的(小心替换您正在验证的实际文件名!):

 Linux: sha256sum bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz Windows: certUtil -hashfile bitcoin-0.19.0.1.knots20200104-win64.zip SHA256 macOS: shasum -a 256 bitcoin-0.19.0.1.knots20200104-osx-unsigned.dmg 

这将输出如下内容:

 d370692590c4546ac0de250da91c6c288d9ee5252f1a4b857a5b80c4e3d81149 bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz 

这是文件内容的指纹,后跟指定的文件名。

现在,在任何纯文本编辑器/查看器中打开“.assert”文件并查找该指纹​​。它应该在顶部的“out_manifest”部分,如果您到达“in_manifest”或“base_manifests”,那么您已经走得太远了。

如果您在“.assert”文件中找到它,那么您已验证您拥有的文件与签名者担保的文件相同(您将在指纹右侧的“.assert”文件中看到他们的文件名,这可能与您的相同)。

如果“.assert”文件中缺少它,则可能意味着您使用了错误的“.assert”文件,或者您的文件不匹配(在这种情况下,您将查看预期的文件名到另一个指纹)。如果文件已列出但指纹不同,请不要打开文件,而是保存文件(我们可能会要求您提供副本)并联系受影响项目的安全团队。

————