Secure Simple Budget Manager



Похожие документы
Approfondimento di Marco Mulas

Corso di Sicurezza Informatica. Sicurezza Web. Ing. Gianluca Caminiti

Secure socket layer (SSL) Transport layer security (TLS)

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

Protezione delle informazioni in SMart esolutions

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno

SICUREZZA. Sistemi Operativi. Sicurezza

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1

Dettaglio attività e pianificazione. snamretegas.it. San Donato Milanese Aprile 2014

Corso di Laurea in Informatica Reti e Sicurezza Informatica

Programmazione in Rete

Elementi di Sicurezza informatica

La suite di protocolli SSL

Cosa è Tower. Sistema di autenticazione per il controllo degli accessi a reti wireless. struttura scalabile. permette la nomadicità degli utenti

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

IFInet Secure Webmail

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Sommario. Introduzione alla Sicurezza Web

La sicurezza nel Web

Reti di Telecomunicazione Lezione 7

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione

Sicurezza dei sistemi e delle reti 1. Lezione VI: IPsec. IPsec. La suite TCP/IP. Mattia Monga. a.a. 2014/15

Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate

Elements of Security Protocols Secure Socket Layer (SSL)

La sicurezza nelle reti di calcolatori

Sistema Informativo di Teleraccolta EMITTENTI

Programma Servizi Centralizzati s.r.l.

Protocolli applicativi: FTP

DOCFINDERWEB SERVICE E CLIENT

Reti private virtuali (VPN) con tecnologia IPsec

MISURAZIONE DEI LIVELLI DI SERVIZIO

M-BOX V Profilo di Prodotto

appunti delle lezioni Architetture client/server: applicazioni client

Allegato 3 Sistema per l interscambio dei dati (SID)

SECURE SOCKET LAYER FEDERICO REALI

OpenVPN: un po di teoria e di configurazione

Flusso Informazioni. l esecuzione della Gestione Anagrafiche Clienti viene Notificato all Utente con la spedizione di una .

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Sicurezza interna alle applicazioni. Sicurezza esterna alle applicazioni. SSL: introduzione. Sicurezza nei Sistemi Informativi

MANUALE UTENTE FORMULA PEC

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

INDICE. Indice. Introduzione

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML

Sicurezza a livello IP: IPsec e le reti private virtuali

Laplink FileMover Guida introduttiva

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Appendice:: Spunti sulla sicurezza e Internet Materiale fuori programma dedicato rigorosamente solo ai curiosi. prof.

Acquisto con carta di credito. Acquisto con carta di credito

Simulazione. Emanuele Maltempi. Direzione Mercati Sistemi IT. Milano, 20 settembre 2011

Colloquio SGSS-SIRGESA

COME CONFIGURARE UN CLIENT DI POSTA

Indice. Introduzione. Capitolo 1

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi

CRITTOGRAFIA SSL POSTA ELETTRONICA

Dichiarazione di volontà in merito alla donazione di organi e tessuti

Obiettivo dell esercitazione

Servizi remoti Xerox Un passo nella giusta direzione

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Avetana Health Telematic Services

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

Introduzione a Windows XP Professional Installazione di Windows XP Professional Configurazione e gestione di account utente

Applicazioni per l autenticazione Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

Sicurezza dei sistemi informatici Firma elettronica E-commerce

Operative Guide SMTP Autenticato e Configurazione SSL

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

Sicurezza delle Applicazioni Informatiche. Qualificazione dei prodotti di back office Linee Guida RER

COME CONFIGURARE LA PEC SU OUTLOOK EXPRESS

Tracciabilità degli utenti in applicazioni multipiattaforma

Le Soluzioni Tango/04 per adempiere alla normativa sugli amministratori di sistema

Obiettivo: realizzazione di reti sicure TIPI DI ATTACCO. Politica di sicurezza: a) scelte tecnologiche b) strategie organizzative

La presente guida illustra i passaggi fondamentali per gestire l account posta elettronica certificata (PEC) sui dispositivi Apple ipad.

