问题标签 [ntlmv2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Microsoft NTLM (v2) 中的时间戳使用
我正在定制实现 NTLM 和 NTLMv2 协议以在 Lync(Skype for business)服务器上进行授权。在阅读官方规范和http://davenport.sourceforge.net/ntlm.html时,我有几个问题无法找到答案。其中之一如下:
问题是关于 NTLMv2 响应(尤其是 blob)。它说 blob 应该包含时间戳
. 这个是来做什么的?如果服务器不知道我的当地时间,它如何确保安全。或者也许我应该使用服务器在类型 2 消息中提供的时间戳?
java - NTLM 身份验证不适用于 VCS 3 及更高版本,导致我们的 ui 应用程序工作不正常
我在 struts/spring 上的应用程序作为框架停止使用 vcs 3.x 版本,因为 ntlm 身份验证不支持它。有什么建议么?
single-sign-on - 我们是否需要所有 AD 用户的 keytab 条目以进行基于 kerberos 的身份验证?
我在 jboss 上部署了一个 Web 应用程序。到目前为止,我们已经实现了https://www.jcifs.org/提供的 NTLMHttpFilter 。由于这个 java 过滤器仅支持 NTLMV1,现在我需要将我的身份验证更新为基于 kerberos 的身份验证以支持使用 spnego 的 kerberos,但我仍然不确定,我是否必须为所有现有应用程序用户生成一个 keytab 文件。如果是,每次用户更新其 Windows 密码时如何更新 keytab 密码?另外请让我知道服务帐户和用户帐户的密钥表位置?我的目的是使用集成的 Windows 身份验证提供无提示的 sso 功能。
java - SMBJ 身份验证器支持哪个 NTLM 版本(1 或 2)?
我正在开发一个需要使用 SMB 访问网络共享的应用程序。有人告诉我,如果安全检测到使用 NTLM v. 1 进行的身份验证尝试,那么相应的防火墙规则将被撤销。
因此,我需要确保SMBJ(我可能会使用它)支持 NTLM v. 2 并默认使用它。
SMBJ 是否支持 NTLM v. 2?它是否默认使用它?
我自己的尝试
在 SMBJ 的源代码中,我发现了以下片段:
名称getNTLMv2ClientChallenge
和getNTLMv2Response
建议可以使用 NTLM v. 2。
此外,JCIFS 主页声称SMBJ 是后续项目:
幸运的是,有多个新的开源 SMB Java 项目可供尝试,其中包括:
jcifs-codelibs jcifs-ng smbj
根据其常见问题解答,JCIFS 自 1.3.0 版以来一直在使用 NTLM v. 2。
如果
- JCIFS 支持 NTLM v. 2 并默认使用它,
- SMBJ 基于 JCIFS,
那么 SMBJ 应该支持 NTLM v. 2 并默认使用它。
java - 通过 NTLMv2 和 Kerberos 进行静默代理身份验证
我客户的 Java 代码(胖客户端)需要通过网络代理访问 Web 服务。网络代理需要身份验证。客户希望以当前 Windows 用户身份进行静默身份验证(单点登录,无密码提示!)。我做了很多研究,似乎大多数人在他们的服务器端使用 NTLMv2 或 Kerberos。但我需要它在客户端进行网络代理身份验证。
我看到 Java 似乎支持开箱即用的 Kerberos ——这里看起来不错(但这不——我没有当前用户的密码)。
Java 似乎还支持开箱即用的 NTLM——这个和这个看起来很有趣。
不幸的是,这两种解决方案都需要我的代码提供用户名和密码。我不知道密码。我必须提示用户,这是我做不到的——根据规范,它必须是静默的。到目前为止我发现的两种解决方案都不是沉默的!不过,我绝对需要静默单点登录。
因此,我想知道,我是否可以以某种方式使用Waffle或任何其他本机 (=> JNA) 库来解决我的问题(需要用户 + pw),用于基于 NTLMv2 和基于 Kerberos 的代理身份验证。如果这样的库可以为我们节省编写 kerberos 配置文件的工作,那也会很酷。
但我在 Waffle 文档中没有找到类似的内容。Waffle 是我目前发现的唯一一个原生库。我假设它必须是本机代码,因为其他任何东西都应该有安全屏障,阻止它为当前用户获取 Kerberos 票证(或 NTLMv2 中的类似令牌)。但是,恕我直言,本机代码应该能够访问这样的身份验证令牌,因为本机 OS-lib 可以访问仅将当前用户的 NTLM/Kerberos 令牌分发给当前用户的 Windows-API。
AFAIK IE 和其他本地程序能够通过 NTLM/Kerberos 保护的代理访问 Web 服务。因此,它必须以某种方式成为可能。
有关如何使用网络代理进行静默身份验证的任何提示?
如果还没有现成的东西,也许您可以给我一些提示,如何使用 Waffle 或任何其他(本机,JNI/JNA)库实现解决方案?
如果真的没有解决方案,我什至会自己使用 JNA 或 JNI 实现一个解决方案——你能给我一些正确方向的提示吗?我是一个 GNU/Linux 人,不得不承认我什至不知道从哪里开始在 Windows-API 文档中搜索它。
顺便提一句。我已经在 Waffle-community 中问过这个问题,但还没有得到任何答案。也许华夫饼不是最好的解决方案,无论如何?也许有更好的方法?
google-chrome - Chrome NTLM TCP 关闭
您好我正在尝试让 Chrome 针对基于 NTLMv2 的服务器进行身份验证。作为最终目标,我并不介意是否必须填写提示或是否使用 Windows 凭据。
主要问题:当我在 Wireshark 中查看从 Chrome 发送的数据包时,我可以看到它进入了 URL,得到了一个 401 请求 NTLM 数据。然后 Chrome 继续发送一条NEGOTIATE
消息,从服务器接收一条CHALLENGE
消息,之后它直接关闭整个连接并给我一个ERR_UNEXPECTED
. 使用身份验证服务器设置的某些组合,它有时会提示我输入用户,但它甚至从未尝试发送AUTHENTICATE
消息。
现在这变得有点奇怪了,因为我从另一台机器获得了一个带有与正常AUTHENTICATE
消息反应的确切 http 流量(如字面上相同的协商标志、用户、域、cookie 等)的wireshark 跟踪。
同样,在同一台机器上,我在 python 中使用 requests_ntlm 制作了一个脚本,其具有相同的凭据,可以很好地进行身份验证,因此服务器不会阻止我。
IE 和 Firefox 确实有相同的奇怪行为,这让我认为这可能是一个政策问题,但我无法终生弄清楚什么政策会导致这种不寻常的行为。(IE给出INET_E_DOWNLOAD_FAILURE
)
铬标志
我正在使用以下参数调用 chrome:
组策略
每个 NTLM 相关设置都已尽可能放宽:
计算机配置 > Windows 设置 > 安全设置 > 本地策略
登记处
按照 chrome 管理的模板,我在Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
凭证管理器
Windows 商店有一组相关域的凭据,域\用户
active-directory - 如果配置了 NTLM,华夫饼如何使用域控制器验证密码?
在 jespa 中,我们需要为 netlogon 服务配置计算机帐户和密码,但是waffle演示应用程序在没有计算机帐户的情况下执行 NTLM。这怎么可能?
ntlmv2 - 仅强制执行 NTLMv2 后无法访问 UNC 路径
实施 NTLMv2 后,我可以使用服务器的其他有效 SPN 访问服务器。下面记录了以下访问 UNC 路径的失败尝试。
主题:安全 ID:省略帐户名称:省略帐户域:省略登录 ID:0x2E5F59D2
SPN:
SPN 名称:cifs/ 错误代码:0xC0000022服务器信息:服务器名称:配置名称:N/A IP 地址:127.0.0.1;::1;;
我添加了 cifs/ 的新 SPN 和 FQDN 的新 SPN。我希望服务器重启能在本周末解决它。我假设我只需要为 cifs 添加 SPN。