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


programma 5' anno sistemi e reti, Sintesi del corso di Sistemi di reti

programma intero sistemi e reti v superiore

Tipologia: Sintesi del corso

2020/2021

In vendita dal 17/05/2021

qobaiche-yassir
qobaiche-yassir 🇮🇹

2 documenti

1 / 21

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Sistemi e Reti - 1º libro
Segmenti → TCP
Datagrammi → UDP
Unità 5 - Il Livello di Trasporto
Il livello di trasporto garantisce una connessione affidabile (pacchetti senza errori, perdite e
nello stesso ordine con cui sono partiti) non solo tra host direttamente connessi, come nel
livello 2, ma anche tra quelli appartenenti a reti diverse.
Protocollo TCP (Transmission Control Protocol)
È un protocollo affidabile orientato alla connessione, in grado di collegare molteplici tipologie
di rete. I suoi principali compiti sono:
aprire, mantenere e chiudere una connessione tra mittente e destinatario
suddividere i dati da spedire in segmenti indipendenti
riassemblare i dati in arrivo e metterli nel giusto ordine
effettuare l’error recovering dei segmenti persi o danneggiati
effettuare il controllo di flusso
effettuare multiplexing e demultiplexing
risolvere problemi di efficienza legati all’uso delle risorse di rete
Multiplexing e demultiplexing
Per multiplexing si intende quando, i datagrammi, arrivati al livello di trasporto, vengono
spezzati e mandati nella rete.
Il demultiplexing è l’operazione nella quale i datagrammi arrivano all’host di destinazione in
ordine sparso e ordinati dal livello precedentemente citato.
Porte
Quando un host riceve datagrammi, è molto probabile che li riceva da molte applicazioni
diverse.
Quindi per distinguere il traffico dati in modo univoco, si fa uso di un ulteriore campo oltre all’
IP ovvero le porte.
Su questa porta un processo che offre un servizio, si mette in ascolto, consentendo a un
altro processo di connettersi in remoto.
Socket
La combinazione di un indirizzo ip e una porta costituisce un socket.
I socket possono essere definiti come le estremità di un canale di comunicazione: una
coppia di processi che comunica attraverso la rete, si serve di una coppia di socket, una per
ciascuno.
Ogni socket per l'appunto, è formato da un indirizzo IP e un numero di porta.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Anteprima parziale del testo

Scarica programma 5' anno sistemi e reti e più Sintesi del corso in PDF di Sistemi di reti solo su Docsity!

Sistemi e Reti - 1º libro

Segmenti → TCP Datagrammi → UDP

Unità 5 - Il Livello di Trasporto

Il livello di trasporto garantisce una connessione affidabile (pacchetti senza errori, perdite e nello stesso ordine con cui sono partiti) non solo tra host direttamente connessi, come nel livello 2, ma anche tra quelli appartenenti a reti diverse.

Protocollo TCP (Transmission Control Protocol)

È un protocollo affidabile orientato alla connessione, in grado di collegare molteplici tipologie di rete. I suoi principali compiti sono: ● aprire, mantenere e chiudere una connessione tra mittente e destinatario ● suddividere i dati da spedire in segmenti indipendenti ● riassemblare i dati in arrivo e metterli nel giusto ordine ● effettuare l’error recovering dei segmenti persi o danneggiati ● effettuare il controllo di flusso ● effettuare multiplexing e demultiplexing ● risolvere problemi di efficienza legati all’uso delle risorse di rete

Multiplexing e demultiplexing

Per multiplexing si intende quando, i datagrammi, arrivati al livello di trasporto, vengono spezzati e mandati nella rete. Il demultiplexing è l’operazione nella quale i datagrammi arrivano all’host di destinazione in ordine sparso e ordinati dal livello precedentemente citato.

Porte

