Updating the GPG Key for NGINX Products
Gena Makhomed
gmm на csdoc.com
Вт Авг 9 14:27:16 UTC 2016
On 09.08.2016 16:11, Sergey Budnevitch wrote:
> Ну потому что советовать людям качать что-то из интернета и ставить безо
> всякой проверки от рута - это глупость. Если хотя бы один из ста просто
> проверит то, что он скачал, не говоря уж о проверке chain of trust,
> перед установкой, то такое разделение на две команды оправдано.
Но ведь "gpgcheck=0" -- это и есть "советовать людям качать
что-то из интернета и ставить безо всякой проверки от рута".
> Проблема со всеми этими подписями в том, что большинство не понимает как это работает
> и зачем это надо, объяснить как это устроено в самой инструкции - это лишнее, инструкция
> будет менее понятной. Поэтому инструкция написана максимально просто, а объяснение
> вынесено в конец статьи. Кстати на сайте сделано также: http://nginx.org/en/linux_packages.html#signatures
gpgcheck надо как минимум для того, чтобы не было возможности взломать
DNS, и отправить пользователей скачивать неизвестный бинарник с левого
сайта по протоколу http, -- сейчас такая уязвимость на сайте nginx.org
имеется. Я всего лишь предлагаю эту уязвимость на сайте закрыть.
>> Я уж не говорю о том, что в CentOS принято ставить/удалять ключи
>> вместе с пакетом репозитория, так как это сделано в EPEL или remi.
>> И тогда не надо будет вручную править и менять GPG ключи в системе.
>>
>> https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
>>
>> http://rpms.remirepo.net/enterprise/remi-release-7.rpm
>>
>> Файл ключа задается прямо в конфиге репозитория через gpgkey=
>
> Вы ставите пакет, непонятно откуда загруженный и yum при следующем
> запуске установит ключ - это замечательно, но опять же ни проверки
> ключа, ни проверки пакета при этом не происходит.
Сайт nginx.org по протоколу HTTPS - это разве "не понятно откуда" ?
Очень даже понятно, из-за протокола HTTPS подмена сайта-источника
с пакетом репозитория, включающим в себя GPG ключ будет исключена.
При первом запуске yum остановится и спросит что делать с ключем -
устанавливать этот ключ из файла или нет. Провести проверку ключа
при этом пользователю никто не запрещает.
А уж после установки ключа никто не сможет незаметно подменить пакет
с nginx, даже в случае взлома сайта nginx.org и подмены бинарника там.
(вероятность взлома сайта nginx.org и подмены бинарника -- выше нуля)
> С другой стороны разница установки ключа и установка пакета минимально,
> но с пакетом у вас когда-то потом возникнет вопрос при установке об
> импорте ключа - зачем такая головная боль?
Вопрос об импорте ключа возникает всего один раз, при первом запуске.
Это не головная боль, а дополнительная защита и она вполне оправдана.
В случае gpgcheck=0 и протокола HTTP защиты от DNS cache poisoning нет.
Нет также защиты от взлома сайта nginx.org и подмены бинарника на нем.
"By default, the check is disabled for NGINX and NGINX Plus
repositories, but enabled for NGINX Amplify repositories."
Плюс к тому, упрощение жизни пользователям NGINX Amplify repositories,
потому что им всем придется теперь вручную менять ключи по инструкции.
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru