¿Cómo protege las cadenas en el código de los usuarios que las descompilan y las ven [duplicadas]?

1

Por ejemplo, tenemos una aplicación como una aplicación basada en el cliente que se conecta a una API mediante una clave api. Estamos diciendo que para este propósito no hay OAuth. ¿Cómo se ocultaría una cadena o en este ejemplo una clave api del cliente? Para ser utilizado, debe estar en el código que está en el lado del cliente. ¿Cómo mantenemos la cuerda segura? Si los usuarios descompilan el código podrían encontrar la clave.

Este es un ejemplo muy básico con soluciones como el servidor que separa la conexión, pero en general, ¿cómo protege las cadenas que deben estar presentes en el código? La desobuscación es un dolor.

    
pregunta ComputerLocus 04.03.2014 - 16:49
fuente

2 respuestas

3

En resumen: no puedes.

Mientras alguien tenga la copia local y la copia local sea capaz de recuperar esta clave, entonces alguien podría hacer ingeniería inversa y obtenerla. Si alguien hubiera intentado ocultar u ofuscar su código, simplemente pasaría por el programa en tiempo real o con IDA Pro. Si en algún momento almacena su clave en una variable, la capturaré en la memoria. Si confía en algún tipo de algoritmo, aplicaré ingeniería inversa a una versión funcional al ver cómo lo hace.

Déjame darte un ejemplo. Existe una clave RSA en la consola Xbox 360 para proteger el contenido creado en la consola, como guardar juegos. Tanto las claves privadas como las públicas se almacenaron en el kernel y la RAM se cifró completamente. Tomó mucho tiempo, pero alguien finalmente pudo hacer una ingeniería inversa del kerner lo suficiente como para conocer toda la estructura de archivos, cómo se crearon los bloques de SHA y para obtener las claves públicas y privadas de RSA. Tomó mucho más tiempo ya que el sistema era seguro, pero aún así pudieron obtenerlo. Desde la propia consola de Microsoft.

La única forma verdadera de ocultar algo es hacer el trabajo en algo en lo que confías, también conocido como el servidor.

    
respondido por el Thebluefish 04.03.2014 - 18:20
fuente
-1

si su aplicación está basada en la web, entonces puede usar una llamada ajax para evitar que su Clave de API se muestre en la url; de lo contrario, si es una aplicación de desktopp, puede almacenar su CLAVE de API en un archivo o una base de datos, luego recuperar cuando necesitas hacer una llamada a tu API

    
respondido por el aboujanane 04.03.2014 - 18:10
fuente

Lea otras preguntas en las etiquetas