Android apk证书的安全性如何

时间:2012-08-17 17:03:05

标签: android security certificate apk signature

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

某些攻击者是否可以通过反编译我的代码获取该证书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 个答案:

答案 0 :(得分:2)

PackageInfo签名是公钥,

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

答案 1 :(得分:2)

申请证书是公开的;用于签署应用程序的私钥永远不会离开你的财产(除非你放弃)。无法从公钥重建私钥。他们能够解密你的机密信息的唯一方法是通过某种蛮力尝试,最终没有防御。对你来说幸运的是,运行这种蛮力企图的费用是如此之大,以至于除非他们认为里面有核秘密等,否则他们心智正常的人都不会尝试它。