这些项目已经过时了。我之所以知道这一点,是因为我发布了Debian存储库,并在发现Debian 9 APT中的更改时更新了说明。实际上,手册的这一部分现在已经过时,因为它的目录错误。
这实际上与.d
目录无关,而与防止APT中的跨站点漏洞有关。为了方便起见,较旧的系统使用了单独的密钥环文件,但是现在这对于安全性是必不可少的。您的安全。
这就是漏洞。考虑两个存储库发布者A和B。在Debian 8和更低版本中,两个发布者的密钥都放在用户计算机上的单个全局密钥环中。如果发布者A可以某种方式取代发布者B的存储库WWW站点,那么A可以发布使用A自己的密钥签名的颠覆性软件包,APT会很乐意接受并安装。毕竟,A的密钥是所有存储库在全球范围内受信任的。
缓解措施是让用户为各个发布者使用单独的密钥环,并Signed-By
在其存储库定义中使用各个设置引用这些密钥环。具体来说,发布者A的密钥仅用于Signed-By
存储库A的发布者,而发布者B的密钥仅用于Signed-By
存储库B的发布者。这样,如果发布者A取代了发布者B的存储库,则APT将不接受发布者A的密钥包,因为它们和存储库由发布者A的密钥签名,而不是由发布者B的密钥签名。
/etc/apt/trusted.gpg.d
眼前的机制是一个较老的穷人的中途房子,从2005年左右开始,它的出现还有些瑕疵,那还不够好。它将密钥环设置在一个单独的文件中,以便可以将其打包并像其他任何文件一样由包管理器一步安装(或通过fetch
/ curl
/ 下载wget
)。(程序包管理器可以防止发布者A的特殊“ this-is-my-repository-keyring”程序包安装在发布者B的上方,而通常情况下,它可以处理程序包之间的文件冲突。)但仍将其添加到密钥集中所有存储库在全球范围内都受到信任。现在存在的完整机制使用中的单独的,不受全局信任的密钥环文件/usr/share/keyrings/
。
我的指示已经在那里。a正在采取行动将Debian自己的存储库移至该机制,以便它们也不再使用全局信任的密钥。您可能想对发现的“大多数项目”有所了解。毕竟,他们目前正在指导您将对计算机上APT的全局访问权交给他们。
进一步阅读