La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sperimentazioni di Sicurezza, A.A. 2009/2010

Presentazioni simili


Presentazione sul tema: "Sperimentazioni di Sicurezza, A.A. 2009/2010"— Transcript della presentazione:

1 Sperimentazioni di Sicurezza, A.A. 2009/2010
OpenID Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy Sperimentazioni di Sicurezza, A.A. 2009/2010

2 Sperimentazioni di Sicurezza, A.A. 2009/2010
Cos’è OpenID? OpenID è un protocollo per l’autenticazione utente basato sul principio del Single Sign On Progettato per essere utilizzato nell’ambito di servizi web Un utente può riutilizzare la stessa identità digitale per accedere a diversi servizi Ideato da Bradley Fitzpatrick (creatore di LiveJournal) nel 2005 Attualmente alla versione 2.0 Sito ufficiale: Sperimentazioni di Sicurezza, A.A. 2009/2010

3 Schema protocollare generale
OpenID Provider (OP), Relying Party (RP), User Agent (UA) Passi: L’utente inserisce uno User-Supplied Identifier sul RP tramite lo UA. Normalizzazione youropenid.com  Discovery Association (shared secret tra OP e RP) RP redirige UA verso OP con una richiesta di autenticazione OP stabilisce se l’utente è autorizzato o meno OP redirige UA verso RP RP verifica le informazioni ottenute Sperimentazioni di Sicurezza, A.A. 2009/2010

4 Architettura e protocollo
Sperimentazioni di Sicurezza, A.A. 2009/2010

5 Alcuni Identity Provider…
Visitare per un elenco esteso Sperimentazioni di Sicurezza, A.A. 2009/2010

6 Come ottenere un OpenID?
Sperimentazioni di Sicurezza, A.A. 2009/2010

7 Creazione di un identificatore OpenID
OpenID provider Seguire la procedura guidata “Sign Up For An OpenID” Obiettivo: ottenere un identificatore del tipo Possibilità di inserire informazioni aggiuntive (Cognome, Nome, Sesso, Eta’, etc…) Diverse “Persona” (da utilizzare in differenti servizi) Una volta ottenuto un OpenID, testarlo presso un servizio abilitato Provate Sperimentazioni di Sicurezza, A.A. 2009/2010

8 Obiettivo del laboratorio
Sviluppare un sito web minimale che effettui un controllo degli accessi tramite OpenID, anziché con username e password Integrazione con un OpenID consumer Interazione con un OpenID provider Uso della OpenID delegation Sperimentazioni di Sicurezza, A.A. 2009/2010

9 Sperimentazioni di Sicurezza, A.A. 2009/2010
Identity provider La configurazione di rete del laboratorio (firewall) non consente al sito web disponibile sulla rete locale di interagire con un OpenID provider al di fuori della rete dipartimentale Installeremo un semplicissimo identity provider interno phpMyId, una semplice implementazione in PHP di un identity provider Single-user Dipendenze minimali Nessun database Download: (versione 0.9) Sperimentazioni di Sicurezza, A.A. 2009/2010

10 Configurazione phpMyID (1)
Potete installare localmente il provider Posizionare il pacchetto nella document root Lanciare per controllarne l’installazione Scelti username e password echo -n 'username:realm:password' | openssl md5 Inserire il valore ottenuto nel campo auth_password Configurare (opzionale) i dati sul profilo ‘nickname’, ‘ ’,’fullname’ ,’dob’, ‘gender’, ‘postcode’, ‘country’, ‘language’, ‘timezone’; Configurare le eventuali features opzionali Per maggiori info vedere il README Sperimentazioni di Sicurezza, A.A. 2009/2010

11 Configurazione phpMyID (2)
// IF YOU HAVE NOT DONE SO, PLEASE READ THE README FILE FOR DIRECTIONS!!! /** * phpMyID - A standalone, single user, OpenID Identity Provider * phpMyID CJ Niemira <siege (at) siege (dot) org> GNU Public License 2 */ * User profile $profile array $GLOBALS['profile'] $GLOBALS['profile'] = array( # Basic Config - Required 'auth_username' => 'test', 'auth_password' => '37fa04faebe ed1f6cc867329b', Sperimentazioni di Sicurezza, A.A. 2009/2010

