iOS SSL Pinning 没有使用 AFNetworking 的证书?

Posted

技术标签:

【中文标题】iOS SSL Pinning 没有使用 AFNetworking 的证书?【英文标题】:iOS SSL Pinning without a certificate using AFNetworking? 【发布时间】:2015-02-07 04:02:36 【问题描述】:

我真的很困惑 - 我将 SSL 固定模式启用为 AFSSLPinningModeCertificate,并且无需我输入证书即可工作。我正在使用 Charles 代理进行测试,但程序无法拦截请求/响应数据。一旦我禁用它,该应用程序就会像往常一样正常工作。

我很高兴它可以工作,但我真的不明白为什么 - 你不需要在应用程序中放入证书才能让它工作吗?

【问题讨论】:

【参考方案1】:

虽然我不确定它为什么有效,但我必须问你为什么要使用这种方法?如果您说的是真的并且您必须实际附加证书,这意味着您必须在每次证书更改时进行代码发布。这对我来说听起来不太容易维护。不太理想。为什么不尝试 setDefaultSSLPinningMode:AFSSLPinningModePublicKey 以便从服务器获取证书?

【讨论】:

我实际上只是在调查。我不太了解它的工作原理 - 固定公钥是如何工作的?【参考方案2】:

您可能正在使用 Apple 预装的受信任证书之一,并且在没有证书文件的情况下启用 SSLPinning 可能适用于 AFNetworking

这是Apple's preinstalled trusted certificates list的列表

【讨论】:

以上是关于iOS SSL Pinning 没有使用 AFNetworking 的证书?的主要内容,如果未能解决你的问题,请参考以下文章

ReactNative 中使用SSL Pinning防止中间人攻击

适用于 android 和 IOS 应用程序的 ssl-pinning 正确方法

使用 TrustKit iOS 在 react-native 应用程序中实现 ssl pinning

Xcode SSL pinning 信任锚证书

NSURLConnection sendSynchronousRequest + SSL Pinning

SSL pinning with *.appspot.com:我怎么知道谷歌啥时候会改变他们的公钥?