gpt4 book ai didi

authentication - 一个进程如何与同一主机上的另一个进程安全地进行身份验证和通信

转载 作者:太空宇宙 更新时间:2023-11-03 14:18:46 24 4
gpt4 key购买 nike

我试图通过 SSL 使用 Java RMI 来做到这一点,但后来我发现 SSL 证书将提供主机级别的身份验证而不是进程级别的身份验证。

此外,我在配置中存储了 keystore 的密码;因此证书可以被另一个攻击者进程使用,并且它可以获得身份验证。

最佳答案

用于 SSL/TLS 的 X.509 证书可能用于识别主机名以外的其他内容(这通常已用于客户端证书)。

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

  • 证书验证本身:这会验证证书在使用时对于所需目的是否可信且有效,通常使用 RFC 3280/RFC 5280 中描述的 PKI。
  • 主机名验证:一旦它相信证书是真实的,客户端就会检查它是否适用于它正在寻找的服务器。这是特定于协议(protocol)的(例如 RFC 2818,HTTPS 的第 3.1 节),但已针对 RFC 6125 中的大多数协议(protocol)进行了概括。(这类似于检查护照上的图片是否与您面前的姓名相符,而不仅仅是接受任何有效护照。)

默认情况下,Java 的 SSLSocket 不执行第二步,除非您添加一些东西来执行它。 (在 Java 7 中,一些新的 SSL 参数允许您在信任管理器中这样做,但仅限于特定协议(protocol)。)

您需要找到一种方法来定义您希望如何识别其他应用程序和进程,使用主机名以外的其他名称,使用这些命名约定颁发证书,并让您的客户端应用程序检查这一点。

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

关于authentication - 一个进程如何与同一主机上的另一个进程安全地进行身份验证和通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12560741/

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