Gioco di Ruolo Sicurezza su Reti II - 2006/07 Commessa – Ufficiale Pagatore Gruppo 1 - NIC Albano...

Post on 01-May-2015

215 views 0 download

Transcript of Gioco di Ruolo Sicurezza su Reti II - 2006/07 Commessa – Ufficiale Pagatore Gruppo 1 - NIC Albano...

Gioco di RuoloSicurezza su Reti II - 2006/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

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 un’apposita interfaccia Librerie “Sportello”

“Libreria Sportello”

Insieme di funzioni fornite dall’Ufficiale 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.phpImplementano la logica applicativa del sistema

MyDBManager.phpContiene le interfacce delle funzioni:function timeout($cod);function confirm($cod,$token);function validateOrder($cod);Interfacce per il database

Controllo dell'esistenza dell'ordineConferma dell'ordineControllo sul timeout

end_proto_func.phpFase finale del protocollo (email 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 unid che viene memorizzato nella variabile:

private $shopId=9;

Particolare attenzione alla variabile: private $bound="%%%BOUND%%%";

Home Page Ufficiale Pagatore

Form Registrazione Utenti 1/3

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’e-mail deve contenere un indirizzo e-mail valido

L’e-mail 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

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

L’userid non deve essere già stata inserita

Sono controllati gli accessi indirizzati

Form Registrazione Utenti 3/3

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 dell’iscrizione

Sono controllati gli accessi indirizzati

Cliccando sul bottone “Termina la procedura” vengono salvati i dati nel database e verrà inviata all’utente una mail con il link per fare l’attivazione della registrazione

Il database per la registrazione dell’utente

utenti utenti_accesso utenti_infoconto

Il database per la registrazione dell’utente

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

Form Registrazione Negozio

Controlli sui campi

I campi devono essere inseriti tutti

Il certificato deve essere valido

L’indirizzo e-mail 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

L’userid deve essere univoca

La password deve essere di almeno 6 caratteri e devono coincidere

L’URL deve essere valida e deve iniziare per https://

Sono controllati gli accessi indirizzati

Database per la registrazione del negozio

negozi negozi_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 l’utente registrato

Informazioni sul conto quali data di scadenza e credito residuo

Elenco transazioni associate all’utente

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 l’utente che per i negozi registrati

Affidabile

Ha un’interfaccia 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 – D’Ambrosio – Galeota)

Progettazione e Implementazione logica del protocollo e della Comunicazione

Progettazione dello Sportello Testing Debugging e Deploy