Newsgroup: it.comp.java
Titolo: Visualizzatore remoto di files in Java

Ciao a tutti!
Devo progettare un visualizzatore remoto di files in Java:
praticamente attraverso una rete, tutti i client devono poter aprire
in sola lettura ai files memorizzati su un server centrale.
I files sono di svariati tipi: in pratica sarebbe bene riuscire a
implementare una soluzione che permetta di aprire (quasi) tutti i tipi
di file MIME.
Il "problema" è che il requisito principale di questo applicativo è la
sicurezza e la riservatezza dei dati. In pratica:
1) i client devono autenticarsi (inserendo le credenziali d'accesso
memorizzate in un database in MySQL) prima di poter accedere al server
centrale
2) TUTTI i dati scambiati tra client e server devono viaggiare su un
canale cifrato sicuro (probabilmente implementato in SQL)
3) i dati presenti sul server centrali sono estremamente RISERVATI,
ovvero sono visibili dai client autenticati ma bisogna ridurre al
minimo il rischio che questi dati vengano memorizzati (anche sotto
forma di file temporanei) sul pc dell'utente che li ha visionati.
Se non ci fosse il punto (3) sarebbe facile realizzare un sistema di
questo tipo: sarebbe sufficiente implementare un server ftp e tutti i
client che vogliono accedere ai files si autenticano, scaricano i
files che gli interesano e buonanotte al secchio ;-)
Il punto (3) ovviamente è quello che crea più problemi. Infatti, per
aprire i suddetti files, ho escluso di utilizzare le loro applicazioni
a essi associati. In pratica, per aprire un file PDF, non posso
scaricarlo sul client e poi aprirlo con Acrobat Reader sul pc
dell'utente. Stesso discorso per un file txt, bmp o mp3.
In questo modo infatti resterebbero sul pc client vari "spezzoni" dei
files aperti, sotto forma di file temporanei o altro.
Ho pensato quindi ad aprire i files all'interno della mia applicazione
Java in modo da avere più controllo sulla gestione e l'archiviazione
dei file temporanei: ho cercato un po' su internet e ho trovato classi
Java per aprire quasi tutti i file di tipo MIME. Ovviamente i files di
Microsoft Office saranno più difficili da gestire, i bmp saranno più
facilii.
Quello che vi chiedo è di dirmi cosa ne pensate di questa idea e, se
possibile, di darmi consigli di qualsiasi tipo: eventuali vostre
esperienze in merito, classi che conoscete e che potrebbero farmi
comodo nell'apertura di qualsiasi tipo di file MIME, dritte su cose a
cui dovrei fare attenzione nello sviluppare il progetto e questioni
che potrei aver sottovalutato.
Insomma, essendo il progetto ancora in una fase di brainstorming,
qualsiasi suggerimento è ben accetto"
Grazie in anticipo per la collaborazione! :-)
A buon rendere! ;)

 canale cifrato sicuro (probabilmente implementato in SQL)
Ovviamente volevo dire SSL! ;-)

 qualsiasi suggerimento � ben accetto"
Fammi capire: quindi tu dovresti realizzare un client che stia nel pc di 
chi vuole visualizzare, si vada a pescare nel repository comune il dato, 
  e lo visualizzi, giusto? Non vuoi una soluzione web-based o qualcosa 
del genere, se ho ben capito (anche perch� in questo caso comunque il 
browser i file temporanei se li tiene).
D'altra parte se il requisito � gestire la 'vita' del file nel client, 
non puoi far altro che metterci un apposito sw che anche se lo prendi a 
martellate comunque ti cancella i temporanei (vanno previsti vari casi, 
"stacco la spina", "ammazzo il processo java di colpo" ecc ecc).
Altra domanda: prevedete che un utente possa voler tenersi i dati ? 
Ovvero che 'con dolo' si ingegni per evitare la cancellazione? Perch� in 
questo caso le cose si complicano. Comunque, ora che mi viene in mente, 
buona norma sarebbe tenere criptati i dati sul client (anche i 
temporanei) in modo che anche se stacco la spina, tiro via il disco e lo 
attacco esternamente, mi ritrovo una inutile sequenza di bit non leggibili.
Per quel che riguarda i file "office" io ho fatto qualche ricerca da 
poco perch� mi serve qualcosa per leggerli e stamparli, ma non ho 
trovato molto. O meglio, ho trovato, ma oltre a quello che mi interessa 
fanno altre mille cose (e quindi mille-costano...), se ti interessa ti 
passo i link.
-- 
bye
DKano

 Se non ci fosse il punto (3) sarebbe facile
[...]
Ma visto che c'�, dati i presupposti, direi che sia impossibile, al 
massimo puoi rendere la vita difficile a chi se li vuole copiare, i tuoi 
file, ma alla fine se li copia. Ad esempio non puoi impedire l'uso di 
alt-stamp.
Neanche se glieli facessi vedere in TV, avresti la garanzia che alla TV 
non sia collegato un videoregistratore. :-))
-- 
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherA�ejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers v�o � merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'

 
Infatti per questo chiedevo se era previsto il tentativo cosciente 
dell'utente di copiarsi i dati, o piuttosto solo l'ingenuit� dell'utente 
(che anche quella fa danni :) )
-- 
bye
DKano

 passo i link.
Sì grazie, sarebbero molto graditi (la mail è valida).
E invece altri consigli su come visualizzare/aprire tutti gli altri
tipi di file MIME?
Ho visto che i file MIME sono davvero tanti e già temo l'idea di dover
cercare una libreria Java per aprire ognuno di essi! :-/

 alt-stamp.
Vedi la risposta a DKano! ;-)

 cercare una libreria Java per aprire ognuno di essi! :-/
Sinceramente non mi sono mai posto il problema... forse val la pena 
valutare una piccola interazione col sistema operativo?
-- 
bye
DKano

 forma di file temporanei) sul pc dell'utente che li ha visionati.
Ho risolto un caso simile[1] nel seguente modo:
- il client N richiede al server S il documento X
- S invia il documento criptato con chiave pubblica a N, che lo salva 
nella cache locale
- N decripta X usando la sua chiave privata, diversa per ogni client
- la chiave privata di N non � cablata nel codice (almeno solo in parte) 
ma generata utilizzando una stringa fornita da S (via protocollo sicuro)
- alla chiusura del documento il file viene rimosso dal file system 
(previo wipe per evitarne ogni possibile ripristino)
E' una procedura ragionevolmente sicura.
Certo se un utente malintenzionato ha accesso al pc client pu� comunque 
prelevare i dati decrittati installando un sw che effettui letture a 
basso livello alla memoria o un banale keylogger per leggere i dati 
utente direttamente dalla digitazione su tastiera.
La sicurezza, come sempre, va quindi valutata non solo in funzione 
dell'applicazione ma anche di tutto quello che la coinvolge (SO, FS, 
rete, hw...).
Spero di averti fornito qualche suggerimento utile.
Paolo
[1] eccetto nel fatto che i documenti erano tutti dello stesso tipo. Di 
fatto si trattava di file xml che venivano parsati e visualizzati dal 
client in un suo formato "proprietario".