使用不安全加密模式的補救措施

開發人員請注意,如果您的應用程式含有利用低安全 AES/ECB 模式的加密機制,請詳閱本文資訊。如果採用這種低安全模式加密內容,可能會導致密文的安全性較低,進而讓使用者資料暴露在風險中。如要在應用程式中找出低安全性加密模式的位置,請前往您應用程式在 Play 管理中心的通知專區。如果位置結尾是「(in dynamically loaded code)」,代表位置位於應用程式或應用程式所使用程式庫動態載入的程式碼。雖然有其他不建議採用的技術 (有些不建議採用的技術也違反Google Play 政策,且不應使用),應用程式通常會視需求提供功能而使用動態載入的程式碼。此外,封裝程式也能將應用程式程式碼轉換成動態載入的程式碼。

如何修正「不安全的編譯加密模式」快訊問題

請檢查您的應用程式,找出執行個體化加密的位置。如果發現下列設定模式,就表示該部分使用了不安全的 AES/ECB: 

  • "AES"
  • "AES/ECB/NoPadding"
  • "AES/ECB/PKCS5Padding"
  • "AES/ECB/ISO10126Padding"

舉例來說,下列程式碼含有 "AES",表示預設使用 AES/ECB 模式:

// 管理中心快訊是指這個方法
 public byte[] encryptionUtil(String key, String iv, byte[] plainText) {
    Cipher cipher = Cipher.getInstance(“AES”); 
// 預設使用 AES/ECB 模式
    SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), “AES”);
    cipher.init(Cipher.ENCRYPT_MODE, keySpec, paramSpec);
    cipher.init(Cipher.ENCRYPT_MODE, keySpec, paramSpec);

    return cipher.doFinal(plainText);

 }

Google 建議開發人員使用 “AES/GCM/NoPadding”,不要使用上述的不安全模式。

後續步驟

  1. 按照上方強調的步驟更新您的應用程式。
  2. 登入 Play 管理中心,提交應用程式的更新版本。

在您的申請進入審查階段前,新提交的應用程式或更新版本將處於待發布狀態。如果應用程式的問題未確實更正,您仍會收到警告。

我們很樂意提供協助

如有關於安全漏洞的技術問題,請前往 Stack Overflow 張貼問題並加上「android-security」標記。


 

這對您有幫助嗎?

我們應如何改進呢?
false
主選單
16325984120466353035
true
搜尋說明中心
true
true
true
true
true
5016068
false
false