SlideShare une entreprise Scribd logo
1  sur  64
Le applicazioni di base web,
posta, e mobile app
Prof. Giuseppe Sportelli
Revisione 1.2018
Contenuti
• I protocolli dello strato applicativo
• Il protocollo HTTP
• I siti web, e il WWW tecniche di implementazione
• Principali tecniche di realizzazione dei siti web
• FTP, introduzione, e nuove opportunità con cloud storage
• La posta elettronica struttura di un email, invio e ricezione
posta
• Problematiche di sicurezza per i protocolli HTTP, FTP, POP3,
IMAP, SMTP
• Architettura delle piattaforme mobili sia hardware che
software
L’interazione Client-Server
• I computer connessi in rete (client)
usufruiscono di servizi offerti da altri
computer (server)
• Le applicazioni base per internet
utilizzano il protocollo tcp
(trasmissione bidirezionale) controllo
della trasmissione
• Le applicazioni più importanti
come web, posta, ftp usano questo
metodo
Le applicazioni come il web, la posta, ecc sono mappate negli ultimi livelli della
pila OSI, e nel quarto livello della pila TCP/IP
Servizi di rete del livello
applicativo
World Wide Web
• World Wide Web: è un servizio erogato tramite Internet
composto da elaboratori connessi ad internet e dotati di
applicativi di tipo client/server.
– Consente di pubblicare contenuti di varia tipologia
• I contenuti possono essere statici e dinamici
– Consente di “navigare” in modo ipertestuale questi contenuti
– Interagire con i contenuti per ottenere i risultati
• Le due componenti fondamentali sono:
– Terminali Client dotato di un programma di navigazione browser ( Opera,
IE, Firefox, Mozilla, Safari ecc. )
– Elaboratori Server che mettono a disposizione varie tipologie di
informazioni
• Il colloquio viene effettuato utilizando il protocollo HTTP
Hyper Text Transfer Protocol
WWW: un’applicazione client server
• Possono essere trasferite tutte le informazioni codificabili in
digitale (testi, immagini, audio, video ecc.) attraverso il
protocollo HTTP secondo delle specifiche standard date dal RFC
2616
• Sono presenti riferimenti univoci (URL Universal Resource
Location) alle informazioni presenti sui server
• La presenza di collegamenti ipertestuali (hyperlinks) permette
di “navigare” sulla rete semplicemente utilizzando tali
collegamenti
• La definizione di protocolli e linguaggi (HTTP, HTTPS, HTML,
XML) tali da permettere la descrizione e lo scambio di
informazioni
WWW: un’applicazione client server
• Il server è l’elaboratore che ospita il servizio di accesso ai
contenuti ipertestuali (web server)
• Le informazioni contenute nel web server vengono organizzate
in varie cartelle (directories) a partire da una cartella principale
(root)
• Le risorse messe a disposizione sono pagine ipertestuali scritte
in linguaggio HTML, o utilizzando dei linguaggi di
programmazione lato server (PHP, ASP, JSP)
• All’interno delle pagine possono essere definiti link
ipertestuali ad altre pagine dello stesso server o di altri nel
primo caso si parla di link relativi, nel secondo di link assoluti
Ruolo del server Web
• Il browser è un programma applicativo che consente di
collegarsi al server per richiedere le informazioni contenute
(URL) e visualizzarle
• Facilitano l’utente mettendo a disposizione una serie di
funzioni:
– Casella di inserimento URL (con possibile memorizzazione)
– Pulsanti di navigazione: Avanti, Indietro, Refresh
• Ha la capacità di visualizzare (rendering) direttamente una
grande quantità di formati oltre l’HTML
• Cio che non è gestito dal browser può essere abilitato con
appositi componenti:
– plug-in: utilizzato direttamente dal browser (DLL)
– helper: programma esterno lanciato dal browser
Ruolo del client: il browser
• Protocollo adatto a gestire la trasmissione dei tanti tipi di dati
ipertestuali
• Protocollo che non mantiene informazioni di stato (stateless)
• Prevede un semplice scambio dati del tipo:
– Richiesta contenete la URL (comando GET)
– Risposta contenete I dati (pagina HTML)
• Esistono varie versioni di HTTP: 0.9, 1.0, 1.1
• La risposta del server contiene:
– Alcune righe di informazione (header) seguite da una riga vuota. In
questa sezione possono essere inseriti i cookies
– La pagina richiesta (dati)
Ruolo del Protocollo di Trasmissione Ipertestuale (HTTP)
Concetto di URL (Universal Resource Locator)
• Serve per assegnare un nome univoco alle varie informazioni presenti in
rete
• E’ composto di vari elementi
– Protocollo (default http) https, ftp, ecc. Seguito da “:”
– Il nome del server completo di dominio. Può anche essere indicato con un indirizzo IP
– Opzionalmente può essere indicato il numero di porta preceduto da “:”. Se omesso la porta
utilizzata è quella standard 80
– Opzionalmente segue il percorso per raggiungere il file che contiene la pagina richiesta
– Infine, opzionalmente, il nome della “pagina”. Se omesso viene cercato solitamente il file
index.html, oppure default.htm (o altrin configurati sul server)
• Nella composizione dell’URL sono permesse solo le lettere ed alcuni
simboli (“-”, “_”). Gli altri caratteri vengono rappresentati con la stringa %aa
dove aa è la codifica esadecimale del carattere
• La pagina è un file di tipo testuale strutturato secondo la
sintassi del linguaggio HTML
• Utilizza un sistema di marcatori (tags) scritti fra i simboli “<“ e
“>” per descrivere la pagina ed i vari contenuti
– <html> … </html> delimitano inizio e fine pagina
– <body> … </body> delimitano il corpo del documento
– <a href=“url”>Testo </a> definisce un link ipertestuale
– <img src =“url”> inserisce un’immagine nella pagina
– <p> …… </p> delimita un paragrafo nella pagina
• Con il solo HTML si possono relaizzare pagine di tipo statico
(sono trasmesse al client così come sono)
• Per superare questo limite è nato il meccanismo CGI (Common
Gateway Interface)
Principali caratteristiche del Linguaggio di Marcatura Ipertestuale
(HTML)
Caratteristiche del web server
• Rispondere alle richieste dei vari client
• Richiamare gli interpreti dei vari linguaggi web
supportati php, asp, jsp, ecc
• Gestire le funzionalità a livello di cartelle e
utenti (chi può fare e che cosa)
• Tenere report degli accessi e gestire gli errori
Tipi di web server
Applicazioni Web Server
• Apache GNU/GPL
– Ambiente Linux/Windows/Mac
– Supporta php, python, perl, jsp, asp con
Mono
– Integrazione con i dbms server più diffusi
• IIS
– Ambiente Windows
– Supporta php, asp, jsp con integrazioni
– Supporta ActiveX Data Object
– Interazione con i web server più diffusi
• Sun java System Web Server
– Supporta Java
• Netcraft
Altre peculiarità
• Apache dal 1996 open source
con ottime prestazioni e
efficienti
• IIS commerciale di Microsoft
utilizzato molto per le Intranet
disponibile nei sistemi Server
Windows
• Sun Java JSWS deriva da
NCSA, le licenze dai $ 1500 ai $
5000
Siti Web
• Insieme di files e cartelle, applicazioni server
side per la distribuzione di:
–Contenuti general purpose
–Sviluppo software per soluzioni web-oriented
• Web App, Social Network, ecc
–Intranet e Extranet Aziendali
–Sistemi di transazioni economiche 24 ore su 24 ore
e-commerce
–Sistemi di formazione a distanza FAD
Come sviluppare siti web
• Approccio esperto
–Linguaggio HTML, CSS per pagine statiche
–Linguaggi Server Side PHP, ASP, JSP, Perl
–Linguaggi evoluti lato client AJAX, HTML5
• Approccio semplificato
–Uso di CMS Content Managment System
• Joomla, Wordpress, Drupal
Esempio di pagina HTML
<html>
<head>
<title>Titolo della pagina</title>
</head>
<body>
<p>Questa è una pagina HTML con un link ad un altra pagina</p>
<a href=”www.google.com»>Motore di ricerca Google</a>
</body>
</html>
Principali caratteristiche del Linguaggio di Marcatura
Ipertestuale (HTML)
Esempio di pagina HTML
<html>
<head>
<title>Titolo della pagina</title>
</head>
<body>
<p>Questa è una pagina HTML con un link ad un altra pagina</p>
<a href=”www.google.com”>Motore di ricerca Google</a>
</body>
</html>
Principali caratteristiche del Linguaggio di Marcatura
Ipertestuale (HTML)
• Necessità di avere pagine con contenuto dinamico.
• Aggancio di una logica “applicativa” alle pagine html
• La URL non rappresenta una pagina HTML ma ad un
programma eseguibile
• Il web server, verificato che la pagina richiesta è un
programma:
– Manda in esecuzione il programma richiesto sul server
– Trasmette al browser l’uscita prodotta dal programma stesso
Concetti di Common Gateway Interface (CGI)
• Una applet è un piccolo programma applicativo
• Viene scaricato dal web server verso il browser come
elemento della pagina
• Viene eseguito sul client con la supervisione del browser
• Deve essere scritti in un linguaggio riconosciuto dal browser
(java è riconosciuto da tutti i browser che includono una JVM
java virtual machine)
• Sono indipendenti dall’ambiente operativo del client
• Nel caso di java vengono eseguiti da un’interprete chiamato
JVM spesso incluso nel browser stesso (o disponibile come plug-
in)
• Possono essere notevolmente complessi
• Per politiche di sicurezza hanno alcune limitazioni
Concetto di applet
Ajax
• Asyncronous javascript and XML
• Lo sviluppo di applicazioni HTML con AJAX si
basa su uno scambio di dati in background fra
web browser e server, che consente
l'aggiornamento dinamico di una pagina web
senza esplicito ricaricamento da parte
dell'utente
HTML 5
• evoluzione di HTML4
• semplifica la strutturazione delle pagine
• Semplifica l’incapsulamento di contenuti
multimediali
• è supportato dai nuovi dispositivi mobili,
tablet, smartphone
Esempio di una pagina HTML5
<body>
<header>...</header>
<nav>...</nav>
<article>
<section>
....
</section>
</article>
<aside>...</aside>
<footer>...</footer>
</body>
Viene definita una struttura della pagina
secondo le parti di contenuto richieste.
Ad esempio il tag <nav> cura la barra di
navigazione. Il tag <footer> il pié di
pagina.
Linguaggi Server Side
• Linguaggio PHP supportato da tutte le
piattaforme hardware software basato su pre
processore HTML (Apache+mod_php)
• Linguaggio ASP Active Server Pages tipico delle
piattaforme Microsoft (IIS Server)
• Linguaggio JSP Java Server Pages pagine in Java
multipiattaforma (Apache+Tomcat)
Servizio FTP
Protocollo di trasferimento Files
Caratteristiche di FTP
FTP
• Il client si collega al server
fornendo un account anonimo
(server pubblico) o autenticato
(server web, server privato)
• Il server autentica il client
che può procedere al
trasferimento in entrambe le
direzioni
• Utilizza per la comunicazione
protocollare le porte tcp 20/21
Connessione FTP
Tipologie di FTP
• FTP attivo il client stabilisce una prima connessione
con il server sulla porta TCP 21, è attivato un canale
suolo per i comandi, e uno per la comunicazione dei
dati
• FTP passivo (utile quando siamo dietro un firewall)
anche in questo caso il server riceve una richiesta sul
canale 21 TCP, poi apre un secondo canale su una porta
non privilegiata > 1024. La comunicazione dati avviene
sulla seconda porta aperta dal server
FTP a cosa serve
• Pubblicare i documenti sul sito web
• Trasferire files da host remoti
Svantaggi
1.E’ insicuro (i dati viaggiano in chiaro)
2.E’ complesso per utenti non esperti
3.Dipende molto dalla configurazione della rete
client-server (firewall, proxy)
Nuovi metodi di storage remoti
• La grande disponibilità di spazio web gratuito
ha consentito negli ultimi anni di introdurre il
cloud storage cartelle remote dove depositare i
files prelevabili da qualunque luogo mediante un
software o via web
• Dropbox e Google Drive i più diffusi
Usare Google Drive e Dropbox
• Installo un software sul computer, creo i files
sul computer
• Salvando nella cartella condivisa, il files viene
spedito sul server di storage (sincronizzazione)
• Occorre registrarsi (alcuni gigabyte sono
gratuiti, altri a pagamento)
La posta elettronica
• Il server di e-mail è il sistema che si fa carico di distribuire la
posta di un’organizzazione. In particolare:
–riceve la posta inviata dagli altri server agli utenti da
lui gestiti
–mantiene i messaggi di posta fintantoché i
programmi client non provvedono a scaricarli
(POP3)
–nel caso di protocollo IMAP deve mantenere i
messaggi di posta limitandosi a leggerli ed
eventualmente organizzarli in cartelle
–riceve tramite protocollo SMTP i messaggi inviati
dal/i client e li inoltra, con lo stesso protocollo, ai
server di destinazione
Ruolo di un server di e-mail
• Applicazione client che consente di:
–trasmettere messaggi con protocollo SMTP
–ricevere messaggi con protocollo POP3 o IMAP
–organizzare l’archivio della posta mediante una
gerarchia di cartelle
–gestire gli allegati permettendo il salvataggio e/o
l’apertura
Ruolo di un client di e-mail
• Consente di interfacciare la posta elettronica con sistemi
differenti
• Tramite applicativi web, detti webmail, consente, ad esempio
di interfacciare server di posta direttamente dal browser come
se fosse un client di e-mail
• Il server webmail si interfaccia tramite programmi CGI al
server di posta elettronica
• Possono essere utilizzati per inoltrare SMS di avviso dell’arrivo
di posta elettronica
Ruolo di un gateway di e-mail
• E’ uno dei più vecchi protocolli utilizzati per l’invio di posta
elettronica
• Dovrebbe essere arricchito con funzioni di controllo anti SPAM
Il protocollo SMTP (Simple Mail Transfer Protocol)
Record MX
• Un server per essere identificato come mail
server per spedire la posta mediante il
protocollo SMTP ha un record MX nella zona del
suo dominio sul server DNS
• Se non possiede un record MX altri server
SMTP non accetteranno la posta proveniente da
quel server
• E’ un protocollo molto semplice che consente di scaricare sul
proprio computer i dati contenuti nel server di posta
• Il server alla ricezione di un messaggio per un utente, lo
deposita in un file dedicato all’utente (mailbox)
• Il client utilizzando vari messaggi (tramite TCP/IP utilizzando la
porta 110) può richiedere al server:
– Di essere autenticato, tramite i comandi USER nomeutente e PASS
password
– L’elenco dei messaggi, tramite il comando LIST
– Di leggere il singolo messaggio tramite comando RETR
numeromessaggio
– Di cancellare il messaggio sul server tramite il comando DELE
numeromessaggio
Il protocollo POP3 (Post Office Protocol versione 3)
• Protocollo molto potente e complesso per la gestione della
posta elettronica
• Con questo protocollo è possibile lasciare la posta sul server e
gestirla con un buon grado di flessibilità
• E’ particolarmente utile per utenti che operano da differenti
postazioni e non hanno problemi di spazio sul server
• IMAP utilizza la porta 143:
– l’utente viene identificato con un unico comando impostando un
identificativo nnn di sessione valido fino alla disconnessione
– identifica la casella delle posta tramite comando snnn select inbox
– legge i messaggi tramite comandi snnn fetch
– chiude la sessione con il comando snnn logout
Il protocollo IMAP (Internet Message Access Protocol)
Struttura di un email
• Un messaggio di posta elettronica contiene
–Campo From mittente del messaggio
–Campo A destinatari del messaggio
–Campo CC destinatari per conoscenza
–Campo CCn o BCC destinatari in copia nascosta
–Campo Subject oggetto del messaggio
–Campo body corpo del messaggio
–Campo Attachment allegati (secondo lo standard
MIME)
Struttura di un email
• Gli allegati cono codificati secondo lo standard MIME
Multipurposal Internet Mail Extensions
• Alla fine delle informazioni testuali del messaggio di
posta viene introdotto un header che identifica il tipo di
allegato (con codifica ASCII a 7 bit)
• I dati sono codificati in ASCII, alla fine dell’allegato è
inserito un delimitatore dell’allegato
• Il client che riceve il messaggio effettua la decodifica e
ricostruisce gli allegati
Problematiche di sicurezza SMTP
• I messaggi viaggiano in chiaro
• se accetta l’invio e inoltro di messaggi, anche da indirizzi di
posta non del suo dominio può diventare fonte di SPAM
• occorre attivare il Relay (accettazione di spedire posta solo per
specifici domini e IP)
• occorre richiedere autenticazione su SMTP (che comunque
agisce sulla porta 25 TCP)
• sul server mail conviene avere un antivirus, e un software di
graylisting che classifichi determinate email in base a dei criteri
buoni e cattivi
Problematiche di sicurezza
• Il protocollo HTTP è insicuro
• Il protocollo FTP è insicuro
• Il protocollo SMTP, POP3, IMAP sono insicuro
• Scopo della crittografia è di aumentare la confidenzialità
ovvero rendere accessibili le informazioni solo al destinatario
voluto
– Crittografia simmetrica: algoritmo che utilizza una chiave unica SEGRETA
per cifrare e decifrare il testo. La sicurezza è riposta completamente
nella bontà della chiave (lunghezza)
– Crittografia asimmetrica: algoritmo che utilizza due chiavi differenti per
cifrare e decifrare il testo, facilita enormemente il compito di
distribuzione delle chiavi
– Algoritmi ibridi: utilizzano entrambe le tipologie di chiave
Scopo della Crittografia
• Negli algoritmi a chiave segreta le operazioni di codifica e di
decodifica sono svolte utilizzando una stessa chiave. Sono anche
detti algoritmi simmetrici e la segretezza è legata alla segretezza
(e complessità) della chiave, non dell’algoritmo
• Può essere resa sicura utilizzando chiavi monouso generate in
modo casuale
• Negli algoritmi a chiave pubblica non esistono problemi nella
gestione della chiave segreta in quanto non deve essere
distribuita ma utilizzata solo da chi l’ha generata (algoritmo RSA
dalle iniziali degli ideatori)
Differenze fra algoritmi a chiave segreta e a chiave pubblica
• La prima chiave, segreta, non deve essere diffusa ma rimane
di proprietà della persona che le definisce
• La seconda chiave DEVE essere resa nota pubblicamente
• Utilizzando un algoritmo non reversibile ciò che viene cifrato
utilizzando una delle due chiavi può essere decifrato solo con
l’altra
• La generazione e l’assegnazione delle chiavi pubbliche viene
effettuato da una CA (Certification Authority)
• Questa crittografia può essere anche usata per avere la
certezza dell’autore del messaggio
• L’insieme degli standard e delle tecnologie utilizzate vanno
sotto il nome di PKI (Public Key Infrastructure)
Differenze fra algoritmi a chiave segreta e a chiave pubblica
• Per inviare pacchetti su reti non sicure (internet) si può
utilizzare la crittografia dei dati. Normalmente viene cifrato solo
il contenuto informativo
• Spesso vengono utilizzati algoritmi a chiave segreta per la loro
velocità
• Protocollo HTTPS: versione sicura del protocollo HTTP, prevede
la crittografia dei dati mediante l’uso di algoritmi a chiave
pubblica, utilizza la porta TCP 443
Utilizzo della crittografia per la protezione delle reti
Protocollo SFTP
• viene creato un tunnel SSH fra client e server
• Ssh secure shell è un’evoluzione sicura di telnet
che implementa SSL
• Sul canale criptato avviene la comunicazione
FTP
• L’autenticazione è a chiave pubblica
asimmetrica
Rendere sicura la posta elettronica
• Tutti i protocolli possono essere codificati via SSL Secure Socket
Layer, lo stesso standard utilizzato nel protocollo HTTPS
• Per la posta in entrata l’evoluzione sicura è rappresentata da
POP3S, e IMAPS
• Le porte TCP sono la 995, la 993
• È implementato da Google Mail
• Per la posta in uscita sono disponibili SMTPS sulla porta 465, o
TLS Transport Layer Security RFC 2246
– TLS usa codifica simmetrica per garantire la confidenzialità dei messaggi
– Garantisce l’integrità del messaggio usando un’impronta firmata per
l’autenticità del messaggio
– Le chiavi sono generate ad ogni messaggio
Mobile Computing
• Smartphone – Questo dispositivo consente di fare telefonate,
ma possiede funzionalità di un PDA o di un computer.
• PDA (Personal Digital Assistant) - Questo dispositivo è un
computer palmare (palmtop computer), con capacità di mobile
phone, web browser, media player portatile.
• GPS (Global Positioning System) – Questo dispositivo consente
di conoscere la propria posizione nel mondo con una precisione
di 10m, inclusa l’altitudine e la direzione tenuta.
I dispositivi per le comunicazione in mobilità
• Mass Storage – CD, DVD, MP3, HD, magneto-optical disk,
memory stick
• Scanners – Dispositivo ottico di input.
• Video camera – Dispositivo di input per l’acquisizione video.
• Webcam – Video camera miniaturizzata.
I dispositivi di I/O multimediali
• GPRS (General Packet Radio System)
– Sistema di comunicazione digitale compatibile con GSM di cui
rappresenta l’evoluzione (per questo è spesso detto 2.5G intermedio fra
due generazioni)
– Sfrutta tutta l’architettura GSM senza grosse modifiche
– Consente la trasmissione di pacchetti dati e incrementa la velocità
sfruttando gli slot temporali lasciati liberi dalle comunicazioni vocali
– La velocità di base è di 9600 bit/s, ma se vi sono slot disponibili può
arrivare a circa 50 Kbit/sec
Gli standard principali “wireless”
• UMTS (Universal Mobile Telephone Service) detto 3G ovvero
di terza generazione
– La struttura logica non si discosta molto da quella delle reti di
generazione precedente
– Utilizza frequenze fra 1885-2025 e 2110-2200 MHz
– Le potenze utilizzate sono di 20 W massimi per le stazioni BTS e 250 mW
massimi per le stazioni mobili
– Utilizza la tecnica WCDMA anche nota come spread spectrum con
modulazione di fase a 8 canali (PSK
– La velocità offerta è di 144/384 Kbit/s e può arrivare a 2 Mbit/s
– Consente la fruizione di contenuti multimediali sia in modalità differita
che in streaming utilizzando
– I terminali dispongono di potenza elaborativa paragonabile ad un PC di
qualche anno fa che consente la possibilità di decodificare audio in MP3
e video MPEG4
Gli standard principali “wireless”
• GPRS: permette la stessa mobilità di un cellulare
• WAP: usato per la navigazione in modalità simili ad internet
tramite cellulare
• Mobile IP: usato per la connessione di dispositivi IP mobili
• Bluetooth: non utilizzato per la mobilità ma per collegare
dispositivi vicini fra loro
Le funzioni dei principali protocolli per stazioni mobili
Applicazione per il Mobile
• Dipende dal tipo di terminale
– Terminale senza codice applicativo viene utilizzato sul
dispositivo mobile solo il Browser che fa girare il codice
applicativo sul server
• Sono tipicamente Web (html, xml) e Wap (wml)
– Terminale ad un livello applicativo il terminale può operare
solo connesso al server
• utile per situazione nella comunicazione fra client e server è
continua
• Svantaggi i terminali dipendono fortemente dall’hardware e dal
sistema operativo, le applicazioni non funzionano senza connessione
al server
Applicazione a due livelli
• Terminali con applicazioni a due livelli
– Livello Presentazione con codice applicativo
– Livello Sorgente Dati
– Comunica con Database sul server quando la connessione in
rete è presente
• Terminali con applicazioni a tre livelli
– Livello Presentazione
– Livello Codice
– Livello di Accesso ai Dati
– Comunica con Database sul server quando la connessione
sul server è presente
Server per applicazioni mobili
• Dipende da come è strutturata l’applicazione a
livello di terminale
• Esistono server a un livello
• Esistono server a due livelli
• Esistono server a tre livelli
Architettura One-Tier Server
Vantaggi: Conveniente
Facile da sviluppare e
distribuire
Svantaggi: Meno scalabile e
insicuro
Architettura Two-Tiers Server
Vantaggi: Conveniente
Permette l’implementazione
di Database sul server
Svantaggi: Meno scalabile e
insicuro, molto costoso
Architettura Three-Tiers Server architecture
Vantaggi: Scalabile, sicuro ,
permette l’implementazione
di Database sul server
Svantaggi: Difficile da
sviluppare e gestire, costoso,
Connessioni e Applicazioni Mobili
• Le applicazioni mobili a un livello sono pensate per
dispositivi sempre connessi
• Le applicazioni mobili a due livelli sono per dispositivi
parzialmente connessi (invio dati e sincronizzazione
quando si è in rete)
• Le applicazioni mobili a tre livelli sono per dispositivi
con applicazioni stand alone (alta capacità di
elaborazione) e che sono difficilmente connesse se non
per scopi di manutenzione
Terminali mobili e applicativi diffusi
•Google Android
•Apple iOS
•Windows Phone
•Proprietari Bada,
Tizen, ecc
• In comune HTML+CSS3+Javascript
(Livello Presentazione)
• iOS archittettura di sistema a 4
livelli Cocoa Touch (GUI), Media
(riproduzione audio e video), Core
Services (SQL, XML, InApp Purchase),
Core Os (caratteristiche in dettaglio
dell’HW)
– Le applicazioni IOS sono sicure
girano in ambiente Sandbox
• Android
– Basato su Kernel Linux
– Livello Applicazione (Js+XML+HTML)
– Application Framework (funzionalità
di interazione con l’utente sensori,
audio, video, ecc
– Library (SQL, OpenGL, ecc.) e
Android Runtime
Terminali mobili e applicativi diffusi
•Google Android
•Apple iOS
•Windows Phone
•Proprietari Bada,
Tizen, ecc
• In comune
HTML+CSS3+Javascript (Livello
Presentazione)
• Windows Phone
– Basato su kernel windows phone
7/8
– Applicazioni sviluppabili
indifferentemente con C++, C##,
VB
– Integra Internet Explorer 9
– Gestisce applicazioni Office
– Riconoscimento vocale e
accessibilità integrata nel
sistema
Contenuti
• I protocolli dello strato applicativo
• Il protocollo HTTP
• I siti web, e il WWW tecniche di implementazione
• Principali tecniche di realizzazione dei siti web
• FTP, introduzione, e nuove opportunità con cloud storage
• La posta elettronica struttura di un email, invio e ricezione
posta
• Problematiche di sicurezza per i protocolli HTTP, FTP, POP3,
IMAP, SMTP
• Architettura delle piattaforme mobili sia hardware che
software

Contenu connexe

Similaire à Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile

Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Web
extrategy
 
Web Project - LESSON 1
Web Project - LESSON 1Web Project - LESSON 1
Web Project - LESSON 1
Yunikon Design
 
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Giulio Bonanome
 
2 Protocolli Applicativi
2 Protocolli Applicativi2 Protocolli Applicativi
2 Protocolli Applicativi
acapone
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
Whymca
 
Information Technology Law
Information Technology LawInformation Technology Law
Information Technology Law
Alessandro Abate
 

Similaire à Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile (20)

Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Web
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
Corso Java 3 - WEB
Corso Java 3 - WEBCorso Java 3 - WEB
Corso Java 3 - WEB
 
8 Www2009 Parte2
8 Www2009 Parte28 Www2009 Parte2
8 Www2009 Parte2
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internet
 
World wide web
World wide webWorld wide web
World wide web
 
Web Project - LESSON 1
Web Project - LESSON 1Web Project - LESSON 1
Web Project - LESSON 1
 
corso web developer - Introduzione al web
corso web developer - Introduzione al webcorso web developer - Introduzione al web
corso web developer - Introduzione al web
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
Un ILS open source per l'automazione delle biblioteche. L'ipotesi Koha a Ca' ...
 
2 Protocolli Applicativi
2 Protocolli Applicativi2 Protocolli Applicativi
2 Protocolli Applicativi
 
Applicazioni web based
Applicazioni web basedApplicazioni web based
Applicazioni web based
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Manuale EasyPHP e Wordpress
Manuale EasyPHP e WordpressManuale EasyPHP e Wordpress
Manuale EasyPHP e Wordpress
 
Sistemi distribuiti
Sistemi distribuitiSistemi distribuiti
Sistemi distribuiti
 
Lezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web ServiceLezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web Service
 
Information Technology Law
Information Technology LawInformation Technology Law
Information Technology Law
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
Corso di servlet jsp e pattern
Corso di servlet jsp e patternCorso di servlet jsp e pattern
Corso di servlet jsp e pattern
 

Plus de I.S.I.S. "Antonio Serra" - Napoli

Plus de I.S.I.S. "Antonio Serra" - Napoli (20)

La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Linguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e OggettiLinguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e Oggetti
 
Linguaggio C++ - Basi
Linguaggio C++ - BasiLinguaggio C++ - Basi
Linguaggio C++ - Basi
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
I cicli in Python 3
I cicli in Python 3I cicli in Python 3
I cicli in Python 3
 
Video python3 n2
Video python3 n2Video python3 n2
Video python3 n2
 
I sotto programmi in Python 3
I sotto programmi in Python 3I sotto programmi in Python 3
I sotto programmi in Python 3
 
Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1
 
Nuova ECLD - Modulo Online Collaboration n.2
Nuova ECLD - Modulo Online Collaboration n.2Nuova ECLD - Modulo Online Collaboration n.2
Nuova ECLD - Modulo Online Collaboration n.2
 
Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2
 
Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2
 
Nuova ECDL - Modulo Presentation n.3
Nuova ECDL - Modulo Presentation n.3Nuova ECDL - Modulo Presentation n.3
Nuova ECDL - Modulo Presentation n.3
 
Nuova ECDL - Modulo Presentation n.2
Nuova ECDL - Modulo Presentation n.2Nuova ECDL - Modulo Presentation n.2
Nuova ECDL - Modulo Presentation n.2
 
Nuova ECDL - Word Processing
Nuova ECDL - Word ProcessingNuova ECDL - Word Processing
Nuova ECDL - Word Processing
 
Nuova ECDL - Word Processing n.2
Nuova ECDL - Word Processing n.2 Nuova ECDL - Word Processing n.2
Nuova ECDL - Word Processing n.2
 
Nuova ECDL - Word Processing n.1
Nuova ECDL - Word Processing n.1Nuova ECDL - Word Processing n.1
Nuova ECDL - Word Processing n.1
 
Computer Essentials n.3 - Edizione 2020
Computer Essentials n.3 - Edizione 2020Computer Essentials n.3 - Edizione 2020
Computer Essentials n.3 - Edizione 2020
 
Java - Lezione 1
Java - Lezione 1 Java - Lezione 1
Java - Lezione 1
 
primi comandi SQL con Mysql
primi comandi SQL con Mysqlprimi comandi SQL con Mysql
primi comandi SQL con Mysql
 
Modello TCP/IP
Modello TCP/IPModello TCP/IP
Modello TCP/IP
 

Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile

  • 1. Le applicazioni di base web, posta, e mobile app Prof. Giuseppe Sportelli Revisione 1.2018
  • 2. Contenuti • I protocolli dello strato applicativo • Il protocollo HTTP • I siti web, e il WWW tecniche di implementazione • Principali tecniche di realizzazione dei siti web • FTP, introduzione, e nuove opportunità con cloud storage • La posta elettronica struttura di un email, invio e ricezione posta • Problematiche di sicurezza per i protocolli HTTP, FTP, POP3, IMAP, SMTP • Architettura delle piattaforme mobili sia hardware che software
  • 3. L’interazione Client-Server • I computer connessi in rete (client) usufruiscono di servizi offerti da altri computer (server) • Le applicazioni base per internet utilizzano il protocollo tcp (trasmissione bidirezionale) controllo della trasmissione • Le applicazioni più importanti come web, posta, ftp usano questo metodo
  • 4. Le applicazioni come il web, la posta, ecc sono mappate negli ultimi livelli della pila OSI, e nel quarto livello della pila TCP/IP
  • 5. Servizi di rete del livello applicativo World Wide Web
  • 6. • World Wide Web: è un servizio erogato tramite Internet composto da elaboratori connessi ad internet e dotati di applicativi di tipo client/server. – Consente di pubblicare contenuti di varia tipologia • I contenuti possono essere statici e dinamici – Consente di “navigare” in modo ipertestuale questi contenuti – Interagire con i contenuti per ottenere i risultati • Le due componenti fondamentali sono: – Terminali Client dotato di un programma di navigazione browser ( Opera, IE, Firefox, Mozilla, Safari ecc. ) – Elaboratori Server che mettono a disposizione varie tipologie di informazioni • Il colloquio viene effettuato utilizando il protocollo HTTP Hyper Text Transfer Protocol WWW: un’applicazione client server
  • 7. • Possono essere trasferite tutte le informazioni codificabili in digitale (testi, immagini, audio, video ecc.) attraverso il protocollo HTTP secondo delle specifiche standard date dal RFC 2616 • Sono presenti riferimenti univoci (URL Universal Resource Location) alle informazioni presenti sui server • La presenza di collegamenti ipertestuali (hyperlinks) permette di “navigare” sulla rete semplicemente utilizzando tali collegamenti • La definizione di protocolli e linguaggi (HTTP, HTTPS, HTML, XML) tali da permettere la descrizione e lo scambio di informazioni WWW: un’applicazione client server
  • 8. • Il server è l’elaboratore che ospita il servizio di accesso ai contenuti ipertestuali (web server) • Le informazioni contenute nel web server vengono organizzate in varie cartelle (directories) a partire da una cartella principale (root) • Le risorse messe a disposizione sono pagine ipertestuali scritte in linguaggio HTML, o utilizzando dei linguaggi di programmazione lato server (PHP, ASP, JSP) • All’interno delle pagine possono essere definiti link ipertestuali ad altre pagine dello stesso server o di altri nel primo caso si parla di link relativi, nel secondo di link assoluti Ruolo del server Web
  • 9. • Il browser è un programma applicativo che consente di collegarsi al server per richiedere le informazioni contenute (URL) e visualizzarle • Facilitano l’utente mettendo a disposizione una serie di funzioni: – Casella di inserimento URL (con possibile memorizzazione) – Pulsanti di navigazione: Avanti, Indietro, Refresh • Ha la capacità di visualizzare (rendering) direttamente una grande quantità di formati oltre l’HTML • Cio che non è gestito dal browser può essere abilitato con appositi componenti: – plug-in: utilizzato direttamente dal browser (DLL) – helper: programma esterno lanciato dal browser Ruolo del client: il browser
  • 10. • Protocollo adatto a gestire la trasmissione dei tanti tipi di dati ipertestuali • Protocollo che non mantiene informazioni di stato (stateless) • Prevede un semplice scambio dati del tipo: – Richiesta contenete la URL (comando GET) – Risposta contenete I dati (pagina HTML) • Esistono varie versioni di HTTP: 0.9, 1.0, 1.1 • La risposta del server contiene: – Alcune righe di informazione (header) seguite da una riga vuota. In questa sezione possono essere inseriti i cookies – La pagina richiesta (dati) Ruolo del Protocollo di Trasmissione Ipertestuale (HTTP)
  • 11. Concetto di URL (Universal Resource Locator) • Serve per assegnare un nome univoco alle varie informazioni presenti in rete • E’ composto di vari elementi – Protocollo (default http) https, ftp, ecc. Seguito da “:” – Il nome del server completo di dominio. Può anche essere indicato con un indirizzo IP – Opzionalmente può essere indicato il numero di porta preceduto da “:”. Se omesso la porta utilizzata è quella standard 80 – Opzionalmente segue il percorso per raggiungere il file che contiene la pagina richiesta – Infine, opzionalmente, il nome della “pagina”. Se omesso viene cercato solitamente il file index.html, oppure default.htm (o altrin configurati sul server) • Nella composizione dell’URL sono permesse solo le lettere ed alcuni simboli (“-”, “_”). Gli altri caratteri vengono rappresentati con la stringa %aa dove aa è la codifica esadecimale del carattere
  • 12. • La pagina è un file di tipo testuale strutturato secondo la sintassi del linguaggio HTML • Utilizza un sistema di marcatori (tags) scritti fra i simboli “<“ e “>” per descrivere la pagina ed i vari contenuti – <html> … </html> delimitano inizio e fine pagina – <body> … </body> delimitano il corpo del documento – <a href=“url”>Testo </a> definisce un link ipertestuale – <img src =“url”> inserisce un’immagine nella pagina – <p> …… </p> delimita un paragrafo nella pagina • Con il solo HTML si possono relaizzare pagine di tipo statico (sono trasmesse al client così come sono) • Per superare questo limite è nato il meccanismo CGI (Common Gateway Interface) Principali caratteristiche del Linguaggio di Marcatura Ipertestuale (HTML)
  • 13. Caratteristiche del web server • Rispondere alle richieste dei vari client • Richiamare gli interpreti dei vari linguaggi web supportati php, asp, jsp, ecc • Gestire le funzionalità a livello di cartelle e utenti (chi può fare e che cosa) • Tenere report degli accessi e gestire gli errori
  • 14. Tipi di web server Applicazioni Web Server • Apache GNU/GPL – Ambiente Linux/Windows/Mac – Supporta php, python, perl, jsp, asp con Mono – Integrazione con i dbms server più diffusi • IIS – Ambiente Windows – Supporta php, asp, jsp con integrazioni – Supporta ActiveX Data Object – Interazione con i web server più diffusi • Sun java System Web Server – Supporta Java • Netcraft Altre peculiarità • Apache dal 1996 open source con ottime prestazioni e efficienti • IIS commerciale di Microsoft utilizzato molto per le Intranet disponibile nei sistemi Server Windows • Sun Java JSWS deriva da NCSA, le licenze dai $ 1500 ai $ 5000
  • 15. Siti Web • Insieme di files e cartelle, applicazioni server side per la distribuzione di: –Contenuti general purpose –Sviluppo software per soluzioni web-oriented • Web App, Social Network, ecc –Intranet e Extranet Aziendali –Sistemi di transazioni economiche 24 ore su 24 ore e-commerce –Sistemi di formazione a distanza FAD
  • 16. Come sviluppare siti web • Approccio esperto –Linguaggio HTML, CSS per pagine statiche –Linguaggi Server Side PHP, ASP, JSP, Perl –Linguaggi evoluti lato client AJAX, HTML5 • Approccio semplificato –Uso di CMS Content Managment System • Joomla, Wordpress, Drupal
  • 17. Esempio di pagina HTML <html> <head> <title>Titolo della pagina</title> </head> <body> <p>Questa è una pagina HTML con un link ad un altra pagina</p> <a href=”www.google.com»>Motore di ricerca Google</a> </body> </html> Principali caratteristiche del Linguaggio di Marcatura Ipertestuale (HTML)
  • 18. Esempio di pagina HTML <html> <head> <title>Titolo della pagina</title> </head> <body> <p>Questa è una pagina HTML con un link ad un altra pagina</p> <a href=”www.google.com”>Motore di ricerca Google</a> </body> </html> Principali caratteristiche del Linguaggio di Marcatura Ipertestuale (HTML)
  • 19. • Necessità di avere pagine con contenuto dinamico. • Aggancio di una logica “applicativa” alle pagine html • La URL non rappresenta una pagina HTML ma ad un programma eseguibile • Il web server, verificato che la pagina richiesta è un programma: – Manda in esecuzione il programma richiesto sul server – Trasmette al browser l’uscita prodotta dal programma stesso Concetti di Common Gateway Interface (CGI)
  • 20. • Una applet è un piccolo programma applicativo • Viene scaricato dal web server verso il browser come elemento della pagina • Viene eseguito sul client con la supervisione del browser • Deve essere scritti in un linguaggio riconosciuto dal browser (java è riconosciuto da tutti i browser che includono una JVM java virtual machine) • Sono indipendenti dall’ambiente operativo del client • Nel caso di java vengono eseguiti da un’interprete chiamato JVM spesso incluso nel browser stesso (o disponibile come plug- in) • Possono essere notevolmente complessi • Per politiche di sicurezza hanno alcune limitazioni Concetto di applet
  • 21. Ajax • Asyncronous javascript and XML • Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente
  • 22. HTML 5 • evoluzione di HTML4 • semplifica la strutturazione delle pagine • Semplifica l’incapsulamento di contenuti multimediali • è supportato dai nuovi dispositivi mobili, tablet, smartphone
  • 23. Esempio di una pagina HTML5 <body> <header>...</header> <nav>...</nav> <article> <section> .... </section> </article> <aside>...</aside> <footer>...</footer> </body> Viene definita una struttura della pagina secondo le parti di contenuto richieste. Ad esempio il tag <nav> cura la barra di navigazione. Il tag <footer> il pié di pagina.
  • 24. Linguaggi Server Side • Linguaggio PHP supportato da tutte le piattaforme hardware software basato su pre processore HTML (Apache+mod_php) • Linguaggio ASP Active Server Pages tipico delle piattaforme Microsoft (IIS Server) • Linguaggio JSP Java Server Pages pagine in Java multipiattaforma (Apache+Tomcat)
  • 25. Servizio FTP Protocollo di trasferimento Files
  • 26. Caratteristiche di FTP FTP • Il client si collega al server fornendo un account anonimo (server pubblico) o autenticato (server web, server privato) • Il server autentica il client che può procedere al trasferimento in entrambe le direzioni • Utilizza per la comunicazione protocollare le porte tcp 20/21 Connessione FTP
  • 27. Tipologie di FTP • FTP attivo il client stabilisce una prima connessione con il server sulla porta TCP 21, è attivato un canale suolo per i comandi, e uno per la comunicazione dei dati • FTP passivo (utile quando siamo dietro un firewall) anche in questo caso il server riceve una richiesta sul canale 21 TCP, poi apre un secondo canale su una porta non privilegiata > 1024. La comunicazione dati avviene sulla seconda porta aperta dal server
  • 28. FTP a cosa serve • Pubblicare i documenti sul sito web • Trasferire files da host remoti Svantaggi 1.E’ insicuro (i dati viaggiano in chiaro) 2.E’ complesso per utenti non esperti 3.Dipende molto dalla configurazione della rete client-server (firewall, proxy)
  • 29. Nuovi metodi di storage remoti • La grande disponibilità di spazio web gratuito ha consentito negli ultimi anni di introdurre il cloud storage cartelle remote dove depositare i files prelevabili da qualunque luogo mediante un software o via web • Dropbox e Google Drive i più diffusi
  • 30. Usare Google Drive e Dropbox • Installo un software sul computer, creo i files sul computer • Salvando nella cartella condivisa, il files viene spedito sul server di storage (sincronizzazione) • Occorre registrarsi (alcuni gigabyte sono gratuiti, altri a pagamento)
  • 32. • Il server di e-mail è il sistema che si fa carico di distribuire la posta di un’organizzazione. In particolare: –riceve la posta inviata dagli altri server agli utenti da lui gestiti –mantiene i messaggi di posta fintantoché i programmi client non provvedono a scaricarli (POP3) –nel caso di protocollo IMAP deve mantenere i messaggi di posta limitandosi a leggerli ed eventualmente organizzarli in cartelle –riceve tramite protocollo SMTP i messaggi inviati dal/i client e li inoltra, con lo stesso protocollo, ai server di destinazione Ruolo di un server di e-mail
  • 33. • Applicazione client che consente di: –trasmettere messaggi con protocollo SMTP –ricevere messaggi con protocollo POP3 o IMAP –organizzare l’archivio della posta mediante una gerarchia di cartelle –gestire gli allegati permettendo il salvataggio e/o l’apertura Ruolo di un client di e-mail
  • 34. • Consente di interfacciare la posta elettronica con sistemi differenti • Tramite applicativi web, detti webmail, consente, ad esempio di interfacciare server di posta direttamente dal browser come se fosse un client di e-mail • Il server webmail si interfaccia tramite programmi CGI al server di posta elettronica • Possono essere utilizzati per inoltrare SMS di avviso dell’arrivo di posta elettronica Ruolo di un gateway di e-mail
  • 35. • E’ uno dei più vecchi protocolli utilizzati per l’invio di posta elettronica • Dovrebbe essere arricchito con funzioni di controllo anti SPAM Il protocollo SMTP (Simple Mail Transfer Protocol)
  • 36. Record MX • Un server per essere identificato come mail server per spedire la posta mediante il protocollo SMTP ha un record MX nella zona del suo dominio sul server DNS • Se non possiede un record MX altri server SMTP non accetteranno la posta proveniente da quel server
  • 37. • E’ un protocollo molto semplice che consente di scaricare sul proprio computer i dati contenuti nel server di posta • Il server alla ricezione di un messaggio per un utente, lo deposita in un file dedicato all’utente (mailbox) • Il client utilizzando vari messaggi (tramite TCP/IP utilizzando la porta 110) può richiedere al server: – Di essere autenticato, tramite i comandi USER nomeutente e PASS password – L’elenco dei messaggi, tramite il comando LIST – Di leggere il singolo messaggio tramite comando RETR numeromessaggio – Di cancellare il messaggio sul server tramite il comando DELE numeromessaggio Il protocollo POP3 (Post Office Protocol versione 3)
  • 38. • Protocollo molto potente e complesso per la gestione della posta elettronica • Con questo protocollo è possibile lasciare la posta sul server e gestirla con un buon grado di flessibilità • E’ particolarmente utile per utenti che operano da differenti postazioni e non hanno problemi di spazio sul server • IMAP utilizza la porta 143: – l’utente viene identificato con un unico comando impostando un identificativo nnn di sessione valido fino alla disconnessione – identifica la casella delle posta tramite comando snnn select inbox – legge i messaggi tramite comandi snnn fetch – chiude la sessione con il comando snnn logout Il protocollo IMAP (Internet Message Access Protocol)
  • 39. Struttura di un email • Un messaggio di posta elettronica contiene –Campo From mittente del messaggio –Campo A destinatari del messaggio –Campo CC destinatari per conoscenza –Campo CCn o BCC destinatari in copia nascosta –Campo Subject oggetto del messaggio –Campo body corpo del messaggio –Campo Attachment allegati (secondo lo standard MIME)
  • 40. Struttura di un email • Gli allegati cono codificati secondo lo standard MIME Multipurposal Internet Mail Extensions • Alla fine delle informazioni testuali del messaggio di posta viene introdotto un header che identifica il tipo di allegato (con codifica ASCII a 7 bit) • I dati sono codificati in ASCII, alla fine dell’allegato è inserito un delimitatore dell’allegato • Il client che riceve il messaggio effettua la decodifica e ricostruisce gli allegati
  • 41. Problematiche di sicurezza SMTP • I messaggi viaggiano in chiaro • se accetta l’invio e inoltro di messaggi, anche da indirizzi di posta non del suo dominio può diventare fonte di SPAM • occorre attivare il Relay (accettazione di spedire posta solo per specifici domini e IP) • occorre richiedere autenticazione su SMTP (che comunque agisce sulla porta 25 TCP) • sul server mail conviene avere un antivirus, e un software di graylisting che classifichi determinate email in base a dei criteri buoni e cattivi
  • 42. Problematiche di sicurezza • Il protocollo HTTP è insicuro • Il protocollo FTP è insicuro • Il protocollo SMTP, POP3, IMAP sono insicuro
  • 43. • Scopo della crittografia è di aumentare la confidenzialità ovvero rendere accessibili le informazioni solo al destinatario voluto – Crittografia simmetrica: algoritmo che utilizza una chiave unica SEGRETA per cifrare e decifrare il testo. La sicurezza è riposta completamente nella bontà della chiave (lunghezza) – Crittografia asimmetrica: algoritmo che utilizza due chiavi differenti per cifrare e decifrare il testo, facilita enormemente il compito di distribuzione delle chiavi – Algoritmi ibridi: utilizzano entrambe le tipologie di chiave Scopo della Crittografia
  • 44. • Negli algoritmi a chiave segreta le operazioni di codifica e di decodifica sono svolte utilizzando una stessa chiave. Sono anche detti algoritmi simmetrici e la segretezza è legata alla segretezza (e complessità) della chiave, non dell’algoritmo • Può essere resa sicura utilizzando chiavi monouso generate in modo casuale • Negli algoritmi a chiave pubblica non esistono problemi nella gestione della chiave segreta in quanto non deve essere distribuita ma utilizzata solo da chi l’ha generata (algoritmo RSA dalle iniziali degli ideatori) Differenze fra algoritmi a chiave segreta e a chiave pubblica
  • 45. • La prima chiave, segreta, non deve essere diffusa ma rimane di proprietà della persona che le definisce • La seconda chiave DEVE essere resa nota pubblicamente • Utilizzando un algoritmo non reversibile ciò che viene cifrato utilizzando una delle due chiavi può essere decifrato solo con l’altra • La generazione e l’assegnazione delle chiavi pubbliche viene effettuato da una CA (Certification Authority) • Questa crittografia può essere anche usata per avere la certezza dell’autore del messaggio • L’insieme degli standard e delle tecnologie utilizzate vanno sotto il nome di PKI (Public Key Infrastructure) Differenze fra algoritmi a chiave segreta e a chiave pubblica
  • 46. • Per inviare pacchetti su reti non sicure (internet) si può utilizzare la crittografia dei dati. Normalmente viene cifrato solo il contenuto informativo • Spesso vengono utilizzati algoritmi a chiave segreta per la loro velocità • Protocollo HTTPS: versione sicura del protocollo HTTP, prevede la crittografia dei dati mediante l’uso di algoritmi a chiave pubblica, utilizza la porta TCP 443 Utilizzo della crittografia per la protezione delle reti
  • 47. Protocollo SFTP • viene creato un tunnel SSH fra client e server • Ssh secure shell è un’evoluzione sicura di telnet che implementa SSL • Sul canale criptato avviene la comunicazione FTP • L’autenticazione è a chiave pubblica asimmetrica
  • 48. Rendere sicura la posta elettronica • Tutti i protocolli possono essere codificati via SSL Secure Socket Layer, lo stesso standard utilizzato nel protocollo HTTPS • Per la posta in entrata l’evoluzione sicura è rappresentata da POP3S, e IMAPS • Le porte TCP sono la 995, la 993 • È implementato da Google Mail • Per la posta in uscita sono disponibili SMTPS sulla porta 465, o TLS Transport Layer Security RFC 2246 – TLS usa codifica simmetrica per garantire la confidenzialità dei messaggi – Garantisce l’integrità del messaggio usando un’impronta firmata per l’autenticità del messaggio – Le chiavi sono generate ad ogni messaggio
  • 50. • Smartphone – Questo dispositivo consente di fare telefonate, ma possiede funzionalità di un PDA o di un computer. • PDA (Personal Digital Assistant) - Questo dispositivo è un computer palmare (palmtop computer), con capacità di mobile phone, web browser, media player portatile. • GPS (Global Positioning System) – Questo dispositivo consente di conoscere la propria posizione nel mondo con una precisione di 10m, inclusa l’altitudine e la direzione tenuta. I dispositivi per le comunicazione in mobilità
  • 51. • Mass Storage – CD, DVD, MP3, HD, magneto-optical disk, memory stick • Scanners – Dispositivo ottico di input. • Video camera – Dispositivo di input per l’acquisizione video. • Webcam – Video camera miniaturizzata. I dispositivi di I/O multimediali
  • 52. • GPRS (General Packet Radio System) – Sistema di comunicazione digitale compatibile con GSM di cui rappresenta l’evoluzione (per questo è spesso detto 2.5G intermedio fra due generazioni) – Sfrutta tutta l’architettura GSM senza grosse modifiche – Consente la trasmissione di pacchetti dati e incrementa la velocità sfruttando gli slot temporali lasciati liberi dalle comunicazioni vocali – La velocità di base è di 9600 bit/s, ma se vi sono slot disponibili può arrivare a circa 50 Kbit/sec Gli standard principali “wireless”
  • 53. • UMTS (Universal Mobile Telephone Service) detto 3G ovvero di terza generazione – La struttura logica non si discosta molto da quella delle reti di generazione precedente – Utilizza frequenze fra 1885-2025 e 2110-2200 MHz – Le potenze utilizzate sono di 20 W massimi per le stazioni BTS e 250 mW massimi per le stazioni mobili – Utilizza la tecnica WCDMA anche nota come spread spectrum con modulazione di fase a 8 canali (PSK – La velocità offerta è di 144/384 Kbit/s e può arrivare a 2 Mbit/s – Consente la fruizione di contenuti multimediali sia in modalità differita che in streaming utilizzando – I terminali dispongono di potenza elaborativa paragonabile ad un PC di qualche anno fa che consente la possibilità di decodificare audio in MP3 e video MPEG4 Gli standard principali “wireless”
  • 54. • GPRS: permette la stessa mobilità di un cellulare • WAP: usato per la navigazione in modalità simili ad internet tramite cellulare • Mobile IP: usato per la connessione di dispositivi IP mobili • Bluetooth: non utilizzato per la mobilità ma per collegare dispositivi vicini fra loro Le funzioni dei principali protocolli per stazioni mobili
  • 55. Applicazione per il Mobile • Dipende dal tipo di terminale – Terminale senza codice applicativo viene utilizzato sul dispositivo mobile solo il Browser che fa girare il codice applicativo sul server • Sono tipicamente Web (html, xml) e Wap (wml) – Terminale ad un livello applicativo il terminale può operare solo connesso al server • utile per situazione nella comunicazione fra client e server è continua • Svantaggi i terminali dipendono fortemente dall’hardware e dal sistema operativo, le applicazioni non funzionano senza connessione al server
  • 56. Applicazione a due livelli • Terminali con applicazioni a due livelli – Livello Presentazione con codice applicativo – Livello Sorgente Dati – Comunica con Database sul server quando la connessione in rete è presente • Terminali con applicazioni a tre livelli – Livello Presentazione – Livello Codice – Livello di Accesso ai Dati – Comunica con Database sul server quando la connessione sul server è presente
  • 57. Server per applicazioni mobili • Dipende da come è strutturata l’applicazione a livello di terminale • Esistono server a un livello • Esistono server a due livelli • Esistono server a tre livelli
  • 58. Architettura One-Tier Server Vantaggi: Conveniente Facile da sviluppare e distribuire Svantaggi: Meno scalabile e insicuro
  • 59. Architettura Two-Tiers Server Vantaggi: Conveniente Permette l’implementazione di Database sul server Svantaggi: Meno scalabile e insicuro, molto costoso
  • 60. Architettura Three-Tiers Server architecture Vantaggi: Scalabile, sicuro , permette l’implementazione di Database sul server Svantaggi: Difficile da sviluppare e gestire, costoso,
  • 61. Connessioni e Applicazioni Mobili • Le applicazioni mobili a un livello sono pensate per dispositivi sempre connessi • Le applicazioni mobili a due livelli sono per dispositivi parzialmente connessi (invio dati e sincronizzazione quando si è in rete) • Le applicazioni mobili a tre livelli sono per dispositivi con applicazioni stand alone (alta capacità di elaborazione) e che sono difficilmente connesse se non per scopi di manutenzione
  • 62. Terminali mobili e applicativi diffusi •Google Android •Apple iOS •Windows Phone •Proprietari Bada, Tizen, ecc • In comune HTML+CSS3+Javascript (Livello Presentazione) • iOS archittettura di sistema a 4 livelli Cocoa Touch (GUI), Media (riproduzione audio e video), Core Services (SQL, XML, InApp Purchase), Core Os (caratteristiche in dettaglio dell’HW) – Le applicazioni IOS sono sicure girano in ambiente Sandbox • Android – Basato su Kernel Linux – Livello Applicazione (Js+XML+HTML) – Application Framework (funzionalità di interazione con l’utente sensori, audio, video, ecc – Library (SQL, OpenGL, ecc.) e Android Runtime
  • 63. Terminali mobili e applicativi diffusi •Google Android •Apple iOS •Windows Phone •Proprietari Bada, Tizen, ecc • In comune HTML+CSS3+Javascript (Livello Presentazione) • Windows Phone – Basato su kernel windows phone 7/8 – Applicazioni sviluppabili indifferentemente con C++, C##, VB – Integra Internet Explorer 9 – Gestisce applicazioni Office – Riconoscimento vocale e accessibilità integrata nel sistema
  • 64. Contenuti • I protocolli dello strato applicativo • Il protocollo HTTP • I siti web, e il WWW tecniche di implementazione • Principali tecniche di realizzazione dei siti web • FTP, introduzione, e nuove opportunità con cloud storage • La posta elettronica struttura di un email, invio e ricezione posta • Problematiche di sicurezza per i protocolli HTTP, FTP, POP3, IMAP, SMTP • Architettura delle piattaforme mobili sia hardware che software