Modulo sviluppato in collaborazione con il prof. Pierangelo Savarese
Internet può sembrare una grande rete, anche se in realtà è costituita dalla connessione di moltissime reti, e per garantire la interconnessione è stato realizzato un vasto insieme di protocolli di comunicazione, che è conosciuto come TCP-IP, dal nome dei componenti principali.
Essi rispondono sia alla necessità di assicurare il collegamento fra due host (nodi) qualsiasi di Internet, sia di rendere disponibili dei servizi, forniti da protocolli di livello superiore (applicativi).
Ogni host, per essere raggiungibile sulla rete, deve avere un indirizzo univoco: l’indirizzo IP, che è un numero a 32 bit, di solito rappresentato con i valori dei suoi quattro byte, separati da un punto (es.: 192.85.10.12); il protocollo IP risponde allo scopo di trasferire pacchetti di dati fra due host diversi, non assicura né che i pacchetti arrivino tutti, né che arrivino nell’ordine di partenza.
Agli indirizzi IP corrispondono nomi simbolici che sono quelli dei ’siti’ della rete.
Il software di rete fa corrispondere gli URL con gli indirizzi IP.
Garantisce che i pacchetti di dati trasmessi, giungano all’utilizzatore finale tutti quanti e nel giusto ordine; richiede la ritrasmissione dei dati mancanti o giunti in qualche modo errati, riassembla i pacchetti di dati per ricostituire i file originari.
Il suo lavoro fa sembrare il flusso dei dati ricevuti continuo ed ordinato, mentre in effetti i dati giungono in frammenti ed in una sequenza che può essere diversa da quella di partenza, per la diversità di percorso che può instaurarsi da un pacchetto all’altro.
Uno dei problemi della rete è quello di trovare il percorso da far seguire ai dati, attraverso i tanti percorsi possibili in una rete globale; OSPF è uno dei protocolli che rispondono a questo scopo: dati i due indirizzi IP del mittente e del destinatario, stabilisce il percorso da far seguire ai dati della comunicazione, percorso che può anche cambiare nel tempo, in base alla situazione di traffico della rete e ad altri parametri come costo, velocità, affidabilità, etc..
I protocolli applicativi sono quelli che forniscono i servizi all’utente finale, basandosi sul lavoro degli altri protocolli, che si occupano di stabilire la connessione e trasportare i dati, fra di essi vi sono: FTP – File Transfer Protocol, per il trasferimento di file fra due host; TELNET: per consentire ad un p.c. di operare come se fosse un terminale di un computer remoto; SMTP – Simple Mail Transfer Protocol: per lo scambio di messaggi elettronici; HTTP – Hyper Text Transfer Protocol: è il protocollo che viene utilizzato per la trasmissione della pagina.
E-commerce:
Fra le potenzialità sviluppabili, si annovera la creazione di imprese ‘virtuali’, cioè di imprese che – servendosi dei servizi B2B – gestiscano tutto il business, dalla acquisizione di materie prime, alle lavorazioni, alla vendita del prodotto finito, semplicemente servendosi dei servizi reperibili nei marketplace.
E-Government.
La pubblica amministrazione utilizza in misura progressivamente più ampia le tecnologie digitali e di rete, per rendere più efficaci e rapidi i suoi processi e la capacità di rispondere ai fabbisogni di servizi, delle imprese e dei cittadini.
Internet banking / online banking
Con questa denominazione si indicano le operazioni bancarie effettuate dai clienti degli istituti di credito, tramite una connessione remota con la propria banca, opportunità divenuta largamente realizzabile grazie allo sviluppo di Internet. La tecnologia oltre ad essere adottata dalle banche ‘tradizionali’, ha permesso la nascita di banche totalmente ‘on line’, prive di sportelli aperti al pubblico, con cui è possibile effettuare operazioni solo attraverso la rete telematica.
E-learning per la formazione e l’addestramento con tecnologie multimediali:
Viene così denominato l’apprendimento supportato dalle tecnologie di rete, su supporti didattici caratterizzati da multimedialità e possibilità di interazione.
Viene denominato malware (contrazione di ‘malicious software’) un qualsiasi software sviluppato per installarsi su di un computer all’insaputa dell’utente. I malware possono avere effetti e scopi molto diversificati: si può andare da un semplice ‘disturbo’ dell’operatività del computer ospite, al furto o distruzione di programmi e dati, all’impiego del computer per scopi illeciti.
Per definizione virus = software autoreplicante inserito nel programma o in un file prodotto da un applicativo.
Il ciclo di vita di un virus è caratterizzato da tre attività fondamentali:
Elenco dei principali tipi di virus con specifica della modalità di attacco
Ogni software antivirus si basa su di un proprio database con le informazioni sui virus noti e per scoprire eventuali infezioni, cerca le firme nel software contenuto nel computer. Ovviamente l’efficacia di un anti virus è legata al suo continuo aggiornamento, con le informazioni relative ai nuovi virus, che progressivamente si manifestano. Ogni produttore di anti virus rilascia gli aggiornamenti del suo software a scadenze regolari.
Alcuni antivirus utilizzano una tecnica nota come euristica: sanno a cosa assomiglia il virus e determinano se un’applicazione sconosciuta corrisponde a questi criteri. Un’altra tecnica adottata dagli anti virus consiste nel mantenere una lista dei files potenzialmente infettabili, presenti sul computer e per ciascuno di essi il valore assunto da una serie di parametri caratteristici (per esempio: la dimensione, la data dell’ultima modifica, la checksum). Una modalità di controllo consiste nella verifica del non cambiamento dei parametri, in quanto una loro alterazione può essere potenzialmente associata all’inserimento di malware.
Un firewall è un dispositivo che ha il compito di esaminare tutti i pacchetti, in ingresso ed in uscita da e verso una rete o un computer, impedendo il transito di quelli giudicati potenzialmente dannosi, in base ad un insieme di regole pre-impostate. Un firewall può essere sia un normale computer, dotato del software e hardware opportuno, sia un dispositivo di rete specializzato per svolgere tale funzione.
I firewalls utilizzano diverse tecniche per svolgere il loro compito, quelle fondamentali sono:
3) Intrusion detection system
L’accesso non autorizzzato ad un sistema, può avere lo scopo di carpire informazioni riservate, in questo caso l’autore dell’attacco farà di tutto, affinchè la sua azione passi inosservata e quindi eviterà quanto più possibile di fare danni al sistema e lasciare tracce della sua intrusione. Un IDS (Intrusion Detection System) è volto appunto a fronteggiare tale tipo di minaccia e quindi non cerca di bloccare le eventuali intrusioni, cosa che compete ai firewall, ma tenta di rilevarle laddove si verifichino. Gli IDS agiscono controllando continuamente non solo il traffico dei dati, ma anche le elaborazioni svolte dai computer, per evidenziare ad esempio l’innalzamento dei privilegi di un utente o il tentativo di accesso a file riservati; si possono dividere in due tipi:
I sistemi basati su regole, al pari degli anti virus, sfruttano la disponibilità di un proprio database di informazioni per rilevare le intrusioni. Quando il traffico di rete corrisponde ad una regola nota all’IDS, esso segnala il tentativo di intrusione. Il limite principale di questo tipo di IDS è che il livello di sicurezza che può fornire, dipende dall’aggiornamento del suo database.
I sistemi adattativi usano tecniche più sofisticate, basate sull’intelligenza artificiale, non solo per riconoscere i tipi di attacco già noti, ma anche per riconoscerne di nuovi. Pur essendo efficaci ed affidabili, sono poco diffusi a causa del costo e per il fatto che richiedono approfondite conoscenze di matematica e statistica per essere programmati correttamente e piattaforme hardware ad alte prestazioni per il loro utilizzo.
Crittografia = Scrivere in segreto
La cifratura è il procedimento per convertire un testo originale in uno completamente diverso, per nasconderne il significato, salvo al legittimo destinatario che, ovviamente, deve essere a conoscenza del metodo per decifrare il testo, per riportarlo nel suo aspetto originale. La cifratura si basa sull’applicazione di un algoritmo: per esempio il testo ‘buongiorno’ può essere cifrato in ‘nipmhoptmp’ tramite il semplice algoritmo di usare il tasto della tastiera a destra di quello giusto e decifrato di conseguenza.
Gli algoritmi di cifratura usati in informatica, si basano sulla trasformazione della sequenza di bit che costituisce il messaggio originale, mediante operazioni che coinvolgono una sequenza esterna detta ‘chiave’ di cifratura. Solo chi possiede la ‘chiave’ di decifratura potrà ripristinare il messaggio e leggerlo nella sua forma originale. Nella slide successiva sono rappresentati due esempi semplici di cifraturausati da Giulio Cesare.
Premessa: la chiave pubblica può essere conosciuta da tutti, la chiave privata deve essere nota solo al suo possessore. Una ‘chiave’ consente, mediante un suo specifico algoritmo, sia di cifrare un messaggio, in modo da renderlo illeggibile, sia di decifrarlo e farlo tornare nella sua forma originale e leggibile. Una chiave di cifratura ’singola’, che serva sia a cifrare che a decifrare, presenta il problema di dover essere conosciuta sia dal mittente che dal destinatario. Se si devono proteggere le comunicazione all’interno di un gruppo di utenti – per esempio i clienti di una banca – sarebbe necessario che la chiave fosse conosciuta da tutti gli utenti, perdendo una caratteristica essenziale, cioè la segretezza derivante dall’essere conosciuta solo dal mittente e dal destinatario di ciascuna comunicazione. Un aumento della sicurezza si ottiene con la chiave ‘doppia’ che consente di fornire a ciascuno una chiave ‘personale’ che solo il proprietario conosce completamente. Infatti una chiave doppia è in effetti costituita da due chiavi: la pubblica e la privata; la chiave pubblica può essere conosciuta da tutti, la chiave privata deve essere nota solo al suo possessore; ciascuna chiave può essere usata per cifrare e decifrare, ma è asimmetrica, nel senso che un messaggio cifrato con la chiave pubblica, può essere decifrato solo con la corrispondente privata ed un messaggio cifrato con la chiave privata può essere decifrato solo dalla corrispondente pubblica.
Il signor Bianchi vuole inviare un messaggio al sig. Celeste, lo cifra con la chiave pubblica di Celeste e lo invia; quando il sig. Celeste riceve il messaggio, lo decifra con la sua chiave privata (che solo lui conosce) ed è quindi l’unico a poterlo leggere. In questo modo è assicurata la segretezza della comunicazione ma non l’autenticità, perché il sig. Celeste non ha certezza che il mittente del messaggio sia veramente Bianchi: chiunque può inviargli un messaggio cifrato con la chiave pubblica di Celeste, affermando di essere Bianchi. Per accertare l’identità del mittente occorre una duplice operazione di codifica (vedi la figura).
1. Bianchi cifra il messaggio con la sua chiave privata (solo sapendo che il mittente è Bianchi si potrà decifrare il messaggio con la sua chiave pubblica); 2. Bianchi fa una seconda cifratura con la chiave pubblica di Celeste (solo Celeste potrà scoprire mediante la sua chiave privata che il mittente è Bianchi).
Il messaggio viene inviato a Celeste. Chiunque lo intercettasse potrebbe solo ricavare che il destinatario è Celeste.
1. Celeste decifra il messaggio con la sua chiave privata e così scopre che il mittente è Bianchi; 2. Celeste fa una seconda decifratura con la chiave pubblica di Bianchi e se il messaggio è stato cifrato davvero da Bianchi, può leggere il messaggio in chiaro.
Esempio di cifratura a chiave asimmetrica per numeri da trasmettere secondo un algoritmo che prevede l’uso delle chiavi come esponente.
Servizi e applicazioni su internet
Per garantire l’autenticità e conformità all’originale, di un atto in formato elettronico, si ricorre alla ‘firma digitale’, che si basa sulle proprietà della cifratura asimmetrica che abbiamo visto prima.
Al file del documento si applica un particolare algoritmo non invertibile (funzione hash), che produce un numero di lunghezza fissa, p.e. di 256 bit, indipendentemente dalla lunghezza del documento originale – potremmo fantasiosamente considerarlo una specie di riassunto binario – che viene detto ‘impronta digitale’ del documento.
Questa impronta digitale viene codificata con la chiave privata dell’autore ed allegata al documento in chiaro. Chi viene in possesso di una copia del documento, ‘firmato’ e vuole controllarne l’integrità, deve applicare la funzione hash alla sua copia in chiaro e confrontare il risultato con quello dell’impronta digitale, una volta decifrata con la chiave pubblica dell’autore, se i risultati sono uguali il documento è conforme all’originale.
Fonti normative
La titolarità della firma digitale è garantita dai “certificatori ” accreditati presso il Centro Nazionale per l’Informatica nella Pubblica Amministrazione (CNIPA), che tengono registri delle chiavi pubbliche, presso i quali è possibile verificare la titolarità del firmatario di un documento elettronico.
L’acquisizione di una chiave privata è a pagamento ed ha una scadenza.
1. Introduzione all'informatica
2. Le principali strutture dei dati
4. Hardware: gli elementi fondamentali dell'architettura di un elaboratore elettronico.
5. Le memorie, organizzazione dei dati e interfacce
6. La gestione delle memorie, indicatori di prestazioni e tassonomia dei computer
7. Software di sistema e applicativo
8. Sistemi informatici e modelli di database
9. Le forme normali e l'algebra relazionale
10. Lo sviluppo del software in azienda
12. La trasmissione dei dati e reti