PRF, используемый в TLSv1 и во всех более ранних версиях SSL, использует xor MD5 и SHA1. Возможны столкновения с обоими алгоритмами хеширования. Коллизии MD5 гораздо проще генерировать. Из википедии 2 ^ 24 MD5 против 2 ^ 63 операций SHA1. В TLSv2 PRF, вместо того, чтобы быть жестко закодированным, теперь может согласовываться во многом таким же образом, как базовые шифры в более ранних версиях SSL. Первоначально необходимо реализовать для TLSv2 несмешанный SHA2.
Однако тот факт, что хеш уязвим для коллизий, не обязательно делает его небезопасным для всех приложений.
Например, довольно опасно использовать только уязвимые хеши для проверки подписи файла, потому что очень возможно изменить данные таким образом, чтобы сохранить исходную подпись. (При обнаружении столкновения)
В случае PRF (псевдослучайной функции), что вы хотите сделать, это обеспечить предсказуемый вывод, основанный на знании секрета, который не может быть реально реверсирован для получения входного секрета. В этом случае успешный поиск столкновений не так полезен, как в предыдущем случае.
Поиск коллизий должен по-прежнему относиться к любому использованию алгоритма хеширования, поскольку история показала, что он может открыть двери для БУДУЩЕГО обнаружения гораздо более значительных уязвимостей.
Лично меня больше всего беспокоит TLS в предыдущем случае, когда MD5 / SHA1 обычно используется для проверки подписи при проверке цепочки доверия между корневыми и промежуточными сертификатами. Создание посредников путем генерации столкновений было успешно продемонстрировано.