Как использовать https с apt-get?

Использует ли apt-get https или какой-либо другой тип шифрования? Есть ли способ настроить его на использование?

67
задан 13 October 2012 в 22:10

4 ответа

apt-get (и другие команды управления пакетами, которые являются интерфейсом для тех же библиотек APT) могут использовать HTTP, HTTPS и FTP (и смонтированные файловые системы). Если вы укажете https: // URL-адреса в /etc/apt/sources.list и /etc/apt/sources.list.d / * , то APT будет использовать HTTPS.

APT проверяет подпись пакетов. Таким образом, вам не нужно иметь средство передвижения, обеспечивающее аутентификацию данных. Если злоумышленник изменит загружаемые вами файлы, это будет замечено. Использование проверки подписи лучше, чем использование HTTPS-соединения, потому что оно обнаружит атаку на сервер, с которого вы загружаете, а не только атаку в пути.

Точнее, (упрощенный) поток данных для пакета имеет следующий вид:

  1. Пакет создается на машине сборки.
  2. Пакет подписывается на машине сборки.
  3. Подписанный пакет копируется в зеркало загрузки.
  4. Вы загружаете пакет.

HTTPS обеспечивает правильное выполнение шага 4. Сигнатуры пакетов обеспечивают правильное выполнение шагов 2–4.

Фактически, HTTPS дает одно небольшое преимущество для шага 4: подписи пакетов только гарантируют подлинность пакета. На шаге 4 злоумышленник может выдать себя за законный сервер и обслуживать устаревшие версии пакета. Например,злоумышленник может помешать вам загрузить какие-либо обновления безопасности в надежде воспользоваться уязвимостью на вашем компьютере, которую вы бы исправили, если бы не атака. Это не очень реалистичный сценарий, потому что он требует активного злоумышленника (так что это должен быть кто-то, кто контролирует ваше интернет-соединение), но в принципе это может произойти.

Еще одним преимуществом HTTPS будет, если вы пытаемся скрыть тот факт, что вы загружаете пакеты Ubuntu от кого-то, отслеживающего ваше сетевое соединение. Даже тогда перехватчик мог видеть, к какому хосту вы подключаетесь; если вы подключаетесь к зеркалу Ubuntu и загружаете сотни мегабайт, ясно, что вы загружаете пакеты Ubuntu. Злоумышленник также может определить, какие пакеты вы загружаете, исходя из размера файлов. Таким образом, HTTPS будет полезен только в том случае, если вы загружаете с сервера, который также предлагает другие файлы аналогичного размера - я не вижу никакого смысла, кроме сторонних пакетов, и только в очень необычных обстоятельствах.

Повторюсь: обычное преимущество HTTPS, заключающееся в том, что вы знаете, что подключены к реальному серверу, бесполезно при загрузке пакетов Ubuntu. Проверка подписи на пакетах дает более надежную гарантию, чем то, что может предоставить HTTPS.

59
ответ дан 13 October 2012 в 22:10

При использовании APT обычно важнее не то, чтобы ваше соединение было зашифровано, а то, что файлы, которые вы получаете, не были подделаны.

APT имеет встроенную проверку подписи чтобы обеспечить это.

Шифрование будет препятствовать перехватчикам от того, чтобы видеть то, что вы скачиваете, но то, что вы на самом деле загрузки (и запрос) довольно бесспорное: это будет таким же, как и тысячи других пользователей Ubuntu скачивают и файлы не содержит ничего это не распространяется бесплатно на многих серверах. Тем не менее, если вам нужна конфиденциальность в отношении того, какие именно пакеты вы загружаете, можно использовать HTTPS (укажите его в своем sources.list).

Проверка подписи, встроенная в APT, гарантирует, что файлы, которые вы получаете, имеют не было подделано. На самом деле не имеет значения, откуда берутся файлы, и даже возможно установить прокси или обратные прокси между вами и сервером, чтобы снизить нагрузку на сервер или ускорить работу. Проверка подписи по-прежнему гарантирует, что вы получаете немодифицированный файл, соответствующий подписи, которая могла быть создана криптографически только с исходным файлом и копией закрытого ключа Ubuntu.

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

15
ответ дан 13 October 2012 в 22:10

Последние выпуски APT имеют встроенную поддержку TLS, поэтому вам просто нужно заменить URL-адреса зеркал репозитория пакетов на адреса с префиксом https . Для Debian это могло бы выглядеть так:

