Gioco di Ruolo Sicurezza su Reti II /07 Commessa – Ufficiale Pagatore Gruppo 1 - NIC Albano Pietro Castiglione Arcangelo Rossomando Enrico Tortora Francesco Gruppo 4 – CA Diodato Ferraioli D'Ambrosio Ciriaco Galeota Eugenia Gruppo 5 - ISP Moccia Vincenzo Vicinanza Michele Vitale Alessandro Partecipanti:
Obiettivo Realizzazione sistema di pagamento on-line basato su carte di credito virtuali
Funzionalità Gestione clienti Registrazione - Login Gestione conto - pagamenti Gestione negozi Registrazione – Login Accredito delle Transazioni Gestione transazioni Interazione tra clienti, banca e negozi Tracciabilità di tutte le transazioni effettuate
Architettura ISP Informatica Granata Cliente Ufficiale Pagatore Interfaccia sportello ISP Sportello Server Centrale
Custodisce : Dati anagrafici clienti Dati relativi ai negozi Informazioni sulle operazioni effettuate Credito clienti Presiede alle operazioni di acquisto
Sportello E ospitato su un ISP Raccoglie i dati relativi agli acquisti e li invia al server centrale Comunica all'applicazione chiamante l'esito dell'operazione
Informatica Granata Sito di e-commerce ospitato su un ISP Consente agli utenti di effettuare acquisti online Comunica con lo Sportello tramite unapposita interfaccia Librerie Sportello
Libreria Sportello Insieme di funzioni fornite dallUfficiale Pagatore al portale convenzionato Consentono al portale convenzionato la possibilità di offrire il servizio di pagamento ai clienti
Sportello Classi fornite ai negozi: Fase2.php Fase3.php Interfacce: MyDBManager.php end_proto.func.php Classe: curl.func.php
Sportello Fase2.php – Fase3.php Implementano la logica applicativa del sistema MyDBManager.php Contiene le interfacce delle funzioni: function timeout($cod); function confirm($cod,$token); function validateOrder($cod); Interfacce per il database Controllo dell'esistenza dell'ordine Conferma dell'ordine Controllo sul timeout end_proto_func.php Fase finale del protocollo ( al cliente – al fornitore... )
Sportello curl.func.php Il negozio deve inserire il valore della variabile: private $certPath="%PATH%"; Indica il path locale in cui risiede il proprio certificato Dopo la registrazione del negozio online viene associato un id che viene memorizzato nella variabile: private $shopId=9; Particolare attenzione alla variabile: private $bound="%%BOUND%%";
Home Page Ufficiale Pagatore
Form Registrazione Utenti 1/3
Controlli dei vari campi: Tutti i campi sono obbligatori Il cap deve essere un valore numerico di 5 cifre L deve contenere un indirizzo valido L non deve già essere stata inserita Ad ogni campo sono state applicate le funzioni per prevenire la sql-injection Sono controllati gli accessi indirizzati
Form Registrazione Utenti 2/3
Controlli dei vari campi: Tutti i campi sono obbligatori La password deve essere di almeno 6 caratteri Le password nei due campi devono coincidere Luserid non deve essere già stata inserita Sono controllati gli accessi indirizzati
Form Registrazione Utenti 3/3
Controlli dei vari campi: Viene generato un numero di carta di credito univoco valido Viene generato un codice di sicurezza di 3 cifre valido La data di scadenza è di 4 anni dal momento delliscrizione Sono controllati gli accessi indirizzati Cliccando sul bottone Termina la procedura vengono salvati i dati nel database e verrà inviata allutente una mail con il link per fare lattivazione della registrazione
Il database per la registrazione dellutente utentiutenti_accessoutenti_infoconto
Il database per la registrazione dellutente I campi nel database verranno inseriti tutti I campi password della tabella utenti_accesso, num_conto e cod_sicurezza della tabella utenti_infoconto verranno memorizzati nel database in maniera cifrata utilizzando MD5 Le query al database verranno effettuate in maniera atomica utilizzando le query sql: LOCK TABLES (blocca le tabelle in scrittura) START TRANSACTION (inizia la transazione) … COMMIT (termina la transazione) UNLOCK TABLES (sblocca le tabelle)
Form Registrazione Negozio
Controlli sui campi I campi devono essere inseriti tutti Il certificato deve essere valido Lindirizzo deve essere valido e univoco Il numero di conto corrente deve essere di 16 cifre numerico Abi e Cab devono essere di 5 cifre numerico Luserid deve essere univoca La password deve essere di almeno 6 caratteri e devono coincidere LURL deve essere valida e deve iniziare per Sono controllati gli accessi indirizzati
Database per la registrazione del negozio negozinegozi_accesso
Database per la registrazione del negozio I campi nel database verranno inseriti tutti Il campo password della tabella negozi_accesso verrà memorizzato nel database in maniera cifrata utilizzando MD5 Le query al database verranno effettuate in maniera atomica utilizzando le query sql: LOCK TABLES (blocca le tabelle in scrittura) START TRANSACTION (inizia la transazione) … COMMIT (termina la transazione) UNLOCK TABLES (sblocca le tabelle)
Database Transazioni utenti_transazioni In questa tabella verranno memorizzate tutte le transazioni. Quelle non ancora pagate avranno il campo userid vuoto, quelle pagate invece sarrano comprese del campo userid Il capo accreditata è impostato di default a 0 ed indica se il negozio ha accreditato i soldi sul suo conto oppure no
Pagina di info per lutente registrato Informazioni sul conto quali data di scadenza e credito residuo Elenco transazioni associate allutente
Pagina di info per il negozio Elenco transazioni associate al negozio Bottone per accreditare le transazioni sul conto del negozio
Il pagamento resoconto della transazione
Il pagamento inserimento dati carta di credito
Esito Transazione
La sicurezza delle transazioni Il numero di carta di credito con il relativo codice di verifica è memorizzato in MD5 e il relativo controllo in fase di pagamento avviente con un confronto fra valori MD5 I messaggi tra Ufficiale Pagatore e i negozi avviene tramite protocollo SSL I codici delle transazioni sono univoci Sono stati gestiti tutti i controlli su eventuali errori o avarie del sistema
In conclusione Ufficiale Pagatore risulta essere: Sicuro sia per lutente che per i negozi registrati Affidabile Ha uninterfaccia grafica che risulta essere semplice ed intuitiva anche ad utenti che non sono esperti
La ripartizione del lavoro tra i gruppi Gruppo 5 (Vitale - Moccia - Vicinanza) Interfaccia Grafica Progettazione e Implementazione Database Login-Registrazione-Info transazioni per gli utenti Login-Registrazione-Info transazioni per i negozi Controlli dei vari form di accesso ai Database Test Gruppo 1 (Albano – Castiglione – Rossomando - Tortora) Gruppo 4 (Ferraioli – DAmbrosio – Galeota) Progettazione e Implementazione logica del protocollo e della Comunicazione Progettazione dello Sportello Testing Debugging e Deploy