Java - хеширование / шифрование на серверах - PullRequest
0 голосов
/ 28 марта 2012

Я ищу способ безопасного хеширования данных в куки.У меня есть ферма серверов, и любой из серверов может выдавать Cookie, и любой из серверов должен иметь возможность проверять содержимое cookie.

Я думаю о том, чтобы сделать что-то вроде:

Cookie-содержимое:

SHA(<secret-uuid><user-id><expiration-date>)|<user-id>|<expiration-date>

Например:

122233344444|bob|2012-01-01-12-01-03

При проверке cookie-файла я могу просто повторно хэшировать «данные открытого текста» в хэшированное значение:

SHA1(<secret-uuid>bob2012-01-01-12-01-03) == 122233344444

В настоящее время я должен вручную установить a в файле конфигурации и убедиться, что они одинаковы для всех серверов в ферме.

Существует ли какой-либо "безопасный" способ программно создать SECRET-UUID,будет одинаковым на всех машинах?Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 28 марта 2012

То, что вы ищете, это HMAC .Вы должны использовать алгоритм HMAC, а не пытаться изобретать свой собственный - он предназначен для предотвращения нескольких возможных атак против наивных способов создания хеша с ключами.

Ключ (то, что вы называете «секретным uuid»)распределяться по всем машинам, и не существует магического криптографического способа избежать этого.Предположительно у вас есть какой-то способ развернуть код и конфигурацию;Вы должны использовать тот же метод для распространения ключа.

Одной из альтернатив может быть «сервер куки», который создает и проверяет куки;отдельные машины могут запрашивать его по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...