• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
TrustMe - Concorso Telecom-Sinfonia
 

TrustMe - Concorso Telecom-Sinfonia

on

  • 231 views

Relazione finale per il Concorso Telecom Sinfonia - Prof. V. Catania.

Relazione finale per il Concorso Telecom Sinfonia - Prof. V. Catania.

Giuseppe Ravida
Riccardo Pulvirenti

Statistics

Views

Total Views
231
Views on SlideShare
229
Embed Views
2

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 2

http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    TrustMe - Concorso Telecom-Sinfonia TrustMe - Concorso Telecom-Sinfonia Document Transcript

    • Università degli Studi di Catania Concorso Telecom Sinfonia - Sistemi Embedded Prof. V.Catania TrustMe http://code.google.com/a/eclipselabs.org/p/trustme/ WormHole Riccardo Pulvirenti Giuseppe RavidàUniversità degli Studi di Catania - Concorso Telecom Sinfonia - Sistemi embedded
    • Università degli Studi di CataniaIndiceDescrizione 1 Introduzione 1 Ambito di utilizzo 1 Elenco delle funzionalità offerte da TrustMe 1Architettura 2 Panoramica 2 Client side - AndroidTrustMe 2 Accesso ai servizi 2 Note sull’utilizzo dei Servizi Sinfonia CMS (POI) 3 Sicurezza e crittografia 3 Interfaccia utente 4 Server side - TrustMe 5Casi d’uso 7 Inserimento di nuovi dati 7 Visualizzazione dei dati 7 Modifica e rimozione dei dati 8 Ricerca sportelli ATM in zona 9 Aggiungere ulteriori dati 9Note sull’installazione 10 Installazione server 10Nome resoconto i
    • Università degli Studi di Catania Installazione client 10Nome resoconto ii
    • Università degli Studi di CataniaDescrizioneIntroduzioneTrustMe è un’applicazione che consente di conservare in maniera sicura dati sensibili come numeri di carte di credito, codicidi sicurezza, note personali, ecc. L’applicazione sfrutta lo standard internazionale AES-256 1 per cifrare i dati. In questo modonessun male intenzionato, pur venendo in possesso dei dati memorizzati, potrebbe decifrarli. La cifratura è basata su unapassword scelta dall’utente e, tramite algoritmi di derivazione, utilizzata per cifrare i dati.Una volta inseriti i dati questi possono essere eliminati o modificati in qualunque momento, utilizzando l’intuitiva interfacciautente.Oltre alla memorizzazione sicura dei dati, TrustMe offre anche un servizio di localizzazione geografica col fine di indicare glisportelli ATM, compatibili con le carte di credito presenti in memoria, intorno a voi. Questo consente di poter risparmiaresulle commissioni imposte dagli sportelli di altri circuiti bancari.Ambito di utilizzoIl salvataggio delle informazioni private è lo scopo principale dell’applicazione. Questo garantisce sicurezza ed evita di doverricordare a memoria decine e decine di codici e nomi utente. L’applicazione ha ancora funzionalità limitate, ma le possibilitàsono tantissime. Fra le più importanti vi è sicuramente la possibilità di integrare i pagamenti con tecnologia NFC, che stacominciando a svilupparsi su scala mondiale.Altre importanti features previste sono la generazione casuale di password, gestione migliorata di localizzazione geografica,sincronizzazione e un’usabilità maggiore.Elenco delle funzionalità offerte da TrustMe Funzionalità Caratteristiche Salvataggio dei dati I dati vengono cifrati e memorizzati su un server remoto sul quale girano servizi di Telecom-Sinfonia Cifratura Prima di essere memorizzate, le informazioni vengono cifrate con AES Servizio di localizzazione Ricerca degli ATM in zona con preferenza in funzione dei dati salvati nel Database Sincronizzazione Possibilità di accedere ai dati da diversi dispositivi e dal webL’applicazione sarà supportata da un apposito sito web che consentirà la gestione delle anagrafiche utenti e permetterà lasincronizzazione dei propri dati fra più dispositivi1 La versione attuale di TrustMe utilizza una cifratura a 128 bit per scopi dimostrativi. La versione finale utilizzerà cifratura a256bitTrust me - Concorso Telecom Sinfonia 1
    • Università degli Studi di CataniaArchitetturaPanoramicaL’applicazione TrustMe è stata pensata per girare su dispositivi mobili con sistema operativo Android.TrustMe si compone di un lato client (che consiste nell’applicazione vera e propria in esecuzione sul dispositivo mobile) e unlato server (caratterizzato da tutti i servizi di accesso ai dati, localizzazione e autenticazione).L’intera applicazione è scritta in JAVA e imposta i dati di ritorno come CSV (Comma Separated Values) che vengonoopportunamente elaborati prima del loro utilizzo da apposite funzioni parser.Analizziamo nel dettaglio entrambe le parti.Client side - AndroidTrustMeLato client si ha l’integrazione di tre componenti principali:• A: Accesso ai servizi• B: Sicurezza e crittografia• C: Interfaccia utente A B C Le componenti principali di TrustMe - lato clientAccesso ai serviziLato Android l’applicazione esegue richiamando servizi che restituiscono dati in formato JSON. Questi dati vengono utilizzatiper effettuare l’autenticazione, accedere al database in lettura e in scrittura, chiedere e manipolare la lista degli ATM infunzione della posizione attuale. L’utilizzo di dati formattati in JSON permette un’alta interoperabilità fra ambienti diversi. Inquesto modo siamo in grado, senza apportare modifiche lato server, di poter offrire le stesse funzionalità ad applicazioni peraltri dispositivi e per web.Come abbiamo già visto, i dati utente vengono memorizzati su un server remoto; questo offre il vantaggio di poter accedereai propri dati in qualunque istante, da qualunque parte del globo e soprattutto aggiunge sicurezza in quanto tali informazioniTrust me - Concorso Telecom Sinfonia 2
    • Università degli Studi di Catanianon verranno mai salvate sul dispositivo e anche se venissero “rubate” dal server non potrebbero essere utilizzate in quantocifrate con chiave master segreta. Per poter accedere, visualizzare, modificare o eliminare le proprie informazioni, vengonoinvocati dei metodi remoti (Web Services) tramite passaggio di opportuni parametri. Le librerie di accesso ai dati sono leseguenti (in pseudocodice): String userAuth(String uName, String uPassword); void addCreditCard(String newCard); void removeCard(int cardId); void updateCard(String cardFields); String[] cardsList(int userID); void addPassword(String newPassword); void removePassword(int passId); void updatePassword(String passFields); String[] passwordsList(int userID);Tali servizi forniscono la possibilità di inserire, modificare, eliminare e visualizzare dati relativi alle carte di credito e allepassword.I servizi per l’accesso ai dati sono servizi “custom” implementati dal team WormHole. A questi servizi si aggiungono quelliofferti dal framework Sinfonia di Telecom che permettono la localizzazione di punti di interesse in funzione della posizioneattuale. Nel nostro caso abbiamo usato il servizio Sinfonia CMS per ottenere la lista degli ATM in zona. String getMapUrl(Double lon, Double lat);Note sull’utilizzo dei Servizi Sinfonia CMS (POI)Al momento il framework Sinfonia permette la sola localizzazione nella città di Torino. Le coordinate quindi sono impostatestaticamente. L’applicazione comunque integra già l’interrogazione del dispositivo GPS e la possibilità di leggere e inviare aSinfonia le coordinate attuali. Inoltre nella lista dei POI fornita da Sinfonia non sono presenti gli ATM, quindi abbiamoutilizzato come valore di ritorno una lista qualunque (monumenti); basta semplicemente creare una voce nel databaseSinfonia e cambiare il codice di ricerca nella funzione getMapUrl.Sicurezza e crittografiaIl progetto lato client contiene un particolare package (trustme.security) che si occupa di crittografare e decifrare i dati.Tali funzioni utilizzano i meccanismi offerti da Java in tema di sicurezza (java.security, javax.crypto).Le password di accesso ai dati vengono codificate con SHA-256 e memorizzate nel server già cifrate. SHA-256 offre unmeccanismo di hashing one-way sicuro e mantiene protetta l’identità degli utenti.Per la cifratura dei dati sensibili è usato invece l’algoritmo AES. Per questa versione dimostrativa, per motivi di tempo, èstata implementata una funzione di crittografia AES a 128bit con master secret ottenuto tramite MD5 dei dati di login. MD5fornisce anch’esso un alto livello di sicurezza one way.Trust me - Concorso Telecom Sinfonia 3
    • Università degli Studi di CataniaLe funzioni di crittografia usate nel modulo client rispettano le seguenti firme: Crypto.java: public static String encrypt(String seed, String cleartext) public static String decrypt(String seed, String encrypted) SHAEncrypter.java: public static String Encrypt(String password) MD5Encrypter.java: public static String Encrypt(String text)Interfaccia utenteL’interfaccia utente è stata pensata per fornire la migliore user-experience possibile, basandosi su un layout semplice emodulare e un alto livello di intuitività dei pulsanti. Pulsante di barra principale inserimento di selezione Area di visualizzazione Screenshot applicazioneLa barra principale di selezione permette di poter scegliere fra carte di credito, password e localizzazione ATM. Ogniscelta aprirà l’elenco delle informazioni corrispettive oppure la mappa con i placemarks indicanti gli ATM più viciniIl pulsante di inserimento permette, tramite la comparsa di un menu contestuale, di selezionare per l’inserimento di nuovecarte di credito o password.Trust me - Concorso Telecom Sinfonia 4
    • Università degli Studi di CataniaL’area di visualizzazione, infine, è l’area che si popolerà con l’elenco di carte di credito, password o con la mappa con iplacemarks indicanti gli ATM in zona. Quest’area supporta la pressione prolungata su un elemento per entrare in modalitàmodifica o inserimento.Server side - TrustMeLato Server si trovano tutte le funzioni per l’acceso ai dati, la loro manipolazione e il servizio Sinfonia CMS per ottenere lalista degli ATM in zona.Una volta interrogato, il server risponde con un oggetto JSON (in genere CSV String oppure String Array) conun’espressione di questo tipo: {"cardsListBean":{"cardsList":["2, C1624CFBCC9E61D55269B7862A1FA656094F099088BA9D6FCA00F9E51A5FE59D0BE29E1 3532FF3EAF6A71C752F75C7F8C197C94F1C9F9894CB0E882BFC349804,2","5, 7A650AC505B48FE8022892DD7510D620F0518B2499D415FC1EC7E8003B53DD762E25C10 BB6A477EA63C9FBF3948E9FACCD29922DF31D0E498DABA5A0A2D54612,2","6, 4D0B0CEE80DA94BA4895B507A2B9F84F62EC19B549B685BD729C39064096755108FE081 59EE0CCDF74F3B5F1F471C548788FDBCC422E5D1E85038AEE926B04DC,2","7, A89507B3D8D974B348E0316CAEEEBB69937419DF366B40AF9B7CFB2D8D9BABF3631A134 6BE0AC077095E4468E2E217BF56529FEF10460AC20C6F46704DF099CB,2","8, 06D8AF1E9D79286C177CA64A144562D9C9C36BBFB14CB75F3DE2B6FCE2C168567ECE196 D36EC1A88FE51E87D618A2649B0663FEED2C5359409AF66FE3FEAAE5A,2","9, 9A2149C4400E06B6D48F3B9727841CA8F2A63D16798C61242618E59E8A502835D3DA504 06CC14A8DF6923CBB7B06343F8659EF83B4AF22736555481003FD6EFC43B2515E3D5356 6B0600269A2E7FA487,2","10, 6F434C1396CC6EF60EB1C239DCBF0B46ED125C1513235A1C58B8C1126EFBA5F7AFAE443 7525CC95E2F7AE4B4BF65CC4A2BD93C4914D073F659BA018FC55B772B,2"]}}Come si può notare, i dati sono tutti cifrati e non accessibili senza la masterkey.Sul server è installata l’ultima versione di MySQL per gestire il database users, composto dalle seguenti tabelle:• tm_users: questa tabella è quella che contiene le informazioni sull’utente quali username e password. La password è memorizzata previa cifratura con SHA-256. Una volta inseriti i dati di accesso questi vengono cifrati lato client e la funzione userAuth si occuperà di verificarne l’esatta corrispondenza. Schermata di loginTrust me - Concorso Telecom Sinfonia 5
    • Università degli Studi di Catania• tm_passwords: questa tabella contiene le password salvate dall’utente, opportunamente cifrate con AES. In fase di lettura, viene restituita al client la stringa cifrata, separata con una virgola dal campo UserID; l’applicazione Android si occuperà di decifrare con la chiave segreta, organizzare i campi in apposite strutture dati e visualizzarli nell’interfaccia grafica.• tm_cards: qui vengono memorizzate le carte di credito, sempre cifrate, organizzate per categorie.• tm_cardTypes: le categorie delle carte di credito (VISA, MASTERCARD, BANCOMAT, ecc). L’applicazione Android popola dinamicamente un menu a discesa durante l’inserimento di nuovi dati direttamente da questa tabella.Trust me - Concorso Telecom Sinfonia 6
    • Università degli Studi di CataniaCasi d’usoInserimento di nuovi datiAl primo utilizzo il database utente si presenterà vuoto. La procedura qui descritta per inserire nuove carte di credito è similea quella per l’inserimento di nuove password.come indicato in figura, basterà “tappare” sullo schermo per entrare in modalità inserimento, compilare i campi e premere ilpulsante di salvataggio. Una volta inserite, le informazioni appariranno insieme alle altre in una lista elenco nell’area divisualizzazione.Visualizzazione dei datiPer visualizzare in dettaglio le informazioni inserite basterà fare un singolo tap sull’elemento desiderato. Si aprirà in questomodo una finestra di visualizzazione.Trust me - Concorso Telecom Sinfonia 7
    • Università degli Studi di CataniaModifica e rimozione dei datiUna volta inseriti, i dati possono essere modificati o eliminati. Per far ciò, tenere premuto qualche secondo sull’elemento chesi vuole eliminare fino a quando comparirà il menu contestuale, come indicato in figura.Trust me - Concorso Telecom Sinfonia 8
    • Università degli Studi di CataniaRicerca sportelli ATM in zonaOltre a memorizzare i dati, con TrustMe è possibile ricercare gli sportelli ATM più vicini per effettuare operazioni. Per far ciòbasta tappare una volta sull’icona a forma di lente di ingrandimento e attendere un momento per la localizzazione.Aggiungere ulteriori datiPer aggiungere ulteriori informazioni, dopo il primo inserimento, basterà tappare sul pulsante con il simbolo “+” in alto adestra nell’applicazione.Trust me - Concorso Telecom Sinfonia 9
    • Università degli Studi di CataniaNote sull’installazioneInstallazione serverPer poter utilizzare l’applicazione bisogna aver installato il framework Sinfonia e creare un database di nome “users” con letabelle indicate precedentemente. Un dump del database vuoto è presente sotto forma di istruzione SQL nel DVD indotazione. Eseguire la query dovrebbe essere sufficiente a configurare la base dati.Configurata la parte di storage, bisogna compilare le classi action e pubblicare i servizi su un application server comeApache Tomcat. In ambiente Eclipse basta premere il tasto destro del mouse sulla cartella del progetto “TrustMe” eselezionare Run As->Run On Server.Installazione clientTrustMe è un’applicazione sviluppata per girare su dispositivi Android. Per poter testare l’applicazione bisogna avereinstallato l’SDK per lo sviluppo di applicazioni Android ed eseguire il software su un emulatore. Alternativamente basteràcopiare il file .apk sul vostro terminale reale e lanciare l’applicazione.Per far si che l’applicazione funzioni, bisogna configurare, fra le risorse statiche del progetto, l’indirizzo IP del server sul qualesono in esecuzione i servizi. Per far ciò aprire il progetto AndroidTrustMe in Eclipse, navigare l’albero dei files fino alladirectory res/values e modificare il file strings.xml alla voce ip_address. Fatto questo lanciare l’emulatore oppurecompilare e copiare il file .apk così generato sul dispositivo ed installarlo.L’utente di prova può accedere con i seguenti dati:User Name: myuserPassword: mypassIl progetto è disponibile al seguente indirizzo: http://code.google.com/a/eclipselabs.org/p/trustme/Trust me - Concorso Telecom Sinfonia 10