9

DropboxAPIを使用しています。サンプルアプリでは、次の行が含まれています。

// 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";

私は「秘密はセキュリティではない」というマントラをよく知っています。難読化すると、キーを抽出するために必要な作業量が実際にはわずかに増加します。私は彼らの「難読化は良い」という声明に同意しません。それでは、キーを保護するにはどうすればよいですか?難読化は十分に良いですか、それとももっと手の込んだものを検討する必要がありますか?

4

2 に答える 2

5

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

機密性が目的に十分かどうかは、ビジネスの詳細次第です。しかし一般的に、モバイルの世界では、データが盗まれることを顧客が心配している場合、高度な盗難および紛失管理を実装します。リモート ワイプ、必須の画面ロックなどです。アプリケーション プログラマーがそれらすべてを複製する必要はないと思います。

于 2011-01-12T17:50:52.423 に答える
2

セキュリティは決して完璧ではないため、どの程度の作業を行うかはユーザー次第です。コンシューマ シークレットを複数の文字列に分割して、最小限の追加セキュリティを提供する単純な変更を行うか、別の方法でシークレットを表すアルゴリズムを作成できます (文字列内の X スペースごとに使用されていない文字を挿入するなど)。おそらく数値表現に基づいて、各文字を変更します)。

仕事と利益を考慮する必要があります。これがあなたと数人の友人が使用するアプリである場合、おそらくそれほど問題ではありません. これが 1,000 万人が使用するアプリになるとしたら、明らかにセキュリティの方が重要です。

于 2011-01-13T05:36:05.073 に答える