来自Yum或Apt仓库的RPM软件包将会自动检查公钥。如果单独下载了一个RPM软件包,可以手工校验这个软件包。如果有软件提供者的公钥,可以使用rpm目录带上-K选项校验任何RPM软件包。下面的例子校验了xcdroast软件包的有效性:

# rpm -K xcdroast-0.98alpha9-1.i386.rpm

xcdroast-0.98alpha9-1.i386.rpm: md5 OK

许多压缩档案格式的软件包,.tar.gz或.tar.bz2,会在.sig为后缀的单独文件中提供签名。为了检查它们的签名,可以使用gpg命令带上–verify选项。例如,最新的Sendmail软件包以压缩档案格式的形式.tar.gz发布。它的数字签名放在单独的.sig文件中。首先要从Sendmail的网站下载并安装Sendmail软件的公钥(公钥的名称中可能会包含年份)。

# gpg –import sendmail2006.asc

然后对刚导入的Sendmail公钥进行签名。在这个例子中,电子邮件地址被用作公钥名称。

gpg –sign-key sendmail@Sendmail.ORG

还可通过校验密钥的指纹来做附加的验证。

接着下载压缩档案和数字签名文件。对于压缩档案(.tar.gz),可以使用以.gz.sig为后缀的.sig文件;对于未压缩档案,使用.tar.sig。然后,利用gpg命令带上-verify选项,使用.sig文件中数字签名验证软件压缩档案的真实性和完整性。

# gpg –verify sendmail.8.13.8.tar.gz.sig

sendmail.8.13.8.tar.gz

gpg: Signature made Tue 08 Aug 2006 10:24:45

PM PDT using RSA key ID AF959625

gpg: Good signature from ‘Sendmail Signing

Key/2006

也可以仅指定签名文件,gpg将会自动搜索和选择后缀名不为.sig和.asc的同名文件。

# gpg –verify sendmail.8.12.0.tar.sig

以后,当从使用这个公钥的Sendmail站点下载任何软件,只需执行–verify操作。不过,要记住,来自相同站点的不同软件包可能使用不同的公钥。必须确保已经导入了用来验证软件的适当公钥并对它进行签名。

作者 龙飞