在以下情况下,如果privateKeyOfA被泄露,安全问题是什么?有人能在没有privateKeyOfB的情况下解密消息吗??
Aes.encrypt(privateKeyOfA,publicKeyOfB,message(Aes.decrypt(publicKeyOfA,privateKeyOfB(
如果不是,我想我们为什么需要privateKeyOfA在这里是为了A的签名?
需要签名,因为接收者必须知道消息来自他可以识别的人。如果他无法核实签名,这意味着他不认识这个人。
如果A的私钥被黑客泄露,他可以通过模仿A.的签名向每个人发送信息
A将使用密钥交换(例如使用DH或ECDH(将privateKeyOfA + publicKeyOfB
转换为AES密钥。该相同的AES密钥也可以由B使用CCD_ 2相同地生成。A和B之间的所有流量都将使用相同的AES密钥进行加密。
假设所有公钥都是已知的(毕竟它们是公共的(,那么任何有权访问privateKeyOfA的人都可以重新生成A生成的所有AES密钥,以便与任何人通信。这意味着所有涉及该密钥的流量(由A、与B或其他任何人发送或接收的消息(都将被泄露。
但是,如果使用了临时版本(如TLS的某些模式(,则会为每个会话生成一个新密钥,因此,如果有1个密钥被泄露,则只有该会话被泄露。你可以阅读更多关于前向保密的内容。
如果密钥是按照您描述的方式使用的,那么它们就不会用于签名。