使用 windows api 解释 RPC 身份验证

Posted

技术标签:

【中文标题】使用 windows api 解释 RPC 身份验证【英文标题】:RPC authenthification explained with windows api 【发布时间】:2018-11-05 13:08:32 【问题描述】:

我想使用 Windows RPC 在两个进程之间建立一个 IPC。请像我五岁一样向我解释我的应用程序应该如何实现良好的安全性。我想使用ncalrpc 协议(同一台计算机上的进程)。更确切地说:

    我的客户端应用程序如何知道服务器是可信的? 我的服务器如何知道被调用者是否是受信任者?

我有什么选择?我没有得到RpcBindingSetAuthInfo 函数。

谢谢

【问题讨论】:

最简单的方法不是在RPC级别进行身份验证,而是在数据级别进行身份验证,(并且我认为,根本不要使用RPC,如果它在同一台机器上使用共享内存,否则使用套接字,它还取决于您想要达到的实时级别)即使用公钥加密、X.509 等。您可以使用 InitializeSecurityContext 和其余的 Schannel 函数。 【参考方案1】:

对于让客户端验证服务器的本地连接是相当困难的(例如确认某些其他服务没有代替所需程序启动)但是让服务器识别客户端不是,调用 RpcBindingInqAuthClient 并使用用户名确定要采取的操作,或者如果您可以依赖现有的安全对象,则仅使用 RpcImpersonateClient。大多数 RPC 安全装置是用于远程连接而不是 ncalrpc。

【讨论】:

以上是关于使用 windows api 解释 RPC 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

我用的是window server 2003系统, 管理工具 计算机管理中:无本地用户和组,如何调出?另用window 身份验...

Symfony2 - 没有会话 cookie 的有状态 API 密钥认证

Laravel + React,使用 Laravel 身份验证的 api

使用 Django rest 框架在两个 api 之间配置身份验证的最佳方法是啥?

在 Chrome 上弹出处理 windows 身份验证

ASP.NET Windows 身份验证仅提示一个用户的凭据