пожалуйста, проверьте или объясните, как это сделать правильно.
Я позволяю пользователю создавать ключи от клиента через защищенный сервер.
Я запрашиваю у пользователя пароль на клиенте, затем отправляю хешированный пароль на сервер. Сервер генерирует свежие ключи и шифрует их с помощью хэша пароля + сгенерированного верификационного ключа. Зашифрованные ключи сохраняются на сервере. Я возвращаю клиенту ключ подтверждения (вероятно, его также следует зашифровать с помощью хэша пароля, верно?)
Когда пользователю необходимо получить доступ к своему адресу, чтобы совершить транзакцию или что-то подписать, он должен отправить ключ подтверждения и хэш своего пароля.
Эти ключи и адреса предназначены для краткосрочного или одноразового использования. Однако я обеспокоен тем, что пользователь может забыть свой пароль и хочет, чтобы он проверил правильность, прежде чем выбрать ключ для использования. Итак, мой план состоит в том, чтобы сохранить хэш их хэша пароля в клиентской базе данных, чтобы подтвердить правильность их пароля, прежде чем предоставить им адрес для финансирования.
Это звук и безопасность? Какие дополнительные шаги я могу предпринять, чтобы ужесточить процесс? Если я неправильно изобретаю колесо, пожалуйста, предложите протокол для подражания.
Спасибо за любое внимание и руководство!