|
|
, @* I" v$ @- `1、客户端需要访问某个服务器。
/ B% G7 `9 a( Q5 G! M) S$ y6 \$ T2、客户端发送报文给kerberos,申请TGT。3 V8 T5 t/ f8 G q8 ~ c7 t- R* Y+ t
客户端在发送报文给kerberos的时候,会发送两份信息,9 R% Z! e$ s, p `7 i# t) [! g( ~
第一份信息是明文信息(我是谁,我需要申请一张TGT去访问服务)
2 h' V; z. a+ O# P 第二份信息是加密信息(客户端的基本信息),通过客户端的密码加密的。* Y: M0 R* V _
3、kerberos接收到报文& _/ A3 i' O$ }
根据客户端发送的明文信息,去ldap找到客户端的密码。/ n; u! R+ G# T+ o2 L# [7 _
通过从ldap拿到的客户端密码去解密客户端发送给他的加密信息。
* D, ?8 v2 D+ A" l9 v% t" W2 h 解密完成之后,对比解密出的客户端信息和客户端发送的明文信息是否一致。9 W" I) ]+ Q* N) S2 [5 P9 w8 u; }& r
4、kerberos生成一个session key。
" j, h! O8 r9 a, [1 Y 将session key复制两分。
% C1 E$ Z5 m l 一份session key通过客户端的密码加密。+ D" [7 u) M0 r
另一份session key 和 客户端信息通过kerberos 密码加密。(TGT)' @; m& L4 s+ s! H1 y
kerberos将这份信息一起发送给客户端。
; ^8 e; k& V9 _# a% a, _8 C5、客户端申请ST8 g$ S8 u4 P3 W z
向kerberos发送请求(我是谁,我想要访问哪个服务)-->明文信息: r4 A/ W" s" Y0 H/ A
客户端通过自己的密码解析上一步kerberos发送给自己的通过自己密码加密的报文,拿到session key。5 C. U- @/ P5 j3 Z0 f5 I; e1 }8 D7 ^
使用session key将自己的信息加密。2 f+ z/ L O) r) u- f: N. h$ y
将加密信息和TGT一起发送给kerberos。
9 P* o4 v- l: x6、kerberos接收到客户端发送给他的报文/ L9 F C. Y# U% V$ z. m% j( z. l
先通过自己的密码解析TGT,解析完成之后,拿到session key(kerberos服务端和客户端的session key)和客户端信息。
4 _9 P. ?; O6 R& e9 Y7 ` 通过拿到的session key(kerberos服务端和客户端的session key)解密上一步客户端发送给他的经过session key(kerberos服务端和客户端的session key)加密的信息,拿到客户端信息。/ O- l- v2 c$ k$ j) f8 ]
将客户端信息和TGT里面包含的客户端信息做比较,看是否符合,如果符合,说明此客户端之前已经通过kerberos认证,可以给客户端生成ST。
" u3 E% n+ F. z9 h+ U# \ kerberos 再次生成一个session key(客户端和他所要访问的服务的session key); l$ [% k9 t' A6 ]# z
通过客户端所要访问的服务端的密码将session key(所要访问的服务端和客户端的session key)和客户端信息加密。(ST)
3 `1 K, G" ?* p6 b' C' i 通过上一步发送给客户端的session key(kerberos服务端和客户端之间的session key)将客户端和服务端的session key加密。
1 s- b8 [0 X" S/ e( h( s 将这两个报文一起发送给客户端。
{# n x; T( k4 x' V& ~3 V. B* _7、客户端收到两个报文
5 C3 \" q! X7 S, A1 E 通过本地缓存的session key解密kerberos 给他发送的通过自己session key加密的自己和服务端的session key。
5 S/ @! t; I3 d! W3 I/ ]: x3 d 再使用和服务端之间的session key将自己的信息加密。
# ^" k+ ~( x( d( }8 }6 `7 H" ^: l 将加密好的报文和ST一起发送给自己所要访问的服务。
; |3 f0 D, q0 A7 m8、被访问服务收到报文/ Q% M3 w D% o1 k
通过自己的密码解密ST。拿到和客户端之间的session key和客户端信息。
* s0 l& S# c' S* ~+ w 使用session key解密客户端发送给他的经过session key加密的信息,拿到客户端信息( }7 b' w- ^: J/ A7 _9 E5 r
将拿到的客户端信息和ST里面包含的客户端信息做比对,看是否一致。如果一致,则客户端认证成功。" ?$ _& O) T7 G' d/ m1 C/ W
9、客户端可以去访问他所需要访问的服务。
2 E) e& M& o& D6 r0 W6 L$ f6 r" ?/ c0 y& d% w" j. @
( F b3 j a* c! U视频目录:
+ A" W# s0 B0 ^7 U3 L5 y7 v2 G \! {5 ~% n' o7 l
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|