ほとんどのアプリ開発者は、いくつかのサードパーティ ライブラリをアプリに統合します。Dropbox や YouTube などのサービスにアクセスする場合、またはクラッシュを記録する場合。サードパーティのライブラリとサービスの数は驚異的です。これらのライブラリとサービスのほとんどは、何らかの方法でサービスを認証することによって統合されます。ほとんどの場合、これは API キーを介して行われます。セキュリティ上の目的で、サービスは通常、秘密鍵とも呼ばれる公開鍵と秘密鍵を生成します。残念ながら、サービスに接続するには、この秘密鍵を認証に使用する必要があるため、おそらくアプリケーションの一部になっています。言うまでもなく、これは巨大なセキュリティ問題に直面しています。公開および秘密 API キーは APK から数分で抽出でき、簡単に自動化できます。
これに似たものがあると仮定すると、秘密鍵を保護するにはどうすればよいですか。
public class DropboxService {
private final static String APP_KEY = "jk433g34hg3";
private final static String APP_SECRET = "987dwdqwdqw90";
private final static AccessType ACCESS_TYPE = AccessType.DROPBOX;
// SOME MORE CODE HERE
}
秘密鍵を保管するための最善かつ最も安全な方法は何だと思いますか? 難読化、暗号化、どう思いますか?