2012-08-17 140 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

申請證書是公開的;用於簽署應用程序的私鑰永遠不會留下您的佔有(除非您放棄)。私鑰不能從公鑰重建。他們能夠解密你的機密信息的唯一方法就是通過某種暴力手段,最終沒有防禦。對你來說幸運的是,運行這種蠻力嘗試的代價非常大,以至於除非他們認爲裏面存在覈祕密等,否則他們的正確思想中沒有人會嘗試。