Appunti di Sicurezza. Orgest Shehaj <orgest.shehaj@gmail.com>

Documenti analoghi
SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

Applicazioni per l autenticazione Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

RETI DI CALCOLATORI. Crittografia. La crittografia

La firma digitale CHE COSA E'?

Informatica per la comunicazione" - lezione 13 -

Sicurezza: necessità. Roberto Cecchini Ottobre

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

Crittografia. Appunti a cura del prof. Ing. Mario Catalano

Introduzione alla crittografia con OpenPGP

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti

Documenti cartacei e digitali. Autenticità. Cosa si vuole garantire? Riservatezza. Integrità 11/12/2012. PA digitale: documenti e firme (I.

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

Sicurezza dei sistemi informatici Firma elettronica E-commerce

Protezione della posta elettronica mediante crittografia

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione

Software Servizi Web UOGA

Pretty Good Privacy. PGP fornisce crittografia ed autenticazione. creato da Phil Zimmermann nel in origine è un'applicazione per

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

SICUREZZA. Sistemi Operativi. Sicurezza

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Corso di ARCHITETTURA DEI SISTEMI INFORMATIVI - Prof. Crescenzio Gallo. 114 Sistemi informativi in rete e sicurezza 4.6

Sistema di gestione Certificato MANUALE PER L'UTENTE

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette

REVISIONI ottobre 2010 RTI Prima stesura

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it

Certificati digitali con CAcert Un'autorità di certificazione no-profit

POSTA ELETTRONICA (TRADIZIONALE e CERTIFICATA) FIRMA DIGITALE PROTOCOLLO INFORMATICO. Maurizio Gaffuri 11 ottobre 2007

La sicurezza nel Web

Lezione 7 Sicurezza delle informazioni

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

Express Import system

Firma digitale Definizione

I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

GESGOLF SMS ONLINE. Manuale per l utente

Problematiche correlate alla sicurezza informatica nel commercio elettronico

Allegato 3 Sistema per l interscambio dei dati (SID)

SETEFI. Marco Cantarini, Daniele Maccauro, Domenico Marzolla. 19 Aprile 2012

Corso di Amministrazione di Reti A.A. 2002/2003

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

4 3 4 = 4 x x x 10 0 aaa

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Allegato A: Regole tecniche per la gestione dell identità.

Procedura SMS. Manuale Utente

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

DNSSEC. Cos è DNSSEC? Perché serve DNSSEC? Per un Internet sicuro

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Firma digitale: aspetti tecnologici e normativi. Milano,

Accreditamento al SID

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

DOCUMENTO ELETTRONICO E FIRMA DIGITALE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Database. Si ringrazia Marco Bertini per le slides

La sicurezza nelle reti di calcolatori

Sicurezza a livello IP: IPsec e le reti private virtuali

A tal fine il presente documento si compone di tre distinte sezioni:

SOMMARIO... 3 INTRODUZIONE...

POSTA ELETTRONICA CERTIFICATA

FIRMA DIGITALE Cos'è e come funziona

ARP (Address Resolution Protocol)

Software di crittografia per GNOME. Nicola VITUCCI POuL Politecnico Open unix Labs

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

e-government La Posta Elettronica Certificata

PEC un obbligo che semplifica

Reti di Telecomunicazione Lezione 8

1. Compilazione dell istanza di adesione

Crittografia e sicurezza informatica. Sistema di voto elettronico

Politica del WHOIS relativa al nome a dominio.eu

La sicurezza nelle reti di calcolatori

Manuale Utente SIRECO

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Una minaccia dovuta all uso dell SNMP su WLAN

Soluzioni per archiviazione sicura di log di accesso server Windows. PrivacyLOG

Il calendario di Windows Vista

Esercizio data base "Biblioteca"

Manuale Utente Albo Pretorio GA

Le caselle di Posta Certificata attivate da Aruba Pec Spa hanno le seguenti caratteristiche:

MANUALE UTENTE Fiscali Free

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Scambio delle chiavi. mercoledì 7 dicembre 2011

Utilizzo di Certificati SSL e relative implicazioni

Overview su Online Certificate Status Protocol (OCSP)

Coordinazione Distribuita

Gestione della memoria centrale

Quasar Sistemi S.r.l.

Manuale LiveBox APPLICAZIONE IOS.

MANUALE PARCELLA FACILE PLUS INDICE

Analisi di programmi: Crittografia

DURC Client 4 - Guida configurazione Firma Digitale. DURC Client 4.1.7

Inizializzazione degli Host. BOOTP e DHCP

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Guida alla registrazione on-line di un DataLogger

PORTALE CLIENTI Manuale utente

Capitolo 2. Operazione di limite

Transcript:

Appunti di Sicurezza Orgest Shehaj <orgest.shehaj@gmail.com> 26 dicembre 2012

1 Indice 1. Crittografia 2. Cifrari storici 3. Des e Rsa 4. Identificazione, Autenticazione e Firma Digitale 5. Key Management 6. Management of Private Keys 7. Ca and PKI 8. Key Escrow 9. Pretty Good Privacy 10. Internet Security: SSL 11. OS Security: User Authentication 12. Cryptographic Techiniques for Authentication 13. OS Security: Access Control 14. Denial of service (DOS) 15. Internet Security: Firewall 16. IP Security 17. Intrusion Detection Systems

Con Sicurezza intendiamo: 1. Confidenzialità 2. Integrità 3. Disponibilità Le prime due possono essere garantite attraverso la crittografia. 1 Crittografia La parola crittografia deriva dal greco e tradotto letteralmente significa scrittura nascosta. La crittografia tratta dei metodi per rendere un messaggio offuscato in modo da non essere comprensibile alle persone non autorizzate a leggerlo. Un tale messaggio si chiama comunemente crittogramma. 1.1 Funzione unidirezionale Una funzione unidirezionale, o one-way function in inglese, e una funzione matematica facile da calcolare ma difficile da invertire. Facile da calcolare perchè esistono degli algoritmi in grado di calcolare in tempo polinomiale un immagine della funzione f(x), ma difficile da invertire poichè non ci sono algoritmi polinomiali in grado di calcolare una controimmagine della funzione f(x). Funzione di Cifratura Funzione di Decifrazione 1.2 Cifrario Asimmetrico O crittografia a chiave pubblica/privata, attraverso la quale e possibile comunicare senza doversi mettere d accordo su una possibile chiave segreta da utilizzare. Grazie a questo cifrario viene spezzato il legame che c è tra la funzione di cifratura e la funzione di decifratura, ovvero chi sa fare una delle due cose non deve necessariamente sapere come si fa anche l altra. In questo cifrario la comunicazione e associata a una coppia di chiavi: Chiave pubblica: la quale deve essere nota e a disposizione di tutti poichè serve per criptare il messaggio. Chiave privata: che e segreta ed e a conoscenza solo del utente a cui appartiene. La chiave privata serve per decifrare i messaggi che sono stati cifrati con la chiave pubblica. 1.2.1 Distribuzione della chiave pubblica: Tutti possono (devono) distribuire pubblicamente la loro chiave pubblica, e tutti gli altri possono avere accesso alla chiave pubblica di tutti (quella segreta deve essere la chiave privata). La chiave pubblica viene messa in allegato ai messaggi di chiave elettronica oppure viene messa nella home page dell utente, in questo modo la chiave pubblica viene distribuita più velocemente. L unico svantaggio di tutto ciò e che può essere possibile un attacco di man in the middle. 1.3 Cifrario Simmetrico In una comunicazione a chiave privata il mittente e il destinatario devono accordarsi su una chiave segreta noto solo a essi, e tale incontro non può avvenire in un canale non cifrato, sotto gli occhi di tutti ma deve avvenire attraverso un canale out-of-band, che a volte può risultare costoso, specie se ripetuto continuamente. In questi tipi di scenari i partecipanti criptano e decriptano i messaggi con la stessa chiave di sessione. Questo tipo di comunicazione e più veloce della comunicazione a chiave privata, ma il difetto e che con l aumentare degli utenti aumenta anche il numero delle chiavi da condividere. Quindi per n utenti che comunicano tra di loro avremo n 2 chiavi da condividere.

Cifrari storici 2.1 Cifrario a sostituzione Un cifrario a sostituzione e un metodo di cifratura in cui ogni unità del testo in chiaro e sostituita con del testo cifrato secondo uno schema regolare, le unita possono essere singole lettere (il caso più comune), coppie di lettere, sillabe, mescolanze o altro. Il destinatario decifra il messaggio applicando una sostituzione invertita. Il difetto di questi tipi di cifrari e quello di essere esposti a degli attacchi statistici. Esistono diversi tipi di cifrari a sostituzione: se il cifrario opera su singole lettere, e detto cifrario a sostituzione semplice, se opera su gruppi di lettere e detto cifrario poligrafico. 2.1.1 Cifrario di Cesare Il cifrario di Cesare è uno dei più antichi algoritmi crittografici. E un cifrario a sostituzione monoalfabetico in cui ogni lettera del testo in chiaro e sostituita nel testo cifrato dalla lettera che si trova un certo numero di posizioni più avanti nello stesso alfabeto. Cesare usava un codice di sostituzione molto semplice, nel quale la lettera chiara veniva sostituita dalla lettera che la segue di tre posti nell alfabeto. Quindi la lettera A veniva sostituita dalla lettera D, e la lettera B dalla lettera E ecc. Se prendiamo come esempio la frase auguri di buon compleanno avremo come messaggio cifrato : Chiaro auguridibuoncompleanno Cifrato dxjxulglexrqfrpsohdqqr 2.2 Cifrario polialfabetico Un cifrario polialfabetico fa uso di un numero più o meno grande di alfabeti per sostituire le lettere del messaggio, usando un determinato ordine che costituisce la chiave. Per facilitare la cifratura, tutti gli alfabeti sono scritti in genere in una grande tabella di dimensione 26 x 26. 2.3 Cifrario a trasposizione Un cifrario a trasposizione e un metodo di cifrare in cui le posizioni occupate dalle unità di testo in chiaro sono cambiate secondo un determinato schema, cosi che il testo cifrato costituisca una permutazione del testo in chiaro. Per aumentare la sicurezza e quindi diminuire gli attacchi probabilistici l algoritmo viene iterato più volte sul testo cifrato. 2.4 Cifrario perfetto Il cifrario One Time Pad (OTP) e un sistema crittografico dove la chiave e generata casualmente, ha la stessa lunghezza del messaggio e non e riutilizzabile, e necessario pero che la chiave sia lunga quanto il testo, quindi se avremo un testo lunghissimo, la chiave di cifratura sarà lunga quanto il testo. Chiamato anche il cifrario perfetto, e stato dimostrato matematicamente nel 1949 che non e attaccabile. Il cifrario one-time pad e chiamato anche cifrario di Vernam, e sfrutta l operazione di somma circolare.

3 DES e RSA 3.1 DES (data encryption standard) Creato da IBM nel 1973 e stato reso pubblico nel 1977 da NSA (National Security Agency), fu il primo esempio di cifrario sicuro con certificato NSA dal 1998 non e più considerato sicuro. Il DES e un algoritmo di cifratura a chiave simmetrica dove il messaggio e diviso in blocchi da 64bit, con chiave della stessa lunghezza (56bit + 8bit di parità). Questo algoritmo al inizio ha suscitato molte discussioni per via della sua chiave di codifica corta e per via di alcune scelte progettuali che erano tenute segrete. Attualmente DES e considerato insicuro grazie alla sua chiave utilizzata per cifrare i messaggi, che e di soli 56bit ed essendo stato implementato anni fà le capacità di calcolo di oggi sono aumentate in maniera sostantiva. L algoritmo e ritenuto sicuro reiterando 3 volte, dando vita al Triple-DES. Negli ultimi anni DES e stato sostituito dall Advanced Encryption Standard (AES), un nuovo algoritmo che elimina molti dei problemi di DES. 3.1.1 Struttura Ci sono 16 fasi identiche di processo dette round, ci sono inoltre una permutazione iniziale (IP) ed una finale (FP) che sono tra di loro inverse (ovvero IP annulla l azione di FP e viceversa ). IP ed FP non hanno alcuna importanza per la cifratura ma sono state aggiunte per facilitare il caricamento dei blocchi su hardware tipico degli anni 70. Prima del ciclo principale, il blocco e suddiviso in due metà di 32 bit e processato alternativamente, la cifratura e la decifratura sono processi molto simili, la solo differenza e che le sottochaivi sono applicate nell ordine inverso nella fase di decifratura. Questo semplifica l implementazione poichè non occorre avere algoritmi separati per cifrare e per decifrare. L algoritmo mescola metà del blocco con una parte della chiave. Il risultato è poi combinato con l altra metà del blocco, e le due metà sono scambiate prima del ciclo successivo. L algoritmo opera su mezzo blocco (32 bit) per volta e consiste in 4 passi: espansione, contrazione, sostituzione, permutazione. 3.1.2 Substition-Box La S-Box e uno dei componenti base degli algoritmi a chiave simmetrica. Nella crittografia a blocchi le S-Box vengono utilizzate per oscurare relazioni tra il testo in chiaro e il testo cifrato seguendo il principio della confusione. 3.1.3 Permutation-box Una P-Box e un metodo di mescolanza di bit utilizzato per permutare o trasporre i bit tra i vari ingressi delle S-Box. Il metodo e utilizzato per ottenere diffusione durante la trasposizione. Nei cifrari a blocchi le S-Box e le P-Box sono utilizzate per rendere difficile risalire alle relazioni tra il testo in chiaro ed il testo cifrato. 3.2 RSA Rivest-Shamir-Adelman e un algoritmo di crittografia asimmetrica utilizzato per firmare o cifrare informazioni. Il nome del algoritmo deriva dalle iniziali dei ricercatori che lo inventarono nel 1978. I nomi dei 3 ricercatori del MIT sono : Rivest, Shamir e Adelman. L algoritmo si basa sulla fattorizzazione dei numeri primi. Quindi esistono due chiavi distinte che vengono usate per cifrare e decifrare, se la prima chiave e usata per cifrare la seconda deve essere necessariamente utilizzata per decifrare. La questione fondamentale e che nonostante le due chiavi siano tra di loro indipendenti, e impossibile risalire al altra chiave avendone una. Per poter realizzare un sistema crittografico pubblico e importante che un utente si crei autonomamente entrambe le chiavi, denominate pubblica e privata, e ne renda pubblica una soltanto. Cosi facendo si viene a creare una sorta di elenco telefonico a disposizione di tutti gli utenti, che raggruppa tutte le chiavi pubbliche, mentre quelle inverse saranno tenute segrete dai rispettivi utenti che le hanno create, e verranno utilizzate solo per decifrare un messaggio che e stato cifrato con la loro chiave pubblica. 3.2.1 Funzionamento di RSA Se A (Mittente) deve spedire un messaggio segreto a B (Destinatario), B scegli due numeri primi (p e q) molto grandi (di circa 300 cifre o più) e li moltiplica trovando N, dove N = p*q. N diventa quindi la chiave pubblica da mandare al mittente per crittografare il messaggio. Quindi B manda N ad A, e A lo usa per crittografare il messaggio segreto, una volta crittografato manda il messaggio a B in un canale pubblico(quindi il messaggio segreto viene visto da tutti, ma nessuno e in grado di decifrare il messaggio perchè nessuno ha p e q). Una volta che B ha ricevuto il messaggio ancora crittografato, usa p e q (i due numeri primi segreti) per decifrare il messaggio. Inoltre RSA e commutativo ovvero D(C(m))=C(D(M)) = m. Quindi il Mittente e il Destinatario hanno impiegato pochi secondi a cifrare e decifrare, ma chiunque avesse intercettato le loro comunicazioni impiegherebbe troppo tempo per ricavare i due fattori primi, con cui decifrare il messaggio. 3.2.2 Ricapitolando Per generare una chiave si prosegue in questo modo : 1. Prendo due numeri primi, e molto grandi (p e q) 2. Calcolo n = p * q

5 3. calcola f(n) = (p-1)*(q-1) 4. Trovo un numero e che sia primo rispetto a f(n) 5. Calcolo d = e 1 mod f(n) 6. Ricavo la chiave pubblica U = {e, n} e la chiave privata V = {d, n} RSA rimane un algoritmo sicuro finché nessuno e in grado di trovare i due numeri primi p e q.

4 Identificazione, Autenticazione e Firma Digitale 4.1 Funzioni hash L algoritmo delle funzioni hash si basa sulle seguenti proprietà: 1. L algoritmo restituisce una stringa di numeri e lettere a partire da un qualsiasi flusso di bit di qualsiasi dimensione. L output e detto digest o fingerprint. 2. La stringa di output è univoca per ogni documento e ne e un identificativo. Perciò, l algoritmo e utilizzabile per la firma digitale. 3. L algoritmo non e invertibile, ossia non e possibile ricostruire il documento originale a partire dalla stringa che viene restituita in output, quindi e una funzione unidirezionale. 4.1.1 SHA1 La sigla SHA sta per secure hash algorithm, sviluppato dal NSA (National Security Agency) ed e uno standard federale del governo degli USA. La sicurezza di un algoritmo di hash risiede nel fatto che non deve essere possibili risalire al messaggio decifrato partendo dal messaggio criptato senza la conoscenza della chiave quindi la funzione non deve essere reversibile, e inoltre non deve essere possibile creare due messaggi diversi usando la stessa chiave. Lo SHA1 produce un digest (impronta) del messaggio di 160 bit, e il messaggio può essere al massimo 2 64-1, quindi circa 1,844674407 10 19. Gli algoritmi di hash considerati più sicuri attualmente ( e quindi anche i più usati) sono lo sha1 e l MD5. SHA1 MD5 gost SHA1 MD5 gost il crittogramma della parola ciao 1e4e888ac66f8dd41e00c5a7ac36a32a9950d271 6e6bc4e49dd477ebc98ef4046c067b5f 15d17107b6e7a41ee5c86e0426a153aefd5d8d3b24087075cc6bc27a5d696df5 il crittogramma della stringa vuota da39a3ee5e6b4b0d3255bfef95601890afd80709 d41d8cd98f00b204e9800998ecf8427e ce85b99cc46752fffee35cab9a7b0278abb4c2d2055cff685af4912c49490f8d 4.2 Firma digitale Un certificato digitale e un documento elettronico che conferma l identità di un soggetto e asicura l univocita della chiave pubblica.il certificato digitale viene fornito da un terzo, il quale pero e fidato, ovvero non abbiamo modo di provare la sua fedeltà se non attraverso la sua parola. La firma digitale viene posta sul documento stesso, e non può essere ne falsificabile e ne riutilizzabile, ovvero e legato al documento e successive modifiche al documento annullano il legame tra il documento e la firma posto su di esso. La firma digitale garantisce la non ripudiabilità, l integrità e l autenticità del documento. La firma digitale deve basarsi su 4 punti distinti : Il mittente non può negare di aver mandato il messaggio. Il destinatario può confermare l identità del mittente. Il destinatario non può falsificare, o alterare il messaggio ricevuto. Una terza parte può intervenire come giudice. 4.3 Message Authentication Code Il MAC e un immagine breve, di lunghezza fissa, del messaggio che viene generato da un solo mittente conosciuto dal destinatario. L immagine e ottenuta attraverso una chiave segreta condivisa tra il mittente e il destinatario e serve per l autenticazione del messaggio garantendo l identificazione del mittente e l integrità del documento. I MAC differiscono dalla firma digitale in quanto sono sia generati che verificati utilizzando la stessa chiave segreta, questo implica che mittente e destinatario devono scambiarsi la chiave prima di iniziare la comunicazione, cosi come succede nel caso della crittografia simmetrica. Per questa ragione i MAC non forniscono la proprietà di non ripudiabilità, offerta invece dalla firma digitale, in quanto ogni utente di verificare un MAC e allo stesso tempo in grado anche di generare un MAC. Una firma digitale e invece utilizzata tramite la chiave privata, e questo e nota solo al suo possessore ed e per questo che viene garantita la sua non ripudiabilità.

5 Key Management Per scambiare delle informazioni confidenziali con un utente specifico e necessario disporre della sua chiave pubblica. L utente rende pubblica la propria chiave pubblica, in modo che altri utenti che desiderano comunicare con lui possano cifrare i propri messaggi o documenti utilizzando la chiave pubblica del destinatario e quindi fare in modo che solo lui possa decifrarli e leggerli. La chiave pubblica può essere distribuita in tanti modi, puo essere messa in allegato ai messaggi di posta elettronica, puo esser inserita nella home page dell utente, inserendo la propria chiave pubblica in un elenco pubblico tenuto da un autorità ecc. Questo scenario pero non garantisce il fatto che tale chiave sia realmente dell utente specificato, in quanto può succedere che tale chiave puo appartenere a un altro utente. Quindi questa modalità di annunciare la propria chiave pubblica e soggetta ad attacchi di tipo Man-in-the-middle. 5.1 Man-in-the-middle attack E un tipo di attacco nel quale l attaccante e in grado di leggere, inserire o modificare a piacere, messaggi tra due parti senza che nessuna delle due sia in grado di sapere se il collegamento che li unisce sia stato effettivamente compromesso da una terza parte. L attaccante deve essere in grado di osservare, intercettare e replicare verso la destinazione prestabilita i messaggi tra le due vittime in modo da non destare sospetti. L attaccante e in grado di effettuare queste operazioni in quanto cattura inizialmente la chiave pubblica del destinatario che tenta di inviarla al mittente per ricevere da questo un messaggio cifrato, ma la chiave viene intercettata e sostituita con la chiave pubblica dell attaccante. Da questo momento in poi l attaccante cattura i messaggi da parte dell mittente rivolti al destinatario, li decifra utilizzando la propria chiave privata, e una volta decifrati, letti o modificati li cifra utilizzando la vera chiave pubblica del destinatario. Questa operazione continua anche nell altro verso, ovvero quando il destinatario vuole rispondere al mittente chiede la sua chiave pubblica, che viene nuovamente intercettata dall attaccante e sostituita con la sua chiave pubblica. 5.1.1 Difese contro l attacco La possibilità di questo tipo di attacco e un serio problema di sicurezza per sistemi di cifratura a chiave pubblica. Un meccanismo largamente usato per evitare attacchi e l uso di chiavi firmate: se la chiave del destinatario e firmata da un soggetto terzo di fiducia che ne assicura l autenticità, allora il mittente può considerare con una certa confidenza che la chiave firmata non e un tentativo di intercettazione di un altro soggetto. Un altra difesa a questi tipi di attacchi e il protocollo del lucchetto intermedio, noto anche come interlock protocol. Dove il mittente ed il destinatario si scambiano metà messaggio alla volta per comunicare. La forza di questo protocollo risiede nel fatto che la metà di un messaggio cifrato non può essere decifrato. Dunque, se l attaccante intercetta le chiavi del mittente e del destinatario non sarà in grado di decifrare il mezzo-messaggio (cifrato usando la propria chiave) e L elenco pubblico deve essere tenuto da una terza persona fidata a entrambi i soggetti che comunicano tra di loro (A e B) -Ci deve essere la sicurezza che il messaggio non sia stato modificato oppure letto e questo si può fare attraverso la firma digitale, ovvero attraverso un certificato digitale. Un certificato digitale e un certificato che contiene la firma digitale di un autorità di cui noi ci fidiamo. Quindi una volta che riceviamo il messaggio, se la firma digitale non e stata manomessa ciò significa che il messaggio e integro e non e stato letto da nessuno prima di noi. Il certificato oltre a garantire che la chiave pubblica non e stata manomessa, garantisce anche l identità dei partecipanti e l integrità delle chiavi, Inoltre la firma digitale elimina gli attacchi di tipo man in the middle, poichè nessuno e in grado di riprodurre la firma digitale dell autorità, se il man in the middle riuscisse a modificare il messaggio criptato allora la firma digitale si annullerebbe. Deve attendere di ricevere entrambe le metà del messaggio per poterle leggere, e ci può riuscire solo componendo un nuovo messaggio e imbrogliare cosi solo una delle due parti. 5.2 Elenco pubblico Annunciare la chiave pubblica significa dare la tua chiave pubblica a tutti, per fare in modo che se vogliono comunicare con te possono criptare i messaggi con la tua chiave pubblica e fare in modo che solo tu possa leggere quei messaggi. Per annunciare la tua chiave pubblica, puoi anche inserirla in un elenco pubblico, da facilitare in questo modo la ricerca a chi ne ha bisogno. L elenco pubblico deve essere tenuto da una terza persona fidata a entrambi i soggetti che comunicano tra di loro (A e B). Ci deve essere la sicurezza che il messaggio non sia stato modificato oppure letto e questo si può fare attraverso la firma digitale, ovvero attraverso un certificato digitale. L unico svantaggio del elenco pubblico e che noi non siamo in grado di verificare che la chiave pubblica che otteniamo dal elenco pubblico sia la vera chiave pubblica del soggetto con cui vogliamo comunicare. L unica certezza che abbiamo e la parola dell autorità che tiene l elenco pubblico, ma l autorità deve essere corretta e fidatà a tutti i partecipanti.

6 Management of secret keys 6.1 Key Distribution Server KDS e un ente terzo, un soggetto che ha la fiducia degli utenti per il mantenimento delle chiavi private, usate nella comunicazione tra utenti. KDS deve essere un soggetto fidato, cioè tutti i comunicanti del sistema devono fidarsi di kds, ma oltre a essere fidato e corretto deve essere anche sicuro, ovvero nessuno deve essere in grado di penetrare in kds altrimenti tutto sarebbe tutto a rischio, e deve anche essere disponibile. KD genera una chiave privata, detta chiave di sessione, la quale ha validità per tutta la durata (sessione) della comunicazione tra due utenti. 6.2 Needham-Schroeder Protocol Questo protocollo permette di stabilire una chiave di sessione utilizzabile da due entità di rete per proteggere le successive comunicazioni. Tale tecnica e alla base del sistema kerberos. 6.2.1 Caratteristiche A e B devono comunicare tra di loro con un cifrario simmetrico, ovvero con una chiave segreta, ma A e B non si sono comunicati prima, questa e la prima volta che tentano di comunicare e per fare ciò devono avere una chiave segreta, che diventera la chiave di comunicazione per cifrare i messaggi e fare in modo che solo A e B possano leggere i messaggi. L autorità che costruisce la chiave per la comunicazione tra A e B e kds, ma la chiave segreta ha un tempo limite, e dopo questo tempo limite la chiave non e più valida, ma se A e B vogliono continuare a comunicare devono rigenerare la chiave rifacendo la domanda a kds. Come fa KDS a generare le chiavi? KDS e un soggetto fidato e noto a tutti. A manda a kds il suo nume e il nome di B e un numero (con delle specifiche proprietà) quando Kds riceve ciò sa che A vuole comunicare con B, e quindi fa una ricerca su B, dopo di che genera la chiave segreta, la chiave segreta altro non e che una stringa casuale di lunghezza arbitraria ( a secondo della richiesta di A), ovvero un sacco di 0 e uno generati casualmente. Dopo la generazione della chiave kds manda la chiave ad A, ma non lo manda in chiaro ma lo cifra KDS manda Ka ad A e Kb a B, in questo modo B sa che deve comunicare con A e che la chiave segreta e sicura perchè KDS e un soggetto fidato, e che non divulgera niente a nessuno. N1 e N2 vengono chiamati nonce (numero usato una volta sola), ovvero quel numero non deve essere utilizzato piu di una volta all interno di quell protocollo. esempio: 1. Supponiamo che due utenti A e B vogliono iniziare una comunicazione confidenziale. Essi devono entrambi loggarsi nel sistema di KDS. 2. Sarà A a voler iniziare la comunicazione con B, e prima di tutto deve contattare KDS con un messaggio in cui indica in maniera esplicita di essere A e di voler comunicare con B, oltre a ciò nel messaggio e contenuto anche un numero detto nonce, ovvero un numero casuale usato una volta sola. msg{a,b,n 1 } 3. A questo punto KDS genera una nuova chiave di sessione (k s ), che potrà essere utilizzata solo da A e B. Per fare ciò il server crea una serie di messaggi cifrati, uno contenuto all interno dell altro. Inizialmente il messaggio viene cifrato con la chiave pubblica di A ed inviato ad A. C(K A, msg{k S,A,B,N 1,C(K B,msg{K S,A})}) 4. A cifra il messaggio utilizzando la propria chiave privata ed entra cosi in possesso della chiave di sessione contenuta nel messaggio decifrato, all interno di tale messaggio e contenuto un ulteriore messaggio cifrato con la chiave pubblica di B, quindi A non puo decifrarlo, ma lo invia a B. C(K B,msg{K S, A}) 5. B riceve il messaggio di A, lo decifra utilizzando la propria chiave privata e diviene anche egli in possesso della chiave di sessione. A questo punto per essere sicuri che entrambe le parti siano in possesso di tale chiave, B effettua una prima verifica inviando ad A un messaggio cifrato utilizzando la chiave di sessione, inserendo all interno un numero casuale N 2. msg{a,c(k S, msg{n 2 })}. 6. A riceve il messaggio lo decifra, e risponde al messaggio in modo da far capire a B che e in ascolto. Nel messaggio viene inserito il numero appena ricevuto da B incrementato di 1. msg{b,c(k S,msg{N 2 })} 7. Le successive comunicazioni avvengono solo tra A e B, senza l ausilio del KDS, utilizzando la chiave di sessione per cifrare i messaggi. C(K S,msg{A,B, ciao,comeva? }) C(K S,msg{B,A, ciao,tuttobene }) 6.3 Kerberos Kerberos e un protocollo di rete per l autenticazione tramite crittografia che permette a diversi terminali di comunicare tra di loro su una rete non sicura provando la propria identità e cifrando i dati. Tale protocollo si basa sulla crittografia simmetrica e richiede una terza parte affidabile. E un modello basato sullo schema client-server, e fornisce una mutua autenticazione, sia l utente sia il fornitore del servizio possono verificare l identità dell altro. Kerberos si basa sul protocollo di Needham-Schroeder e utilizza una terza parte affidabile per centralizzare la distribuzione delle chiavi detta Ticket Granting Server (TGS) il quale utilizza dei biglietti (ticket) per provare l identità degli utenti.

6.3.1 Osservazioni Nel protocollo Needham-Schroede se un utente (A) mentre sta comunicando con un altro utente (B) decide di comunicare con con un terzo utente (C), allora deve ripetere l operazione di inizializzazione del protocollo con il KDS per generare una nuova chiave condivisa utilizzando la propria chiave segreta. Dato che la chiave condivisa e basata su un segreto, questo meccanismo di comunicazione diventa rischioso ogni volta che si comunica con un utente diverso. Nel sistema Kerberos invece ciò non succede in quanto l utente (A) può comunicare con l utente (C) nella stessa sessione, ovvero senza eseguire il logout dal sistema, e sufficiente contattare TGS utilizzando la stessa chiave segreta. 6.4 Schema ibrido Con schema ibrido si intende un meccanismo di crittografia in qui vengono utilizzati sia i cifrari simmetrici che i cifrari asimmetrici, ovvero vengono utilizzate sia la comunicazione a chiave pubblica/privata sia la comunicazione a chiave segreta. Tutto ciò viene fatto poichè la crittografia a chiave pubblica/privata e ritenuta lenta, mentre la crittografia a chiave segreta e veloce ma ci vuole un modo per comunicare la chiave segreta a entrami gli interlocutori senza che nessun altro possa intercettare tale chiave. Il cifrario asimmetrico e molto più lento del cifrario simmetrico ecco perchè si usa uno schema ibrido, ovvero prima si cripta la chiave segreta con la chiave pubblica del destinatario dopo di che una volta che entrambi (sia il mittente che ha creato la chiave segreta sia il destinatario che ha ricevuto la chiave segreta dal mittente) sono entrati in possesso della chiave segreta utilizzano quella per cifrare i propri messaggi.

7 CA and PKI Un certificato digitale è un documento elettronico che attesta, tramite una firma digitale, l associazione tra una chiave pubblica e l identità di un soggetto. Essi affrontano il problema del Man-in-the-middle attack, in quanto non c è uno scambio diretto di chiavi tra mittente e destinatario, e vengono quindi utilizzati che qualcun altro si spacci per un altra persona, ciò può essere molto importante in quanto ogni messaggio crittografato con una data chiave pubblica può essere decrittato solo da chi ha la rispettiva chiave privata. Ma vale anche il contrario, se possiamo decriptare un messaggio con una data chiave pubblica allora siamo sicuri che il messaggio e stato criptato dalla relativa chiave privata. L utente inserisce la sua chiave pubblica in un certificato firmato da una terza parte fidata, tutti quelli che riconoscono fidata questa terza parte devono semplicemente controllare la firma digitale per decidere se la chiave pubblica appartiene veramente all utente. I certificati vengono generati, custoditi e distribuiti da entità fidate: Certificate Servers è un database disponibile a tutti gli utenti, che permette di inserire un proprio certificato oppure richiedere il certificato di un altro soggetto. Public Key Infrastructure è una collezione di servizi che consentono a parti terze (fidate) di verificare o fare da garante sull identità di un utente. Un PKI permette le seguenti operazioni: registrazione è effettuata per mezzo di un autorità per la registrazione (RA) che solitamente è una persona fisica ed è interpellata quando viene richiesto un certificato per la prima volta. certificazione Avviene tramite un autorità di certificazione (CA), che solitamente è un ente fidato abilitato a rilasciare un certificato digitale tramite delle procedure standard, basandosi sulla chiave pubblica dell utente. validazione Verifica se il certificato è ancora valido, la validazione di un certificato può avvenire on-line rivolgendosi ad un CA, oppure off-line verificando il periodo di validità del certificato stesso. revoca è un operazione che coinvolge la revoca di un certificato valido in quanto scaduto, ritenuto non sicuro o compromesso, un soggetto e in grado di essere informato in tempo reale dei certificati revocati consultando la Certificate Revocation List (CRL) che è mantenuta e aggiornata periodicamente dalle CA. I certificati utilizzati dalle Public Key Infrastructure sono gli X.509 che rappresentano degli standard di fatto, insieme al PGP. Nei certificati X.509 la gerarchia delle CA è a forma di albero, mentre nel PGP si parla di grafo di CA. La struttura di un certificato X.509 è formata in questo modo: -Subject: Distinguisc Name, Public Key -Issur: Distinguisc Name, Public Key -Validity: Not before date, not after date -Basic info:... -Advanced info:... -Administrative info:... Il distinguished Name: Contiene informazioni sul richiedente del certificato, e i campi possono essere, nome e cognome, città, cap, numero di telefono, indirizzo mail eccecc. Tutti questi dettagli servono per rendere il soggetto identificato unico nel mondo, ed e questo il motivo per cui non viene richiesto solo il nome e cognome, poichè di nomi e cognomi uguali c è ne sono tanti. Inoltre l autenticazione del richiedente può essere fatta in-band o out-of-band. In-band quando deve essere fatto di persona oppure grazie a un servizio che mi identifica per esempio un indirizzo di posta elettronica come gmail, in quel caso il certificato non viene fatto a me, ma a gmail (nome@gmail.com). I PKI più diffusi sono : PGP, PEM, PKIX, Secure DNS, SPKI, SDSI ecc. 7.1 Catene di certificati Per verificare l autenticità dell ente che ha rilasciato un certificato è necessario estrarre la sua chiave pubblica, ma non dallo stesso certificato, ma da un altro certificato da esso destinato. Andando a ritrosi fino alla fonte principale, è possibile verificare l autenticità del messaggio e dell ente che lo ha rilasciato.