Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Applet non deve funzionante off line/locale al pc utente

    Ciao a tutti,
    ho un'applet che ha accesso ad un database Mysql . Le informazioni di accesso di conservate in un file (estensione .dat conservato in package presente nel jar dell'applet) cripatato con alg. RSA (la chiave private per il decriptaggio è presente in un package presente nel jar dell'applet).
    Domanda:

    1. se qualcuno si scarica il jar può decompilarlo e capire come funziona?
    2. se qualcuno si scarica il jar può usare la chiave private per decompilare il dat e quindi recuperare le info di accesso al database?

    come posso evitare queste cose? Suggerimenti?

    L'obiettivo che mi interessa raggiungere è evitare che l'applet funzioni "off line" e che qualcuno recuperi dati di accesso al database.
    Spero di essere stato abbastanza chiaro.


    Grazie

    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Che io sappia, qualsiasi applet funziona sempre "in locale", poiché il codice Java - incorporato o meno in una pagina Web - viene comunque compilato ed eseguito sulla macchina dell'utente, se si tratta di un applet.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    1. se qualcuno si scarica il jar può decompilarlo e capire come funziona?
    si, a meno che non hai messo su meccanismi di protezione come offuscamento
    2. se qualcuno si scarica il jar può usare la chiave private per decompilare il dat e quindi
    recuperare le info di accesso al database?
    si.
    Mi chiedo, hai idea di come funzionano i meccanismi di sicurezza?Tu devi garantire l'accesso ad un utente e l'encryption da solo non basta.
    RTFM Read That F*** Manual!!!

  4. #4
    >>si, a meno che non hai messo su meccanismi di protezione come offuscamento
    basta quindi qualsiasi software (open/commerciale) che mi permette di offuscare il codice...non ci sono altre best pratics?

    >>si. Mi chiedo, hai idea di come funzionano i meccanismi di sicurezza?Tu devi garantire l'accesso ad un
    >> utente e l'encryption da solo non basta.
    Forse ... l'applet deve aver accesso ad un database MySQl (quindi ha delle credenziali ad hoc per farla accedere). Il problema che mi pongo è questo:

    1. nel mio applicativo c'è una classe (serializza e criptata con la chiave pubblica e salvata in un file .dat), l'applicativo quando viene caricato apre questo dat e con la chiave privata (contenuta nel jar stesso) ha tutte le info di accesso al database e fa le cose che deve fare.
    Basta? La chiave privata essendo nel file insieme al file criptato potrebbero essere prese (tanto il jar è un semplice zip) e messe in un'altro programma che effettui la decriptazione fatto da un programmatore smalizziato giusto per ricevere le crendiziali in chiaro?
    Vorrei evitare che qualcuno possa prelevare e usare queste informazioni. Senza le quali l'applet nn potrebbe funzionare.
    Hai dei consigli? Basta così? Hai delle risorse on line?
    Tnk


    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  5. #5
    Originariamente inviato da alka
    Che io sappia, qualsiasi applet funziona sempre "in locale", poiché il codice Java - incorporato o meno in una pagina Web - viene comunque compilato ed eseguito sulla macchina dell'utente, se si tratta di un applet.
    Se si trattasse di un jnlp? Vale la stessa cosa?
    Come proteggeresti le credenziali di accesso ad un database usato dall'applicativo?
    Inoltre come eviteresti che quest'applet/applicativo venga usato "fuori" dal sito da cui nasce?
    Grazie
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Io non userei affatto applet, ma un altro approccio: una web application che gira su un web server il quale ha la sua istanza di db.
    In questo caso l'utente fa solo la richiesta, è il web container a gestire la cosa (ma aggiungi un livello di protezione perché gira tutto su server e l'utente non scarica niente).

    Se sei convinto di fare invece una applicazione locale, devi tenere conto che ovviamente il jar può essere decompilato (in effetti l'offuscamento se ben fatto rende difficile risalire al codice, difficile non impossibile).

    Devi stare attento a concetti che fai ad usare quando parli di sicurezza: tu devi garantire l'accesso ad una risorsa remota e distribuisci le credenziali (anche cifrate)?
    Anche qui, probabilmente l'approccio che hai usato è errato perché il tuo è un problema di autenticazione, non di data integrity (come invece sei portato a pensare).
    Devi assicurarti che chi usa l'applet sia autenticato all'accesso, no distribuire le credenziali in chiaro pensando che una cifratura RSA ti protegga (oltretutto passi anche la chiave privata)
    RTFM Read That F*** Manual!!!

  7. #7
    Originariamente inviato da valia
    Io non userei affatto applet, ma un altro approccio: una web application che gira su un web server il quale ha la sua istanza di db.
    In questo caso l'utente fa solo la richiesta, è il web container a gestire la cosa (ma aggiungi un livello di protezione perché gira tutto su server e l'utente non scarica niente).

    Se sei convinto di fare invece una applicazione locale, devi tenere conto che ovviamente il jar può essere decompilato (in effetti l'offuscamento se ben fatto rende difficile risalire al codice, difficile non impossibile).

    Devi stare attento a concetti che fai ad usare quando parli di sicurezza: tu devi garantire l'accesso ad una risorsa remota e distribuisci le credenziali (anche cifrate)?
    In effetti quest'applet dovrebbe decrementare un campo presente in una tabella, se questo campo è arrivato a 0 l'applet non deve funzionare, questo è tutto il lavoro richiesto al db.

    Attualmente quest'applet dovrebbe muobversi su un applicZIONE php (già esistente). Quindi scrivere tutto in jsp nn è la scelta da preferita.
    Consigli?

    Grazie
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    fallo in php allora, perché passare per un'applet java?
    RTFM Read That F*** Manual!!!

  9. #9
    Originariamente inviato da valia
    fallo in php allora, perché passare per un'applet java?
    Il motivo è semplice ... quest'applet svolge un esercizio di apprendimento (immagini, suoni etc etc) cosa non facilmente riproducibile in php. Non si tratta di un gestionale.
    Consigli?
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    e come richiami questa applet?
    RTFM Read That F*** Manual!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.