Gioco di Ruolo Sicurezza su Reti II - 2006/07 Commessa – Ufficiale Pagatore Gruppo 1 - NIC Albano...
-
Upload
romilda-sala -
Category
Documents
-
view
215 -
download
0
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