Проверена ли целостность пакетов Conda? - PullRequest
3 голосов
/ 26 января 2020

При установке пакета с использованием conda install <some package> или conda install -c <some channel> <some package> проверяет ли двоичный файл conda целостность загруженного архива пакета (используя такие алгоритмы, как SHA256)?

Причина, по которой я спрашиваю, заключается в том, что в некоторых странах официальный репозиторий Anaconda Cloud работает очень медленно (или блокируется), а локальное зеркало часто быстрее и обеспечивает лучший пользовательский интерфейс, но целостность локального зеркала не гарантируется. Если бинарный файл conda каким-либо образом проверяет загруженный архив, используя метаданные, полученные из официального хранилища Anaconda Cloud, то эти менее удачливые пользователи могут по-прежнему использовать локальное зеркало и не должны беспокоиться о целостности локального зеркала.

1 Ответ

3 голосов
/ 27 января 2020

Нет независимых метаданных (AFAIK)

У Conda есть опция проверки целостности SHA256 (conda config --set extra_safety_checks true), но это не та проблема, которую вы пытаетесь решить. Проблема заключается в том, что информация о контрольной сумме предоставляется в самом архиве пакета, в файле info/paths.json, а не в независимом хранилище метаданных. Это может снизить вероятность того, что посредник вставит что-либо в архивный файл, но он не поймает пакет, созданный с помощью conda build для включения вредоносного кода и передачи на канал. Следовательно, важно использовать только доверенные каналы.

Почему проверки безопасности, тогда?

Помимо проверки целостности файла c, основной вариант использования поскольку проверки, которые предоставляются, на самом деле не позволяют Конде удивиться, когда Пип забивает файлы своих пакетов. Поскольку Conda использует жесткие ссылки, если Pip записывает поверх файла пакета в одном env, он записывает поверх него потенциально во всех будущих envs. Хотя он не поймает Пипа в действии, эти проверки безопасности, по крайней мере, содержат проверку Конды, чтобы убедиться, что пакет все еще не поврежден, прежде чем связать его с другим env.

В есть небольшой фон « Понимание и улучшение производительности Conda » , в разделе Проверка содержимого пакета .

...