ほとんどのアプリ開発者は、いくつかのサードパーティライブラリをアプリに統合します。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
}
あなたの意見では、秘密鍵を保存するための最良かつ最も安全な方法は何ですか?難読化、暗号化、どう思いますか?