Ciao baronepiovasco,
Cerco di darti qualche dritta in più punto per punto.
Premetto che il rispetto delle norme per il trattamento dei dati richiedono attenzione all'intero sistema e non solo al software che ci gira e alle procedure di gestione dello stesso. Pertanto spesso è necessario documentarsi bene in materia o avvalersi dell'esperienza di qualcuno chesappia come muoversi.
Pertanto ripropongo i primi due suggerimenti di carattere generale:
Le regole da seguire sono parecchie e per questo ti ci vuole un buon consulente.
Sicuramente il buon punto di partenza è un server dedicato, anche virtuale. Poi Buona gestione dei backup e della sicurezza all'accesso fisico e logico al server.
Proseguo aggiungendo qualche dritta punto per punto:
Non intellegibilità del database: non deve essere possibile con un semplice accesso alla base dati capire le associazioni tra i dati sensibili e il loro proprietario. In questo caso si possono adottare metodi di criptazione per cifrare parte o l'intero database.
In questo caso abbiamo modificato la normali classi di accesso al database di joomla per far sì che i dati sanitari non siano facilmente riconducibili ai rispettivi proprietari con un accesso diretto alla base dati. In particolare si è cercato di fare in modo che i dati siano criptati in maniera non univoca, pertanto lo stesso dato di partenza può dare origine a dati codificati estrememente diversi.
Tracciare con dei log tutti gli interventi da parte dei diversi utenti che possono alterare i dati sensibili. Questi log poi devono essere custoditi in un luogo dove non siano alterabili. Ad esempio sullo stesso server dell'applicazione l'amministratore del server li potrebbe alterare.
Abbiamo creato appositi file di log per tracciare quanto richiesto utilizzando quanto offerto da Joomla. Poi abbiamo attivato diverse procedure per criptare, trasferire, rendere non alterabili e accessibili solo a chi di dovere i log.
Nell'applicazione i dati sensibili non devono mai apparire nella stessa schermata con i dati del loro proprietario.
La soluzione più semplice è stata quella di usere la tipica visualizzazione a schede in maniera tale da non far stare nella stessa scheda informazioni che associno al proprietario i rispettivi dati sensibili. Evitando così attacchi di tipo shoulder surfing.
I dati devono essere acceduti esclusivamente dagli utenti che ne hanno diritto.
Abbiamo fatto un buon utilizzo delle ACL di Joomla ed aggiunto tutti i controlli necessari ad evitare che un utente possa accedere ai non di sua competenza.
Durante il tragitto dal server al client i dati devono essere criptati. In questo caso viene bene l'utilizzo del protocollo https con un certificato ssl
Quì non ho altro da aggiungere.
Accesso in sessione unica da parte degli utenti
Non possono esserci due autenticazioni contemporanee per lo stesso utente Joomla. Abbiamo trovato un apposito componente.
Opportuna gestione delle passwordProbabilmente nel tuo caso non necessiti di tutti questi accorgimenti, ma spero ti possano essere di aiuto.
Abbiamo utilizzato alcune componenti che garantiscono una più alta complessità della password, il cambio della password secondo determinati criteri temporali e la gestione dello storico delle password, così gli utenti non possono utilizzare sempre la stessa password.
Spero di averti dato qualche spunto in più.