关于AD中如何实现kerberos的咨询

炸天 周 140 信誉分
2024-11-24T12:53:49.54+00:00

我之前有了解过一些AD的kerberos认证的内容,其中有说到kerberos认证时,从AD数据库中获取的是用户的NTLM hash,AD使用NTLM hash作为加解密的用户密钥。在kerberos认证流程中,kerberos服务器会将用户的NTLM hash使用其他例如AES等算法加密,AES等算法是与客户端协商好的。以下是我找到的AD支持的kerberos加密算法的列表,因为原始的加密信息是使用了用户的NTLM hash,因此AD在AS阶段生成的session key应该是类似使用AES(NTLM(明文密码))加密而成的,我是不是可以这样理解只有windows kerberos客户端才能对接AD?但我最近了解似乎MIT的krb5同样可以连接AD并通过AD的kerberos认证流程,于是我有以下的问题:

用户的图像 1、AD的kerberos是否在数据库中存储了多种用户明文密码加密后的密钥,这些密钥使用类似AES(用户明文密码)的加密算法,并在AD的kerberos用户条目中生成一个AES密钥属性。例如用户明文密码使用AES、RC4、RSA等算法加密后的AES密钥、RC4密钥、RSA密钥,以支持用户/其他客户端直接传入明文密码不使用NTLM hash来完成AD的kerberos认证?

2、如果不是上述的做法,那其他的kerberos客户端是通过什么方式,不基于NTLM hash来完成AD的kerberos认证呢?例如MIT的krb5似乎可以对接AD

Windows
Windows
Microsoft 操作系统系列,可跨个人计算机、平板电脑、笔记本电脑、手机、物联网设备、独立混合现实头戴显示设备、大型协作屏幕和其他设备运行。
462 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Yanhong Liu 13,655 信誉分 Microsoft 供应商
    2024-11-26T02:56:13.2133333+00:00

    您好,

    您的问题涉及到Active Directory (AD) 和 Kerberos 认证的内部机制,特别是与用户的NTLM hash 以及支持的加密算法有关。

    为了回答您提出的两个问题,下面是一些更加详细的信息:

    1. AD中用户密钥存储机制

    在Active Directory中,用户密码的确会被存储为不同的加密密钥形式,以支持各种加密算法。具体来说,每个用户的密码会生成不同的密钥,这些密钥使用不同的加密算法,如AES、RC4等。这样做的目的是为了兼容不同的Kerberos客户端和支持不同的加密标准。

    当用户在尝试通过Kerberos进行认证时,AD会选择一种合适的加密算法与客户端进行协商。这取决于客户端支持哪些加密算法,以及AD在用户条目中存储的密钥。

    1. 其他Kerberos客户端的认证方式

    其他Kerberos客户端,如MIT的krb5,可以连接到AD并完成Kerberos认证,这是因为这些客户端同样支持AD中使用的加密算法。

    AD存储的是多种密码的密钥格式,这意味着只要Kerberos客户端使用相同的加密算法,AD就能完成认证流程。因此,MIT krb5这样的客户端在提供正确的明文密码和支持相应的加密算法时,能与AD进行成功的Kerberos认证。

    同时为了确保不同的Kerberos客户端实现能够与AD进行互操作,AD支持的Kerberos协议(如RFC 4120)尽量保持标准化。

    希望以上信息对您有所帮助。

    =============================================

    如果答案对您有帮助,请点击“接受答案”并点赞。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

1 个其他答案

排序依据: 非常有帮助
  1. 炸天 周 140 信誉分
    2024-11-26T08:58:55.2333333+00:00

    你好,感谢你的回答,解开了我的疑惑。我有一个新的问题,如果在kerberos认证的AS的预认证阶段客户端使用NTLM hash的用户密钥,此时kerberos服务器怎么区分客户端是使用NTLM hash还是用户明文密码来加密时间戳


你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。