5

我必须在我的 iOS 应用程序中进行证书固定并使其有 2 个选项 1- 检查证书,因为它是 2- 仅检查证书的公钥

就我而言,我的应用程序一直连接到后端服务器,当用户尝试登录时,应用程序应该登录另一台服务器以解决一些安全问题,该服务器也可能根据用户类型进行更改

所以我的后端服务器向我发送了一些带有每个登录 url 服务器的服务器证书公钥字符串的 url,我必须在用户登录时检查密钥的相似性

这个应用程序也适用于 iOS 和 Android,

我的问题是我可以从登录服务器证书中获取公钥(作为字符串)来匹配它存储的那个密钥是否类似于 android 上的那个?所以后端服务器只为我发送一个密钥和安卓?

4

1 回答 1

0

我认为,

  1. 您的APP中存储了一个证书。

    您可以将您的公钥存储在钥匙串中并使用它。使用“SecItemAdd”将证书添加到您的应用程序钥匙串。存储后,您应该能够使用“SecItemCopyMatching”方法复制公钥。

  2. 当用户登录时,应用程序会获得一个指向新证书的 URL。

  3. 如果证书不同,则需要下载并使用新证书。

    对于第 2 点和第 3 点,无论哪种方式,我们都需要下载关键数据。因此,每次下载证书,检索公钥。我们不能进行字符串比较,但是应该可以进行字节比较来检查是否相等。如果不相等,请使用“SecItemUpdate”将证书替换为下载的证书。

  4. 这在 iOS 和 Android 上会一样吗?

    我希望证书用于安全传输/PKI。因此,相同的公钥适用于 iOS 和 android。

于 2014-05-14T21:22:54.150 回答