首页 > 解决方案 > 已签名 RPM 的数字签名存储在哪里?

问题描述

在验证任何文件的数字签名(在这种情况下为 rpm)时,签名文件与其签名的文件/消息是分开的。

当我们这样做时, $ rpm --checksig /path/to/mySignedPkg.rpm

它必须使用已配置存储库的公共 RPM-GPG-KEY 验证 mySignedPkg.rpm 的数字签名。

我的问题是,已签名 RPM 的数字签名在哪里?

如果我使用 $ rpm2cpio /path/to/mySignedPkg.rpm | cpio -idmv

它不显示数字签名文件。

标签: digital-signaturerpmyumsigned

解决方案


摘自 Redhat 安全博客

rpm 文件格式是二进制格式,大致由 4 个部分组成:

  • 遗留的线索是一个 96 字节的标题,其中包含“幻数”(用于识别文件类型)和其他数据;
  • 可选的签名部分;
  • 一个标头,它是一个索引,包含有关 RPM 包文件的信息;和
  • 要写入文件系统的实际文件的 cpio 存档。

因此,签名似乎是标头的一部分,这就是为什么您无法直接提取任何类型的 sig 文件的原因。

RPM 网站上的这个页面对标头格式提供了更具体的详细信息 - 请参阅有关Analyzing the Signature Area详细信息的部分。


推荐阅读