身份验证服务交换(The Authentication Service (AS) Exchange)

Kerberos基於对称密钥加密技术,并且需要受信任的第三方,并且可以选择在身份验证的某些阶段使用公共密钥加密技术。Kerberos默认使用UDP端口88。(维基百科

身份验证服务(AS)交换(The Authentication Service (AS) Exchange)
客户端与Kerberos身份验证服务器之间的身份验证服务(AS)交换是由客户端在希望获取给定服务器的身份验证凭据时启动的,但当前不保存任何凭据。客户端的密钥以其基本形式用於加密和解密。通常在登录会话启动时使用此交换来获取票证授予服务器的凭证,该凭证随後将用於获得其他服务器的凭证,而无需进一步使用客户端的秘密密钥。
此交换还用於请求凭据的服务,这些凭据必须不通过票务授予服务进行调解,而需要了解委托人的秘密密钥,例如密码更改服务(除非请求者要求,否则密码更改服务会拒绝请求可以证明用户的旧密码知识;要求此知识可防止有人走到无人值守的会话时未经授权更改密码)。
这种交换本身并不提供用户身份的任何保证。为了对登录到本地系统的用户进行身份验证,可以首先在TGS交换中使用在AS交换中获取的凭据,以获取本地服务器的凭据。然後,这些凭据必须由本地服务器通过成功完成客户端/服务器交换来验证。
在AS交换由两个消息:从客户端向KRB_AS_REQ Kerberos和KRB_AS_REP或KRB_ERROR答复。
在请求中,客户端以明文形式发送其自身的身份以及为其请求凭据的服务器的身份,有关其正在请求的凭据的其他信息以及随机生成的随机数(可用於检测重播和重发)。将回复与匹配的请求相关联。此随机数必须由客户端随机生成,并记住以检查预期答复中的随机数。
响应KRB_AS_REP包含供客户端呈现给服务器的票证,以及将由客户端和服务器共享的会话密钥。会话密钥和其他信息在客户端的秘密密钥中加密。KRB_AS_REP消息的加密部分还包含必须与KRB_AS_REQ消息中的随机数匹配的随机数。
没有预身份验证,身份验证服务器将不知道客户端是否实际上是请求中指定的主体。它只是发送一个答复,而不会知道或关心它们是否相同。这是可以接受的,因为除了在请求中给出身份的委托人以外,其他任何人都不能使用回复。它的关键信息在该主体的密钥中被加密。但是,攻击者可以发送KRB_AS_REQ消息来获取已知的明文,以攻击主体的密钥。特别是如果密钥是基於密码的,则可能会产生安全隐患。因此,初始请求支持一个可选字段,该字段可用於传递初始交换可能需要的其他信息。该字段应该用於预认证。
来源:RFC 4120 – Kerberos网络身份验证服务(V5)

参考
. 使用Kerberos登录Windows
. Kerberos和Windows安全系列
. Kerberos Wireshark捕获:Windows登录示例
. Kerberos和Windows安全性:Kerberos v5协议
. 网络BIOS

资料来源: Wentz Wu QOTD-20210113


<<:  [Android Studio] -- Day 2 主题变换Theme01

>>:  使用 Google 表单快速建立实名制出入场所登记资料 COVID-19

[Day22] CH11:刘姥姥逛物件导向的世界——封装性、继承性

今天要来介绍物件导向的三大特性:封装性、继承性、多型性。 封装性(Encapsulation) 可以...

[Day 11] Sass - Operators

Operators 今天要来介绍一下Sass的Oerators-运算功能 虽然在一般的CSS中,我们...

Day27 - 在 Kubernetes Ingress 挂上 Google SSL 凭证

取得 SSL 凭证的方式 在 Day26 我们建立了 Ingress,使服务能透过 Domain N...

卡夫卡的藏书阁【Book10】- Kafka Connect 1

“Books are a narcotic.” ― Franz Kafka 突然想起了恐龙书 Ka...

Day9. functional programming in Ruby - Block Part2

初来乍到Ruby世界的读者们,绝对想不到原来Ruby 也有 curry, bind 等用法。这些语法...