我正在实现我自己的RPC框架,并且很好的东西已经完成但是我需要一些帮助我如何验证auth_unix?数据结构在 http://www.faqs.org/rfcs/rfc1050中定义。 html 9.2 UNIX身份验证,但我应该如何验证用户?

有帮助吗?

解决方案

将UID和GID与服务器上的UID和GID进行比较,以验证其真实性。可以使用NIS或其他工具在unix系统之间共享这些ID。随后在远程系统上执行的任何操作都在该有效的UID和GID下运行。

服务器后面的应用程序可能会实现进一步的身份验证,但请注意AUTH_UNIX本身不会对用户进行身份验证;它信任所提供的UID和GID。

从第9.3节开始:

9.3 DES Authentication

   UNIX authentication suffers from two major problems:

         (1) The naming is too UNIX oriented.
         (2) There is no verifier, so credentials can easily be faked.

   DES authentication attempts to fix these two problems.

如果您使用Unix身份验证,则只能假设该消息来自可信主机,并且在他们有机会执行启动呼叫的操作之前,已经建立了一些机制来对用户进行身份验证。

在这种情况下,应用程序将验证用户凭据。还提供了原始计算机名称,因此您可以确保原始IP地址与其匹配,并且仅回复该地址 - 这对DNS缓存中毒攻击具有明显的漏洞。此外,使用DHCP或NAT很好地进行这种播放仍然是读者的练习; - }

这意味着您别无选择,只能信任UID和GID,或者在RPC库顶部的应用程序中进行其他验证。 RFC讨论了更安全的身份验证机制。但是,Sun RPC不是最安全的协议,通常不建议用于提供给不受信任的客户端的服务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top