Cryptography for software engineers: Protocols - - PDF document

cryptography for software engineers protocols
SMART_READER_LITE
LIVE PREVIEW

Cryptography for software engineers: Protocols - - PDF document

Cryptography for software engineers: Protocols KATHOLIEKE


slide-1
SLIDE 1
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

  • Cryptography for software engineers:

Protocols

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

slide-2
SLIDE 2
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Introduction

')& *&# +%#,

!% &# )-&. +&%% &# )-.

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Introduction

# &&#

  • /&0##0

1

+0#20 0#

slide-3
SLIDE 3
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Introduction

# 3 +

4#,

! " # # 5 6

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

slide-4
SLIDE 4
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Notational Conventions

'##,4)748" !##,4)748"

9!

9!):#;" 9<9!)::#;;" ):#;'" 9<)::#;;'"

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

DISCLAIMER

%=>0

  • ?&%

?% ?##%

@## &&

slide-5
SLIDE 5
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Data Protection

#,

1##

  • !#

'##

1 ##

'#%#=#2&>

slide-6
SLIDE 6
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Protection Requirements

&,

##

  • ,

A*#&

  • &

#

?2,

% #

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Protocol assumptions

+&&& ##,

!,=#> +

  • ',=>

+ %

  • +#%
slide-7
SLIDE 7
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Secure Messaging: sender side

+#9&#!3,

/9 @###" #<& &0%" "%"3 '4

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

M [H(M)]SKA H DS SKA Key Info RNG C = {M, [H(M)]SKA ,Key Info}K SE K {K}PKB AE PKB

slide-8
SLIDE 8
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Secure Messaging: receiver side

$, 790:/9;'"! 0"&8"07"8"3 "'"3 90:/9;'"! 0"&" "! &# "& 5&92# & "!

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

C= {M, [H(M)]SKA ,Key Info}K {K}PKB K AD SKB M [H(M)]SKA Key Info SD PKA H V Message OK?

slide-9
SLIDE 9
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Secure Synchronous Communication

#0##

+&&&

  • &&&

+0#& $&#%,

$2-.# 9! B2&2#2-&

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Secure Synchronous Communication: record format

'#.#0 ""&9!2 $, %# 5,

'.## &&&

Length, [[n, Type, {Data}Kc ]]Ki … …

slide-10
SLIDE 10
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Data protection: conclusions

3&

  • +#

2& " +## 2

& ## #

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

slide-11
SLIDE 11
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Entity Authentication

&

5& #& ### %

+,

# ## ###

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Computer/Computer Case

3&#C#

5& &%# %%

  • +%,

&#

+

#&

3#2#

slide-12
SLIDE 12
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Time-varying parameters

+##,

#0.

  • ?,

5# .##0

  • ,

=D> 4

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Entity authentication with symmetric keys

!#,

!##& &%##

+##22%,

  • !

"#$!%#&' !

slide-13
SLIDE 13
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Entity authentication with symmetric keys

?22%, ?2#,

  • !

"#$!%#(' ! (

  • !

"#$!%#( #(!' ! (! $(!#( ' !

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Notes

