• Non ci sono risultati.

FTGM@home: un APP open source per la consultazione del Dossier Elettronico per i pazienti della Fondazione Toscana Gabriele Monasterio

N/A
N/A
Protected

Academic year: 2021

Condividi "FTGM@home: un APP open source per la consultazione del Dossier Elettronico per i pazienti della Fondazione Toscana Gabriele Monasterio"

Copied!
114
0
0

Testo completo

(1)

Università degli Studi di Pisa

Facoltà di Ingegneria

Corso di Laurea in Ingegneria Biomedica

Tesi di Laurea Magistrale

FTGM@home: un APP open source per la

consultazione del Dossier Elettronico per i pazienti

della Fondazione Toscana Gabriele Monasterio

Relatore:

Prof. M. Mangione

Candidato:

Andrea Olivi

(2)

“L’essenziale è invisibile

agli occhi.”

(3)

SOMMARIO

PREMESSA ... 6

CAPITOLO 1 - INTRODUZIONE ... 7

1.1 F.T.G.M. – Fondazione Toscana Gabriele Monasterio ...10

1.2 IL F.S.E. - COS’E’? ...11

1.3 PRIVACY & NORMATIVA ...13

1.4 ANALISI DELLA (IN)SICUREZZA ...15

1.5 ESEMPIO DI APPLICAZIONE...18 CAPITOLO 2 – LA CRITTOGRAFIA ...20 2.1 CRITTOGRAFIA SIMMETRICA ...20 2.1.1 DES ...21 2.1.2 AES ...23 2.2 CRITTOGRAFIA ASIMMETRICA ...25 2.2.1 RSA ...26 2.3 FUNZIONI DI HASH ...28 2.3.1 MD5 ...28 2.3.2 SHA ...30

2.4 STRUMENTI PER LA CRITTOGRAFIA...31

2.4.1 Il Package javax.crypto ...31

2.4.2 BouncyCastle ...32

2.4.3 DBMS_CRYPTO ...32

CAPITOLO 3 – LA SICUREZZA: AUTENTICAZIONE, AUTORIZZAZIONE E TRASPORTO DEI DATI...34

3.1 AUTENTICAZIONE ...35

3.1.1 Basic Authentication vs Strong Authentication ...36

3.1.2 Tecnologie abilitanti ...36 3.2 AUTORIZZAZIONE ...41 3.3 TRASPORTO SICURO SSL ...42 3.3.1 Strumenti per l’SSL ...45 OpenSSL ...45 Keytool ...46 Il pacchetto javax.net.ssl ...46

CAPITOLO 4 – RISORSE: AMBIENTE DI SVILUPPO E LIBRERIE ...47

(4)

4.1.1 Java EE ...48

4.1.2 Eclipse ...49

4.1.3 Database Oracle ...50

4.2 STRUMENTI PER IL DEPLOYMENT ...50

4.2.1 Apache Tomcat 7 ...50

4.3 LIBRERIE ...52

4.3.1 jQuery e jQuery Mobile ...52

4.3.2 iText ...53

CAPITOLO 5 – PROGETTO PROTOTIPO ...54

5.1 ANALISI DELLO SCENARIO ...54

5.2 ARCHITETTURA...56

5.3 SICUREZZA DEGLI ACCESSI ...57

5.3.1 Generazione delle password ...57

5.3.2 OTP e sicurezza ...60

5.3.3 Comunicazione con il DataBase ...60

5.3.4 Procedura di autenticazione ...62

5.3.5 Creazione di una connessione protetta ...65

5.3.6 Controlli sugli input...68

5.3.7 Controllo accessi tramite indirizzi IP ...73

5.4 GESTIONE DELLE SESSIONI UTENTE ...78

5.5 LAYOUT E RESPONSIVE WEB DESIGN ...80

5.6 INTERFACCIA UTENTE ...85

5.7 I REFERTI: ESPORTAZIONE ED INTEGRITA’ ...94

CAPITOLO 6 - CONCLUSIONI ...98

BIBLIOGRAFIA ...100

ALLEGATO ...102

IL SISTEMA INFORMATIVO SANITARIO ...102

Introduzione ...102

Il Sistema Informativo Ospedaliero (HIS) ...102

Il Sistema Informativo di Radiologia (RIS) ...103

PACS ...104

LIS - Laboratory Information System ...105

GLI STANDARD NELLA SANITA’ ELETTRONICA ...106

CDA - Clinical Document Architecture ...107

(5)

HL7 – HEALT LEVEN 7 ...111

SISTEMI OPERATIVI PER DISPOSITIVI MOBILI ...113

(6)

PREMESSA

Lo sviluppo delle nuove tecnologie ha inciso profondamente sulle attività quotidiane degli individui, portando innumerevoli vantaggi e contribuendo in maniera evidente al miglioramento della qualità della vita. Il lavoro svolto in questa Tesi ha riguardato la realizzazione di un’applicazione che permette ai pazienti della Fondazione Monasterio di consultare online ed in mobilità il proprio Fascicolo Sanitario Elettronico. Dopo una parte introduttiva, nella quale vengono esaminati lo scenario di lavoro e gli obiettivi preposti, si è poi concentrata l’attenzione sul background teorico e sui problemi legati alla sicurezza informatica e alla crittografia. In particolare verranno approfonditi i metodi per la gestione dell’autenticazione dell’utente e la descrizione degli algoritmi di cifratura, con vantaggi e svantaggi che ne conseguono. Si passerà infine alla descrizione della realizzazione materiale del progetto fornendo un’analisi dal punto di vista funzionale e pratico, esponendo la soluzione proposta e giustificando le scelte implementative adottate. Particolare attenzione è stata rivolta all’evoluzione tecnologica a supporto dei servizi offerti ai pazienti, ovvero Smartphone e Tablet, che si presentano oggi come due tra i supporti principali alla diffusione di servizi.

(7)

CAPITOLO 1

Introduzione

Il secolo scorso è stato caratterizzato da numerose rivoluzioni tecnologiche che hanno progressivamente mutato lo stile e la qualità della vita delle persone. Uno dei settori che ha tratto i benefici maggiori è stato sicuramente quello della comunicazione, il quale è stato soggetto ad un continuo processo di rinnovamento ed evoluzione nelle modalità di scambio dei dati finalizzato al miglioramento complessivo della qualità del sistema stesso. Anche il mondo della sanità ha subito gli effetti di questi cambiamenti, e così sarà anche negli anni a venire con un probabile incremento dei servizi messi a disposizione del paziente. L’avvento di Internet e della comunicazione informatizzata ha messo in gioco cambiamenti strutturali negli aspetti e nella geografia delle comunicazioni. Pochi tuttavia riescono ancora a comprendere la portata e l’importanza delle tecnologie nella nostra vita, guardando Internet con sospetto più che come un’opportunità; la verità però è che fenomeni negativi come phishing e furti di identità non sono altro che il frutto della cattiva fede di pochi. Nessuno strumento in sé è pericoloso, ma tutto dipende dall’uso che se ne fa e per questo non si può essere chiusi nei confronti dell’innovazione. L’accesso alla rete, fino a poco tempo fa, avveniva quasi esclusivamente tramite computer fissi o portatili, mentre negli ultimi anni ciò è stato reso possibile anche tramite l’utilizzo di telefoni cellulari capaci di connettersi per mezzo della linea telefonica, consentendo l’accesso in ogni luogo e situazione, ed evidenziando l’importanza strategica che può assumere questo comune oggetto domestico. Tramite Internet è possibile raggiungere persone anche nell’altra parte del mondo in pochissimi secondi; allora perché non pensare di raggiungere con tanta rapidità anche il proprio ospedale, accedendo a servizi offerti in modo gratuito e sempre più vicini alle esigenze delle persone? L’idea è quella di fare in modo che sia l’ospedale ad andare dal paziente e non il contrario, tornando a parlare di pazienti intesi come persone, e non come clienti-utenti, poiché la visione economicistica e ragionieristica della Sanità tende spesso a modificare l’espressione “paziente” in “cliente”, come se chi si rivolge a un ospedale o a un ambulatorio lo facesse come chi contrae un contratto con le aziende che distribuiscono corrente elettrica o gas.

(8)

Figura 1 – L’idea è quella di fare in modo che sia l’ospedale ad andare dal paziente.

