檢查行動應用程式所有蒐集之安全敏感 性資料,是否皆已於應用程式商店或行動應用程式內聲明,並取 得使用者同意
可在 App Store 或 Goolge Play 商店說明頁、App 內使用者條款或隱私權聲明,使用了哪些敏感性資料(姓名、地址、電話、身分證字號、手機號碼等)用途說明
行動應用程式應提供使用者拒絕蒐集安全敏感性資料之權利
使用者可以拒絕提供資料的選項,最單簡單的作法就是:註冊頁面,點擊按鈕同意後及表示同意利用資料
檢查行動應用程式是否於應用程式商店或行動應用程式內聲明。
像是記憶帳號 勾選這就是一種取得使用者同意後記憶的表現
檢查行動應用程式是否提供使用者拒絕儲存安全敏感性資料之選項
如果沒有允許情況下,是不能App儲存相關資料
檢測會查找檔案(userDefault /sharedpreferences)或日誌(log)內等相關地方
4.1.2.3.4 行動應用程式應避免在關閉及登出後將安全敏感性資料儲存於冗餘檔案或日誌檔案中
4.1.2.3.5 行動應用程式應避免將安全敏感性資料儲存於冗餘檔案或日誌檔案中
4.1.2.3.4 和 4.1.2.3.5 相似的議題,因此一起解釋
4.1.2.3.4是針對 L1和 L2 而4.1.2.3.5針對 L3
差別在於 L3 是無論何時都不能將敏感資料放在檔案或日誌內
安全敏感性資料應採用適當且有效之金鑰長度與加密演算法,進行加密處理再儲存
檢查行動應用程式之非冗餘檔案及非日誌檔案內之安全敏感性 資料是否採用金鑰有效長度為 128 位元(含)以上之先進加密 標準(AES)。
檢查行動應用程式之非冗餘檔案及非日誌檔案內之安全敏感性 資料是否採用三重資料加密演算法(Triple DES)
檢查行動應用程式所使用之加密函式之金鑰是否採用符合 ANSI X9.17、FIPS 140-2、NIST SP 800-22 及 SP 800-90A (CAVP Testing: Random Number Generators) 至少其中一項之安 全的亂數產生函式
以下幾種情況下都可以符合這條檢測
安全敏感性資料應儲存於受作業系統保護之區域,以防止其他應用程式未經授權之存取
即使資料加密也只能放在應用程式授權的範圍 (userDefault /sharedpreferences)
Android 比較需要注意這點,Android可以將資料寫在其他App 可存取到的位置(SD卡等)
安全敏感性資料應避免出現於行動應用程式之程式碼
這裡敏感性資料包含但不限於密碼、身分證字號、對稱式金鑰(AES/TDES)禁止用 HardCode 方式寫在APP 內
,避免被掃出來
行動應用程式於非使用者主動進行的畫面擷取時應主動警示使用者
這條是3.1 版本新的項目,主要針對 Android 系統,系統被背景命令觸發時發動的結圖(使用命令方式,非使用者操作手機),之前作法為偵測使用者截圖提醒使用者,但在Android 系統命令觸發時,App內並無手段可以偵測
adb shell screencap - p /sdcard/Download/1.png
上行程式碼為在debug模式並執行程式碼, 若可以正常被截圖,此項目就會視為不符合
由於這條很靠北特別,只能在有帳密個資等全部頁面加上 FLAG_SECURE
,才能通過檢驗
window.addFlags(WindowManager.LayoutParams.FLAG_SECURE);
行動應用程式透過網路傳輸安全敏感性資料,應使用適當且有效之金鑰長度與加密演算法進行安全加密。
檢查行動應用程式是否採用 TLS 1.1(含)以上版本加密協定傳輸 安全敏感性資料
檢查行動應用程式是否採用金鑰有效長度為 2048 位元(含)以上 之 RSA 加密演算法,或採用金鑰有效長度為 224 位元(含)以上 之橢圓曲線加密演算法(Elliptic Curve Cryptography)。
檢查行動應用程式是否採用金鑰有效長度為 128 位元(含)以上 之進階加密標準(AES),或採用三重資料加密演算法(Triple DES)
網路傳輸,確保連線資源api 都有採用 https ,需要採用 TLS1.1+以上, 金鑰長度及演算法可以
檢查SSL 安全 SSL Test (https://www.ssllabs.com/ssltest/)
此網站可以測試 SSL的設定是否正確以及存在的弱點,最後會替這個網站的SSL各項安全性評分,並以打上一個平均等第成績,最高為「A+」
分享安全敏感性資料 前,是否於行動應用程式內或應用程式商店聲明
分享定義為,在不同的 App 間傳遞的資料,是否有安全性敏感資料
若有此種機制,可以在會員條款或隱私權政策上說明
行動應用程式應提供使用者拒絕分享安全敏感性資料之權利
類似 FB 授權 / Line 身分授權取得身分資料,讓使用者自行決定是否授權給這APP,這種方式就是常見控管方法
行動應用程式分享安全敏感性資料時,應避免未授權之行動應用程式存取
分享資料也要最小限度的提供資料,並管控使用範圍
此參考項目非檢測應用程式本身可以判定安全敏感性資料被利用與否,建議:
(1) 行動應用程式使用安全敏感性資料前,於行動應用程式或行動 作業系統業者、行動裝置製造業者及行動通信業者提供之行動 應用程式商店聲明。
(2) 行動應用程式使用安全敏感性資料前,於行動應用程式或行動作業系統業者、行動裝置製造業者及行動通信業者提供之行動 應用程式商店取得使用者同意。
在使用資料前,不好檢測與查找,因將此項列為參考
建議在商店說明頁、個人條款或隱私權前說明清楚即可
因檢測所須時間、複雜度或目前尚無通用檢測方法,造 成檢測難以執行或重複檢測時結果不一致。 說明:此參考項目非檢測應用程式本身可以判定安全敏感性資料 被利用與否,建議提供使用者拒絕使用安全敏感性資料之選項。
同前項原因相同,在商店說明頁、個人條款或隱私權前說明清楚,讓使用者自行選擇,或發生爭議時有依據
(1) 行動應用程式於通行碼設定頁面,提醒使用者通行碼至少 6 個 字元。
(2) 行動應用程式於通行碼設定頁面,提醒使用者通行碼包含數字 與英文大小寫字母。
(3) 行動應用程式於通行碼設定頁面,提醒使用者避免使用個人相 關資料做為通行碼。
通常通行碼,為類似OTP 應用的建議規範,不過由於OTP 已經採用電話設備驗證,因此只是建議方式並不直接有安全性問題
建議行動應用程式於通行碼 設定頁面,提醒使用者定期更改通行碼(至多不超過 90 天)
OTP 有效時間,建議設定有效期限,並適當取得新通行碼
建議僅在聲明範圍內使用安全敏感性資料
這個由於檢測無法有效的被驗證,立意為不要非法蒐集及使用聲明以外的用途
建議行動應用程式安全敏感性資料刪除介面之功能被執行後,安全敏感性資料不以任何形式存在於行動裝置。
無法檢測出使用者資料使用被刪除了因此無法檢測此項目