Kerberos认证流程

因为要实现iOS上的SSO,看到是基于这个协议,暂且整理如下,待完善…

原理:A、B共享一个秘密secret,A通过提供这个秘密secret,向B证明自己是A
协议包含三个部分,如下:
Kerberos认证流程

Sequence画图网址:https://www.websequencediagrams.com

新增了一个子协议——User2User Sub-Protocol:有效保障Server的安全,避免传输Server Master Key
更新后的流程大概如下:
1. Client向KDC请求KDC-Client Session key和TGT(Client可以向KDC请求访问Server的Ticket)
2. Client获取KDC-Client Session key和Server的TGT(封装了Server-KDC Session key)
3. Client向KDC提交自己的TGT、Server的TGT,申请访问Server的Ticket
4. KDC先解密Client的TGT获得KDC-Client Session key,验证Client的身份,返回Server-Client Session key给Client
5. KDC再解密Server的TGT获得KDC-Server Session key,并加密Ticket(封装了Server-Client Session key)返给Client
6. Client向Server提交Ticket和Server-Client Session key加密的Authenticator
7. Server解密Ticket得到Server-Client Session key,验证Client身份