Lo scopo quindi è quello di mettere a punto uno strumento che offra un'assistenza comoda e costante, garantendo ai pazienti la possibilità di consultare in mobilità il proprio Fascicolo Sanitario Elettronico, ripensando così le tradizionali modalità di comunicazione ospedale-paziente. I vantaggi derivanti da un servizio di questo tipo risiedono principalmente nella rapidità e nella costante disponibilità a qualunque ora: infatti il servizio è sempre garantito anche negli orari di chiusura della struttura. La consultazione del Fascicolo Sanitario può avvenire non solo in ogni momento, ma sostanzialmente in ogni luogo in cui si disponga di una connessione internet, quindi anche senza la necessità di muoversi da casa. Questo approccio di tipo Mobile si presenta come un forte alleato di anziani e disabili (abbattendo alcune barriere di accesso presenti invece su altri canali) o di chi più semplicemente non ha tempo per recarsi personalmente presso la struttura; si evitano così lunghe code agli sportelli per il ritiro dei referti in forma cartacea, rendendo l’intera procedura molto più semplice, efficacie e flessibile. L’erogazione del servizio è realizzata sfruttando la capillarità che la diffusione degli smartphone ha ormai raggiunto, non limitando l’accesso solamente da pc, ma fornendo un servizio usufruibile veramente ovunque. Le ampie potenzialità introdotte dalla diffusione del canale Mobile, possono essere comprese analizzando un po’ di dati. Infatti, secondo uno studio di Mediacells condotto per il Guardian, il 2014 si annuncia come l’anno degli smartphone, ovviamente non in quanto prodotto nuovo, ma inteso come settore destinato ad espandersi e mutare in modo significativo. Durante l’anno in corso circoleranno 1,03 miliardi di nuovi smartphone in 47 Paesi presi in considerazione.

(9)

Figura 2 – Diffusione degli smartphone nel mondo.

Per quanto riguarda l’Italia, che è da sempre considerata la nazione con più telefoni cellulari che abitanti (dati US Census Bureau, InternetWorldStats, CNNIC), abbiamo più di 97 milioni di SIM attive e una penetrazione dei dispositivi mobile pari al 158%. Solamente gli Emirati Arabi Uniti e la Russia fanno meglio di noi, rispettivamente con il 252% ed il 184%. Il 41% degli italiani possiede uno smartphone, e delle nuove vendite di quest’anno il 67% andrà a finire nelle tasche di connazionali che non hanno mai posseduto un cellulare dotato di una connessione Internet.

(10)

Nel nostro Paese il 58% della popolazione usufruisce di Internet, ovvero 35 milioni e mezzo di italiani, e si tratta di una statistica destinata a crescere ulteriormente nel corso di quest’anno. Degli internauti, il 46% effettua l’accesso in mobilità, dedicandovi mediamente due ore al giorno. Per quanto concerne il possesso di altri dispositivi, l’80% ha un computer portatile, mentre solo il 36,5% possiede un tablet (Ricerca Cisco Consulting Service – gennaio 2014). Si capisce quindi come possano essere facilmente utilizzati questi canali di comunicazione per rendere fruibile un servizio alla popolazione. Il sistema, affinché risponda in maniera adeguata alle esigenze, dovrà presentare le seguenti caratteristiche:

 rendere facilmente accessibili da più luoghi, ed in maniera veloce, i dati richiesti;

 fornire agli utenti garanzie riguardo la sicurezza e la riservatezza dei dati personali;

 essere di facile utilizzo anche per persone che abbiano poca esperienza con le nuove tecnologie.

La soluzione identificata consiste in un’applicazione web che funga da ponte tra il paziente ed il sistema in cui sono presenti le informazioni; tale applicazione sarà accessibile semplicemente tramite browser web. Si dovranno fornire garanzie agli utenti circa la sicurezza dei dati personali contro appropriazioni e modifiche effettuate da terzi non autorizzati e sulla riservatezza del loro trattamento in relazione alla normativa vigente sulla privacy, che sarà approfondita in seguito. Questa sicurezza dovrà essere garantita in tutte le fasi del processo: memorizzazione, trasferimento, consultazione, archiviazione dati sul dispositivo. In genere l’accesso ad applicativi di questo tipo prevede un meccanismo per l’autenticazione basato su una coppia Username-Password. Tuttavia questa soluzione non offre da sola un livello di sicurezza adeguato in relazione al tipo dati trattati, per cui nel nostro caso è stata combinata con l’utilizzo di una One Time Password. Questo meccanismo rafforza in maniera significativa la sicurezza dell’accesso di un utente alla propria area protetta in quanto la OTP è ricevuta sul cellulare di proprietà dell’utente stesso. Per quanto riguarda le interfacce queste dovranno essere intuitive e visualizzare solo le informazioni necessarie. Tali tematiche saranno riprese più nel dettaglio nei capitoli successivi, dove aver trattato le nozioni teoriche alla base delle scelte effettuate, ed identificato quali sono i problemi ai quali siamo chiamati a far fronte.

1.1 F.T.G.M. – Fondazione Toscana Gabriele Monasterio

Il progetto è stato sviluppato all’interno della Fondazione Toscana Gabriele Monasterio, un ente pubblico che è stato costituito dal Consiglio Nazionale delle Ricerche e dalla Regione Toscana a partire dal 2006 con lo scopo di favorire la gestione e lo sviluppo delle attività sanitarie specialistiche e di ricerca di interesse del SSR toscano. Le sedi delle attività sono due: lo Stabilimento ospedaliero di Pisa, situato presso l'Area della Ricerca CNR, e quello di Massa, situato in località Montepepe. La Fondazione costituisce un centro di alta specialità per la cura delle patologie cardiopolmonari ed eroga in particolare prestazioni di:

(11)

 emodinamica diagnostica ed interventistica neonatale, pediatrica (ambito in cui costituisce centro di riferimento regionale);

 emodinamica diagnostica ed interventistica per adulti;

 elettrofisiologia;

 cardiochirurgia neonatale e pediatrica (ambiti in cui costituisce il centro di riferimento regionale);

 cardiochirurgia per adulti;

 anestesia e terapia intensiva neonatale, pediatrica e per adulti;

 pneumologia;

 endocrinologia e malattie del metabolismo;

 trattamento delle ipercolesterolemie (rispetto a cui è centro di riferimento regionale);

 imaging diagnostico avanzato: radiodiagnostica, medicina nucleare, risonanza magnetica nucleare;

 medicina di laboratorio.

L'attività assistenziale combina un’impostazione specialistica a livello delle competenze mediche e chirurgiche con una impostazione per intensità di cure a livello organizzativo, che si esplica in regime di degenza, ambulatoriale, di day hospital e day service. Presso la Fondazione, il paziente è al centro di un sistema multidisciplinare che offre i più moderni ed appropriati percorsi preventivi, diagnostico-terapeutici e riabilitativi, grazie all'alto profilo delle competenze disponibili, alla disponibilità delle tecnologie più avanzate per la diagnostica funzionale, d'immagine e di laboratorio e ad un livello avanzato di gestione informatica integrata dei processi sanitari e gestionali. La Fondazione, inoltre, svolge attività di ricerca in ambito sanitario e delle tecnologie applicate alla sanità, anche in collaborazione con Istituti del Consiglio Nazionale delle Ricerche - primo tra tutti l'Istituto di Fisiologia Clinica - le Università, Scuole Superiori e con l'Industria.

1.2 IL F.S.E. - COS’E’?

Abbiamo parlato di Fascicolo Sanitario Elettronico (FSE) come entità attorno alla quale ruota l’applicazione ed il servizio che si vuole fornire, ma cerchiamo di vedere più nel dettaglio di cosa si tratta. Nonostante in Italia non esista un quadro normativo completo che disciplini il FSE, questo può essere visto come un oggetto nel quale convergono tutte le informazioni inerenti il percorso clinico di un paziente; esso raccoglie, conserva e rende disponibili le informazioni cliniche di ogni cittadino in un formato standard accessibile a tutti gli operatori coinvolti. Si differenzia dal concetto di cartella clinica, in quanto rappresenta un contenitore più ampio di dati relativi alla storia clinica del paziente, caratterizzato dunque da un elevato livello di interoperabilità. Le Linee Guida del Ministero della Salute forniscono la seguente definizione di FSE:

“Il Fascicolo Sanitario Elettronico (FSE) è inteso come l’insieme di dati e documenti digitali di tipo sanitario e socio-sanitario generati da eventi clinici presenti e trascorsi, riguardanti l’assistito.”

I dati anagrafici ricoprono un ruolo centrale e, tra questi, è fondamentale il Codice Fiscale che rappresenta la chiave univoca di identificazione del cittadino. I dati amministrativi relativi all’assistenza sono costituiti invece da informazioni amministrative relative alla posizione del

(12)

