Генерация идентификатора сеанса с использованием [SHA1PRNG] небезопасна?

Когда я запускаю сервер tomcat, я вижу журнал: «Создание экземпляра SecureRandom для генерации идентификатора сеанса с использованием [SHA1PRNG]»

Вот вопрос! Насколько я знаю, SHA1 небезопасен. если это так, создание идентификатора сеанса с использованием [SHA1PRNG] является проблемой?

если это будет проблема безопасности, какова альтернативная идея (универсальная)?


person GyeongYong Bang    schedule 21.03.2017    source источник
comment
На самом деле вопрос заключается в том, является ли SHA1PRNG безопасным, что означает достаточно безопасный., учитывая, что идентификаторы сеансов Tomcat довольно длинные.   -  person user207421    schedule 21.03.2017


Ответы (2)


Дело в том, что SHA1 фактически не работает, см., например, https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html

Однако: это «только» для коллизий, и на их обработку уходят сотни часов ЦП.

Итак, важны два момента: - У вас должна быть начальная точка, для расчета коллизии - у вас нет с идентификатором сеанса, потому что, если он просочится, ничего не поможет. - Сессия действительна только в течение нескольких часов

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

person Chris    schedule 21.03.2017
comment
Здесь хорошо, что идентификаторы сеансов сохраняются только в течение короткого времени. спасибо! - person GyeongYong Bang; 22.03.2017

Краткий ответ: sha1-prng не сломан, хотя sha1 не работает.

Длинный ответ:

Криптографические хэш-функции должны обладать множеством различных свойств, наиболее часто упоминаемыми из которых являются: устойчивость к коллизиям, устойчивость к предварительному изображению и устойчивость к второму предварительному изображению. Но есть и другие свойства, которые нам нужны, даже если они могут не иметь смысла, например, «выглядеть как» случайный оракул. Мы просим эти свойства, чтобы хэш-функции можно было использовать самыми безумными способами, и люди могли думать, что они получают от этого безопасность.

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

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

Как следствие, конструкции, требующие устойчивости к коллизиям, не работают, если используется sha1, в то время как конструкции, не требующие этого свойства, могут оставаться в порядке. Sha1-prng не требует защиты от коллизий для обеспечения безопасности. Как и HMAC-sha1 (я знаю, что многие люди тоже задаются этим вопросом).

person TheGreatContini    schedule 21.03.2017