应用程序范围内使用相同的客户端证书是否安全?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用程序范围内使用相同的客户端证书是否安全?相关的知识,希望对你有一定的参考价值。

假设我有移动应用程序和服务器通过TLS加密的gRPC API(或任何HTTP TLS API)进行通信。

我希望服务器将客户端证书检查为额外保护层(不是主要身份验证机制)。

使用相同的客户端证书+密钥对发送应用程序二进制文件是否安全,或者是否可以使MiTM攻击成为可能,例如,如果有人对应用程序二进制文件进行逆向工程并获取客户端证书+密钥,是否可以恢复会话密钥和解密流量?

答案

如果您使用的是TLS 1.2协议且证书证明了签名密钥(gRPC就是这种情况),则只要客户端验证服务器的证书并且服务器的证书没有受到损害,就无法进行MITM攻击。即使客户端不使用证书,也无法进行MITM攻击。

但是,添加客户端证书和使用相互TLS的价值尚不清楚。你想要实现什么“额外保护层”?如果您在客户端应用程序中对私钥进行硬编码,您知道可以通过足够的努力进行反向工程。

以上是关于应用程序范围内使用相同的客户端证书是否安全?的主要内容,如果未能解决你的问题,请参考以下文章

将 SSL 添加到 TcpListen 服务器?

lock(objlocker) 是不是使该对象在应用程序范围内线程安全?静态成员是不是自动线程安全?

Android:如何在使用相同证书签名的项目之间共享代码

SSL证书签发

移动应用程序中的客户端 SSL 证书有多安全?

检查 IP 地址是不是在范围/子网内的标准/安全方法