Livello 7: Applicazione
Protocolli più importanti HTTP = Hyper Text Transfer Protocol HTTPS = Hyper Text Transfer Protocol over Secure Socket Layer DNS = Domain Name System DHCP = Dynamic Host Configuration Protocol
DHCP Dynamic Host Configuration Protocol- è un protocollo client/ server trasportato da UDP su reti LAN. È utilizzato per assegnare gli indirizzi IP e altri valori di impostazione agli host di una rete TCP/IP, evitando di doverli configurare manualmente per ogni singolo host della rete In una LAN i pacchetti DHCP sono inviati in broadcast; il client spedisce le richieste su porta UDP 67 e aspetta su porta UDP 68. Il compito di assegnare manualmente gli indirizzi IP è abbastanza corposo per gli amministratori di rete L’amministratore configura la rete per il DHCP che assegna gli indirizzi IP dinamici
DHCP e sistema operativo Un client DHCP agisce durante la fase di bootstrap del proprio sistema operativo e richiede una configurazione in broadcast visto che non ha ancora un indirizzo IP. Esso tiene momentaneamente un indirizzo Il server per rispondere si deve trovare nello stesso dominio di collisione
DHCP
Il protocollo DHCP è costruito sul modello client/server; il server è designato come amministratore di rete In base a criteri designati dal server un client generico ottiene un indirizzo IP coerente e valido in un intervallo di tempo denominato lease Per host che necessitano di indirizzi IP permanenti l’indirizzo IP viene assegnato tramite il riconoscimento dell’indirizzo MAC
DHCP Il protocollo utilizza un pacchetto si 4 messaggi in broadcast: – DHCPDISCOVER: il client cerca il server e chiede la configurazione presentandosi con indirizzo – DHCPOFFER: se esiste un server DHCP su quella rete, offre una configurazione al client e indica il proprio indirizzo IP valido per quella rete – DHCPREQUEST: il client accetta la configurazione di un server – DHCPACK: il server conferma i dati e chiude la sessione
Parametri di configurazione di un DHCP I parametri di configurazione di un DHCP sono: – IP address – Subnet mask – Default gateway – DNS Se dal cmd si digita ipconfig/all si possono conoscere tutti i parametri assegnati dal DHCP e le caratteristiche della rete LAN Il DHCP è studiato per reti trust, sicure e non prevede autenticazioni. Ciò comporta che non è detto che tutte le richieste fatte al DHCP siano sicure e legittime come non è detto che siano sicure e legittime tutte le risposte date agli host. Questa situazione può portare all’esaurimento degli indirizzi IP disponibili generando una DHCP address starvation. Un programma speciale potrebbe causare questa cattiva situazione inviando configurazioni scorrette. Questo programma è detto DHCP rouge server.
DHCP
DNS Questo servizio attribuisce un nome, un indirizzo simbolico ad un indirizzo IP oppure offre la conversione inversa È una delle funzioni più visibili della rete internet La rete TCP/IP ha bisogno di indirizzi IP per far funzionare i protocolli. Il protocollo DNS è fondamentale sia per gli indirizzi privati che pubblici; è di tipo client/server e viene trasportato sulla porta 53 Il client individua l’indirizzo simbolico e fa richiesta di risoluzione DNS al server. Ottenuta la risoluzione, si prosegue con gli indirizzi IP normalmente
DNS
Il resolver è il protocollo sempre attivo da parte del client Il name server è il protocollo presente sul server e che ha accesso ad un database locale dei nomi Il resolver invia una richiesta su UDP verso la porta 53 da una porta locale casuale Il name server prima di rispondere consulta un database e risponde con l’indirizzo ip corrispondente Se la risposta è negativa, il name server locale diventa resolver verso un name server più profondo. Il processo si ripete fino a che non si raggiunge la richiesta fatta La parte più significativa di un nome di dominio sta a destra Quando un nome di dominio indica un ben preciso nodo nell’albero, si chiama FQDN Fully Qualified Domain Name
DNS
L’organizzazione dei nomi è affidata a ICANN/IANA che ha predisposto uno schema dei nomi gerarchico ad albero invertito alla cui radice sta il carattere “.nome dominio di primo livello” Il dominio di primo livello può indicare o la nazione (.It,.fr,..) oppure generico(.edu,.com…) In Italia l’ente organizzatore dei nomi DNS di secondo livello è il CNR
DNS
Le utility DNS sono: – Nslookup – Whois Si digitano dal cmd: Nslookup accetta come parametro il domain name e restituisce l’indirizzo IP. Whois accetta comunque il domain name e restituisce i parametri del dominio Interessante è anche ipconfig/display dns I protocolli DNS e DHCP non lavorano indipendentemente l’uno dall’altro nelle reti privati. Se un host si inserisce in una rete privata, recupera il suo indirizzo IP tramite DHCP ed associa il suo host nome deciso in maniera locale. Il protocollo DNS non ha bisogno di essere autenticato e i pacchetti sono tipo UDP. Nonostante ciò, può esistere un tipico attacco al DNS tramite falsi nomi che indirizzano su siti differenti; al’indirizzo URL viene assegnato un altro indirizzo IP e si devia la navigazione in rete verso siti poco sicuri.
HTTP È il protocollo più significativo; esso si serve del linguaggio HTML e le specifiche sono gestite dal World Wide Web Consortium W3C Il protocollo è di tipo TCP su porta 80 Le applicazioni client sono i web browser (internet explorer, mozilla….) Le applicazioni server sono i web server come Apache HTTPServer e prevedono risposte ai clienti prelevando le risorse richieste
HTTP I pacchetti HTTP sono di due tipi: HTTP request (inviati dal client e ricevuti dal server) e HTTP response (inviati dal server e ricevuti dal client) Una sessione HTTP può avvenire in questo modo: – Il server HTTP si pone in ascolto passivo, listening – Il client fa una richiesta di risorsa tramite una URL – HTTP server da una risposta, l’esito – HTTP server invia i dati Il client riceve le risposte tramite HTML interpretato dai browser I metodi HTTP sono: GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH
HTTP La richiesta GET è utilizzata dai browser per ottenere le pagine web e i contenuti. I parametri passati tramite il metodo GET sono visualizzati nella barra indirizzi URL dopo il “?” e possono essere passati o tramite la barra indirizzi URL o in un form; la lunghezza delle informazioni passate tramite GET è limitata a pochi byte. Il metodo POST è utilizzato affinchè i client possa inviare informazioni al server tramite body; le informazioni non sono visibili e non hanno limiti di dimensione. Il protocollo HTTP è il più usato del web e, i dati trasportati sono anche personali e quindi sensibili, come transazioni finanziarie La violazione dei dati è detta man in the middle Con questa tecnica, terse persone possono leggere o modificare dati privati o modificare addirittura gli indirizzi IP Per far fronte a ciò è stato creato il protocollo HTTPS, HTTP security; garantisce l’autenticità ai capi della connessione che avviene sulla porta 443
Codici Il server http invia al client una serie di codici che hanno un significato ben preciso: CodiciSignificato daa successo ridirezione Errore client Errore server
Internet delle cose Per internet delle cose si intende che tutto è collegato, tutto è connesso I sensori e i dispositivi diventano elementi connessi con l’utente
Internet delle cose