AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

32
Prof. Zambetti -Majorana © 2008 AICA ESERCITAZIONE MODULO 5 PGP - SSH - PPP

Transcript of AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Page 1: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

ESERCITAZIONE MODULO 5

PGP - SSH - PPP

Page 2: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Protocollo SSH

• Due attori– Client : attiva la richiesta di collegamento

– Server : cui è indirizzata la richiesta

• Esistono due versioni del protocollo tra loro non interoperabili (ver 1, ver 2)– Ver 1: meno recente, supportata da tutti i prodotti

– Ver 2: nuovo, non supportata da tutti i prodotti

Page 3: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Schema SSH

1. Il client stabilisce una connessione col server, il server risponde con una stringa del tipo

SSH-1.99-OpenSSH_2.3.0

Page 4: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Schema SSH

2. Il server genera un numero casuale di 64 bit (cookie), cui concatena– Dimensione e dati della chiave pubblica del server

• Rigenerata ogni ora

– chiave pubblica dell’host (fissa dall’installazione)• Identifica unvicamente quell’host

3. Il client verifica che la chiave pubblica dell’host coincida con quanto memorizzato in precedenza, se no, IN BASE ALLA CONFIGURAZIONE (StrictHostKeyChecking in ssh_config del client),• interrompe la comunicazione, • Visualizza finger print e chiede conferma• Inserisce automaticamente la chiave pubblica del server

4. Il client genera due oggetti:– MD5 a 128 bit di : chiave host + chiave server + cookie – Chiave di sessione : numero casuale a 256 bit

Page 5: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Schema SSH

– Viene eseguito l’XOR tra identificativo sessione e i primi 128 bit della chiave di sessione prima generata

– Viene cifrata con la chiave pubblica del server e poi con quella pubblica dell’host

– Si invia il tutto al server

5. Il server decifra i dati ricevuti, estrae la chiave di sessione che verrà usata per lo scambio di dati (algoritmo simmetrico)

• Stabilita la connessione inizia la fase di autenticazione– User e password nel caso più semplice

• Poco sicura (password semplici)

Page 6: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Schema SSH

– Autenticazione RSA o DSA • Più sicura

1. Il client indica al server qual è la chiave che vorrà utilizzare

2. Il server genera un challenge (casuale) di 256 bit, lo cifra con la chiave pubblica dell’utente e invia il tutto al client

3. Il client usa la chiave privata per decifrare il challenge– Viene di solito chiesta la password all’utente che non viene

trasmessa, ma usata per la decrittazione della chiave privata dell’utente (viene salvata cifrata)

– Calcola un digest MD5 del challenge

– Lo invia al server

Page 7: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Schema SSH

4. Il server confronta il digest ricevuto con quello calcolato, se corrispondono considera autenticato l’utente

Page 8: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

File di configurazione

• Client– etc/ssh/ssh_config

• Server– etc/ssh/sshd_config

• Parametri– Protocol

– Ciphers

– MACs

– PermitEmptiPasswords (solo sshd)

– PasswordAuthentication (solo sshd)

– PermitRootLogin (solo sshd)

– StrictHostKeyChecking

Page 9: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

File con chiavi di autenticazione

• Client– /home/<nomeutente>/.ssh/known_hosts (deve contenere la chiave

pubblica del server che voglio verificare)

• Server– /home/<nomeutente>/.ssh/authorized_keys2 (deve contenere la

chiave pubblica dell’utente che voglio autenticare)

Page 10: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Comandi ssh

• Avvio-riavvio-stop server da root– /etc/inet.d./sshd start – /etc/inet.d./sshd restart (dopo modifica parametri)– /etc/inet.d./sshd stop

• Generazione coppia chiavi – ssh-keygen– Opzioni

• –l per ottenere la finger print di una chiave (richiede –f per specificare il file che la contiene)

• -f specifica file• -t tipo chiave (rsa/dsa)

• Comandi connessione– ssh <ip server>/<nomeserver>– Opzioni –l <nome> -i <chiave> -v

Page 11: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Problemi con SSH

• Utlizzo di una crittografia simmetrica debole• Mai usare autenticazione basata su nome e password• Aggiornare sempre i programmi (preferibile la versione 2)

Page 12: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Tool SSH

• Linux, Windows, MacOSX– OpenSSH

• ssh, ssh-keygen, sshd

• Google ......

Page 13: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Creare una chiave con OpenSSH

• Autenticazione tramite crittografia asimmetrica (RSA)• Ogni utente deve avere una copia di chiavi (pubblica e privata)

e deve fornire la chiave pubblica al server• Generazione tramite OpenSSH

Page 14: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Connessione

Page 15: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

PGP

• Pretty Goog Privacy : ideato nel 1991 da Phil Zimmerman– Servizi offerti per la posta elettronica

• Firma elettronica• Confidenzialità• Compressione• Conversione in base 64

• GnuPG : versione open source– www.gnupg.org

Page 16: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

PGP

1. Il mittente scrive un messaggio

2. Il mittente crea un hash del messaggio

