首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >google play上架不安全的加密方式com.tencent.open.utils.d.a?

google play上架不安全的加密方式com.tencent.open.utils.d.a?

提问于 2023-02-02 14:53:51
回答 0关注 0查看 268

不安全加密的補救措施

以下資訊以應用程式含有不安全加密模式的開發人員為對象。即是,利用靜態運算的私密金鑰、鹽或初始化向量 (IV) 產生的加密文字。請查看您應用程式的「Play 管理中心」通知,以尋找不安全加密的所在位置。

如何修正「不安全加密模式」警示

請查看您應用程式中用於加密操作的靜態運算金鑰、初始化向量和/或鹽,並確保這些值安全建構。例如,以下程式碼使用可靜態運算的私密金鑰和可靜態運算的初始化向量:

  // Console alert refers to this method   public byte[] encryptionUtil(String key, String iv, byte[] plainText) {     Cipher cipher = Cipher.getInstance(“AES/GCM/NoPadding”);     SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), “AES”);     GCMParameterSpec paramSpec = new GCMParameterSpec(256, iv.getBytes());     cipher.init(Cipher.ENCRYPT_MODE, keySpec, paramSpec);     return cipher.doFinal(plainText);   }

// The unsafe key and initialization vector are here and should be changed   byte[] cipherText = encryptionUtil(“abcdef...”, “010203040506”, plainText);

靜態運算值 靜態運算值是每次執行您的應用程式時均相同的值。靜態運算的加密值可以從您的應用程式中擷取,並用於攻擊應用程式的加密資料。即使您使用過往以複雜方式操縱金鑰、初始化向量和鹽,若這些操縱在每次執行程式時相同,它們仍然不安全。

Android 最佳策略 建議您使用 Jetpack Security 進行對稱加密。如果您的應用程式加密 API 金鑰、個人識別資料 (PII) 或其他敏感資料,EncryptedSharedPreferences 可用於安全儲存這些資料,而無需擔心私密金鑰、初始化向量和鹽的出現。此頁面提供更多最佳策略和範例。為了將資料安全傳輸到其他系統,開發人員應該使用 TLS/SSL 保護傳輸中的資料。

Jetpack Security 使用 Google 開放原始碼項目 Tink 處理對稱的身分驗證加密。對於有關低級加密操作的進階使用案例,建議直接使用 Tink。

如果上述 Android 最佳策略不符合您的使用案例,且您必須明確管理金鑰、初始化向量和鹽,則建議遵循以下標準 :

  1. 私密金鑰:對稱私密金鑰必須無法預測且私密。對於加密本機資料,開發人員應該使用加密安全的隨機性 (如果使用 PBEKeySpecs,則從使用者產生的資料) 建構私密金鑰,並使用 AndroidKeystore 儲存私密金鑰。
  2. 初始化向量:初始化向量在多則訊息中必須獨特且無法預測的,但不需要私密。開發人員應該使用加密安全的隨機性建構初始化向量。開發人員應該儲存或傳輸初始化向量以及相關的加密文字。
  3. 鹽:鹽值在多個雜湊中必須是獨特且無法預測,但不需要保密。開發人員應該使用加密安全的隨機性建構鹽。開發人員應將鹽與相關雜湊一併儲存或傳輸。

下一步

  1. 使用上文強調的步驟更新您的應用程式。
  2. 登入「Play 管理中心」並提交您應用程式的更新版本。

您的應用程式將再次接受審查。如果未正確更新應用程式,您仍會看到警告。 此程序可能需時幾小時。

我們樂意提供協助

如有關於此漏洞的技術問題,請在 Stack Overflow 發佈並加上「android-security」標籤。

就此文章提供意見

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档