Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 一个开放的、安全的TCP通道有多长时间是安全的?_Security_Sockets - Fatal编程技术网

Security 一个开放的、安全的TCP通道有多长时间是安全的?

Security 一个开放的、安全的TCP通道有多长时间是安全的?,security,sockets,Security,Sockets,我们有一个web服务,它充当我们的客户机和另一个服务之间的网关。客户端向第三方服务发送消息,并从第三方服务接收随机消息。客户端的服务器通过一个安全套接字打开一个到web服务器的通道,以便接收传入的消息(并且不必每隔几分钟轮询服务器) 我的问题是:让这个频道无限期地打开是否安全,还是应该定期关闭并重新打开它以获得新的凭据(会话密钥)?如果是后者,多长时间(每小时、每天、每周)被视为“最佳实践”?我已经找到了很多关于安全通信的信息,但是没有什么可以回答这个特定的问题 谢谢SSL/TLS(我假设您在这

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

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

谢谢

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


但是,这并不能回答您最初提出的问题,即如果会话密钥应该更改,则。答案是…这取决于你的安全要求。要使用的一个很好的指导原则是,如果您看到足够的加密数据,任何加密的通信最终都可以被解密(实际/可行程度可能会有很大差异)。所以,经常更换钥匙是一件非常好的事情。如果您通过安全连接传递少量数据,并且数据没有那么敏感,那么您可以在不太定期的基础上这样做(实际上,您的SSL/TLS会话可能会因为双方中的一方在某种程度上定期超时而中断并重新启动…)。如果您有一个非常敏感的数据集,并且要发送大量数据,那么我建议您每天左右轮换密钥以降低此风险(只需以安全的方式进行)。

IPSEC肯定会每小时左右重新协商一次会话密钥,我想SSL也可以吗?从这个角度看,它可能需要由您的代码启动,但这并不是自动发生的。