使用 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