cittadino nei confronti del Servizio Sanitario Nazionale, sia con riferimento alla rete d’offerta dal SSN che ad altre informazioni, eventualmente correlate specificamente all’organizzazione della Regione di assistenza. Gli eventi sanitari vengono raccolti mano a mano che questi vengono generati, aggiornando il FSE con informazioni e/o documenti rilasciati dai soggetti del SSN, come ad esempio referti di laboratorio, radiologia e specialistica ambulatoriale. Con “Profilo Sanitario Sintetico” si intende un documento che riassume la storia clinica del paziente e la sua situazione corrente, con lo scopo di favorire la continuità di cura ed un rapido inquadramento del paziente in casi di emergenza. Come in tutti i sistemi informativi, nella realizzazione di un FSE è necessario adottare sistemi di codifica certi e condivisi, con lo scopo di consentire una facile condivisione ed una adeguata interpretazione dei contenuti. Le modalità di presentazione delle informazioni devono essere consistenti ed è richiesto l’utilizzo di nomenclature riconosciute a livello nazionale. La scelta del sistema di codifica deve rispondere alle necessità di adattabilità, facilità di diffusione e manutenibilità. Il trattamento dei dati personali del FSE deve rispettare pienamente le norme che disciplinano la protezione di tali dati e deve pertanto assoggettarsi alla libera volontà dell’assistito. Le operazioni sui dati personali e sanitari del cittadino necessarie per l’alimentazione e l’utilizzo del Fascicolo Sanitario Elettronico rientrano tra i trattamenti di dati sensibili effettuati mediante strumenti elettronici: pertanto le modalità e le soluzioni necessarie per assicurare confidenzialità, integrità e disponibilità dei dati dovranno in ogni caso essere adottate in coerenza con le misure di sicurezza espressamente previste nel D.Lgs. n. 196/2003 e nel relativo Disciplinare tecnico (Allegato B), come vedremo meglio in seguito. La sicurezza nella gestione delle informazioni non deve essere considerato come un requisito aggiuntivo ad altri requisiti funzionali, ma come una caratteristica intrinseca.

Figura 4 – Il FSE ed i suoi contenuti.

Per completezza e uniformità di informazione, in appendice vengono introdotti gli elementi costitutivi e organizzativi di un sistema informativo sanitario, nonché una descrizione dei principali standard che lo caratterizzano. Tutti questi aspetti confluiscono infatti all’interno del FSE, e ne permettono la costituzione. Documenti Sanitari Dati Amministrativi Dati Anagrafici

(13)

1.3 PRIVACY & NORMATIVA

I dati che dunque compaiono nel FSE sono catalogati come sensibili, e quindi devono essere trattati in maniera opportuna in modo da garantire il rispetto dei diritti del cittadino. Prima di addentrarci nella “giungla” della normativa in materia di privacy, è bene sottolineare la distinzione tra le definizioni di dati personali e sensibili. Con "dato personale" ci si riferisce ad una qualunque informazione relativa alla persona fisica, identificata o identificabile, mediante riferimento a qualsiasi altra informazione, compreso un numero di identificazione personale. Con "dati sensibili" si indicano i dati personali idonei a rivelare l'origine razziale ed etnica, le convinzioni religiose, filosofiche o di altro genere, le opinioni politiche, l'adesione a partiti, sindacati, associazioni od organizzazioni a carattere religioso, filosofico, politico o sindacale, nonché i dati personali idonei a rivelare lo stato di salute e la vita sessuale. La corretta gestione dei dati personali e sensibili passa attraverso un’accurata progettazione sia degli aspetti di natura organizzativa che tecnologica. In particolare il settore dell'informazione è interessato da una continua evoluzione e da una rilevante importanza sociale. A decorrere dal 1 gennaio 2004 è entrato in vigore il nuovo Codice in materia di dati personali, approvato con decreto legislativo del 30 giugno 2003 n.196 (D.Lgs.196/03). Il Testo Unico riunisce la normativa vigente in materia accumulatosi dal 1996, ed è ispirato all'introduzione di nuove garanzie per i cittadini, alla razionalizzazione delle norme esistenti, alla semplificazione degli adempimenti e sostituisce la c.d. legge madre sulla protezione dei dati personali: la legge 675/1996. Il Codice della privacy si compone essenzialmente di tre parti che contengono rispettivamente:

 le disposizioni generali (artt. 1-45) riguardanti le regole sostanziali della disciplina del trattamento dei dati personali, applicabili a tutti i trattamenti, salvo eventuali regole specifiche per i trattamenti effettuati da soggetti pubblici o privati (art. 6);

 disposizioni particolari per specifici trattamenti (artt. 46-140) ad integrazione o eccezione alle disposizioni generali della parte I;

 le disposizioni relative alle azioni di tutela dell’interessato e al sistema sanzionatorio (artt. 141-186).

Completano il testo normativo una serie di allegati:

 allegato A, relativo ai codici di condotta;

 allegato B, recante il disciplinare tecnico in materia di misure minime di sicurezza;

 allegato C, relativo ai trattamenti non occasionali effettuati in ambito giudiziario o per fini di polizia.

La normativa in tema di Privacy si prefigge di garantire che il trattamento dei dati personali si svolga nel rispetto dei diritti e delle libertà fondamentali, nonché della dignità dell'interessato, con particolare riferimento alla riservatezza, all'identità personale e al diritto alla protezione dei dati personali. Con "trattamento" ci si riferisce ad una qualunque operazione o complesso di operazioni concernenti la raccolta, la registrazione, l'organizzazione, la conservazione, la consultazione, l'elaborazione, la modificazione, la selezione, l'estrazione, il raffronto, l'utilizzo, l'interconnessione, il blocco, la comunicazione, la diffusione, la cancellazione e la distruzione di dati. Per spostare l’analisi da un contesto tecnologico generale alla protezione dei dati personali dei possessori di dispositivi Mobile, l’Autorità Garante ha presento nel mese di giugno 2011 la pubblicazione

(14)

“Smartphone e tablet: scenari attuali e prospettive operative”. Per raggiungere una piena conformità alla normativa è necessario adottare soluzioni che soddisfino sia le cosiddette misure minime, contenute nel disciplinare tecnico (Allegato B del Codice Privacy), sia quelle obbligatorie (indicate nei provvedimenti specifici dell’Autorità Garante Privacy). Si parla anche di misure idonee in quanto la normativa attuale non prevede specifiche misure di sicurezza applicabili all’ambito operativo di tutti i dispositivi tecnologici possibili; tuttavia indica alcuni elementi di protezione dei dati personali trattati di natura tecnologica, organizzativa e procedurale che compongono un layer minimo di requisiti mandatori a cui attenersi.

“Art. 31- I dati personali oggetto di trattamento sono custoditi e controllati, anche in relazione alle conoscenze acquisite in base al progresso tecnico, alla natura dei dati e alle specifiche caratteristiche del trattamento, in modo da ridurre al minimo, mediante l’adozione di idonee e preventive misure di sicurezza,

i rischi di distruzione o perdita, anche accidentale, dei dati stessi, di accesso non autorizzato o di trattamento non consentito o non conforme alle finalità della raccolta”.

Per quanto concerne le misure minime di sicurezza che devono essere adottate, l’art. 33 del Codice prevede innanzitutto che i titolari del trattamento sono tenuti ad adottare le misure minime individuate dagli artt. 34-36 e finalizzate ad assicurare un livello minimo di protezione dei dati personali. Queste prevedono che il trattamento di dati personali effettuato con strumenti elettronici sia consentito solo nel caso in cui vengano adottate le seguenti misure minime:

a) adozione di meccanismi di autenticazione informatica; b) gestione delle credenziali di autenticazione;

c) adozione di un sistema di autorizzazione;

d) aggiornamento periodico dell’individuazione dell’ambito del trattamento consentito ai singoli incaricati e addetti alla gestione o alla manutenzione degli strumenti elettronici; e) protezione degli strumenti elettronici e dei dati rispetto a trattamenti illeciti di dati, ad

accessi non consentiti e a determinati programmi informatici;

f) aggiornamento periodico dei programmi per elaboratore per prevenire vulnerabilità e difetti; g) adozione di procedure per la custodia di copie di sicurezza, il ripristino della disponibilità

dei dati e dei sistemi;

h) tenuta di un aggiornato documento programmatico sulla sicurezza

i) adozione di tecniche di cifratura o di codici identificativi per determinati trattamenti di dati idonei a rivelare lo stato di salute o la vita sessuale effettuati da organismi sanitari.

L’ambito delle misure introdotto dal Disciplinare Tecnico evidenzia la necessità che l’accesso ai dati per il loro trattamento attraverso strumenti elettronici sia effettuato a fronte del “superamento di una procedura di autenticazione”. Le credenziali consistono in un codice per l’identificazione del soggetto associato ad una parola chiave riservata, conosciuta dal soggetto oppure fornitagli tramite un opportuno dispositivo. Tale chiave deve essere costituita da almeno otto caratteri e deve esserne prevista la modifica periodica. Per alcune tipologie di dispositivi, come gli smartphone, vale inoltre la considerazione che generalmente questi sono assegnati in maniera univoca ad un unico utente, mentre ciò non vale ad esempio i tablet. L’elemento di verifica per l’autenticazione consiste in qualcosa che l’utente del dispositivo conosce, possiede o che lo caratterizza; nel caso di procedure di autenticazione più complesse ci si può avvalere anche di più di uno di questi fattori. I profili di autorizzazione sono configurati a livello applicativo e centralizzato, al fine di consentire l’accesso ai soli dati necessari. La protezione dei dati personali contro il rischio di intrusione e dell’azione di

