【问题标题】:How to use Secure RPC?如何使用安全 RPC?
【发布时间】:2014-02-20 11:43:57
【问题描述】:

我正在使用 RPC(远程过程调用)进行本地进程通信。我使用了 ncalrpc 协议,使用 API RpcServerUseProtseqEp、RpcServerRegisterIf、RPCServerListen 编写了一个典型的服务器,并使用 RpcStringBindingCompose、RpcBindingFromStringBinding 编写了一个典型的客户端。到目前为止一切都很好,客户端和服务器使用远程方法进行通信。

现在我正在评估确保此通信安全的选项。我需要主要处理 3 个方面,客户端身份验证、授权和数据私有和完整性。 RpcBindingSetAuthInfo 允许我设置身份验证级别和授权服务以及 SPN。 RPC_C_AUTHN_LEVEL_PKT_PRIVACY 可用于身份验证和加密数据。 1.但我不明白谁真正在做认证以及如何做?

  1. 我不明白可以使用 RpcServerRegister 在服务器端注册的 SecurityCallback 如何帮助我检查授权客户端。

  2. 我没有得到授权以及如何授权?我不确定在哪些情况下需要授权以及它是如何在 RPC 中实现的。我的应用程序仅在本地计算机上进行通信。

请有人澄清我的疑问。

谢谢,

【问题讨论】:

    标签: security winapi ipc rpc


    【解决方案1】:

    如果您的应用在本地运行,则无需加密 RPC 调用即可。 如果您想使用加密测试 RPC 调用,请确保

    1. 在服务器上调用 RpcServerRegisterAuthInfo(0, RPC_C_AUTHN_WINNT, 0, 0) 边。
    2. 在客户端调用 RpcBindingSetAuthInfo(hRPCBind, 0, RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_AUTHN_WINNT, 0, 0),

    windows 将处理其余的事情,例如加密、传输。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多