Контрольная сумма MD5 и SHA1 используется для загрузки


8

Я заметил, что при загрузке большого количества инструментов с открытым исходным кодом (Eclipse и т. Д.) Есть ссылки на контрольные суммы MD5 и SHA1, и я не знал, что это было и какова их цель.

Я знаю, что это алгоритмы хеширования, и я понимаю хэширование, поэтому я могу только предположить, что они используются для хеширования некоторых компонентов целей загрузки и для сравнения их с «официальными» хеш-строками, хранящимися на стороне сервера. Возможно, таким образом можно определить, были ли цели изменены с их правильной версии (в целях безопасности и других целях).

Я близок или совершенно не прав, и если не прав, что они?!?!

Спасибо!

Ответы:


11

Ты почти полностью прав. Единственное исправление заключается в том, что они являются хешами всего файла.

Иногда файлы могут быть повреждены во время загрузки любым способом, который используется для их передачи. Хэши, чтобы убедиться, что файл не поврежден. Это особенно полезно для пользователей с плохим интернет-соединением. Когда я использовал факс-модем, у меня часто возникали проблемы с поврежденными загрузками.

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

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

Несколько мыслей о каналах распространения. Часто свободное программное обеспечение можно найти на большом количестве сайтов, а большинство популярных сайтов, таких как SourceForge, например, имеют большое количество зеркал. Допустим, в Барленде есть сервер, который отражает большой сайт распространения программного обеспечения. FooSoft использует программу, распространяемую по сайту, и они находятся в Республике Баз, которая находится рядом с Барлендом. Если кто-то хочет внедриться в FooSoft, он может изменить только копию на зеркале Barland и надеяться, что программное обеспечение для геолокации будет гарантировать, что FooSoft получит измененные версии. Поскольку версии с других зеркал в порядке, вероятность того, что вредоносное ПО будет обнаружено, ниже. Вы также можете заставить вредоносные программы определять IP-адрес компьютера и активировать его, только если он находится в определенном диапазоне, и таким образом снижается вероятность обнаружения и т. Д.


1
+1 Он также используется по соображениям безопасности, т.е. зараженные файлы ...
Переполнение стека не работает

@BloodPhilia Действительно. Я просто писал о некоторых соображениях безопасности.
AndrejaKo

Спасибо! Я подумал, что это должно быть что-то в этом роде, но не смог найти надежного ответа где-либо еще.
Зак

3
Хороший ответ;)
Переполнение стека мертв

1

MD5 и SHA1 - это не просто контрольные суммы. Это криптографические контрольные суммы. Это означает, что в теории два разных файла могут иметь одинаковую контрольную сумму, но вероятность этого очень мала, почти 0. Как следствие, вы используете обратное: разные контрольные суммы означают, что вы получаете разный контент с вероятностью почти 1. Итак криптографические контрольные суммы используются для обнаружения изменений в файлах. Это могут быть злонамеренные изменения, сделанные намеренно, или просто ошибки, произошедшие во время загрузки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.