Kerberos &
X.509
11
Network Security, Principles and
Practice,2nd Ed.
"!
#
!
:
http://www.fata.ir
http://mehr.sharif.edu/~shahriari
!
:
:
Authentication
Authorization
Accounting
.&' ( # )
!" #
$ %
Motivation
:.
()
,
*
'! ( ) :
- !)
*
"
&
$
' client %
" client %
"
!+ $
& " #$ %
% , !+
$! #
! "
*
$! # ! "
,- *
+ , (
56 ) 23 &10-
. / +
,)
MIT &'
8
= ; &' < ! 9 : , /% )
,
1 &1 > @6? )
, > ? /% &6
26 (
C5 4
3
+ , -
#
/- 6
1%E / &
1G /- 6
,
1
(Common) ,
#
&' < ! F1
(Security) )1
0:
(+ , -)
.& 1K, ” K#
0-
#
(Reliability) 1 8
HI
6
1 8
(Transparency) )1 2'
'“
6 1 = &
6 1 & , , (Scalability)
HI + 15
/% - , - O1'
&N! , - )10, M
')
+ , -
/% -
#
1%E
P N! & $
P N!
( N
#
, .& .&' ,
, T 16
-
: # 10. '
Q3R
6
& = :
.&' ,
&
&'
+ , - /% - ( N :&10- <
! /-
, - ; .6 ; S
, : Principal
62% ;& + , - /% - , ? & '
" #34 5 1 2 ) 1 2 '! ( ) 0
! , 8 '9 4 7
/ 7
.7
0
)
0-)
.
U V
Y 6R &10- = /% : /% -
1.
2.
3.
/ "
6
+
7 : ;
AS O1, :>
- F ! 9 &? )
Client
AS: IDclient || PassClient || IDServer
AS
Client: Ticket
Client
Server: IDclient || Ticket
AS : Authentication Server
Kserver: Shared key between AS and Server
Ticket = EKserver [IDclient || Addrclient || IDserver]
?
F10,
+ , <, ,
0M , , 6
,
Z. -)
% # <M
K6# . 1, - '
,
.&' ,
[K'
U V
,
(Client)
] R1 -\ F10,
-+ C
$
& 61 /1
C) , '^ 8
F10, - @3' 9 : O 1G
F10, &' -\ + C , 9 &? ! - .& - 26 9 [
. R1
+ C "N "[R
(
&R / 9 : , Z
.
.& '
F10,
Z%
IDclient
-
' $
] R1
&' . / 9 : , 9 #_8 O
9 &? &' , 6' & )5, ` F10, ,
' %
0-)
U V
9_[R
H%/
&,
(ab O6 "[' ,)
K# 0- (
[! 0
[
C ) &?
F10,
]
)1
! -
, & & F10,
&c
26
(Tickets)
F10,
,=
. '
K#
')
&c
0- &c d !
)
& C
b 5! Z /V
26
1% 0
)1 2'
6 , -
$
1U V -
e/
F10, & - `# /% - Z , & &
/% - =
26
TGS: Ticket Granting Server
- - ; AS ;)
.
. '
: C F ! ticket-granting ticket ”F10, g `# “ F10,
: TGS F ! 9 &? g `#
. & R1
(AS) )
/% -
`10, $ %
service-granting ticket ”9 &? g `# “ F10,
/% - Z 1I - / , K# 0- ( 56
K# 0- &' ^6R &10- F !
1U V -
h 6
- ,
e/
TGS
Client
1. IDClient || IDTGS
3. IDClient || IDServer || TicketTGS
2. EKClient [TicketTGS]
4. TicketServer
AS
&10- = Log
- , In - 0
AS
? Y 6R
TGS F10,
.& [1 , ,
5.
I
D
Cl
ie
nt
|| T
ic
ke
tS
er
v
er
Ticket TGS = E K TGS [IDClient || AddrClient || ID TGS || Timestamp1 || Lifetime1 ]
Ticket Server = E K Server [IDClient || AddrClient || IDServer || Timestamp 2 || Lifetime2 ]
Server
1U V -
e/
.& R1 (&,
Log on 0
g ,
=
'
1I
.& R1 (&,
9 &? i
g , $
'
1I
. R1 (&,
9 &? 0
g ,jI
' Z 1I
1.
2.
3.
4.
5.
Client
AS: IDClient || IDTGS
AS
Client: EKClient [TicketTGS]
Client
TGS: IDClient || IDServer || TicketTGS
TGS
Client: TicketServer
Client
Server: IDClient || TicketServer
F10,
6
: F10,
`# F10,
Ticket TGS = E K TGS [IDClient || AddrClient || IDTGS || Timestamp1 || Lifetime1 ]
: 9 &?
`# F10,
Ticket Server = E K Server [IDClient || AddrClient || IDServer || Timestamp 2 || Lifetime2 ]
1U V
.& 6
&
k& ( K
%E
,+
.&
, R 6? &' : F10,
) TicketTGS . /
)
.& - &1I
&' P N!
.& [1
,=
,
. '
6
&'/ F10, , & !
(Spoof) "N [K' + C
'
1 )1
1U V
-
) 1 lV
;(
&$
O ,
PNb m 5
: `10, K6#
n H%
F ! /% - )
!
(Integrity) )1 ! `10, 6
/
C `10, (Timestamp)
26
.& &c 26 ", M
. 1%
,)
, [K' + C
)
"[R
? , 1 : ! [! 0
`? : & 0,
Z&# :
=
')
-
c 1G /% - = ,
)
?
&1
4 3 + , -
. R1
":
.)
0KM
"[! I 6 N !
.) &' "
[! 0 "[R
M , (mutual) K
)
1 8 ", 5 k 8 )
[! 0
/% & [1
, 0, 5
1 8 & , TGS /% - :. ./ ! " +
. &' :
, F10, - )
&' i &, (Authenticator)
K6# Z , & & Z 2
&
, 0 &10- Z 2
F10, , _#
F10, , - - &
:)
-
":
1- 6
, :4 3 + , -
.V
1. IDClient|IDtgs|TS1
2. EKClient[KClient,tgs|IDtgs|TS2|Lifetime2|Tickettgs]
Client
AS
Tickettgs=EKtgs[KClient,tgs|IDClient|AddrClient|IDtgs|TS2|Lifetime2]
TGS F10,
TGS
Tickettgs=EKtgs[KClient,tgs|IDClient|AddrClient|IDtgs|TS2|Lifetime2]
0 &10- O1,
TGS
'
-
+ C
-
'
TGS
K6#
F10,
-
, 0
O j 6
AS “F10, g `# ” F10, O
(TS2)F10, o5
TGS
- O1, O
”9 &? g `# “ F10,
C ) &,
C ) &,
C ) &,
C ) &,
3. IDserver|Tickettgs|AuthenticatorClient
4. EKClient,tgs [KClient,server|IDserver|TS4|Ticketserver]
Client
TGS
TicketServer=
EKserver[KClient,server|IDClient|AddrClient|IDserver|TS4|Lifetime4]
AuthenticatorClient=
EKClient,tgs[IDClient|AddrClient|TS3]
/% - F10,
TicketServer= EKserver[KClient,server|IDClient|AddrClient|IDserver|TS4|Lifetime4]
0 &10- O1,
/% -
'
-
+ C
-
-
'
TGS
K6#
AuthenticatorClient= EKClient,tgs[IDClient|AddrClient|TS3]
'
-
+ C
-
K6#
F10,
-
.
V
, 0
O j 6
K6# =
26 , [! 0
1% 0
! - # - k @ K[ (Authenticator)
, m K!
, 0 &10C ) &,
9 &? , , 16
5. TicketServer|AuthenticatorClient
6. EKClient,Server [TS5+1]
Client
Server
&'/ Z q1I &
, 0
O j 6
% , , R' Z %
[! 0
0-
/% - )
,
' :4 3 + , -
1% 0
' :4 3 + , -
0-
(realm) + , :)
R3, + , + , - /% Application Servers
, - /% -
.)
&' "1[R!
0M
0M
.
?
. I
, - Z ! n H% + , - /% 6' H% Y 6' , 23 &10, - /% , + , - /% .)
6 &
= ( N
0M sr N
0M O1,
')
5 3 + , 9 @3R
)
&' u ` 1990 F
)
-k 8 ,
0KM 3
K Q5
.) &' 6 %
RFC 1510 6 6
& 6
# ,
0: w
# ,5 3 + , - 6 6
& 6
2000 &
.& 26
, '
5 3
Kerberos v4 9_[R
C<
(DES)> ?
-
26
./
56
6
6 1 = , .6 ,
.V
!
5 3
+
IP , .6 ,
26 (IP OSI _y ) [K' + C
-
!
5 3
`10, K6#
&
5 3
&
; , e/
C<
) &
+
, &
O 5 3
+
Kerberos v4 9_[R
.
= , , - = K6# ( 56 [
+ I ,
z I ,
1 DBMS _y +
. 1., .
. I=
? ,
&# @! 9 @, &10- &N! ;
0M &N! e / ,
&,
.) &' " "[R O 5 3
+
0-
' :5 3 + , -
V
V
1I
M
26
<
# ,
-+ , -
1I O1V : MIT .R
1%
[ CT ?
RFC
-)
[ F ! &' {
&' Z c
1I
! : Heimdal
1I : Active Directory
) & C 1510
X-509
Certificate Authority
CA
Bob’s Public Key
Alice’s Public Key
Alice
Bob
Publish
Retrieve Alice’s
Certificate
Retrieve Bob’s
Certificate
Alice’s Public
Key Certificate
Bob’s Public
Key Certificate
Directory
PKI
:
!" # $ %
”
* +!
,
–
&' !"
$ -./ ! $ 01 "2 # $ 34 2
. 4
5
( )“
4
PKI
.6 78 -" 98
:4
–
1
4 ;<
$
)0 = #
!" $
>?9
.! $ (Scalable) @2 A "
.
!" +!
.E
B C
+!
( $ BC +
$
RSA Public keyE
JIH B
–
–
DE
E &FG E
–
D
–
G2
–
–
. 4 K
.
!
!
+
@D
E
4 E
.
8
"'
–
4 1;L M" ( A 8
–
+! * N
P 8! $
O,
. !
–
!"
–
1Q E
.
R!
$
1Q E
8
R!
$
J
R
–
! "" 8 A S R
–
. 4 B7T B$ >
–
MR
8
&' !"
.
E
. ("
.
E
!"
+!
DC
E &FG
. 4 UFG +!
.? 9 3 8
–
–
–
–
V
E
.! $
D!W ! + E >Q
! *
( $ O,
.! (*
& 4 +! D , 0E +! 0+!
: +!
$ E 6 78 8
W $
?9
.
. 4 : B$ > ("Y
6 Y ; E E QY
.
%
E
D
DE
Z" 8
: * R[ D
.! $ + 4 S ] ; 8 ! $ "< ." I\
&' !" +!
$ E &FG D 1 D C I^
.! $ 0 4
.! $
* R !" 8 3 8 I3
–
–
–
.! $ 7 * R +!
I`
+!
b4 8 +! !" 8 * * R -"$ +
* R- a
.! $ =$ &W
.! $ +!G 9 - c
.! B7T D "" 8 B$ > * R E QY - d
. (" 7 * R ]
1Q
$
4 $- e
. Z4 8 * $
) $ * R ! $ +! g- f
4 ! ( (Certificate) * R
.!" $ 4
. 4 +! 0 9 (CA) -. /
# "4D $ * R
6 78 -" 98
$
Certificate:= ( Public Key, ID,
EKRCA(Certificate - Signature) )
–
–
.
! " # $ %
& '
.
!
% )
*+
. ,- . "/ %
0 12
CA
%
3 ) - 1
.4 5 !"
* R
:S+!
* R E &FG
(d 8 J
*O 8
). 4
–
?9
.
4 :
$ * R; + =4
J * R
1!
+!
$ ( $ * R
1! 1Q
$
# !" j8 $ ! $ " ! !T * * R .+! 1Q $ D
.!4 $
–
+ = 4 CRL ; * R
1! 1Q ? k
$
Certificate Revocation List
–
V * R
;
" Y E D k ::
;
!"
4 '
"" 8 S ; l2 D B
"" 8
. "" 8 - ; "
* nQY
!" + R * l *
.!
4 '
&' !" - ,
G
* $
4 - + #
D "" 8 0 ! MR $
$ +!G 9
* * R;
H * R
: "R E
.
?9 +
1!
* $0 7
.
+
("
–
–
–
1!
: /$ 0 9 ; B >
4 -
–
.! $ ,
&' !"
!" 8 CA - b4 8 $ ]
* * R (" 0? 9 3 8
.
TD CRL +!
–
H * R
1!
* R ; o!*
$ Z4
!*
0…..
"
ED =
)
>?9 0
*
SD
. 4 *
" # $ *
"4 (C ; W/4
F , $ M*
" "8 D 0 "8Q2 0 QY 0 +
E
E )
? 9 :Certificate Policy
–
–
–
* R ; o!*
PKI
.
D
"D
!"
pG
$
.!
%D
8 $
PKI
. 4 * * R D !"
DS M* , o!*
8 4 ;"
DS M* ,
("4
> 09
! PKI ; o!*
PKI
%D
: qr PKI #
$
?9 D
;
PKI
$
B
p"R[ D
+ =4
. G *
", =
!" * R
* R+ #
%D
* R : /$
(Backup & Restore)!" $ ; $ D
$ F(
>
*? 9
@2
* * RI!" sD;
' DS;D $
*!" t $ 4
!
cross-certification;
" G2
.L $
$ -. / D - B 78 $ , o Y , 1
CA
o Y @ D
4 PKI #
!"
! $ .!
.
$ ;$D
l uS
$CA
+!" - 1 4
$ F(
A 4 B$ > "w *+ !
MR 4 .! $
TD !" $ ; $ $
!"
Y' $
+ "'g S D *!"
C .A (C
.
4
*+
TD
$ F(
$ :
t
!"
$ B" D
t
,
! MR ; A 8
$ ' D 0 ! +! ; 0 ! MR
. 4 +!
V I !"
@w 1 ,
$ ;$D
!"
.x 8 #
. >
W8 + D!W
? 9 !" Backup S ; ! @ D
D !" 8
!" sD; #
! 4 1;L $
$ F(
$ F( 1! $ "
1!
' 1! 1Q
7
.!
:
- ?9
? 9 : "D
1 ,
y "'g D !" 8 1 (
1!
4 (EL Ct * ) $ :
. , R
) ! E D k M* , 5 ;
.
+ =4
* $ !" sD; D ==>
*!" t $ 4
!
:! $ l2 .! $ !$ *!" !
. DS ;D $ *!"
sD; $ +!
*+ 8
!p
> *!" sD; $ 4
, o Y , 1 b4 8 - .! $
$ B$ > >
.
1<
; B >0! $ (Transparent) o = ! $ !"
DS;D $
.! S ;D $ ? 9
!!
$ Q
! $! S
;D $ ? 9
*!"
>D :B$
/
PKI
%678
D * R]; 8D0
! 0!" 8 : .(
:C 8
8CRL
–
;
4 +! B" G8 = r
!78 ; PKI
...! * 1 < $ ' $
%D
–
GF$ 1 ! *
PKI
+!
.M +
%678
:
= r p)
Certificate Authority : CA
W : z Registration Authority: RA
. S +!
$ 6 78 ; " Y D * R
* CRLD * * R ] ; 8(Repository): +
(. 1;L
@2 A 4 D S
{ !C)
" S $- D L Y+
(Archive): " S
.E QY
–
–
–
–
PKI
%678
: R!
"Certificate
D "~ G " : B
.
$
+ =4
–
-" | *.
Holder”
–
* R $
–
o Y
CA
.* 8 2 D0 , 1 0 ,
.
!" D 1 :
F4 ;
'
<
= D $
...
%D
–
–
–
CA9 :
. * CA
D $
$ (? 9 D !" 8) * R D!
CRL. D! D * * R "7kD !p
T CRL D * * R G
9 +
* * R ; "7kD E QY " S !p
.? 9 ; l2 * * R
-""78 5 $ 0+! : /$
–
–
–
–
* R D!
!"
$ %
&' !" ( * R +! ) B ,
!" j8
.
* R
T
•+
* * R * 0 D $ CA
&' !" R
. 4 # € 7
• '
&' !" ; % =C CA ="%D -" D l2
. 4 •; 2 : C
5, C
>D C 0 4
4 D * R 4 ; " Y CA
="%D
. 4 * R +!
4 '
–
–
–
–
CA+! * B" G8
T
k
* !" j8 $ •D D
] T 1;L E QY CA $ 4 '
N ; B >RA
. * !" j8 0UF 7T :!
: D DS
: 4 CA $ * ! $ + !" 8 !" sD; OQ > R
.
8 "R o &
4
*# E
- "w
.!* N CA $ !" 8 ; l2
–
–
–
–
PKI
&
! $ , R * R CA # ;
–
, R * R
–
F
* R R!
1
. 4 + 4 .(
* CA; * R R!
>D
!
)! $
PKI + 4
7
Single point of D + R R
!< D! OL C D
!
–
CA # p 8
failure
/ $ < :
R *
.* * R
;4
X.509
X.500
4 * " 8 ; GF$ D ITU-T : &W
S/MIME0 IPSec0 X.509 * R
. 4 +! + = 4 SET DSSL/TLS0
$
$ CA +
* R 7 $CA << A >> O
. 4A
D~ G
TD CA: # y D!W
$
*
.+
* R
D
All
Versions
Version 3
Version 2
Version 1
,-./ ,0123 /45647
- ,-./ ,0123 /45647
Certificate
Version
Signed
Validity Period
(Integer)
Not Before
Issuer
(date and time)
(name)
Not After
Subject
(date and time)
(name)
Public Key Algorithm
Public Key
(bit string)
(object Identifier)
Optional
Attributes
Signature Algorithm
(object Identifier)
Cross-Certificate
# M*
CA.; '
CA ! ) : R $ b"W
CA * ? ; $ D !* l D 4 ' $
$ CA *
.
'
* R
X2:D X1
F CA
$• $ B D A € , $
X1 <<X2>> X2 <<B>>
X2 <<X1>> X1 <<A>>
:
8 B
$ T
O
O
8 $
X <<W>> W <<V>> V <<Y>>Y<<Z>>Z<<B>>
Z <<Y>> Y <<V>> V <<W>>W<<X>>X<<A>>
O
O
Enterprise PKI
.‚ $ PKI
$
F
8
7D
(4
Mesh
–
M ("4
$
$ * R
CRLs
Hot List
.
. "R
>: 4+
S
z 4 Hot List * CRL
S B'
* R: 4+
TD $ CRL 0 * R $ z
.! z : z
!" j8 S
W W D 4
* 8 !4
CA ? 9 $ CRL
.
TCRL * $ z {z !C + = 4
ƒ ) )„
. 4 5
R! z + = 4 ? 4
(" Credit Card
CRL
'4
Version
Signature
tbsCertList
signAlgorithm
signatureValue
Issuer
ThisUpdate
NextUpdate
RevokedCerts
CRLExtensions
^I CRL
'4
.!4 $ ? 9 $ ! $ z GF$ tbsCert list
? 9 xF$ D * R ? 9 xF$ $ ! $ ? 9 M
(M
ID) ! $ … L $
(>
?9 '
.! $ ^ ! $ D
†I CRL
4
o
Signature
…8 . 4 + z
o
'4
+ = 4 CRL ? 9
$ CA z 4
. 4 Sign. Algorithm ! ",
<
.
" ' Version
- +
7
CA % !
; Issuer
%
4 CRL distribution point
(indirect CRL)
•
•
•
CRL
% # 37
ITU-T? + + # 37 CRL 5 > %=;. 9 &+ ANSI x9
!!@ A=, Authority key identifier
6 CRL B C A =,+
%@
@
.
Reason- code
CRL 5
6
7 +
CA < %@ &#
Full CRL
.
Revoke " @
) %!E@ !@
next update time 5
.
6 CRL
A=, CRL G 5 + "3
:CRL Location
.
@ A=, CA %@
3
H-
;7
!D 5
Revoke %
%@ D
% I; CRL 5 . !@ - H ,J
>K CRL 5
6
7 +
. (subject type)
L - M;$ 5 N
%@
O; CRL Distribution point
. ,
%!E@ HP@ 5 !@ A=,
. ' CRL
- 5 Q + 1 RS 1 Delta CRL
%@ (Indirect CRL Authority) :: ICRLA
.
) U % CRL
!!@ T
V5W ?XN +W YO
- ZM+ %;
1
. !!@ !@ CA
) Revoke
(Repository) +
.
6
p …8D 2
CRL
12
H"\+ J
4 ; < H.
-\
N6
(availability) )
'
@
%- !
%- ! -
A=, [
.
- % N ]^ 37
%! . Z%%! . Z%- !
! -
Interoperability
+
.
:
p …8D 2
z
_ 6 ` Sa
on line
U J<
IETF Z PKI
7
5
N
.
% T + PKIX LDAP v2
@ A=,
I
S@ % RFC 2587
@V@<
% :pkiUser
CRL, ARL b
" CA
:pkiCA
ARL, CRL, :CRLDistributionPoint
DeltaCRL
CA
X.500
G5 +
c 1 CRL "
ARL
z
U J
(Directory Service
X X$
... B
-
X.500
z
N ` Sa 12
- DSA ) . @
Agent)
(DUA) Directory User Agent
Availability Q N W d
x.500
G5 +
N @
X.500
z
"\+ J
(Directory Access Protocol)DAP
DSA DUA Q
1 %7 H
(Directory Service Protocol)DSP
DSA Q ` Sa %7 H
Directory Inf. Sharing )DISP
< ` Sa \+
(Protocol
LDAP
!
.
(Lightweight DAP) LDAP
LDAP v2 7, F(
.! !$ l D 4 A S ! $ $ z . ! … ", =
4 '
$ F4 2 „ R . ! TD DSP B…8D 2
. R
$
$ n T p G"2 ! $
! z + = 4 LDAP ; CA EL &W G"$
1< z ' 4
*
z
4 ;D $ $
^I+
p …8D 2
.
!
FTP
)\
HTTP
E-Mail
PKI
!
p …8D 2
PKI Management Transactions
Certificate Request
&N
.
5+
Basic certificate req.
.B C
Initial certificate req.
CA certificate req.
Revocation Requests
g!
1 R a 5 Basic
' 1 g! R a 5 External
^I PKI
!
PKI
E,!@ + 5
%@ PKCS#10
!H )
.
p …8D 2
J
"\+ J h!J
+ .
'
1
3-
3-) PKCS#7 SSL M @ + PKCS#10
PKI
"\+ J Q +
( U-.
E *J
.
†I PKI
!
p …8D 2
Z CMP"\+ J Q
(Certificate Management Protocol)
.
.
Z(CMC) "\+ J Q ED
Certificate Management using CMS
Z(SCEP) "\+ J Q P!J
Sample Certificate Enrollment Protocol
.
Pkcs#10
1
\+ J
PKCS#10 with SSL
Q\ %@ ! ;
. -
6 = ` g=, : PKCS#7 and PKCS#10
\
T
$
\+ J ) ! % 4
E * J : 6$
- %H ` g=, < PKCS#7
! %N 67 PKCS#7 PKCS#10 i7 .
U-.
.
SCEP
+ 4 $ * * R - D!
$ Cisco z
"4 $ SCEP
LDAP, HTTP, PKCS#7, B D ! !" 8
…
*
.! $ DES, RSA
9 = k!@ + j "
RA, CA
CRL
"\+ J
@G5 +
1
'
J
'
J
* G b' D * D
PKI Q
V5W ! ; %
(CP) Certificate Policy
(CPS) Certificate Practices
Statement
R
` 6
- !
7
-
l , M7 # Q
. + 6
^I * G b' D * D
T
!
, ?1 %@
m
.
Z 6
Z
1
.
CP )
'
W YO
` Sa
! ; < CP
EU-
@
7 I; ZCA `
m
.
@
B CX- + 7 + % $ 5 , ?1 Q
3- %@
n.'
1 ! ; < CPS
. !@ )
© Copyright 2026 Paperzz