我的iOS应用使用SSL连接到我的服务器API。使用AFNetworking
和AFSSLPinningModeCertificate
我的应用连接到https。
我刚刚使用openssl x509 -in server.crt -outform der -out server.cer
命令server.crt
创建了一个.cer文件。
它有效。好。
但是,在我的应用包中简单包含此文件是否危险?我可以从我的.ipa文件中获取它(使用unarchiver - show package content)。
有什么想法吗?提前致谢。
答案 0 :(得分:3)
简而言之,这很好。
您可以直接转到您在浏览器中连接的主机并下载相同的证书。这是一条公开的信息,你固定证书以确认没有第三方拦截了请求(实际上是man in the middle attack)并且与数据混淆了 - 他们必须使用证书重新加密数据与你期待的不同。然后,您的应用会看到此内容并中止请求。
您不想做的事情是捆绑证书的私钥(可能有一个更好的名称),因为攻击者可以使用它来使用您的证书/密钥重新签名任何截获的请求并模仿您的服务器
唯一的缺点是,当证书过期时,您需要更新捆绑新证书的应用程序。