9!( &# ## ! #

!0&%

  • &

9222#%

slide-14
SLIDE 14
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Key Establishment

!#&24

  • B & &

∼ E

@&#, %%0&&

slide-15
SLIDE 15
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Key Establishment

9,

" ! 3####

1%&

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Authenticated key transport with PKI

&&& 0&% %!3

  • ))$(# !'*!++

(

slide-16
SLIDE 16
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Authorities and trust

! # &

B,&2

  • +&

B ,& 0&& "%##,++++0 ""06

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Key Distribution with KDC

  • # !# (#$ #&'

,- ! $!#(# !' #$ # !'! ! $ #&' !#$ # !'! !

  • !
slide-17
SLIDE 17
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Supporting multiple authorities

!0 #&

  • +*%
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Login Procedure

$# /## A%

!'!'

%% $

slide-18
SLIDE 18
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Login Procedure

  • # (

$.#(# '*/# $ # '.

  • .

*/ ,- $ # '.

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

slide-19
SLIDE 19
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Security in Network Protocols

012 3*4 %- 56364

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Two Representatives

",0 # ## ''D''D +D '+D',0 # ##

slide-20
SLIDE 20
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Kerberos

"#,

'20 !'% !# ##"

  • ##

&

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Basic operation of Kerberos

  • #(

$.#(# '*/# $ # '. # !# (#$ # '. $ #&' $!#(# !' #$ # !'! $ #&' !#$ # !'! $&7' !

.8. "8*/ 9 8. !%8! 9

&1,:&1 &1

slide-21
SLIDE 21
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

The Kerberos Protocol

+ ##&&"

B#&,

#C &#& &#

"2#&1% EFFFCG

&1%EFFFCG ## 2%?+D9#4?+C1EFFFCG #

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

The SSL Protocol

+%

''D$

'#

''D/

! !# ' !## B

slide-22
SLIDE 22
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

SSL Handshake Protocol

  • ;<=-#-22>":;-#>;>
  • >=-?":;-#>;>

4@A4@#"": $2;--'*4@A4@ )"":+034(&#034(& ,- 2;-- 2;-- ;-- ;--

  • --1-
  • --1-

: : : : : : BBB BBB >----

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Protocol Stack

''D(

!+C 3%2/++09!0

+''D

&*53*" 1-"

22"" (1" C&&*

  • 0. *

36 * BBB

slide-23
SLIDE 23
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

References

"

"/#, ,CC%#CC%%%

+D'

+, ,CC%%%&C&C&EEHI4

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

slide-24
SLIDE 24
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Public Key Infrastructures

!###% & !% ##&

$#222#

!&" &&

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Certificates

&)<#

  • &&2
  • 3&0%

&!,

! +#

slide-25
SLIDE 25
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Hierarchical trust model

CA A B C R

  • ot CA

Ca1 Ca2 Ca3 A B C D E F (A) single CA (B ) T wo level hierarchical PKI

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Network trust model

A B C D E

slide-26
SLIDE 26
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Hybrid trust model

Hierarchical P K I 1

R

  • ot Ca1

Hierarchical P K I 2

R

  • ot Ca2

Hierarchical P K I 3

R

  • ot Ca3
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Certificate Revocation

1&##J

D#&#&& &,

&$D$D(,&# &&0! B&'B', &&&%& !

slide-27
SLIDE 27
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Certificates in Practice

'&#&&0GKFL0,

# # #GKFF?# M#GKFF?# M&# .&EN M.&EN 4N &

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Verifying a certificate

slide-28
SLIDE 28
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

PKI: other issues

@,

+#,% &&# $# ###

D&C"

& &&CC6

",''D0'C99 0 &#06

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

slide-29
SLIDE 29
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Software API’s

## +O'' 4! +O@''!

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Integrating secure communication in applications

+,

'## & '##!## %##!

O'' 4O'' !

'##!## #

O@''!

slide-30
SLIDE 30
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Option 1: in infrastructure

OS/Middleware Application OS/Middleware Application Protocol Impl. Protocol Impl. COMM API COMM API

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Option 2: wrap comm API

OS/Middleware Application OS/Middleware Application Protocol Impl. Protocol Impl. COMM API COMM API

slide-31
SLIDE 31
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Option 3: library

OS/Middleware Application OS/Middleware Application

  • Prot. Impl.

COMM API COMM API

  • Prot. Impl.
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Software API’s

## +O'' 4! +O@''!

slide-32
SLIDE 32
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Introduction: Networking in Java

&

&## 2

B##%&P

'2

1&#.

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Networking Example (cont.)

  • !"

#$%

slide-33
SLIDE 33
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Networking Example

'

  • #

# #

  • !"

#$%

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

JSSE Core Classes

  • &

"#

4 '

& '

*

'

& "#

4 '

& '

*

& (

D @2--:>-<

E -;--#2-#;:;#BBB

slide-34
SLIDE 34
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

JSSE Example

  • ('#'

(')*# (#'

  • !"

#$%

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

JSSE Example (cont.)

E =->

  • ('#'

(')*# (#' ( # # #

  • !"

#$%

slide-35
SLIDE 35
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

JSSE API Overview

('

  • (

(

  • (

( ' (

" =

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Summary

+

$&##'

# '##&# → ##&

3,

+##& !&,"90+90 ''D 06

slide-36
SLIDE 36
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Software API’s

## +O'' 4! +O@''!

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

GSS API

+ !##&,

9 9&

D4&,

#A4 O&OE' O"QH

#1%''

slide-37
SLIDE 37
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

GSS Concepts

! ##!"0& BM&B ! &# ## # &#4 "0&

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

GSS operational model

Q B A# .0 B@'' E 4 4# 4 N 1%# 9!0 % H 4# 4&#

slide-38
SLIDE 38
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

  • 1. Obtain credentials

3 2 &,& 71 = 1 3">"-%>:":;-;

  • >,B
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

  • 2. Establish security context

3 2 &,&# 1- 71- = 1 <--%"->%<:: 2F22"G;--:-

  • --1-
  • --1-
slide-39
SLIDE 39
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Code for context establishment

+, +, +-" "

  • "

. /0 #-# +-")!'12(34('!3,! "5,#1 "5-* /67/687

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Code for context establishment

#9"!/# "-"8# *9## #

  • *#
  • *9"!/#

/67 '##

slide-40
SLIDE 40
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

  • 3. Wrap and unwrap messages

3 2 &,&# 1- 71 = 1

  • --1-
  • --1-

&2F6G & 62F&G

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Code for wrapping messages

/67 : ;<##3 9=8;: ,> ,>5 ": 8 :# #

  • *#
slide-41
SLIDE 41
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Code for unwrapping messages

/67 '## /67/ "8# / #;?=;; @ @;=;*# ;@ #

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

  • 4. Context completion

'4' MO0O@'' 4 ,

"

slide-42
SLIDE 42
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

GSS API Conclusion

@''!&##& ## & ##"& ##

  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Overview

! " #

$% "& '&%!(

slide-43
SLIDE 43
  • KATHOLIEKE

UNIVERSITEIT LEUVEN

Conclusion

!%& %&4

1&##&0 # B,#006 (%