gpt4 book ai didi

java - 通过默认 SSLSocketFactory 创建的 Socket 发送密码是否安全?

转载 作者:行者123 更新时间:2023-12-01 18:48:17 25 4
gpt4 key购买 nike

我毫不犹豫地通过使用 Java 中默认 SSLSocketFactory 创建的 Socket 建立的连接发送了密码。对于 SSLSocketFactory.getDefault(),文档说明如下:

Returns the default SSL socket factory. The first time this method is called, the security property ssl.SocketFactory.provider is examined. If it is non-null, a class by that name is loaded and instantiated. If that is successful and the object is an instance of SSLSocketFactory, it is made the default SSL socket factory.

Otherwise, this method returns SSLContext.getDefault().getSocketFactory(). If that call fails, an inoperative factory is returned.

我确信 Java 并不是想欺骗我,但由于这是我第一次这样做,我想确保它是我可以依赖的密码加密工具。

编辑:在服务器响应中“Set-Cookie”属性数据的末尾,它显示“HttpOnly”,然后显示“Secure”。我假设这意味着服务器已确认连接是安全的,但我不能 100% 确定。

最佳答案

当您通过默认的 SSLSocketFactory 创建套接字,并且不使用相关系统和安全属性配置任何其他内容时,将使用与 Java 运行时捆绑在一起的一组证书颁发机构。掩盖some details,这是在您的 JRE 安装中位于 lib/security/cacerts 中的信任存储。这些证书包括广泛接受的证书颁发机构的证书,类似于您的浏览器可能使用的列表。

因此,如果您连接的服务器使用通过这些知名机构之一颁发的证书,则该证书将得到验证,否则连接将失败。

这可确保受信任的机构验证您所连接方的身份。只要他们的私钥没有被盗,您就可以依赖证书中绑定(bind)的名称。

但是,您需要验证主机名以确保服务器提供的证书与您期望的主机名匹配。当您使用 URL 类时,这种情况会自动发生,但在直接使用 SSLSocket 时,您需要显式设置 HostNameVerifier

最后,即使您知道自己在与谁交谈,您仍然必须对向他们透露的信息进行判断。但这不是技术问题。

关于java - 通过默认 SSLSocketFactory 创建的 Socket 发送密码是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59778057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com