为什么不使用长时间的TLS / SSL会话?这几乎完全符合您的要求,并且不需要您编写棘手的加密代码,几乎肯定会出错。
通常,我所知道的几乎所有加密系统都会为整个会话生成一个对称密钥,并在此期间使用该密钥。这就是TLS所做的以及SSH的作用。我相信这就是IPSEC所做的。从加密的角度来看,这是没有问题的,假设您使用像AES这样的理智密码具有足够大的IV /计数器/随机数,使得它们不会重复。
担心使用此问题的方法是,如果您的密钥泄露,则会丢失会话中的所有数据。但是,如果您的密钥可能泄漏,您的私钥也可能泄漏。此时,即使您按照每个数据包模式使用一个密钥,攻击者也可以解密以前的会话密钥并获取数据。
没有什么“错误”,只是一个安全权衡。密钥越长,会话就越长。你试图保持密钥足够长,或者会话足够短,或者混合使用,这样在可用时间内密钥泄露是不可行的。如果密钥被破解,或者每个消息是否需要额外的新密钥安全性,您还需要考虑是否可以泄漏整个会话的数据。