Consegna dell'attività di laboratorio

Il termine per la consegna del report finale è fissata per il 8 Gennaio 2019, ore 23.59.

Descrizione generale

Il laboratorio di sicurezza consiste nel completare alcuni esercizi che saranno assegnati durante il corso e produrre, entro la fine del semestre, un report che testimonia il loro svolgimento.

Caratteristiche generali degli esercizi:

  • richiedono l'uso delle tecnologie spiegate a lezione e di appositi strumenti che saranno indicati di volta in volta.
  • richiedono l'utilizzo del Laboratorio Virtuale.
  • non richiedono la scrittura di codice.
  • in alcuni casi, richiedono l'interazione con il tutor del laboratorio.
  • possono essere svolti in remoto e in qualunque momento del corso, entro la data di consegna.

Il report finale

Il report finale è un file PDF da spedire via mail entro il 8 Gennaio 2019, ore 23:59. Regole relative alla consegna di laboratorio:

  • il file PDF deve essere spedito da un indirizzo del dominio studio.unibo.it all'indirizzo email labsicurezza@cs.unibo.it in una mail con
    • Subject settato a [Laboratorio Sicurezza 2018/2019: Report] <cognome> <nome> <numero di matricola>
    • Body vuoto
    • Report allegato come file PDF di nome <numero_di_matricola>-report-finale.pdf
    Non si fanno eccezioni.
  • Non si possono sostenere prove di laboratorio dopo il termine di consegna del report finale, nonostante l'orale sarà sostenuto negli appelli estivi, autunnali o invernali.
  • Ogni file è associato ad un solo studente. Non si possono svolgere esercizi in gruppo.

Valutazione dell'attività di laboratorio

Il voto della prova di laboratorio sarà determinato dal numero di esercitazioni svolte correttamente. Tale voto vale il 60% del voto complessivo, secondo le regole generali del corso.

Ogni esercitazione può essere svolta correttamente o meno: non ci sono situazioni intermedie.

I risultati possono essere consultati su questa pagina, che sarà aggiornata man mano che si correggono i report di consegna.

Dopo la consegna, gli studenti sono quindi invitati a consultare la pagina dei risultati e, in caso di dubbi, contattare il tutor del corso (labsicurezza@cs.unibo.it) con un ragionevole margine rispetto al termine ultimo di consegna.

Esercitazioni da svolgere durante il corso

1. Crittografia Simmetrica.

Prima di svolgere l'esercitazione occorre aggiornare gli indici APT della vostra macchina virtuale con i seguenti comandi:
  1. sudo apt-get update
  2. sudo update-apt-xapian-index

L'esercizio consiste nello scambio di una chiave segreta con il tutor per iniziare uno scambio di messaggi cifrati. In particolare, lo studente deve:

  • Creare una chiave segreta:
  • Scambiare la chiave segreta con il tutor:
  • Decifrare il messaggio ricevuto dal tutor e cifrato con algorimto Triple-DES con la chiave segreta.
  • Cifrare il messaggio con un algoritmo AES-256 .
  • Inviare il messaggio cifrato al tutor

