检查 RPM 软件包及签名

如果你希望检查一个软件包是否损坏或者被窜改,你可以通过 RPM 命令检查软件包的 MD5 校验值。并且在成功导入 GnuPG 密钥之后,还能使用 RPM 命令对 RPM 软件包进行签名验证

检查软件包完整性

如果希望检查一个软件包是否损坏或者被窜改,可以通过以下命令检查软件包的 MD5 校验值 (注意将 <rpm_file> 更改为你希望检查的软件包的路径或名称)

~]# rpm -K --nosignature <rpm_file>
<rpm_file>: rsa sha1 (md5) pgp md5 OK

类似于上下输出结果则表示得到的是正确的(未损坏的、未被篡改的)软件包

如果希望看到详细的输出信息,可以使用 -Kvv 选项代替 -K 选项。

~]# rpm -Kvv --nosignature <rpm_file>

另外,怎样辨别软件包的真正开发者是不是可信的呢 ? 如果软件包使用了开发人员的 GnuPG 密钥进行签名,你就能知道谁是真正的软件开发者了。没有 GPG 签名的软件包不一定不可信,但我们更愿意相信有签名的软件包。

通过使用 GnuPG (Gnu Private Guard) 签名的软件包,能够帮助我们确定软件包的可信赖性。

GnuPG 是一个保证传输安全的工具,它是 PGP 加密技术的免费替代程序。使用 GnuPG,你能够确认你从另处所收到的文档、数据的可信赖性和有效性。GnuPG 还支持 PGP 5.x 版本文件的验证。

GnuPG 在系统安装就被默认安装上了,从而保证你能够马上使用它验证下载来的 RPM 软件包。在进行验证之前,还需要导入正确的密钥。

 

导入密钥

Fedora 的 GnuPG 密钥位于 /etc/pki/rpm-gpg/ 目录。以 Fedora 项目组为例,要验证来自 Fedora 项目组的软件包,需要先导入与你处理器平台相应的密钥。

~]# rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64

输入以下命令,则可以查看所以已经安装的密钥

~]# rpm -qa gpg-pubkey*
gpg-pubkey-57bbccba-4a6f97af
...

输出结果中的内容,即是已经安装在系统中的密钥

使用 rpm -qi <key> 则可以查看指定密钥的详细信息

~]# rpm -qi gpg-pubkey-57bbccba-4a6f97af

 

验证软件包签名

成功导入 GnuPG 密钥之后,使用以下命令即可对 RPM 软件包进行签名验证

~]# rpm -K <rpm_file>

如果不出问题,将会显示类似于 “rsa sha1 (md5) pgp md5 OK” 的信息,这说明软件包的签名已经通过验证,软件包完整并能够安全安装。

更多关于 Fedora 项目的密钥的信息,可参考 http://fedoraproject.org/en/keys