Я разрабатываю дополнительный модуль безопасности для веб-приложения, в котором предлагается ввести PIN-код, случайно сгенерированный при регистрации пользователя. PIN-код хранится в AES-128, зашифрованном в db и отправленном sms новому пользователю.Запросить у пользователя частичный PIN
Пользователь будет запрашивать PIN-код при возникновении определенных ситуаций (например, «странные» обращения или необычные операции), - и я хотел бы, чтобы пользователь не вводил весь ПИН-код, а всего 2 цифры (для пример: 1-й и 6-й).
2 4 6 2 9 1 8 3 -> entire PIN
^---------^---- -> digits i'm asking
Мой вопрос: является более безопасным способом выбора цифр, которые нужно задать? Должен ли я выбирать их случайным образом (но потенциальный злоумышленник, которому принадлежит часть булавки, может повторять попытку, пока запрашиваемые ему цифры не будут запрошены), или я должен каждый пользователь запрашивать одни и те же цифры - возможно, хранить свои индексы, зашифрованные с помощью PIN-кода, или генерировать их с функцией, параметризованной самим ПИН?
Спасибо.
Любопытно, как вы можете проверить эти две цифры, учитывая, что полный ПИН-код хэширован? – henko
Вам нужно было бы хэшировать каждую цифру с ее местоположением в пределах ПИН-кода, я думаю! Очень открыт для того, чтобы быть грубым. –
PIN-код не хеширован, а зашифрован. – geezmo