Безопасны ли списки репозитория? Есть ли версия HTTPS?
Безопасны ли обновления репозитория?
Как медвежонок со стороны разработчика, я не могу понять, почему список хранилищ http://security.ubuntu.com
и другие http
(незащищенные) сайты, перечисленные в /etc/apt/sources.list
, Без соответствия цепочки сертификатов это выглядит как "спросить у любого респондента список пакетов для обновления" вместо "спросить сайт ubuntu.com..."
Может ли какая-либо сеть выбрать поддельные сайты обновлений, и является ли это обычной практикой для предоставления локально кэшированной и проверенной копии?
3 ответа
Короче говоря, да, они безопасны, потому что криптография с открытым ключом используется для подписи файлов.
Все файлы, загруженные APT, имеют подпись, которая позволяет проверять загруженный файл по открытым ключам, хранящимся на вашем компьютере, как подписанным Ubuntu и только Ubuntu. Это подтверждает, что полученный вами файл был авторизован Ubuntu на каком-то этапе и с тех пор не изменялся и не изменялся.
Техническое объяснение того, как это работает, доступно в Ubuntu (и в Debian, который использует ту же систему).
Из-за использования HTTP вместо HTTPS, да, злоумышленники могли видеть, какие файлы вы загружаете, но в этом случае вам вряд ли стоит беспокоиться о конфиденциальности. Попытка "человека посередине" изменить пакеты, чтобы внедрить вредоносный код, все равно потерпит неудачу, поскольку нарушит механизм подписи.
Один из возможных недостатков этого механизма подписания заключается в том, что он не гарантирует, что вы получаете самую последнюю версию пакета (действительно, иногда зеркала обновляются медленно). Чтобы помочь решить эту проблему, подписанный файл выпуска содержит дату "Действителен до", после которой все файлы, на которые он ссылается, должны считаться устаревшими. Человек в середине мог бы иметь возможность заменить архив неизмененной более ранней версией архива в течение этой даты, действительной до тех пор, пока ваш APT не поверит в отсутствие обновлений. Но они не могут вносить какие-либо произвольные изменения в пакеты и не могут вернуться назад во времени после определенного момента.
Механизмы подписи обеспечивают гораздо лучшую безопасность, чем HTTPS, в распределенной среде такого типа, где файлы отражаются на многих серверах, не контролируемых Ubuntu. По сути, вам нужно доверять только Ubuntu, а не зеркалу, поэтому вам нужно доказать, что файлы изначально были из Ubuntu и с тех пор не были изменены - нет необходимости проверять подлинность зеркала.
Обратите внимание, что когда вы добавляете неофициальный репозиторий в ваш список источников, такой как PPA, вы будете получать файлы, которые не подписаны Ubuntu. APT должен предупредить вас об этом, потому что они не были подписаны сертификатом, соответствующим какому-либо из открытых ключей, установленных на вашем компьютере в соответствии с разрешением Ubuntu.
Ответ с самым высоким рейтингом здесь явно устарел. С тех пор в apt было обнаружено 2 серьёзных эксплойта по удалённому выполнению кода из-за ошибки в проверке пакета. Бюллетени по безопасности здесь и здесь.
Это намного хуже, чем опасения по поводу конфиденциальности / утечки информации и устаревшей версии пакета; это позволяет выполнять произвольный код как root, полный сбой безопасности. И дело в том: эти атаки были бы предотвращены, если бы вместо http использовался https.
Это доказывает, что принцип глубокоэшелонированной защиты применяется здесь так же, как и везде. Многочисленные утверждения о том, что https не предоставляет никаких или минимальных преимуществ для безопасности в контексте apt, просто неверны, как показали эти эксплойты.
Тогда возникает вопрос, стоит ли польза от безопасности https с точки зрения кэширования, увеличения накладных расходов и т. Д. Я не могу ответить на этот вопрос, но, по крайней мере, я думаю, что Ubuntu/Canonical/Launchpad должен предоставить дополнительные конечные точки https для своих репозиториев.,
Важное дополнение: на самом деле, поскольку обновление и первоначальная установка загружаются онлайн, требуется много трафика, и источник этого трафика, то есть потоки двоичного и текстового кода, воспроизводим. Таким образом, в Интернете существует большое количество шлюзов и кеш-устройств. Значительное количество интернет-провайдеров настроили кэш на основе протокола http, чтобы сохранить пропускную способность экспорта, и протокол https не может существовать в качестве прозрачного кэша.
Другая причина заключается в том, что программа зеркального отображения на основе http намного проще: нет необходимости проверять сертификат tls-ssl и не нужно беспокоиться о недействительности сертификатов или о проблемах конфигурации веб-сервера.
Не так давно, около 20 лет, на заре Интернета, https и интернет-трафик все еще были очень дорогими игровыми процессами. Поэтому http также включил протокол ftp, который почти устарел, в качестве основного способа доставки установки и обновления для распространения пакетов программного обеспечения в Интернете.
Аналогично, Microsoft Windows и Office также обновляются с использованием http. Вы можете заметить, что обычно это не установочный пакет, загруженный с сервера Microsoft, а встроенный кеш-сервер вашего провайдера.