Altro: VPN, WIRELESS, TOR... Flashcards
Discutere le caratteristiche e i problemi di sicurezza legati all’utilizzo delle reti wireless.
Una rete wireless presenta dal punto di vista implementativo vantaggi sul fronte della scalabilità orizzontale e verticale e del costo di realizzazione dell’infrastruttura rispetto ad una rete cablata.
Le reti wireless si dividono principalmente in due tipologie: le reti di tipo infrastructure mode, a cui i client si connettono a un device dedicato chiamato Access Point, oppure le ad-hoc mode, in cui ogni client si connette agli altri (es. riunione in sala conferenze).
I problemi di sicurezza legati all’utilizzo di reti wireless sono simili a quelli di una rete cablata e vanno a coinvolgere la possibilità di perdita di riservatezza, integrità e disponibilità dei dati, in quanto può succedere di collegarsi a reti pubbliche, anche non volontariamente, che possono essere poco sicure o su cui ci può essere qualche attaccante in ascolto.
Oppure:
Le reti wireless, che nascono per sopperire alla mancanza di copertura di un canale fisico tra più nodi, hanno parecchie differenze e peculiarità rispetto alle controparti wired.
In una rete wireless, poiché la trasmissione avviene tramite onde radio, i segnali sono intrinsecamente di tipo broadcast e quindi il canale risulta visibile anche ai nodi che non vi hanno accesso.
Inoltre, le onde radio possono avere bande diverse e sono soggette ad interferenze o attenuazioni di segnale che possono degradare il normale funzionamento della rete.
Dal punto di vista della sicurezza, dunque, le reti wireless presentano diverse vulnerabilità dovute all’utilizzo delle onde radio:
• Chiunque può intercettare il segnale con un ricevitore radio.
• Il segnale radio è soggetto a disturbi o interferenze.
• I dispositivi di rete progettati per funzionare in modalità wireless hanno spesso capacità di calcolo molto ridotte, il che impedisce di utilizzare protocolli crittografici per garantire la confidenzialità dei dati.
• In una rete wireless i nodi sono identificati dal loro MAC address, che risulta facilmente falsificabile.
Tutte queste peculiarità rendono le reti wireless soggette ad attacchi di diverso tipo:
• Eavesdropping: l’attaccante intercetta il traffico di più nodi o di una rete.
• Denial of Service: l’attaccante rende inutilizzabili un servizio della rete o la rete stessa.
• Spoofing e message reply: l’attaccante forgia alcuni messaggi con scopi malevoli.
● Accidental association: un utente si connette ad una rete non fidata. Ci si espone ad attacchi;
● Malicius Association: access point malevolo, finge di essere un access point, invece è un tentativo per rubare dati;
● Ad hoc network: Non c’è controllo sulla potenzialità di comportamenti avversari;
● Nontraditional networks: reti non tradizionali come bluetooth (esempio telecomandi) espongono ad attacchi di modifica, spoofing;
● Identity theft (MAC spoofing) : rubare il mac della scheda di rete del device, per impersonare un altro dispositivo;
● Man-in-the-middle attacks: attacchi alla rete di intrusione;
● denial of service (DoS): client che si connettono e inondano un access point facendo sì che si saturi e non fornisca più il servizio
● Network Injection: iniezione di pacchetti nella rete provocando dei malfunzionamenti degli AP o degrado delle performance
La comunicazione in broadcast del mezzo poi, rende più suscettibili a sniffing del traffico, così come anche banalmente lasciare un dispositivo collegato incustodito, a cui un attaccante può avere accesso e sfruttarlo per ottenere informazioni che non dovrebbe conoscere.
WEP è stato Il primo sistema di autenticazione che si proponeva di garantire confidenzialità pari al collegamento
15
wired, ma si rivelò facilmente attaccabile già da principio a causa del vettore di inizializzazione IV e all’utilizzo di
CRC RC4 per la crittografia che lo rende debole. Utilizza una coppia di chiavi che devono essere inserite
manualmente sui dispositivi in fase di setup mentre la master key è invariabile.
WPA si pone come obbiettivo risolvere le falle di sicurezza di WEP e mantenere la retrocompatibilità senza pero
riuscirci: viene ancora usato RC4 con chiavi piu robuste e la masterkey diventa varabile e scambiata con TKIP. Se
bucare una WEP è banale e richiede pochi minuti, violare una WPA richiede più tempo e risorse ma è cmq fattibile.
WPA2 è l’attuale standard: abbandona RC4 e TKIP in favore di algoritmi robusti come AES256. Opera in due
modi:
● Home-And-Small-Office: c’è una pre-shared-key definita in fase di configurazione
● Enterprise: prevede un attore terzo( un server RADIUS) connesso alla controller degli degli AP in modo wired
a cui il l’host che richiede accesso scambia una chiave di accesso. L’AP in seguito chiederà al RADIUS
l’attendibilità di accesso del nodo in questione.
Di recente è stato introdotto anche WPA3 che dovrebbe garantire protezione da attacchi man in the middle,
sniffing e brute force attraverso la crittografia tutte le comunicazioni.
Discutere le problematiche della autenticazione su Web e in dettaglio uno schema challenge-response
da rivedere.. mi puzza
L’autenticazione in generale, e in particolar modo quella web, consiste principalmente in un client che fa una richiesta e un server che fornisce una risposta.
Per fare in modo però che il server non invii informazioni a client malevoli, che possono attaccare tramite attacchi di spoofing, fingendosi un client legittimo (o anche fingendosi un server legittimo), oppure con replay attack, cioè invio di pacchetti già inviati da un client legittimo (tramite sniffing sulla rete), vengono introdotte misure di sicurezza più avanzate.
Client e server condividono informazioni segrete, che possono andare da una password a una chiave di crittografia (secret): un client che vuole accedere a un servizio web su un server, deve dimostrare di essere chi dichiara di essere. Il server presenta quindi al client una stringa (challenge) e il client, tramite il secret, può fornire la prova di identificazione richiesta e riesce ad accedere (response).
Questo schema fornisce segretezza, tramite appunto uso di password o chiavi, e anche freschezza, nella misura in cui la challenge viene modificata a ogni richiesta, così che non si possa sfruttare una risposta già fornita con un replay attack.
Supponi che un server B sia dotato di una chiave privata. Un client A, in possesso della relativa chiave pubblica, deve autenticare B. Mostra e discuti un semplice protocollo di autenticazione basato sull’approccio challenge-response in cui il server decifra il challenge.
B → “Sono B” → A
A → KPUB B { R } → B
B → R → A
Questo metodo di autenticazione basato su challenge-response consente al client A di autenticare il server B sfruttando i principi della crittografia asimmetrica; infatti il messaggio criptato impiegando la chiave pubblica di B potrà esser decriptato solo con la chiave privata di B Alla ricezione di R in chiaro, A potrà confrontare quanto ricevuto con quanto inviato in precedenza, e se c’è coincidenza, potrà autenticare B.
Importante è che R sia una informazione valida solo per la sessione di autenticazione attuale (alla prossima autenticazione R deve cambiare), che non sia prevedibile (R non deve essere un contatore meramente incrementale) e che R contenga l’identificativo di A. In generale se non vengono mantenuta la freshness e non sono riportati i destinatari un attaccante potrebbe operare un replay attack re-inviando il valore R decifrato da A.
Descrivere una procedura di autenticazione basata sullo schema di Lamport
Lo schema di Lamport consente di effettuare un’autenticazione tramite One time password senza la necessità di sincronizzazione temporale tra le due parti.
Lo schema si basa sull’esistenza di una funzione di hash H sicura (non invertibile).
Il funzionamento è il seguente:
Il segreto condiviso X che viene inviato da A a B non sarà conservato da B. B conserverà X hashato N volte, ed il numero N che verrà comunicato a A. A decrementerà N di 1 e reinvierà a B X hashato N-1. B non dovrà far altro che riapplicare l’hash per verificare l’identità di A. Lo schema potrà essere usato N volte, poi il segreto andrà cambiato. Le implementazioni più moderne di basano sullo stesso principio. Lo schema non protegge da tutti gli attacchi che possono sopraggiungere dopo l’autenticazione. In alcune implementazioni è soggetto all’attacco noto come n piccolo.
Descrivere le problematiche dell’autenticazione nei framework di Single Sign On
Il meccanismo di Single Sign On viene utilizzato per eseguire l’accesso di un utente a un client e, una volta fornito questo accesso, può accedere ad altri servizi in quanto ha già fornito una prova della sua identità al sistema.
Un attaccante può intervenire in due modi principali: forzando la vittima a cliccare su un link che sembra la classica pagina di accesso, dirottandola su un sito malevolo per recuperare le credenziali, oppure non c’è interazione con la vittima e l’attaccante prova ad accedere utilizzando una certa identità.
Single Sign On è un sistema di autenticazione centralizzato, con il quale un utente può accedere a servizi diversi di provider differenti, a partire da un set unico di credenziali, permettendo una gestione centralizzata degli accessi e la riduzione dei costi di gestione e manutenzione del sistema. Tali sistemi si sono diffusi sempre di più col nascere di servizi Web interoperabili, ovvero di servizi che cooperano con altri servizi per facilitare l’interazione fra sistemi differenti. Uno dei primi sistemi è stato Kerberos, un protocollo che fornisce ad ogni utente che inizia il processo di autenticazione un ticket di accesso, con scadenza temporale alle risorse richieste; tuttavia Kerberos risulta difficile da implementare per servizi web, perciò si è ricorso a meccanismi distribuiti come OpenID, OpenID è uno standard open source per l’autenticazione che consente, tramite la registrazione ad un Identity provider a scelta dell’utente, di accedere a tutti i servizi abilitati al meccanismo SSO. Malgrado gli indubbi vantaggi, questi sistemi presentano anche diverse criticità che vanno dalla privacy alla criticità delle credenziali:
* alla compromissione di un set di credenziali si ottiene accesso a tutti i servizi
* il phishing potrebbe risultare più semplice poiché non sarà necessario fingersi una pagina nota, sarà sufficiente creare una pagina che implementi OpenID e al momento del login reindirizzare l’utente ad un provider fittizio, così da rubare le credenziali.
* essendo i dati personali dell’utente condivisi tra vari provider è più difficile che la privacy di un utente non venga garantita
oppure:
SSO sta per Single Sign On ed è un meccanismo che permette, una volta che un utente ha fornito delle credenziali di accesso, di poter accedere automaticamente anche ad altri servizi o altri client, indipendentemente dalla piattaforma utilizzata.
Questo meccanismo viene utilizzato, per esempio, per farci accedere a determinati servizi semplicemente fornendo il nostro account di Google.
Uno dei principali svantaggi del SSO è proprio legato al fatto che si utilizza una credenziale per accedere a più servizi; perciò, se viene recuperata da un attaccante, automaticamente avrà accesso a tutti i servizi, invece che a quello singolo.
Oltre a questa, esistono altre problematiche di sicurezza da valutare, quali il fatto che un attaccante possa fingersi la vittima per accedere ai suoi servizi, oppure può creare dei pacchetti spoofati per convincere il relying party, cioè la componente che richiede le credenziali inizialmente, a dare l’accesso ad altri servizi di provider terzi.
Descrivere i problemi relativi all’anonimia, discutendo le possibili tecniche a disposizione
Dal punto di vista formale, si ha anonimato quando un utente è in grado di comunicare e fruire di risorse senza che sia possibile identificare in maniera certa, o quasi certa, il legame tra gli attori della comunicazione o la relazione tra utente e risorsa utilizzata.
Più generalmente e relativamente alla sicurezza delle reti informatiche, quando si parla di anonimato ci si riferisce alla difesa personale rispetto a pericoli di controllo, censura, filtro dei contenuti o violazioni della privacy che possono avvenire in rete. La necessità di proteggersi nasce dal fatto che l’utilizzo comune di internet espone tantissimi dati personali che consentono l’identificazione univoca di un utente; alcuni di questi sono:
* Indirizzo IP del client;
* Browser e sistema operativo utilizzati;
* Dati di navigazione (cookie, history di navigazione);
* Eventuali dati sensibili tramite l’invio di form;
A tal proposito esistono diverse tecniche con le quali è possibile garantire diversi livelli di anonimato in rete:
* Usare protocolli che garantiscano confidenzialità dei dati; ad esempio HTTPS consente di effettuare una comunicazione cifrata con un server web, facendo sì che tutti i dati che transitano dal client al server non siano osservabili;
* Impiegare protocol cleaner, utili per filtrare cookie o script di tracking che hanno il solo scopo di tracciare l’attività utente per scopi commerciali o malevoli;
* Usare dei server proxy per offuscare o alterare il proprio IP durante sessioni di navigazione web; I proxy in particolare possono essere usati per evitare che il server salvi le informazioni provenienti dalla nostra macchina. Per lo scopo si eviterà di usare dei proxy trasparenti, utilizzati prevalentemente per il caching, ricorrendo piuttosto a:
* Anonymous Proxy: prevede che non venga inoltrato l’ip del client;
* Distorting Proxy: che prevede la modifica delll’ip del client;
* High Anonymity Proxy: che prevede che tutti i campi dell’header vengono ripuliti, lasciando solo quelli strettamente necessari;
* Privoxy: proxy avanzati e personalizzabili che gestiscono aspetti quali cookie, javascript ecc;
Esiste poi la tecnica di Onion Routing, utile per evitare la censura dai gestori della rete, che prevede che il traffico venga instradato attraverso una serie mutevole di onion router in maniera che ogni router che riceve un pacchetto conosca solo da quale router esso arriva e verso quale router debba instradare, così da rendere difficile il tracciamento dell’attività.
Discutere i concetti di inosservabilità, unlinkability e utilizzo di pseudonimi
L’inosservabilità va a impedire all’avversario di capire se qualcuno sta utilizzando un particolare sistema o protocollo. (difficile da raggiungere).
La unlinkability significa separare azione e identità: per esempio il mittente e una sua email non sono correlabili neanche dopo le osservazioni di un avversario (il livello rimane uguale).
Pseudonymity: Un utente usa una risorsa identificandosi con uno pseudonimo. Lo pseudonimo rimane costante_ ma non _e possibile (o solo alcuni sono in grado di farlo) collegarlo all’identità reale, può essere legato ad un ruolo.
Oppure
In ambito di anonima si definisce
Inosservabilità: la condizione per cui un utente è in grado di utilizzare una risorsa senza che terze parti (fatti salvi Forze Dell’ordine e il gestore della rete) siano in grado di ottenere l’indentità dell’utente. E’ perfetta se neanche a posteriori è possibile “smascherare” l’utente.
Incollegabilità: un utente U usa diverse risorse senza che sia possibile collegarne i diversi utilizzi.
Pseudonimia: un utente U usa una risorsa identificandosi con uno pseudonimo il cui utilizzo rimane costante nel tempo, senza che sia possibile, datolo pseudonimo, risalire all’identità reale dell’utente.
Discutere l’approccio Onion Routing per proteggere l’anonimato
Per Onion Routing si intende la tecnica per rendere anonima la comunicazione su una rete o comunque per rendere difficile il tracciamento.
I dati vengono cifrati dal mittente ed inviati al destinatario tramite diversi nodi di rete chiamati onion router. Esattamente come quando si sbuccia una cipolla, ogni onion router che riceve il pacchetto decifra la propria parte che contiene le informazioni di routing, le interpreta ed inoltra il pacchetto all’onion router specificato. Tutto questo fino ad arrivare all’ultimo nodo, chiamato exit node, che inoltrerà il pacchetto al dovuto destinatario.
Quindi ogni nodo intermediario non dispone di adeguate informazioni per riconoscere mittente, destinatario e dati. Ognuno conosce solo un’informazione parziale che garantisce un ottimo livello di anonimato. Naturalmente una rete del genere decade un poco in prestazioni.
Uno dei progetti più significativi di Onion Routing è TOR, acronimo di The Onion Router Project. Funzionamento di TOR:
1. Alice vuole comunicare con Bob. Avvia il client TOR (chiamato Onion Proxy) che per prima cosa riceve una lista di onion router da un directory server.
2. A questo punto il client TOR costruisce un circuito random utilizzando alcuni degli onion router della lista. Il traffico tra gli onion router sarà cifrato utilizzando TSL mentre sarà in chiaro quello tra exit node (scelto in base all’exit policy) e Bob. Solitamente ogni minuto viene aggiornato il circuito in modo da offrire un alto livello di anonimato. È facile intuire che, a meno di sistemi di autenticazione a livello applicativo, sarà impossibile anche per Bob conoscere il reale mittente, in quanto egli vede i pacchetti come se fossero inviati dall’exit node.
Ogni nodo conosce solo il nodo precedente e quello successivo, quindi anche se in mezzo ci sta qualche nodo malevolo (per tracciare il traffico ad esempio), questo non sarà in grado di conoscere l’informazione in quanto rimane sconosciuta la reale origine e la reale destinazione.
Inoltre, i pacchetti, come già detto, sono cifrati. Per raggiungere buoni livelli di efficienza, tutte le richieste effettuate dal client nello stesso minuto viaggiano attraverso lo stesso circuito (multiplexing).
I nodi che operano da directory server devono essere trusted, altrimenti possono fornire informazioni false al fine di tracciare il traffico.
Ogni onion router ha una long-term key utilizzata per l’identificazione ed una short-term key utilizzata in ogni sessione TSL che garantisce la PFS (Perfect Forward Secrecy), ovvero una volta terminata la sessione le chiavi cambieranno e non sarà possibile per un onion router rivedere il traffico. Quindi non è possibile ricostruire il traffico tra router diversi.
Discutere caratteristiche, tipologie e utilizzo di VPN
VPN è l’acronimo di Virtual Private Network e si tratta di una rete privata che permette di mettere in comunicazione reti (o utenti) separate, aprendo dei canali di comunicazione sicuri su internet, senza quindi dover utilizzare reti dedicate.
VPN è una rete “overlay” ovvero che sfrutta una infrastruttura di connessione sottostante come fosse una black box, agnostica alle connessioni fisiche fra i nodi. Per sua concezione risulta inaccessibile ai nodi esterni. Il concetto del tunnel si basa sull’incapsulamento di pacchetti e il loro instradamento attraverso una infrastruttura geograficamente e tecnologicamente discontinua o promiscua.
Esistono tre tipologie di VPN:
* Trusted: utilizzo un provider che mi crea un circuito sicuro, garantendo integrità e confidenzialità dei dati, per attivare la mia VPN. Ho la certezza, derivata dal trust con il provider, che i dati arriveranno a destinazione senza essere modificati.
* Secure: sono reti VPN che utilizzano la cifratura dei dati per impedire attacchi di sniffing da parte di client malevoli. Questi dati passano su internet, ma possono essere decifrati solo dal destinatario.
* Hybrid: un mix tra trusted e secure VPN
Una VPN può essere utilizzata per mettere in comunicazione due sedi della stessa azienda, creando per esempio una VPN site-to-site, in cui si crea un tunnel sicuro tra i due firewall delle sedi (Intranet VPN), oppure facendo collegare un utente tramite il proprio client alla rete aziendale, passando per internet (Extranet VPN).
Gli scenari principali variano in base alle esigenze di utilizzo:
* Una multinazionale con sedi in diversi paesi dovrà provvedere a collegare in VPN tutte le sue sedi attraverso tunneling site to site.
* Una azienda deve permette ai propri dipendenti di collegarsi ai servizi della propria intranet senza esporre questa nella rete pubblica e per questo realizza una rete Hub and Spoke dove un server VPN fornisce il gate di accesso per i client VPN ai dispositivi aziendali siti presso la casa dei dipendenti
* Una banca deve collegare i propri ATM e i propri POS ai proprio server.
Esistono diversi protocolli proprietari (MS, Cisco, Forninet) che forniscono strumenti Sw e Hardware per la realizzazione di una VPN così come molti ISP forniscono VPN chiavi in mano. OpenVpn è un protocollo opensource che utilizza SSL\TSL e librerie OpenSSL.