在Linux操作系统上安装软件通常都会比较顺利,因为在大多数情况下,我们会使用包管理器(例如apt、dnf或Pacman )从发行版的存储库中安全地安装它。
然而在某些情况下,一个软件包可能不包含在发行版的官方存储库中。在这种情况下,不得不从供应商的网站上面下载。但是如何确定软件包没有被篡改?这是接下来将要探讨的问题。在本文中,小编将简单介绍下如何在Linux系统中验证下载的软件包的PGP签名。
PGP(Pretty Good Privacy)是一种用于加密和签名文件的加密应用程序,大多数软件作者使用PGP程序签署他们的应用程序,例如GPG(GNU Privacy Guard)。
GPG是OpenPGP的密码学基础,它支持数据的安全传输,还可用于验证源码的完整性。以类似的方式,还可以利用GPG来验证下载软件的真实性。
验证下载软件的完整性一般安装一下5个步骤进行。
- 下载软件作者的公钥。
- 检查钥匙的指纹。
- 导入公钥。
- 下载软件的签名文件。
- 验证签名文件。
在本文中,小编将使用点对点文件共享程序Tixati作为示例来进行演示。另外,我也已经从官方下载页面下载了Debian软件包。
1、验证下载Tixati的PGP签名
首先将下载用于验证任何版本的作者公钥,从下图可以看出,Tixati下载页面的底部提供了密钥链接。
在命令行上,使用wget命令获取公钥,命令如下:
$ wget https://www.tixati.com/tixati.key
2、检查公钥的指纹
下载密钥后,下一步是使用gpg命令检查公钥的指纹,如下所示。
$ gpg --show-keys tixati.key
突出显示的输出是公钥的指纹,下图红方框中标出:
3、导入GPG密钥
一旦检查了密钥的公共指纹,下面将导入GPG密钥,这只需要做一次,命令如下:
$ gpg --import tixati.key
4、下载软件签名文件
接下来将下载与Debian软件包相邻的PGP签名文件,如下图所示,签名文件带有.asc
文件扩展名。
$ wget https://download2.tixati.com/download/tixati_2.84-1_amd64.deb.asc
5、验证签名文件
最后,使用签名文件和Debian软件包验证软件的完整性,命令如下:
$ gpg --verify tixati_2.84-1_amd64.deb.asc tixati_2.84-1_amd64.deb
上图中第三行的输出确认签名是软件的作者,在本文中,作者就是Tixati软件公司。另外,上一行提供了与公钥指纹匹配的指纹,这是对软 PGP签名的确认。
总结
以上简单介绍了如何在Linux系统中验证已下载软件包PGP签名的简单方法,验证过程仅供参考。
其实,在租用Linux服务器的时候,如果是下载系统库以外的文件,务必要做好安全性验证。否则如果下载了带有病毒的文件,那么对服务器的安全将会构成极大的威胁!