Primo accesso al sistema, vincoli nuova password 5. Esempio di accesso attraverso Interfaccia Webmail 7

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

Manuale servizio SMTP autenticato

Introduzione. Sommario: Obiettivo:

Piazza Multicanale. Caso di Studio: Progetto di sistema. Realizzato da: Addante Michele Daddario Fabio De Vito Francesco Cania Lagrotta Piero

Guida all Utilizzo dell Applicazione Centralino

Mac Application Manager 1.3 (SOLO PER TIGER)

ITI M. FARADAY Programmazione modulare a.s

Guida ai requisiti di accesso e alla modalità operativa del sistema E.Civis ASP

azienda, i dipendenti che lavorano fuori sede devono semplicemente collegarsi ad un sito Web specifico e immettere una password.

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

Sicurezza in Internet

Introduzione alla rete Internet

A2A technical presentation

La sicurezza nelle comunicazioni Internet

TeamPortal. Servizi integrati con ambienti Gestionali

Introduzione alle applicazioni di rete

Monitoraggio di outsourcer e consulenti remoti

Servizio di Posta elettronica Certificata. Procedura di configurazione dei client di posta elettronica

Teleassistenza mediante PCHelpware

Guida all Utilizzo del Posto Operatore su PC

PRINCIPI DI COMPUTER SECURITY. Andrea Paoloni

Sicurezza nelle applicazioni multimediali: lezione 7, sicurezza dei protocolli. Sicurezza dei protocolli (https, pop3s, imaps, esmtp )

Транскрипт:

Secure Simple Budget Manager Caso di studio Reti di Calcolatori CdL: Informatica e Tecnologie per la Produzione del Software A.A. 2009 2010

Outline Obiettivi e motivazioni Analisi Progettazione dell architettura Progettazione delle classi Progettazione della comunicazione in rete Progettazione della sorgente dati Implementazioni

Obiettivi e motivazioni Motivazioni Risolvere i seguenti problemi di una comunicazione client server: Obiettivi Certezza dell identità dell interlocutore Riservatezza dei dati trasmessi Protezione dalla manomissione Realizzare un applicazione client server che: Gestisca dati riservati e sensibili Utilizzi il protocollo Transport Layer Security

Analisi Secure Simple Budget Manager Applicazione esemplicativa e semplicativa di un sistema reale di gestione di dati sensibili e riservati: gestione delle entrate e delle uscite di una famiglia o di un individuo Funzionalità Gestione dell account utente (registrazione, visualizzazione, modifica ed eliminazione) Gestione delle entrate e delle uscite (inserimento, modifica, eliminazione e visualizzazione) Calcolo e visualizzazione del bilancio Gestione della sessione di lavoro (login e logout)

Analisi Requisiti informativi R.1 Utente R.2 Entrata R.3 Uscita R.4 Bilancio Vincoli sul formato (min/max caratteri, struttura, ) e sul valore (min/max valore ammesso, valori predefiniti, ) dei dati

Analisi Entità Utente MovimentazioneFinanziaria» IdentificatoreUnivoco» IdentificatoreElenco» Natura Bilancio» ParametriCalcolo Requisiti funzionali Descrizione degli scenari in cui si realizzano le funzionalità dell applicazione

Socket TCP + protocollo TLS Progettazione dell architettura LATO CLIENT Livello di presentazione LATO SERVER Livello di comunicazione in rete Livello di dominio Livello di dominio Livello di comunicazione in rete Livello di sorgente dati

Progettazione delle classi Classi e package Classi di utilità, utilizzate nello scambio di dati tra i livelli architetturali package ssbm.commons: DataContainer, DataContainersList; DataID; DomainConstraints; Entities, Services package ssbm.commons.exception: DatabaseException, DomainException, NetException, ServerException, SSBMSecurityException ssbm, avvio del client e del server: ClientMain, StartupManager4Client; ServerMain, StartupManager4Server ssbm.file, controllo dell esistenza dei file utilizzati dall applicazione e lettura del file di configurazione: FilesManager, ConfigXMLReader

