gpt4 book ai didi

ios - 如何使用 AFNetworking 比较 SSL 证书

转载 作者:可可西里 更新时间:2023-11-01 03:03:24 27 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我使用带有自签名 SSL 证书的 https 连接从服务器下载敏感数据(用户名和密码)。

此应用仅供私有(private)使用,不适用于生产。

我正在使用 AFNetworking 来管理 https 连接,但是,由于我的证书不是从 CA 签署的,为了让它工作,我必须添加AFURLConnectionOperation 类 header 的以下内容:

#define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ 1

但是有了这个我的应用程序将允许任何证书。

有没有办法只允许来 self 的服务器的证书可能将其捆绑在应用程序中并将其与服务器在 https 连接中提供的证书进行比较?如果可能的话,在安全方面会有什么显着优势吗?

我对安全性很陌生,我有点困惑。

最佳答案

您要查找的术语是 SSL Pinning,其中应用会验证已知证书或公钥是否与远程服务器提供的相匹配。

AFNetworking 支持使用证书或公钥固定。您需要将证书或公钥添加到应用程序的 Bundle 中,并通过设置 defaultSSLPinningMode 来启用该功能。 AFHttpClient 或 SSLPinningMode 上的属性AFURLConnectionOperation 上的属性。

您可以使用 AFSSLPinningModePublicKeyAFSSLPinningModeCertificate 固定。 AFSSLPinningModeCertificate 表示服务器的证书必须与 bundle 中的证书完全匹配。

AFSSLPinningModePublicKey 更加自由,这意味着服务器的证书必须匹配 bundle 中的任何公钥,或者附加到 bundle 中的证书的任何公钥。

有一个 example of setting the pinning mode在 AppDotNet 示例中。

关于ios - 如何使用 AFNetworking 比较 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605898/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com