Ho letto Stack Overflow da un po 'di tempo, ma questa è la mia prima domanda inviata.Come posso essere sicuro che qualcuno non stia inviando dati falsi?
Ho questo programma di tracciamento scritto in C# che raccoglie informazioni sull'utilizzo del computer locale e li invia a un server. I dati sono formattati in XML, inviati una volta ogni ~ 10 minuti.
Il mio problema: non importa quanto crittografo i dati XML (sia esso simmetrico o asimmetrico), qualcuno potrebbe sempre decompilare il mio programma di tracciamento C#, capire le convenzioni chiave/certificato/crittografia che uso e scrivere un altro programma che invia false segnala al server.
Il programma di monitoraggio funziona presupponendo che l'utente che lo esegue possa essere interessato all'invio di rapporti falsi.
Domande: 1) come posso essere sicuro (il più sicuro possibile) che i dati vengano inviati dal tracker reale anziché da un clone/falso? 2) Come posso offuscare il codice in modo abbastanza grave che il ripristino di chiavi/certificati/convenzioni di crittografia diventa quasi impossibile?
voglio spendere poco o preferibilmente non soldi sulla soluzione (così 500 $ obfuscators sono fuori discussione. Sono uno studente universitario e sono a buon mercato :)
Grazie in anticipo.
Risposta breve: non è possibile. Gli editori di software impiegano una quantità enorme di tempo e sforzi nel tentare qualcosa di simile, ed è invariabilmente interrotto entro poche ore dalla sua disponibilità. –
Personalmente non spendere soldi per questo, perché anche le soluzioni costose si rompono facilmente se qualcuno è determinato a fornire dati falsi. Non puoi mai "assicurarti" che i dati siano validi, cerca solo di scoraggiare le persone dal tentare di farlo. –