Вопрос или проблема
Я очень удивлен, что такая серьезная проблема обсуждается так мало.
Я обычный пользователь Ubuntu, и я только что скачал ISO с ubuntu.com.
У меня нет настроенной сети доверия PGP на компьютере или чего-то подобного.
Так что единственное, чему я действительно могу доверять, это список центров сертификации в моем браузере.
Как мне убедиться, что я не подвергаюсь атаке с внедрением посредника (MITM) и меня не взломал rootkit уровня 16-летнего хакера? (Потому что это действительно легко)
1. Просто проверьте SHA256SUM
К сожалению, http://releases.ubuntu.com/ предоставляется только через HTTP.
На самом деле, существует закрытый отчет о проблеме с 2013 года, где разработчики явно отказываются предоставлять пользователям версию хеш-листа по HTTPS.
2. Просто скачайте публичные ключи Ubuntu с помощью GPG
Как указано на странице VerifyIsoHowTo, другой способ проверить загрузку – это скачать публичный ключ Ubuntu и проверить файлы .gpg хешей.
Однако, в мелком шрифте, внизу, упоминается что-то о построении сети доверия. Если мы расширим эту тему, то можем с уверенностью сказать, что проверка подписей PGP без хорошей сети доверия абсолютно бесполезна.
Что осталось? Буквально ничего. Вы, конечно, можете потратить много времени на понимание PGP, связывание с коллегами и построение собственной сети доверия в течение следующих недель, или вы можете пропустить все это и просто приступить к установке, как и сделает подавляющее большинство людей, если они вообще добрались до этого момента.
Итак, существует ли практический способ для обычного/среднего пользователя проверить целостность программного обеспечения Ubuntu перед его установкой, или мы тратим тысячи и тысячи человеко-часов на написание безопасного кода, чтобы затем предоставить его ненадежно?
Существует пошаговое руководство по этому вопросу: https://tutorials.ubuntu.com/tutorial/tutorial-how-to-verify-ubuntu#0
Если вы не знаете, как это работает, то единственный путь, если вы намерены использовать это – это изучить это.
Нет “простого” способа для этого, потому что это не просто с точки зрения того, как это работает и как это обеспечивает правильные результаты (если только вы не хорошо разбираетесь в алгоритмах). Извините.
Нет официальной организации iso md5sum, которая отслеживала бы все существующие изображения, поэтому нет официального способа сделать это. Вы, однако, можете использовать инструменты и проверить это с тем, что Ubuntu предоставляет на своих официальных серверах. Например, для последней версии Ubuntu http://releases.ubuntu.com/cosmic/
существует несколько файлов:
- http://releases.ubuntu.com/cosmic/MD5SUMS
- http://releases.ubuntu.com/cosmic/SHA1SUMS
- http://releases.ubuntu.com/cosmic/SHA256SUMS
которые могут быть проверены с помощью:
md5sum ubuntu-18.10-desktop-amd64.iso
sha1sum ubuntu-18.10-desktop-amd64.iso
sha256sum ubuntu-18.10-desktop-amd64.iso
где ubuntu-18.10-desktop-amd64.iso
, конечно, обсуждаемое iso. Сравните вывод команды с этими страницами, и вы узнаете, подлинно ли оно.
РЕДАКТИРОВАТЬ: Я подумал, что отвечу на все вопросы автора, потому что они вызвали некоторые вопросы и замечания в комментариях и вызванные там опасения:
Существует ли способ для обычного пользователя проверить подлинность загруженного Ubuntu .ISO?
это есть, я ответил на это в основном ответе
Как мне убедиться, что я не подвергаюсь атаке с внедрением посредника (MITM) и не взломан rootkit уровня 16-летнего хакера?
единственный простой способ, который я знаю (не используя браузер для загрузки сертификата SSL), это подтвердить, что ваша сеть / DNS отвечает тем же IP, что и некоторые другие DNS, которые вы не используете и которым доверяете, например, openDNS или google:
dig releases.ubuntu.com
dig @208.67.222.222 releases.ubuntu.com
dig @8.8.8.8 releases.ubuntu.com
Все они должны выдавать одинаковые результаты. Для rootkit единственный способ – это проверить ISO через контрольные суммы, которые я уже описал.
Итак, существует ли практический способ для обычного/среднего пользователя проверить целостность программного обеспечения Ubuntu перед его установкой, или мы тратим тысячи и тысячи человеко-часов на написание безопасного кода, чтобы затем предоставить его ненадежно?
Этот вопрос игнорирует тот факт, что:
– Ключи GPG могут быть загружены безопасно через сервер hkps
:
gpg --keyid-format long --keyserver hkps://keyserver.ubuntu.com --recv-keys 0x46181433FBB75451 0xD94AA3F0EFE21092
– есть очень важное примечание на: https://tutorials.ubuntu.com/tutorial/tutorial-how-to-verify-ubuntu#2
Которое автор, кажется, игнорирует (несмотря на то, что заявляет, что прочитал это раньше):
Примечание - некоторые люди задаются вопросом, если сайт, с которого они загружают, не зашифрован (многие зеркала архива не используют SSL), как они могут доверять подписям? Отпечаток ключа gpg проверяется на сервере ключей Ubuntu, так что если подпись совпадает, вы знаете, что это подлинно, независимо от того, где/как это было загружено!
КАК работает GPG, превышает знания обычного пользователя, но вы можете доверять, что это безопасно. Если вы не доверяете, пожалуйста, прочитайте, как работает GPG. Я могу заверить вас, что это многократно проверено на наличие атак 😉
То, что я также объяснил в своем редактировании, это то, что подлинность сервера МОЖНО проверить (см. мой ответ на dig
выше). Однако это превышает знания обычного пользователя (спросите ваших родителей, пользующихся интернетом, о MITM, и вы поймете), поэтому мне показалось странным, когда автор поднимает этот вопрос вместе с фразой обычный пользователь
.
Хотя http://releases.ubuntu.com/ НЕ использует HTTPS, вы можете проверить на наличие MITM с помощью dig. Если все совпадает, вы в безопасности, потому что только Canonical имеет контроль над поддоменами *.ubuntu.com
Надеюсь, больше нет вопросов, но если они есть, пожалуйста, добавьте новый вопрос на askubuntu.com и просто добавьте ссылку на эту ветку в нем. Я буду рад ответить.
Если вы готовы доверять HTTPS в этом вопросе, отпечатки ключей GPG доступны через оба источника:
https://tutorials.ubuntu.com/tutorial/tutorial-how-to-verify-ubuntu#3
и
https://wiki.ubuntu.com/SecurityTeam/FAQ#GPG_Keys_used_by_Ubuntu
Спасибо
Перед проверкой целостности загруженного файла Ubuntu ISO проверьте версии md5sum
и sha256sum
на вашей системе Ubuntu. Чтобы проверить версию md5sum
, используйте команду --version
:
md5sum --version
Версия md5sum
будет выведена в терминал. В нашем случае это версия 9.4.
Теперь, чтобы проверить версию sha256sum
, снова используйте команду --version
:
sha256sum --version
Версия sha256sum
будет выведена в терминал. В нашем случае это версия 9.4.
Вот вывод приведенных выше команд:
Загруженный файл Ubuntu ISO можно проверить с помощью команды sha256sum
. Команда sha256sum
проверяет целостность файла. Если в файл внесено небольшое изменение, значение хеша sha256, сгенерированное, будет совершенно иным, чем официальное хеш-значение файла Ubuntu ISO. Хеш-значение sha256 можно проверить на официальном сайте Ubuntu.
Проверка Ubuntu ISO с помощью команды sha256sum
Файл Ubuntu ISO можно проверить непосредственно через терминал. Команда sha256sum
облегчает получение хеш-значения без использования стороннего программного обеспечения. Чтобы использовать команду sha256sum
, откройте Терминал и перейдите в папку, где вы скачали ISO Ubuntu. Например, если вы скачали ISO Ubuntu в папку Загрузки
, зайдите в папку Загрузки
в файловом менеджере, щелкните правой кнопкой мыши по пустому пространству и выберите Открыть в Терминале, как показано на скриншоте ниже:
Теперь, находясь в терминале, введите ls
и нажмите Enter, чтобы легко скопировать имя образа Ubuntu ISO (смотрите рисунок ниже):
Итак, команда:
sha256sum <fileName>
Как видите, я написал:
sha256sum ubuntu-24.04.1-desktop-amd64.iso
Теперь это займет несколько мгновений, поэтому дождитесь завершения проверки.
После завершения процесса и получения хеш-значения файла Ubuntu ISO, хеш-значение будет отображено в терминале.
Как вы можете видеть на предыдущем изображении, хеш-значение, которое я получил, следующее:
c2e6f4dc37ac944e2ed507f87c6188dd4d3179bf4a3f9e110d3c88d1f3294bdc
Теперь нам нужно вручную сравнить это хеш-значение с хеш-значением с официального сайта Ubuntu.
Если вы перейдете по ссылке https://releases.ubuntu.com/noble/SHA256SUMS, вы увидите:
c2e6f4dc37ac944e2ed507f87c6188dd4d3179bf4a3f9e110d3c88d1f3294bdc *ubuntu-24.04.1-desktop-amd64.iso
Скопируйте хеш из вашего терминала, а затем скопируйте хеш с сайта Ubuntu и просто сравните их вручную, как здесь:
c2e6f4dc37ac944e2ed507f87c6188dd4d3179bf4a3f9e110d3c88d1f3294bdc
c2e6f4dc37ac944e2ed507f87c6188dd4d3179bf4a3f9e110d3c88d1f3294bdc
Просто взгляните на них и убедитесь, что они точно такие же. И я просто посмотрел на них и да, мне кажется, они одинаковые.
Если два хэш-значения не точно совпадают, значит, ваша загрузка Ubuntu была изменена, и вам придется скачать ее заново.
На мой взгляд, этот метод – самый простой способ проверить вашу загрузку Ubuntu.
Если вы не используете Ubuntu 24.04, вы можете найти хеш-значения для других выпусков Ubuntu, посетив https://releases.ubuntu.com/. Затем найдите ваш конкретный выпуск Ubuntu, нажмите на него, затем прокрутите вниз, и вы должны увидеть “SHA256SUMS”. Нажмите на это, и вы увидите искомое хеш-значение.
.
Ответ или решение
Конечно, проверка подлинности загруженного ISO-образа Ubuntu — это важный шаг для обеспечения безопасности вашей системы. Даже для обычного пользователя существуют практичные способы проверки ISO-файлов, которые защищают их от атак через подмену данных.
Зачем проверять подлинность ISO?
При загрузке ISO-образа Ubuntu важно убедиться, что он не был изменён третьими лицами. Проверка поможет вам избежать установки системы с потенциально вредоносными изменениями.
1. Важность SHA256
Использование SHA256 для проверки целостности файла является стандартом. Этот метод позволяет удостовериться, что загруженный файл не был изменён. В отличие от HTTP-страниц, которые могут быть уязвимыми для атак типа «человек посередине» (MITM), контрольные суммы обеспечивают более высокий уровень защиты.
2. Как проверить ISO-образ Ubuntu?
Шаг 1. Загрузка ISO и контрольных сумм
Сначала загрузите ISO-образ с официального сайта Ubuntu. Затем перейдите на тот же сайт, чтобы скачать файл SHA256SUMS
.
Шаг 2. Проверка целостности файла
Откройте терминал в той же директории, куда был помещён загруженный ISO-файл. Воспользуйтесь следующей командой:
sha256sum ubuntu-<версия>.iso
Сверьте полученный хэш с тем, который находится в файле SHA256SUMS
с официального сайта Ubuntu.
Шаг 3. Завершающая проверка
Если хэши совпадают, значит, ваш ISO-образ подлинный и его можно использовать для установки.
3. Углубленные методы
Кроме проверки по SHA256SUM, дополнительную уверенность может предоставить использование GPG-подписи для файлов с контрольными суммами. Выполните команду для получения ключа:
gpg --keyid-format long --keyserver hkps://keyserver.ubuntu.com --recv-keys [идентификатор]
Затем выполните проверку подписи:
gpg --verify SHA256SUMS.gpg SHA256SUMS
Заключение
Хотя настройка и понимание всех этих шагов может занять некоторое время, они обеспечивают надежную защиту и уверенность в безопасности вашего ПО. Настоятельно рекомендуется пользователям изучать основы работы с этими инструментами, чтобы укрепить свою личную безопасность в интернете.
Следуя вышеописанным шагам, вы сможете существенно снизить риск использования изменённого или скомпрометированного образа Ubuntu.