Sommario Esercitazione 04 ■ One-time password ■ S/Key Andrea Nuzzolese ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA Un po’ di background ■ 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 © Nuzzolese 2011-2014 Sicurezza ■ Descrizione esercitazione ■ Alcuni sistemi S/Key-aware per Linux © Nuzzolese 2011-2014 Sicurezza 2 Un po’ di background: One-time password ■ 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 © Nuzzolese 2011-2014 Sicurezza S/Key: intro ■ 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) S/Key: inizializzazione ■ Il sistema memorizza per ogni utente una passphrase e un seed (numero casuale). ■ Si usa una funzione hash one-way f(x) ■ Esistono implementazioni per Linux (via PAM), FreeBSD, OpenBSD or Windows ■ Il sistema calcola x1=f(<passphrase,seed>); x2=f(x1); …; xn=f(xn-1) ■ Il modulo S/Key viene usato per abilitare questo tipo di autenticazione su servizi FTP, NNTP, SSH, etc. ■ Il sistema memorizza f^n(<passphrase,seed>) © Nuzzolese 2011-2014 Sicurezza © Nuzzolese 2011-2014 S/Key: verifica ■ 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 © Nuzzolese 2011-2014 Sicurezza Sicurezza Esercitazione – Descrizione generale ■ Lo studente installa sulla propria macchina un servizio con autenticazione S/Key ■ Riceve una coppia <username,passphrase> ■ Configura il server per permettere l’accesso all’utente <username> via S/Key utilizzando la <passphrase> ■ Supera la fase di autenticazione S/Key e accede al servizio © Nuzzolese 2011-2014 Sicurezza Esercitazione – Requisiti del servizio ■ Server ssh ■ Supporto per autenticazione S/Key ■ Presenza di log (serviranno per il report finale) © Nuzzolese 2011-2014 Sicurezza Come configurare il Laboratorio Virtuale ■ Aggiornare gli indici APT ● sudo apt-get update ● sudo update-apt-xapian-index ■ Il pacchetto da installare è babaoglu-security-lab4; ■ Una volta installato il pacchetto occorre: ● Decomprimere l’archivio Esercitazione3 disponibile nella directory !/usr/share/unibo/babaoglu-security-lab4 nella vostra home; ● Spostarsi nella cartella Esercitazione4 appena decompressa ● Lanciare l’installer (IMPORTANTE) ▴ $> ./install.sh © Nuzzolese 2011-2014 Sicurezza Esercitazione – Requisiti del client ■ Client testuale, e.g., ● Comando ssh per server ssh © Nuzzolese 2011-2014 Sicurezza Esercitazione – Requisiti per username e password ■ http://localhost/esercitazione04/index.php ■ Compilare la form ● Username e password del dominio studio.unibo.it ● Nome, cognome, matricola (10 cifre) e captcha ■ In risposta si riceve all’indirizzo specificato una mail di conferma con ● I dati inseriti ● Uno username e una passphrase generati casualmente ● [Laboratorio Sicurezza 2013/2014: Esercitazione 04]: Mail di conferma per Cognome Nome Matricola ■ Mail inviata in copia anche al tutor © Nuzzolese 2011-2014 Sicurezza Esercitazione – Cosa inserire nel report Esercitazione – Esempio in linux ■ Una copia della mail ricevuta (solo il body) ■ Log (file /var/log/auth.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) ■ Configurazione del servizio SSH ● OPIE ▴ PAM ■ Uno screenshot relativo all’autenticazione challengeresponse via terminale ■ Il response © Nuzzolese 2011-2014 Sicurezza 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 © Nuzzolese 2011-2014 Sicurezza © Nuzzolese 2011-2014 Sicurezza 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 © Nuzzolese 2011-2014 Sicurezza Esercitazione – Esempio in linux – PAM (1/5) Esercitazione – Esempio in linux – PAM (2/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 Kerberos Applicazione PAM-aware PAM API ■ Autenticazione eseguita da moduli caricati dinamicamente Opie ■ 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 File di config. ● Session Management, apertura e chiusura di una sessione Unix auth. ● Password Management, procedure per cambiare password © Nuzzolese 2011-2014 Sicurezza Esercitazione – Esempio in linux – PAM (3/5) © Nuzzolese 2011-2014 Sicurezza Esercitazione – Esempio in linux – PAM (4/5) ■ 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: ■ 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 ▴ Per ogni facility i relativi moduli sono eseguiti in ordine © Nuzzolese 2011-2014 Sicurezza © Nuzzolese 2011-2014 Sicurezza Esercitazione – Esempio in linux – PAM (5/5) Esercitazione – Esempio in linux – Configurazione SSH ■ Nel file /etc/pam.d/sshd ● Commentare le eventuali regole per la facility auth ● Aggiungere una regola del tipo: ▴ auth required pam_opie.so ■ Alcuni servizi PAM-aware ● ● ● ● ▴ Il modulo specificato permette l’autenticazione OPIE sshd, server ssh proftpd, server ftp wu-ftpd, server ftp … ● Commentare ▴ @include common-auth (Standard Un*x authentication) ■ Nel file di configurazione di sshd (/etc/ssh/sshd_config) ● Settare ▴ ChallengeResponseAuthentication yes ▴ PasswordAuthentication no ▴ UsePAM yes © Nuzzolese 2011-2014 Sicurezza © Nuzzolese 2011-2014 Riferimenti ■ 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.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 © Nuzzolese 2011-2014 Sicurezza Sicurezza
© Copyright 2025 ExpyDoc