【问题标题】:How long is an open, secure, TCP channel secure?开放、安全的 TCP 通道安全多长时间?
【发布时间】:2012-01-24 00:45:04
【问题描述】:

我们有一个网络服务,它充当我们的客户和其他服务之间的网关。客户端向第三方服务发送消息并从第三方服务接收随机消息。客户端的服务器通过安全套接字打开到我们的 Web 服务器的通道,以便接收传入的消息(不必每隔几分钟轮询一次服务器)。

我的问题是:让这个频道无限期地打开是否安全,或者我们是否应该定期关闭并重新打开它以获取新的凭据(会话密钥)?如果是后者,多久(每小时、每天、每周)将被视为“最佳实践”?我找到了很多关于安全通信的信息,但没有什么可以回答这个具体问题。

谢谢

【问题讨论】:

  • IPSEC 肯定会每隔一小时左右重新协商一次会话密钥,我认为 SSL 也可能这样做?从RFC5746 看来,它可能需要由您的代码启动,但不会自动发生。

标签: security sockets


【解决方案1】:

SSL/TLS(我假设您在这里谈论)不会自动刷新/重新协商正在使用的会话密钥。协议内置了一个重新协商程序,允许在活动会话中更改会话密钥,但几年前发现该程序存在重大漏洞,重新协商过程已更改 (in RFC 5746, see here) 以解决问题。如果您确实想重新协商 SSL/TLS 的会话密钥,请确保您按照本 RFC 中描述的方式进行。

但是,这并不能回答您原来的如果会话密钥应该更改的问题。答案是……这取决于您的安全要求。一个很好的指导方针是,如果您看到足够多的加密数据,任何加密的通信最终都可以被解密(这有多实用/可行可能会有很大差异)。所以,经常更换你的钥匙是一件非常好的事情。如果您通过安全连接传递少量数据并且数据不是那么敏感,那么您可以不定期执行此操作(实际上,您的 SSL/TLS 会话可能正在进行无论如何,由于两方之一的超时而被打破和重建……)。如果您有一个非常敏感的数据集并且要发送大量数据,那么我建议您每天左右轮换密钥以降低这种风险(只需以安全的方式进行)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2013-03-18
    相关资源
    最近更新 更多