AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 828361
Accepted
nothingisnecessary
nothingisnecessary
Asked: 2017-01-25 11:23:09 +0800 CST2017-01-25 11:23:09 +0800 CST 2017-01-25 11:23:09 +0800 CST

如何以安全的方式实施 Windows 身份验证以在 Internet 环境中使用?

  • 772

我正在阅读有关IIS7 中的 Windows 身份验证的信息

我从经验中知道,Windows 身份验证在技术上使用 IIS 在 Internet 上可以正常工作——这意味着用户面临 401 未授权的挑战,并且大多数浏览器(Chrome、FF、IE、Safari)都会提示输入 Windows 域\用户和密码,如果身份验证成功,如果授权,用户将获得请求的页面。

但后来我读到了这个:

Windows 身份验证不适合在 Internet 环境中使用,因为该环境不需要或加密用户凭据。

HTTPS 可用于加密,但我正在寻求另一部分的澄清。

“不需要用户凭据”是什么意思?

基于此,真正的问题是:除了使用 HTTPS 进行加密之外,我如何以安全的方式实现 Windows 身份验证以在 Internet 环境中使用?

微软的说法似乎没有根据。我知道如果使用 NTLM 而不是 Kerberos,您将失去与受信任的第三方身份提供者的直接连接,但这并不能向我解释为什么如果实施得当则不需要凭据。求那个方法。谢谢。

iis windows-authentication
  • 2 2 个回答
  • 4013 Views

2 个回答

  • Voted
  1. Best Answer
    Alex H
    2017-02-07T07:51:19+08:002017-02-07T07:51:19+08:00

    您不应该对面向 Internet 的站点进行本地身份验证的主要原因是,如果您的网络服务器受到威胁,那么您的所有本地帐户都会受到威胁。使用 Kerberos,您可以更新密码,并集中控制身份验证。

    现在 kerberos 身份验证可以使用 SPN 密钥表,并且您有不同类型的加密https://uit.stanford.edu/service/kerberos/keytabs而 NTLM 仅部分使用加密https://blogs.msdn.microsoft.com/chiranth/2013 /09/20/ntlm-想知道它是如何工作的/。除非您的操作系统完全支持和更新 NTLMSPP,否则您将以纯文本形式发送凭据http://www.cisco.com/c/en/us/support/docs/security/web-security-appliance/118487-technote -wsa-00.html和https://en.wikipedia.org/wiki/NTLMSSP。NTLM 当前未扩展,也不是首选协议https://msdn.microsoft.com/en-us/library/windows/desktop/aa378749(v=vs.85).aspx。

    如您所见,根据 MS 文档,用户名是纯文本,密码是散列的。针对 NTLM 的“简单”攻击是可能的——传递哈希,或预测会话中生成的随机数,然后从中获取密码。最重要的是,NTLM 支持 56 和 128 加密,因此它低于任何最近的方法。

    没有办法为面向 Web 的服务安全地实施本地身份验证。请让我知道这是否有意义。

    • 1
  2. Greg Askew
    2017-02-07T08:29:57+08:002017-02-07T08:29:57+08:00

    most of em don't use https either (even over internet) because they are too cheap to pay for certificates.

    将网站配置为需要 Https 将提供合理的安全措施。如果您因为他们不想使用/支付证书而正在寻找其他东西,那么您就是在浪费每个人的时间。在不需要 SSL 的情况下通过 Internet 实现 Windows 身份验证是不负责任的,因为集成的 Windows 身份验证机制可能由于各种原因无法正常工作。发生这种情况时,他们将被要求输入凭据,如果不需要 SSL,这些凭据将以纯文本形式通过网络传输。

    我们甚至没有考虑数据是否需要加密。

    此外,NTLM 和 Kerberos 都会随每个数据包发送 http 授权标头有效负载,并且该标头包括散列/经过处理的凭据。Kerberos 将比 NTLM 更安全,但如果不使用 SSL,两者都可能受到 MITM 重放攻击。

    根据我的经验,即使在内部网络上也很难让 Windows Auth 可靠地工作,并且当它不起作用时提示通过未加密的 http 连接提供凭据是一个不容忽视的弱点。在多种情况下它可能不起作用,包括由于组成员身份和/或 IIS 配置设置不足而导致令牌/身份验证标头太大,或者 Windows 凭据在客户端和 Active Directory 域之间不同步。令牌大小太大的问题只发生在 Kerberos 中,因为组成员身份存储在 Kerberos PAC 中。

    • 1

相关问题

  • 2003 Server企业版不能运行ASP.NET应用程序?

  • 启用集成 Windows 身份验证时,ASP(经典)在哪个帐户下运行?

  • 是否有一种简单的方法可以生成有关 IIS 中“死”文件的报告?

  • IIS 7 中的 URL 重写

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve