Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Protocollo di autenticazione con chiave condivisa
ABIl destinatario risponde usando la chiave K così dimostra che conosce la chiave condivisa (perché ha decifrato il messaggio) e che è un’informazione fresh. Esiste una variante con la partecipazione di una terza parte fidata in cui tutti condividono una chiave a lungo termine. La chiave viene fornita dal key distribution center (server fidati con cui utenti condividono chiavi simmetriche) e viene usata per creare il messaggio. Quindi:
- A manda la chiave a breve termine K a S con la chiave condivisa kAS
- S prepara il messaggio con B che contiene la chiave K e l’identità di A cifrandolo con la chiave condivisa kSB
- B decifra il messaggio e spedisce il messaggio cifrato con K ad A
7. Autenticazione? (Parte 3) e Sicurezza dei sistemi Web (parte 1) Il nostro obiettivo era quello di avere un protocollo di autenticazione che facesse in modo che Alice dimostri la sua identità e che non siano possibili replay attack. Protocollo 5: Alice dice
“Sono Alice”, Bob spedisce ad Alice un nonce N.
Alice deve rispedire N cifrato con una chiave segreta condivisa k.
AB(Protocollo challenge – response funziona)
La crittografia ci ha permesso di stabilire un protocollo che ci aiutasse con il nostro obiettivo, ma bisogna distinguere i vari tipi di crittografia:
- Crittografia simmetrica: stessa chiave per codifica e decodifica (da tenere segreta)
- Esistono le chiavi a Lungo termine e a Breve termine
- Crittografia asimmetrica: una coppia di chiavi per ciascun utente (generate insieme).
- Chiave pubblica per la codifica
- Chiave privata per la decodifica
La crittografia asimmetrica è più costosa della simmetrica, ed infatti, vengono usate le chiavi simmetriche a breve termine per la fase di autenticazione.
Il nostro obiettivo è quello di lasciare in giro il minor numero possibile di messaggi cifrati con chiave a lungo termine in modo tale che se risalgono alla chiave simmetrica non sarà più possibile decifrare i messaggi precedenti.
simmetrica: utilizzare una chiave segreta condivisa tra Alice e Bob per cifrare e decifrare i messaggi. • Autenticazione: utilizzare un sistema di autenticazione per verificare l'identità di Alice e Bob, ad esempio utilizzando certificati digitali. • Firma digitale: utilizzare una firma digitale per garantire l'integrità e l'autenticità dei messaggi scambiati tra Alice e Bob. • Scambio di chiavi sicuro: utilizzare un protocollo sicuro per lo scambio di chiavi, ad esempio il protocollo Diffie-Hellman. • Utilizzare un canale sicuro: assicurarsi che la comunicazione avvenga attraverso un canale sicuro, ad esempio utilizzando una connessione HTTPS.asimmetrica: basta avere una terza parte fidata che certifichi la chiave. Per questo motivo parleremo del protocollo Needham – Schroeder a chiave condivisa. Progettato nel 1978, questo protocollo a chiave segreta viene usato per stabilire una chiave di sessione utilizzabile da due entità dirette per proteggere le comunicazioni successive. L’obiettivo del protocollo è quello di autenticare le parti stabilendo la chiave di sessione. Le sue caratteristiche sono:
- Utilizzo di crittografia simmetrica
- Utilizzo di un KDC per generare la chiave di sessione
- Mutua autenticazione basata su nonce
- Chiavi condivise
- Una a lungo termine condivisa con il server
- Una di sessione generata dal server per comunicare
Funzionamento:
- A per parlare con B manda il nonce ad S
- S prepara il challenge da fare mandare ad A per B
- o K a breve termine
- A,B o K a breve termine e Identità A cifrati con KAB
- B,S o Viene tutto cifrato con K
AS• A decifra il messaggio con K e manda a B il messaggio che eraAScifrato con K B
S• B decifra con K e sa che all’interno trova la chiave di sessione K e l’identità del mittente A.
BS ABA ora deve autenticarsi con B, quindi B manda il challenge (nonce cifrato con la chiave di sessione K )
AB• A riceve il challenge ed invia il suo response (nonce cifrato con K decurtato di 1)
ABL’attaccante può leggere tutti i messaggi trasmessi lungo il canale, ma nonconosce nessuna delle 3 chiavi!
Se K è abbastanza lunga può venire compromessa.
ABUn possibile attacco è stato trovato nel 1981 e si tratta di un replay attack in cuiTrudy si finge di essere A con B usando una vecchia chiave compromessa K :
AB• Trudy rispedisce a B il messaggio {K , A} cifrato con KAB B
S• B lo accetta visto che non riesce a capire che si tratta di una vecchiachiave
Per risolvere questo attacco si è pensato a utilizzare un timestamp nel messaggio
per garantire la freshness. 19a. Sicurezza dei sistemi Web La sicurezza dei Sistemi Web significa sicurezza delle applicazioni Web. Infatti, non bisogna confondersi perché parlando di Web non parliamo di Internet ma del World Wide Web, ovvero di un'applicazione di Internet. Per capire le problematiche del Web, bisogna sapere come funziona il Web? Nel Web sono coinvolte varie tipologie di utenti (Browser, Web Server, DBMS – Basi di dati, Internet come mezzo di trasporto) e si basa su alcune tecnologie e applicazioni: - Protocollo http per comunicazione server – browser - URL per identificare univocamente le risorse - Il concetto di Ipertesto e il linguaggio HTML - Linguaggi di scripting (PHP, JavaScript, ...) L'idea di base è quella di archiviare pagine di ipertesto (che sono ricevute tramite HTTP) su computer collegati tra loro tramite Internet. Alcuni protocolli definiscono il formato e l'ordine dei messaggi spediti e ricevuti traHTML) in risposta alle richieste degli utenti. Consentono l'interazione e la collaborazione tra gli utenti.• Web 3.0 – Web semanticoIntroduce il concetto di "intelligenza" nel Web, consentendo ai computer di comprendere il significato dei dati e di fornire risposte più precise e personalizzate agli utenti.tempo reale) grazie al collegamento con un database e forniscono contenuti che possono variare in base a più fattori. Le applicazioni Web sono state create per eseguire qualsiasi tipo di funzionalità (eCommerce, Social Networking, Scommesse, ...). La sicurezza in questo contesto significa garantire che l'accesso alle informazioni venga dato solo a persone autorizzate. Infatti, sia il server che il client possono diventare target per poter recuperare informazioni visto che anche su di loro si possono eseguire degli script. Il target degli attacchi è passato dal Sistema Operativo (macchina non accessibile dall'esterno) alle applicazioni Web (macchina ora accessibile dall'esterno) perché: - Si ha un maggiore superficie d'attacco - Vulnerabilità intrinseca: le applicazioni Web devono essere sempre raggiungibili da tutti - Quanti usano il Web? Soprattutto il Web 2.0 presenta nuove vulnerabilità e alcuni problemi disicurezza sono:
- Sicurezza del Web Server
- Sicurezza del browser
- Sicurezza dei protocolli di comunicazione tra browser e server
- Sicurezza del web dinamico
Perché un attaccante dovrebbe attaccare un Web Server?
- Può ottenere accesso ad una rete interna (LAN)
- Sono host esposti al pubblico e intrinsecamente vulnerabili
- Attaccare usando le porte standard HTTP è più facile che attaccare da dietro un firewall
Una volta compromesso il Web Server, l'attaccante può manipolarlo e trafugare informazioni sensibili, modificare/cancellare il contenuto del sito, usare l'host per lanciare attacchi contro altri sistemi, Denial of Service, ...
Gli attacchi si compiono a livello di Sistema Operativo (quello del Web Server), servizio http, dispositivi di controllo degli accessi (router e firewall).
Per progettare un Web Server sicuro:
- Sistema Operativo:
- Eliminare le vulnerabilità note
- Controllo delle
risorse e delle autorizzazioni degli utenti
- Configurazione di rete
- Bloccare il traffico non strettamente necessario
- Configurazione del Web Server
- Disabilitare i servizi non essenziali
- Definizione di una corretta politica che regoli l'accesso alle risorse
- Uso di script regolato e attento
- Uso di meccanismi di logging e auditing in modo da riconoscere l'attacco in tempo reale
8. Sicurezza dei sistemi Web (parte 2)
In passato, come abbiamo detto, il target degli attacchi era il Sistema Operativo, mentre ora si è spostato sulle applicazioni Web. Questo è dovuto perché si ha una maggiore superficie d'attacco (all'aumentare della superficie corrisponde anche un aumento di utenti), vulnerabilità intrinseche legate al design del Web e perché, sia a lato server che a lato client, il numero di persone che usano il Web è molto grande. Il Web server viene attaccato perché sono esposti al pubblico e
Perché è molto più facile attaccare da una porta HTTP rispetto a un firewall. Invece, a lato Client, l'attacco è mirato per recuperare informazioni sensibili contenute al suo interno, per usarlo da remoto per eseguire nuovi attacchi o impersonare l'utente quando si collega al Web Server. L'ente Open Web Application Security Project (OWASP) ha fatto una stima dei più comuni attacchi che vengono fatti sul Web. Da questa stima possiamo tirare fuori due gruppi principali: - Code injection: iniezioni di input non valido - Injection - Cross-site scripting (XSS) - Cross-site Request Forgery (CSRF) - Cattiva fase di autenticazione: Gestione sbagliata della sessione HTTP - Broken Authentication and Session Management