Progettazione delle classi Classi e package del livello di presentazione ssbm.presentation.filters, gestione del filtraggio dei dati riportati nell interfaccia grafica: DataType, FieldMetadata, FieldMetadataFactory, FieldsContainer; Filter e relative sottoclassi; FilterManager, FilterChain ssbm.presentation.gui, gestione dell interfaccia grafica: Dispatcher, Helper, Controller; Form, Editable, EditableTable, Gettable, GettableTable, Searchable e classi che le implementano

Progettazione delle classi Classi e package del livello di comunicazione in rete ssbm.net, gestione degli aspetti condivisi della comunicazione in rete: TLSConnection; Reply, Request, NetMessageConstants ssbm.net.client, gestione del lato client della comunicazione client server: TLSConnection4Client, ClientEndpoint ssbm.net.server, gestione del lato server della comunicazione client server : TLSConnection4Server; ServerEndpoint, ServerEndpointThread

Progettazione delle classi Classi e package del livello di dominio ssbm.domain, punto di accesso al dominio e gestori dei servizi: BusinessDelegate, BusinessDelegate4Client, BusinessDelegate4Server; AuthenticationManager, InsertManager, UpdateManager, DeleteManager, GetManager ssbm.domain.entities, entità del dominio e relativa factory: Utente, MovimentazioneFinanziaria, Bilancio, EntitiesFactory Classi e package del livello di sorgente dati ssbm.db, gestione della connessione al database: DatabaseConnector, SQLStatementProvider ssbm.db.mapping, gestione del mapping tra le tavole del database e le entità del dominio: DataMapper e relative sottoclassi

Progettazione delle classi Diagramma delle classi e delle risorse del lato client dell applicazione (notazione UML-like)

Progettazione delle classi <<Interfacce Form>>: segnaposto per le classi e le interfacce della GUI

Progettazione delle classi Diagramma delle classi che rappresentano le interfacce grafiche dell applicazione (notazione UML-like)

Progettazione delle classi Diagramma delle classi e delle risorse del lato server dell applicazione (notazione UML-like)

Progettazione delle classi Dettaglio delle classi entità (notazione UML-like)

Progettazione delle classi Diagramma delle classi entità (notazione UML-like)

Progettazione delle classi Dettaglio delle classi e delle risorse dei livelli di dominio e sorgente dati (notazione UML-like)

Progettazione delle classi Diagramma delle classi e delle risorse dei livelli di dominio e sorgente dati (notazione UML-like)

Progettazione della comunicazione in rete Schema dell handshake TLS LATO CLIENT ClientHello Certificate ClientKeyExchange CerticateVerify ChangeCipherSpec Finished LATO SERVER ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone ChangeCipherSpec Finished

Progettazione della comunicazione in rete Autenticazione del client e del server Certificati X.509 Algoritmo per la generazione della coppia di chiavi pubblica e privata: DSA Algoritmo di hash: SHA-1 Lunghezza delle chiavi: 1024 bit X.500 DN del client: CN = SSBM Client OU = Software Design and Development O = Secure Simple Budget Manager L = Bitetto S = Bari C = IT X.500 DN del server: CN = SSBM Server OU = Software Design and Development O = Secure Simple Budget Manager L = Bitetto S = Bari C = IT

Progettazione della comunicazione in rete Politica di autenticazione dell utente Login (username e password) e logout Verifica della validità della provenienza delle richieste di servizio

Progettazione della comunicazione in rete Protocollo di comunicazione Formato dei messaggi: CODICE, INTESTAZIONE e CORPO Comandi (messaggi del client) Codici dei comandi Codice Categoria DEL uso GET uso LOGIN autenticazione LOGOUT autenticazione NEW uso REG autenticazione UPD uso

