2017年度比特币在分叉的时候,产生了很多分叉币,要获得这些分叉币就必须使用这些分叉币的钱包。有很多黑客使用恶意软件钱包骗取私钥从而窃取比特币。因此对钱包软件的真伪校验是非常重要的。下面是我为了检验钱包真伪时看到的一篇文章,介绍如何使用pgp加密签名方式检验比特币钱包的真伪,很有帮助。(原文作者:Rich Apodaca)
译文:
Electrum是比特币最早,最知名的钱包之一。运行此软件的用户将他们的私钥交付给这个软件。为降低运行恶意软件的风险,用户可以在使用之前验证下载的Electrum真实性。本教程介绍如何在Windows上执行此操作。在OSX上验证Electrum的程序也是可行的。
恶意软件的威胁
处理您私钥的任何软件都可以窃取它们或签署您从未授权的交易。这使得比特币钱包成为恶意软件作者特别有利可图的目标。他们首先篡改一些开源软件的代码。然后他们将软件分发,它们看起来与真实版本一样。当不知情的用户输入私钥或种子时,钱包会窃取资金。这个损失是不可挽回的,可能会改变生活。
这不仅仅是存在理论上的攻击。例如,2017年,Reddit用户报告说,网络钓鱼站点通过electrum软件的伪造副本部署恶意软件,导致丢失5比特币。这个网络钓鱼网站排在Google搜索的广告链接的第一位。
密码学的公钥可以拯救你
许多比特币用户都熟悉数字签名的观念。同样的观念可以应用于软件下载。开发人员使用私钥对下载的软件签名。用户使用开发人员的公钥验证下载的软件。改变了一个比特的伪造软件也可以被这个系统检测出来,尝试应用无效签名的开发人员也可以被检测到。签署二进制文件的标准方法称为Pretty Good Privacy(PGP)。适用于所有操作系统。
下载并安装Gpg4win
Windows上流行的PGP方法是Gpg4win。首先从主页面下载安装程序。
我们立即面临两难:我们怎么知道我们的Gpg4win副本是真实的?我们无法验证签名,因为如果我们能够这样做,我们就不需要Gpg4win。
幸运的是,我们可以验证安装程序的哈希值。将哈希值视为任何文件所具备的不可变唯一标识符。
可以使用CertUtil实用程序在Windows上计算文件的哈希值,该实用程序从命令提示符终端运行。命令提示符是一个可以发出基于文本命令的终端界面。要进入命令提示符,请在Windows任务栏搜索中键入“ Command Prompt”,然后单击第一个选项。在提示符(“>”)后,您将看到一个带有闪烁光标的空窗口。在此提示后,以文本形式输入命令。
从命令提示符输入以下命令:
CertUtil -hashfile Downloads{filename}
这里{filename}是你下载的安装程序Gpg3win(注:原文这样写,但是应该是Gpg4win)的名称。
例如,在2017年11月,我下载了一个名为的文件gpg4win-3.0.1.exe。因此,我将在命令提示符中输入以下命令以获取SHA1哈希值:
CertUtil -hashfile Downloads\gpg4win-3.0.1.exe
这将返回安装程序的哈希值(6db53bf3a350faceda861a3fd32c15106ce455bf)。然后,我将此值与Gpg4win网站上报告的预期SHA1哈希值进行比较。如果两个值匹配,我继续安装。否则,我就要找出哈希值不匹配的原因。
请注意,能够更改Gpg4win网站的攻击者可能能够为您提供与安装程序的假副本匹配的哈希值。这是使用哈希值来验证下载的限制之一。
下载并验证安装程序的哈希值后,双击它。保留所有默认值。安装向导应该能指导你完成安装。
导入开发人员公钥
Gpg4win的签名实用程序称为Kleopatra,它应在完成安装向导后启动。Kleopatra提供了一个欢迎屏幕,包括两个选项:创建新密钥对和导入。验证Electrum安装程序的签名,这两个都不是必需的。相反,我们将导入Electrum首席开发人员的公钥。
Thomas Voegtlin是Electrum首席开发人员。Electrum网站报告其密钥ID为0x2bd5824b7f9470e6。我们可以通过在 MIT key server上查找相同的密钥来确认这一点。使用此值在Kleopatra中查找Voegtlin的公钥。首先,单击“ Lookup on Server(在服务器上查找)”按钮并输入开发人员密钥ID。单击“ Search(搜索)”。
Kleopatra会回复Thomas Voegtlin的公钥。单击它,然后单击“ Import (导入)”按钮。
Kleopatra将提供一个对话框,询问您是否要对密钥进行认证。我们已经执行了其中一个选项(在受信任的网站上确认),因此请单击“否”按钮。
Thomas Voegtlin的公钥的条目应出现在Klopatra的主窗口中。现在可以验证任何Electrum安装程序的签名。
下载Electrum
浏览到 Electrum download page(Electrum下载页面)。Windows条目旁边有两个链接。单击标题为“Windows Installer”的第一个以下载Electrum安装程序。将其保存到你的下载文件夹。
单击标题为“ signature(签名)”的第二个链接。此链接将您带到安装程序签名的纯文本页面。按ctrl-s保存。将签名文件保存到你下载文件夹。保留默认文件名,但从剪切掉末尾.txt的扩展名。确保在“ Save as type(另存为类型)”下选择“ All Files(所有文件)”选项。
您应该在“下载”文件夹中看到两个文件:electrum-{version}-setup.exe以及您下载的Electrum版本electrum-{version}-setup.exe.asc.asc。在这里{version}是你下载electrum程序的版本。前一个文件是安装程序本身,后一个是签名文件。签名文件应使用自定义锁定图标。如果不是,则可能已将签名保存为.txt文件。在这种情况下,删除签名文件并重新保存,确保删除.txt扩展名并使用“ All Files(所有文件)”选项。
要验证安装程序的签名,请双击以.asc结尾的签名文件。Kleopatra应该出现一个标题为“Verify Files”的窗口,顶部有一个绿色条。在此之下,应显示'electrum- {version} -setup.exe.asc'和“Verified'electrum- {version} -setup.exe'。另外附有粗体文本“ The data could not be verified(数据无法验证)。”后一文本表明您没有通过签名来信任开发人员公钥。下一节将介绍如何修正这个问题。
请注意,您看到的确切文本可能会在以后的Kleopatra版本中发生变化。在我使用的版本(3.0.1)和后续版本中,因为密钥没有被签署,其有效签名提供的消息是非常令人困惑的。最佳解决方案是遵循下一节中概述的步骤。第二个最佳解决方案是知道无效的签名验证是什么样的。
如果签名验证失败,您将看到一个屏幕,其中包含红色背景上的粗体文本“无效签名”。
选项:签署开发人员密钥
此时,您将证明Electrum的首席开发人员已对您下载的安装程序进行了数字签名。但是,您可以做进一步的工作,签署Thomas Voegtlin的公钥。这样做会在将来提醒您,您确信此密钥确实属于Electrum的主要开发人员。如果您已经独立验证密钥确实属于Thomas Voegtlin,则只需执行此步骤。
首先为自己创建一个密钥对,这是我们在Kleopatra首次启动时跳过的步骤。从“文件”菜单中选择“ New Key Pair(新建密钥对)”选项。Kleopatra提供了一个对话框,要求您选择一种格式。单击“ create a personal OpenPGP key pair(创建个人OpenPGP密钥对)。”如果需要,请输入第一个和自己的名称以及电子邮件地址,然后单击“下一步”。
系统会要求您查看输入的信息。完成后,单击“ Create(创建)”。你会被要求提供密码。在签署Electrum开发人员的公钥之前需要它。输入您的密码,重复一次,然后单击“确定”。Keopatra提供了一个窗口,通知您密钥对已创建。单击完成。
您的个人密钥出现在Kleopatra的主窗口中。您现在可以使用它来签署Electrum开发人员的公钥。单击Thomas Voegtlin的公钥,然后单击窗口顶部中心的“验证”按钮。检查所有三个ID,然后单击“ I have verified the fingerprint(我已验证指纹)”框,然后单击“下一步”。
在第二步中,系统会询问您是为每个人验证密钥还是仅为自己验证密钥(默认)。保留默认值,然后单击Cerify(确认)。你会要求输入密码。输入并单击“确定”。您将看到一个窗口,其中汇总了您对Thomas Voegtlin公钥的认证。单击完成。
Kleopatra现在报告Thomas Voegtlin的公钥已经过认证。通过在User-IDs列表可以查看。
现在,当您验证由Electrum的首席开发人员签署的任何文档时,Kleopatra会通知您,您信任该签名。绿色背景和带有“ validity is fully trusted(有效性完全信任)”的描述表示您的信任。
结论
签名验证应该用于任何用于要持有大笔金钱的钱包。鉴于今天持有备用的钱包可能会成为明天持有大笔款项的钱包,签名验证应该是任何Electrum钱包安装的第一步。本指南提供了Windows上PGP签名验证的分步过程。一旦设置,它可用于验证任何未来Electrum版本的签名,以及其他比特币软件。
回顾一下,这些步骤是:
-
下载Gpg4win。
-
验证Gpg4win。
-
导入Electrum的首席开发人员的公钥。
-
下载Electrum安装程序和签名。
-
验证Electrum安装程序签名。
网友评论