Informatica Lezione 10 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Pacchetti IP Abbiamo visto che … –Un ruolo del protocollo TCP è di suddividere il messaggio in frammenti più brevi (pacchetti) –Il protocollo IP definisce l’informazione che deve essere aggiunto al pacchetto per realizzare il trasferimento nella rete Come funziona il trasferimento dei pacchetti in Internet?
Pacchetti IP Trasferimento dei pacchetti: –Usiamo un’analogia (da Vincent Cerf, uno dei inventori di Internet): mandare un romanzo da Tahiti alla casa editrice a New York usando solo cartoline postali
Pacchetti IP Bisogna spezzare il romanzo in frammenti (ognuno di poche riga) … numerare ogni cartolina (in modo tale che la sequenza corretta può essere ricostruita) … scrivere l’indirizzo della casa editrice (il destinatario) su ogni cartolina … mettere le cartoline nella casella di lettere Poi il servizio postale di Tahiti le invierà alla casa editrice
Pacchetti IP Non è detto che tutte le cartoline seguano lo stesso itinerario –Alcuni arrivano a New York via Hong Kong … –… alcuni arrivano a New York via Los Angeles, ecc. Alla casa editrice, la numerazione delle cartoline permette la ricostruzione del romanzo
Pacchetti IP Pacchetto IP: contiene lo spazio per scrivere: –Informazione (una quantità limitata) –Un numero progressivo (identificatore) –L’indirizzo IP del destinatario I pacchetti IP sono inviati attraverso Internet uno alla volta Possono seguire percorsi diversi dallo stesso mittente e lo stesso destinatario Giunti la destinazione sono reordinati secondo al numero identificatore
Pacchetti IP Un vantaggio della possibilità di seguire diversi percorso in rete: –Nel caso di congestioni in rete (potrebbe essere più efficiente seguire un percorso invece di un altro) –Nel caso di un guasto di un dispositivo di un percorso (in questa situazione, il percorso non è più disponibile) Per visualizzare un percorso tra nostro computer e quello di un sito web:
Collegare un computer a Internet Un computer è collegato ad Internet tramite un ISP (Internet Service Provider) Tre modi principali per collegare un computer a Internet: –Accesso residenziale –Accesso aziendale o universitarie –Accesso senza fili
Collegare un computer a Internet Accesso residenziale: –Sono necessari dei dispositivi per poter usare la rete telefonica come mezzo di comunicazione tra computer: i modem Computer Modem Segnale digitale Segnale digitale Segnale analogico (linea telefonica) MOdulazione DEModulazione Computer Modem
Accesso residenziale ISP - per esempio: tiscali.it, aruba.it Il classico collegamento via modem: –Il modem del computer dell'utente deve essere connesso alla rete telefonica (usando un spinotto identico a quello usato per i normali apparecchi vocali) –Per accedere ad Internet, il modem deve comporre il numero del provider –Il provider anche ha un computer (permanentemente) connesso ad Internet tramite un modem –Una connessione tra il computer del utente e il computer del provider è creato
Accesso residenziale Il computer del provider abilita l'invio e la recezione di informazione in Internet al computer dell'utente Per esempio, quando l'utente clicca su un link in una pagina web: –La richiesta per accedere alla nuova pagina passa dal computer dell'utente a quello del provider –... poi dal computer del provider al web server remoto che gestisce la pagina richiesta –... poi il web server manda la pagina al computer del provider –... poi il computer del provider manda la pagina al computer dell'utente
Accesso residenziale Modem dial-up: –Usa la stessa linea utilizzata per le normali chiamate telefoniche –Frequenza può raggiungere 56 Kbps (Kilobit per secondo) –Sempre meno diffuso: Negli Stati Uniti, in 2000, 74% del accesso residenziale ad Internet era realizzato tramite modem dial-up In 2006, il percentuale è diventato 36%
Accesso residenziale Negli ultimi anni sono diffuse tecnologie come ADSL (Asymmetric Digital Subscriber Line) –Un esempio di accesso residenziali a banda larga –Velocità (asimmetrico): Verso l'utente: tipicamente circa 10 Mbps (Megabit per secondo) Verso l'ISP: tipicamente circa 1 Mbps –Progettato per brevi distanze tra i modem residenziali e quelli dell'ISP Permette una frequenza di trasmissione più alta rispetto a quella dei modem dial-up tradizionali
Accesso residenziale ADSL (Asymmetric Digital Subscriber Line) –Usa tre bande di frequenza non sovrapposte: un canale verso l'utente, un canale verso l'ISP, un canale telefonico ordinaria a due vie
Collegare un computer a Internet Accesso aziendali o universitarie (LAN): –I computer sono collegati sotto forma di rete locale (LAN, Local Area Network) –Ethernet è comunemente usato nelle LAN: versione Ethernet di 2006 ha una velocità di 10 Gbps –Intranet: un nome per la rete locale di un'organizzazione –Tramite un computer chiamato gateway, una rete locale (e quindi tutti i computer che contiene) può essere connesse ad Internet
Collegare un computer a Internet Accesso senza fili: –Rete senza fili (wireless): una variante di un LAN –Un computer chiamato hub è fisicamente collegato a Internet (forse tramite altri computer e dispositivi nella LAN) –Il hub è capace di ricevere e trasmettere (in broadcast) segnali, solitamente in radiofrequenza –I computer mobili (portali, PDA, ecc.) anche sono in grado di ricevere e trasmettere sulla stessa frequenza –Il protocollo usato dalle reti senza fili funzione come Ethernet (che è anche un protocollo di "broadcast") Per esempio, IEEE (velocità della versione di 2003: 54 Mbps)
Il WWW WWW (World Wide Web): tutti i web server (che hanno il ruolo di inviare file ai browser) e i loro file I file normalmente sono le pagine web, ma anche possono essere file di audio, filmati ecc. Distinzione tra Internet e il WWW: –Internet: cavi e router che collegano i computer che hanno un indirizzo IP –WWW: un servizio di Internet fornito dal sottoinsieme di quei computer (i web server)
Il WWW Una richiesta per visualizzare una pagina web: tramite uno Universal Resource Locator (URL) –Per esempio: –Tre parti principali: Protocollo: indica al computer come gestire i file Nome del server: che è il nome simbolico dell'indirizzo IP del web server della pagina richiesta Percorso della pagina: /~sproston/Psicologia/0708/magistrale0708.html identifica il file e la sua posizione nel file system del web server
Il WWW Le pagine sono rappresentate (memorizzate, spedite) sotto forma di sorgente –Sorgente: una descrizione di come la pagina deve apparire all'utente –Non è il caso che le pagine sono rappresentate come un grafico –I file di descrizione in generale richiedono meno spazio (rispetto alla rappresentazione grafico di una pagina) –Il browser può adattare la visualizzazione di una pagina –Per leggere il sorgente di una pagina: scegliere Visualizza dalla barra dei menu del browser, poi Sorgente o HTML –Sorgente tipicamente scritto nel linguaggio HTML (Hypertext Markup Language)
La sicurezza nelle reti Comunicazione sicura: voluta per le transazioni commerciali in Internet, informazione sulla sicurezza nazionale, messaggi personali, ecc. –Problema: Internet è una rete pubblica, e informazione può essere intercettata Attacchi a una rete privata possono arrivare dall’esterno Firewall: un dispositivo posizionato tra una rete privata (di un’organizzazione) e l’esterno –Controlla e regola l’entrata e l’uscita di pacchetti, per evitare che i pacchetti di malintenzionati penetrino la rete
La sicurezza nelle reti Proprietà necessario per la sicurezza in rete: –Riservatezza: solo il mittente e il destinatario dovrebbero essere in grado di comprendere il contenuto del messaggio trasmesso Un messaggio può essere intercettato: quindi dovrebbe essere cifrato (dal mittente) e decifrato (dal destinatario) Il messaggio cifrato dovrebbe essere incomprensibile a chi non possiede il codice di decifratura Esistono altri tipi di riservatezza: per esempio, forse il mittente vuole mantenere segreto non solo il contenuto del messaggio mandato al destinatario, ma anche il fatto che sta comunicando con il destinatario
La sicurezza nelle reti Altre proprietà necessario per la sicurezza in rete: –Autenticazione: il mittente e il destinatario devono essere reciprocamente sicuri della loro identità –Integrità del messaggio: il contenuto di una comunicazione non deve subire alterazioni durante la trasmissione Alterazioni: per esempio, a manipolazioni –Disponibilità e controllo dell’accesso: i servizi forniti devono essere disponibili e accessibili agli utenti autorizzati in rete Attacchi di negazione del servizio (denial-of-service): rende inutilizzabili reti, host e altre componenti di Internet da parte degli utenti
La sicurezza nelle reti Durante la comunicazione, un malintenzionato potrebbe: –Ascoltare i messaggi in transito (per esempio, per rubare un password) –Rimuovere e aggiungere messaggi o modificare il loro contenuto A: mittente (sicuro) B: destinatario (sicuro) Malintenzionato Dati Messaggi
Crittografia Crittografia: consente il mittente di mascherare i dati in modo che un malintenzionato non possa comprendere il contenuto Il destinatario deve essere in grado di recuperare i dati originali Testo in chiaro (plaintext o cleartext): il messaggio originario scritto dal mittente Messaggio cifrato (ciphertext): la versione cifrata del messaggio
Crittografia In molti casi le tecniche di crittografia sono nel dominio pubblico –Occorrono delle informazioni segrete che impediscono ai malintenzionati di decifrare i messaggi: le chiavi –Il mittente ha una chiave K A usata per generare la versione cifrata K A (m) del messaggio m in testo in chiaro –Il destinatario ha una chiave K B e un algoritmo di decifratura che restituisce il messaggio m in testo in chiaro: cioè calcola K B (K A (m))=m
Crittografia A: mittente (sicuro) B: destinatario (sicuro) Malintenzionato Testo in chiaro Testo cifrato Testo in chiaro Chiave K A Chiave K B
Chiave simmetrica Le chiavi di A (mittente) e B (destinatario) sono identiche e segrete Per esempio: un antico algoritmo - cifrario di Cesare –Considerare un messaggio di testo –Sostituire ogni carattere del testo con un altro sfasato (rispetto al primo) i un numero k di posti nell’alfabeto –Per esempio: se k=3, “a” diventa “d”, “c” diventa “f”, ecc. –Ciclico: a volta terminato l’alfabeto si ricomincia con la lettera “a” –La chiave: il valore k –“Brad, I love you. Angelina” (con k=3) diventa “eudg, l oryh brx. dqjholqd” (nell’alfabeto inglese)
Chiave simmetrica Per esempio: cifrario monoalfabetico –Considerare un messaggio di testo –Sostituire ogni carattere del testo con un altro, ma la sostituzione avviene seguendo uno schema arbitrario –Però una data lettere è sostituita con sempre la stessa lettera –Per esempio: “Brad, I love you. Angelina” diventa “bomv, s gktc wky.mjzcgsjm” abcdefghijklmnopqrstuvwxyz mnbvcxzasdfghjklpoiuytrewq
Chiave simmetrica –Nel caso di cifratura monoalfabetica: un attacco può essere basato sulla ricerca tra tutti le combinazioni possibili (un attacco di “forza bruta”) Alcune lettere e gruppi di lettere (in italiano, “che”, “zione” e “mente”) ricorrono con maggiore frequenza: rende più facile un attacco al codice –Cifratura polialfabetica: usa moltiplici sostituzioni monoalfabetiche Per esempio, la sequenza C1 C2 C2 C1 C2 Cifrare la prima lettera del messaggio usando C1, la seconda lettera con C2, …, la quinta con C2 Poi ripetiamo la sequenza: la sesta lettera è cifrata con C1, la settima con C2, ecc.
Chiave pubblica Svantaggio delle chiavi simmetriche: le due parti coinvolte nella comunicazione devono sapere la chiave –Ma come? Comunicato fisicamente? Tramite un canale sicuro? Non è sempre possibile Una soluzione: chiave pubblica –Proposta da Diffie e Hellman nel 1976 –Il sistema usa due chiavi: Una chiave pubblica (K B + ): disponibile a chiunque, anche alle malintenzionati Una chiave privata (K B - ): conosciuta solo del destinatario della comunicazione
Chiave pubblica L’uso delle due chiavi: –Il mittente usa un dato algoritmo di cifratura e la chiave pubblica K B + per generare un messaggio criptato (scritto K B + (m) ) –Il destinatario usa un algoritmo di decifratura e la chiave privata K B - per decodificare il messaggio criptato (cioè il destinatario calcola K B - (K B + (m)) ) –Esistono metodi per scegliere chiavi pubbliche e private in modo tale che K B - (K B + (m)) = m
Chiave pubblica A: algoritmo di cifratura B: algoritmo di decifratura Messaggio in chiaro, m Testo cifrato K B + (m) Chiave pubblica K B + Chiave privata K B - Messaggio in chiaro, m K B - (K B + (m))
Chiave pubblica: RSA Il sistema a chiave pubblica RSA è il più noto dei sistemi a chiave pubblica –RSA: nome derivato dalle iniziali degli inventori Rivest, Shamir e Adleman –Due punti fondamentali: La scelta della chiave pubblica e di quella privata Gli algoritmi di cifratura e di decifratura –Basato sui numeri primi: i numeri naturali che sono divisibili solo per 1 e per se stessi: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, … –Fattori di un numero naturale z: qualsiasi insieme di interi che, moltiplicati insieme, danno z –Notazione: y mod z sta per il resto della divisione y/z
Chiave pubblica: RSA Per ottenere la chiave pubblica e la chiave privata, il destinatario deve: 1.Scegliere due numeri primi, p e q (tanto più grande sarà il loro valore tanto più difficile risulterà violare RSA: raccomandato che il prodotto di p e q sia dell’ordine di 768 o 1024 bit) 2.Calcolare n = pq e z = (p-1)(q-1) 3.Scegliere un numero e (encryption), tale che e<n, diverso da 1 e che non ha fattori in comune con z 4.Scegliere un numero d (decryption), tale che ed – 1 sia un multiplo di z (in altri termini, tale che il resto della divisione ed/z sia 1) 5.La chiave pubblica K B + è la coppia (n, e), la chiave privata K B - è la coppia (n, d)
Chiave pubblica: RSA Angelina vuole inviare a Brad un numero m, tale che m<n Per codificarlo, Angelina usa la chiave pubblica (n, e) per calcolare il messaggio cifrato c, dove c = m e mod n Per decifrare il messaggio ricevuto, Brad usa la chiave privata per calcolare m = c d mod n La scelta di e e d garantisce che (m e mod n) d mod n = m
Chiave pubblica: RSA Esempio (artificiale): –Brad sceglie p=5 e q=7 –Poi n = pq = 35, e z = (p-1)(q-1) = 24 –Brad sceglie e = 5 (5 e 24 non hanno fattori in comuni) –Brad sceglie d = 29 ((5x29) – 1 è divisibili per 24) –Brad rende pubblica la chiave (35, 5), e mantiene segreta la chiave (35, 29) –Angelina vuole inviare le lettere “l”, “o”, “v”, “e” a Brad –Interpretiamo le lettere come numeri fra 1 e 26 (i numeri corrispondono alle posizioni delle lettere nel alfabeto inglese)
Chiave pubblica: RSA Esempio: –Codifica di Angelina (chiave pubblica n=35, e=5) –Decodifica di Brad (chiave privata n=35, d=29) Lettere in chiarom: rappresentazione numericameme Testo cifrato c=m e mod n l o v e Testo cifrato ccdcd m=c d mod nLettere in chiaro l o v e
Chiave pubblica: RSA Perché funziona RSA? –(m e mod n) d mod n = (m e ) d mod n = m ed mod n –Teorema: se p e q sono primi, e n = pq, allora: x y mod n = x y mod (p-1)(q-1) –Applicando questo risultato, possiamo scrivere: m ed mod n = m (ed mod (p-1)(q-1)) mod n –Ricordiamo che e e d sono tali che ed – 1 sia divisibile per (p-1)(q-1) –Quindi il resto di (p-1)(q-1)/ed è 1 –Così ed mod (p-1)(q-1) = 1 –Dato che m<n, abbiamo: m (ed mod (p-1)(q-1)) mod n = m 1 mod n = m –Poi abbiamo il risultato che volevamo: m ed mod n = m
Chiave pubblica: RSA L’efficacia di RSA: –Non si conoscono algoritmi veloci per la fattorizzazione dei numeri interi –Quindi, anche con la conoscenza del numero n, è computazionalmente proibitivo calcolare i fattori p e q –Se un algoritmo veloce per la fattorizzazione sia sviluppato, il sistema RSA non sarebbe più sicuro
Integrità Firme digitale: usati come le firme nel mondo “non-informatico” –Per esempio, per indicare il titolare di un documento, o di dichiarare di approvare del contenuto di un documento –Devono essere verificabile, non falsificabile e non ripudiabile –Usiamo la crittografia a chiave pubblica Esempio: –Brad vuole firmale digitalmente un documento m che manda a Angelina –Calcola K B - (m) usando la sua chiave privata –Angelina riceve K B - (m) da Brad, e vuole convincere un giudice che il documento è stato firmato da Brad –Angelina applica la chiave pubblica di Brad per calcolare K B + (K B - (m)) = m, che corrisponde al documento originale
Integrità B: algoritmo di cifratura B: algoritmo di decifratura Messaggio in chiaro, m Testo cifrato K B - (m) Chiave pubblica K B + Chiave privata K B - Messaggio in chiaro, m K B + (K B - (m))
Integrità –Il giudice conclude che Brad ha firmato il documento, perché: La firma digitale è stato realizzato che la chiave privata K B - Solo Brad è in possesso della sua chiave privata –Si nota che per un altro messaggio m’ m, poi K B + (K B - (m’)) m