Quando un host riceve datagrammi, è molto probabile che li riceva da molte applicazioni diverse. Quindi per distinguere il traffico dati in modo univoco, si fa uso di un ulteriore campo oltre all’ IP ovvero le porte. Su questa porta un processo che offre un servizio, si mette in ascolto, consentendo a un altro processo di connettersi in remoto.

Socket

La combinazione di un indirizzo ip e una porta costituisce un socket. I socket possono essere definiti come le estremità di un canale di comunicazione: una coppia di processi che comunica attraverso la rete, si serve di una coppia di socket, una per ciascuno. Ogni socket per l'appunto, è formato da un indirizzo IP e un numero di porta.

Preambolo del segmento TCP

Come per ogni livello, ogni busta di dati, contiene un preambolo che nel caso del TCP è di lunghezza fissa pari a 20 byte, dopo il preambolo, vi può essere un campo opzionale al quale fanno seguito i veri e propri dati. ogni segmento, compreso il preambolo deve essere di massimo 65535 byte. ogni rete inoltre possiede un MTU (unità massima di trasferimento) che condiziona il numero massimo di byte ammessi su quella tratta.

Campi del preambolo TCP

Source port/destination port

16+16 bit e contiene l’indirizzo di sorgente e quello di destinazione, al quale inviare i dati.

Sequence number(32 bit)

È il numero che insieme al acknowledgement, permette di mantenere traccia del numero di byte inviati e ricevuti nei segmenti

Acknowledgement number(32 bit)

È il complementare del sequence number. La conferma della ricezione corretta avviene assegnando al campo acknowledgement number il numero del byte successivo all’ultimo ricevuto. esso indica al trasmettitore remoto quale dovrà essere il successivo numero di byte che si aspetta di ricevere.

Data offset(4 bit)

Indica la lunghezza dell'intestazione in parole da 32 bit. cioè, di fatto, indica l’inizio del campo contenente i dati.

Reserved(4 bit)

Campo predisposto per utilizzi futuri

Flags(1 bit per ognuno)

● CWR (indica che è stata ridotta la velocità di invio per congestione) ● ECE (questo bit indica che l’host ha problemi di congestione) ● URG (corrisponde a un messaggio di interruzione) ● ACK (indica se il segmento di acknowledgement number è valido) ● PSH ● RST (usato per iniziare nuovamente la connessione) ● SYN ● FIN (usato per chiudere la connessione)

Windows size(16 bit)

È il campo che sfrutta la tecnica della finestra scorrevole.

Recupero dei segmenti dispersi

Nel caso in cui una sequenza di pacchetti venga spezzata a causa dello smarrimento di uno o più pacchetti, i pacchetti seguenti all’interruzione non vengono scartati ma conservati per quando i pacchetti mancanti verranno ri-inviati dal mittente (il quale ovviamente non ha ricevuto nessun flag di ack), consentendo la continuazione della sequenza.

Problemi di efficienza del TCP

I problemi possono essere sostanzialmente 2: un processo di scrittura molto lento del mittente e uno di lettura e svuotamento del buffer altrettanto lento dal ricevente. Un terzo problema è la congestione della rete.

1º problema: l’applicazione mittente consegna un byte alla volta

Considerando il caso di una applicazione interattiva (telnet), data la lentezza del processo, ciascun carattere digitato viene incapsulato in un segmento TCP. Al byte vengono aggiunti 20 byte di intestazione e altri 20 byte sull’intestazione dell’indirizzo IP. Il ricevente risponde con un segmento di conferma di 40 byte seguito da un segmento con l’eco del carattere ricevuto. In totale per un carattere vengono trasmessi 122 byte. Per ovviare a questo problema si ricorre alla bufferizzazione: si spedisce solo il primo byte e i successivi vengono salvati in un buffer fino a quando non si riceve la conferma del primo byte spedito. Nel frattempo il mittente ha accumulato i dati digitati dall’utente che potrà trasmettere in un unico segmento.

2º problema: l’applicazione ricevente prende i dati da TCP al ritmo di un

byte alla volta

