0

フロントエンドがjavascript(バックボーン)にあり、バックエンドがcodeigniter(php)にあるアプリケーションに取り組んでいます。秘密鍵を使用してバックエンドでメッセージを暗号化し、同じ秘密鍵を使用して JavaScript からそのメッセージを復号化できる方法が必要です。基本的に、ユーザー認証にはこのフローが必要です。

私はインターネット上でそのような組み合わせを見つけることができないので、それは不運であることが判明しました. このワークフローにはどのような方法を使用できますか?

ありがとう

4

1 に答える 1

0

HTTPSを使用することが、理にかなっている唯一の答えです。悪意のあるユーザーがスクリプトを挿入してフロントエンドを作成する代わりに、パスワードをプレーンテキストで送信したり、攻撃者が制御するサーバーに送信したりする可能性があるため、Javascript暗号化に依存することは良くありません。

HTTPSとSSL/TLSには問題がありますが、これはWebアプリケーションの通信チャネルを保護するための標準的なメカニズムです。この分野の専門家によって広範囲にレビューされており、さまざまな障害モードや攻撃シナリオから保護されています。

例:コメントでは、暗号化に単一の静的キーを使用するようです。キーをクライアントに送信する必要があるので、これを安全に行うにはどうすればよいですか?ログインページにアクセスし、それを使用して他のユーザーの通信を復号化することにより、ユーザーがキーを合法的に取得できないのはなぜですか?1つのキーで十分なメッセージが送信された場合、新しいキーに移動するためのメカニズムは何ですか?

この種のシナリオはHTTPSでカバーされています。Webアプリで「本物の」何かをしている場合は、証明書に数ドル支払う必要があるかもしれませんが(最近は実際には数ドルです)、それが実際の方法です。

于 2013-02-13T16:53:07.877 に答える