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