2016-04-03 4 views
0

私は、音楽をストリーミングするモバイルアプリケーションとWebアプリケーションを持っています。ここに私の実際のアーキテクチャです:モバイル/ Webクライアントとバックエンド間のコミュニケーションを排他的に信頼できるようにするにはどうすればよいですか?

  • RESTfulなサービス(春ブーツ)
  • 春のセキュリティは
  • のOAuth2
  • HTTPS

質問CAによって証明ドメインである: どのようにすることができます私は私のモバイルクライアントとバックエンドの間でのみコミュニケーションをしますか? CRSFなし(モバイルアプリケーションのための

  1. ワンバックエンド:2つのWebサービスを作成 -(Webクライアントとバックエンドの間で同じことが)

    私の提案は二つの部分に問題を分割することです保護)をユーザ証明書で保護します。

  2. ウェブプレーヤーのための1つのバックエンド(CRSF保護付き)は、ウェブプレーヤーのドメインからのリクエストのみを受け入れます。モバイル問題については

私はHTTPSを復号化し、URL、ヘッダ、トークンのような重要な情報を取得し、フィドラーを使用してプロキシ経由で私の携帯の要求を傍受することができますよ。

しかし、バックエンドとモバイルアプリの間の信頼できる通信のように、別のCAが傍受した場合にリクエストが拒否されないようにする方法があることはわかっています。モバイルソリューションではどうすればいいですか?ウェブプレーヤーの問題については


ブラウザは誰にも、ヘッダー、URLとトークンが表示されますので、彼の問題は大きいです。

モバイルアプリのようにこれらの情報を非表示にすることはできません。バックエンドはウェブプレーヤーのドメインからのリクエストのみを受け入れることができます。この場合の最良の解決策は何ですか?


UPDATED

逆コンパイル、モバイルクライアントは、私が想像よりも簡単です。キー、トークン、およびURLを保護することはできませんから、バックエンドのユーザーのトークンごとの要求を制限するための提案はです。しかし、私はどのようにWebプレーヤーでそれを行うことができますか?私は誰に対しても同じトークンを持っています(ユーザーの認証なし)。

モバイルクライアントの逆コンパイルに関するこのドキュメントが見つかりました。 http://pt.slideshare.net/denimgroup/developing-secure-mobile-applications-17732256

+1

クライアントを制御することはできません。誰かがいつもあなたのクライアントを逆コンパイルして、彼らが望む変更を加えることができます。 –

+0

@NeilMcGuigan、まあ、私は新しい提案で私の質問を更新しました。ありがとう –

答えて

0

asymmetric cryptographyを使用することをお勧めします。サーバーから公開鍵を要求し、それに続くすべての通信を暗号化します。また、メッセージを復号化するための秘密鍵があるだけなので、バックエンドだけがあなたに送信しているものを理解します。

ユーザーは、暗号化されていないデータ をクライアントメモリから直接抽出することができます。そして、あなたはこれを禁止する本当の方法はありません!

関連する問題