2010-01-17 97 views
1

我即将开始一个项目,该项目将作为一个Windows服务运行,监听传入连接并在本地执行一些操作,然后发送回复消息。我理解套接字的基本概念并通过网络进行通信,但是服务正在做的事情可能很容易被滥用。我想验证连接的人,最好是针对服务运行的机器上的Windows本地用户,以查看他们是否具有Windows管理权限/权限用户权限。Windows网络身份验证正确

我知道该怎么做,一旦我有他们的信息,检查权利,但我知道发送用户名和密码到应用程序通过网络在明确是一个不是。我想用一些密钥对密码进行加密,但我知道“试图变得聪明”是你在密码学中可能做的最糟糕的事情,所以我想知道处理这种情况的“正确”方法是什么。

+0

所有机器是否都运行在同一个域上,或者是某种信任/联合身份服务所需的? – 2010-01-17 02:08:40

+0

这是否让你朝正确的方向发展? http://msdn.microsoft.com/en-us/library/aa480562.aspx – Amy 2010-01-17 02:18:42

+0

@jarret没有问题的计算机设置在一个单独的域(实际上它是在一个工作组本身)@ Yodaj007将kerbose当目标计算机不是域的成员时工作吗? – 2010-01-17 02:29:38

回答

1

我的第二个想法是刚刚创建的客户端和服务器之间共享的自签名证书,只是使用TLS整个连接。

0

如果在评论中这样说是正确的话,我可能会发布我正在考虑的事情。

客户端和服务器在运行时都会有一个PSK,服务器会向客户端发送一个随机数。客户端将使用PSK和随机数对IV凭证进行加密。它会发回加密的blob加上它需要做的任何命令。

我不关心重播或mitm攻击。我只想对用户进行身份验证,并且不会让人员密码在整个网络中爆炸。

+0

而不是张贴“答案”,扩大您的问题/解释,使用“编辑”选项,并澄清或扩大您的问题。 StackOverflow礼节不同于传统的公告栏,请仔细阅读FAQ – STW 2010-01-17 03:08:22

0

斯科特,

这可能是一个有点矫枉过正,有点题外话,但你有没有考虑使用Web服务接口来服务你的客户(而不是使用原始套接字)?

ASP .Net网络服务接口很容易实现,最终你会得到一个非常好的接口。他们还支持身份验证和安全通信。