Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
部署Java应用程序时处理安全性_Java_Sockets_Security_Ssl_Encryption Asymmetric - Fatal编程技术网

部署Java应用程序时处理安全性

部署Java应用程序时处理安全性,java,sockets,security,ssl,encryption-asymmetric,Java,Sockets,Security,Ssl,Encryption Asymmetric,我有一个Java应用程序(作为JAR文件部署),它允许通过SLLSockets共享文件。如果所有用户使用相同的证书,文件传输就不安全,因为它违反了非对称加密通信的核心概念。因此,我理解每个用户都需要有自己的证书。这就引出了我的第一个问题: 如何以编程方式生成证书,以及将其存储在何处?我不希望用户必须使用keytool生成自己的证书,然后告诉应用程序它所在的位置 现在,假设回答了我的第一个问题,每个用户都有自己的证书。在打开两台主机之间的SSL连接之前,需要将彼此的证书添加到信任库中。我知道实现这

我有一个Java应用程序(作为JAR文件部署),它允许通过SLLSockets共享文件。如果所有用户使用相同的证书,文件传输就不安全,因为它违反了非对称加密通信的核心概念。因此,我理解每个用户都需要有自己的证书。这就引出了我的第一个问题:

  • 如何以编程方式生成证书,以及将其存储在何处?我不希望用户必须使用keytool生成自己的证书,然后告诉应用程序它所在的位置
  • 现在,假设回答了我的第一个问题,每个用户都有自己的证书。在打开两台主机之间的SSL连接之前,需要将彼此的证书添加到信任库中。我知道实现这一点的唯一方法是通过套接字交换它们(注意,我使用JGroups交换套接字连接信息)。这就引出了我接下来的两个问题:

  • 交换证书时如何保证身份验证和完整性
  • 如何以编程方式将收到的证书添加到信任库 最后,这篇文章提出了我的第四个问题:

  • 上述步骤是否是使用SSLSocket非对称加密通信在两台主机之间安全发送数据的正确方法

  • 您不一定需要客户端证书

    您不能使用用户名/密码身份验证吗

    您仍然可以通过使用服务器证书来保护传输


    客户端证书也是一种痛苦,而且不完全安全。它们把你绑在一台机器上,邪恶的进程可以读取它们。智能卡缓解了这一问题,但不是免费的。

    1。你的威胁模型是什么?(谁,你在保护什么东西)。2.你确定你需要客户证书吗?3.你会使用智能卡吗。MIM正在尝试获取文件2。我认为使用SSL是安全传输数据的最佳方式。没有证书我怎么走?3.你是说可以通过读卡器读取的物理卡吗?对于这个应用程序来说,这似乎太复杂了。这是一个简单的局域网文件共享应用程序,但无论上下文如何,安全性都很重要,IMHO。这是一个客户机服务器应用程序还是对等应用程序?从客户机向服务器发送文件的意义上讲,这是一个客户机服务器应用程序。然而,如果您觉得有意义的话,客户机和服务器只是JAR的启动实例。对于基本通信,我使用启用了完整消息加密的JGroups,但是对于文件传输,我需要使用SSLSockets。这是一个局域网上的快速文件共享应用程序。虽然威胁并不是什么大不了的事,但我想防止MITM监听文件传输,并冒充他人。智能卡绝对不是一个选项,因为这意味着是一个开源和免费的项目。DES加密的文件传输,加上传输前的Diffie-Hellman身份验证,只需在每个用户的屏幕上显示一个短代码,他们都应该确保代码相同,怎么样?有点像手机和pc的同步技术。