0

たとえば、Google サービスにアクセスするインストール済みアプリケーション (デスクトップ アプリケーションと Android アプリケーション) を実装しているとします。ユーザーが何度もログインする必要がないようにするために、そのユーザーのローカル デバイスに保存することにしましたrequestTokenaccessToken

http://blog.doityourselfandroid.com/2011/08/06/oauth-2-0-flow-android/のようないくつかのチュートリアルを行った後、これがほとんどの人がしていることであることがわかりました。

しかし、私の懸念は、そうすることは安全ですか?ハッカーがユーザーのローカル デバイスから保存requestTokenされたファイルを取得した場合はどうなりますか? accessTokenセキュリティが侵害されますか? ハッカーは本物のユーザーになりすますことができますか?

アプリケーションがオープンソースになることに注意してください。したがって、誰でも特定の Google API にclientIDアクセスできます。clientSecret

4

1 に答える 1

2

アプリケーションでアプリトークンも使用しました。プライベート モードで SharedPrefs に次のように保存しました。

final SharedPreferences prefs = getSharedPreferences(
                "app token", Context.MODE_PRIVATE);

sharedPref をプライベート モードで保存すると、呼び出し元のアプリケーション (または同じユーザー ID を共有するすべてのアプリケーション) のみがアクセスできます。また、ユーザーがログアウトするたびに、すべての sharedPrefs をクリアして、デバイスのローカル ストレージにアプリ トークンのコピーが保存されないようにします。これは安全に使用できる必要があり、セキュリティが確保されます。

更新: デバイスがルート化されている場合、sharedPrefs ファイルが公開される可能性があるため、アプリ トークンを SharedPreference に保存しないでください。AccountManagerを使用してトークンを保存できますが、デバイスがルート化されている場合も公開できます。最善の方法は、強力な暗号化アルゴリズムでトークンを暗号化し、それを AccountManager に保存することです。暗号化に使用されるキーは、すべてのユーザーとデバイスの組み合わせで一意である必要があります。これにより、キーが侵害された場合でも、ハッカーはその特定のユーザーのデータのみを取得でき、すべてのデータを取得できなくなります。

于 2012-06-07T06:41:14.517 に答える