文章目錄
- 引言
- I 代碼混淆
- II 敏感邏輯的保護方案
- III 介面安全(網路加密傳輸)
- 3.1 介面安全設計的Checklist
引言
歡迎大家來到#公眾號:iOS逆向的《iOS應用安全》專欄
本文列出學習大綱,同時也可作為大家學習《iOS應用安全》專欄的索引,
文中的藍字都是超級鏈接,點擊進入即可
- 本專欄的整體大綱模塊
1、網路加密傳輸及安全優化:1.1、報文簽名 1.2、SSL證書驗證, Charles再也無法抓你的請求資料;1.3、不走全域proxy的方案;1.4、允許不驗證SSL證書;1.5、攔截請求;1.6、DoH &DoT 1.7、SDL;
2、動態保護
3、代碼混淆
4、敏感邏輯的保護方案、敏感資訊的脫敏、介面安全設計
I 代碼混淆
- iOS逆向:【代碼混淆】1、基于編譯器混淆靜態庫(StaticLib)2、字串加密:使用clang-c介面將源代碼轉換成抽象語法樹,并對抽象語法樹進行遍歷和分析,分析代碼中的字串,并進行加密處理,
II 敏感邏輯的保護方案
-
iOS安全:【敏感資訊的脫敏規范】(資料型別包括日志相關、賬戶訂單、個人資訊、賬戶認證、持卡資料)
-
iOS敏感邏輯的保護方案:【把函式名隱藏在結構體里,以函式指標成員的形式存盤】(敏感資訊的安全設計)
III 介面安全(網路加密傳輸)
-
iOS app側對請求引數進行簽名:【請求引數按照ASCII碼從小到大排序、拼接、加密】(遞回的方式進行實作)
-
1、iOS網路請求安全優化:SSL證書驗證, 讓Charles再也無法抓你的請求資料;對請求引數進行簽名;2、不走全域proxy的方案;3、允許不驗證SSL證書;4、攔截請求;5、DoH &DoT
在使用NSURLSession時敏感的資料采用ephemeralSessionConfiguration配置,與默認配置相比,這個配置不會將快取、cookie等存在本地,只會存盤在記憶體里,所以當程式退出時,所有的資料都會消失,
-
iOS安全【 SSL證書驗證, 讓Charles再也無法抓你的請求資料】
-
允許不進行SSL證書驗證, 來規避SSL證書過期導致的請求報錯
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
securityPolicy.validatesDomainName = NO;
securityPolicy.allowInvalidCertificates = YES;
manager.securityPolicy = securityPolicy;
3.1 介面安全設計的Checklist
- 呼叫方來源IP控制
比如可通過防火墻、主機host deny、Nginx deny等技術措施進行實施
- 呼叫方身份認證
比如key、secret、證書等技術措施進行實施
- 呼叫引數認證
需設計引數容錯機制,避免出現引數可遍歷敏感資料安全問題
- 采用數字簽名保障介面身份來源可信,資料防篡改
- 1、iOS網路請求安全優化:SSL證書驗證, 讓Charles再也無法抓你的請求資料;對請求引數進行簽名;2、不走全域proxy的方案;3、允許不驗證SSL證書;4、攔截請求;5、DoH &DoT
在使用NSURLSession時敏感的資料采用ephemeralSessionConfiguration配置,與默認配置相比,這個配置不會將快取、cookie等存在本地,只會存盤在記憶體里,所以當程式退出時,所有的資料都會消失,
-
呼叫方權限控制設定
-
呼叫頻率、有效期進行控制
-
呼叫行為實時檢測,對例外阻攔
-
冪等性校驗,保持資料一致性
-
采用應用接入安全網關,實作APPID/KEY身份認證,加密傳輸,摘要簽名安全保障
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/274519.html
標籤:其他
上一篇:Apache Shiro(三)shiro+SpringBoot+Mybatis-plus
下一篇:阿里云資料庫怎么使用
