Почему загрузки для различных проектов имеют хэш-коды или контрольные суммы? - PullRequest
3 голосов
/ 23 марта 2009

Я никогда не использовал контрольную сумму при загрузке различных исполняемых файлов или zip-файлов из Интернета. Я знаю, что он используется для проверки согласованности и повышения безопасности. Но необходимо ли это при загрузке из респектабельного проекта, такого как Apache или Microsoft. Сколько из нас фактически использует контрольные суммы или хэш-коды для проверки содержимого?

К вашему сведению, пожалуйста, дайте мне знать, если я отклонился слишком далеко от приемлемого контента StackOverflow.

Ответы [ 8 ]

8 голосов
/ 23 марта 2009

При загрузке файлов, где целостность является критической (например, iso дистрибутива Linux), я склоняюсь к md5sum загрузке на всякий случай.

Источник может быть доверенным, но вы никогда не знаете, когда аппаратная часть вашего сетевого адаптера может начать работать со сбоями.

5 голосов
/ 23 марта 2009

Другое использование - проверка того, что файл, который у вас уже есть, такой же (то есть неизмененный, не поврежденный и текущий), что и файл, доступный для загрузки из надежного источника.

Это может произойти, если

  • Вы ранее скачали файл
  • Вы получили файл с другого сайта
  • Вы получили файл из сетевой папки
  • Кто-то дал вам файл на CD / флешке / etc
  • Вы использовали другой способ избежать потенциально долгой загрузки
1 голос
/ 23 марта 2009

Используется по обеим причинам целостности (особенно на FTP-сайтах, где вы, возможно, ошибочно загрузили в режиме ascii). Кроме того, его можно использовать для проверки того, что загрузка не была изменена, при условии, что вы загружаете из местоположения a и получаете контрольную сумму из местоположения b (часто загрузка выполняется с зеркала, а хэш - с официального сайта).

Однако в целях обеспечения целостности подписание файла будет более полезным, чем просто его хеширование.

1 голос
/ 23 марта 2009

Несмотря на то, что вы выбираете загрузку из надежного источника (например, Apache.org), ваш запрос на загрузку, скорее всего, будет обслуживаться сайтом mirror . Рассматриваемый доверенный сайт обладает ресурсами для обслуживания всех запросов, поэтому зеркала выполняют важную функцию. Однако доверенный сайт не обязательно имеет полный контроль над сайтом зеркала, и, возможно, владелец зеркала (или третье лицо) может заменить зеркальный исполняемый файл вредоносным кодом. Проверяя хэш доверенного источника для загруженного файла, вы гарантируете, что он не изменился при передаче (по какой-либо причине.)

1 голос
/ 23 марта 2009

Имхо, это полезно, только если вы скачали большой файл и хотите проверить, не поврежден ли он, перед повторной загрузкой (т. Е. Если приложение установлено неправильно).

1 голос
/ 23 марта 2009

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

Это очень полезно. Недавно я обнаружил ошибку в программе записи CD; У меня продолжали возникать проблемы с определенным файлом на определенном компьютере. Я, наконец, просто сравнил контрольные суммы файла с компакт-диска и оригинального компьютера, они были разными, и я смог решить проблему!

1 голос
/ 23 марта 2009

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

" Любой злоумышленник может создать открытый ключ и загрузить его на серверы открытого ключа. Затем он может создать вредоносный выпуск, подписанный этим поддельным ключом. Затем, если вы попытались проверить подпись этого поврежденного выпуска, он будет успешным, потому что ключ не является «реальным» ключом. Поэтому вам необходимо проверить подлинность этого ключа."

Для подтверждения вы можете выполнить шаги здесь .

0 голосов
/ 23 марта 2009

Я использую MacPorts в Mac OS X, которая является менеджером пакетов на основе исходного кода; Каждый Portfile содержит описание того, как загрузить, исправить, скомпилировать и установить часть программного обеспечения в Mac OS X. В Portfile включена контрольная сумма конкретной версии tarball для загрузки. Это помогает обеспечить целостность файла от многих возможных проблем; иногда пользователи обновляют tar-архив без увеличения номера версии, что может привести к тому, что исправления не будут применены, или к коду, нарушающему работу при определенных условиях, или иногда пакет может быть поврежден, или злоумышленник может вмешиваться в программное обеспечение в надежде что вы его установите.

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

...