2012-06-26 15 views
5

Ho bisogno che il mio client Flash comunichi con un server in modo sicuro (tramite socket binari). Per questo, stavo pensando di incorporare una chiave pre-condivisa all'interno del codice AS3 e lo scambio di dati XORed attraverso un protocollo personalizzato.Protezione Flash Codice AS3 + comunicazione sicura con il server

Mi è stato detto che i decompilatori SWF fanno un buon lavoro nel rendere tutto il codice incorporato chiaramente apparente e leggibile. Questo significa che non posso davvero nascondere la mia chiave?

Se questo metodo non è pratico, quali altre opzioni ci sono? Ho provato as3crypto, solo per scoprire che è pieno di difetti e manca di documentazione seria.

+0

Credo che il meglio che otterrete sia utilizzare SSL come protocollo sicuro per la trasmissione dei dati. Nota che questo non impedisce a un utente di impostare un proxy che accetta il tuo certificato e ne invia un altro al client per decodificare la trasmissione, quindi non è affatto una prova completa, ma è la soluzione più sicura per client/server comunicazione che almeno impedirà la possibilità di hackerare il sistema. In questo modo manterrà la sicurezza degli utenti finali/server sicura dagli estranei, ma non ti proteggerà dagli utenti finali. – shaunhusain

+0

Poiché la risposta di seguito elude un uomo nel mezzo dell'acquisizione della comunicazione tra il client e il server, in definitiva consentirà a qualcuno di scrivere un client che genera lo stesso tipo di comunicazione come si vede durante il monitoraggio mim. Guarda come è stato hackerato il Kinect come esempio, il protocollo non è stato pubblicato, né i segnali per l'avvio del flusso di dati, ma un dongle USB e un dump di dati più tardi e ci sono ragazzi in Brasile che invertono i dati di ingegneria flusso in <24 ore. Un altro esempio di Cain and Able qui http://www.youtube.com/watch?v=ZNApxghIQLw – shaunhusain

+0

Il punto generale è che il server non dovrebbe mai affidarsi interamente alla comunicazione che proviene dall'esterno. L'unica cosa che puoi veramente proteggere è il codice che viene eseguito sul server e in realtà il modo migliore per mantenere la sicurezza è che il server si trovi in ​​un luogo fisicamente sicuro e che non sia agganciato a reti inutili. Buona fortuna ... buona domanda, solo nessuna buona risposta. – shaunhusain

risposta

4

Non è possibile nascondere la chiave - SWF è totalmente non attendibile, può essere facilmente decompilato. È piuttosto difficile gestire la sicurezza con i file SWF perché vengono eseguiti sul client e non sono attendibili.

Potrebbe dipendere specificamente da ciò che si sta tentando di realizzare con comunicazioni sicure. Ad esempio, se stai cercando di proteggere un sistema di punteggio elevato che è praticamente impossibile perché il gioco gira sul client (il SWF) e possono manipolarlo per sputare qualsiasi punteggio che vogliono al server. Ecco una buona lettura di questo: What is the best way to stop people hacking the PHP-based highscore table of a Flash game

Se è possibile utilizzare il SWF solo come interfaccia utente front-end e tutta la logica viene eseguita sul back-end, è possibile proteggere l'applicazione (utilizzando l'esempio precedente riportato in alto, se il gioco non era un gioco AS3 ma effettivamente eseguito sul server stesso, sarebbe molto più facile da proteggere, perché il back-end è affidabile e non può essere modificato o visualizzato da un utente), ma se la logica ha luogo sul file SWF allora sei praticamente sfortunato.

Problemi correlati