Ti spiego la situazione: il mio programma è legato a un videogame MMORPG ed ha come finalità quella di costruire un'armory.Originariamente inviato da dottwatson
stai operando con codifiche/decodifiche del tutto comuni e con possibilità di codifica e decodifica senza alcuan chiave...
In questo MMORPG ogni giocatore può modificare l'interfaccia del gioco tramite addons scritti in linguaggio LUA. Io ho già realizzato un addon che si occupa di eseguire una scansione sul personaggio e colleziona informazioni sul nome, il livello, la classe (guerriero, mago...), i singoli oggetti dell'equipaggiamento, quelli contenuti nell'inventario... e così via.
Gli elementi collezionati sono riposti in un array multidimensionale, serializzati tramite JSON, quindi codificati in base64.
Il risultato è mostrato al player che deve fare copia/incolla della stringa ottenuta su un form presente nel sito web dell'armory.
Ho trovato alcune implementazioni in LUA di sistemi di criptazione a doppia chiave, ma mi devo confrontare col fatto che non c'è alcuna possibilità di attivare moduli LUA sul client usato dai giocatori, e le funzioni LUA stesse - messe a disposizione dal client - sono limitate.
Al massimo posso usare un sistema a chiave singola, e dato che l'implementazione dell'algoritmo è anch'essa fatta in LUA, chiamare la funzione di criptazione in modo ambiguo, ed includere solo la parte dedicata all'encryption nei sorgenti (magari potrei accodare un hash di parte dei dati).
Essendo l'addon programmato in LUA, tutto il codice è in chiaro. Un utente smaliziato potrebbe decrittare i dati, o più semplicemente (davvero molto più facile), modificare l'addon nella parte che colleziona i vari elementi del pg lasciando poi che la criptazione/encoding faccia la sua parte.
In poche parole: non ho modo di impedire all'utente di inviarmi quello che vuole, se è in grado di farlo. Posso solo provare a complicargli la vita nel caso sia una persona comune.
Il problema è che i dati "non viaggiano" e non ho modo di fare altrimenti (gli addons del client non possono stabilire alcun tipo di connessione). I dati di base sono forniti dai giocatori stessi, e tramite addon non posso nascondere nulla (i sorgenti sono in chiaro, inclusi quelli degli eventuali algoritmi di criptazione o di encoding).Originariamente inviato da dottwatson
ti vuoi tutelare?
bene, in tal caso ti consiglio di vedere come fanno i sistemi di pagamento on line delle banche per tutelarsi in caso di dialogo con e-commerce: il sistema è in alcuni casi un pò grezzo ma offre il suo buon margine di sicurezza
ma i dati li fai viaggiare in chiaro? con base64 e json sono praticamente in chiaro...
Quindi, dai dati importati mi posso aspettare di tutto.
Dove posso trovare informazioni su come fanno le banche a tutelarsi?