2012-08-17 89 views
0

我在应用程序中有一段代码,它在运行时检索应用程序证书并将其用作加密某些机密信息的密钥。Android apk安全性如何安全

某些攻击者是否有可能通过反编译我的代码来获取该证书byte[]或者该证书是否仅对我的应用程序可见?

这里是我拿到证书:

PackageManager pm = this.getPackageManager(); 
    String packageName = this.getPackageName(); 
    int field = PackageManager.GET_SIGNATURES; 
    PackageInfo packageInfo; 

    packageInfo = pm.getPackageInfo(packageName, field); 

    Signature[] signatures = packageInfo.signatures; 

    // and here we have the DER encoded X.509 certificate 
    byte[] certificate = signatures[0].toByteArray() 

回答

2

PackageInfo签名的公钥,

这不是私钥。您的手机上安装的任何应用都可以访问此密钥。

2

申请证书是公开的;用于签署应用程序的私钥永远不会留下您的占有(除非您放弃)。私钥不能从公钥重建。他们能够解密你的机密信息的唯一方法就是通过某种暴力手段,最终没有防御。对你来说幸运的是,运行这种蛮力尝试的代价非常大,以至于除非他们认为里面存在核秘密等,否则他们的正确思想中没有人会尝试。