È il caso in cui il buffer del ricevente è pieno. Appena si svuota di un byte, subito viene inviato al mittente un segmento TCP con finestra uguale a 1. Il trasmittente invia un segmento con un solo byte. Quindi il buffer del ricevente è nuovamente pieno bloccando l’invio del trasmittente. La soluzione è quindi di aspettare che il buffer del ricevente sia sufficientemente vuoto per aprire la finestra di ricezione.

3º problema: congestione della rete

Questo problema persiste quando il router è sovraccaricato di pacchetti e non riesce più a smaltirli perché la velocità con cui li riceve è superiore a quella con cui riesce a spedirli. Per risolvere il problema occorre far uso di un algoritmo per il quale un nuovo pacchetto viene inserito in rete solo quando il precedente è stato consegnato al destinatario o non è più in rete. Il rilevamento della congestione si basa sul controllo dei tempi di conferma dei pacchetti trasmessi (timeout).

Il protocollo UDP (User Datagram Protocol)

Questo tipo di protocollo non fornisce connessione (connection less) e non da affidabilità ai dati, ovvero non viene data conferma dei segmenti spediti.

Non gestisce il riordinamento dei pacchetti, né la ritrasmissione di quelli persi. Viene utilizzato ove si vuole privilegiare una connessione veloce a scapito di una connessione affidabile (ricerca DNS, trasmissione di filmati e voce, streaming video e audio). Il preambolo possiede solo 2 “parole” da 32 bit suddivise in quattro campi: ● Source e Destination port ( identifica il numero di porta del mittente e del destinatario ); ● Length : fornisce la lunghezza totale del segmento ( datagramma ) in bytes ● Checksum :(codice di controllo,verifica degli errori) può essere disattivato in trasmissioni in tempo reale ● Data : dati del messaggio

HTML

Una pagina Web è scritta in HTML (Hypertext Markup Language) sotto l’estensione .html. Si tratta di un linguaggio di markup (di ‘contrassegno’ o ‘di marcatura’), che permette di indicare come disporre gli elementi all’interno di una pagina come link, immagini, paragrafi ecc… Non può essere definito linguaggio di programmazione perché non è in grado di eseguire una serie di operazioni da far eseguire alla macchina, come dei calcoli. Un altro modo per realizzare una pagina Web è grazie a dei Web Editor o CMS, è possibile realizzare una pagina Web in modo visuale, inserendo degli elementi che generano elementi HTML in modo automatico. Questi elementi nel linguaggio di HTML vengono detti tag ( ‘etichette’ ), che hanno la caratteristica di essere inclusi tra parentesi angolari (ad es, è il segnaposto di un’immagine), per chiudere il tag e porre così l’inserimento dell’elemento nella pagina, il tag viene anticipato dal segno “/”. Possiede questa struttura: testo contenuto Una pagina HTML è suddivisa in almeno 2 sezioni: l'intestazione (head) e il corpo (body), contenente il documento con tutti gli elementi di un ipertesto. Un intero documento HTML è delimitato da due tag che indicano l’apertura e la chiusura della nostra pagina HTML. I tag HTML possono essere corredati di uno o più attributi, che servono per meglio specificare la funzione o la tipologia dell’elemento, per memorizzare dati o per arricchire di significato il contenuto. Un tag con attributi si scrive in questo modo:

CSS

L’acronimo CSS sta per Cascading Style Sheets (fogli di stile a cascata) e designa un linguaggio di stile per i documenti web. I CSS istruiscono un browser o un altro programma utente su come il documento debba essere presentato all’utente, per esempio definendone i font, i colori, layout ecc.. La tecnica usata nel web è quella di scrivere le informazioni in HTML e il formato in CSS, usando i fogli di stile. Il codice si può scrivere all’interno del file .HTML oppure in un file con l’estensione .css

HTML

