Gioco di Ruolo
Sicurezza su Reti II - 2006/07
Commessa – Ufficiale Pagatore
Partecipanti:
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
Obiettivo
Realizzazione sistema di pagamento
on-line basato su carte di credito
“virtuali”
Funzionalità

Gestione clienti



Gestione negozi



Registrazione - Login
Gestione conto - pagamenti
Registrazione – Login
Accredito delle Transazioni
Gestione transazioni


Interazione tra clienti, banca e negozi
Tracciabilità di tutte le transazioni effettuate
Architettura
Interfaccia
“sportello”
“Ufficiale Pagatore”
Server Centrale
ISP “Sportello”
Cliente
ISP “Informatica Granata”
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.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 (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 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
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
Scarica

slides - Sicurezza su reti 2