揭秘315黑客wifi,怎樣保障APP數據安全?
315晚會上曝光WIFI安全,演示微信、郵箱當場被黑,隱私密碼都被披露,風險無處不在。對用戶來說, 阿里移動安全已經支招:1,不接入無密碼或無手機驗證碼的WiFi;2,手機不ROOT、不越獄;3,正規應用商店下載官網APP4;不在陌生APP上提 交個人重要信息;5裝一個安全軟件,如阿里錢盾;養成健康、良好的上網習慣等。而對于開發者來說,怎樣更好的設計移動App來防護WIFI被劫持后的攻擊 呢?
WIFI下的攻擊原理
攻擊者針對WIFI的攻擊,一般通過中間人攻擊,在中間人攻擊過程中,正常APP應用經過WIFI的路徑:
圖一
被黑客劫持,攻擊者與通訊的兩端分別創建獨立的聯系,并交換其所收到的數據,通過中間人攻擊,攻擊者可以進行HTTP或其他明文協議敏感信息的竊取,HTTPS通信破解,DNS劫持等:
圖二
移動應用環境中針對HTTP或其他明文協議如POP3,SMTP,FTP,可通過各種代理、嗅探工具與PC環境下一樣,嗅探所有明文協議的通信。并且攻擊者也能對HTTPS進行攻擊,這些攻擊一般有:
1, 通過SSL分離+HTTPS->重定向等方式對HTTPS進行攻擊,
SSL分離+HTTPS->重定向的原理就是:
- ARP欺騙,使得攻擊者能截獲所有目標主機的網絡流量
- 攻擊者利用用戶對于地址欄中HTTPS與HTTP的疏忽,將所有的HTTPS連接都用HTTP來代替
- 同時,與目標服務器建立正常的HTTPS連接
- 由于HTTP通信是明文傳輸,攻擊者能輕松實施嗅探
現成工具比如ssltrip,dSploit,zANTi都可實施此類攻擊。
2,利用客戶端不校驗SSL證書(包含簽名CA是否合法、域名是否匹配、是否自簽名證書、證書是否過期):
該問題往往由幾種編碼錯誤情況引起:
-自實現的不校驗證書的X509TrustManager接口的Java代碼片段 (即將checkServerTrusted()方法實現為空,即不檢查服務器是否可信):
-不檢查站點主機域名與證書中的域名是否匹配(即將verify()函數直接返回true接受任意主機域名)的Java代碼片段
-接受任意主機域名的Java代碼片段
-當使用webview加載HTTPS網頁時,覆蓋重寫Android系統WebViewClient類中的onReceivedSslError()函數,直接忽略證書校驗失敗并接受任意證書
解決方案
既然劫持有時不可避免,開發者更要責無旁貸保護用戶,阿里移動安全建議開發者不要用HTTP協議來傳輸敏感信 息,在使用HTTPS進行通信時,切記不要同時支持HTTP。如果非得使用HTTP協議來傳送敏感信息,使用聚安全SDK組件對輸入數據進行加密。開發者 還可以使用聚安全SDK組件更多秘籍:通過審核審計,安全加固,對SSL證書進行強校驗;通過數據加密,在WIFI劫持情況下也不影響敏感信息泄露;通過 安全簽名,在WIFI劫持的情況下保證會話完整性,數據不被篡改或者偽造。保證WIFI被劫持的情況下最大限度的降低風險:
圖三