¿Cómo puedo asegurar mi api para evitar copiar?

2

Estoy creando una aplicación que debería recibir datos de mi servidor. El Api debe ser un script basado en PHP que proporcione los datos como JSON.
Sin embargo, quiero mantener la privacidad de los datos y solo debería ser accesible por la propia aplicación.
¿Cómo puedo evitar que otros usuarios vuelvan a diseñar mi aplicación y encuentren la manera de acceder a la API?
Pensé en usar una clave API para el acceso principal y SSL para evitar que los datos se lean mientras realizo un ataque en el medio, pero ¿cómo puedo ocultar la solicitud GET en sí o si debo usar algún tipo de PGP y cifrar los datos? en sí?

    
pregunta Kimmax 24.08.2014 - 16:46
fuente

2 respuestas

3

Lo primero que debe hacer es asegurarse de que todas las comunicaciones entre su aplicación y el servidor utilicen HTTPS en lugar de HTTP. Esto debería protegerlo de la inspección de paquetes ocasionales. Para hacer que esta configuración sea más segura, también puede considerar el uso de fijación de certificados para evitar ataques de intermediarios involucrando un certificado falsificado para su sitio.

Si está utilizando SSL, el contenido de la solicitud GET se se cifrará (aunque el hecho de que esté haciendo una conexión a su servidor será evidente). Su problema real es que si distribuye la aplicación al público en general, puede ser ingeniería inversa y se puede extraer cualquier clave API que use. Puede ofuscar el binario, pero esto no puede eliminar totalmente la posibilidad de ingeniería inversa.

Dependiendo de su aplicación y de la naturaleza de sus datos, es posible que desee preocuparse más por autenticar a los usuarios de su aplicación, en lugar de a la propia aplicación.

    
respondido por el lzam 24.08.2014 - 17:17
fuente
2

La clave para la seguridad es entender los vectores de ataque. ¿Quién está tratando de acceder a sus datos?

Es un teorema fundamental de que no se puede anular la información. Si un cliente ha recibido datos de su servidor, no se puede deshacer. La criptografía solo se asegura de que el cliente correcto reciba información.

En particular, "la aplicación en sí" no es algo que usted controle completamente. El cliente es una computadora en algún lugar de Internet. El propietario de la computadora puede estudiar la aplicación que se ejecuta en esa computadora. Los datos enviados a la aplicación residen en la memoria y se pueden estudiar después del descifrado. El cifrado solo protege los datos contra escuchas ilegales / hombres en el medio.

    
respondido por el MSalters 25.08.2014 - 09:12
fuente

Lea otras preguntas en las etiquetas