Подписание файла cookie с помощью HMAC - вполне разумный способ сделать это. По сути, HMAC сворачивает в хэш секретный ключ, известный только вашему серверу, поэтому даже тот, кто знает алгоритм, не может сгенерировать HMAC, который будет признан действительным, не зная ключа. Простое использование простого старого хэша тривиально обходится, потому что злоумышленник может генерировать действительные хэши своих собственных данных, и вся «соль» в океане не сможет это исправить.
Даже если вы использовали идентификатор сеанса вместо хранения значимых значений, вам все равно нужно быть осторожным, чтобы злоумышленник не мог предсказать другой действительный идентификатор сеанса, и вместо этого отправил его вам, таким образом угоняя сеанс другого пользователя. Я полагаю, что на Hotmail действовал настоящий эксплойт, который сработал таким образом.
Шифрование cookie помогает вам только в том случае, если там есть что-то, что вы не хотите, чтобы пользователь видел. Хуже того, шифрование без HMAC дает ложное чувство безопасности, потому что файл cookie, который просто зашифрован, все еще уязвим для манипуляций с зашифрованным текстом для изменения частей открытого текста.
Итак, не просто хэшируйте, используйте HMAC!