数字签名
为何要验证数字签名
您从我们服务器下载的VeraCrypt安装包可能已被攻击者创建或修改。例如,攻击者可能利用我们使用的服务器软件中的漏洞,篡改存储在服务器上的安装包,或者在传输过程中篡改任何文件。
因此,您应始终验证从任何来源下载或以其他方式获取的每个VeraCrypt发行包的完整性和真实性。换句话说,您应始终确保该文件是由我们创建的,且未被攻击者篡改。验证文件所谓的数字签名是实现这一目的的一种方法。
我们使用的数字签名类型
我们目前使用两种类型的数字签名:
- PGP签名(适用于所有受支持系统的所有二进制和源代码包)。
- X.509签名(适用于Windows的二进制包)。
X.509签名的优点
与PGP签名相比,X.509签名具有以下优点:
- 更容易验证签署文件的密钥确实是我们的(而非攻击者的)。
- 验证X.509签名无需下载或安装任何额外软件(见下文)。
- 无需下载和导入我们的公钥(它已嵌入到签名文件中)。
- 无需下载任何单独的签名文件(签名已嵌入到签名文件中)。
PGP签名的优点
与X.509签名相比,PGP签名具有以下优点:
- 它们不依赖任何证书颁发机构(证书颁发机构可能会被对手渗透或控制,或者出于其他原因不可信)。
如何验证X.509签名
请注意,目前X.509签名仅适用于Windows的VeraCrypt自解压安装包。每个此类文件中都嵌入了一个X.509数字签名以及由公共证书颁发机构颁发的VeraCrypt基金会数字证书。要验证Windows自解压安装包的完整性和真实性,请遵循以下步骤:
- 下载VeraCrypt自解压安装包。
- 在Windows资源管理器中,右键单击下载的文件(‘VeraCrypt Setup.exe’),然后从上下文菜单中选择‘属性’。
- 在属性对话框窗口中,选择‘数字签名’选项卡。
- 在‘数字签名’选项卡的‘签名列表’中,双击显示“IDRIX”或
“IDRIX SARL”的行。
- 此时应会出现‘数字签名详细信息’对话框窗口。如果您在对话框窗口顶部看到以下句子,则表示包的完整性和真实性已成功验证:
“此数字签名有效。”
如果您没有看到上述句子,则该文件很可能已损坏。注意:在某些过时的Windows版本中,缺少一些必要的证书,这会导致签名验证失败。
如何验证PGP签名
要验证PGP签名,请遵循以下步骤:
- 安装任何支持PGP签名的公钥加密软件。对于Windows,您可以下载 Gpg4win。有关更多信息,您可以访问 https://www.gnupg.org/。
- 创建一个私钥(有关如何操作的信息,请参阅公钥加密软件的文档)。
- 从AM Crypto网站(https://amcrypto.jp/VeraCrypt/VeraCrypt_PGP_public_key.asc)或受信任的公钥库(ID=0x680D16DE)下载我们的PGP公钥,并将下载的密钥导入到您的密钥环中(有关如何操作的信息,请参阅公钥加密软件的文档)。请检查其指纹是否为
5069A233D55A0EEB174A5FC3821ACD02680D16DE。
- 用您的私钥签署导入的密钥,以将其标记为受信任(有关如何操作的信息,请参阅公钥加密软件的文档)。
注意:如果您跳过此步骤并尝试验证我们的任何PGP签名,您将收到一条错误消息,指出签名密钥无效。
- 通过下载您要验证的文件的PGP签名(在 下载页面)来下载数字签名。
- 验证下载的签名(有关如何操作的信息,请参阅公钥加密软件的文档)。
在Linux下,可以使用以下命令完成这些步骤:
- 检查公钥的指纹是否为 5069A233D55A0EEB174A5FC3821ACD02680D16DE:gpg --import --import-options show-only VeraCrypt_PGP_public_key.asc(对于较旧的gpg版本,请改为输入:
gpg --with-fingerprint VeraCrypt_PGP_public_key.asc)
- 如果指纹符合预期,则导入公钥: gpg --import VeraCrypt_PGP_public_key.asc
- 验证Linux安装存档的签名(此处为1.23版本):
gpg --verify veracrypt-1.23-setup.tar.bz2.sig veracrypt-1.23-setup.tar.bz2