安全なログインを必要とする C# .NET アプリケーションを作成しています。データベースにハッシュとソルトを使用してパスワードを安全に保存するために必要な機能は既にありますが、現在はテスト段階から移行しています。開発前 (ログインは優先されませんでした) は、自分のデータベースに直接接続するだけでした。データベースの資格情報を露骨にコードに保存するため、これは本番アプリケーションにとって安全ではないことは承知しています。代わりに、ユーザー名をリッスンし、データベースからソルトを送り返し、クライアントが入力されたパスワードをハッシュし (ソルトは一時的にローカルに保存されます)、それをサーバーに送り返す単純な非同期 TCP ソケット サーバーを作成することにしました。次に、サーバーはそれらが一致するかどうかを確認します。ユーザーがチェックアウトした場合、true/false を返します。
私はいくつかの調査を行い、TCP 接続の暗号化を検討しましたが、パスワードは既にハッシュされているため、これは本当に必要ですか? それとも、物事全体を行うためのより良い方法はありますか? クライアント/サーバー アーキテクチャがどのように機能するかについての提案を歓迎します。Login は、アプリケーション全体でそれほど重要な役割を果たしているわけではありません。