12 Configurazione phpMyID (3)
# Optional Config - Please see README before setting these # 'microid' => ' # 'pavatar' => ' # Advanced Config - Please see README before setting these # 'allow_gmp' => false, # 'allow_test' => false, # 'auth_realm' => 'phpMyID', # 'force_bigmath' => false, # 'idp_url' => ' # 'lifetime' => 1440, # 'paranoid' => false, # EXPERIMENTAL # Debug Config - Please see README before setting these # 'debug' => false, # 'logfile' => '/tmp/phpMyID.debug.log', ); Sperimentazioni di Sicurezza, A.A. 2009/2010

13 Configurazione phpMyID (4)
/** * Simple Registration Extension $sreg array $GLOBALS['sreg'] */ $GLOBALS['sreg'] = array ( # 'nickname' => 'Joe', # ' ' => # 'fullname' => 'Joe Example', # 'dob' => ' ', # 'gender' => 'M', # 'postcode' => '22000', # 'country' => 'US', # 'language' => 'en', # 'timezone' => 'America/New_York' ); require('MyID.php'); ?> Sperimentazioni di Sicurezza, A.A. 2009/2010

14 Configurazione phpMyID (5)
Per testare la corretta configurazione Per effettuare il log out Sperimentazioni di Sicurezza, A.A. 2009/2010

15 Sperimentazioni di Sicurezza, A.A. 2009/2010
Consumer Utilizzeremo PHP-OpenID Sviluppato da JanRain Può essere usato anche come provider Download: (versione 2.1.3) Potete utilizzare qualunque altra libreria consumer a vostro piacimento Alcuni pacchetti “open”: Esistono implementazioni in diversi linguaggi di programmazione… Sperimentazioni di Sicurezza, A.A. 2009/2010

16 Installazione e prova del consumer
Copiare la directory consumer nel sottoalbero dei documenti pubblici di Apache Copiare la directory Auth nella cartella consumer Accedere alla pagina Consumer/index.php Specificare il proprio URL nel form Sperimentazioni di Sicurezza, A.A. 2009/2010

17 Sperimentazioni di Sicurezza, A.A. 2009/2010
Delegation Può essere comodo rendere indipendente il proprio identificatore dal particolare Identity provider in uso Si sceglie come identificatore l’URL del sito web personale Nella pagina dell’URL, si aggiungono le direttive openid.server e openid.delegate <html> <head> <title>Wolfwood's Blog</title> <link rel="openid.server“ href=“ <link rel="openid.delegate" href=“ </head> <body> V: That cross is awfully heavy! N: That's because it's filled with mercy… </body> </html> Sperimentazioni di Sicurezza, A.A. 2009/2010

18 Consumer e provider alternativi
Esistono altri provider scritti in PHP: Un altra libreria consumer è whobar, della Sxip corp. Pensata per sistemi Unix-Linux ma funziona anche su Windows con qualche piccola modifica Potete utilizzare la combinazione di provider e consumer che preferite Esistono anche pacchetti scritti in linguaggi differenti da PHP Sperimentazioni di Sicurezza, A.A. 2009/2010

19 Sperimentazioni di Sicurezza, A.A. 2009/2010
OpenID e HTTPS Provate a utilizzare https affinché la password inviata all’OpenID provider sia cifrata con una chiave di sessione Semplice configurazione di Apache… Sperimentazioni di Sicurezza, A.A. 2009/2010

20 Sperimentazioni di Sicurezza, A.A. 2009/2010
OpenID Grazie per l’attenzione! Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy Sperimentazioni di Sicurezza, A.A. 2009/2010

21 Sperimentazioni di Sicurezza, A.A. 2009/2010
©2009 by Luca Maria Aiello. Permission to make digital or hard copies of part or all of this material is currently granted without fee provided that copies are made only for personal or classroom use, are not distributed for profit or commercial advantage, and that new copies bear this notice and the full citation. Sperimentazioni di Sicurezza, A.A. 2009/2010


Scaricare ppt "Sperimentazioni di Sicurezza, A.A. 2009/2010"

Presentazioni simili


Annunci Google