Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication Kerberos TGT更新_Authentication_Kerberos - Fatal编程技术网

Authentication Kerberos TGT更新

Authentication Kerberos TGT更新,authentication,kerberos,Authentication,Kerberos,我在更新TGT时的理解是,新密钥使用用户密码(或其派生密码)进行加密,以便他们可以解密。但这意味着密码必须存储在内存中才能使用新的TGT 我的问题是: 我的理解错了吗?新的TGT密钥是否可以使用旧的TGT密钥进行加密 如果密码存储在内存中(因此不会再次提示用户),为什么要创建一个可更新的TGT而不仅仅是获取一个新的TGT 请允许我纠正你对这一点的理解。Kerberos的工作原理是将密钥嵌入到有两种类型的票据中,即TGT和服务票据(ST)。实际密码不会存储在内存中,也不会放入票据中。加密机制使用密

我在更新TGT时的理解是,新密钥使用用户密码(或其派生密码)进行加密,以便他们可以解密。但这意味着密码必须存储在内存中才能使用新的TGT

我的问题是:

  • 我的理解错了吗?新的TGT密钥是否可以使用旧的TGT密钥进行加密
  • 如果密码存储在内存中(因此不会再次提示用户),为什么要创建一个可更新的TGT而不仅仅是获取一个新的TGT

  • 请允许我纠正你对这一点的理解。Kerberos的工作原理是将密钥嵌入到有两种类型的票据中,即TGT和服务票据(ST)。实际密码不会存储在内存中,也不会放入票据中。加密机制使用密码的推导加上几个附加项来防止中间人和重放攻击。
  • 新的TGT不会使用旧的TGT密钥进行加密。这是因为加密的一部分利用了时间戳,当然时间戳总是变化的。因此,旧的TGT一旦过期或用户请求新的TGT,就会失效。此外,TGT既不是使用用户密码加密,也不是简单的密码派生。TGT使用时间戳和KDC的主密钥进行加密,后者只有KDC知道。用户无法解密TGT。但通过拥有它,用户证明了他所说的是谁,因为当他第一次请求TGT时,他已经通过发送一个验证器证明了自己的身份,验证器基本上是他的密码、时间戳和一些其他项目(如IP地址)的散列
  • 密码从不存储在内存中,默认情况下TGT是可更新的。只有当TGT所针对的帐户即将到期或已被禁用时,该帐户的用户才能获得新的TGT。必须认识到,无缝单点登录体验的一部分意味着TGT在默认情况下是可更新的。虽然TGT是“更新的”,但它实际上是一个全新的TGT。RENERABLE标志只意味着获得新的TGT对该用户来说是可以的。如果你看一下这个的网络跟踪,你会发现这是一张新的票。最后,除了用户之外,唯一可以确认/验证该散列值的实体是KDC
  • 仅供参考,我还建议编辑您的帖子,并添加“身份验证”标签,以吸引更多的读者


    参考文献:


    谢谢。这使情况变得明朗了许多。TGT续订时是否创建了新的会话密钥?是->用于票据授予票据(TGT)和服务票据的会话密钥是短期的,并且仅在该会话或服务票据有效时使用。每: