使用签名的 Debian 软件包作为内部存储库

使用签名的 Debian 软件包作为内部存储库
  • 我们正在使用内部 Debian 存储库来移植内部软件。

  • 我们选择 reprepro 来管理存储库,并对源包进行签名(使用 debsign),以便存储库接受我们的 gpg 密钥作为可信密钥。

  • 我们创建了一个类似于 debian 或 ubuntu 密钥环包的内部密钥环,我们在任何事情之前安装它,以便能够运行“apt-get update”而不会出现任何 gpg 密钥错误。

最新的一点是有问题的,因为我们经常会遇到与安全相关的问题,尽管我们处于完全私有的网络中,这排除了来自外部的不安全的包上传。

问题:在内部存储库中使用签名包的优缺点是什么?

答案1

存储库签名可以帮助用户知道“是的,我从中下载软件包的存储库是我信任的”。如果你告诉他们忽略此检查,你就不得不担心:

  • DNS 中毒(当他们访问 yourserver.com 时他们实际上获取了正确的地址吗?)
  • MITM(当他们尝试访问 IP 1.2.3.4 上的存储库时,他们是否获得了他们应该获得的服务器)
  • sources.list 中的恶意条目(不知怎么的,我设法把 debhttp://evilserver.xxxfoo/” 在你的 sources.list 中,现在你从 evilserver.xxx 安装包,而你不应该信任它)

如果前两者中的任何一个可能是一个问题(在受控环境中不太可能出现),那么即使使用签名的存储库,仍然会面临重放攻击的问题。(你推出安全​​升级来修补漏洞,我让用户查看我的存储库而不是你的存储库,因此用户永远不会收到补丁,我可以利用该漏洞)。

在受控网络上,我其实不必担心这些。话虽如此,如果您已经拥有了签名存储库的基础设施,那么运行 debsign 听起来就不太复杂了。

相关内容