ユーザーとパスワードの組み合わせを送信する必要があるモバイル アプリケーション用に構築しているフローについて、意見をお願いします。私の考えは、AES-256 を使用してパスワードを暗号化し、ランダムなパスフレーズと IV を生成してキーを生成することです。パスワードが最初に生成されるときに、暗号化されたパスワードと IV. IV と暗号化されたパスワードはサーバーの redis DB に保存され、キーと暗号化されたパスワードはモバイル デバイスにのみ保存されます (IV はデバイスに保存されません)。したがって、ユーザーがログインする必要があるたびに、暗号化されたパスワードとキーがサーバーに送信され、IV が保存されます。サーバーは、送信された暗号化されたパスワードと DB に保存されたパスワードの両方を、送信されたばかりのキーと IV を使用して復号化します。すでにサーバー上にあります。
ユーザーがパスワードを変更したい場合、暗号化されたパスワード、キー、および IV が再度生成され、それらが一致する場合は古いもの (キーと暗号化されたパスワード) も送信され、サーバーで値が更新され、クライアントに通知が送信されます。それらも更新します。
このトランザクションはすべて、SSL トンネリング内でも行われます。
これは安全だと思いますか?そうでなければ、なぜですか?モバイルデバイスからサーバーへの安全な方法でパスワードを暗号化/復号化する他のオプションはありますか?
よろしく。