Java小程序中的现成SSL

Java小程序中的现成SSL,java,applet,ssl,Java,Applet,Ssl,我目前正试图实现一个(签名的)小程序通过SSL与服务器程序通信。我找到了为客户机、客户机的信任管理器和服务器创建密钥存储的正确方法。这允许我在客户端和服务器上创建兼容的SSL上下文 但是,目前的情况是,此设置需要管理员创建密钥存储,然后将它们分发到客户端和服务器计算机。我希望避免让人们配置系统 因此,作为备用方案,是否可以自动生成客户端密钥并使用“分叶”信任管理器创建兼容的SSL上下文而无需任何配置?如果您正在与您的知名服务器通信,而SSL以某种方式让您头疼,然后你也可以考虑放弃SSL .< /

我目前正试图实现一个(签名的)小程序通过SSL与服务器程序通信。我找到了为客户机、客户机的信任管理器和服务器创建密钥存储的正确方法。这允许我在客户端和服务器上创建兼容的SSL上下文

但是,目前的情况是,此设置需要管理员创建密钥存储,然后将它们分发到客户端和服务器计算机。我希望避免让人们配置系统

因此,作为备用方案,是否可以自动生成客户端密钥并使用“分叶”信任管理器创建兼容的SSL上下文而无需任何配置?

如果您正在与您的知名服务器通信,而SSL以某种方式让您头疼,然后你也可以考虑放弃SSL .< /P>的选项。 SSL的真正目的是解决与“未知”服务器通信的问题,从而解决证书和协议协商的复杂性。如果您试图解决的问题只是将一些加密数据发送到一个已知的服务器,那么您总是可以生成一个RSA密钥对,将公钥粘贴到jar中的一个文件中,并使用枯燥的旧加密API发送和解释您的数据。只是一个想法

更新:我应该提到的是,我首先假设您有可靠的方法在客户端上安装软件。一位评论者正确地指出,如果情况并非如此,那么以这种方式分发公钥会受到中间人攻击(即MITM为其窃听服务器提供一个带有公钥的篡改jar)。我假设这不是您试图保护的线程模型,客户从可信的来源获得jar(例如,公司的工程师在他们的系统上安装程序)。如果他们通过互联网下载jar,通过电子邮件等方式发送jar,那么您仍然希望使用CA颁发的证书对jar进行签名,即使在您的实际代码中,您可以使用您在jar中分发的公钥进行连接。

如果与您通信的是您的知名服务器,SSL会以某种方式引起你的头痛,那么你也可以考虑放弃SSL。< /P> SSL的真正目的是解决与“未知”服务器通信的问题,从而解决证书和协议协商的复杂性。如果您试图解决的问题只是将一些加密数据发送到一个已知的服务器,那么您总是可以生成一个RSA密钥对,将公钥粘贴到jar中的一个文件中,并使用枯燥的旧加密API发送和解释您的数据。只是一个想法


更新:我应该提到的是,我首先假设您有可靠的方法在客户端上安装软件。一位评论者正确地指出,如果情况并非如此,那么以这种方式分发公钥会受到中间人攻击(即MITM为其窃听服务器提供一个带有公钥的篡改jar)。我假设这不是您试图保护的线程模型,客户从可信的来源获得jar(例如,公司的工程师在他们的系统上安装程序)。如果他们通过互联网下载jar,通过电子邮件等方式发送,那么您仍然希望使用CA颁发的证书对jar进行签名,即使在您的实际代码中,您可以使用您在jar中分发的公钥进行连接。

我不明白。客户端应该已经有一个可信根证书存储区,它们可以用来对服务器进行身份验证。如果没有,服务器身份验证的意义何在

匿名(且不推荐使用)密码套件,如
“TLS\u DH\u anon\u WITH\u AES\u 128\u CBC\u SHA”
,提供了隐私。但是,此配置容易受到中间人攻击。在某些内部网络上,它可能是安全的,但一般来说,需要在应用层使用一些复杂的互锁协议来进行身份验证



更新以响应注释:如果组织使用来自知名认证机构(即内置密钥存储中包含的认证机构)的服务器证书,则它们不必自己负责分发。(尽管在高安全性的应用程序中,一些组织确实会采取额外的步骤来验证这些证书的完整性。)如果他们没有获得“真实”证书证书-可能使用自签名证书-为了安全起见,组织必须提供一些带外机制来分发证书,并确保证书未被更改。

我不明白。客户端应该已经有一个可信根证书存储区,它们可以用来对服务器进行身份验证。如果没有,服务器身份验证的意义何在

匿名(且不推荐使用)密码套件,如
“TLS\u DH\u anon\u WITH\u AES\u 128\u CBC\u SHA”
,提供了隐私。但是,此配置容易受到中间人攻击。在某些内部网络上,它可能是安全的,但一般来说,需要在应用层使用一些复杂的互锁协议来进行身份验证


更新以响应注释:如果组织使用来自知名认证机构(即内置密钥存储中包含的认证机构)的服务器证书,则它们不必自己负责分发。(尽管在高安全性应用程序中,一些组织确实会采取额外的步骤来验证这些证书的完整性。)如果他们没有获得“真实”证书(可能使用自签名证书),那么为了安全起见,该组织必须提供一些带外机制来分发ce