首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ktpass是怎样、什么时候放盐的?

ktpass是怎样、什么时候放盐的?
EN

Stack Overflow用户
提问于 2016-11-23 09:14:34
回答 2查看 2.8K关注 0票数 1

用户的密码和salt确定ktpass生成的Kerberos密钥。我注意到ktpass有时会更改用户的salt,但有时不会。我能够通过捕获kinit的数据包跟踪来发现盐。salt似乎是基于Kerberos领域和userPrincipalName生成的。然而,这并不是那么简单。如果稍后手动更新UPN,则不会更新salt。(我怀疑是否指定了/mapop选项可能起到一定的作用。)

  1. 在什么情况下,ktpass设置用户的盐?
  2. 盐是如何决定的?
  3. 盐是储存在AD里,还是只储存在KDC里?
  4. 有没有一种直接的方法来读取盐的当前值?
  5. 有办法手动更换盐吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-23 12:56:16

  1. 自其在Windows 2000中创建以来就一直使用Kerberos v5,在该目录中,ktpass命令会自动设置盐分。盐类总是在Kerberos v5中使用。在Kerberos v4,盐从未被使用过。
  2. 使用完整的主体名称(包括领域)作为salt,例如,accountname/somedomain.com@SOMEDOMAIN.COM,然后将其与密码的加密散列配对,以确保结果在整个AD林中是唯一的。
  3. 如前所述,salt是完整的主体名称(包括领域)。它存储在ntds.dit文件中,该文件是数据库。KDC是在kdcsvc.dll生成的过程中产生的,它与存储在ntds.dit中的值有关。因此,虽然KDC和AD数据库在运行时环境中并不是一个相同的数据库,但可以说,它们是“在hip上连接的”。我认为当域控制器关闭时,KDC中的所有重要元素都将持久化在ntds.dit中。微软并没有提供这方面的具体细节。我看过很多东西,我的部分知识来自于仔细的研究和从网上找到的一些文章中得出的推论。注意,ntds.dit数据库也是LDAP数据库。如果DNS是AD集成的,它也是DNS数据库.所有这些协议一起工作,再加上一些,形成"Active Directory“。
  4. 打开Active Directory用户和计算机,转到Account选项卡。“用户登录名”是“读取”salt最直接的方式。您没有看到与其连接的领域名称,但这是隐含的。SPN,如果也定义的话,是以一种简单的方式列出的,就像您在属性编辑器选项卡下(查找servicePrincipalName)一样。为了公开此选项卡,请确保选择了View > Advanced。相应的UPN也将在这一节的较低处列出,其方式完全类似于: accountname/somedomain.com@SOMEDOMAIN.COM。
  5. 当您在account选项卡上更改帐户名时,您刚刚更改了salt。注意,如果有一个键选项卡绑定到这个AD帐户,您将刚刚使它失效,因为它的秘密密钥是密码哈希和salt的一个连接。当salt或密码更改时,则AD帐户和keytab中的密钥将不再匹配。此时您将不得不重新生成它。

合乎道理?这确实是一个实地解释。要了解与AD相关的Kerberos的更多信息,请从这里开始:Kerberos生存指南

票数 3
EN

Stack Overflow用户

发布于 2022-06-20 10:53:08

有一种稍微简单一些的读取当前盐值的方法(它并不是非常简单,但至少不需要paket跟踪):

  1. 安装用于Windows的麻省理工学院Kerberos
  2. 打开一个PowerShell并运行:$env:KRB5_TRACE="kinit-trace.log“'C:\Program‘-fV UPN-或-USER@领域获取的内容$env:KRB5_TRACE选择-String”Files\MIT\Kerberos\bin\kinit.exe“rm $env:KRB5_TRACE 我假设MIT Kerberos安装在它的默认位置。如果没有,则需要在第二个命令中调整路径名。

这个解决方案最初是由用户Spezieh为Linux推荐的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40760205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档