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 ;?