deb https://deb.debian.org/debian/ stretch main
deb https://deb.debian.org/debian-security stretch/updates main
deb https://deb.debian.org/debian/ stretch-updates main

Это полезно, хотя APT включает в себя собственный протокол подписи, чтобы гарантировать, что пакеты не подделаны, потому что в APT могут быть ошибки (как это было: CVE -2016-1252 , CVE-2019-3462 ). Протоколы HTTP / TLS и их шифры подлежат тщательной проверке, поэтому серьезная уязвимость нулевого дня гораздо менее вероятна, если вы добавите этот уровень безопасности.

2
ответ дан 13 October 2012 в 22:10

Я думаю, что на этот вопрос можно было бы ответить с инструкциями для непрофессионала, поэтому…

APT по-прежнему не использует HTTPS по умолчанию в ежедневных сборках Ubuntu 19.10 (Eoan) (который все еще находится в разработке). В этом можно убедиться, изучив файл /etc/apt/sources.list и отметив, что все исходные URL-адреса используют схему URL-адресов «http:».

Чтобы настроить его для использования HTTPS, можно выполнить следующие инструкции:

Сначала найдите надежное официальное зеркало архива Ubuntu, которое поддерживает HTTPS:

  1. Перейдите на веб-страницу Официальные зеркала архива для Ubuntu .
  2. В таблице на этой веб-странице укажите зеркала которые (A) размещены на веб-сайтах, которые вы считаете заслуживающими доверия, (B) имеют "http:" зеркало и, при желании, (C) соответствуют вашему географическому местоположению, скорости сервера и обновлению предпочтений.
  3. В таблице на этой веб-странице щелкните ссылку «http» зеркала, указанного на шаге (2), чтобы перейти к версии «http:» зеркала.
  4. В адресной строке браузера вручную измените «http» : "в URL-адресе веб-страницы на" https: ".
  5. Снова перейдите к зеркалу (через URL-адрес" https: "), чтобы узнать, разрешается ли оно.

Например, я считаю Фонд Викимедиа заслуживающим доверия, поэтому я посетил http://mirrors.wikimedia.org/ubuntu/ URL-адрес зеркала и впоследствии изменил его на https://mirrors.wikimedia.org/ubuntu/ , который успешно разрешился.

Если вы используете Firefox (67.0.4) и у вас установлено расширение HTTPS Everywhere (2019.6.27) с включенной функцией «Зашифровать все допустимые сайты» (через панель кнопок панели инструментов), шаги ( 4) и (5) могут быть опущены, поскольку расширение автоматически изменяет URL-адрес для использования HTTPS, позволяя сразу определять, разрешится ли версия URL-адреса «https:».

Два , обновите список источников APT:

  1. Выполните команду sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup для резервного копирования списка источников обновлений.
  2. Замените базовый URL-адрес зеркала - показан здесь как https://mirrors.wikimedia.org - в команде sudo sed --in-place --regexp-extended http: // (us \ .archive \ .ubuntu \ .com | security \ .ubuntu \ .com) https://mirrors.wikimedia.org g '/etc/apt/sources.list с базовым URL-адресом зеркала вашего предпочтительного зеркала, а затем выполните команду.

В-третьих , вам следует проверить содержимое каталога /etc/apt/sources.list.d/ на наличие источников "http:", которые могут быть изменены на «https:» после установки программного обеспечения из-за пределов архива Ubuntu.

Например, пакет Microsoft Visual Studio Code добавляет в этот каталог файл vscode.list, в котором указан URL-адрес «http:». Простое изменение схемы URL-адресов с «http:» на «https:» позволяет выполнять обновления через HTTPS.

Рассмотрите возможность резервного копирования любых таких исходных файлов перед их изменением.

Наконец, выполните обновление, чтобы гарантировать, что обновления будут работают правильно:

  1. Выполните команду sudo apt-get update .
  2. Если это не сработает должным образом, восстановите файл (ы) списка источников резервных копий, который вы создали, выполнив sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list команда.

Также стоит отметить, что есть пакет apt-transport-https для добавления HTTPS поддержка APT. Однако, согласно веб-странице https://launchpad.net/ubuntu/eoan/+package/apt-transport-https , этот пакет, по-видимому, не нужен, и, согласно показанной информации, он не нужен с APT 1.5. после выполнения команды apt-cache show apt-transport-https .

3
ответ дан 22 October 2019 в 13:35

Другие вопросы по тегам:

Похожие вопросы: