假设我有移动应用和服务器通过TLS加密的gRPC API(或任何HTTP TLS API)进行通信。
我希望服务器将客户端证书检查为额外保护层(不是主要身份验证机制)。
使用相同的客户端证书+密钥对发送应用程序二进制文件是否安全,或者是否可以使MiTM攻击成为可能,例如,如果有人对应用程序二进制文件进行逆向工程并获取客户端证书+密钥,是否可以恢复会话密钥和解密流量?
答案 0 :(得分:1)
如果您使用的是TLS 1.2协议且证书证明了签名密钥(gRPC就是这种情况),则只要客户端验证服务器的证书和服务器证书,就无法进行MITM攻击没有妥协。即使客户端不使用证书,也无法进行MITM攻击。
但是,添加客户端证书和使用相互TLS的价值尚不清楚。什么"额外的保护层"你想实现吗?如果您在客户端应用程序中对私钥进行硬编码,您知道可以通过足够的努力对其进行反向工程。