Токен входа с sha256 - PullRequest
       18

Токен входа с sha256

3 голосов
/ 01 декабря 2011

Мне нужно создать маркер входа, который я могу передать с сайта 1 на сайт 2 в строке запроса.Мне не нужно передавать имя пользователя или идентификатор, мне просто нужно знать на сайте 2, что у пользователя есть действительный логин на сайте 1.

В настоящее время я создаю токен, подобный этому

timestamp|sha256(timestamp+secret)

На сайте 2 я создаю sha256 заданной метки времени + секрет и сопоставляю его с заданным хешем.Я также проверяю метку времени и не проверяю, старше 5 минут.

Это достаточно безопасный способ сделать это?

Было бы легко взломать sha256 иполучить секрет?

Ответы [ 2 ]

4 голосов
/ 01 декабря 2011

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

Чтобы взломать hmac, вы должны взломать секрет, используя код аутентификации (хешированная часть сообщения). Злоумышленник знает временную метку, поэтому он может угадывать секрет. Просто сделайте секрет действительно большим и очень случайным, например, вывод из / dev / random - хороший выбор.

1 голос
/ 01 декабря 2011

Как говорит @Rook, вы должны использовать HMAC для аутентификации ваших токенов.

Кроме того, вы должны убедиться, что ваши токены не могут быть украдены.Например, если вы отправите этот токен в виде открытого текста - либо с сайта 1 пользователю, либо с пользователя на сайт 2, любой, кто слушает (например, Firesheep), также может «доказать», что у него есть учетная запись.Лучшее, что вы можете сделать, чтобы предотвратить это, это использовать SSL / TLS.

...