Per svolgere l'esercitazione lo studente deve utilizzare il laboratorio virtuoale, cioè:

  • Deve scaricare e istallare il pacchetto 8009-babaoglu-crittografia-simmetrica tramite il Laboratorio Virtuale
  • Decomprimere l'archivio Esercitazione1 disponibile nella directory /usr/share/unibo/babaoglu-security-lab1 oppure nella root / del file system
  • Accordare i diritti di esecuzione al file install.sh presente nella cartella decompressa (es. sudo chmod 755 install.sh)
  • Lanciare lo script install.sh da terminale
  • Avviare il server apache (comando: sudo /etc/init.d/apache2 start) se non attivo
  • Collegarsi al sistema di verifica (se avete seguito tutti i passi dovrebbe essere http://localhost/esercitazione1/index.php) fare post di:
    • le credenziali studio.unibo.it (servono esclusivamente per ottenere l'autorizzazione ad inviare la mail al tutor con il vostro utente);
    • nome e cognome;
    • chiave segreta.
  • Decifrare con OpenSSL il messaggio inviato dal tutor per email. Il messaggio è cifrato con Triple-DES + Salting
  • Cifrare con OpenSSL il messaggio appena decifrato. Il messaggio va cifrato dallo studente con AES-256 + Salting
  • Inviare il messaggio al tutor utilizzando la form che compare nel passo successivo utilizzando il sistema
  • Riportare nel report le email ricevute dal sistema comprensive degli header. I binari degli attachment non vanno inseriti nel report. Se nel report non ci sarà una copia della mail, l'esercitazione non sarà considerata superata.

2. Certificati

Scopo di questa esercitazione di verificare che lo studente sappia utilizzare alcune delle funzionalit dei certificati. In particolare, l'esercitazione vuole verificare se lo studente in grado di creare un certificato e di scambiare mail cifrate e firmate. Come svolgere l'esercizio:

  • Lo studente crea il proprio certificato Free Secure Email su InstantSSL e lo importa sul proprio client di posta.
    • Il certificato deve essere associato all'indirizzo di posta del dominio studio.unibo.it.
    • con livello di sicurezza Alto (2048 bit).
  • Lo studente invia quindi una mail firmata con il proprio certificato (ma non cifrata) al tutor del corso: Andrea Nuzzolese (andrea.nuzzolese2@unibo.it).
    • Il subject della mail deve essere [Laboratorio Sicurezza: Esercitazione 2]: Mail firmata da COGNOME NOME MATRICOLA, dove COGNOME, NOME e MATRICOLA sono rispettivamente il cognome, il nome ed il numero di matricola dello studente.
    • Se lo studente utilizza un subject diverso, la mail potrebbe non essere presa in considerazione.
  • Entro i 10 giorni successivi alla data in cui ha ricevuto la mail firmata, il tutor invia allo studente una mail firmata con il proprio certificato Free Secure Email (InstantSSL) e cifrata per lo studente.
    • Il contenuto di questa mail cambia da studente a studente. E' una sequenza casuale di caratteri.
    • La mail inviata dal tutor in risposta alla mail firmata dallo studente. Dunque, il subject contiene (ma non detto che sia identico a) il subject della mail firmata inviata dallo studente (vedi sopra).
  • Lo studente deve quindi essere in grado di decifrare la mail ricevuta dal tutor.
  • Lo studente supera la prova se nel report di consegna finale indica il messaggio in chiaro spedito dal tutor.
  • L'uso del Laborotorio Virtuale è obbligatorio per lo svolgimento dell'esercitazione. Il pacchetto da scaricare  8009-babaoglu--sicurezza-certificati.
    Prima di installare il pacchetto occorre aggiornare gli indici APT sulla vostra macchina virtuale con i comandi:
    • sudo apt-get update
    • sudo update-apt-xapian-index
  • 3. GPG

    Scopo di questa esercitazione è verificare che lo studente utilizzi alcune delle funzionalità di GPG.

    In particolare, l'esercitazione vuole verificare se lo studente riesce a leggere un messaggio cifrato e firmato dal tutor del corso.

    L'esercitazione consiste nel:

    • Creare coppie di chiavi GPG
    • L'esercitazione va svolta utilizzando il Laboratorio Virtuale
      • Scaricare ed istallare il pacchetto 8009-babaoglu-sicurezza-gpg (how to) Prima di installare il pacchetto occorre aggiornare gli indici APT sulla vostra macchina virtuale con i comandi:
        • sudo apt-get update
        • sudo update-apt-xapian-index
      • Decomprimere l'archivio Esercitazione3 disponibile nella directory /usr/share/unibo/babaoglu-security-lab3 nella vostra home
      • Copiare il contenuto in /var/www
      • Svolgere l'esercitazione disponibile su http://localhost/esercitazione03
    • Uploadare la propria chiave pubblica sul sistema
    • Ricevere via mail la chiave pubblica del tutor ed un file di testo firmato e cifrato (con la chiave pubblica appena uploadata). Il contenuto del file di testo viene generato casualmente per ogni studente.
    • Decifrare il contenuto del file di testo (dopo aver importato le chiavi nel proprio keyring).

    L'esercitazione è considerata superata se il report di consegna riporta tale contenuto decifrato.

    4. S/Key

    Lo scopo di questa esercitazione è verificare che lo studente sia in grado di utilizzare un sistema con autenticazione one-time-password S/Key.

    Come svolgere l'esercizio:

    • Lo studente installa sul propria istanza di Laboratorio Virtuale il pacchetto 8009-babaoblu-sicurezza-skey, quindi:
      • decomprime l'archivio esercitazione4.zip disponibile nella directory /usr/share/unibo oppure nella root del vostro file system;
      • installa le dipendenze eseguendo lo script install.sh presente nella cartella esercitazione4 appena decompressa.
    • Lo studente si collega a http://localhost/esercitazione4/index.php e compila la form.
    • In risposta, lo studente riceve all'indirizzo specificato (del dominio studio.unibo.it) una mail di conferma contenente uno username e una passphrase generati casualmente.
    • Lo studente configura il server per accedere con questi dati usando S/KEY
    • Lo studente avvia il server e si autentica usando i dati ricevuti via mail. In particolare:
      • accede al server con un client testuale, e si logga usando lo username ricevuto nella mail di conferma;
      • riceve dal server una challenge;
      • calcola il relativo response (con MD5), usando la passphrase ricevuta nella mail di conferma;
      • usa il response per autenticarsi.
    • La prova si considera superata se nella relazione finale lo studente riporta correttamente:
      • una copia del body della mail ricevuta;
      • i log del server che dimostrano la riuscita autenticazione S/Key;
      • uno screenshot relativo all'autenticazione challenge-response via terminale;
      • il response usato per accedere al server.