【问题标题】:Windows network authentication the right wayWindows 网络认证的正确方式
【发布时间】:2010-01-17 02:05:39
【问题描述】:

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

我知道如何在获得信息后检查权限,但我知道通过网络将用户名和密码明文发送到应用程序是不行的。我想用一些密钥加密密码,但我知道“试图变得聪明”是密码学中最糟糕的事情,所以我想知道处理这种情况的“正确”方法是什么。

【问题讨论】:

  • 所有机器都运行在同一个域上,还是需要某种信任/联合身份服务?
  • 这是否让您朝着正确的方向前进? msdn.microsoft.com/en-us/library/aa480562.aspx
  • @jarret 没有问题的计算机设置在单独的域中(实际上它本身就在一个工作组中)@Yodaj007 将在目标计算机不是成员时进行 kerbose 工作域?

标签: c# login networking windows-authentication


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果在 cmets 中这样说是正确的,我不妨张贴我的想法。

    客户端和服务器在运行时都会有一个 PSK,服务器会向客户端发送一个随机数。客户端将使用 PSK 和随机数作为 IV 加密凭据。它将发回加密的 blob 以及它需要执行的任何命令。

    我不关心重放或中间人攻击。我只想对用户进行身份验证,而不是让人们的密码在整个网络中爆破。

    【讨论】:

    • 而不是发布扩展您的问题/解释的“答案”,使用“编辑”选项并澄清或扩展您的问题。 StackOverflow 礼仪不同于传统的公告板,请仔细阅读常见问题解答以了解它
    【解决方案3】:

    斯科特,

    这可能有点矫枉过正,有点离题,但是您是否考虑过使用 Web 服务接口来为您的客户提供服务(而不是使用原始套接字)?

    ASP .Net Web 服务接口很容易实现,最终您会得到一个定义良好的接口。它们还支持身份验证和安全通信。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-20
      • 2018-11-12
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      相关资源
      最近更新 更多