Sicurezza informatica - Università degli studi di Pavia

Transcript

Sicurezza informatica - Università degli studi di Pavia
Sicurezza informatica
• In ambito informatico la sicurezza implica:
– Segretezza: le informazioni devono poter essere lette
solo da persone autorizzate.
– Integrità: le informazioni non devono poter essere
alterate se non dalle persone autorizzate
– Accessibilità: le informazioni devono poter essere rese
accessibili alle persone autorizzata
– Autenticità: la provenienza delle informazioni deve
essere garantita e verificabile
• La sicurezza può quindi essere minacciata
mediante alterazione, interruzione, intercettazione,
distruzione e creazione di dati.
1
VIRUS
• Parte indesiderata
all’interno di un software
• Ha la capacità di
moltiplicarsi ed infettare
altri programmi
• Solitamente piccoli
programmi che alterano il
funzionamento regolare
della macchina, di software
o che danneggiano o
cancellano files
2
VIRUS (1)
• I programmi antivirus forniscono una buona
protezione nei confronti del pericolo di infezione,
ma solo nei confronti dei virus già conosciuti.
• Macro virus: tipicamente nei documenti di
Microsoft Word, si propaga ad altri documenti. Si
attivano aprendo il documento, tipicamente con la
macro autoexec. – Disattivare le macro
• E-mail virus: sono contenuti negli allegati alla
posta elettronica e vengono attivati aprendo
l’allegato. Si propagano mediante la lista degli
indirizzi del client di posta elettronica. – Non
aprire allegati sospetti o ricevuti da sconosciuti
3
SPYWARE
• Sono considerati il maggior rischio informatico per il 2005.
• Si tratta di programmi che si installano sul computer e effettuano
operazioni nascoste senza il consenso degli utenti.
• Le attività tipiche sono il tenere traccia dei tasti premuti, il furto
di password, il monitoraggio delle scelte e abitudini di
navigazione, l’apertura di finestre pop-up indesiderate,
comunicare il vostro indirizzo a server di spamming, ridirigere il
browser verso pagine predefinite e trasmettere informazioni a
server remoti.
• Sono “parenti” dei virus che si installano a partire da siti internet
che propongono di scaricare demo, mp3, software ecc.
Operazioni che richiedono approvazione. EULA
• Una volta in esecuzione sul computer locale spesso non appaiono
nella lista dei processi (task manager) e non possono essere
rimossi semplicemente con una disinstallazione. Necessitano di
apposito software (antispyware) per la rimozione.
4
Algoritmi
• Gli algoritmi sono le “ricette logiche” che
costituiscono la base dei programmi per il
computer.
• Algoritmo: la specificazione di un processo di
comportamento. Consiste in un numero finito
di istruzioni che governano il comportamento
passo per passo.
• Un qualsiasi insieme di istruzioni che specifichi
un procedimento in modo non ambiguo può essere
considerato un algoritmo.
5
Ricetta besciamella
•
•
•
•
•
•
•
Ingredienti
Scaldare olio o burro a fuoco lento
Aggiungere la farina mescolando cucchiaio legno
Aggiungere lentamente il latte caldo, sul fuoco
Mescolare fino a che sobbolle
Fare cuocere un quarto d’ora mescolando
Aggiungere sale e noce moscata
6
Algoritmi informatici
• Una caratteristica costante degli algoritmi
informatici è che questi coinvolgono
inevitabilmente la manipolazione di dati.
• Ogni algoritmo informatico riceve dei dati in
ingresso, elabora tali dati seguendo l’insieme di
istruzioni che specificano il procedimento, e
produce un’uscita.
Dati in
ingresso
Elaborazione
Dati in
uscita
7
Proprietà di un algoritmo
• Precisione, semplicità e livelli di astrazione.
• Un algoritmo deve essere preciso, non può
consentire dubbi di interpretazione
• Ogni passo di un algoritmo deve essere semplice,
elementare
• Il concetto di semplicità è un concetto vago e deve
essere considerato relativamente al livello di
astrazione appropriato
8
Livello di astrazione
• Il livello di dettaglio con cui devono essere formulate le
istruzioni dell’algoritmo avrà dunque un livello di
astrazione dipendente dalle conoscenze dell’esecutore
dell’algoritmo stesso.
• Un algoritmo ben progettato sarà organizzato in termini di
diversi livelli di astrazione: le istruzioni elementari che
costituiscono l’algoritmo per l’esecuzione dei singoli passi
sono nascoste in moduli (funzioni o procedure).
• Ogni modulo sarà a sua volta un algoritmo.
• I moduli consentono di lavorare ad alto livello, ignorando i
dettagli ma organizzandoli in moduli cui si possa fare
riferimento per nome
9
Altre proprietà
• finitezza: composto da un numero finito di passi
elementari; le operazioni sono eseguite un numero
finito di volte (evitare cicli infiniti)
• non ambiguità: i risultati non variano in funzione
dell’esecutore dell’algoritmo (deterministico)
• realizzabilità: deve essere eseguibile con le
risorse a disposizione
10
Rappresentazione algoritmi
• La rappresentazione spesso considerata più
efficace è quella mediante diagrammi di flusso o
flow chart
• Consente la rappresentazione grafica dei passi
elementari e fornisce una visione complessiva del
procedimento
• Considera quattro operazioni di base:
–
–
–
–
Input/output
Elaborazione
Decisione
Start/stop
11
Simboli convenzionali dei flow chart
ingresso/uscita
inizializzazione
documento
elaborazione
inizio/fine
input manuale
elab. predefinita
connessioni
disco
decisione
mem. sequenziale
12
Controllo di flusso
• If-then-else
I
• While-do
I
O
O
13
Algoritmi e computer
• Se desideriamo che un computer possa eseguire un
algoritmo, è necessario che l’algoritmo sia
espresso in termini binari.
• Le persone ragionano in termini di idee e
significati, come oltrepassare la distanza tra il
livello al quale si esprimono gli uomini ed il
livello al quale funzionano i computer?
• Per facilitare l’uso e la programmazione dei
computer sono stati introdotti diversi “livelli di
astrazione” cui corrispondono diversi livelli di
dettaglio riguardo al come viene realizzato un
determinato compito.
14
Livelli di astrazione nel computer
• Utente: l’utente interagisce con un software applicativo, non è
interessato a conoscere il funzionamento dell’algoritmo
sottostante.
• Algoritmico: l’implementazione di un algoritmo in un certo
linguaggio di programmazione; è il codice del programma.
• Traduzione: l’azione di un particolare software detto
compilatore o interprete che traduce il codice del
programmatore in una forma comprensibile dal computer
• Hardware: manipola le informazioni binarie per produrre
un’uscita sulla base degli ingressi forniti.
15
Algoritmi e programmi
• L’algoritmo è dunque l’insieme di passaggi logici,
indipendentemente dall’espressione in un qualsiasi
linguaggio di programmazione.
• Un programma è invece una espressione di un
algoritmo in un particolare linguaggio di
programmazione
• Ad un algoritmo possono dunque corrispondere
più programmi in linguaggi differenti o che
adottano diverse istruzioni per espletare il compito
espresso da uno stesso algoritmo.
16
Algoritmi e dati
• Il concetto di dati è indissolubilmente legato a
quello di algoritmo
• Un computer non fa altro che manipolare dati in
forma binaria un algoritmo informatico non potrà
fare altro che manipolare dati
• All’interno di un computer ogni informazione è
rappresentata sotto forma di dati.
• L’informazione rappresenta direttamente la
conoscenza, i dati sono una rappresentazione
specifica di un’informazione
17
Flow chart pari/dispari
Begin
Dato un numero (N) in
ingresso, determinare se è
pari o dispari
N
Si
N mod 2=0?
N è pari
No
N è dispari
End
18
Flow chart divisori
Begin
Dato un numero N, trovare
l’insieme dei suoi divisori interi
N
i=1; Div=[]
i<=N
No
Si
N mod i=0?
Si
Aggiungi i a Div
No
i=i+1
End
19
Flow chart numeri primi
Begin
Dato un numero N in
ingresso, determinare se
N e’ un numero primo
N
i=2
No
i<N
No
i=i+1
Si
N mod i=0?
N primo
Si
N non primo
End
20
Il minimo di un vettore
Begin
vett
Richiedo un vettore in ingresso
Inizializzo il contatore i=2 e la variabile
minimo al primo elemento del vettore
i=2; min=vett(1)
i<=lun(vett)
No
min
Dato un vettore di numeri
trovarne l’elemento più piccolo
Si
vett(i) < min ?
Si
min=vett(i)
No
i=i+1
End
21
Segnali
• Il termine segnale fa riferimento ad una
grandezza che contiene informazione riguardo ad
un sistema fisico.
• Indipendentemente dalla natura e dalla
rappresentazione del segnale l’informazione è
contenuta nelle variazioni della grandezza
rappresentata, rispetto ad un dominio appropriato
(tipicamente spazio o tempo)
22
Segnali biologici
• La definizione di un segnale biologico recita: un
segnale biologico è una registrazione temporale o
spaziale di un evento biologico. (Un battito
cardiaco o la contrazione di un muscolo).
• L’attività elettrica, chimica e meccanica che ha
luogo durante l’evento spesso produce segnali che
possono essere registrati, misurati ed analizzati
fornendo così informazioni sui meccanismi
fisiologici che hanno dato origine all’evento
osservato.
23
Segnali di natura elettrica
• Cellule nervose e muscolari generano segnali di
tipo elettrico come risultato di cambiamenti
elettrochimici inter- e intra- cellulari.
• Quando un nervo o un muscolo vengono eccitati
da uno stimolo di ampiezza sufficiente ad
oltrepassare una certa soglia, la cellula produce un
potenziale di azione: un flusso di ioni attraverso la
membrana cellulare.
• Il potenziale d’azione di una cellula eccitata può
trasmettersi alle cellule adiacenti.
24
Potenziali d’azione
• L’insieme di potenziali d’azione prodotti dalle
cellule eccitate da luogo ad un campo elettrico,
che si propaga attraverso il tessuto biologico.
• Le differenze di potenziale nel campo generato
possono essere misurate con elettrodi di superficie
all’esterno dell’organo o dell’organismo.
• L’elettrocardiogramma (ECG),
elettroencefalogramma (EEG) e l’elettromiografia
(EMG) sono esempi di segnali biologici che
sfruttano questi principi.
25
Mondo reale
• Nel mondo reale, la maggior parte di segnali sono definiti
per ogni istante di tempo, qualsiasi sia il livello di dettaglio
richiesto è sempre possibile attribuire un valore alla
quantità osservata. Si tratta di una quantità CONTINUA
nel tempo. (Una tensione, un flusso, una posizione).
• Il segnale continuo y=f(t) è dunque definito per - <t<
• Allo stesso modo, se consideriamo l’insieme dei valori
assunti da una grandezza continua, una tensione elettrica
ad esempio mentre varia tra due valori (-1V ed 1V), si
tratta di un insieme di cardinalità infinita. Una tensione
sinusoidale che oscilla tra -1 ed 1 V assume tutti i valori
compresi nell’intervallo [-1,1]: un numero infinito di
valori.
26
Rappresentazione
• Volendo rappresentare una grandezza del mondo
reale (la ns tensione tra –1 e 1 v) su un calcolatore,
siamo obbligati a passare dal mondo delle
grandezze continue a quello delle grandezze
discrete: il calcolatore consente un livello di
dettaglio limitato, finito.
• La precisione della rappresentazione numerica su
di un calcolatore è solitamente di 16/18 cifre
decimali. Non è possibile avere ulteriore dettaglio:
la cifra 0.0000000000000000012 è identica alla
cifra 0.0000000000000000014, entrambe sono
rappresentate con 0.000000000000000001
27
Discreto
• Il calcolatore è dunque un sistema discreto: un
sistema che consente la rappresentazione di una
grandezza fino ad un certo livello di dettaglio.
• La registrazione e la memorizzazione di un
segnale continuo può avvenire solo in modo
discreto se viene realizzata attraverso un
calcolatore.
• Un segnale discreto è un segnale definito solo in
punti discreti del tempo o dello spazio.
• Un segnale y=s(n) è definito n
o n N
28
Campionamento
• Il campionamento corrisponde al processo di
discretizzazione di una variabile continua e si basa
sull’idea di rappresentare l’andamento temporale
di una grandezza attraverso la rappresentazione
dei valori assunti da tale grandezza ad intervalli
fissi di tempo.
• Effettuando un numero elevato di misure, ovvero
riducendo il tempo che intercorre tra due misure
successive, è possibile ottenere una
rappresentazione del segnale originale con un
sufficiente livello di dettaglio.
29
Dal continuo al discreto
• Dalla funzione continua
y=f(t) con t R e y R
• Ad una sua rappresentazione discreta:
– v sarà la successione temporale dei valori istantanei
assunti da y in corrispondenza degli istanti di
campionamento. Tc è l’intervallo tra due istanti di
campionamento: il periodo di campionamento.
v=f(nTc) con n Z e v R
• fc=1/Tc è detta frequenza di campionamento
30
Teorema del campionamento
• Definisce quale debba essere la frequenza con cui si
realizzano le misure del segnale di partenza affinché sia
possibile ricostruirlo senza perdita di informazione.
• Questa scelta viene fatta sulla base delle caratteristiche del
segnale che si vuole rappresentare. In particolare è
necessario conoscere quale sia il contenuto in frequenza
del segnale per poter determinare la frequenza di
campionamento minima da impiegarsi.
• Se la massima frequenza del segnale di partenza è fMAX
allora la frequenza di campionamento dovrà essere
fc≥ 2fMAX
31
Campionamento di un segnale
y=sin(t)
T= 2*
f=1/(2* )Hz
fC=5Hz
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
2
4
6
8
10
12
14
32
Quantizzazione
• Se il segnale campionato deve essere rappresentato da un
calcolatore, non solo il domino (tempo, spazio) ma anche il
codominio (valori) del segnale non potrà essere un insieme
continuo.
• Sarà necessario quantizzare il segnale definendo i possibili
valori che può assumere ed approssimando i campioni
aventi valori non previsti mediante arrotondamento.
• Dato un segnale per il quale si voglia avere una
rappresentazione con una certa precisione (un numero di
cifre decimali) bisogna determinare il numero di bit da
impiegare nel processo di digitalizzazione del segnale.
33
Quantizzazione
•
•
•
Dato un segnale che varia tra due valori minimo
(m) e massimo (M) per il quale sia richiesta una
precisione P (es: P= 0,02) allora N=log2[(Mm)/P].
Il risultato sarà un numero intero N arrotondato
sempre per eccesso.
Sinusoide tra –1 e +1 con precisione di due cifre
decimali (P=0.01) necessiterà di
N=log2((1+1)/10-2)=8 bit
34
Acquisizione del segnale
Sensore
RC
A/D C
memo / video
SP
Parametro
osservato
• Un sensore (trasduttore) converte la quantità misurata in
una grandezza elettrica.
• La rete di condizionamento (RC) amplifica e solitamente
filtra la grandezza elettrica (continua).
• Il convertitore analogico/digitale campiona il segnale ad
una determinata frequenza e lo quantizza rappresentandolo
con un certo numero di bit. In un computer questo viene
realizzato da una scheda di acquisizione.
35
Acquisizione EOG
• Determinare il numero di bit da impiegare nel
processo di digitalizzazione di un segnale
compreso tra –5 e +5 V per ottenere una
rappresentazione con un livello di precisione pari
ad almeno 0.001 V (1 mV)
• Log210/.001=13.28
• Devo dunque impiegare per lo meno 14 bit
36
Sistema Informativo
• Componente (sottosistema) di una organizzazione che
gestisce (acquisisce, elabora, conserva, produce) le
informazioni di interesse.
• il sistema informativo esegue/gestisce processi informativi
(cioè i processi che coinvolgono informazioni)
• Funzioni di un sistema informativo:
– raccolta, acquisizione delle informazioni
– archiviazione, conservazione delle informazioni
– elaborazione delle informazioni
– distribuzione, scambio di informazioni
37
Gestione delle informazioni
• Nelle attività umane le informazioni vengono
gestite (registrate e scambiate) in diverse forme:
– idee informali
– linguaggio naturale (scritto o parlato, formale o
colloquiale, in una lingua o in un’altra)
– disegni, grafici, schemi
– numeri
– codici (anche segreti)
• e su vari supporti, dalla memoria umana alla carta
38
Informazione e dati
• All’interno di un computer ogni informazione è
rappresentata sotto forma di dati.
– INFORMAZIONE: elemento che consente di avere
conoscenza di fatti, situazioni ecc.; notizia, ragguaglio
– DATO: ciò che è conosciuto o accertato; (inform.)
elementi di informazione costituiti da simboli che
debbono essere elaborati.
• I dati sono dunque i fatti elementari, che devono
essere interpretati per fornire conoscenza
• I dati sono anche direttamente rappresentabili,
informazione e conoscenza no.
39
Base di dati
(accezione generica)
• collezione di dati, utilizzati per rappresentare le
informazioni di interesse per una o più
applicazioni di una organizzazione.
(accezione specifica)
• collezione di dati gestita da un DBMS
40
Gestione su files
• La gestione di insiemi di dati grandi e persistenti è
possibile anche attraverso sistemi più semplici — gli
ordinari file system dei sistemi operativi
• Anche la gestione mediante file system, nei sistemi
operativi che lo consentono (UNIX, NT), permette di
realizzare rudimentali forme di condivisione.
• I file system prevedono forme di condivisione e di gestione
della sicurezza permettendo accessi contemporanei in
lettura ed esclusivi in scrittura: se è in corso un’operazione
di scrittura su un file, altri non possono accedere al file,
neanche in lettura.
41
DBMS:Database Management System
Sistema (software applicativo) in grado di gestire collezioni
di dati che siano (anche):
– grandi (di dimensioni (molto) maggiori della memoria
centrale dei sistemi di calcolo utilizzati)
– persistenti (con un periodo di vita indipendente dalle
singole esecuzioni dei programmi che le utilizzano)
– condivise (utilizzate da diverse applicazioni)
garantendo affidabilità (resistenza a malfunzionamenti
hardware e software) e privatezza (gestione della
sicurezza dei dati). Come ogni applicativo, un DBMS deve
essere efficiente (ottimizzare l‘uso delle risorse del
sistema) ed efficace (incrementare la produttività dei suoi
utilizzatori).
42
DBMS vs FILE SYSTEM
• I DBMS estendono le funzionalità dei file system,
fornendo più servizi ed in maniera integrata (sono più
efficaci).
• Nei DBMS, c’è maggiore flessibilità nella la gestione della
sicurezza dei dati: più utenti possono accedere
contemporaneamente a record diversi di uno stesso file o
addirittura allo stesso record (in lettura).
• Nei DBMS, esiste una porzione della base di dati (il
catalogo o dizionario) che contiene una descrizione
centralizzata dei dati, che può essere utilizzata dai vari
programmi.
43
Banche dati
• Una banca dati permette la memorizzazione
compatta ed ordinata di dati ed offre strumenti per
accedere ai dati archiviati.
• Un database è composto dalla base di dati vera e
propria e da un programma per la sua gestione
(database manager)
• Una base di dati è costituita da più files (o tabelle)
che contengono dati affini per argomento ordinati
secondo un certo criterio
• Ogni tabella è costituita da più record di dati
44
Record ed attributi
• Un record rappresenta una voce dell’archivio
• A sua volta questa voce sarà costituita da un
insieme di attributi o campi
• Es.: ogni persona rappresenterà un record della
tabella ANAGRAFICA.
• Gli attributi della persona possono essere “Nome”,
“Cognome”, “Codice fiscale”, “Indirizzo” ecc.
45
Il Modello dei Dati
• Il modello fornisce le regole per la costruzione e la
manipolazione della rappresentazione
• La rappresentazione è un insieme di simboli posti in
corrispondenza con la realtà di interesse.
• La realtà di interesse è quella parte del mondo reale
che si vuole descrivere, così come è percepita da chi
costruisce la rappresentazione.
• Una componente fondamentale del modello è il
meccanismo di strutturazione ovvero ciò che consente
la definizione dei legami tra i dati rappresentati e delle
regole di coerenza che i dati devono soddisfare.
46
Modello Entità - Relazione
• Entità
– Sono ciò di cui interessa rappresentare alcuni “fatti”. E’ una classe
che rappresenta un insieme di oggetti di cui si individuano proprietà
comuni. →TABELLE
• Attributi/Domini
– Sono i “fatti”, le caratteristiche che si devono descrivere. E’ una
corrispondenza tra una entità ed un dominio, che rappresenta un
insieme di oggetti rappresentabili tramite un valore. Un attributo
assegna una proprietà alla classe (entità o relazione) a cui è
associato. →COLONNE
• Relazioni
– Sono i “fatti” che correlano le Entità. Rappresentano le connessioni
logiche tra più Entità →LEGAMI
PERSONA
(1,N)
AUTORE
(N,1)
ARTICOLO
Ogni persona può
essere autore di
uno o più articoli e
ogni articolo ha
almeno un autore.
47
RELAZIONI
• Il collegamento logico tra le tabelle che rappresentano le
entità viene stabilito attraverso le relazioni.
• Vengono realizzate mediante tabelle in cui si riporta un
attributo identificativo di ogni entità collegata.
48
Sistema Relazionale
• Il vantaggio del modello relazionale è dato dalla sua
fondamentale semplicità per l’utente. La difficoltà si
trasferisce dall’utente all’implementatore che deve
prendere la maggior parte delle decisioni in fase di
creazione della base di dati.
• Un sistema per la gestione di una dase di dati relazionale è
detto RDBMS (Relational Data Base Management
System). Ogni RDBMS commerciale (Access, Oracle,
Sybase, Informix…) impiega un linguaggio per la gestione
della base di dati.
49
Elementi di SQL
• Creazione di una tabella con campi COGNOME,
NOME, NUMERO DI TELEFONO:
CREATE TABLE PERSONA
(COGNOME CHAR(20),
NOME CHAR(20),
NUMERO_TELEFONO CHAR(15));
50
Elementi di SQL
• Ricerca di
PERSONA:
ROSSI
MARIO
nella
tabella
SELECT *
FROM PERSONA
WHERE COGNOME=’ROSSI’ AND
NOME=’MARIO’;
• Inserimento di BIANCHI PAOLO nella tabella
PERSONA:
INSERT INTO PERSONA VALUES (‘BIANCHI’,
’PAOLO’, ’0382/548677’);
51
Elementi di SQL
• Oppure, tralasciando il numero di telefono
INSERT INTO PERSONA (COGNOME, NOME) VALUES
(‘BIANCHI’, ’PAOLO’);
• Inserire in una tabella NOMINATIVI il nome ed il
cognome dell’insieme delle persone registrate
nella tabella PERSONA
INSERT INTO NOMINATIVI (COGNOME, NOME)
SELECT COGNOME, NOME FROM PERSONA;
52
Elementi di SQL
• Modificare i dati inseriti cambiando BIANCHI in
BANCHI:
UPDATE PERSONA
SET COGNOME=‘BANCHI’
WHERE COGNOME=‘BIANCHI’
53
INTERNET
• INTERconnected NETworks
• Nasce all’inizio degli anni settanta una rete di collegamento tra centri
militari e centri di ricerca chiamata ARPANET basata su un criterio di
trasmissione di dati detto TCP/IP (Transmission Control
Protocol/Internet Protocol).
• I segnali trasmessi attraverso la rete sono digitali, a differenza di
quanto avviene nella trasmissione telefonica.
• La struttura di Internet è quella di una rete con collegamenti di tipo
molti a molti.
• Un insieme globale di reti collegate tra loro in molti modi diversi a
formare un’unica entità complessiva: INTERNET
• I computer collegati ad Internet possono essere suddivisi in server
(computer che forniscono un servizio: web server, server di posta ecc.)
e client (computer che richiedono un servizio: il PC di un utente)
54
MINISTERO DELLE FINANZE
ARCHITETTURA DEL SISTEMA
UFFICI DEL TERRITORIO
Catasto
Conservatorie
Demanio
Commissioni
Tributarie
UFFICI DELLE ENTRATE
Imposte Dirette
IVA
Registro
INTERNET
GUARDIA DI FINANZA
RETE
TRASMISSIONE DATI
CENTRI DI SERVIZIO
PUBBLICHE
AMMINISTRAZIONI
ED ENTI ESTERNI
VIDEOTEL
CENTRI
DOGANALI
S. Ramat
SELF SERVICE
Bioingegneria Elettronica e
SISTEMI
CENTRALI
ROMA
Informatica
2010/2011
FISCO ON LINE
55
colombo/AIPA 5.10.95
pag. 2
Trasmissione di dati
• Internet è costituita da un gran numero di sotto-reti tra loro
collegate attraverso gateways e routers.
• Per raggiungere il computer di destinazione, i dati
trasmessi devono frequentemente attraversare una dozzina
di reti distinte.
• Questo processo è del tutto trasparente per l’utente che, per
poter trasmettere dei dati ad un altro computer, deve
semplicemente conoscere l’indirizzo (IP address) del
computer di destinazione
• Ogni computer su internet può comunicare con qualsiasi
altro computer.
• La comunicazione è possibile perchè i computer usano tutti
uno stesso linguaggio (un protocollo per scambiare
informazioni: un insieme di regole predefinite).
56
TCP/IP
• Il TCP/IP è un insieme di protocolli che consentono a
computer collegati in rete di comunicare e condividere
risorse.
• Possiamo considerare il TCP/IP come una libreria di
procedure che possono essere sfruttate da applicazioni che
necessitano una comunicazione affidabile tra computer
connessi in rete.
• I protocolli di comunicazione su Internet sfruttano la
tecnica del layering (stratificazione). I protocolli sfruttati
dalle specifiche applicazioni si appoggiano infatti su
protocolli di base quali il TCP, che a sua volta sfrutta l’IP.
57
TCP
• Si occupa della suddivisione del messaggio in
pacchetti (datagrammi) che verranno spediti come
un singolo messaggio e instradati attraverso la rete
individualmente.
• Il TCP inoltre è responsabile di riassemblare i
pacchetti presso il computer ricevente, rispedire i
pacchetti eventualmente smarriti e riordinarli
correttamente.
• Protocolli applicativi, come il protocollo della
posta elettronica (mail), sfruttano il TCP per la
trasmissione dei dati.
58
IP
• Il TCP non si preoccupa del percorso che seguiranno i
datagrammi attraverso la rete per raggiungere il computer
di destinazione.
• Questo compito, detto routing, è delegato all’Internet
Protocol (IP).
• Il TCP passa i pacchetti all’IP assieme ad un indirizzo. IP
non sa se ed in qual modo il datagramma che sta
trasmettendo sia collegato ad altri precedenti o successivi.
• Ogni datagramma viene dunque instradato
indipendentemente e può quindi seguire percorsi diversi
per raggiungere una medesima destinazione
59
Indirizzi
• Ogni computer su Internet ha un indirizzo che lo identifica
univocamente.
• Un IP address è un numero a 32 bit che viene solitamente
scritto come un gruppo di 4 numeri decimali (i.e.:
193.204.34.27) ognuno dei quali rappresenta 8 bit
dell’indirizzo. Un computer userebbe la forma binaria:
11000001.11001100.00100010.00011011
• La struttura dell’indirizzo solitamente fornisce indicazioni
sull’ubicazione del computer.
– Tutti i computer dell’Università di Pavia hanno un indirizzo che
incomincia con 193.204.
– I computer nell’ala uffici della “nave” hanno un indirizzo che
incomincia con 193.204.34.
60
DNS
• Onde facilitare la memorizzazione da parte degli utenti degli indirizzi
dei computer su Internet ogni computer ha solitamente un nome
testuale.
• Nel caso di aziende, l’indirizzo ha solitamente la forma:
computer.sito.divisione.compagnia.com
Dominio di primo livello
• Per poter correttamente instradare messaggi e/o richieste è necessaria
la traduzione del nome in un indirizzo.
• Di tale compito si fanno carico i Domain Name Server (DNS,
University of Wisconsin, 1983) ovvero computer che mantengono una
base di dati contenente tutte le corrispondenze nome-indirizzo della
rete cui appartengono:
– Per unipv il DNS è 193.204.35.27. A questa macchina chiedo l’indirizzo
IP di www.unipv.it e ottengo 193.204.35.29
• Un computer in una sottorete inoltra una richiesta di IP address al DNS
della propria rete. Se l’indirizzo richiesto non appartiene alla stessa
sottorete il DNS può richiederlo ad altri DNS iniziando dal livello più
elevato: il DNS del dominio di primo livello (.com, .edu, .it ecc)
• Un aspetto fondamentale per il funzionamento di questo sistema è la
ridondanza dei DNS: in caso di guasto rispondono altri DNS
61
Banda passante
• La connessione tra i diversi computer e le diverse
reti avviene mediante cavi: ottici, coassiali,
doppini telefonici.
• Ogni tipo di cavo ha una banda passante (massimo
numero di bit trasmissibili in un secondo) legata
alla struttura fisica del cavo stesso ed al suo stato
di conservazione.
• La fibra ottica ha banda superiore al coassiale che
a sua volta ha banda superiore al doppino
telefonico (56.7 Kbps max). Le fibre ottiche più
veloci (es: OC-48) raggiungono i 2488Mbps.
62
Connessioni - Polo Cravino
S. Ramat
63
Wireless Internet
• Internet senza connessioni via cavo, possibile? Telefoni
cellulari e PDA abilitati alla posta elettronica sfruttano la
comunicazione digitale a radiofrequenze.
• WAP (Wireless Application Protocol) è il protocollo di
comunicazione concordato da Nokia, Motorola, Ericsson e
Phone.com nel 1997 per standardizzare la comunicazione
internet senza fili. Limite attuale la velocità di 14.4 Kbps
• Il WAP sfrutta un linguaggio (Wireless Markup Language)
che aggiunge all’informazione trasmessa altra
informazione relativa alla natura del messaggio e al cosa
fare del messaggio ricevuto. Consente lo sviluppo di nuovi
descrittori (come XML). Stessa famiglia dell’HTML
64
Wireless Networking (Wi-Fi)
•
•
•
•
Alternativa alla comunicazione via cavo per la creazione di una rete locale
attraverso l’uso di frequenze radio.
La trasmissione è di tipo digitale (binario) e avviene secondo standard specifici
(IEEE 802.11b, 802.11a).
I due standard specificano diverse radiofrequenze di trasmissione (2.4GHz e 5
GHz) e di codifica dell’informazione, che comportano diverse velocità di
trasmissione dei dati (max 11 e max 54 Mbits/s).
Accesso mediante un wireless access point (o hotspot) collegato alla rete via
cavo (ethernet, ADSL) in grado di gestire decine di comunicazioni separate
suddividendo la banda di frequenze disponibili in canali e spostandosi di
canale in canale (frequency hopping) a frequenze elevate.
• 802.11b Il primo protocollo sviluppato è il più lento e meno costoso.
Trasmette a 2.4 GHz e ha una banda fino a 11 mbps.
• 802.11a lavora a 5 GHz e gestisce fino a 54 mbps.
• 802.11g opera a 2.4Ghz (abbasssando i prezzi come la 802.11b) ma
trasmette fino a 54 mbps come la 802.11a.
• 802.11n maggiore distanza e banda passante elevata.
65
Wireless device communication
• La comunicazione senza fili può avvenire codificando l’informazione
attraverso fasci di luce nello spettro dell’infrarosso oppure attraverso
l’uso di radiofrequenze.
• La comunicazione nell’infrarosso è di tipo digitale pulsando la luce per
trasmettere informazione. Ha due limiti: i dispositivi in comunicazione
devono “vedersi” e la comunicazione è di tipo uno ad uno.
• L’alternativa più recente ed efficace per la comunicazione tra
dispositivi elettronici a corto raggio (ca. 10 m) è il bluetooth. Questa
tecnologia è basata su radiofrequenze (portante a 2.45 GHz). I
problemi di interferenza con altri dispositivi vengono risolti con la
tecnica del frequency hopping.
• Due dispositivi si accordano per individuare 79 “canali” in un certo
spettro di frequenze e comunicheranno passando di canale in canale
con una frequenza di 1600 Hz minimizzando la probabilità che due
dispositivi parlino sullo stesso canale allo stesso istante. Personal area
network o piconet. La comunicazione raggiunge 1Mbps (-20% header)
66
Collegarsi a Internet
• Il collegamento a Internet per un privato o una piccola
azienda avviene solitamente tramite un Internet Service
Provider (ISP) ed una normale linea telefonica.
• Un ISP è una società che possiede un collegamento diretto
a Internet (è fisicamente raggiunta da uno spezzone di
Internet) e un insieme di modem e linee telefoniche.
• Un privato, mediante un PC dotato di modem, chiama il
numero dell’ISP, fornisce nome utente e password per
accedere al servizio e viene collegato ad Internet.
• Al computer viene attribuito un indirizzo appartenente alla
rete dell’ISP. Sulla linea telefonica viene attivato un
protocollo (SLIP o PPP) per la trasmissione/ricezione dati.
67
Privati con
connessione via modem
Provider
Internet
68
Posta elettronica
• Rivoluziona la comunicazione da individuo a individuo
consentendo l’invio di messaggi di testo e di allegarvi files
di qualsiasi tipo.
• Sfrutta un apposito protocollo (SMTP: simple mail transfer
protocol) che a sua volta si appoggia su TCP e IP.
• Gli indirizzi di posta elettronica hanno solitamente la
struttura: [email protected]
• La macchina identificata da computer.dominio.stato è
frequentemente un server del provider che ha fornito
l’accesso. Server sempre acceso: non perdiamo messaggi.
• Questo server contiene una “cassetta” di posta (una
directory su un disco del server) per ogni utente registrato.
69
Client di posta elettronica
• Microsoft Outlook Express - Netscape Messenger Mailbox
- Eudora – Thunderbird sono i client più diffusi.
• Per il loro funzionamento è necessario definire quali siano
il server della posta in uscita (SMTP) ed il server dalla
posta in ingresso (POP3, IMAP).
• Si tratta spesso, in realtà, della stessa macchina ma i
protocolli sono differenti
• I messaggi vengono inviati in formato ASCII, tutti i files in
formato binario possono essere allegati (attachment). Gli
allegati si definiscono in genere MIME (Multimedia
Internet Mail Extension) attachments.
• Outlook e Messenger consentono la lettura di messaggi
scritti in HTML
70
World Wide Web
• E’ un sistema di server su Internet che supportano la
trasmissione di ipertesti consentendo di usufruire di diversi
protocolli attraverso un’unica interfaccia.
• Nasce nel 1989 al CERN di Ginevra per la condivisione di
ipertesti tra sedi distanti.
• Mediante le interfacce Web si può accedere ai seguenti
protocolli:
–
–
–
–
E-mail
FTP
Telnet
HTTP
71
Browser
• Il browser è il nome generico dei programmi che
consentono la navigazione su Internet (Microsoft Internet
Explorer, Netscape Navigator ecc.)
• Consentono la visualizzazione degli ipertesti che
costituiscono le pagine unitamente ai componenti
multimediali (immagini, audio e video) eventualmente
inclusi.
• La navigazione si realizza:
– digitando un URL (Uniform Resource Locator) valido nella barra
dell’Indirizzo
– cliccando con il mouse su un link valido
• Sono interpreti del linguaggio HTML
72
HTML
• HTML: Hyper Text Markup Language
– E’ il linguaggio per la descrizione e costruzione delle pagine
visualizzate attraverso un browser internet.
– I documenti sono documenti di testo con dei tags (delimitatori) che
specificano al browser quale aspetto deve avere il testo o la pagina
in generale.
• I tag sono identificati dai caratteri < e > ed hanno
solitamente la forma
<tag> stringa di testo </tag>
Il tag finale contiene il carattere “/” e specifica fino a quale punto
adottare il formato specificato dal tag di inizio
• Si differenzia dall’XML che è invece un meta-linguaggio
che consente di definire nuovi “tag” o identificatori.
73
Head, Body, Title
• Nella sezione di documento delimitata da <head> e </head> si digitano
informazioni che non compariranno nel documento
• Tutto ciò che appare nel documento è all’interno della sezione body:
<body> documento </body>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Informatica Web</title>
</head>
<!-- Esempio di pagina HTML -->
<body>Prima lezione di linguaggio HTML </body> </html>
• Il tag <Title> viene inserito nell’ambito dell’intestazione e verrà
visualizzato nella barra del titolo del browser quando si apre la pagina
74
PROGRAMMAZIONE
• Linguaggio di Programmazione: un insieme di
comandi ed operatori che consentono la traduzione di un
algoritmo in un programma che potrà essere interpretato o
compilato ed eseguito da un calcolatore.
• La maggior parte dei linguaggi di programmazione sfrutta
un compilatore che traduce l’insieme di istruzioni del
programma in un programma eseguibile (in MS-DOS un
eseguibile ha estensione .exe)
• Altri programmi sfruttano invece un interprete che esegue
le istruzioni una ad una in tempo reale. L’interprete
dispone di una interfaccia nella quale è possibile digitare
direttamente il programma. (es. MATLAB)
75
Linguaggi
• Merita un occhio di riguardo il linguaggio JAVA.
• JAVA è un linguaggio di programmazione a oggetti
sviluppato da Sun Microsystems.
• Java è un linguaggio sia interpretato che compilato. Il suo
codice sorgente è compilato in una forma di pseudo codice
(bytecode) universale interpretabile da una macchina
virtuale implementata sulla maggior parte delle comuni
piattaforme hardware.
• Un programma redatto in Java è dunque indipendente
dall’architettura e può essere eseguito su qualunque
sistema per il quale esista un “Java Virtual Machine”
• JAVA è particolarmente utile per applicazioni WEB (che
hanno come interfaccia pagine HTML) grazie alla sua
portabilità sui diversi SO
76
Variabili
• Variabile
¶ s. f. (mat.) grandezza che può assumere tutti i valori
appartenenti a un determinato insieme: variabile
dipendente, indipendente, a seconda che i valori a essa
assegnati siano o non siano funzioni di altri valori | in
logica matematica, ogni simbolo che non abbia un preciso
referente, ma che stia per un qualsiasi elemento di un
insieme specificabile | variabile casuale o aleatoria, (stat.)
variabile appartenente all'insieme dei possibili risultati di
un esperimento casuale (può essere discreta o continua) |
variabile autogena, esogena, nei modelli econometrici, le
variabili determinate come soluzioni del modello o
indipendenti da questo
77
Tipi di dati
• Nella maggior parte dei linguaggi di programmazione le
variabili che conterranno i dati devono essere dichiarate
prima di poter essere referenziate.
• La dichiarazione di una variabile implica la definizione del
nome della variabile unitamente al tipo di dati che sarà in
grado di contenere.
• La definizione del tipo di dati serve al compilatore affinché
possa essere allocata una quantità di memoria appropriata
al dato che verrà memorizzato.
• Tipicamente un linguaggio prevede dati di tipo integer,
single, double, char, boolean
78