【问题标题】:Which NTLM version (1 or 2) does SMBJ authenticator support?SMBJ 身份验证器支持哪个 NTLM 版本(1 或 2)?
【发布时间】:2020-09-23 13:16:04
【问题描述】:

我正在开发一个需要使用 SMB 访问网络共享的应用程序。有人告诉我,如果安全检测到使用 NTLM v. 1 的身份验证尝试,那么相应的防火墙规则将被撤销。

因此,我需要确保 SMBJ(我可能会使用它)支持 NTLM v. 2 并默认使用它。

SMBJ 是否支持 NTLM v. 2?它默认使用它吗?

我自己的尝试

在 SMBJ 的 source code 中,我发现了以下片段:

byte[] serverChallenge = challenge.getServerChallenge();
byte[] responseKeyNT = ntlmFunctions.NTOWFv2(String.valueOf(context.getPassword()), context.getUsername(), context.getDomain());
byte[] ntlmv2ClientChallenge = ntlmFunctions.(challenge.getTargetInfo());
byte[] ntlmv2Response = ntlmFunctions.getNTLMv2Response(responseKeyNT, serverChallenge, ntlmv2ClientChallenge);

名称getNTLMv2ClientChallengegetNTLMv2Response 表明可以使用NTLM v. 2。

另外,JCIFS 主页claims 表示 SMBJ 是后续项目:

幸运的是,有多个新的开源 SMB Java 项目可供尝试,其中包括:

jcifs-codelibs jcifs-ng smbj

根据其FAQ,JCIFS 自 1.3.0 版以来一直在使用 NTLM v.2。

如果

  1. JCIFS 支持 NTLM v. 2 并默认使用它,
  2. SMBJ 基于 JCIFS,

那么 SMBJ 应该支持 NTLM v. 2 并默认使用它。

【问题讨论】:

    标签: java ntlm ntlmv2 smbj


    【解决方案1】:

    是的,SMBJ 使用 NTLMv2 或 SPNEGO 进行身份验证。您可以配置要使用哪一个。它不使用 NTLMv1。

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      相关资源
      最近更新 更多