HTML5 è l’ultima versione di HTML, è molto più funzionale grazie alle nuove funzionalità e tag semantici aggiunti. Con il termine tag semantico si identificano gli elementi HTML che descrivono espressamente il proprio significato. ES. nuovi elementi per i form, elementi di controllo per i menù, tag audio e video, Canvas che permette di usare JavaScript per creare animazioni ecc...

Web 2.

Il Web 2.0 è un insieme di tecnologie, di modi d'essere e di comunicare totalmente nuovo rispetto all'Internet al quale eravamo abituati, ed ecco perchè si chiama 2.0.

Servizi offerti dalla rete

Social Network

Il social network è una piattaforma di comunicazione mediante il WWW o apposite applicazioni, con l’unico scopo di facilitare i rapporti sociali consentendo la comunicazione e la condivisione di contenuti digitali. Ogni utente possiede un profilo, pubblicando ciò che vuole al suo interno e alimentando il sistema che si basa sulle “amicizie”, così da conoscere molte più persone.

Google Apps

Google mette a disposizione diverse applicazioni di ogni genere, come: Google Maps finalizzato alla geolocalizzazione, Google Drive per la condivisione di file, GMAIL dedicato alla posta elettronica e tante altre…

Smartwatch

Sono degli orologi “intelligenti” da indossare al polso e in grado di funzionare sia come orologio tradizionale, sia come dispositivo smartphone possedente un proprio sistema operativo in grado di utilizzare diversi servizi grazie alle proprie applicazioni. Possiede uno

Il server riceve la richiesta e assegna la parte di stringa dell’URL dopo il “?” ad una variabile di ambiente chiamata QUERY_STRING. QUERY_STRING = “classe=2B” La stringa delle informazioni ha una lunghezza massima di 2048 caratteri e usando il metodo GET i parametri passati nell’URL sono visibili, quindi non è adatto per passare dati sensibili come le password.

Metodo POST

Con il metodo POST la stringa relativa alle informazioni viene passata nel body della richiesta quindi non sono visibili nella barra degli indirizzi. Inoltre non c’è un limite alla lunghezza dei dati. Il server riceve la richiesta e legge da standard input. Se si usa uno script CGI si legge dallo standard input un numero di caratteri pari al valore della variabile d’ambiente CONTENT_LENGTH (= variabile impostata dal server web che setta il numero di byte presenti nel body della richiesta HTTP). Se si usano script come PHP si usano gli oggetti e i metodi.

La risposta del server al client

Anche il server invierà come risposta un messaggio HTTP comprendente: ● Versione del protocollo HTTP ● Codice di stato: Un numero da tre cifre che il server invia al client per comunicare lo stato della richiesta. da 200 a 299 Successo; da 300 a 299 Ridirezione; da 400 a 499 Errore del client; da 500 a 599 Errore del server. ● Descrizione del codice di stato: Frase esplicativa del codice ● meta informazioni: Comprendono il tipo di contenuto (“Content-Type”), la data e i cookie. ● Body: si trovano le informazioni vere e proprie, come il codice HTML della pagina richiesta se la richiesta è andata a buon fine così che il browser interpreti il codice e lo rappresenti al client come pagina web.

Unità 3 - Servizi Internet Unità 4 - La sicurezza informatica Siamo in un’epoca dove l’evoluzione dei sistemi e la loro complessità rendono molto più difficile proteggersi da attacchi informatici. Attacchi di ogni tipo e soprattutto ad ogni tipo di ente aziendale o privato, con la probabilità che qualcuno entri all’interno di un sistema, conviverci come nulla fosse e prendere tutti i dati al suo interno. Spam e virus possono compromettere tutto il sistema, sia personale che organizzativo di un’azienda. Definizione di sicurezza di un sistema: il suo scopo è di mantenere un sistema funzionante e operativo in qualsiasi momento, garantendo l’accesso ai dati solo al personale autorizzato.

I protagonisti

