
鉴于此,我们特此撰文以澄清这些不正确的信息。
背景信息
对于不熟悉AFNetworking的读者,以下是与此事件相关的背景信息:
AFNetworking是一个流行的开源第三方库,基于苹果的基础平台为开发者提供便捷的工具。
AFNetworking中的一个组件名为AFSecurityPolicy,主要负责根据应用程序的配置策略进行身份验证。这包括X.509的校验,即在通过HTTPS连接时服务器返回的。
绑定是一种安全技术,通过强务器发送与客户端凭证,以改进标准TLS的安全性。从版本1.2.0开始,AFNetworking支持绑定功能。
中间人攻击(MitM攻击)是一种服务攻击,攻击者通过在服务器和客户端之间嵌入自己,使得两者都认为它们仍在直接通信。这种攻击可能会通过不安全的WiFi热点拦截客户端与服务器之间的通信,从而获取用户的凭证或其他敏感信息。
AFNetworking的文档强烈建议应用程序之间通过HTTPS以及使用/公钥绑定进行通信,以抵御MitM攻击。
时间线
以下是与此事件相关的时间线,以便读者了解事件的进展:
1. 2015年2月12日,AFNetworking 2.5.1版本发布,其中包含了一个修复安全机制的补丁,该机制在设置为AFSSLPinningModeNone时校验凭证。
2. 2015年3月12日,我们首次意识到这一变更可能带来的影响。
3. 2015年3月26日,Minded Security Research的Simone Bovi和Mauro Gentile发表了一篇博客,详细描述了AFNetworking 2.5.1中的潜在MitM漏洞。
4. 同日,AFNetworking 2.5.2版本发布,恢复了之前的校验机制,并将验证机制设置为AFSSLPinningModeNone时,将验证域名设置为YES。
如果你是AFNetworking的用户,以下是你需要了解的关键信息:
来自AFSecurityPolicy的文档建议,启用SSL绑定并使用HTTPS进行通信,特别是处理敏感数据的应用程序。遵循建议操作的任何应用程序都不会出现上述漏洞。
对于正在使用早期AFNetworking版本的用户,我们强烈建议您升级到版本2.5.3。AFNetworking 2.5.1和2.5.2在某些配置下可能存在安全风险,而2.5.3则提供了更安全的默认行为。
如果你正在使用NSURLConnection或NSURLSession而不是AFNetworking,你仍然需要你的身份验证实现。苹果的安全框架API提供了安全实现,但应用程序的安全取决于如何使用这些API。
