2011-01-12 2 views
9

私はDropbox APIを使用しています。サンプルアプリでは、これらの行が含まれていますAndroidでAPIキーを保存すると、十分な解剖ができますか?

// Replace this with your consumer key and secret assigned by Dropbox. 
// Note that this is a really insecure way to do this, and you shouldn't 
// ship code which contains your key & secret in such an obvious way. 
// Obfuscation is good. 
final static private String CONSUMER_KEY = "PUT_YOUR_CONSUMER_KEY_HERE"; 
final static private String CONSUMER_SECRET = "PUT_YOUR_CONSUMER_SECRET_HERE"; 

私は、「セキュリティがない秘密」マントラをよく知ってるし、難読化は本当にわずかに鍵を抽出するために必要な努力の量が増加します。私は彼らの声明「Obfustication is good」に同意しない。キーを保護するために私は何をすべきですか? obfustication良い、または私はもっと精巧な何かを考慮する必要がありますか?

+2

https://groups.google.com/d/topic/android-developers/quD5gYIZ4Ig/discussionここでこのトピックの説明をよく読んでください。 –

答えて

5

あなたはそれを助けることはできません。ユーザー(攻撃者)が保護されたデータと保護されていないコードを持っている場合、ユーザーは最終的にデータにアクセスできます。それはそれと同じくらい簡単です。適切なタイミングでデバッガとブレークポイントが必要なだけです。それは、自由時間と決断がたくさんあります。

秘密があなたの目的に合っているかどうかは、あなたのビジネス特質に依存します。しかし、一般にモバイル業界では、顧客がデータの盗難を心配している場合は、高度な盗難や紛失のコントロールを実装します。リモートワイプ、強制的な画面ロックなどのようなものは、私はそれがすべてのものを複製することは、アプリケーションプログラマーによるとは思わない。

2

セキュリティは完璧になることはありません。どのくらいの仕事をしたいのかはあなた次第です。コンシューマーシークレットを複数のStringに分解して、最小限のセキュリティを提供する簡単な変更を行うことも、別の方法でシークレットを表すアルゴリズムを作成することもできます(文字列のXスペースごとに使用されない文字の挿入おそらく数値表現に基づいて、各文字を変更すること)。

あなたは仕事対利益を考慮する必要があります。これは、あなたといくつかの友人が使用しようとしているアプリケーションであれば、おそらくそれほど重要ではありません。これが1000万人が使用するアプリになる場合、セキュリティは明らかに懸念事項です。

関連する問題