(15)

malware risulta particolarmente complessa in ambito Mobile a causa della varietà dei dispositivi e delle soluzioni correlate. Pertanto l’individuazione, l’adozione e la gestione di tali situazioni dovrebbe essere attuata mediante approcci strutturati.

Il Disciplinare Tecnico al punto 24 sottolinea che gli organismi sanitari e gli esercenti le professioni sanitarie sono tenuti ad adottare tecniche di cifratura per il trasferimento dei dati in formato elettronico. Questo implica dover implementare una connessione protetta del canale per il trasferimento di tali dati da/verso i dispositivi, identificare i protocolli e le modalità di comunicazione dei dati, cifrare i dati sull’hard disk interno del dispositivo o nei supporti removibili di memoria.

1.4 ANALISI DELLA (IN)SICUREZZA

La progettazione di una soluzione di sicurezza passa dal rispetto dei requisiti posti dalla normativa a tutela dei diritti costituzionali del paziente, da un’analisi delle principali fonti di rischio e dalla predisposizione delle contromisure necessarie a contrastare le minacce rilevate. Tali soluzioni devono consentire un elevato livello di interoperabilità, di resistenza alle attuali e future minacce informatiche, trasparenza della sicurezza per l’utilizzatore, sostenibilità in termini di tempi e costi. Ma i dati sanitari, sono veramente a rischio di violazione? E quali crimini si possono realizzare utilizzando dati personali e sanitari? Un recente rapporto pubblicato dalla Javelin Strategy & Research (fonte: RSA Fraud Report) ha evidenziato come frodi derivanti dall’esposizione di documenti medici ed informazioni personali sulla salute siano un business in piena espansione per i criminali informatici. L’obiettivo è rivolto non solo a furti di identità, ma anche ad abuso di prestazioni mediche, ricatto o estorsione. Tra i più comuni attacchi si identificano l’accesso illecito

Considerare attentamente benefici e rischi

• L'utilizzo dei dispositivi per i trattamenti deve essere effettuato solo a fronte dell'analisi del contesto operativo e dei rischi correlati.

• Devono essere considerati tutti i rischi e non solo quelli facilmente intuitibili.

Misure minime e obbligatorie

• Necessario analizzare le indicazioni dell'attuale normativa pensando anche alle peculiarità del mobile.

• Da tenere in considerazione le evoluzioni del contesto normativo italiano e comunitario.

Misure idonee

• Determinarle sulla base dell'analisi dei rischi.

• Considerare anche quelle di natura organizzativa/procedurale.

• Considerare e scegliere attentamente quelle tecnologicamente più adatte.

(16)

ai dati, modifica, eliminazione corruzione dei dati e denial of service. A queste considerazioni si deve aggiungere il fatto che l’introduzione della tecnologia Mobile nel processo (come strumento di autenticazione e/o accesso all’applicazione) fornisce un mare di opportunità e, al tempo stesso, introduce una serie ulteriore di problematiche. Basti considerare che stando ad uno studio della Consumer Reports condotto nel 2013, in Italia il 36% degli intervistati ha dichiarato di avere perso o subito il furto del cellulare, e che più della metà di loro non utilizza password per difendere i dati personali e l’accesso al dispositivo. Considerando che il 73% degli utenti salva informazioni sui dispositivi mobili, si tratta di statistiche su cui riflettere attentamente.

Figura 6 – Meccanismi di protezione smartphone.

Nell’analisi dei rischi si è dunque tenuto conto anche del contesto dei dispositivi utilizzati, e si è ritenuto opportuno evidenziare e prendere in considerazione le tipologie di rischio di seguito indicate.

Rischi di sicurezza dei dati trattati correlati ai comportamenti degli utilizzatori

La prima tipologia di rischio è quella correlata all’uso che gli utilizzatori fanno dei dispositivi con cui accedono al servizio. In questo contesto figurano gli errori materiali nell’effettuazione dei trattamenti e la gestione impropria delle credenziali di accesso, entrambi derivanti da una mancanza di consapevolezza dei rischi da parte degli utilizzatori dei dispositivi. Il dispositivo verrà utilizzato sia come strumento per l’accesso, sia per l’eventuale archiviazione di dati e per questo è necessario prevedere delle misure in modo da minimizzare l’impatto che lo smarrimento o il furto dei dispositivi stessi potrebbe comportare.

0% 10% 20% 30% 40% 50% 60% Altro Anti-Virus Client Firewall Password Crittografia Dispositivi Anti-Furto Nessuna Protezione

(17)

Rischi di sicurezza dei dati trattati correlati agli strumenti

I dispositivi utilizzati per l’accesso sono caratterizzati da notevoli capacità computazionali, di memoria e dalla possibilità di connettersi alla rete. Queste caratteristiche tecnologiche determinano ovviamente dei rischi che includono l’azione di virus informatici, spamming, malfunzionamento e degrado degli strumenti, intercettazione di informazioni in rete. Il pericolo di hacking (accesso non autorizzato) e di sniffing (intercettazione di informazioni) è poi particolarmente elevato utilizzando dispositivi mobili. Date infatti le caratteristiche tecnologiche di alcune piattaforme, un soggetto ostile potrebbe sfruttare eventuali falle e vulnerabilità di sicurezza per accedere e acquisire impropriamente i dati personali contenuti all’interno del dispositivo, o accessibili attraverso lo stesso.

Rischi di sicurezza dei dati trattati correlati al contesto fisico-ambientale

Tali tipologie di rischio sono apparentemente quelle maggiormente percepite da parte dei soggetti. Infatti i primi elementi di rischio citati soprattutto in ambito Mobile sono generalmente quelli legati al furto o allo smarrimento del dispositivo. In tal senso i principali eventi da tenere in considerazione sono la sottrazione o lo smarrimento dei dispositivi contenenti i dati e che permettono l’accesso al servizio, il verificarsi di eventi distruttivi o dovuti a incuria, errori umani nella gestione della sicurezza. Come detto, il rischio legato alla sottrazione o allo smarrimento dei dispositivi è quello maggiormente percepito e di fatto più probabile. A meno dell’attuazione di misure di protezione dei dati, illustrate nei capitoli seguenti, tale evento è correlato al rischio di un successivo accesso non autorizzato a dati e informazioni critiche e/o alla perdita degli stessi.

Rischi correlati a trattamenti non conformi alle normative

La realizzazione di trattamenti di dati personali può riguardare anche rischi non strettamente correlati ad aspetti di sicurezza dei dati e delle informazioni trattate, ma legati alla correttezza ed alla conformità dei suddetti trattamenti. Si pensi ad esempio ad un trattamento che, pur essendo realizzato mediante l’adozione di tutte le misure di protezione necessarie (minime, obbligatorie ed idonee, secondo lo schema proposto precedentemente), non risponda ai requisiti formali di una normativa applicabile (in questo caso la normativa Privacy). Ecco che, pur non determinando particolari impatti sui parametri di sicurezza, il trattamento potrebbe comportare degli impatti di tipo legale (sanzioni), reputazionale ed anche economico.

Dai rischi evidenziati, si capisce come le caratteristiche infrastrutturali dovranno prevedere un’identificazione elettronica dei profilli di accesso, encryption dei dati, alta affidabilità del sistema e meccanismi di Strong Authentication. Nell’utilizzo di sistemi di memorizzazione o archiviazione, dovranno essere utilizzati idonei accorgimenti per la protezione dei dati registrati rispetto ai rischi di accesso abusivo, furto o smarrimento dei supporti di memorizzazione. La sicurezza si articola dunque in sicurezza del dato (sia nel database che nei documenti), sicurezza della rete, sicurezza dell’accesso (autenticazione, identità, privilegi), gestione e controllo dell’infrastruttura. In figura sono mostrati i singoli strati tecnici ritenuti sufficienti a garantire un’implementazione corretta.

(18)

Figura 7 – Strati tecnici necessari per un’implementazione sicura.

Questa struttura da un lato poggia sulle solide fondamenta dell’infrastruttura fisica, mentre dall’altro sulle componenti software più specificatamente rivolte alla sicurezza del dato e delle identità.

1.5 ESEMPIO DI APPLICAZIONE

Nello scenario delle applicazioni esistenti si riporta la seguente realtà già implementata e funzionante nella regione Emilia-Romagna, che ha portato ad una semplificazione del rapporto tra paziente e sanità pubblica.