Progettazione della comunicazione Struttura dei comandi d uso: <codice> = {DEL, GET, NEW, UPD} <intestazione> = <corpo> = usr: username utente in rete entity: {Bilancio, MovimentazioneFinanziaria, Utente} se il codice del comando è DEL e l entità non è un utente: #[(id: ID esemplare da eliminare )+]# solo se; se il codice del comando è GET e l entità non è un utente: #[(<nome_parametro i >: <valore_parametro i > )]#, i itera sui parametri di ricerca; se il codice del comando è NEW o UPD: #[<nome_dato i >: <valore_dato i > ]#, i itera sui dati dell entità.

Progettazione della comunicazione in rete Struttura dei comandi di autenticazione: <codice> = LOGIN <intestazione> = usr: username dell account utente da autenticare psw: password dell account utente da autenticare ip: indirizzo IP del client <codice> = LOGOUT <intestazione> = usr: username dell account utente da autenticare <codice> = REG <intestazione> = usr: username dell account utente da registrare psw: password dell account utente da registrare ip: indirizzo IP del client

Progettazione della comunicazione in rete Risposte del server Codici degli esiti Codice Esito Servizio 700 POSITIVO DEL, NEW, UPD 702 POSITIVO GET 703 POSITIVO GET (nessun risultato) 707 POSITIVO REG 710 POSITIVO LOGIN 720 POSITIVO LOGOUT 300 NEGATIVO TUTTI (errore di dominio) 301 NEGATIVO TUTTI (errore interno del server)

