Безопасны ли идентификаторы GUID, созданные в Windows 2003, в качестве идентификаторов сеанса?

Мое веб-приложение работает только через SSL и устанавливает ограниченный по времени файл cookie для каждого пользователя после успешного входа в систему с именем пользователя и паролем. Самая большая слабость в системе - это компрометация файлов cookie существующего пользователя. И двое угадывают GUID идентификатора сеанса.

Я знаю механизмы первой уязвимости, но мне интересно, насколько мне нужно беспокоиться о вероятности того, что злоумышленник угадывает GUID идентификатора сеанса на основе идентификатора GUID, который они ранее получили, войдя в учетную запись, которую они настроили? Веб-сервером в данном случае является Windows 2003, а идентификаторы GUID создаются с помощью .Net 3.5.


person sipsorcery    schedule 09.09.2009    source источник


Ответы (2)


GUID не предназначены для криптографической безопасности, они просто уникальны. Большая часть формата предсказуема - 48-битный MAC-адрес, временная метка, которая в некоторой степени предсказуема, если вы знаете, как она генерируется, и еще несколько битов для борьбы с конфликтами временных меток. Технически изощренный злоумышленник имеет довольно хорошие шансы перепроектировать GUID.

Вам действительно нужен криптографически безопасный ГПСЧ для безопасного сеансового ключа.

person ConcernedOfTunbridgeWells    schedule 09.09.2009
comment
Изменился алгоритм создания GUID. Они больше не используют MAC-адреса. Это всего лишь 128-битные псевдослучайные числа. И у них много проблем с безопасностью. - person Thomas Maierhofer; 12.09.2009
comment
В справочниках .net 3.5 нет ни MAC-адреса, ни метки времени. - person Kirk Broadhurst; 12.09.2009
comment
Описывается ли поставщик GUID .net 3.5 как криптографически безопасный? - person ConcernedOfTunbridgeWells; 12.09.2009

GUID .Net 3.5 практически невозможно угадать. Само количество GUID огромно - их больше, чем песчинок во вселенной, и т. Д. Их уникальность не строго «гарантирована» (хотя очевидно SQL NEWID гарантированно будет уникальным)

Если вы хотите проверить это на себе, сгенерируйте несколько сотен миллионов, а затем найдите дубликаты (вы их не найдете).

person Kirk Broadhurst    schedule 09.09.2009
comment
Это правда, что идентификаторы GUID являются псевдослучайными, но компьютер никогда не может генерировать истинные случайные значения. Я спорю, что их «легко» угадать. Не могли бы вы уточнить свое объяснение, что вы можете рассчитать все следующие GUID? (пример или источник) - person Kirk Broadhurst; 12.09.2009