过程如何验证并在同一主机上与另一个进程进行安全通信(How can a process authen

2019-11-01 02:52发布

我试图通过SSL与Java RMI要做到这一点,但后来我发现,SSL证书将提供主机级别的认证而不是过程级认证。

另外,我是在配置存储密钥库的密码; 这样的证书可以由另一个攻击过程中使用,也可以得到验证。

Answer 1:

用于SSL / TLS的X.509证书可能被用于识别的东西比一个主机名其他(这已经是典型的客户端证书完成)。

有两种类型的验证建立SSL / TLS连接到服务器时所涉及:

  • 证书验证本身:此验证,如RFC 3280 / RFC 5280中描述的证书是可信的和有效的用于在使用时所要求的目的,一般用PKI。
  • 主机名验证:一旦信任证书是真实的,客户端检查它是为它寻找的服务器。 这是协议的具体(如RFC 2818第3.1 HTTPS),但已被推广为RFC 6125.大多数协议(这类似于检查对护照的图片在你面前的名称相匹配,而不是只接受任何有效的护照。)

默认情况下,Java的SSLSocket ,除非你添加了一些做IT方面不进行第二个步骤。 (在Java 7中,一些新的SSL参数让你信任管理器内这样做,但只针对特定的协议。)

什么你需要的是找到一种方法来定义如何识别您的其他应用程序和进程,使用的东西比主机名一样,这些命名惯例颁发证书,并让您的客户端应用程序检查。

您应该能够实现一个在您自己的身份验证机制SSLSocketFactory ,每种方法返回插座前,一个使用该工厂为你的RMI应用程序,如下所述: https://blogs.oracle.com/lmalventosa/entry/ using_the_ssl_tls_based1



文章来源: How can a process authenticate and communicate securely with another process on the same host