Sto sviluppando un'applicazione Android utilizzando Mono per Android da Xamarin. Attualmente sto lavorando per aggiungere funzionalità di acquisto in-app utilizzando l'API di Google Play. Per fare ciò, ho bisogno di inviare a Google la chiave di licenza pubblica dalla mia app. Per quanto riguarda questo problema, Google raccomanda quanto segue: RaccomandazioneProtezione stringa in APK
Sicurezza: Si consiglia vivamente di non hard-code l'esatto valore della stringa chiave di licenza pubblica come previsto dalla Google Play. Invece, è possibile costruire l'intera chiave di licenza pubblica stringa in fase di esecuzione da sottostringhe o recuperarla da un archivio codificato , prima di passarla al costruttore. Questo approccio rende più difficile a le terze parti malintenzionate di modificare la stringa della chiave di licenza pubblica nel file APK.
Non mi sono mai occupato di crittografia, hacking/cracking o di qualsiasi altro aspetto della sicurezza del software, quindi non sono sicuro di come implementare il consiglio di Google. La mia domanda è: come fa uno adeguatamente proteggere una stringa in un APK Android realizzato con Mono per Android senza dover essere un esperto di sicurezza?
Grazie per la risposta. Mi piacerebbe comunque conoscere un buon metodo standard di settore per risolvere questo problema, dal momento che il tasto Google Play non è l'unica stringa chiave della mia app (ad esempio anche la chiave dell'app Facebook e forse altre in futuro). – Ramsay
Utilizzare uno strumento di offuscamento commerciale. Questi strumenti controllano il codice e rendono più difficile la decompilazione. Di solito quelli commerciali includono una funzione di crittografia automatica delle stringhe che assicura che tutte le stringhe codificate (come le chiavi) non siano mai mantenute in chiaro nella tua app e vengano decodificate in runtime. Sono disponibili molti offuscamenti per C#/android.Sono molto facili da integrare nel processo di compilazione e fanno tutto il lavoro più impegnativo per proteggere il tuo codice. – talkol
Ecco un elenco di alcune delle tecniche utilizzate dagli offuscatori commerciali per infastidire i potenziali hacker: http://www.ssware.com/cryptoobfuscator/features.htm. Ricorda sempre che un determinato hacker sarà ancora in grado di superare tutto questo .. ma sarà molto meno divertente per lui;) – talkol