004_為什么不推薦APP使用SSL-PINNING


背景

之前工作的經歷,前面技術團隊的APP使用了SSL-PINNING,服務器SSL證書到期前,測試環境更換證書,在更換配置OK后,發現APP停止服務了。所有的請求全部都失敗。

后來查到是APP使用了SSL-PINNING。

也就是SSL-PINNING證書到期后會導致APP拒絕服務。

 

改進

1.

其實,我們除了內置服務器自己的證書,也可以內置廠商中間證書。比如

像這份GeoTrust RSA CA 2018中間證書是2027年到期。一般的APP是不會10年了還可以不改版繼續使用的。但假設發生一例10年不更新的用戶的案例,也會發生APP停止服務。

 

2.

根據如何正確設定 AFNetworking 的安全連線 « Nelson 寫些 iOS 開發的東東 提供的思路,可以將證書的publicKey部分提取到客戶端硬編碼,每次建立TLS連接時候,匹配公鑰。

服務器在更換續費證書時不要更換私鑰就行了。

 

* 推薦需要實現防用戶自己抓包的APP采取本方案。

 

更穩妥的做法

走默認的操作系統CA驗證,但不要APP自己內置。因為APP沒有證書更新、撤銷機制,內置后無法對這份清單進行維護。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM