Supongamos que tengo un servicio web RESTful y una aplicación comercial de Android en la parte delantera que se utiliza para interactuar con él. Puedo usar SSL para que los puntos finales no sean visibles, pero alguien podría hacer ingeniería inversa para encontrarlos.
SSL no oculta la dirección IP de destino, por lo que ni siquiera necesitan realizar ingeniería inversa. Todo lo demás se puede obtener a través del certificado Fiddler + MITM.
También podría usar SOAP en su lugar, por lo que la llamada al servicio web es un poco más complicada. Pero, todavía no sé si esto me da una ventaja real sobre el servicio basado en RESTful.
Bueno, cuanto más esfuerzo hagas, más esfuerzo tendrá que poner un hacker, supongo.
Dicho esto, los hackers tienen mucho más tiempo libre que tú, y hay muchos de ellos, y solo uno de ellos tiene que publicar la solución en un tablón de anuncios y se acabó el juego.
Por lo tanto, probablemente no valga la pena el esfuerzo.
Estaba pensando en codificar la clave en mi aplicación cliente, de modo que solo mi aplicación cliente podría usar el servicio. Además, tal vez algún ofuscación de código puede ayudar. Pero, ¿cuánto ayuda esto realmente?
Los piratas informáticos ahora tienen herramientas de desobstrucción a su alcance, por lo que no ayuda tanto como antes.
Probablemente no valga la pena el esfuerzo.
Fiddler podría usarse para descifrar https y ver la solicitud completa. Sin embargo, si solo uso la aplicación de Android, esto se puede resolver con un certificado de servidor de codificación en la aplicación de cliente de Android. Y también, hay SOAP WS-Security, pero supongo que se puede hacer que una herramienta funcione de manera similar a como lo hace Fidler para evitarlo.
El pirata informático podría realizar ingeniería inversa mucho más rápido de lo que tú podrías construirlo.
Por lo tanto, probablemente no valga la pena el esfuerzo.
No puede detener a un pirata informático de ingeniería inversa ningún código que se ejecute en el cliente. Así que, independientemente de las medidas de seguridad que pongas, el pirata informático puede imitarlas.
Exactamente. No gastes tiempo en esto.
En su lugar, intente diseñar su aplicación para que se ejecuten funciones confidenciales en el servidor, donde puede protegerla.
Pase el resto de su tiempo mejorando las características de su aplicación para que los clientes no quieran nada más.