通过HTTP而非HTTPS下载RPM包是否安全?RPM安全校验机制问询
RPM包安全机制与无HTTPS下载场景的安全性说明
1. RPM包内置GPG签名机制
CentOS官方发布的所有RPM包,在构建完成时就会使用CentOS项目的私钥生成GPG签名,签名直接内嵌在RPM文件的头部信息中,不需要同目录下单独的.asc签名文件供校验。
2. 系统默认信任链校验逻辑
- CentOS系统安装完成后,会默认导入官方公钥,存储路径为
/etc/pki/rpm-gpg/目录下对应版本的公钥文件(例如CentOS 7对应RPM-GPG-KEY-CentOS-7) - 无论你是通过
yum直接安装软件包,还是手动下载RPM包后使用rpm -i/yum localinstall本地安装,默认开启的GPG校验规则都会自动比对RPM内置签名与系统信任的公钥:- 签名匹配则正常安装
- 签名不匹配、包被篡改、无合法签名的包会直接被拦截,无法完成安装
3. HTTP传输的实际风险说明
HTTP无TLS加密的传输方式,只会导致传输过程中第三方可以窃听到你下载的软件包名称、版本等信息,不会导致恶意包被安装:如果传输过程中包被中间人篡改,内置的GPG签名就会失效,安装时校验失败会直接终止流程。
4. 手动校验RPM包的方法
如果需要手动确认下载的包是否合法,可执行以下命令:
rpm -K unixODBC-2.3.1-14.el7.x86_64.rpm
返回结果包含rsa (sha1) dsa (sha1) md5 gpg OK字样即代表包完整性、合法性校验通过。
注意:请确保你的yum配置文件
/etc/yum.conf中gpgcheck=1(默认值),不要主动关闭GPG校验,也不要随意导入未验证的第三方公钥,否则会失去官方签名的安全防护能力。
内容的提问来源于stack exchange,提问作者falsePockets
相关产品推荐
相关产品推荐

