Pregunta

Estoy usando la API de Dropbox. En la aplicación de ejemplo, incluye estas líneas:

// Replace this with your consumer key and secret assigned by Dropbox.
// Note that this is a really insecure way to do this, and you shouldn't
// ship code which contains your key & secret in such an obvious way.
// Obfuscation is good.
final static private String CONSUMER_KEY = "PUT_YOUR_CONSUMER_KEY_HERE";
final static private String CONSUMER_SECRET = "PUT_YOUR_CONSUMER_SECRET_HERE";

Soy muy consciente del mantra 'El secreto no es de seguridad', y la ofuscación realmente aumenta sólo ligeramente la cantidad de esfuerzo necesario para extraer las claves. No estoy de acuerdo con su declaración de Obfustication es bueno '. ¿Qué debo hacer para proteger las claves entonces? Obfustication es buena lo suficientemente , o debería tener en cuenta algo más elaborado?

¿Fue útil?

Solución

Usted no puede evitarlo. Si el usuario (atacante) tiene los datos protegidos y el código que hace la desprotección, el usuario puede eventualmente tener acceso a los datos. Es tan simple como eso. Un depurador y un punto de ruptura en el momento justo es todo lo que necesitan. Eso, y mucho tiempo libre y determinación.

Si o no el secreto es lo suficientemente bueno para sus propósitos depende de sus características específicas de negocio. Pero en general, en el mundo móvil, si el cliente está preocupado por que sus datos sean robados, implementan el robo de alto nivel y los controles de pérdida. Cosas como el borrado remoto, bloqueo de pantalla obligatoria, etc no creo que es responsabilidad del programador de aplicaciones para duplicar todas esas cosas.

Otros consejos

La seguridad nunca puede ser perfecta, por lo que depende de usted para decidir la cantidad de trabajo que quiere hacer. Se puede romper el secreto de consumidor en varias cadenas de un cambio simple que ofrece una cantidad mínima de seguridad adicional o se puede crear un algoritmo para representar el secreto de otro modo (nada de insertar caracteres que no se utilizan cada X espacios en la cadena de a la modificación de cada personaje, tal vez basado en la representación numérica).

Hay que tener en cuenta el beneficio versus trabajo. Si se trata de una aplicación que usted y algunos amigos se va a utilizar, entonces probablemente no importa mucho. Si esto va a ser una aplicación utilizada por 10 millones de personas, la seguridad es, obviamente, más de una preocupación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top