Ios 建立信任工具包

Ios 建立信任工具包,ios,ssl,public-key,pinning,Ios,Ssl,Public Key,Pinning,我正在开发一个应用程序,该应用程序很快需要包含用于网络通信的https。当我们注意到我们正在通过URL发送所有用户凭据时,我们就开始担心这一点。这不好,因为这样我们的用户名和密码就公开了。经过大量研究,似乎将公钥固定在服务器的SSL证书上是一条可行之路。我已决定使用TrustKit锁定证书的公钥,这样我们就不必在应用程序中锁定整个证书。这样,我们就不必在证书过期后不断更换证书,从而不必构建新的IPA或提交给苹果。为了让它运行起来,我需要回答几个问题 因此,我知道我需要开始使用TrustKit 1

我正在开发一个应用程序,该应用程序很快需要包含用于网络通信的
https
。当我们注意到我们正在通过
URL
发送所有用户凭据时,我们就开始担心这一点。这不好,因为这样我们的用户名和密码就公开了。经过大量研究,似乎将公钥固定在服务器的SSL证书上是一条可行之路。我已决定使用
TrustKit
锁定证书的公钥,这样我们就不必在应用程序中锁定整个证书。这样,我们就不必在证书过期后不断更换证书,从而不必构建新的IPA或提交给苹果。为了让它运行起来,我需要回答几个问题

因此,我知道我需要开始使用
TrustKit

1。我需要知道我们将要使用的域,并将它们包含在我们的info.plist中

  • 问题:此域的服务器是否需要做任何准备,以获得处理一切所需的
    TrustKit
2.我需要两个公钥哈希值,它们也需要包含在info.plist中

  • 问题:如何从证书中提取公钥哈希?我从哪里得到这些散列
3.我需要知道使用什么公钥算法

  • 问题:这是什么?我怎么知道该用哪一个呢

一旦所有这些都准备好了,我是否还需要在appwise上做些什么,以确保
TrustKit
长期发挥作用

  • 服务器本身不需要做任何特殊的事情,但您的ops/基础设施团队需要做;见第2条。还有备用别针

  • TrustKit提供了一个Python脚本来生成您要查找的哈希和算法:。您需要在域的CA证书(这将是第一个哈希)上使用该脚本,然后在另一个CA证书上使用该脚本,您可以从中购买域的备份证书。如果您需要快速旋转服务器上的(第一个)证书,而无需阻塞应用程序,则需要此备份pin。这将在此处详细说明:

  • 第2节中描述的脚本。还返回算法。它是嵌入在服务器证书中的公钥算法(RSA、ECDSA)。这是TrustKit所需要的,因为iOS不提供自动检测证书算法的API


  • 要从证书(和更多信息)中获取算法和哈希,请使用