我想使用NaCl密码库(或TweetNaCl),但我非常希望对我的应用程序具有完美的前向保密。
据我所知,鲍伯需要用NaCl的crypto_box_open解密一条来自爱丽丝的信息,那就是爱丽斯和他的私钥的公钥。因此,如果窃听对手存储了所有消息,然后访问Bob的私钥,那么他就可以解密以前存储的所有通信。
发布于 2014-05-20 12:02:25
是的,你是对的。
在NaCl之外,最简单的方法是同时创建一个临时的、随机的crypto_box_keypair,然后使用它们的长期密钥交换公钥。在该会话期间,进一步的通信将为crypto_box使用新的键盘。在会话完成后,从内存中删除那些短暂的键。
私钥只存在于会话中,因此,稍后侵入其一台计算机的攻击者将无法解密用这些密钥加密的任何消息,只能从存储的通信中找到它们的公钥。
https://crypto.stackexchange.com/questions/16276
复制相似问题