Fascicolo Sanitario Elettronico - Emilia Romagna

Questa applicazione è disponibile per iPhone e Android e permette a chiunque abbia scelto un medico di famiglia nella regione Emilia-Romagna di accedere a tutti i referti delle visite e degli esami effettuati nelle strutture pubbliche del Servizio sanitario regionale. Fornisce inoltre la possibilità di creare appunti sulle cure o le diete da seguire, di avere un’agenda dove segnare gli appuntamenti, prenotazione e pagamento del ticket delle visite e degli esami e caricare altri documenti sanitari personali. Con questa APP è possibile portare sempre con se i propri referti sanitari e visualizzarli anche offline. In futuro è prevista la possibilità di accesso anche da parte dei professionisti del Servizio sanitario regionale eventualmente autorizzati dall’utente. Oltre ai dati anagrafici e ai dati relativi al medico curante, i documenti già disponibili e consultabili nel FSE sono:

 Documenti sanitari;

 Documenti amministrativi;

• Affidabilità e robustezza dell'applicazione

• Strong Authentication • Autorizzazione • Blocco accessi abusivi

• Firewall

• Protezione trasmissione dati sulla rete

• Gestione degli accessi • Crittografia dati sensibili • Monitoraggio attività

(19)

 Prescrizioni.

 I servizi sanitari on line a cui è possibile accedere sono:

 Servizio di prenotazione on line in regime di Servizio Sanitario Nazionale e Sanità Pubblica;

 Servizio di prenotazione on line in regime di Libera Professione;

 Servizio di pagamento on line;

 Servizio di cambio/revoca del medico.

Figura 8 – Screenshot applicazione FSE Emilia Romagna.

