我正在努力保护系统的安全,并考虑使用RSA加密来识别服务器(其公钥将固定在客户端(和保护发送的密码。所有这些都是为了防御MITM的攻击。
所以我的问题是,在客户端和服务器之间获得MITM的攻击者是否可以生成自己的公钥和私钥对,以便客户端看到与固定的公钥相同的公钥,但私钥将属于攻击者?同样,不一定要找到服务器的私钥,而是一个不同的私钥——这样它就可以匹配服务器的公钥,客户端就可以被愚弄。谢谢
不,这是不可能的。模数在私钥和公钥之间共享,并且对于密钥对是唯一的。你需要将模分解成单独的素数,才能从中生成有效的私钥。这被称为RSA问题,正是RSA适合非对称密码学的原因。
只有当RSA密钥对生成中断时,或者当底层随机数生成器在多个实例上重复时,攻击者才能计算出模数,并通过它学习密钥对。然后是副渠道,糟糕的密钥管理。。。