Colui che è interessato a rubare, modificare o rendere le informazioni irraggiungibili è l’Hacker. Hacker: “Pirata informatico” o meglio “Persona che illegalmente accede alle risorse di un sistema” studiando l’intero sistema e in grado di trovare delle falle. Ci sono due tipi di Hacker: ● White hat: “Cappello bianco” o “Ethical Hacker”, coloro che si oppongono all’uso scorretto dei sistemi informatici, mettendosi dalla parte dei buoni spesso assunti in aziende per la loro difesa. ● Black Hat: “Cracker”, coloro che come unico scopo e di approfittare delle vulnerabilità di un sistema, per violarne la sicurezza, utilizzando vari metodi, come può essere l’ingegneria sociale, dove i cracker ingannano i dipendenti di una società ottenendo le credenziali d’accesso. Quando si parla di sicurezza, si tiene conto del grado di fiducia (assurance) che si da ad un sistema o ad un fornitore. Esempio: Firewall o Antivirus dove i fornitori si attengono allo standard ISO 27000. I tre pilastri della sicurezza: persone, processi e tecnologia.

Terminologie della cybersecurity

Asset : si intendono le risorse informatiche aziendali, in particolare i server, e workstation ed i vari apparati. ● Rischio : È il rischio di incorrere in perdite economico/finanziarie in seguito al verificarsi eventi accidentali o di azioni dolose inerenti il sistema informatico (hardware, software, banche dati, etc.). ● Vulnerabilità : intendiamo qualsiasi punto debole in un'applicazione software. ● Minaccia: un codice eseguibile che, una volta entrato in un sistema informatico, ha la capacità di compiere operazioni dannose per la macchia in cui si trova, per il sistema informatico di cui fa parte o per i dati in esso gestiti/contenuti.

● Exploit: identificare una tipologia di script, virus, worm, porzione di dati o binario che

sfrutta un bug o una vulnerabilità per creare comportamenti non previsti nel sistema. ● Attacco: indica una qualunque manovra impiegata da individui od organizzazioni che colpisca sistemi informatici, finalizzati al furto, alterazione ecc.. ● Contromisure: azioni che permettono di ridurre o di eliminare le vulnerabilità.

Vulnerabilità e minacce

Vulnerabilità

Vulnerabile è tutto ciò che può essere ferito, attaccato e danneggiato. Nella sicurezza tutto ciò che è vulnerabile possiede dei punti deboli (weakness), ad esempio: password troppo debole, sistema operativo non aggiornato, configurazione della rete sbagliata ecc… creano falle nella sicurezza (security hole), le quali è facile attentare all’integrità, disponibilità e riservatezza dei dati. Una fonte di minaccia può essere individuata in persone o gruppi in grado di compiere azioni mirate al fine di compromettere le risorse. Per evitare tutto ciò, è necessario conoscere le varie minacce per difendersi ed evitare situazioni potenzialmenti gravi e dannose

Tipi di minacce

Minacce a livello fisico : malfunzionamenti dei dispositivi fisici usati per l’elaborazione e per la memorizzazione dei dati, causati da eventi naturali o dolosi. ● Minacce a livello di rete : malfunzionamenti del sistema di trasmissione dati (Cavi di connessione, inserimento non autorizzato nella rete, danni ai sistemi di instradamento, sniffing ecc…) ● Minacce al software di sistema: carenze nella gestione della sicurezza in un SO ed eventuali errori che provocano l’interruzione di servizio oppure il ripristino del sistema. ● Minaccia umana: la più pericolosa, riguarda l’intervento dell’umano sul sistema. Essendo imprevedibile, può causare errori di progettazioni dei dati o tentativi di effrazione del sistema per capire informazioni e interrompere l’attività.

I malware e i keylogger

Malware: sono programmi malevoli che comprendono funzioni pericolose.

