Вы наверняка уже знаете, что MD5 (Message Digest 5) – это 128-битный алгоритм хэширования, предназначенный для создания отпечатков или дайджестов сообщений произвольной длины. Значительное число программ использует сигнатуры MD5 в качестве контрольной суммы для проверки целостности файлов.
Однако, недавние исследования показали, что и этот алгоритм несовершенен.
Суть эксперимента заключалось в создании двух разных программ, с разными названиями и разной функциональностью; но с одинаковой сигнатурой MD5.
Они взяли MS Visual C++ в качестве компилятора, и написали 2 простейших программы; скомпилировали их и получили 2 исполняемых файла с одинаковой сигнатурой. Исходный текст программы, исполняемые файлы и ключи шифрования доступный по ссылке, приведенной выше; все желающие могут самостоятельно проверить, что сигнатуры этих файлов совпадают.
Таким образом, злоумышленники при серьезном подходе в любой бинарник смогут зашить вирус/троян/или еще какую-нибудь гадость, и измененный бинарник пройдет проверку подписи MD5.
Будте внимательны, и старайтесь не устанавливать программ, сигнатура которых рассчитана с помощью MD5. Сигнатуры SHA-1 на сегодняшний день являются менее уязвимыми для атак, чем сигнатуры MD5; учтите это при установке сторонних программ.