Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli

Interazioni Sociali in Rete, Sintesi del corso di Elementi di Informatica

Riassunto degli argomenti trattati dal Professor Andrea Lanzi in Interazioni Sociali in Rete.

Tipologia: Sintesi del corso

2018/2019

Caricato il 03/06/2019

simona.demi
simona.demi 🇮🇹

4.8

(8)

9 documenti

1 / 17

Toggle sidebar

Documenti correlati


Anteprima parziale del testo

Scarica Interazioni Sociali in Rete e più Sintesi del corso in PDF di Elementi di Informatica solo su Docsity! INTERAZIONI SOCIALI IN RETE CAMBRIDGE ANALYTICA La società di analisi dei dati che ha lavorato con il team elettorale di Donald Trump e la campagna vincente sulla Brexit ha raccolto milioni di profili Facebook degli elettori degli Stati Uniti: una delle più grandi violazioni dei dati della tecnologia. I dati sono stati raccolti attraverso un app chiamata thisisyourdigitallife, costruita da Aleksandr Kogan. Tuttavia, l'app ha anche raccolto le informazioni degli amici di Facebook di chi fa i test, portando all'accumulo di un pool di dati di decine di milioni di persone. L'INTELLIGENZA ARTIFICIALE COME CURA Poi a luglio ACLU ha mostrato come il nuovo servizio di riconoscimento facciale di Amazon abbia identificato erroneamente 28 membri del congresso come criminali. Abbiamo visto questa logica in azione quando Facebook, di fronte al Senato, ripetutamente indicò AI come cura per problemi come disinformazione virale. A partire da ora, potrebbe essere possibile automatizzare il rilevamento di falsa notizia, ma fare ciò richiederebbe una serie di importanti progressi in A.I. Un sistema sicuro potrebbe dover tracciare le identità degli utenti che richiedono i suoi servizi. Autenticazione: processo di verifica dell'identità dell'utente. Due motivi per l'autenticazione di un utente: • L'identità dell'utente è un parametro nelle decisioni di controllo dell'accesso. • L'identità dell'utente viene registrata quando si registra la sicurezza relativa eventi in una pista di controllo. Non è sempre necessario o auspicabile basare il controllo dell’accesso sulle identità degli utenti. IDENTIFICAZIONE E AUTENTICAZIONE Quando si accede a un computer si inserisce nome utente e password. Il primo passo è chiamato identificazione: dici chi sei. Il secondo passo è chiamato autenticazione: dimostri di essere chi dici di essere. Per distinguere questo tipo di 'autenticazione' da altre interpretazioni, ci riferiamo qui all'autenticazione dell'utente: il processo di verifica di un'identità utente reclamata. L'autenticazione tramite password è ampiamente accettata e non troppo difficile da implementare. AUTENTICAZIONE DI BOOTSTRAP Le password devono essere condivise in segreto tra l’utente e il sistema che autentica l'utente. In azienda, gli utenti possono raccogliere la propria password personalmente. Altrimenti, la password potrebbe essere inviata per posta, e-mail, o telefono o inserito dall'utente su una pagina Web. Ora devi considerare chi potrebbe intercettare il messaggio e chi potrebbe effettivamente prenderlo. INDOVINARE PASSWORD Ricerca approfondita: provare tutte le possibili combinazioni di simboli validi fino a una certa lunghezza. Ricerca intelligente: cercare in uno spazio mirato ad esempio nomi di parenti… o provare le pw popolari. Non puoi impedire a un aggressore di indovinare accidentalmente una password valida, ma puoi provare a ridurre la probabilità che una password venga compromessa. DIFESE • Imposta una pw: se non ci sono pw per un account, l'attaccante non ha nemmeno bisogno di indovinarlo. • Cambia password predefinite: se lasciato invariato, è facile che un aggressore si intrometta. • Evitare password indovinate • Richiedi una lunghezza minima della password. • Formato password: mescola maiuscole e minuscole, includi simboli numerici e altri non alfabetici. • Invecchiamento password: imposta una data di scadenza per le password e forzare gli utenti a cambiare le password regolarmente. • Evita agli utenti di tornare alle vecchie password • Limita i tentativi di accesso: reagendo poi bloccando l’account utente (completamente o per un dato intervallo di tempo) per prevenire o scoraggiare ulteriori tentativi. • Informa utente: dopo aver effettuato correttamente il login, visualizza il tempo dell'ultimo login e il numero di tentativi di accesso falliti e avvisare l'utente degli attacchi recentemente tentati. ATTACCHI DI SPOOFING L’ attaccante avvia un programma che presenta un login falso schermo e lascia il computer. Se il prossimo utente che entra in questa macchina entra inserendo nome utente e password nella schermata di accesso falso, questi dati sono catturati dal programma. In genere, il login viene interrotto con un (falso) messaggio di errore e il programma di spoofing termina. Il controllo è tornato al sistema operativo, che ora richiede all’ utente una richiesta di accesso autentica. PHISHING L'attaccante impersonifica il sistema per ingannare l’utente a fargli rilasciare le password all'autore dell'attacco. Ad esempio, un messaggio potrebbe chiedere di inserire il nome utente e la password al nuovo sito di sicurezza che offrirà una protezione più forte. Ingegneria sociale: l'utente malintenzionato impersonifica l'utente a ingannare un operatore di sistema a rilasciare la password all’ attaccante. PROTEZIONE DEL FILE DI PASSWORD Il sistema operativo mantiene un file con nomi utente e password. L’ attaccante potrebbe tentare di compromettere la riservatezza o l’integrità di questo file di password. Opzioni per proteggere il file password: protezione crittografica, controllo degli accessi imposto dal sistema operativo, combinazione di questi due, possibilmente con ulteriori misure per rallentare il dizionario attacchi. FUNZIONI ONE-WAY Per la protezione crittografica possiamo usare funzioni a senso unico dette funzioni hash crittografiche. Definizione: una funzione one-way f è una funzione che è facile da calcolare ma difficile da invertire. Dato un input x è facile calcolare f(x), ma dato un output y è difficile trovare x in modo che y = f(x). Invece della password x, il valore f(x) è memorizzato nel file delle password; quando un utente accede inserendo a password x', il sistema applica la funzione unidirezionale f e confronta f(x') con il valore atteso f(x). Seguendo la pratica comune ci riferiamo a f(x) come la password crittografata; per essere precisi, è l'hash di x. Per rallentare gli attacchi del dizionario, viene aggiunto un solt (diverso per ogni password) alla password prima della crittografia e archiviata con la password crittografata. Se due utenti hanno la stessa password, ora avranno diverse voci nel file delle password crittografate. PASSWORD DI CACHING La password si terrà temporaneamente in posizione intermedia di archiviazione in buffer, cache o una pagina Web. La gestione di queste posizioni di memorizzazione è normalmente al di fuori del controllo dell'utente; una password può essere mantenuto più a lungo di quanto l'utente abbia contrattato. SINGLE SIGN-ON • Resistenza alla collisione (forte): è computazionalmente impossibile trovare due ingressi x e x ', x ≠ x', con h(x) = h(x'). CODICI DI RILEVAMENTO DELLA MANIPOLAZIONE Codice di rilevamento della manipolazione (MDC): rilevare le modifiche a un documento. Due tipi di MDC: • Funzione hash monodirezionale (OWHF): facilità di calcolo, compressione, resistenza pre- immagine, e 2nd resistenza pre-immagine. • Funzione hash resistente alla collisione (CRHF): compressione, facilità di calcolo, 2nd pre- immagine resistenza e resistenza alle collisioni. CHECKSUM Il risultato dell'applicazione di una funzione di hash è chiamato valore di hash, messaggio digest o checksum. L'ultimo termine crea frequenti confusioni. Nelle comunicazioni, i checksum si riferiscono spesso all'errore nei codici correttivi, in genere un controllo di ridondanza ciclico (CRC) utilizzati dai prodotti antivirus. COSTRUZIONE La funzione hash è una funzione di compressione f che funziona su blocchi di input di dimensioni fisse. Un input x di lunghezza arbitraria è suddiviso in blocchi x1, ..., xm della dimensione del blocco dato; l'ultimo blocco deve essere imbottito. Applicare ripetutamente la funzione di compressione: con un (fisso) valore iniziale h0, calcolo hi = f (xi || hi-1) per i = 1, ..., m, prendi hm come valore hash di x. (|| = la concatenazione). FUNZIONI HASH UTILIZZATE FREQUENTEMENTE • MD4: debole, è computazionalmente fattibile trovare collisioni significative. • MD5: scelta standard nei protocolli Internet, quindi non funzionante e non più raccomandato. • Algoritmo Hash sicuro (SHA-1): progettato per funzionare con lo US Digital Signature Standard (DSA); 160-bit hash value; attacchi di collisione segnalati. • RIPEMD-160: funzione di hash usata frequentemente da fornitori di servizi di crittografia europei. • SHA-256: quando sono raccomandati valori hash più lunghi. CODICI DI AUTENTICAZIONE DEI MESSAGGI Nelle comunicazioni, non possiamo fare affidamento sull'archiviazione sicura per proteggere i valori hash. Usa invece i segreti: calcola un hk MAC (x) dal messaggio x e una chiave segreta k. Per verificare un messaggio, il destinatario deve condividere il segreto chiave utilizzato per calcolare il MAC con il mittente. Un MAC deve avere la compressione e la facilità di proprietà di calcolo e un calcolo aggiuntivo proprietà di resistenza: per ogni valore fisso di k sconosciuto all'avversario, dato un insieme di valori (xi, hk (xi)), è computazionalmente non fattibile calcolare hk (x) per ogni nuovo input x. HMAC (SEMPLIFICATO) Un algoritmo MAC può essere derivato da un MDC algoritmo h utilizzando la costruzione HMAC: per una determinata chiave k e messaggio x, calcola HMAC (x) = h (k || p1 || h (k || p2 || x)) dove p1 e p2 sono stringhe di bit (padding) che estendono k a una lunghezza di blocco completa della funzione di compressione usato in h. MECCANISMI DI FIRMA DIGITALE I meccanismi di firma digitale hanno tre componenti: • generazione di chiavi • procedura di firma (privata) • procedura di verifica (pubblica) A ha una chiave di verifica pubblica e una chiave di firma privata (crittografia a chiave pubblica). A utilizza la sua chiave privata per calcolare la sua firma su un documento m. B utilizza una chiave pubblica di verifica per verificare la firma su un documento che riceve. A questo livello tecnico, le firme digitali sono un meccanismo crittografico per l'associazione di documenti con chiavi di verifica. Per ottenere un servizio di autenticazione che collega un documento il nome di A (identità) e non solo una chiave di verifica, richiediamo una procedura a B per ottenere una copia autentica della chiave pubblica di A. FIRME RSA L'algoritmo RSA (Rivest, Shamir, Adleman) può essere utilizzato per la firma e per la crittografia. Questa caratteristica peculiare della RSA ha portato a molte idee sbagliate su firme digitali e pubblica chiave di crittografia. Key generation: L'utente A sceglie due numeri primi p, q. Chiave di firma privata: un numero intero d con gcd (d, p-1) = 1 e gcd (d, q-1) = 1. Chiave di verifica pubblica: n = p q e un intero e con e d = 1 mod lcm (p-1, q-1). Azione: il firmatario A blocca il documento m in modo che 0 <h (m) <n e calcola la firma s = h (m) d mod n. Verifica: il verificatore utilizza una chiave di verifica (n, e) e controlla se ≟ h (m) mod n. Per una firma corretta, questa equazione vale perché s^e = h (m)^d e = h (m) mod n. La funzione hash aggiunge il controllo del formato sul messaggio. Altrimenti, le falsificazioni esistenziali sono: scegli firma s, costruisci 'messaggio' m = s^e mod n. m è una stringa di bit casuale; può essere rilevato dal controllo del formato su m. FATTORIZZAZIONE E RSA Fattorizzazione: dato un intero n, trova i suoi fattori primi. Trovare piccoli fattori è "facile". Il test per la primalità è "facile". Il factoring di un modulo RSA n = p q è "difficile". Quando il modulo pubblico n = p q può essere fattorizzato, la sicurezza di RSA è compromessa. Non esiste alcuna prova che la sicurezza di RSA sia equivalente alla difficoltà di factoring. CRITTOGRAFIA Crittografia: x viene convertito in un testo cifrato sotto il controllo di una chiave K. Scriviamo eK (x). La decodifica con la chiave K calcola il testo in chiaro dal file testo cifrato y. Scriviamo dK (y). • Symmetric ciphers: la chiave di decrittografia è essenzialmente la stessa della chiave di crittografia. Protegge i documenti sulla strada da A a B. A e B devono condividere una chiave. A e B devono mantenere le loro chiavi segrete. Deve esistere una procedura in base alla quale A e B possono ottenere la loro chiave condivisa. Per n parti per comunicare direttamente, sono necessarie n^2 chiavi. • Asymmetric ciphers: è computazionalmente impossibile da derivare la chiave di decrittazione privata dalla corrispondente chiave di crittografia pubblica. BLOCK CIPHERS & STREAM CIPHERS • Block ciphers: codifica sequenze di "lunghi" data block senza cambiare la chiave. La sicurezza si basa sulla progettazione della funzione di crittografia. Lunghezza blocco tipica: 64 bit, 128 bit. • Stream ciphers: codifica sequenze di "brevi" data block sotto un flusso chiave cambiante. La sicurezza si basa sulla progettazione del generatore di flussi di chiavi. La crittografia può essere abbastanza semplice, ad es. XOR. Lunghezza blocco tipica: 1 bit, 1 byte. ALGORITMI ■ DES ■ AES: (Advanced Encryption Standard) chiavi a 56 bit e i blocchi di dati a 64 bit non sono più adeguati. Rijndael è la versione per dati a 128-bit, 192-bit e 256-bit e blocchi chiave. ■ Triple-DES: ANSI X9.45, ISO 8372 ■ FEAL ■ IDEA ■ SAFER ■ Blowfish, Mars, Serpent, … CRITTOGRAFIA A CHIAVE PUBBLICA Proposto nella letteratura aperta di Diffie & Hellman nel 1976. Ogni parte ha una chiave di crittografia pubblica e una chiave di decrittografia privata. Calcolare la chiave privata dalla chiave pubblica dovrebbe essere computazionalmente non fattibile. La chiave pubblica non deve essere tenuta segreta, ma non è necessariamente noto a tutti. Esistono applicazioni in cui l'accesso alle chiavi pubbliche è limitato. Protegge i documenti sulla strada da A a B. B ha una chiave di crittografia pubblica e un privato chiave di decrittografia. È necessaria una procedura per A per ottenere un’autentica copia della chiave pubblica di B. Per n parti da comunicare, n coppie di chiavi sono necessarie. CRITTOGRAFIA RSA La crittografia RSA si basa sugli stessi principi della firma RSA: L'utente A sceglie due numeri primi p, q. Chiave di crittografia pubblica: n = p q e un intero e con gcd (e, p-1) = 1 e gcd (e, q-1) = 1. Chiave di decodifica privata: un intero d con e d = 1 mod lcm (p-1, q-1). I messaggi sono suddivisi in blocchi di messaggi mi così 0 <mi <n. Crittografia: il mittente A accetta un blocco di messaggi m e calcola il testo cifrato c = me mod n. Il destinatario usa il suo esponente di decrittografia d e calcola m = cd mod n. Nota: cd = me d = m mod n. PADDING RSA è un codice a blocchi; le chiavi sono scelte in modo che la lunghezza del blocco è 1024 bit (o 2048, 4096). Quando si crittografa un messaggio, potrebbe essere necessario aggiungere il padding per rendere la lunghezza del messaggio un multiplo della lunghezza del blocco. Il Padding può sconfiggere alcuni attacchi: quando decifri un messaggio, il ricevitore può controllare i dati di riempimento e scartare i testi in chiaro con un padding sintatticamente scorretto. NET ADVERSARY Un botnet è composto da bot (droni), cioè programmi installati sulle macchine di utenti inconsapevoli di Internet e riceve comandi da un controller di bot. Gli attacchi a rete non mirano a collegamenti di comunicazione; non devi affrontare un avversario responsabile di tutto Internet, ma non puoi più supporre che i punti di collegamento siano sicuri. Net adversary: nodo di rete malevolo in grado di leggere i messaggi direttamente indirizzati ad esso, falsificare gli indirizzi arbitrari del mittente, provare a indovinare i campi inviati in messaggi invisibili. DOMAIN NAME SYSTEM (DNS) Infrastruttura essenziale per Internet. Trasferisce i nomi degli host in indirizzi IP (e viceversa). Originariamente progettato per un ambiente amichevole; quindi solo meccanismi di autenticazione di base. Server di directory distribuiti per nomi di dominio (host nomi) utilizzati per: • cercare l'indirizzo IP per il nome host e il nome host per l'indirizzo IP. Il binding al browser è scaduto; nuova richiesta per indirizzo IP di attacker.org, ora associato all'indirizzo di destinazione. Difetto: non fidarti del server DNS in time-to-live; appuntare il nome host all'indirizzo IP originale; la durata del blocco dipende dal browser. L'attaccante spegne il suo server web dopo che la pagina è stata caricata. Lo script malsano invia una richiesta ritardata ad attacker.org. Il tentativo di connessione del browser fallisce e il pin viene interrotto. Il Browser esegue una nuova ricerca DNS e ora viene fornito l'indirizzo IP del target. Problema di sicurezza generale: procedure di gestione degli errori scritto senza un'adeguata considerazione delle implicazioni sulla sicurezza. FIREWALLS I meccanismi crittografici proteggono i dati in transito (riservatezza, integrità). I protocolli di autenticazione verificano la fonte dei dati. Possiamo anche controllare quale traffico è autorizzato a entrare nel nostro sistema (filtraggio delle entrate) o a lasciare il nostro sistema (filtraggio in uscita). Firewall: un dispositivo di sicurezza di rete che controlla il flusso del traffico tra due parti di una rete. Spesso installato tra un'intera organizzazione di rete e Internet. Può anche essere installato in una rete Intranet per proteggere dipartimenti individuali. Tutto il traffico deve passare attraverso il firewall per avere una protezione efficace. Lo scopo del firewall è quello di controllare il traffico di rete da e verso la rete protetta. Può consentire o bloccare l'accesso ai servizi (entrambi interni ed esterno). È possibile applicare l'autenticazione prima di consentire l'accesso ai servizi. È possibile monitorare il traffico in entrata / in uscita dalla rete. TIPI DI FIREWALLS • Packet filter: Inserire le intestazioni dei pacchetti IP, anche i numeri delle porte TCP e UDP. Le regole specificano quali pacchetti sono consentiti attraverso il firewall e quali sono stati eliminati. Azioni: esclusione, rilascio, protezione (canale IPsec). Le regole possono specificare indirizzi IP di origine/destinazione, e numeri di porta TCP / UDP di origine/destinazione. Regole per il traffico in entrambe le direzioni. • Stateful packet filter: Filtro del pacchetto che comprende richieste e risposte. Le regole devono solo specificare i pacchetti in una direzione (da client a server: la direzione del primo pacchetto in una connessione). Supporta una gamma di protocolli più ampia rispetto al semplice pacchetto filtro. POLITICHE DEL FIREWALL • Permissivo: consente per impostazione predefinita, blocca alcuni. Facile da fare errori. Se dimentichi qualcosa che dovresti bloccare, è permesso, e potresti non rendertene conto per un po'. Se qualcuno trova un protocollo è permesso, potrebbero non dirtelo... • Restrittivo: blocca per impostazione predefinita, consente alcuni. Molto più sicuro. Se dimentichi qualcosa, qualcuno si lamenterà e tu puoi consentire il protocollo. ORDINE DELLE REGOLE Una politica del firewall è una raccolta di regole. I pacchetti possono contenere diverse intestazioni. Quando si imposta una politica, è necessario sapere in quale ordine vengono valutate le regole e le intestazioni. Due opzioni principali per le regole di ordinazione: • Applica la prima voce corrispondente nell'elenco delle regole. • Applica la voce con la migliore corrispondenza per il pacchetto. FIREWALL - LIMITAZIONI • I firewall non proteggono da minacce interne. • I servizi di blocco possono creare inconvenienti agli utenti. • La diagnostica di rete potrebbe essere più difficile. • Alcuni protocolli sono difficili da supportare. • Tunneling del protocollo: invio di dati per un protocollo attraverso un altro protocollo che aggira il firewall. • Il traffico crittografato non può essere esaminato e filtrato. PROMEMORIA: STRATEGIE DI SICUREZZA • Prevenzione: prendere misure che impediscono alle tue risorse di essere danneggiate. • Rilevazione: prendere misure per poter rilevare quando, come e da chi è stata danneggiata una risorsa. • Reazione: prendere le misure necessarie per il recupero dei tuoi beni o per recuperare da un danno alle tue risorse. SISTEMI DI RILEVAMENTO DELLE INTRUSIONI Supervisione passiva della rete. Due approcci al rilevamento delle intrusioni: ■ ID basato sulla conoscenza - Rilevamento di abuso: cerca modelli di rete, traffico o attività nei file di registro che indicano comportamenti sospetti, utilizzando informazioni come: vulnerabilità note di particolari sistemi operativi e applicazioni; attacchi noti sui sistemi; data la politica di sicurezza. I venditori devono tenersi aggiornati con gli ultimi attacchi e emettere aggiornamenti del database; i clienti devono installarli. ■ ID basato sul comportamento - Rilevamento dell'anomalia: se si verifica uno scoppio di insuccessi nell’autenticazione, può essere in corso un attacco; o forse l'amministratore ha appena dimenticato la sua password? Falsi positivi (falso allarme): attacco segnalato quando non sta avendo luogo. ID basati su rete e basati su host. Data la natura in tempo reale degli allarmi IDS, un IDS può anche essere usato come strumento di risposta. ARCHITETTURA IDS Gruppo distribuito di sensori - localizzati su host o sulla rete - per raccogliere dati. Console centralizzata per gestire la rete di sensori, analizzare i dati (data mining), segnalare e reagire. Network-based IDS (NIDS): cerca attacco firme nel traffico di rete. Utilizza i pacchetti di rete come origine dati. Monitor analizza tutto il traffico in tempo reale. Il modulo di riconoscimento degli attacchi utilizza tre comuni tecniche per riconoscere le firme di attacco: • Corrispondenza di pattern, espressioni o bytecode; • Frequenza o attraversamento della soglia (ad esempio, rilevare la scansione delle porte attività); • Correlazione di eventi minori Host-based IDS (HIDS): cerca firme di attacco in file di registro degli host. Tipicamente controlla registri di sistema, eventi e sicurezza su Windows e syslog in ambienti Unix. Es. Verificare i checksum dei file di sistema e degli eseguibili principali a intervalli regolari per modifiche inaspettate. Per un rilevamento più affidabile, combinare entrambi i tipi di IDS. HONEYPOT Honeypot: una risorsa il cui valore è stato attaccato o compromesso. Houseypot: tecnologia per tracciare, imparare e raccogliere prova delle attività degli hacker. Livello di coinvolgimento: • Interazione bassa: ascoltatori di porte • Interazione media: demoni falsi • Alta interazione: servizi reali La qualità delle informazioni acquisite aumenta con il livello di interazione. Gli attaccanti "intelligenti" eviteranno ovvi problemi di honeypot; Esistono strumenti per rilevare gli honeypot. Honeynet: rete di honeypot. Integrato da firewall e rilevamento delle intrusioni nei sistemi - Honeywall. Vantaggi: ambiente "più realistico" e migliorate possibilità di raccogliere dati. THREAT MODEL L'attaccante ha accesso al collegamento di comunicazione tra due punti finali: può vedere e modificare i messaggi. Il lavoro di un servizio di sicurezza delle comunicazioni è terminato una volta che i dati sono stati consegnati a un punto finale. Un attaccante passivo ascolta solo il traffico. L'analisi del traffico cerca di identificare i modelli di comunicazione; può essere possibile anche quando l'attaccante non può leggere i messaggi dell’individuo. L'attaccante potrebbe anche essere interessato alla posizione di un bersaglio. ATTACCANTI ATTIVI L'attaccante attivo può modificare i messaggi, inserire nuovi messaggi o gestire le informazioni della rete corrotta. Negli attacchi di spoofing i messaggi vengono forgiati con gli indirizzi del mittente. Negli attacchi di flooding (bombing) un gran numero di messaggi sono indirizzati alla vittima. Negli attacchi di squatting, l'attaccante dichiara di essere alla posizione della vittima. Gli attacchi attivi non sono necessariamente più difficili degli attacchi passivi; ad esempio, in pratica è più facile inviare un'e-mail con un indirizzo di mittente falsificato rispetto a intercettare un'e-mail destinata a qualcun altro. SECURE TUNNELS Tunnel sicuro (canale): connessione logica sicura tra due punti finali su una rete non sicura. Le garanzie di sicurezza tipiche sono l'integrità dei dati, riservatezza e autenticazione dell'origine dei dati. Se il tunnel non finisce dove l'utente si aspetta, l'attaccante può aspettare dall'altra parte del tunnel. I tunnel sicuri non forniscono servizi di sicurezza una volta che i dati sono stati ricevuti. SECURITY & NETWORK LAYERS La sicurezza può essere applicata a qualsiasi livello di rete tranne allo strato 1 (strato fisico). In generale, più basso e generico è il livello ma meno specifica è la protezione. Gli end point dei canali di sicurezza differiscono tra i livelli. IPSEC Fornisce sicurezza nel network layer (Internet). Due modalità di utilizzo di base: ■ Modalità di trasporto: host con protezione IPsec come endpoint. Sicurezza da host a host (end-to- end): elaborazione IPsec eseguita sugli endpoint del canale sicuro. Gli host degli endpoint devono essere compatibili con IPsec. ■ Modalità tunnel: per host non sensibili IPsec, tunnel stabilito da gateway intermedi o sistema operativo host. Servizi di autenticazione e / o riservatezza per i dati: ■ Protocollo AH [RFC 4302]: AH = Authentication Header: fornisce connectionless, integrità dei dati e autenticazione dell'origine dei dati. Autentica l'intero payload e la maggior parte dell'intestazione. Previsto spoofing dell'indirizzo IP: l'indirizzo IP di origine è autenticato. destinazione delle reti sono raggiungibili senza traduzione. ESP funziona con NAT; intestazione IP esterna non è inclusa nel calcolo del valore hash per l'autenticazione. CHECKSUM TCP E NAT Il calcolo del checksum TCP include gli indirizzi IP. Non è vero che il controllo dell'integrità rompe l'architettura a strati. Pseudo header non trasmesso; ricostruito dal ricevitore. NAT modifica l'indirizzo IP di origine. Quando il ricevitore elabora il pacchetto TCP, il controllo di integrità TCP userà un indirizzo IP 'sbagliato', e la verifica del checksum fallirà. Il ricevente deve avere un indirizzo di origine corretto. NAT Traversal (NAT-T) [RFC 3947 e 3948] aggiunge un’intestazione UDP che incapsula l'intestazione ESP (sta tra l'header ESP e l'header IP esterno). NOTE SU IPSEC Il key protocollo di stabilimento IKE viene trasferito su UDP; quindi inaffidabile e bloccato da alcuni firewall. IPsec e firewall hanno problemi a lavorare insieme. Autenticazione degli indirizzi IP di origine in AH: alcuni firewall cambiano questi indirizzi sui datagrammi out-bound. Sbagliare può significare perdita di sicurezza e di connettività. Stephen Kent: IPsec è un sistema di controllo degli accessi. SSL / TLS SSL = Secure Sockets Layer. V1 non rilasciato, v2 imperfetto ma utile, buona v3. TLS = Transport Layer Security Protocol. Ampiamente utilizzato nei browser Web e nei server per il supporto 'E-commerce sicuro' su HTTP. Sessioni HTTPS indicate dal blocco del browser. Sicurezza al session layer. Architettura a due livelli: • Protocollo SSL: fornisce un canale sicuro e affidabile al secondo livello. • Il livello superiore supporta SSL Handshake Protocol, Change Cipher Specification Protocol, Alert Protocol, HTTP, qualsiasi altro protocolli di applicazione. I partecipanti sono "client" e "server". Server quasi sempre autenticato, client più raramente. Appropriato per la maggior parte delle applicazioni di e-commerce. Stabilire un nuovo segreto condiviso utilizzato per ricavare ulteriori chiavi. Sessioni: ■ Creato dal protocollo di handshake. ■ Definisce set di parametri crittografici (crittografia e algoritmo di hash, master secret, certificati). ■ Trasporta connessioni multiple per evitare l'uso ripetuto di costoso protocollo di handshake. Connessioni: ■ Stato definito da nonces, chiavi segrete per MAC e crittografia, IVs, numeri di sequenza. ■ Tasti per molte connessioni derivate dal singolo master segreto creato durante il protocollo di handshake. PROTOCOLLO SSL HANDSHAKE: ESEGUI 1. Nessuna autenticazione client. 2. Il cliente invia pre_master_secret utilizzando il server pubblico la chiave di crittografia dal certificato del server. 3. Server autenticato dalla capacità di decrittografare per ottenere pre_master_secret e costruire un messaggio corretto finito. M1: CLIENTHELLO 1. Il client avvia la connessione. 2. Invia il numero di versione del client. 3. Invia ClientNonce (28 byte casuali più 4 byte di tempo). 4. Offre lista di ciphersuites: scambio chiave e opzioni di autenticazione, crittografia algoritmi, funzioni di hash. M2: SERVERHELLO, ... 1. Invia il numero di versione del server. 2. Invia ServerNonce e SessionID. 3. Seleziona single ciphersuite dall'elenco offerto dal client. 4. Invia messaggio ServerCertChain: consente al client di convalidare la chiave pubblica del server su radice di fiducia accettabile. 5. (facoltativo) messaggio CertRequest. Nessuna autenticazione client. 6. Infine, ServerHelloDone. M3: CLIENTKEYEXCHANGE, ... 1. ClientKeyExchange contiene crittografia di pre_master_secret sotto la chiave pubblica del server. 2. ChangeCipherSpec indica che il client sta aggiornando la suite di crittografia da utilizzare in questa sessione. Inviato utilizzando SSL Change Cipher Spec. Protocollo. 3. Opzionale (solo quando il client è autenticato): ClientCertificate, ClientCertificateVerify i messaggi. 4. Infine, messaggio ClientFinished. MAC su tutti i messaggi inviati finora (entrambi i lati). MAC calcolato usando master_secret. M4: CHANGECIPHERSPEC, ... 1. ChangeCipherSpec indica che il server è in aggiornamento della suite di crittografia da utilizzare in questa sessione. Inviato utilizzando SSL Change Cipher Spec. Protocollo. 2. Infine, messaggio ServerFinished. MAC su tutti i messaggi inviati finora (entrambi i lati). MAC calcolato usando master_secret. Il server può calcolare solo MAC se può decodificare pre_master_secret in M3. ESECUZIONE DEL PROTOCOLLO HANDSHAKE SSL 1. Il client è autenticato sul server in questo protocollo funziona run? No! 2. Può un avversario imparare il valore di pre_master_secret? No! Il client ha convalidato la chiave pubblica del server; Per imparare il pre_master_secret è necessaria la chiave privata del server per decrittografare ClientKeyExchange 3. Il server è autenticato sul client? Sì! ServerFinished include MAC su nonces calcolati utilizzando la chiave derivata da pre_master_secret. APPLICAZIONI SSL / TLS Commercio elettronico sicuro tramite SSL / TLS. L'autenticazione client non è necessaria fino a quando il cliente non decide di comprare qualcosa. SSL fornisce un canale sicuro per l'invio di informazioni di carte di credito. Il client autenticato utilizzando le informazioni della carta di credito, ha più rischi. EAP (Extensible Authentication Protocol) Protocollo estendibile di autenticazione. Definisce il flusso generale dei messaggi; può essere implementato usando una varietà di meccanismi sottostanti. Windows supporta vari metodi EAP per l'accesso remoto. PRINCIPIO DI PROGETTAZIONE Applicazioni che chiamano un protocollo di autenticazione solo per vedere un flusso di messaggi astratti. Quindi, è possibile scegliere il meccanismo di autenticazione indipendentemente dall'applicazione. Il meccanismo di autenticazione può essere modificato senza dover riscrivere l'applicazione. METODI EAP I messaggi EAP generici scambiano identità, incapsulano i messaggi di protocollo di autenticazione. Questi protocolli sono chiamati metodi. Gli utenti sono identificati da Network Access Identifier (NAI); I metodi EAP forniscono almeno un'autenticazione a senso unico (EAP peer server EAP). Molti metodi EAP esistenti o proposti differiscono tra loro per le loro caratteristiche e livelli di sicurezza.
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved