Big*_*Lex 8 security ssl https ios afnetworking
在我的iPhone应用程序中,我使用https与自签名SSL证书的连接从服务器下载敏感数据(用户名和密码).
此应用程序仅供私人使用,不适合生产.
我正在使用AFNetworking管理https连接,但由于我的证书未从CA签名,为了使其工作,我必须将以下内容添加到AFURLConnectionOperation类的标题中:
#define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ 1
Run Code Online (Sandbox Code Playgroud)
但有了这个,我的应用程序将允许任何证书.
有没有办法只允许我的服务器上的证书将它捆绑在应用程序中并将其与https连接中服务器提供的证书进行比较?如果可能的话,在安全方面是否会有任何重大优势?
我对安全性很新,我有点困惑.
Dav*_*unt 21
您正在寻找的术语是SSL Pinning,其中应用程序验证已知证书或公钥是否与远程服务器提供的证书或公钥匹配.
AFNetworking支持固定证书或公钥.您需要将证书或公钥添加到应用程序的Bundle中,并通过设置defaultSSLPinningModeAFHttpClient上的SSLPinningMode属性或属性on来启用该功能AFURLConnectionOperation.
您可以使用AFSSLPinningModePublicKey或固定AFSSLPinningModeCertificate.AFSSLPinningModeCertificate表示服务器的证书必须与捆绑中的证书完全匹配.
AFSSLPinningModePublicKey 更自由,意味着服务器的证书必须与捆绑中的任何公钥匹配,或者捆绑中的证书附加的任何公钥.
在AppDotNet示例中有一个设置固定模式的示例.
| 归档时间: |
|
| 查看次数: |
9825 次 |
| 最近记录: |