conda软件包的完整性是否得到验证?

问题描述 投票:1回答:1

[使用conda install <some package>conda install -c <some channel> <some package>安装软件包时,conda二进制文件是否验证下载的软件包归档文件的完整性(使用诸如SHA256之类的算法)?

[在某些国家/地区,官方的conda镜像非常慢(或被阻止),本地镜像通常更快,并且可以提供更好的用户体验,但是如果conda二进制文件经过验证,则无法验证本地镜像的完整性。使用从官方conda镜像获取的元数据下载的存档,那么那些不太幸运的用户可以使用本地镜像,而不必担心本地镜像的完整性。

python anaconda package conda package-managers
1个回答
0
投票
没有独立元数据(AFAIK)

Conda确实具有用于SHA256完整性检查(conda config --set extra_safety_checks true)的选项,但不是您要解决的问题。问题在于,校验和信息是在程序包归档文件本身的info/paths.json文件中提供的,而不是由独立的元数据存储库提供的。这可能会减轻中间人在存档文件中插入内容的麻烦,但不会捕获使用conda build构建的包含恶意代码并推送到渠道的软件包。因此,

仅使用受信任的频道。

非常重要为什么要进行安全检查?

除了基本的文件完整性验证之外,提供的检查的主要用例实际上是防止Conda受到Pip破坏其打包文件的惊讶。由于Conda使用硬链接,因此,如果Pip在一个环境中覆盖程序包文件,则它将在将来所有可能的环境中覆盖它。尽管它不会引起Pip的注意,但至少在进行安全性检查之前,请Conda进行检查,以确保在将其链接到另一个环境之前,该软件包仍是完整的。

"Understanding and Improving Conda's Performance"帖子中的[[验证包内容部分下有一些背景。

© www.soinside.com 2019 - 2024. All rights reserved.