为了防止MITM从我的应用程序,我将使用证书钉扎。
为了防止未经批准的各方与我的服务器通信,我可以使用Mutal,它实际上接受来自可信来源的通信。
我是错过了什么还是听起来一样?
发布于 2019-10-18 19:01:39
虽然互TLS和证书钉扎是针对不同的问题而设计的,但它们也可以用来解决检测活动MITM的具体问题。只有在使用互TLS时,才是检测MITM (客户端证书不是预期的)的服务器,而使用证书固定的是客户端(服务器证书不是预期的)。
执行要求也不同:
在(服务器)证书固定的情况下,客户端需要服务器的证书(或CA固定的情况下的CA )。证书的指纹(散列)或公钥(更灵活)也就足够了。所有客户端都可以共享有关服务器证书的相同信息。
但是,对于客户端证书,每个客户端需要一个证书和匹配的私钥。每个客户端还应该拥有一个具有不同密钥的不同证书,因为在客户端之间共享相同的私钥使得攻击者更有可能访问该密钥。当然,需要安装适当的撤销和重新颁发证书的进程,以防来自一个客户端的密钥被破坏。这使得它比服务器证书固定要复杂得多,可伸缩性更低。
换句话说,虽然可以使用服务器证书固定和客户端证书来检测活动的MITM,但服务器证书的使用要简单得多,而且扩展性更好。因此,仅仅使用客户端证书来检测MITM可能是个坏主意,但如果无论如何都需要它们,则可以使用防止活动MITM的副作用。
发布于 2019-10-21 19:55:11
如果您担心客户端可能落入恶意的手中,请考虑到您的应用程序可以被检测,这样证书仍然有效,但是有效负载被操纵和/或被盗。
考虑两种不同的情景:
https://security.stackexchange.com/questions/219807
复制相似问题