如何使用Gnu隐私保护密钥来签署Linux RPM文件?

日期: 2011-05-22 作者:Sander van Vugt翻译:Dan 来源:TechTarget中国 英文

RPM是在Red Hat和SUSE上安装和管理软件的标准。像Yum和Zypper这样的元数据包处理软件可以很容易地安装软件包。但是RPM可能有风险,因为其在安装过程中以root权限自动执行脚本。因此要确保你使用的RPM包值得信任。

如果是你自己创建的RPM包,用Gnu隐私保护(GnuPG或GPG)密钥来签署它们是一个好主意。   GPG使用公共/私有密钥对来确保机密性。你可以用它们来加密文件或作为确保邮件确实是由列表中的发送者发出的数字签名。它们同样可以用来签署PRM软件包。

  当签署RPM软件包时,该RPM包的创建者需要通过签约步骤。这个签名可以用来核对GPG密钥,这个密钥应该是公开的,安装……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

RPM是在Red HatSUSE上安装和管理软件的标准。像Yum和Zypper这样的元数据包处理软件可以很容易地安装软件包。但是RPM可能有风险,因为其在安装过程中以root权限自动执行脚本。因此要确保你使用的RPM包值得信任。如果是你自己创建的RPM包,用Gnu隐私保护(GnuPG或GPG)密钥来签署它们是一个好主意。

  GPG使用公共/私有密钥对来确保机密性。你可以用它们来加密文件或作为确保邮件确实是由列表中的发送者发出的数字签名。它们同样可以用来签署PRM软件包。

  当签署RPM软件包时,该RPM包的创建者需要通过签约步骤。这个签名可以用来核对GPG密钥,这个密钥应该是公开的,安装这个软件包的用户也应该可以使用它。如果这个签名匹配此公开的GPG密钥,那么下载这个软件包的用户得到一个保证:这个软件包是由同其捆绑在一起的GPG密钥签名过的。这个程序很方便,但是它不提供100%的保证。如果提供软件包的源头被黑客攻破,那么RPM软件包和密钥都可能是伪造的。签名的软件包确实增强了软件包的安全性,因为黑客需要在提供伪造包之前执行两个黑客程序。

  如果你想提供签署过的RPM包,你需要如下的应用程序:

  1.创建一个GPG密钥对。这将生成一个多用途的通用密钥对。要创建它,使用GPG——gen-key命令并指定密钥的属性。在密钥生成前,您还需要生成一些随机数据,所以一定要让磁盘活跃来加快密钥生成的过程。以下是GPG——gen-key命令的结果:

gpg: key 455F7CBF marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
pub   1024R/455F7CBF 2011-04-07
      Key fingerprint = 4C78 4A47 1B84 E769 4ADD  C43D 31DA C76F 455F 7CBF
uid                  Sander van Vugt <
mail@xxxxxxxxxxxxx.nl>
sub   1024R/68D74CDD 2011-04-07

  2.现在你有了密钥对,你需要密钥的ID。使用密钥ID,你需要创建一个密钥文件。密钥ID是你在GPG的命令输出行pub中看到的。在上面的例子中,密钥的ID是455F7CBF。下面的命令将在当前用户的home目录创建一个可以用来签署键值的文件:

gpg -a -o ~/RPM-GPG-KEY-test --export 455F7CBF

  3.接下来,在同一用户的主目录,你必须创建一个具有以下内容的.rpmmacros文件:

%_gpg_name 455F7CBF

  4.在这一步,你可以(重新)签署软件包。下面的命令用于签署刚刚在RPM创建的目录中创建的RPM包:

rpm --resign ~/rpmbuild/RPMS/x86_64/test-1.0-1.fc14.x86_64.rpm

  5.在这一步骤,你有一个签名的软件包和一个用户用于验证所用软件包完整性的密钥。你需要发布签名过的软件包的密钥。不过,首先您需要对其进行测试。下面的两个命令实施了一个本地测试;第一个命令引入了GPG软件包,下一个命令使用yum的本地安装在不启动库的情况下来安装软件包。

rpm --import ~/RPM-GPG-KEY-test
yum localinstall ~/rpmbuild/RPMS/x86_64/test-1.0-1.fc14.x86_64.rpm

相关推荐

  • 手把手教你Solaris 10安装

    Solaris 10 操作系统是行业领先的 UNIX 平台。它不但把Sun的企业级技术与x86平台结合起来,还提供了跟Linux几乎一样的GNU环境。