Progettazione della comunicazione in rete Struttura dei messaggi: <codice> = {300, 301} <intestazione> = msg: messaggio esplicativo errore <codice> = 702 <corpo> = (#[<nome_dato i >: <valore_dato i >]# )+, i itera sui dati dell entità. <codice> = {700, 703, 710, 720, 707}.

Progettazione della comunicazione in rete Schema dello scambio dei messaggi LATO CLIENT Handshake TLS Comando Chiusura connessione TLS LATO SERVER Handshake TLS Risposta Chiusura connessione TLS

Progettazione della sorgente dati Diagramma delle dipendenze

Progettazione della sorgente dati Schema del database (diagramma ER)

Implementazione Generazione dei certificati e dei keystore 1. Costruzione del keystore 2. Estrazione del certificato di chiave pubblica 3. Esportazione nel truststore dell altro host

Implementazione Generazione dei certificati e dei keystore 1. Costruzione del keystore 2. Estrazione del certificato di chiave pubblica 3. Esportazione nel truststore dell altro host client e server

Implementazione Generazione dei certificati e dei keystore 1. Costruzione del keystore fake host 2. Estrazione del certificato di chiave pubblica 3. Esportazione nel truststore dell altro host

Implementazione 1. Costruzione del keystore $ keytool -genkeypair -alias ssbmclient -validity 400 storetype jceks -keystore C:\certs\ssbmClientKey -keypass ssbm_client_k - storepass ssbm_client_ks

Implementazione 2. Estrazione del certificato di chiave pubblica $ keytool -exportcert -alias ssbmclient keystore C:\certs\ssbmClientKey -storetype jceks -file C:\certs\ssbmClient.cer

Implementazione 3. Esportazione nel truststore dell altro host $ keytool -importcert -alias -trustedserver -file C:\certs\ssbmServer.cer -keystore C:\certs\trustedCert4Client - storetype jceks -keypass ssbm_trust4client_k -storepass ssbm_trust4client_ks

Implementazione Realizzazione della classe ssbm.net.tlsconnection Astratta per consentire specializzazione del lato client (TLSConnection4Client) e del lato server (TLSConnection4Server) Incapsulamento di un esemplare di javax.net.ssl.sslengine e di un esemplare di java.nio.channels.socketchannel

Implementazione Costruttore della classe ssbm.net.tlsconnection Imposta canale socket Imposta esemplare di javax.net.ssl.sslengine Alloca buffers Richiamato nei costruttori delle sottoclassi

Implementazione Costruttore della classe ssbm.net.tlsconnection Imposta canale socket Imposta esemplare di javax.net.ssl.sslengine Alloca buffers Richiamato nei costruttori delle sottoclassi

ssbm.net.client.clientendpoint costruzione canale socket

ssbm.net.server.serverendpoint costruzione canale socket

Implementazione Costruttore della classe ssbm.net.tlsconnection Imposta canale socket Imposta esemplare di javax.net.ssl.sslengine Alloca buffers Richiamato nei costruttori delle sottoclassi

Implementazione ssbm.net.client.tlsconnection4client costruzione esemplare SSLEngine

Implementazione ssbm.net.client.tlsconnection4client costruzione esemplare SSLEngine

Implementazione Costruttore della classe ssbm.net.tlsconnection Imposta canale socket Imposta esemplare di javax.net.ssl.sslengine Alloca buffers Richiamato nei costruttori delle sottoclassi

Implementazione Costruttore della classe ssbm.net.tlsconnection Imposta canale socket Imposta esemplare di javax.net.ssl.sslengine Alloca buffers Richiamato nei costruttori delle sottoclassi

Implementazione Struttura e funzionamento di un esemplare di javax.net.ssl.sslengine SSLEngine Dati applicativi Dati di rete outboundappldata wrap() outboundnetdata inboundappldata Dati di handshake o di chiusura Dati di handshake o di chiusura Gestione degli stati Meccanismi di crittografia e di hashing conformi ai protocolli SSL e TLS unwrap() inboundnetdata

Implementazione ssbm.net.tlsconnection recezione dei dati applicativi

Implementazione ssbm.net.tlsconnection invio dei dati applicativi

ssbm.net.tlsconnection gestione handshake TLS

Implementazione ssbm.net.tlsconnection gestione unwrapping

Implementazione ssbm.net.tlsconnection gestione wrapping

Implementazione ssbm.net.tlsconnection esecuzione task ausiliari ssbm.net.tlsconnection ridimensionamento del buffer ssbm.net.tlsconnection riavvolgimento del buffer

Implementazione ssbm.net.tlsconnection gestione lettura dati applicativi

Implementazione ssbm.net.tlsconnection gestione scrittura dati applicativi I

Implementazione ssbm.net.tlsconnection gestione scrittura dati applicativi II

Implementazione ssbm.net.tlsconnection lettura dal canale socket

Implementazione ssbm.net.tlsconnection scrittura sul canale socket

Implementazione ssbm.net.tlsconnection chiusura connessione ssbm.net.tlsconnection chiusura TLS Engine

Implementazione ssbm.net.tlsconnection chiusura flusso di output della TLS Engine

Implementazione ssbm.net.tlsconnection chiusura flusso di input della TLS Engine

Screenshot dell applicazione Finestra di login

Screenshot dell applicazione Errore nel login

Screenshot dell applicazione Finestra di registrazione

Screenshot dell applicazione Finestra principale

Screenshot dell applicazione Form per la modifica dei dati dell account dell utente

Screenshot dell applicazione Form per l inserimento di una movimentazione (entrata)

Implementazione Messaggio informativo (inserimento di una movimentazione uscita)

Screenshot dell applicazione Form per la modifica dei dati di una movimentazione (entrata)

Screenshot dell applicazione Form per l eliminazione di una o più movimentazioni (entrate)

Screenshot dell applicazione Messaggio di errore nel form principale

Screenshot dell applicazione Form per il calcolo e la visualizzazione del bilancio

Screenshot dell applicazione Certificato server non valido messaggio della finestra di login

Screenshot dell applicazione Certificato server non valido output sul prompt dei comandi (lato server)

Screenshot dell applicazione Certificato server non valido output sul prompt dei comandi (lato client)

Screenshot dell applicazione Certificato client non valido messaggio della finestra di login

Screenshot dell applicazione Certificato client non valido output sul prompt dei comandi (lato server)

Screenshot dell applicazione Certificato client non valido output sul prompt dei comandi (lato client)