L’architettura del sistema è di tipo distribuito ed è presente un indice regionale, conservato in una rete protetta all'interno del data center gestito dalla società Cup 2000. L'indice punta verso i documenti che, invece, sono nei server delle Aziende sanitarie e ognuno dei quali presenta dei firewall di protezione. A questo si accompagnano tutte le misure di sicurezza per la conservazione dei dati, con backup e altri accorgimenti per il disaster recovery (insieme di misure tecnologiche e organizzative/logistiche atte a ripristinare sistemi, dati e infrastrutture necessarie all'erogazione di servizi). Per quanto riguarda la protezione nei confronti della violazione di singole credenziali (user e password individuali), è presente un sistema di autenticazione forte che prossimamente sarà ulteriormente irrobustito dall’introduzione di un meccanismo basato sulle One Time Password.

(20)

CAPITOLO 2

La Crittografia

La crittografia è lo strumento alla base di qualsiasi processo volto a garantire la sicurezza, e rappresenta lo studio della codifica/decodifica dei dati, allo scopo di rendere segrete certe informazioni e impedirne la lettura a soggetti diversi dai destinatari. Il termine deriva dalle parole greche kryptos, che significa nascosto, e graphia, che significa scrittura. Trasforma un messaggio in chiaro in un messaggio cifrato il quale, pur rimanendo pubblicamente leggibile, viene reso incomprensibile a coloro che non possono eseguire la trasformazione inversa. Il documento il cui contenuto deve rimanere riservato è detto testo in chiaro, mentre il suo corrispondente cifrato è detto crittogramma. Il mezzo che consente di effettuare le operazioni di cifratura/decifratura tramite gli algoritmi ai soli soggetti interessati è detto chiave. La dimensione di una chiave è misurata in bit. Col termine decrittazione si intende l’operazione di decifratura non lecita, mentre quella lecita è detta decifratura. La forza degli algoritmi di crittografia si basa solo ed esclusivamente sulla segretezza delle chiavi utilizzate e non sulla segretezza dell’algoritmo stesso in quanto, se un algoritmo è segreto, non si può vedere se funziona bene o se presenta qualche pericoloso difetto. La crittografia si divide essenzialmente in due grandi tipi: Crittografia Simmetrica (o a chiave privata) e Crittografia Asimmetrica (o a chiave pubblica). La simmetrica si è sviluppata prima, mentre la asimmetrica solo in tempi più recenti.

2.1 CRITTOGRAFIA SIMMETRICA

Figura 9 - Cifrario Simmetrico. In questo caso la stessa chiave serve per cifrare e decifrare il testo.

Testo in

chiaro

Testo

cifrato

Testo in

chiaro

UTENTE A UTENTE B

(21)

La crittografia simmetrica utilizza una sola chiave condivisa sia per cifrare che per decifrare i messaggi. Tale chiave, ovviamente, non deve essere resa nota ma restare condivisa solamente tra le parti che vogliono comunicare in modo riservato. Lo svantaggio dunque è la necessità che le parti riescano a scambiarsi la chiave in assoluta sicurezza a distanza, e quindi occorre un canale sicuro per trasmettere preventivamente la chiave al destinatario. Poiché la robustezza dipende solo dalla chiave essa deve essere scelta in uno spazio sufficientemente grande altrimenti tramite un attacco brute force si individuerebbe facilmente la chiave usata. La segretezza della chiave garantisce riservatezza ed integrità. Il vantaggio è che generalmente gli algoritmi di crittografia simmetrica sono computazionalmente molto più veloci di quelli a chiave pubblica (o crittografia asimmetrica), per questo vengono usati in tutte le operazioni di cifratura che richiedono determinate performance.

2.1.1 DES

L’algoritmo DES (Data Encryption Standard) è stato messo a punto nel 1974 dalla IBM ed è un algoritmo che divide il testo in chiaro in blocchi separati ed opera su ognuno di essi, indipendentemente, per produrre una sequenza di blocchi di testo cifrato. La chiave (k) usata per cifrare è un blocco di 64 bit suddivisa in 8 blocchi di 8 bit ciascuno; l’ultimo bit di ogni sotto-blocco è di controllo, di conseguenza i bit liberi che costituiscono in pratica la chiave sono 56. Il testo da cifrare (P) viene suddiviso in blocchi (C) di 64 bit ciascuno e vengono cifrati uno dopo l’altro in successione con uguale procedimento. La trasformazione è invertibile, vale dunque la seguente relazione:

C=Sk(P)

P=Sk-1(C)

Se un blocco non raggiunge la lunghezza desiderata di 64 bit si utilizza un procedimento detto “padding”, che può essere implementato in diversi modi: un metodo aggiunge zeri fino alla lunghezza stabilita mentre un altro, se i dati sono binari, integra il blocco con bit che sono l’opposto degli ultimi bit del messaggio. Nel caso di dati ASCII si usano invece byte generati in modo casuale specificando nell’ultimo byte il carattere ASCII corrispondente al numero di byte aggiunti. Infine un’ultima tecnica, in parte equivalente alla precedente, usa sempre bit casuali ma fornisce, negli ultimi tre bit, il numero di byte originali, cioè quelli che costituiscono il messaggio senza riempimento. Durante la cifratura un blocco di testo normale subisce per prima cosa una permutazione iniziale (IP), cioè cambia posizione con un altro. Poi il blocco di 64 bit di testo in chiaro viene diviso in una metà destra e una metà sinistra, R0 e L0 rispettivamente, ciascuna lunga 32 bits. A questo punto vengono applicati 16 iterazioni tramite una funzione di Feistel che opera delle trasposizioni e delle sostituzioni ad ogni metà mediante delle sotto-chiavi diverse per ogni passaggio e ricavate dalla chiave originale. Durante ogni passo l’output della metà sinistra diventa l’input della destra e viceversa. Dopo il completamento di tutti i 16 passi dell’algoritmo i due sotto-blocchi vengono riuniti e sul risultato viene effettuata una sostituzione (FP) per invertire la trasposizione iniziale.

(22)

Figura 10 – Esecuzione delle 16 iterazioni con la funzione di Feistel.

Il simbolo denota l'operazione di OR esclusivo (XOR). La funzione Feistel (F-function nello schema) mescola metà del blocco con una parte della chiave. Il risultato della funzione Feistel è poi combinato con l'altra metà del blocco, e le due metà sono scambiate prima del ciclo successivo. Dopo il ciclo finale, le metà non sono scambiate per rendere le fasi di cifratura e decifratura più simili. Il vantaggio di un algoritmo di questo tipo consiste essenzialmente nella velocità. Gli svantaggi invece risiedono nella necessità che entrambe le parti devono conoscere la chiave prima di ogni trasmissione, si deve creare una chiave diversa per ogni persona a cui si trasmettono i dati, ed è inoltre un algoritmo relativamente semplice e facile da attaccare. La scoperta che la chiave a 56 bit del DES non è abbastanza lunga da garantire la sicurezza contro attacchi brute force ha portato allo sviluppo del più robusto Triple DES, che è basato sulla ripetizione del DES per tre volte. Questo soluzione fu individuata come modo semplice per aumentare la lunghezza della chiave senza bisogno di cambiare algoritmo. L'uso di tre passaggi è essenziale per prevenire attacchi di tipo meet-in-the-middle che funzionano contro la doppia crittazione DES.

(23)

Figura 11 – I tre passaggi per ottenere il 3DES.

2.1.2 AES

L’AES (Advanced Encryption Standard) è un algoritmo di cifratura a blocchi utilizzato come standard dal governo degli Stati Uniti d'America, ed è stato sviluppato da Joan Daemen e Vincent Rijmen come successore del Data Encryption Standard. AES è stato adottato dalla National Institute of Standards and Technology (NIST) e dalla US FIPS PUB nel novembre del 2001 dopo 5 anni di studi, standardizzazioni e selezione finale tra i vari algoritmi proposti. Resistenza contro tutti gli attacchi noti, velocità, compattezza del codice e semplicità progettuale sono le caratteristiche principali. L’algoritmo ha un blocco con una dimensione fissa di 128 bit mentre la chiave può essere di 128, 192 o 256 bit. Il risultato intermedio delle operazioni fatte durante l’algoritmo prende il nome di State, ed è rappresentato da una matrice di 4×4 byte. La codifica consiste nell’applicazione ripetuta di diverse fasi, o Round, in cui gli State vengono processati. Il numero di Round è indicato da N, e dipende dalle lunghezze del blocco e della chiave. Si ha un passaggio iniziale, detto Add Round Key, seguito da N-1 applicazioni dei Round di processamento, ed infine un’applicazione del Final Round. L’Add Round Key e i vari Round prendono come input lo State e una chiave segreta. Ogni Round è costituito da una sequenza di quattro operazioni, chiamate step:

Substitute Byte è l’unica trasformazione non lineare del cifrario. È una permutazione in cui i byte

della matrice State vengono mappati tramite la tabella S-box, definita in AES stesso. In pratica si tratta di una sostituzione di byte dell’array State con i corrispettivi valori ricercati sulla tabella S-Box.

(24)

Shitf Rows è una trasformazione che sposta i byte dello State di un certo numero di posizioni

dipendenti dalla riga di appartenenza. La riga 0 resta invariata, la riga 1 viene shiftata di un byte verso sinistra, la riga due su di due byte e la riga 3 di tre byte, in modo che il byte in posizione j della riga i si sposti alla posizione (j-Ci) mod NumeroColonne.

Figura 13 – Shift Rows.

Mix Columns è una permutazione che opera sulla matrice State colonna per colonna, considerando

ognuna di esse come un polinomio a quattro termini e moltiplicandola per un polinomio fissato.

Figura 14 – Mix Columns.

Add Round Key è una trasformazione in cui lo State viene modificato combinandolo con la chiave

segreta tramite un’operazione di XOR bit a bit. Questa fase rende il cifrario sicuro, dato che le precedenti operazioni sono note e facilmente invertibili. Ad ogni Round la chiave aggiunta è diversa e ricavata dalle precedenti ricorsivamente.

(25)

Figura 15 – Add Round Key.

L’ultimo Round invece è leggermente diverso, in quanto non compare lo step Mix Columns, e prende il nome di Final Round. Tutte le operazioni vengono effettuate in sequenza all’interno di ogni Round, tranne un’iniziale Add Round Key al di fuori di ogni fase. Il livello di sicurezza di AES si è dimostrato essere molto elevato; per i documenti del governo USA AES 128 bit è considerato sufficiente per i documenti classificati “Secret”, mentre per i “Top secret” occorre AES 192 o meglio ancora quello a 256 bit.

2.2 CRITTOGRAFIA ASIMMETRICA

Nella crittografia asimmetrica ciascuna parte coinvolta nella comunicazione possiede una coppia di chiavi, una privata nota solo al suo possessore, ed una pubblica che viene invece resa disponibile a tutti. La chiave pubblica serve a cifrare un documento destinato alla persona che possiede la relativa chiave privata; la chiave privata, personale e segreta, è utilizzata per decifrare un documento cifrato con la chiave pubblica. In questo modo si evitano i problemi relativi alla necessità di scambio sicuro dell’unica chiave per la cifratura/decifratura, come avviene invece nella crittografia simmetrica. Le coppie di chiavi sono matematicamente correlate (in modo che un messaggio cifrato con una può essere decifrato solo con l’altra) ma non possono essere generate l’una a partire dall’altra. Gli aspetti fondamentali di questa tecnica sono dunque che non si può decifrare il testo con la stessa chiave usata per cifrarlo, le due chiavi sono generate con la stessa procedura e correlate univocamente, conoscendo una delle chiavi non è possibile in alcun modo ricostruire l’altra. Inoltre invertendo l’utilizzo delle chiavi, ossia cifrando con la chiave privata del mittente e decifrando con la chiave pubblica del mittente, è possibile garantire l’autenticazione. È su tale principio che si basa la firma digitale. Niente rende l’idea meglio di un esempio: per scrivere un messaggio all’utente A si userà la chiave pubblica di A; in questo modo saremo sicuri che solo A con la sua chiave privata potrà decodificare il messaggio (Segretezza).

(26)

Figura 16 - Invio di un messaggio cifrato con sistema asimmetrico. Il mittente cifra il testo con la chiave pubblica del destinatario, mentre questi lo decifra con la propria chiave privata.

Analogamente se ci arriva un messaggio codificato con la chiave privata di A, saremo in grado di decodificarlo solo con la chiave pubblica di A. In questo modo sapremo che solo A può aver inviato un certo messaggio (Paternità e autenticità).

Figura 17 - Testo cifrato con la chiave privata del mittente. Se B riesce a decifrare il messaggio con la chiave pubblica di A, questi è certamente l’autore del testo.

Il grande vantaggio di questi due metodi è che viene eliminata l’esigenza di inviare e ricevere una chiave segreta in quanto è sufficiente inviare una chiave pubblica che non ha esigenze di riservatezza. Se n sono gli utenti coinvolti, n è anche il numero di chiavi da distribuire e non n*(n-1)/2 come nel caso degli algoritmi simmetrici. Ricapitolando, la crittografia simmetrica è più semplice e veloce di quella asimmetrica ma necessita che prima venga condivisa una chiave in maniera sicura. Quindi normalmente si usa la crittografia asimmetrica per scambiarsi una chiave in maniera sicura, con cui procedere poi ad una comunicazione a crittografia simmetrica, preservando così i vantaggi di questa. È quanto accade ad esempio nei protocolli di rete crittografici come SSL/TLS.

2.2.1 RSA

L’algoritmo RSA, proposto nel 1978 da Rivest, Shamir e Adleman, da cui il nome, è il primo sistema di crittografia a chiavi pubbliche che sfrutta l'approccio di Diffie ed Hellman ed è anche quello attualmente più diffuso ed utilizzato. Può essere usato sia per cifrare sia per firmare

Testo in

chiaro

Testo cifrato

Testo in

chiaro

Testo in

chiaro

Testo cifrato

Testo in

chiaro

UTENTE A UTENTE B Chiave pubblica di B Chiave privata di B Chiave privata di A Chiave pubblica di A UTENTE A UTENTE B

(27)

digitalmente documenti, ed è considerato sicuro se sono usate chiavi abbastanza lunghe (almeno1024 bit). La sua sicurezza si basa infatti sulla difficoltà di fattorizzare numeri interi molto grandi. Il metodo si basa sulla fattorizzazione di interi di grandi dimensioni e per la sua implementazione si devono seguire i seguenti passi:

1. Scegliere due numeri primi molto grandi p e q;

2. Calcolare il prodotto N=p*q, chiamato modulo, in quanto verrà utilizzato nel calcolo del modulo nelle operazioni di codifica e decodifica;

3. Calcolare la funzione di Eulero, E=(p-1)*(q-1);

4. Scegliere un intero e tale che 0< e<E e che sia primo rispetto a E, ossia tale che tra E ed e non ci siano fattori comuni eccetto 1. Si ottiene così la chiave pubblica di codifica e Kp=e; 5. Calcolare l’intero d per il quale risulta e * d mod E = 1, ossia trovare l'intero d per cui

[(e*d)-1] sia divisibile per E. Si ottiene così la chiave segreta di decodifica Ks=d; 6. Rendere pubblici N e Kp=e.

Il messaggio cifrato X corrispondente al messaggio M si ottiene dalla seguente relazione: X=Me mod N

Invece la decodifica avviene secondo la relazione:

Xd mod N = (Me mod N)d mod N = Med mod N = M

La sicurezza dello RSA è affidata alla difficoltà di determinare i fattori primi di un intero quando questo è molto grande, difficoltà che aumenta in modo esponenziale al crescere del numero di bit usati per la chiave. Infatti se un non autorizzato riuscisse a sapere che N è fattorizzato in p e q, allora potrebbe calcolare E, e conoscendo d risalire a e tramite l'equazione:

e*d mod E=1

Va osservato che tale algoritmo può essere utilizzato sia per cifrare un documento sia per firmarlo digitalmente. Per far ciò è sufficiente invertire la sequenza di utilizzo delle chiavi: il mittente firma il documento con la propria chiave privata e poi il destinatario verifica la tale firma con la chiave pubblica del mittente. Ciò è possibile in virtù della seguente proprietà dell’aritmetica modulare:

(28)

2.3 FUNZIONI DI HASH

La funzione di Hash è un processo di trasformazione di bit e essenzialmente costituisce un algoritmo di checksum, il quale riceve in ingresso una stringa di dati di lunghezza arbitraria e restituisce una stringa di bit di dimensione fissa (tipicamente 128 o 160 bit), spesso chiamata message digest (impronta digitale). Input identici forniscono uscite identiche, quindi quando ci si riferisce alla funzione di Hash si parla di “funzione a senso unico”: conoscendo l'Hash è altamente improbabile risalire algoritmicamente al messaggio originale, mentre possedendo il messaggio originale è possibile stabilire il suo Hash univoco. Da queste proprietà se ne deduce che due messaggi che presentano lo stesso digest sono uguali tra loro. Ciò permette dunque di utilizzare la funzione di Hash per verificare l’uguaglianza tra due messaggi. Funzioni di questo tipo sono spesso applicate come soluzione per lo storage di password. In tali circostanze, durante la registrazione di un utente su un portale internet, la password scelta verrà codificata con un algoritmo di Hash e memorizzata nel database. Negli accessi successivi la password immessa dall’utente subirà lo stesso trattamento e verrà confrontata con la copia memorizzata nel server, avendo così la certezza dell’autenticità del login. Le funzioni di Hash non vengono utilizzate soltanto nell’ambito della sicurezza, ma permettono anche di verificare l’integrità dei download, tramite un checksum da confrontare: assieme al file del download viene fornita la stringa che corrisponde all’Hash dei file immessi come input; se l’Hash ottenuto non corrisponde a quello fornito dal download, potrebbe essersi verificata una perdita di dati. Con lo stesso metodo si può verificare se il contenuto di un file è cambiato o meno.

2.3.1 MD5

MD5 è l’acronimo di Message Digest 5, un algoritmo crittografico di Hashing creato nel 1991 da Ronald Rivest. Questo tipo di codifica, dato un input composto da una stringa di lunghezza arbitraria, restituisce una firma digitale che consiste in una stringa da 128 bit. La codifica avviene molto velocemente e si presuppone che l’Hash (ovvero l’output) restituito dalla funzione sia univoco o, più precisamente, che sia molto improbabile ottenere due Hash identici da due input diversi. La crittografia tramite algoritmo MD5 viene applicata in tutti i settori dell'informatica che lavorano con il supporto delle firme digitali o che comunque trattano dati sensibili. Analizziamo ora come è strutturato l’algoritmo MD5, dato un messaggio m in input: Possiamo identificare 6 passaggi:

1. Vengono aggiunti bit di riempimento alla fine del messaggio da codificare finché la lunghezza del messaggio diventa pari a 448 mod 512. In particolare, il primo bit aggiunto è un “1″, mentre i successivi sono tutti “0″;

2. Aggiunta delle informazioni sulla lunghezza del messaggio (calcolata prima del padding) in codifica a 64 bit. Se la lunghezza del messaggio era minore di 264, vengono utilizzati solamente i 64 bit inferiori del messaggio, ottenendo così 2 word (da 32 bit ciascuna) che vengono accodate al messaggio dando precedenza alla word inferiore;

(29)

4. Inizializzazione del buffer MD, composto da 4 word a 32 bit, inizializzate come segue: A: 01 23 45 67

B: 89 ab cd ef C: fe dc ba 98 D: 76 65 32 10

5. Elaborazione del messaggio: vengono definite quattro funzioni che ricevono in ingresso tre word e ne restituiscono una:

F(X, Y, Z) = (X ˄ Y) ˅ (NOT(X) ˄ Z) G(X, Y, Z) = (X ˄ Z) ˅ (Y ˄ NOT(Z))

H(X, Y, Z) = (X Y Z) I(X, Y, Z) = Y (X ˅ NOT(Z))

In particolare ogni funzione adotta la seguente logica: se è vero X, allora passa ad Y altrimenti a Z.

6. Message Digest: L’output dell’algoritmo è l’hash finale, ottenuto a partire dal LSB (byte meno importante) della word A seguito da B ,C e terminante con il byte più importante di D.

(30)

A oggi, la disponibilità di algoritmi efficienti capaci di generare stringhe che producono in output lo stesso valore di Hash in un tempo ragionevole, ha reso MD5 sfavorito rispetto ad altri algoritmi di Hashing, sebbene la sua diffusione sia a tutt'oggi molto estesa.

2.3.2 SHA

Il termine SHA è acronimo di Secure Hash Algorithm e con esso si indica una famiglia di cinque diverse funzioni crittografiche di Hash sviluppate a partire dal 1993 dalla National Security Agency (NSA) e standardizzate dal NIST. Come ogni algoritmo di Hash, l'SHA produce un message digest di lunghezza fissa partendo da un messaggio di lunghezza variabile. Gli algoritmi della famiglia sono denominati SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512. Il primo produce un digest del messaggio di soli 160 bit, mentre gli altri producono digest di lunghezza in bit pari al numero indicato nella loro sigla (SHA-256 ad esempio produce un digest di 256 bit). SHA-1 è una funzione di hashing a 160 bit che si articola nei seguenti passaggi:

1. La prima operazione sull’input è un riempimento atto a rendere la lunghezza del messaggio pari a 448 mod 512.

2. Alla sequenza di bit creata durante il primo passo viene aggiunta la lunghezza della sequenza originale in codifica a 64 bit. Si ottiene una sequenza di bit che è un multiplo di 512.

3. Viene creato un buffer di 160 bit suddiviso in 5 registri da 32bit ciascuno per la memorizzazione di alcuni passaggi intermedi. I 5 registri verranno convenzionalmente indicati con (A,B,C,D,E) ed inizializzati con i seguenti valori esadecimali:

A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0

4. La sequenza di bit "messaggio + imbottitura + lunghezza Messaggio" viene divisa in blocchi da 512bit, che identificheremo con Bn con n che va da 0 a L. Il fulcro dell'algoritmo SHA-1 è chiamato compression function ed è formato da 4 cicli di 20 passi cadauno. I cicli hanno una struttura molto simile tra di loro se non per il fatto che utilizzano una differente funzione logica primitiva. Ogni blocco viene preso come parametro di input da tutti e 4 i cicli insieme ad una costante K e i valori dei 5 registri. Alla fine della computazione otterremo dei nuovi valori per A,B,C,D,E che useremo per la computazione del blocco successivo sino ad arrivare al blocco finale F.

(31)

Figura 19 – Algoritmo SHA.

Nel 2001 il NIST pubblicò quattro funzioni di Hash addizionali facenti parte della famiglia SHA, ognuna con un digest più lungo di quello originale, collettivamente denominateSHA-2. Queste varianti sono note, come detto, con la lunghezza in bit del digest generato a seguire la sigla ufficiale dell'Hash: SHA-224, SHA-256, 'SHA-384 e SHA-512, con, rispettivamente, Hash di 224, 256, 384 e 512 bit. Gli algoritmi SHA-256 e SHA-512 lavorano, rispettivamente, con word di 32 e 64 bit: utilizzano un numero differente di rotazioni e di costanti addizionali ma la loro struttura è sostanzialmente identica. Gli algoritmi SHA-224 e SHA-384 sono semplicemente versioni troncate dei precedenti due, con Hash calcolati con differenti valori iniziali.

2.4 STRUMENTI PER LA CRITTOGRAFIA

2.4.1 Il Package javax.crypto

Il package javax.crypto fornisce le classi e le interfacce per diverse operazioni crittografiche, implementando algoritmi di crittografia, decrittografia e generazione di chiavi. Il supporto alla cifratura comprende algoritmi simmetrici, asimmetrici e a blocchi. L’autenticazione può essere basata su MAC (Message Autentication Code) e HMAC (Hash MAC). La classe centrale è Cipher, che è utilizzata per criptare/decriptare i dati. CipherInputStream e CipherOutput stream sono due stream per le operazioni di input e output cifrate e sono utili per scrivere su file contenuti già criptati con il cifrario scelto. Gli algoritmi implementati in questo package sfruttano l’ottimizzazione hardware per avere un impatto computazionale, per quanto riguarda le prestazioni del software, estremamente ridotto; questa caratteristica, insieme all’intrinseca portabilità del codice Java, ha fatto di questo package un riferimento estremamente valido per la comunità di sviluppatori.

(32)

2.4.2 BouncyCastle

Uno strumento molto utilizzato è il pacchetto Bouncy Castle il quale, implementato in Java, offre una raccolta di API per le principali funzioni di crittografia. È stato sviluppato e curato dalla Legion of the Bouncy Castle Inc. La libreria è molto leggera e in essa è incluso anche un provider, cioè un’implementazione di tutte le funzionalità contenute nella Java Cryptography Extension. Le Bouncy Castle API sono così composte:

 Le API di crittografia “leggere”, per tiny client;

 Un Provider per JCE (Java Cryptography Extension)e uno per JCA(Java Cryptography Architecture);

 Una implementazione pulita delle API JCE 1.2.1;

 Una libreria per leggere e scrivere le gli oggetti codificati ASN.1;

 API leggere per l’implementazione di TLS e DTLS;

 Generatori per la Versione 1 e la Versione 3 di X.509, Versione 2 di CRLs e PKCS12;

 Generatore per gli attributi ed i certificati della Versione 2 di X.509;

 Generatori/Processori per S/MIME e CMS;

 Generatori/Processori per OCSP;

 Generatori/Processori per TSP;

 Generatori/Processori per CMP e CRMF;

 Generatori/Processori per Open PGP;

 Generatori/Processori per EAC (Extended Access Control);

 Generatori/Processori per DVCS (Data Validation and Certification Server).

2.4.3 DBMS_CRYPTO

DBMS_CRYPTO costituisce un’interfaccia fornita dal Database Oracle per criptare e decriptare dei dati, e può essere usato unitamente al linguaggio PL/SQL. Fornisce un supporto per molti standard crittografici e algoritmi di hashing, incluso l’Advanced Encryption Standard. Questo package permette di operare sui più comuni tipi di dati Oracle, inclusi RAW e Large Objects (LOBs), come suoni ed immagini. È possibile scegliere tra diverse opzioni di padding, incluso PKCS#5 (Public Key Cryptographic Standard), e tra quattro modalità di cifratura a blocchi, inclusa la Cipher Block Chaining (CBC). La tabella riporta un riepilogo delle principali caratteristiche del package DBMS_CRYPTO.

(33)

Caratteristiche Package DBMS_CRYPTO

Algoritmi Crittografici DES, 3DES, AES, RC4,

3DES_2KEY

Padding PKCS5, zeroes

Modalità cifratura a blocchi CBC, CFB, ECB, OFB

Algoritmi hash MD5, SHA-1, MD4

Algoritmi MAC HMAC_MD5, HMAC_SH1

Generatori di numeri pseudocasuali

RAW, NUMBER, BINARY_INTEGER

Tipi di dati supportati RAW, CLOB, BLOB

(34)

CAPITOLO 3

La Sicurezza: autenticazione,

autorizzazione e trasporto dei dati

Quello sanitario è senz’altro uno dei settori più delicati tra quelli chiamati a misurarsi con le complesse problematiche applicative poste dalla normativa. Il concetto di sicurezza sottintende sia quello di privacy, ossia gli aspetti atti ad evitare che persone non autorizzate possano accedere ad informazioni riservate, sia quello di security, ovvero tutto ciò che va dall’integrità dei dati alla disponibilità del servizio. Il rispetto della privacy costituisce l’elemento fondante nell’erogazione di una prestazione e, nel caso di un servizio di natura informatica, deve necessariamente confrontarsi con problematiche strutturali e organizzative se si vuole garantire un elevato grado di protezione da accessi, utilizzi, modifiche, registrazioni o distruzioni non autorizzate e che quindi i dati personali e sensibili degli utenti non possano essere visibili a terze parti, così come previsto dalla normativa vigente. Tali problematiche hanno assunto un’importanza crescente parallelamente all’evoluzione delle nuove tecnologie e degli strumenti di sviluppo, soprattutto per quanto concerne l’uso di Internet e dei sistemi di condivisione. Riassumendo, lo scopo della sicurezza in un contesto informatico è quello di garantire il rispetto di questi punti fondamentali:

Confidenzialità: insieme delle misure per prevenire la diffusione di informazione verso individui o sistemi non autorizzati, in modo che gli interlocutori siano in grado di scambiare documenti senza che nessuno all'infuori di loro due sia in grado di leggerli;

Integrità: insieme delle misure per garantire che le informazioni possano essere create, gestite, modificate o cancellate solamente dal personale autorizzato ad effettuare tale operazione;

Disponibilità: l’informazione deve essere sempre disponibile quando viene richiesta, nei tempi e nei modi previsti;

(35)

Autenticità: insieme delle misure per garantire che le transazioni, le comunicazioni ed i messaggi, siano genuini, mediante l’identificazione e la validazione di ogni soggetto coinvolto in un processo;

Non ripudiabilità: insieme delle misure per impedire la ripudiabilità dei messaggi, garantendo a chi riceve il messaggio di poter risalire senza possibilità di incertezza al mittente.

Questi requisiti possono essere compromessi tramite attacchi di vario tipo, che possono riguardare risorse hardware, risorse software, informazioni, supporti magnetici, documentazione e figure professionali. L’espansione della rete Internet ha permesso lo scambio di informazioni in tempi rapidi e senza vincoli geografici, ma con l’inconveniente che le reti sono intrinsecamente insicure e non sono state progettate per garantire la difesa contro eventuali abusi. Le informazioni vengono trasmesse su lunghe distanze, e sono soggette a intercettazione e alterazione; inoltre l’accesso alle reti locali è diventato possibile anche da computer remoti, rendendo necessaria la protezione dei dati che transitano sulla rete ad esempio mediante tecniche di cifratura, che hanno lo scopo di rendere non comprensibile un messaggio a persone non autorizzate a leggerlo, e ricorrendo a misure di autenticazione più avanzate per l’accesso a server e reti locali.

3.1 AUTENTICAZIONE

L’accesso ad un servizio deve avvenire previa verifica dell’identità di un soggetto, che avviene tramite il processo di autenticazione. Una tecnica di autenticazione risulta essere efficace quando garantisce con ottima probabilità che l’individuo che ha richiesto l’accesso sia effettivamente colui che ne ha diritto. Possono coesistere sistemi di autenticazione dell’utente, del client o del server:

 l’autenticazione utente garantisce che l’utente è l’effettivo proprietario delle credenziali inserite;

 l’autenticazione del client garantisce che la macchina o il terminale con il quale si accede al sistema, sia un dispositivo noto alla rete e pertanto affidabile;

 l’autenticazione del server permette di dimostrare la corretta identità del server onde evitare, ad esempio, attacchi phishing.

L’unione dell’autenticazione client e di quella server prende il nome di autenticazione della connessione, ed è alla base dei protocolli per la sicurezza standard; un esempio in tal senso è la procedura di login. Le tecniche di autenticazione sono comunemente classificate sulla base delle entità alle quali fanno riferimento:

 “something you have” (SYH) ovvero qualcosa di cui si è in possesso, come ad esempio una carta magnetica, un dispositivo di memoria o dispositivi anche più complessi come le smart card basate su processore;

 “something you know” (SYK) ovvero qualcosa che si conosce, come ad esempio una password o un PIN;

 “something yuo are” (SYA) ovvero qualcosa che caratterizza la propria persona, come le impronte digitali, l'impronta retinica o quella vocale.

Riferimenti

Documenti correlati

La possibilità di modificare e ridistribuire il codice sorgente permette infatti di realizzare e migliorare il relativo software, integrando i contributi dei diversi soggetti che

Il riuso, anche nella sua visione di club OS per la PA, è un mezzo per iniziare, in modo pratico e sostenibile, a diffondere i principî fondamentali dell’OS: disponibilità del

 Azienda terza, capitali disponibili, aggiunta di funzionalità.  Disallineamento malevolo della

In particolar modo si fa carico della gestione dei dati anagrafici del paziente, della prenotazione ed accettazione degli esami, gestione degli aspetti

196, dal Disciplinare tecnico in materia di misure minime di sicurezza – allegato B) al codice medesimo, nonché dalle disposizioni emanate dal Garante e

ALL.3 DA COMPILARE SU CARTA INTESTATA DELLA SOCIETA’, SOTTOSCRIVERE A CURA DELLA STRUTTURA E RESTITUIRE IN FORMATO

7) non avere rapporto di parentela e affinità entro il 4° grado con i membri della commissione valutatrice di cui all’art. 3 del presente avviso e i referenti/responsabili del

445, nel caso di dichiarazioni mendaci, falsità in atti, uso o esibizione di atti falsi o contenenti dati non più rispondenti a verità, di essere in possesso dei seguenti