TLS over TLS是否可行?

8

是否可以使用OpenSSL或其他工具建立TLS连接的TLS连接?

如果可能,每个级别的证书是否需要不同?


你可能也会对这个感兴趣:http://security.stackexchange.com/q/17222/2435 - Bruno
1
正如Luke所提到的,您很容易陷入这样一种情况:在TLS上运行VPN并从该网络上的客户端建立HTTPS连接。这是您考虑的场景吗?还是您想要同一应用程序的双层TLS连接(这几乎没有意义)? - Bruno
请注意,这并不是一个真正的编程问题,因此它是不相关的。 - Maarten Bodewes
安全性和性能是两回事。TCP内部的TCP可能会有问题。虽然可以实现,但通常首选更低级别的无连接隧道,例如UDP。 - President James K. Polk
3个回答

9
在理论上,这应该没有问题,但我不能确定OpenSSL或其他东西是否容易支持它。您可以在多个TLS连接中使用相同的证书,即使其中一个嵌套在另一个中。
然而,我想指出,嵌套TLS连接的一个常见原因可能是通过多层加密连接隧道传输数据,在隧道的每个停靠点上使一些子集的数据可用(即剥离加密层)。使用相同的证书并不真正支持那种用例。也许您有另一个用例在脑海中。
此外,密码学上可以加密加密数据。也就是说,更多的加密不能使数据不安全。最后,仅加密加密的数据不会使其更安全。也就是说,AES(AES(x,key1),key2),其中key1!= key2,不比AES(x,key1)更(或更少)安全。以防这是您的动机。

1
我的动力是好奇心。=) - xor
如果AES(AES(x))使用相同的密钥和NONCE进行计数器模式加密,那么它可能非常不安全,因为它会将加密置零。在其他用途中,这也可能非常不安全(使用相同密钥加密IV)。由于TLS使用随机会话密钥,因此在TLS中不应该发生这种情况。 - Maarten Bodewes
@owlstead 没错。如果你加密然后解密,显然不会很安全。而且你应该意识到解密等于加密的情况。我只是想说AES(AES(x,key1),key2)并不比单独使用AES(x,key1)更安全或不安全。我会进行编辑以反映这一点。 - Luke
我理解如果AES不安全那么AES-AES也可能不安全。然而,我想知道 CHACHA(AES(x)) 是否更安全。 - iwat

5

TLS不关心你发送和接收的数据是什么,因此它完全可以是另一个TLS会话(尽管我不知道为什么你要这样做)。

由于这是另一个独立的会话,所以你完全可以使用相同的证书。


我也不知道为什么要这样做,但如果我有这个冲动,现在我知道它是可以完成的。=) - xor

0

这个 TLS RFC 已经确认了这种情况,答案是肯定的,请参考这个链接:https://www.rfc-editor.org/rfc/rfc5246,我找不到具体提到了哪一部分,但我记得我读过。


1
您能提供一下RFC相关部分的参考文献吗? - Simon MᶜKenzie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接