2

Предполагая, что и страница, связывающая загрузку, и сама загрузка находятся на доверенных доменах через HTTPS, есть ли основания беспокоиться о проверке хеш / контрольной суммы загруженного файла (особенно исполняемых файлов / установщиков, которые также не подписаны чем-то самим) ОС доверяет)?

Как я понимаю, причина этого заключается в том, чтобы отлавливать ошибки загрузки (хотя TCP должен это делать?) или вредоносные атаки, заражающие файлы.

Но HTTPS (TLS) уже должен обеспечивать полную защиту от них, так есть ли какая-то дополнительная ценность в ручной проверке?

2 ответа2

5

Я не думаю, что HTTPS поймает любой из них. AFAIK HTTPS не предлагает никакой дополнительной защиты от повреждения через TCP.

Я не эксперт по безопасности, но я знаю, что TLS (HTTPS) делает эти 2 вещи:

  1. Проверяет, что сервер, к которому вы подключаетесь, на самом деле тот, о ком говорят.
    Например, если вы введете https://microsoft.com и ваш трафик будет отправлен на https://badguys.com, а не без вашего ведома (подмена DNS), вы получите ошибку сертификата. Конечно, злоумышленники могут создать поддельный сертификат на https://badguys.com, который утверждает, что он является https://microsoft.com, но он не будет подписан действующим центром сертификации.
  2. Зашифровывает трафик, чтобы его нельзя было прочитать / изменить с помощью атаки «человек посередине» (MITM). В этом случае кто-то может видеть весь ваш сетевой трафик. Если вы не используете TLS, они могут обнаружить запрос GET и начать отправлять вам поддельные данные вместо реальных данных с веб-сервера.

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

Вот почему вы никогда не должны проверять загрузку по контрольной сумме с зеркала, используйте только контрольную сумму с исходного сайта (согласно этому вопросу).

1

Добавление к ответу Яна.

При MITM-атаке человек посередине не сможет изменить полезную нагрузку на что-то вредоносное, поэтому контрольная сумма бесполезна.

Если MITM имеет корневые сертификаты, установленные на компьютере клиента, или каким-то образом способен манипулировать соединением, то контрольные суммы ТАКЖЕ бесполезны, поскольку он может изменять отображаемые контрольные суммы.

Против атаки на сервер должно произойти то же самое, если у него уже есть доступ к серверу, он сможет изменить контрольную сумму. Но если сервер разделен (сервер загрузки и сервер для отображения ссылки на загрузку / контрольной суммы), то было бы лучше предоставить контрольную сумму.

Поэтому я думаю, что практическое правило таково: если сервер, который отображает контрольную сумму, является тем же, который предоставляет файл загрузки, то контрольная сумма бесполезна. Если у вас есть несколько зеркал, это обязательно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .