Допустим, у меня есть криптографически безопасная случайно сгенерированная строка, и я добавляю к ней разделитель и идентификатор пользователя пользователя и использую его как идентификатор сеанса. Вариант использования - предотвращать столкновения. Будет ли это сделать мою систему менее безопасной, чем если бы я просто использовал произвольно сгенерированную строку?Является ли добавление идентификатора пользователя к идентификатору сеанса небезопасным?
ответ
Давайте разделим ответ на два предположения:
Если вы уже отправить идентификатор пользователя каким-либо другим способом (другое поле, другое печенье, и т.д.), и это будет видно злоумышленнику доступ к идентификатору сеанса то ваш подход не добавляет поверхности атаки к реализации, и поэтому риск остается неизменным.
Если идентификатор пользователя иначе не отправляется, вы предоставляете злоумышленнику дополнительную информацию, которая может быть использована в других атаках. Насколько это опасно, зависит от важности идентификатора пользователя в вашем приложении.
Наконец, я беспокоюсь о ваших рассуждениях. Если есть какая-либо разумная математическая вероятность столкновения, тогда ваш sessionID недостаточно длинный для цели, в которой вы пытаетесь его использовать. Err на безопасной стороне.
Если столкновения представляют собой риск, то ваш идентификатор сеанса не содержит почти энтропии для обеспечения безопасности.
От OWASP Session Management Cheat Sheet:
Если идентификатор сеанса с энтропией 64 бита используется, он будет принимать атакующие по крайней мере 292 лет, чтобы успешно угадать действительный идентификатор сеанса, предполагая, что злоумышленник может попытаться 10000 догадок в секунду с 100000 действительных одновременных сеансов, доступных в веб-приложении
Так что, если ваш идентификатор сеанса может быть успешно догадывался даже не пытаясь, у вас есть большие проблемы. Если сама система генерирует идентификаторы, которые сталкиваются, то ваш источник энтропии нуждается в срочном пересмотре.
Чтобы ответить на ваш вопрос, риск введения идентификатора пользователя заключается в том, что если ваши идентификаторы сеанса когда-либо просачиваются, злоумышленник может мгновенно идентифицировать сочные. То есть, администраторов или учетных записей root. Кроме того, поскольку вы добавляете код для этого, сложность вашего приложения увеличивается. Безопасность лучше всего, когда она хранится максимально просто для устранения рисков, с которыми сталкивается приложение. И дополнительный код означает больше поверхности атаки и дополнительную возможность внедрения уязвимостей.
Таким образом, убедитесь, что ваши идентификаторы сеанса имеют энтропию не менее 64 бит и что источник энтропии является хорошим (например, используйте CSPRNG, а не PRNG или используйте источники энтропии, уникальные для вашего приложения).
- 1. Добавление метода к идентификатору идентификатора asp.net
- 2. Является ли этот код небезопасным?
- 3. Является ли giflib 5.1.2 небезопасным?
- 4. Является ли javascript alert() небезопасным?
- 5. Является ли этот код небезопасным?
- 6. Доступ к идентификатору пользователя весной
- 7. Является ли добавление класса или идентификатора к хорошей теге заголовка?
- 8. Повышает ли безопасность идентификатора сеанса?
- 9. Является ли Access-Control-Allow-Origin: * небезопасным?
- 10. Является ли это перенастройкой PHP небезопасным?
- 11. Является ли этот запрос действительно небезопасным?
- 12. Является ли этот код непереносимым или небезопасным
- 13. Является ли maxOccurs = «неограниченным» небезопасным в XSD?
- 14. Является ли делегат по-прежнему небезопасным?
- 15. перенаправление в jsp добавление идентификатора сеанса к переменным GET
- 16. Насколько опасный код является небезопасным?
- 17. Сохранение идентификатора пользователя в переменной сеанса
- 18. Как найти имя пользователя из идентификатора сеанса?
- 19. не является угловым решением ui-router небезопасным?
- 20. Повторное использование идентификатора сеанса
- 21. Проверка состояния сеанса с помощью идентификатора сеанса
- 22. Добавление идентификатора к существующему проекту
- 23. Переменные сеанса PHP -> Доступ к другому уникальному идентификатору
- 24. Является ли хорошей практикой доступ к идентификатору кнопки в цикле?
- 25. Является ли memcpy() небезопасным в Mac OS X?
- 26. Является ли добавление второй колонки идентификатора полезной для индексации?
- 27. Добавление идентификатора к элементу ввода
- 28. Как получить доступ к идентификатору сеанса facebook в приложении fbml?
- 29. Является ли Ruby небезопасным для использования в проектах автоматизации тестирования?
- 30. добавление префикса к вашему текущему идентификатору пакета сбрасывает брелок?
Я чувствую, что этот вопрос лучше подходит для http://security.stackexchange.com/ – Derek