|
|
9 Y- P, b+ I2 d8 c6 G1、客户端需要访问某个服务器。& A: R$ S% O( \" ~! W+ L
2、客户端发送报文给kerberos,申请TGT。 O" ?0 n, x; h; I( x7 N
客户端在发送报文给kerberos的时候,会发送两份信息,
1 U0 ? i2 R) j% \% G0 d 第一份信息是明文信息(我是谁,我需要申请一张TGT去访问服务)7 k. ?. w- Q* z6 @ q! i/ `4 }6 {
第二份信息是加密信息(客户端的基本信息),通过客户端的密码加密的。
% k6 M1 t# o; p& X3、kerberos接收到报文
7 X9 G. T7 n' A" `; l, ^2 q 根据客户端发送的明文信息,去ldap找到客户端的密码。& ?& S6 g2 s. w2 U! ?
通过从ldap拿到的客户端密码去解密客户端发送给他的加密信息。2 x) N! h+ z9 C: q1 G" k
解密完成之后,对比解密出的客户端信息和客户端发送的明文信息是否一致。- n6 i, U4 R4 Q- H' t
4、kerberos生成一个session key。
2 j) S2 a0 G! m. n" g& n- h' { 将session key复制两分。4 v8 J" E$ C/ M+ P1 b# \
一份session key通过客户端的密码加密。
4 a' K* v! A. w7 L 另一份session key 和 客户端信息通过kerberos 密码加密。(TGT)) m9 [& u- H7 W9 |
kerberos将这份信息一起发送给客户端。3 S3 A0 S1 Y! S& R! W- R
5、客户端申请ST. x) g' H" T: d( N1 a4 W1 t' O6 t6 @' u
向kerberos发送请求(我是谁,我想要访问哪个服务)-->明文信息
! O9 |# t; }% Q4 }& q 客户端通过自己的密码解析上一步kerberos发送给自己的通过自己密码加密的报文,拿到session key。* x" m+ g. x+ l( Q$ y
使用session key将自己的信息加密。, H% Z( V7 G$ q2 o
将加密信息和TGT一起发送给kerberos。
: F& B( R* h7 x2 R2 b) i, `* Q6、kerberos接收到客户端发送给他的报文8 w( z. }1 }3 S: [+ @' Y6 q
先通过自己的密码解析TGT,解析完成之后,拿到session key(kerberos服务端和客户端的session key)和客户端信息。( Q# C( Y6 ^- v7 r9 b( u0 `
通过拿到的session key(kerberos服务端和客户端的session key)解密上一步客户端发送给他的经过session key(kerberos服务端和客户端的session key)加密的信息,拿到客户端信息。$ S! D* u- E4 f
将客户端信息和TGT里面包含的客户端信息做比较,看是否符合,如果符合,说明此客户端之前已经通过kerberos认证,可以给客户端生成ST。$ a) O8 S# b% x4 r- a
kerberos 再次生成一个session key(客户端和他所要访问的服务的session key)- g4 S, d( m" I0 a
通过客户端所要访问的服务端的密码将session key(所要访问的服务端和客户端的session key)和客户端信息加密。(ST)( Q* Y+ B- M# _9 }. C) [7 f
通过上一步发送给客户端的session key(kerberos服务端和客户端之间的session key)将客户端和服务端的session key加密。
" I( ]; d$ Y# B" ? 将这两个报文一起发送给客户端。
6 h, |; W' B- d: T* B& e7、客户端收到两个报文
% Q* }/ X; L6 a- F- a/ ~; l+ x 通过本地缓存的session key解密kerberos 给他发送的通过自己session key加密的自己和服务端的session key。
# [5 j: c v2 ?! ?6 u$ X 再使用和服务端之间的session key将自己的信息加密。# O5 W. Z% W' ]4 S" Z& O: Y
将加密好的报文和ST一起发送给自己所要访问的服务。+ ^: U1 @( m% O! T/ U
8、被访问服务收到报文" p7 E: ?" ?+ r( r6 B$ I7 q
通过自己的密码解密ST。拿到和客户端之间的session key和客户端信息。# A& ~0 C8 q1 t& ?# N2 o$ i% Z6 ?
使用session key解密客户端发送给他的经过session key加密的信息,拿到客户端信息
2 }! g7 y- w3 T( m' I& z 将拿到的客户端信息和ST里面包含的客户端信息做比对,看是否一致。如果一致,则客户端认证成功。0 Z2 K7 X- e; [! \3 ?5 X
9、客户端可以去访问他所需要访问的服务。
/ p8 v' ?0 b9 x+ R" ^
' s$ T2 W, ]3 p5 L+ y
8 ~. A$ @* Z' }+ h# v视频目录:/ `/ b @7 X4 [; c
* R" P' z% O2 I
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|