【问题标题】:Is the integrity of the Conda packages verified?Conda 软件包的完整性是否得到验证?
【发布时间】:2020-05-12 00:57:56
【问题描述】:

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

我问的原因是,在某些国家,官方 Anaconda Cloud 存储库非常慢(或被阻止),本地镜像通常更快并提供更好的用户体验,但本地镜像的完整性不是保证。如果 conda 二进制文件以某种方式使用从 Anaconda Cloud 官方存储库获得的元数据验证下载的存档,那么那些不幸的用户仍然可以使用本地镜像,而不必担心本地镜像的完整性。

【问题讨论】:

    标签: python anaconda package conda package-managers


    【解决方案1】:

    无独立元数据 (AFAIK)

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

    为什么要进行安全检查?

    除了基本的文件完整性验证之外,提供的检查的主要用例实际上是防止 Conda 因 Pip 破坏其包文件而感到惊讶。由于 Conda 使用硬链接,如果 Pip 在一个 env 中覆盖一个包文件,它可能会在未来的所有 env 中覆盖它。虽然它不会在行为中捕获 Pip,但这些安全检查至少有 Conda 检查以确保在将包链接到另一个 env 之前它仍然完好无损。

    "Understanding and Improving Conda's Performance" 帖子中有一点背景,在 Verifying package contents 部分下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 2018-02-26
      • 2010-11-15
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      相关资源
      最近更新 更多