Лучшие практики / алгоритм / подход для реализации временного пароля транзакции для банковского / финансового сайта - PullRequest
1 голос
/ 05 января 2009

Каковы лучшие практики для реализации функции временного пароля транзакции для сайта?

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

Пароль должен быть временным и основанным на времени, т. Е. Этот пароль не должен работать после истечения x минут.

Какой алгоритм вы бы порекомендовали? Вы предлагаете отслеживать используемые пароли, то есть хранить использованный пароль в каком-нибудь магазине?

Некоторые веб-сайты используют устройство OneTimePassword. Помимо этого, пожалуйста, выделите любую другую стратегию, которая, по вашему мнению, может быть подходящей.

Любые другие мысли / предложения / алгоритм приветствуются.

Редактировать: На основании вопроса из 'lassevk'

  1. Пароль будет сообщен по электронной почте / телефону / смс.
  2. Третий сайт не задействован.

Требуется это для дополнительного уровня безопасности для критических точек в приложении. Это также может называться «AuthenticationCode».

Ответы [ 2 ]

0 голосов
/ 05 января 2009

Ну, это действительно отличается от учреждений к учреждениям

Создание финансового ПИН-кода на основе сеансов было бы более безопасной стратегией, чем создание ПИН, работающего на определенный период времени.

Если у вас есть ресурсы для отправки SMS на FPIN, то лучше всего будет генерировать FPIN перед каждой транзакцией и отправлять SMS FPIN пользователю, что-то вроде 2FA.

С уважением Азим.

0 голосов
/ 05 января 2009

Изменить после обновленного вопроса :

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

Кроме того, вам понадобится таймер, в основном вы храните время истечения срока действия + пароль где-нибудь, и всякий раз, когда вы проверяете пароль, если время истекло, у вас нет пароля и вы просто его очищаете. .

Если вы инкапсулируете это в некоторый базовый код, который не только проверяет, задан ли правильный пароль, то он должен быть в состоянии ответить на оба вопроса: да , нет и пароль не сохранен , чтобы вы могли дать соответствующее сообщение пользователю.


Пара вопросов:

  • Как бы вы сообщили временный пароль пользователю? SMS
  • Это пароль для того же сайта или он создан для другого, связанного сайта? (т. е. основной сайт вашего банка генерирует или получает пароль, и вы используете его для входа или авторизации транзакции на другом связанном сайте?)

Если ответы:

  • через сайт
  • Нет, тот же сайт

Тогда какой смысл? Что вы надеетесь получить от этого? Каковы конкретные критерии или цели для реализации этой функции?

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