Sommario Esercitazione 04 Angelo Di Iorio One-time password S/Key Descrizione esercitazione Alcuni sistemi S/Key-aware Windows Linux ALMA MATER STUDIORUM UNIVERSITA DI BOLOGNA 2 Un po di background Un po di background: One-time password Nei sistemi di autenticazione il canale attraverso il quale la password viene inserita/spedita può non essere sicuro Un utente malizioso può sniffare la password e riutilizzarla per accessi successivi La crittografia simmetrica o asimmetrica può essere usata per risolvere il problema Lo schema generale è il seguente: U dichiara l intenzione di accedere a host H H seleziona un challenge e lo spedisce a U U calcola il response al challenge e lo spedisce indietro ad H H verifica il response e permette l accesso a U Solo U possiede informazioni che gli permettono di calcolare il response Intercettare il challenge o il response non fornisce nessuna informazione all attaccante
S/Key: intro S/Key: inizializzazione S/Key è un sistema one-time-password inizialmente sviluppato in ambiente Unix S/Key è un marchio della Telcordia Technologies, nuovo nome della Bell Communication Research (Bellcore) Esistono implementazioni per Linux (via PAM), FreeBSD, OpenBSD or Windows Il modulo S/Key viene usato per abilitare questo tipo di autenticazione su servizi FTP, NNTP, SSH, etc. Il sistema memorizza per ogni utente una passphrase e un seed (numero casuale). Si usa una funzione hash one-way f(x) Il sistema calcola x 1 =f(<passphrase,seed>); x 2 =f(x 1 ); ; x n =f(x n-1 ) Il sistema memorizza f^n (<passphrase,seed>) S/Key: verifica Esercitazione Descrizione generale All i-esima autenticazione (i > 0) Il sistema presenta la challenge <seed, i> Il client calcola il response R come segue R = f^(n i)(<passphrase,seed>) Il sistema verifica il response Se f(r) fa match con il valore memorizzato, allora l autenticazione ha avuto successo ed R rimpiazza il valore attualmente memorizzato Altrimenti, l autenticazione non ha avuto successo Lo studente installa sulla propria macchina un servizio con autenticazione S/Key Riceve una coppia <username,password> Configura il server per permettere l accesso all utente <username> via S/Key Supera la fase di autenticazione S/Key e accede al servizio
Esercitazione Requisiti del servizio Esercitazione Requisiti del client Qualunque tipo: Login server ftp server ssh Supporto per autenticazione S/Key Presenza di log (serviranno per il report finale) Client testuale, e.g., Comando ssh per server ssh Comando ftp per server ftp Esercitazione Requisiti per username e password http://labsicurezza.nws.cs.unibo.it/cgi-bin/ esercitazione04/index.php Compilare la form Nome, cognome, matricola (10 cifre) Indirizzo mail del dominio cs.unibo.it o studio.unibo.it In risposta si riceve all indirizzo specificato una mail di conferma con I dati inseriti Uno username e una password generati casualmente [Laboratorio Sicurezza 2010/2011: Esercitazione 04]: Mail di conferma per Cognome Nome Matricola! Mail inviata in copia anche al tutor Esercitazione Cosa inserire nel report Una copia della mail ricevuta Log del server che dimostrano la riuscita autenticazione Relativi allo username ottenuto nella mail di conferma Comprensivi della challenge fornita dal server (se presente nei log) Uno screenshot relativo all autenticazione challengeresponse via terminale Il response
Esercitazione Esempio in Windows JOPT e le informazioni necessarie a S/Key Scaricare un server FTP S/Key enabled e configurarlo Secure FTP Server http://www.cuteftp.com/ Free trial version Console di amministrazione grafica Server-U (free trial) Client ftp ftp a linea di comando Nota, abilitare il command line interpreter (cmd) Web S/Key calculator: http://www.cs.umd.edu/~harry/jotp/ Esercitazione Esempio in linux Configurazione del servizio SSH OPIE PAM (1/5) Pluggable Authentication Modules for Linux Framework per rendere le applicazioni indipendenti dai meccanismi di autenticazione Politiche di autenticazione per i vari servizi settate via file di configurazione PAM Autenticazione eseguita da moduli caricati dinamicamente L API PAM si divide in 4 differenti facilities Account Management: disponibilità di un account Authentication: l effettiva procedura di autenticazione e la gestione dei permessi Session Management, apertura e chiusura di una sessione Password Management, procedure per cambiare password
(2/5) (3/5) Applicazione PAM-aware PAM API File di config. Kerberos Opie Unix auth. Directory di configurazione /etc/pam.d/ Ogni file contiene le regole di configurazione di un servizio Regole di configurazione Per ogni servizio ci possono essere più regole Ogni regola indica il modulo PAM da utilizzare per una data facility Politica di gestione del modulo L ordine delle regole è importante: Per ogni facility i relativi moduli sono eseguiti in ordine (4/5) (5/5) Direttive per la configurazione per uno stesso servizio e caricamento dei moduli: #%PAM-1.0 auth sufficient pam_myauthmod.so auth required pam_unix.so account required pam_unix.so password required pam_unix.so session required pam_unix.so Alcuni servizi PAM-aware sshd, server ssh proftpd, server ftp wu-ftpd, server ftp
Esercitazione Esempio in linux OPIE (1/2) One-Time-Password in Everything Schema di autenticazione derivato da S/Key Per renderlo disponibile in PAM (debian) si usano diversi pacchetti: opie-server: mette a disposizione le utility per la gestione lato server delle OTP opiepasswd opieinfo opie-client: utility per la generazione di OTP da usare per l autenticazione opiekey libpam-opie: pacchetto per l utilizzo di OPIE via PAM Esercitazione Esempio in linux OPIE (2/2) Lato server opiepasswd inizializza l autenticazione OTP per un utente Passphrase Username Sequence number (default 499) opieinfo fornisce informazioni sul prossimo login OPIE Sequence number Seed Lato client opiekey calcola il response associato ad una challenge Passphrase Sequence number seed Esercitazione Esempio in linux Configurazione SSH Riferimenti Nel file /etc/pam.d/ssh Commentare le eventuali regole per la facility auth Aggiungere una regola del tipo: auth required pam_opie.so Il modulo specificato permette l autenticazione OPIE! Nel file di configurazione di sshd (/etc/ssh/sshd_config) ChallengeResponseAuthentication yes UsePAM yes http://www.ietf.org/rfc/rfc1760.txt, The S/KEY One-Time Password System (RFC) Paper: The S/Key On-Time-Password System, Haller, N., Proceedings of the ISOC Symposium on Network and Distributed System Security, February 1994, San Diego, CA http://www.cs.umd.edu/~harry/jotp/, the (web) Java Calculator http://www.orange-carb.org/skeycalc/, S/Key calculator for MAC OS http://www.kernel.org/pub/linux/libs/pam/, useful for documentation material on Linux-PAM