天天看點

安卓應用安全指南 4.6.2 處理檔案 規則書

安卓應用安全指南 4.6.2 處理檔案 規則書

原書: Android Application Secure Design/Secure Coding Guidebook 譯者: 飛龍 協定: CC BY-NC-SA 4.0

遵循以下規則:

4.6.2.1 檔案原則上必須建立為私有(必需)

如“4.6 處理檔案”和“4.6.1.3 使用公共讀/寫檔案”所述,無論要存儲的資訊的内容如何,原則上都應該将檔案設定為私有。 從 Android 安全角度來看,交換資訊及其通路控制應該在 Android 系統中完成,如内容供應器和服務,并且如果存在不可能的因素,則應該考慮由檔案通路權限作為替代方法。

請參閱每個檔案類型的示例代碼和以下規則條目。

4.6.2.2 禁止建立允許來自其他應用的讀寫通路的檔案(必需)

如“4.6.1.3 使用公共讀/寫檔案”中所述,當允許其他應用讀取/寫入檔案時,存儲在檔案中的資訊無法控制。 是以,從安全和功能/設計的角度來看,不應該用公共讀/寫檔案共享資訊。

4.6.2.3 使用存儲在外部存儲器如 SD 卡)的檔案,應該盡可能最小(必需)

如“4.6.1.4 使用外部存儲器(公共讀寫)檔案”中所述,出于安全和功能的考慮,将檔案存儲在外部存儲器(如 SD 卡)中,會導緻潛在的問題。 另一方面,與應用目錄相比,SD 卡可以處理更大範圍的檔案,并且這是可以用于将資料帶出到應用之外的唯一存儲器。 是以,可能有很多情況下必須使用它,取決于應用的規範。

将檔案存儲在外部存儲器中時,考慮到未指定的大量應用和使用者可以讀/寫/删除檔案,是以有必要考慮以下各點以及示例代碼中提及的要點,來設計應用。

  • 原則上,敏感資訊不應儲存在外部存儲器的檔案中。
  • 将敏感資訊儲存在外部存儲器的檔案中時,應将其加密。
  • 将檔案儲存在外部存儲器時,如果被其他應用或使用者篡改,将會出現問題,應該用電子簽名儲存。
  • 當讀入外部存儲器中的檔案時,請在驗證讀取的資料安全性後使用資料。
  • 應該這樣設計應用,假設外部存儲器中的檔案始終可以被删除。

請參考“4.6.2.4 應用應該在考慮檔案範圍的情況下設計”。

4.6.2.4 應用應該在考慮檔案範圍的情況下設計(必需)

儲存在應用目錄中的資料,被以下使用者操作删除。 它與應用的範圍是一緻的,并且與應用的範圍相比,它的獨特之處在于它比應用的範圍小。

  • 解除安裝應用
  • 删除每個應用的資料和緩存(設定=>應用=>選擇目标應用)

儲存在外部存儲器中的檔案,如 SD 卡,檔案的範圍比應用的範圍長。 另外,還需要考慮以下情況。

  • 檔案由使用者删除
  • 取出/替換/取消挂載 SD 卡
  • 檔案由惡意軟體删除

如上所述,由于檔案範圍取決于檔案的儲存位置而有所不同,不僅從保護敏感資訊的角度,而且從實作應用的正确行為的角度,有必要選擇檔案儲存位置。

繼續閱讀