Безопасно ли pip и easy_install загружают пакеты Python?
Например, проверяют ли они цифровую подпись (например, apt-get и Центр обновления Windows) или могут ли они использовать SSL? Если нет, я немного обеспокоен тем, что загруженные пакеты могут быть троянскими.
3 ответа
Pip has been updated:
SSL Certificate Verification
Начиная с v1.3, pip обеспечивает проверку SSL-сертификата по протоколу https, чтобы предотвратить атаки "человек посередине" на загрузку PyPI.
Version 8.0 also has the functionality to check against local hashes.
Все пакеты Python не размещены на pypi.python.org, но easy_install будет искать на странице PyPi ссылки для скачивания. Многие распространенные пакеты, такие как PIL и lxml, используют свой собственный сервер распространения (который на самом деле часто вызывает проблемы у потребителей пакетов). Пример: http://pypi.python.org/pypi/PIL/
Кажется, что pypi.python.org сам по себе не предлагает никакой поддержки HTTPS.
Если вы хотите обеспечить безопасную среду easy_install / pip, я предлагаю вам зеркалировать необходимые пакеты на сервер, где вы сами поддерживаете HTTPS, а затем ограничить загрузку на этот сервер, используя --allow-hosts
опция:
Там, где это возможно, следует добавить информацию MD5 для загрузки URL-адресов, добавив идентификатор фрагмента в форме #md5=..., где... - это шестнадцатеричный дайджест MD5 из 32 символов. EasyInstall проверит, соответствует ли дайджест MD5 загруженного файла указанному значению.
http://packages.python.org/distribute/easy_install.html
Кажется, что easy_install проводит некоторую проверку, но, похоже, проверяет, предоставляет ли хранилище пакетов ключ MD5.
Раздел будущих планов на той же странице дополнительно освещает это:
Планы на будущее:
- Проверка подписи? SSL? Возможность подавления поиска PyPI?