Сет Майкл Ларсон: Документиров... Заметка
Planet Python на русском

Сет Майкл Ларсон: Документирование проблемных моментов распространения сертификатов для экосистемы Python

Компрометация eMudhra CA выявила системные проблемы в экосистеме Python, связанные с управлением центрами сертификации. CPython полагается на OpenSSL, которому требуются корневые сертификаты ЦС, а Python поставляет их через пакет certifi для платформ, не имеющих собственной поддержки. Исторически certifi был критически важен, но дистрибутивы Linux теперь предоставляют свои собственные, лучше управляемые хранилища сертификатов. Серьезной проблемой является отсутствие механизма отзыва сертификатов по умолчанию и активного в установках Python на базе OpenSSL. Обновление certifi как зависимости вызывает каскадные обновления во всей экосистеме Python и pip. Pip включает в себя certifi, что означает, что компрометация может потребовать срочных обновлений как pip, так и самого Python. Команда реагирования на инциденты безопасности Python должна координировать выпуск обновлений для нескольких веток Python. Pip переходит на использование truststore по умолчанию, что уменьшит его зависимость от certifi, особенно для пользователей Linux. Этот инцидент потребовал от многих других инструментов упаковки и компонентов инфраструктуры действовать быстро. Оповещение пользователей о необходимости обновления зависимостей после применения исправлений остается серьезной проблемой. Автор предлагает, чтобы PyPI прекратил быть каналом распространения сертификатов, учитывая, что большинство платформ теперь предоставляют адекватные наборы сертификатов. Предлагается переход к большей опоре на системные хранилища сертификатов, чтобы снизить нагрузку на сопровождающих Python и pip. Открытый вопрос об эффективном отзыве сертификатов для систем на базе OpenSSL требует решения для снижения нагрузки на волонтеров в будущем.