我想从互联网上的镜像安装CentOS软件包。
例如http://mirror.centos.org/centos-7/7/os/x86_64/Packages/unixODBC-2.3.1-14.el7.x86_64.rpm
这个URL是http://
而不是https://
,所以没有TLS加密。从安全的Angular 来看,从互联网上下载二进制文件而不进行加密和真实性检查似乎是一个坏主意。
如果我修改URL以添加一个s,使其成为https://
,则下载不起作用。该服务器在443 HTTPS上不提供任何服务。
因此,我唯一的选择似乎是下载文件没有TLS。
与一些Linux ISO文件不同,主文件旁边没有.md5
和.asc
文件,因此我无法手动检查文件哈希值是否与签名相符。
RPM的安全性如何运作?如果我在下载时没有加密或凭证检查,是否有其他信任链?例如,RPM是否在档案中包含公开密钥(例如GPG/PGP),yum
会将其与已信任的档案进行比较?还是我会安装完全不可信的档案?(
1条答案
按热度按时间vjhs03f71#
RPM包可以用GPG签名。所有主要的使用RPM的发行版(例如,CentOS,Fedora,RHEL)都可以这样做。
如果RPM已签名,
dnf
/yum
将在您尝试安装该软件包时验证签名。如果它是由未知签名签名的,它们将提示您是否信任它。如果签名未验证,它们将中止安装。HTTPS提供了一系列保证,但它们实际上可以归结为:镜像和您的计算机之间的数据传输是安全的(机密的,未被篡改的)。它不能防止恶意的人修改镜像上的包。或者它不能防止恶意的人在一个假的镜像上设置一堆恶意的包并将它们提供给您。
另一方面,GPG可以让你验证你正在安装的软件包是由一个授权的系统(例如,官方的CentOS构建系统)发布的,并且自发布以来没有被修改过。
您可以同时使用GPG + HTTPS来获得两者的优势。
不过,只使用GPG + HTTP意味着间谍可以看到你正在下载的内容。但由于GPG,如果他们向你发送恶意数据,你会识别出它并中止安装。