证书固定移动应用程序

时间:2020-07-21 07:41:11

标签: android ios ssl certificate certificate-signing-request

我正在尝试在我的应用程序上实现证书固定。据我了解,存在3种类型的固定方式:

  • 证书固定;证书应在应用程序中进行“硬编码”,并与服务器中的证书进行比较。这很不好,因为如果需要旋转证书,则需要更新应用程序。
  • 公钥固定;从我的研究看来,这似乎已被弃用
  • SubjectPublicKeyInfo(SPKI)固定;这是公钥的哈希。这种方法的优点是,如果需要旋转证书,则新证书的公钥可以与新证书保持相同,因此不需要更新。

根据我所说的,似乎推荐的方法是SPKI固定。

我的应用程序可以基于用户在登录时键入的IP连接到多个服务器。 这是我的实现想法,但我不确定是否可以。

我将创建一个由CA签名的中间证书。然后创建我自己的公私钥。然后,我的应用程序可以连接的每台服务器都需要从我那里请求使用我的私钥签名其证书。 层次结构将是RootCertificate(由CA自行签名),然后是我的中间证书(由CA签名),然后为我的应用程序可以连接的每台服务器(由私钥签名)叶证书。

在应用程序上,我将存储中间证书中公钥的哈希值。首次连接到随机服务器时,该应用程序将获得3个证书:服务器证书,我的中间证书和根证书。在检查哈希值时,会发现与我的公钥匹配。

您怎么看?可以实施吗?我听错了吗?这种方法容易受到线虫攻击吗? 谢谢!

0 个答案:

没有答案