Possono autoreplicarsi diffondendosi drasticamente. I programmi autonomi vengono chiamati worm, mentre un codice che per essere eseguito risiede in altri programmi viene chiamato virus. ● Virus: un codice che si aggancia ad un software variandone le dimensioni e rimangono nella memoria centrale pronti ad infettare altri programmi. Si trasmettono tramite file infetti (esempio: allegati di e-mail) e possono provocare danni. ● Worm: sono programmi del tutto autonomi che non infettano altri programmi, usano il SO per essere mandati in esecuzione. Vengono diffusi tramite la rete. Il primo Worm è stato ideato da Robert Morris nel 1988, con lo scopo di testare la capacità di internet. Forzava le password e si fingeva un utente, introduceva nei sistemi remoti il codice per riprodursi ricominciando il ciclo. ● Trojan : sono software che hanno le sembianze di un software utili e certificati, ma hanno funzioni malevoli (cancellare, modificare, copiare e trasferire dati). Non si autoreplicano e devono essere inseriti nel computer. Si trovano in giochi, compilatori ecc… ● CryptoLocker : trojan in grado di crittografare i dati contenuti nel sistema e richiedere un pagamento per ottenere la chiave di decrittazione. ● Keylogger: sono programmi in grado di registrare quello che l'utente digita sulla tastiera con la possibilità di rubare password e dati sensibili inviati in qualche modo all'hacker spesso tramite e-mail. Sono molto leggeri e difficilmente rilevabili dall'utente se non con un antivirus. Ce ne sono di due tipi: ○ Hardware : Si collegano al cavo della tastiera intercettando tutto ciò che passa. ○ Software : possono essere installati di nascosto su un computer.

Tipi di attacco

Spyware : sono software il cui scopo è raccogliere segretamente informazioni sugli utenti attraverso internet. ● Adware : sono software che forniscono messaggi pubblicitari integrati in software gratuiti. ● Phishing : consiste nell'inviare una e-mail a un utente fingendo di essere un'organizzazione o una banca, nel tentativo di truffarlo e rubargli l'identità. ● Backdoor o Trapdoor : offre un metodo segreto per accedere ad un'applicazione, a un SO o a un servizio online. ● Spam : È costituito da mail non richieste e non autorizzate, che contengono materiale pubblicitario e pericolosi link. ● SQL injection : È una delle tecniche di attacco più usate e più semplici da realizzare. Sfrutta errori di codifica da parte del programmatore nel controllo dei dati immessi nell'applicazione Web tramite i campi input di un form e mediante uno script SQL che permette di interrogare il database e di accedere ai dati riservati. ● Man in the middle (MITM) : È un attacco basato sullo spionaggio, che sfrutta il trasferimento dei dati o le conversazioni tra due parti. L'aggressore si insinua tra i due estremi e si spaccia per uno dei due inviando false

Gli hacker ottengono la maggior parte delle informazioni di cui hanno bisogno intercettando e clonando delle credenziali utente valide. Utilizzando queste credenziali, infatti, gli attaccanti riescono ad accedere a una media di 40 sistemi aziendali diversi, compromettendo in vario modo la sicurezza aziendale.

4. Installazione di malware Per poter amministrare il sistema e svolgere attività come l’installazione di backdoor, il furto di password, la ricezione di email e l’ascolto di processi in esecuzione, gli attaccanti installano sulla rete che hanno preso di mira varie utility malevole. 5. Creazione di una backdoor Gli attaccanti lavorano per estrarre dalla rete le credenziali di amministratore del dominio. Questo gli consentirà di muoversi in modo trasversale all’interno della rete e di installare backdoor e malware, utilizzando metodi diversi: process injection, modifiche al registro a livello di sistema o servizi schedulati. 6. Esfiltrazione dei dati Una volta creata un’infrastruttura malevola di comando e controllo gli hacker iniziano a intercettare le mail, gli allegati e i file dai server. Di solito veicolano i dati rubati verso server intermedi: li cifrano, li comprimono e quindi li indirizzano verso la destinazione finale. 7. Persistenza Anche se alcuni degli attacchi vengono scoperti o inattivati i cybercriminali cercano in ogni modo di mantenere la loro presenza nelle reti che hanno preso di mira.

