8

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

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

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

Спасибо!

2 ответа2

11

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

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

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

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

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

1

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

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