首页 » Linux » CentOS » RPM包签名算法演进,从SHA-1到SHA-256

RPM包签名算法演进,从SHA-1到SHA-256

 

在Linux软件分发过程中,RPM(Red Hat Package Manager)包签名是确保软件包完整性和来源可信性的关键机制。签名算法作为这一安全体系的核心,近年来经历了从SHA-1到SHA-256的重要演进。本文将深入解析这一技术变革的背景、实现方式及其对系统安全的影响。

SHA-1时代(EL7/EL8及更早版本)

SHA-1算法自1995年问世,曾是RPM签名的默认选择,提供160位哈希值,满足早期安全需求,2005年,密码学家发现SHA-1存在理论上的碰撞攻击漏洞,2017年Google公开了SHAttered攻击,证明可以构造两个不同的文件产生相同的SHA-1哈希值。2020年NIST(美国国家标准与技术研究院)正式宣布SHA- 禁止用于数字签名。这意味着,如果RPM包仍然使用SHA-1签名,攻击者可能伪造恶意软件包,绕过完整性检查。

SHA-256时代(EL9及后续版本)

2001年发布SHA-2算法,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。哈希长度从160位(SHA-1)提升到256位,抗碰撞能力显著增强。NIST、IETF等机构推荐SHA-256作为替代方案,新版本的rpm和gpg默认采用SHA-256算法。

查看已签名RPM的哈希算法

方法一:

输出结果Signature字段显示RSA/SHA1就是使用SHA-1算法签名,显示RSA/SHA256就是使用SHA-256算法签名。

方法二:

输出结果查看V4 RSA/SHA1 Signature、V4 RSA/SHA256 Signature。

RPM包签名

在EL9+的版本上执行rpm --addsign package.rpm签名,默认使用SHA-256算法。如果需要在EL8或更早系统上强制使用SHA-256签名,则需要手动指定SHA-256算法,即

指定GPG密钥对RPM包签名

如果当前系统中存在多个密钥,可通过指定的方式进行签名。

先查看显示密钥中的长KeyID

指定不同的GPG密钥签名

附,清除签名方式

RPM签名算法从SHA-1到SHA-256的演进,是Linux安全体系持续完善的典型案例。作为系统管理员或软件开发者,理解这一变化背后的安全逻辑,掌握正确的实现方法,将有助于构建更可靠的软件分发体系。

原文链接:RPM包签名算法演进,从SHA-1到SHA-256,转载请注明来源!

0