004_为什么不推荐APP使用SSL-PINNING

本文讨论了SSL-Pinning技术导致的证书过期问题,介绍了一种通过内置中间证书和公钥硬编码来避免服务中断的方法,并推荐了更稳妥的CA验证策略。

背景

之前工作的经历,前面技术团队的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没有证书更新、撤销机制,内置后无法对这份清单进行维护。

转载于:https://www.cnblogs.com/itcomputer/p/9712095.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值