Programmazione di Rete Sistemi di elaborazione: Reti II

Transcript

Programmazione di Rete Sistemi di elaborazione: Reti II
Appunti dei corsi di
PROF. G. BONGIOVANNI
4) LA SICUREZZA ..............................................................................................................2
4.1) Controllo dei diritti di accesso ............................................................................................................................. 2
4.1.1) Basic authentication in HTTP 1.0 ................................................................................................................... 2
4.1.2) Digest authentication in HTTP 1.1 ................................................................................................................. 4
4.1.3) Firewall ........................................................................................................................................................... 4
4.2) Protezione delle risorse da danneggiamento ...................................................................................................... 7
4.2.1) La sicurezza e le estensioni del Web............................................................................................................... 7
4.2.2) La sicurezza e Java ......................................................................................................................................... 8
4.3) Protezione delle informazioni durante il transito sulla rete.............................................................................. 9
4.3.1) Crittografia.................................................................................................................................................... 10
4.3.1.1) Crittografia a chiave segreta (o simmetrica).......................................................................................... 13
4.3.1.1.1) Il DES ................................................................................................................................................ 14
4.3.1.1.2) IDEA .................................................................................................................................................. 15
4.3.1.1.3) AES .................................................................................................................................................... 16
4.3.1.2) Crittografia a chiave pubblica ............................................................................................................... 16
4.3.1.2.1) RSA.................................................................................................................................................... 18
4.3.1.2.2) Premesse matematiche ....................................................................................................................... 18
4.3.1.2.3) L’algoritmo RSA................................................................................................................................ 19
4.3.1.2.4) Correttezza dell’algoritmo RSA......................................................................................................... 20
4.3.1.2.5) Considerazioni su RSA ...................................................................................................................... 21
4.3.2) Funzioni hash e firme digitali........................................................................................................................ 21
4.3.3) Protocolli crittografici................................................................................................................................... 25
4.3.3.1) Chiave segreta di sessione..................................................................................................................... 25
4.3.3.2) Centro di distribuzione delle chiavi....................................................................................................... 27
4.3.3.3) Secure Socket Layer e Secure-HTTP.................................................................................................... 29
1
4) La sicurezza
•
•
•
•
!
"#$% $
&
'
(
)
'
*
$
+
#(
4.1) Controllo dei diritti di accesso
4.1.1) Basic authentication in HTTP 1.0
*
,""$
-
.
•
•
/
+
'
-
2
0
"
2
01
'
34"
'
HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm="NomeRealm"
Server: .....
Date: .....
Content-type: .....
Content-length: 0
2
'
56 7 '
GET url(la stessa di prima) HTTP/1.0
Authorization: Basic *****************
User-agent: .....
Accept: .....
ecc.
0 8
9:;9 9<=9
7.#
2
•
•
>
-
'
NomeRealm
56
403 forbidden
>
'
'
3
-
4.1.2) Digest authentication in HTTP 1.1
'
'
(
=?@A
)
2
•
•
B
•
•
•
-
'
-
2
B
!
.
56
4.1.3) Firewall
•
(
•
2
!
(
'
4
•
(
-
'
Filtra i pacchetti
in uscita
Filtra i pacchetti
in ingresso
Router
A
Application
gateway
Router
B
Rete interna
Rete esterna
"
4
-
•
)
'
7
•
C
'
'
(
7
D
E
#
•
•
$
'
'
(
=:
5
(
(
E
'
0
•
+
0!$
$
)
- /
.
(
- /
7
8/
,""$
!!"
'
•
•
-
,""$
,""$
,""$
2
9
=
F
8/
:
;
+
8/E E
+
8/
8/
'
8/
(
-
+
8/
1
Web
client
2
HTTP
proxy
Web
server
Firewall
4
3
Rete interna
Rete esterna
0
,""$
8/
)
8/
)
+
G
-
6
4.2) Protezione delle risorse da danneggiamento
!
+
34"
'
$5."
'
+
01
+
/
! '
+
'
4.2.1) La sicurezza e le estensioni del Web
(
'
•
•
#3
.
4
•
H
(
'
)
#3
'
"
.
'
$
.
'
5
$
$
.
.
/
.
$
.
$
7
.
#
0
•
'
#3
•
7
•
•
'
5
•
•
•
/
#3
+
#3
'
(
7
•
I?
F
•
-
'
>F
(
#3
#3
•
4.2.2) La sicurezza e Java
0
JKB
(
7
•
'
•
•
'
8
•
•
•
/
'
!
"
)
#
/
J
$
'
JKB
/
•
•
•
4
'
(
(
+
•
•
•
K
7
K -
/
/
'
J
/
'
4.3) Protezione delle informazioni durante il transito sulla rete
4
-
9
4
•
$$
•
$
•
'
%
*
(
"
)
'
4 (
•
•
"
'
•
•
4.3.1) Crittografia
.
•
•
•
'
'
0
10
/
/
Testo in chiaro
Testo in chiaro
Encryption
Decryption
Internet
Testo incomprensibile
Testo incomprensibile
#
7
(
'
2
(
'
$
&
'
•
•
'
$
!
$
4
F
#
# L4 $ F
# L 4F $
2
7
•
•
'
F
-
>
F
11
>
#
F
$
$ L !F #
5
!F 4F $ L $
#
P
k
P
Metodo di
encryption
Trudy passiva
Metodo di
decryption
C
Trudy attiva
C
Internet
#
"
/
(
12
k
2
•
(
$
2
)'
=9=I
9=I
•
4 !
#
•
'
"
•
G
'
/
'
"
"
/
7
/
4.3.1.1) Crittografia a chiave segreta (o simmetrica)
'
7
Alice
C
Bob
Canale sicuro
P
P
C
E
Canale insicuro
#
13
D
"
4
'
M
$
$
&
#
4M
$
4.3.1.1.1) Il DES
)
'#
0.7
'
CB
'
9ANN
#
@;
@;
<@
9A
'
9@
•
9A
.>
!4.
CB
E
0.7 E
(#
9=I
#
.
(
( #
•
8
!4.
)
<@
'
=;:
0
!
'#
(
'
14
P
k1
k2
k1
E
D
E
C
Encryption
C
k1
k2
k1
D
E
D
P
Decryption
"
!4.
F9LF=
2
4
"
!4.
!4.
'
=99=
9??
4.3.1.1.2) IDEA
0
) '
4
#
A?
.
)
'
'
0.7
!4. !47
@;
'
!4.
*
15
9=I
4.3.1.1.3) AES
=
9AAN M
* ." *
.
(
"
'
!4.
#
'# "
/
(
;
=??9
J!
1D
'
K 1D
74.
9=I 9A=
1D
=<@
9?
9=I
9=I
9=
(
9A=
9;
=<@
3 .>
8
#
!47
74.
=<@
4.3.1.2) Crittografia a chiave pubblica
0
$
'
&
*
* *>9 %=
#(
*
•
N?
!
'
•
•
16
,
.
0
/
•
(
•
'
!
'
•
•
(
'
*
=*
$$
'
7
C
C
Alice
Bob
P
Chiave
pubblica
di Bob
P
C
E
Canale insicuro
Chiave
privata
di Bob
D
! 1
$
'
%
'
• 7
• C
7
17
Alice
Bob
P
P
C
Chiave
privata
di Alice
E
D
Canale insicuro
" 7
'
'
(
7
(
4.3.1.2.1) RSA
*#
1
.
7
9ANI
4
9?=<
=??
<??
4.3.1.2.2) Premesse matematiche
#
$ %
.
?9
• .
•
>9
8 +
!
'
8/≡ 1
&
!
4
•
#
.
Φ
Φ, -
L >9
18
/
Chiave
pubblica
di Alice
•
Φ
.
'
L
>9
>9
&
!
Φ
≡1
.
4
>9
>9 ≡1
4.3.1.2.3) L’algoritmo RSA
9
=
:
;
.
#
.
"
$. Φ , -
9?9??
$. , /-, /Φ, +
Φ, -
≡1
•
*
9 '
•
*
=
L
Φ
'
Φ
L
.
Φ
4
ΦΦ
ΦΦ
>9
>9
Φ
Φ
L
ΦΦ
Φ
4
ΦΦ
≡1
≡1
Φ
Φ
'
'
8> 9 % Φ
19
8
'
< $
• #
• #
5
$
$
(
(
) *+
) * +,
$
@ .
-
"
5
F
=F>9 O
N 0
•
%
$
#
. /) +
•
%
#
$
/ ). +
4.3.1.2.4) Correttezza dell’algoritmo RSA
#
#L $
$L #
!
'
$
#
$
$ L $
Φ
F$
L $Φ
1
$ L $FΦ
. $
P9
4
$Φ
≡1
!
$ L 9F $
.
• $
•
.
L$
$
L
$
$ L'
$
'O
20
$
7
L ' FΦ
$ L '
P9
Φ
4
$ L 'F >9
>9 '
#
$ L 'F
9
>9
>9 '
4.3.1.2.5) Considerazioni su RSA
.
"
( 0
9
=
*
7
/
'
'
9AA;1.7
.
G
9=A
<???
I
!
;=@
&1.7
(
&
)
'
9?? 9???
'
!4.
!47
4.3.2) Funzioni hash e firme digitali
#
$ (
9@??
9 B $.
(
'
21
7
)
(
$
'
$
"
9?
Messaggio originario
=? /
Message digest
MD
(funzione hash)
P
MD(P)
1 #
$
•
•
•
'
B! $
$
$9 $=
B! $
'
B ! $9 L B ! $= .
'
$
'
9=I
'
7
&
'
1
'
B,
9AA=
)
'
9:=9 $
Q
NB C
0
%
'
22
9=I
$
$
=??
Alice
Bob
P
P
Canale insicuro
+
MD
MD
+
MD(P)
=
MD(P)
No
Si
ERRORE;
messaggio alterato
20
7
'
C
'
5
'
C
$
"
'
/
7
'
)
0
'
&
23
MD(P)
OK
Alice
MD
P
P
+
+
MD(P)
Canale insicuro
Firma
digitale
E
Chiave
privata
di Alice
Bob
P
Canale insicuro
MD
+
Firma
digitale
=
MD(P)
D
Chiave
pubblica
di Alice
No
ERRORE;
messaggio alterato
Q
24
MD(P)
Si
OK
4.3.3) Protocolli crittografici
2
'
0
•
'
•
'
%
'
4
•
R#
•
R
R
K
'
•
+
•
"
3
/
H
4.3.3.1) Chiave segreta di sessione
0
&
$ (
)
+
!
'
'
0
9 C
7
25
'
= 7
C
: C
; 7
'
C
C
'
Alice
1)
Bob
Chiave
pubblica
di Bob
2)
4)
Chiave segreta
di sessione
Chiave segreta
di sessione
3)
E(chiave segreta di sessione)
Chiave
pubblica
di Bob
E
Chiave
privata
di Bob
D
Canale insicuro
!
$
"
/
&
(
!
*
*
* -S F"
26
9A%A%A<
4.3.3.2) Centro di distribuzione delle chiavi
(
7
"
C
/
'
(
"
'
&
2)
Chiave
pubblica
di Trudy
Alice
1)
Chiave
pubblica
di Bob
Trudy
$
3)
4)
E(chiave segreta di sessione)
E(chiave segreta di sessione)
Chiave
pubblica
di Trudy
Chiave
pubblica
di Bob
"
$
/
7
'
$
4
•
'
•
•
'
'
•
'
27
C
Bob
/
•
•
•
$
0
'
-
0
7
#7
#7
'
'
C
C
#7
'
C
7
'
7
"
/
1)
Certificato di Bob
(contiene la chiave
pubblica di Bob)
CA
Chiave
privata
della
CA
Alice
Bob
2)
E(chiave segreta di sessione)
Chiave
pubblica
di Bob
1
#7
C
28
4.3.3.3) Secure Socket Layer e Secure-HTTP
#7
7
(
7
C
(
#7
2
'
+
'
F
https://
#
# & 1
4
##1
"#$
,""$
7
Q"$
*
(
"4 *4"
,"B
'
F
https://www.server.com/order.html
2
F
'
1) Dammi la form "order.html"
Certif.
2) Ecco il mio certificato
3) Il tuo certificato è OK,
ecco la chiave segreta di sessione
cifrata con la tua chiave pubblica
Alice
(client Web)
E(chiave segreta di sessione)
4) Transazione sicura cifrata con la chiave segreta
Q
*
• 1.7
• !4.
• B !<
..
..
1#; 9=I
.,7
29
Bob
(server Web)
$
*
1#;
$
!4. <@
'
+
..
,""$
#
,""$
!!" #
!!" 4
"#$
Body S-HTTP (cifrato con la chiave di sessione)
Header S-HTTP
Header HTTP
Body HTTP
Q
*
.>,""$
.>,""$
,"B
"
M
30
;?