Esercitazione 04

Transcript

Esercitazione 04
Sommario
Sommario
Esercitazione 04
! S/Key
! Descrizione esercitazione
! Alcuni sistemi S/Key-aware
Angelo Di Iorio
" Windows
" Linux
!"#!$#!%&'$(%)*+,')#$!"#!$#!%&'$(%)*+,')#$-).+/&'(+%!0
).+/&'(+%!0*+$1,",2.!
*+$1,",2.!
© Babaoglu 2001-2007
S/Key: intro
intro
S/Key:
Sicurezza
S/Key: funzionamento
funzionamento di
di base
base
S/Key:
! Inizializzazione del sistema
! 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.
" S = prepare(passphrase, seed)
" Il sistema memorizza il valore f^n(S)
! i-esima autenticazione (i > 0)
" Il sistema presenta la challenge <seed, i>
" Il client calcola il response R come segue
! S = prepare(passphrase, seed)
! R = f^(n – i)(S)
" 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
© Babaoglu 2001-2007
Sicurezza
2
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Descrizione
Descrizione generale
generale
Esercitazione
! 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
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Requisiti
Requisiti del
del client
client
Esercitazione
Esercitazione –– Requisiti
Requisiti del
del servizio
servizio
Esercitazione
! Qualunque tipo:
"
"
"
"
Login
server ftp
server ssh
…
! Supporto per autenticazione S/Key
! Presenza di log (serviranno per il report finale)
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Requisiti
Requisiti per
per username
username ee
Esercitazione
password
password
! http://labsicurezza.nws.cs.unibo.it/cgibin/esercitazione04/index.php
! Compilare la form
" Nome, cognome, matricola (10 cifre)
" Username del dominio cs.unibo.it
! Client testuale, e.g.,
" Comando ssh per server ssh
" Comando ftp per server ftp
" …
! In risposta si riceve all’indirizzo di cs.unibo.it una
mail di conferma con
" I dati inseriti
" Uno username e una password generati casualmente
" [Laboratorio Sicurezza 2008/09: Esercitazione
04]: Mail di conferma per Cognome Nome Matricola
! Mail inviata in copia anche al tutor
© Babaoglu 2001-2007
Sicurezza
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Cosa
Cosa inserire
inserire nel
nel report
report
Esercitazione
Esercitazione –– Esempio
Esempio in
in Windows
Windows
Esercitazione
! Scaricare un server FTP S/Key enabled e configurarlo
" Secure FTP Server
! 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 non presente nei log, la challenge del server
! Il response
! 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)
! Win S/Key calculator:
" Winkey: http://security.fi.infn.it/tools/OPIE/winkey32.exe
! Web S/Key calculator: http://www.cs.umd.edu/~harry/jotp/
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Esempio
Esempio in
in linux
linux
Esercitazione
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Esempio
Esempio in
in linux
linux –– PAM
PAM
Esercitazione
(1/5)
(1/5)
! Pluggable Authentication Modules for Linux
! Framework per rendere le applicazioni indipendenti dai
meccanismi di autenticazione
! Configurazione del servizio SSH
! Politiche di autenticazione per i vari servizi settate via file di
configurazione PAM
! Autenticazione eseguita da moduli caricati dinamicamente
" OPIE
! L’API PAM si divide in 4 differenti facilities
! PAM
" 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
© Babaoglu 2001-2007
Sicurezza
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Esempio
Esempio in
in linux
linux –– PAM
PAM
Esercitazione
(2/5)
(2/5)
Kerberos
Applicazione
PAM-aware
! Regole di configurazione
Opie
© Babaoglu 2001-2007
! Directory di configurazione
" /etc/pam.d/
" Ogni file contiene le regole di configurazione di un servizio
PAM API
File di
config.
Esercitazione –– Esempio
Esempio in
in linux
linux –– PAM
PAM
Esercitazione
(3/5)
(3/5)
" 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
Unix auth.
Sicurezza
© Babaoglu 2001-2007
Esercitazione –– Esempio
Esempio in
in linux
linux –– PAM
PAM
Esercitazione
(4/5)
(4/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
© Babaoglu 2001-2007
Sicurezza
Sicurezza
Esercitazione –– Esempio
Esempio in
in linux
linux –– PAM
PAM
Esercitazione
(5/5)
(5/5)
! Alcuni servizi PAM-aware
"
"
"
"
sshd, server ssh
proftpd, server ftp
wu-ftpd, server ftp
…
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Esempio
Esempio in
in linux
linux –– OPIE
OPIE
Esercitazione
(1/2)
(1/2)
! One-Time-Password in Everything
! Schema di autenticazione derivato da S/Key
! Per renderlo disponibile in PAM (debian)
" 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
Esempio in
in linux
linux –– OPIE
OPIE
Esercitazione
(2/2)
(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
© Babaoglu 2001-2007
Sicurezza
© Babaoglu 2001-2007
Sicurezza
Esercitazione –– Esempio
Esempio in
in linux
linux ––
Esercitazione
Configurazione SSH
SSH
Configurazione
Riferimenti
Riferimenti
! http://www.ietf.org/rfc/rfc1760.txt, The S/KEY One-Time Password System
! 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
© Babaoglu 2001-2007
Sicurezza
! http://citeseer.ist.psu.edu/cache/papers/cs/5967/ftp:zSzzSzftp.mcc.ac.ukzSzpub
zSzsecurityzSzPAPERSzSzPASSWORDzSzSKEY.pdf/haller94skey.pdf, 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
© Babaoglu 2001-2007
Sicurezza