Istituti di sicurezza

Molte aziende consultano organizzazioni come SANS Institute e CERT , che sviluppano metodi e tecnologie avanzate per contrastare su larga scala le più sofisticate minacce informatiche, creando vari centri nazionali per ogni territorio.

Unità 6 - Sicurezza in rete

La crittografia

La crittografia è la disciplina che studia le tecniche matematiche per rendere sicuri i dati in termini di confidenzialità o segretezza (capacità di non far intercettare ed eventualmente comprendere le informazioni ad utenti non autorizzati), integrità (garanzia che il documento non venga modificato da altri), autenticazione (assicurazione dell'identità degli interlocutori) e non ripudiabilità (il mittente non può rinnegare il documento), per mezzo di strumenti come cifrari e hash. La crittografia viene usata da sempre, dai Romani (la classica cifratura a trasposizione che consiste nel cambiare una lettera con un’altra), alla WWII (con la quasi indecifrabile macchina tedesca Enigma). Tra gli algoritmi a trasposizione troviamo due comunissimi cifrari: ● Sostituzione monoalfabetica : consiste nel sostituire una lettera dell’alfabeto con una che si trova più avanti di n posti, dove n è la chiave di cifratura. È facilmente decifrabile controllando la frequenza di apparizione delle lettere e con una semplice deduzione si può risalire alle lettere più ricorrenti nella lingua di origine, poi ha solo 25 possibili chiavi (le lettere dell’alfabeto), le quali vanno preventivamente comunicate al destinatario (operazione molto poco sicura) ● Sostituzione polialfabetica (algoritmo poco importante, basta leggerlo una volta a pag. 134) Le tecniche di crittografia moderne si suddividono in: ● Algoritmo a chiave segreta (chiave simmetrica) ● Algoritmo a chiave pubblica (chiave asimmetrica)

Crittografia simmetrica a chiave segreta

Nelle crittografie a chiave simmetrica la codifica e la decodifica vengono effettuate con la stessa chiave privata e segreta, conosciuta da entrambi gli interlocutori. La criticità sta nella comunicazione della chiave, operazione che in internet è facilmente intercettabile.

Crittografia asimmetrica a chiave pubblica

In questo algoritmo ciascun interlocutore ha una coppia di chiavi (legate indissolubilmente tra di loro, anche se è difficilissimo ricavarne una dall’altra), una pubblica ed una privata. La prima può essere comunicata a chiunque la richieda, il quale poi la utilizzerà per criptare il messaggio, mentre la seconda va gelosamente custodita perchè è l’unica chiave capace di decifrare il messaggio cifrato con la chiave pubblica.

Unità 7 - sicurezza perimetrale e applicazioni per la sicurezza

Firewall

Il firewall, è un dispositivo di sicurezza hardware o software, che separa il traffico tra 2 reti, di solito è posto tra LAN e WAN per controllare il traffico in entrata e uscita su internet. di solito è posto dopo il router, per controllare il traffico in entrata. Di solito il firewall opera in uno di 2 modalità: ● permette tutto il traffico a meno che non ce ne sia uno proibito (blacklist) ● vieta tutto il traffico a meno che non ce ne sia uno consentito (whitelist) Inoltre, possiamo distinguere i firewall in 2 grandi categorie: ● firewall che filtrano pacchetti (packet filtering) ● gateway a livello applicazione, presenti nei proxy server (gateway application level)

Packet filter firewall

Il filtro avviene a livello di: ● Rete : il controllo viene fatto sugli indirizzi del mittente e del destinatario, dall'intestazione del protocollo TCP, in modo da far passare o bloccare pacchetti provenienti da un determinato ip. ● Trasporto : il controllo viene fatto sulle porte nel protocollo TCP/UDP in modo da impedire la connessione a un'applicazione che gira su una certa porta. È possibile inoltre, bloccare dei socket con la tecnica ( stateful packet inspection ).

Application gateway firewall: il proxy server

Per filtrare in modo efficiente, bisogna bloccare anche il livello di applicazione, questo è possibile mediante un server specifico chiamato application gateway o proxy server, capace di autenticare e controllare i dati in ingresso e uscita: ● il client si collega al proxy e gli invia le richieste ● il proxy si collega al server remoto e gli inoltra le richieste del client ● il server risponde al proxy ● il proxy passa la risposta al client Il proxy inoltre monitora il traffico, mantenendo traccia dei log. Un’altra funzione che si trova di solito nei proxy, è il caching, questa funzione permette di memorizzare le richieste degli utenti la, così nel caso in cui vengano richiesti e siano presenti nella sua cache, vengono visualizzati subito, risparmiando tempo.

DMZ (demilitarized zone)

La zona demilitarizzata, è una porta che viene utilizzata per rendere servizi accessibili dall’ esterno, senza compromettere gli altri interni. In caso di attacco, saranno compromessi solo i servizi in esecuzione su quella porta, e non

verranno intaccati gli altri. Quando arriva una richiesta, rivolta a un servizio pubblico, il router rimanda quindi il traffico alla porta DMZ.

Port forwarding

il port forwarding è una funzione del router che consente di spostare il traffico in entrata alla porta pubblica del router, a una porta interna alla LAN.

La sicurezza nelle reti wifi

● Filtraggio degli indirizzi MAC: negli access point vi è una funzione di black list che non consente a certi dispositivi, di connettersi. o si può fare una white list per consentire solo a certi dispositivi di connettersi. ● Autenticazione: se la rete è aperta, l’accesso è comodo ma molto vulnerabile. per l'autenticazione, in genere si usa una pre-shared key ( psk ), condivisa dall’access point al terminale. quando il cliente vuole connettersi,l'AP gli invia una stringa di alcuni byte; il client crittografa con una chiave comune e la invia all’AP. L’AP riceve la stringa crittografata e la decifra con la sua chiave:se la stringa cifrata corrisponde alla stringa originale inviata al cliente,quest'ultimo è autorizzato a connettersi. Una rete cifrata, può avere diversi tipi di sicurezza che sono: ● WEP: era un vecchio sistema di sicurezza, di cui è stato sgamato l'algoritmo per la cifratura delle chiavi e di conseguenza abbandonato. ● WPA: il WPA, poi aggiornato a WPA2 è stato l'algoritmo sostitutivo al WEP, si basava sul suo antenato,non usava chiavi predefiniti ma temporanee fino a 256 bit che genera ogni volta che il client si vuole connettere. Ci sono 2 modalità di utilizzo a seconda del livello di sicurezza, che si vuole ottenere: ● modo personal , utilizzato dai comuni mortali in casa o piccoli uffici, utilizza una password condivisa che viene inserita manualmente sia nel AP che nel client. ● modo enterprise, si usa per reti più grandi e combina una la cifratura WPA con l'autenticazione dello standard 802.1x EAP Per applicare questo protocollo, servono 3 componenti: il software per l’applicazione che gira sul client (supplicant) il server (authentication server),che contiene il database delle autorizzazioni. l’access point (authenticator), che si interpone tra gli altri due per lo scambio di messaggi. L’autenticazione avviene in tre fasi: ● il supplicant, si mette in contatto con il server per ottenere tramite protocollo EAP la chiave condivisa (PMK) ● il server di autenticazione invia il PMK all’AP ● il client e AP eseguono un handshake a 4 vie , per generare una chiave di sessione,a 128bit , chiamata PTK. L’authenticator invia la chiave di sessione PTK,che permette a client e AP di scambiarsi i dati sul canale sicuro utilizzando EAS un algoritmo di cifratura. concluso questo processo, il server manda un messaggio di (PTK ack) e apre le porte al supplicant.