- 締切済み
Android、iOSアプリのサーバ連携について
サーバと連携するスマートフォンアプリを作成したいと思っています。 スマートフォン側で実行した結果をサーバにアップロードすることを想定しています。 しかし、単純に実装するとクエリを解析され、スマートフォン以外からのアクセスによりサーバにデータがアップロードされてしまうと危惧しております。 秘密鍵をサーバとアプリで共有して通信しても、アプリをリバース・エンジニアリングされれば無意味と思いますし、一昔前ならIP制限してキャリアからの通信以外を制限すればよかったでしょうが、今だとテザリング等でそれも無意味かと思います。 もし何らかの良い方法があればご教授願いたく、よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
noname#177743
回答No.2
- corokorocoro
- ベストアンサー率29% (63/211)
回答No.1
補足
例えば、何らかのゲームをスマートフォンのアプリで行なって、その結果の得点ランキングを競う場合はどうするのでしょうか? サーバ側はユーザがアップロードしてきたゲームプレイ結果の得点をユーザごとに集計し、ランキングすることになると考えています。 (ガラケーでのモバゲーなどの簡単なフラッシュゲームはそのような仕組みではないかと思っているのですが) この場合、結果送信の際のクエリを解析してしまえば、認証後は得点を改ざんして送信することが可能であると思います。 暗号化すれば、クエリ単体では解析できないでしょうが、リバースエンジニアリングすればサーバに送るクエリやらプロトコルはわかってしまうのではないでしょうか。 フラッシュがどれくらいリバースエンジニアリングしやすいのかは知りませんが、Androidなら簡単です。 それでもガラケーの場合はIPをキャリアで制限するなどすれば、ある程度はデータの正当性を確保できるのではないかと思っていました。 TCPで常時サーバとやり取りをしているとかだと、まだやりようはあるのかもしれませんが、そこまで頑強なサーバを用意することはできません。 TCPでもシミュレータを作れば同じ話のような気はしますが、そこまでする人にはどうしようもない(対策しようがない)とも思います。 しかし、現状のAndroidだと余りにも簡単に改ざんできる気がするので、どうしたものかと考えている次第です。