Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: sipsorceryОтветов: 2

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

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

securityguidwindows-server-2003

Ответы

Ответ 1 · рейтинг 6 · ConcernedOfTunbridgeWells

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

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

Ответ 2 · Kirk Broadhurst

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы