0

我有以下关于 SSL/TLS 的问题。
在服务器 hello 之后,开始服务器的身份验证阶段。
从各种文章/书籍看来,这个阶段是可选的。例如在维基

服务器发送其证书消息(取决于所选的密码套件,这可能会被服务器省略)。

但是我不明白说它取决于加密套件是什么意思。
所以我的理解是 aServerKeyExchange或 aCertificate跟随 a ServerHello
所以我的问题是,服务器身份验证可以一起省略吗?
例如,要在 Tomcat 中省略客户端身份验证,您只需将连接器配置为不请求它。
如何省略服务器身份验证?它是否取决于我使用的 java 框架,如果它支持的话?
省略服务器身份验证是什么意思?如果不发送证书,那么证书就ServerKeyExchange成为强制性的,或者通常框架允许提供本地公钥,而不是如果一个人想要通过身份验证阶段来提高性能,或者因为它没有任何意义?
或者这是否取决于加密套件,正如维基似乎暗示的那样?
注意:
我了解服务器应始终进行身份验证。我的问题的上下文虽然是在同一台机器上运行的客户端应用程序和服务器(我猜是 java 运行时),所以可以认为绕过服务器身份验证是安全的(我认为)。

非常欢迎任何输入!
谢谢!

4

3 回答 3

1

当数据通过不受信任的网络传输或其中一个端点不受信任时,身份验证和加密非常重要。如果您的应用程序仅在本地主机上建立连接,那么身份验证和加密并不重要(您的数据和应用程序位于本地主机上的事实意味着对本地主机的信任)。

于 2011-01-16T14:38:14.043 回答
1

在 TLS/SSL 中,服务器身份验证是可选的。如果您选择不带身份验证的 TLS/SSL 密码套件(如TLS 规范中的TLS_NULL_WITH_NULL_NULL(关闭身份验证和加密)或TLS_DH_anon_XXXX(仅使用加密)),则不会发送服务器证书。

纯 Java 连接器似乎不支持没有 authn 的 TLS/SSL。但我认为原生连接器SSLCipherSuite=aNULL支持它。

我不知道禁用 authn 是否安全,即,诸如 DNS 欺骗之类的攻击可能是威胁。如果性能没有问题,我认为您最好使用服务器身份验证。或者,关闭 TLS/SSL 本身可能是一种选择。(加密服务器-客户端通信可能没有意义,因为计算机管理员可以窃取证书文件并转储 JVM 堆。)

于 2011-01-16T14:18:08.277 回答
0

您可以从中获取 tomcat 6 的 ssl 配置

http://nayanmali.blogspot.com/

您获得了完整的配置以及如何创建密钥工具以及如何生成证书表单

于 2011-01-20T09:20:02.977 回答