![跨域 UNC 路径 - 保护凭证](https://linux22.com/image/608797/%E8%B7%A8%E5%9F%9F%20UNC%20%E8%B7%AF%E5%BE%84%20-%20%E4%BF%9D%E6%8A%A4%E5%87%AD%E8%AF%81.png)
我在远程域上有一个文件夹:
\DomainRemote\共享文件夹
本地域中需要访问上述共享的进程:
域之间存在信任 - 但只有来自本地域的经过身份验证的用户才能访问共享。
很好-我被提示输入凭证并可以访问共享...
这些凭证是如何在网络上传输的?它们是明文的吗?
如果清楚的话,有没有更安全地处理这个问题的方法?
答案1
如果您拥有有效且功能齐全的信任,并且提供共享的远程服务器是远程域的成员,则永远不会要求您提供凭据。事实上,您是要求提供凭证,这表明信任在某种程度上被破坏了。
抛开信任问题,SMB 共享的身份验证可能采用以下一组机制来执行:
- LANMAN(已弃用且不安全)
- NTLM v1(已弃用且不安全)
- NTLM 2 版本
- Kerberos 票证(仅在 AD 域内可用)
选择哪一个取决于客户端和服务器的支持和配置。就你的情况而言,你很可能使用 NTLMv2 进行身份验证,这是一个挑战/响应过程因此不会向远程端暴露密码。
尽管如此,该协议本身也存在弱点。其中之一就是,只要手头有传输的身份验证数据包,就可以进行离线暴力破解,并且十多年前就已成功实现密码长度小于等于 8 个字符。此外,NTLMv2 身份验证容易受到一种称为反射攻击对手会诱骗您向她控制的主机进行身份验证,然后使用该信息“代理”她想要建立的会话的身份验证数据。
因此授权确实不是使用明文密码,但可能仍然不安全。如果您对此很担心,请确保双方都经过身份验证,并且最好加密 - 例如对所有流量使用端到端 IPSEC。