digital-signature - 已签名 RPM 的数字签名存储在哪里?
问题描述
在验证任何文件的数字签名(在这种情况下为 rpm)时,签名文件与其签名的文件/消息是分开的。
当我们这样做时,
$ rpm --checksig /path/to/mySignedPkg.rpm
它必须使用已配置存储库的公共 RPM-GPG-KEY 验证 mySignedPkg.rpm 的数字签名。
我的问题是,已签名 RPM 的数字签名在哪里?
如果我使用
$ rpm2cpio /path/to/mySignedPkg.rpm | cpio -idmv
它不显示数字签名文件。
解决方案
摘自 Redhat 安全博客
rpm 文件格式是二进制格式,大致由 4 个部分组成:
- 遗留的线索是一个 96 字节的标题,其中包含“幻数”(用于识别文件类型)和其他数据;
- 可选的签名部分;
- 一个标头,它是一个索引,包含有关 RPM 包文件的信息;和
- 要写入文件系统的实际文件的 cpio 存档。
因此,签名似乎是标头的一部分,这就是为什么您无法直接提取任何类型的 sig 文件的原因。
RPM 网站上的这个页面对标头格式提供了更具体的详细信息 - 请参阅有关Analyzing the Signature Area
详细信息的部分。