3. Il mittente cifra l’hash con la sua chiave privata

4. Il mittente inserisci l’hash cifrato prima del messaggio e trasmette entrambi

5. Il destinatario riceve la posta

6. Il destinatario decifra l’hash con la chiave pubblica del mittente

7. Il destinatario rigenera l’hash

8. Il destinatario confronta l’hash calcolato con quello ricevuto

9. Se i due hash coincidono il messaggio non è stato modificato

Page 17: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

PGP e confidenzialità

1. Il mittente scrive un messaggio

2. Il prog. di trasmissione crea un numero casuale usato per cifrare quel singolo messaggio (chiave di sessione)

3. Il prog. di trasmissione cifra il messaggio con un alg. Simmetrico usando la chiave di sessione

4. La chiave di sessione viene cifrata con la chiave pubblica del destinatario e premessa al messaggio

5. Il messaggio cifrato è inviato al destinatario

6. Il destinatario decifra la chiave di sessione usando al sua chiave privata (solo lui puo farlo)

7. Il destinatario decifra il messaggio

Page 18: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

PGP firma digitale

1. Il mittente scrive un messaggio

2. Il mittente lo firma con il procedimento visto in precedenza• Hash + messaggio

3. Il mittente cifra tutto il messaggio con il metodo della confidenzialità

4. Invio al destinatario

5. Il destinatario decifra il messaggio e verifica l’impronta

Page 19: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

GnuPG

• Tool openSource che implementa quanto visto su PGP • Diverse versioni • Software a linea di comando

Page 20: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Generare una nuova coppia di chiavi

Page 21: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Generare una nuova coppia di chiavi

• GnuPG è in grado di creare diversi tipi di coppie di chiavi, – L'opzione 1 crea in realtà due coppie di chiavi: una coppia di chiavi

di tipo DSA che rappresenta la coppia di chiavi primaria ed è utilizzabile solo per firmare; una coppia di chiavi subordinata di tipo ElGamal, usata per criptare.

– L'opzione 2 è simile alla precedente ma crea solo una coppia di chiavi DSA.

– L'opzione 4[1]crea una singola coppia di chiavi ElGamal utilizzabile sia per firmare che per criptare. In tutti i casi è possibile in un secondo momento creare sotto-chiavi addizionali per cifrature e firme.

Page 22: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Generare una nuova coppia di chiavi

• È necessario anche scegliere la dimensione della chiave. – La dimensione di una chiave DSA deve essere compresa fra 512 e

1024 bit

– La chiave ElGamal può essere di qualsiasi dimensione.

• GnuPG richiede che le chiavi non siano più piccole di 768 bit.

Page 23: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Generare una nuova coppia di chiavi

Page 24: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Scambiarsi le chiavi

Page 25: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Esportare una chiave pubblica

• Per spedire una chiave pubblica ad un corrispondente è necessario prima esportarla.

• Si usa l'opzione a linea di comando --export. • Essa necessita di un ulteriore argomento che identifichi la

chiave pubblica da esportare.• Così come con l'opzione --gen-revoke, sia l'ID della chiave che

ogni altra parte dello User ID possono servire per identificare la chiave da esportare.

Page 26: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Esportare una chiave pubblica

• La chiave è esportata in un formato binario– sconveniente quando la chiave viene spedita per posta elettronica

o pubblicata in una pagina web.

• l'opzione a linea di comando --armor[1] – forza l'output ad essere generato in un formato protetto da

un'armatura ASCII

Page 27: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Importare una chiave pubblica

Page 28: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Cifrare e decifrare documenti

• Opzione --encrypt. • È necessario possedere le chiavi pubbliche dei destinatari a cui

si intende spedire il messaggio. • Il programma si aspetta il nome del documento da cifrare come

ingresso– se omesso, legge lo standard input.

• Il risultato cifrato è stampato sullo standard output oppure dove specificato con l'opzione --output.

• Il documento, oltre ad essere criptato, viene compresso per ragioni di maggior sicurezza.

Page 29: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Cifrare e decifrare documenti

• L'opzione --recipient viene utilizzata una sola volta per ogni destinatario e richiede un argomento extra che specifichi con quale chiave pubblica debba essere criptato il documento.

• Tale documento può essere decriptato solo da qualcuno in possesso di una chiave privata che complementi una delle chiave pubbliche dei destinatari.

• In particolare non è possibile decifrare un documento criptato da voi stessi, a meno che non abbiate incluso la vostra chiave pubblica nella lista dei destinatari.

Page 30: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Cifrare e decifrare documenti

• Per decriptare un messaggio si usa l'opzione --decrypt. • È necessario possedere la chiave privata con la quale era stato

cifrato il messaggio.• Analogamente al processo di cifratura, il documento da

decifrare è l'ingresso e quello decifrato è l'uscita.

Page 31: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Riepilogo comandi GPG

Page 32: AICA Prof. Zambetti -Majorana © 2008 ESERCITAZIONE MODULO 5 PGP - SSH - PPP.

Prof. Zambetti -Majorana © 2008

AICA

Riepilogo comandi GPG