Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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
ssl的java安全配置_Java_Tomcat_Ssl_Digital Certificate - Fatal编程技术网

ssl的java安全配置

ssl的java安全配置,java,tomcat,ssl,digital-certificate,Java,Tomcat,Ssl,Digital Certificate,我对SSL/TLS有以下问题。 服务器hello后,启动服务器的身份验证阶段。 从各种文章/书籍来看,这一阶段似乎是可选的。例如在维基上 服务器发送其证书 消息(取决于所选的 密码套件,这可以由 服务器) 但我不明白说它依赖于加密套件意味着什么。 因此,我的理解是,要么是ServerKeyExchange,要么是ServerHello之后的证书 所以我的问题是,服务器身份验证是否可以一起省略? 例如,要在Tomcat中省略客户端身份验证,只需将连接器配置为不请求它。 如何可以省略服务器身份验证?

我对SSL/TLS有以下问题。
服务器hello后,启动服务器的身份验证阶段。
从各种文章/书籍来看,这一阶段似乎是可选的。例如在维基上

服务器发送其证书 消息(取决于所选的 密码套件,这可以由 服务器)

但我不明白说它依赖于加密套件意味着什么。
因此,我的理解是,要么是
ServerKeyExchange
,要么是
ServerHello
之后的
证书
所以我的问题是,服务器身份验证是否可以一起省略?
例如,要在Tomcat中省略客户端身份验证,只需将连接器配置为不请求它。
如何可以省略服务器身份验证?它是否依赖于我使用的java框架(如果它支持的话)?
省略服务器身份验证意味着什么?如果证书未发送,则
ServerKeyExchange
将成为强制性的,或者如果想要通过身份验证阶段以提高性能,或者因为没有任何意义,框架通常允许提供本地公钥 还是像维基所暗示的那样,这在某种程度上取决于加密套件?
注意:
我知道服务器应该始终经过身份验证。不过,我的问题的背景是客户端应用程序和服务器运行在同一台机器上(我猜是java运行时),因此可以认为绕过服务器身份验证是安全的(我认为)

欢迎任何意见

谢谢

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

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

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

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

您可以从


你得到了完整的配置,以及如何创建keytool和如何生成证书表单,而DNS欺骗呢?“localhost”在你的主机文件中;它不会使用DNS,因此不会被欺骗。或者使用127.0.0.1Ok。但是,如果另一个名称也希望解析为127.0.0.1呢?不会发生。127.*.*是一个特殊范围,第2节第6段。Habe上面的评论是不正确的。@Habe:谢谢你的回复。因此,只有当客户端支持匿名DH时,非身份验证才可能?如果不是,它是强制性的?这是wiki quote中的意思?同样,当你提到本机连接器时,你引用的是哪个类?@user384706:DH anon支持不带身份验证的TLS。规范(RFC 2246的c.f.§9)中没有强制要求。正如维基百科中的“取决于选定的密码套件”,它应该和我说的一样。并且本机连接器处于运行状态。@habe:最后一个问题:您认为即使客户端和服务器在同一台机器上,dns欺骗也可能是一种威胁吗?@user384706:是的。当您的客户端使用“”并且DNS提供“localhost=”时,它可能会被重定向到另一台计算机。@habe:所以没有概念认为我已经在本地拥有公钥存储,我将它传递给java框架以使用它,而不是在身份验证阶段询问它?使用DH anon还是我们交换了证书?