2015-04-07 5 views
1

Рекомендуется хранить сеансы на стороне клиента с помощью зашифрованных файлов cookie с помощью HMAC?Хранение сеансов в зашифрованных куках

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

+0

Эй, я принял некоторые вольности с формулировкой вашего вопроса. Пожалуйста, убедитесь, что вы все еще чувствуете, что это то, о чем вы спрашивали. Если нет, пожалуйста, откат. Я просто пытался сделать это немного яснее. – Gray

ответ

1

Вы не хотите использовать хеш-пароль для чего-либо, кроме проверки учетных данных пользователя. Не уверен, что вы подразумеваете иное, но вы определенно не хотите утечки хешей (частичных или иных) без каких-либо причин.

Вы точно знаете, что шифрование + HMAC может быть нарушено, если злоумышленник обнаруживает ключ (ключи). Вот почему мы должны осторожно охранять ключи. Для злоумышленника невозможно определить ключ из правильно зашифрованного шифра.

Чтобы получить ключи, они должны будут скомпрометировать ваш сервер. Если они могут поставить под угрозу ваш сервер, ничто из этого не имеет значения. Все ваше предложение будет заключаться в том, чтобы заставить их получить два ключа вместо одного. Они имеют доступ к вашим ключам шифрования, поэтому они, вероятно, имеют доступ к вашей базе данных ... поэтому хеши уже выставлены. Это похоже на добавление ров после того, как кто-то уже находится в вашем замке.

Короче говоря, шифрование + hmac не нарушено. Это достаточно для защиты вашего файла cookie, предположительно, что вы его правильно внедрили.

+0

Но если злонамеренный пользователь имеет доступ к моей БД, мне ничего не помогло бы. – Alex

+0

Это правда. Это точно моя точка зрения. Вы не можете проектировать свою систему так, как будто у врага есть ваши ключи. Эти ** ** должны быть секретными. Вы должны доверять шифрованию + иметь хорошие политики об изменении ключей/аудитов/и т. Д. – Gray

Смежные вопросы