¿El uso de openssl podría ser un punto débil en una aplicación de Android?

2

Estoy revisando una aplicación de Android (consiste en Java y C source).

Hay complicados pasos de ofuscación en el proceso de compilación (para la protección de contenido).
Pero utiliza una biblioteca openssl estáticamente vinculada para el cifrado / descifrado AES.

No soy un hacker binario, pero me parece irónico.
¿Por qué usar (casi) una biblioteca binaria pública de código abierto cuando se requiere ofuscación?

¿Puede la biblioteca openssl vinculada llevar a compromisos?

¿Es racional si sugiero lo siguiente?
1) deshacerse de los módulos binarios openssl
2) encontrar otra implementación AES de código abierto
3) construir la fuente AES con ofuscación

    
pregunta 9dan 14.01.2014 - 09:13
fuente

1 respuesta

1

La ofuscación es "obligatoria" cuando se aplica cualquiera de las tres situaciones siguientes:

  1. La aplicación hace algo que es inherentemente débil, como incrustar un valor secreto en el código fuente.
  2. El diseñador de la aplicación quiere "sentirse seguro" y es lo suficientemente incompetente en la criptografía para que la ofuscación proporcione ese sentimiento (la ignorancia es una bendición).
  3. El proveedor de la aplicación quiere proteger su "propiedad intelectual". La ofuscación del código no impedirá en última instancia que las copiadoras comprendan cómo funciona el código, pero puede demorar sus esfuerzos de ingeniería inversa unos días (no mucho más que eso); lo que es más importante, la ofuscación es una forma de que sea obvio que los contenidos del código no sean para inspección externa, lo que ayuda a obtener la calificación legal de ingeniería inversa prohibida en algunas jurisdicciones.

Eliminar y / u ofuscar OpenSSL no ayudará realmente si la aplicación incluye secretos o trata de hacer "protección de contenido"; El esfuerzo es desesperado de todos modos (ese es el caso 1). En cuanto al caso 3, no hay propiedad intelectual para proteger en AES porque AES ya es pública y, para empezar, no es propiedad del vendedor. Sin embargo, ofuscar OpenSSL (o eliminarlo y reemplazarlo con una implementación casera, o cualquier otro encantamiento ritualista) puede contribuir en gran medida a ayudar al diseñador a dormir por la noche; si eso es lo que se necesita para hacerlo feliz ...

La idea subyacente es que, a pesar de lo que algunas personas creen firmemente o afirman, la ofuscación no funciona. Bueno, no rompe el código, el software aún funciona después de la ofuscación; pero no aumenta la seguridad técnica contra la ingeniería inversa, y no mejora la protección del contenido. El único punto que puede hacer de la ofuscación una decisión racional es calificación legal ; y ese no se aplica a OpenSSL, que ya es de código abierto.

    
respondido por el Thomas Pornin 14.01.2014 - 15:30
fuente

Lea otras preguntas en las etiquetas