私はWebサービスを開発しています。現在、どのエンドユーザーがリクエストを実行しているかを知ることができます。したがって、本質的に暗黙的なユーザー(またはユーザーのデバイスである可能性もあります)の識別が必要です。途中の(例えばプロキシ)サーバーの人が何かを偽装しないようにします
私のWebサービスは認証を必要としません。ユーザーはモバイルデバイスとWebサービスの間にプロキシサーバーを配置し、そのプロキシサーバーを通じてすべてのトラフィックをルーティングする可能性があります。私は多くの理由があるかもしれないので、ユーザーがそれをすることを禁止したくないですが、私はまだどのデバイスが現在接続しているか知りたいと思います。
一部の暗号化が必要な可能性がありますか?
悪いことに、このプロキシサーバーは、ユーザー自身がインストールしてリクエストを変更し、ユーザーのデバイスが別のものとしてふりをすることができるということです。私が解決しようとしている問題は、ユーザーが喜んで偽装している可能性があるので、悪意のある人物とは異なります。だから私はこの場合に私のサーバーを守ろうとしています。 編集:いくつかの調査の後、この問題は私のケースでは解決できないと結論づけました。最善の方法は、ユーザーが喜んで自分自身を特定する場合に、ユーザーに利益を提供することでユーザーを信頼させることです。 –
HTTPSはエンドポイントのセキュリティを提供します。プロキシはHTTPSトラフィックを変更することはできませんが、トンネルを通過するだけです。つまり、デバイスに独自のSSL/TLSが実装されていない場合、暗号化される前に敵対者が通信に参加する他の方法があるかもしれません。一般的に言えば、敵対者にあなたが彼から守りたいと思っているリソースにアクセスできるようにするのは建築上の失敗です。 –
私の場合、私は何も保護したくありません(保護は実際にHTTPSを使って実装されています)。私は単にエンドユーザーの一意のIDを持つ必要があります。ユーザー名とパスワードは、多くのデバイスが同じユーザー名とパスワードで接続できるので、この場合は機能しません。セッションはステートレスなサービスであるため、活用することはできません。私たちの場合、ユーザーは独自の信頼できる証明書を使用してプロキシサーバーをセットアップし、それを介して日付を転送することができ、したがって識別が不可能になります。ユーザーが真実から利益を得ることを可能にすることは、これまでのところ良い解決策のように思えます。 –