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.
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
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
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