Alerta de seguridad: la aplicación contiene claves privadas incrustadas o archivos de almacén de claves

Recientemente recibí un correo de Google:

Esta es una notificación de que su aplicación (s) com.myapp, contiene una o más claves privadas o archivos de almacén de claves incrustados en su apk publicado como se muestra al final de este correo electrónico. Estos elementos incrustados pueden ser accedidos por terceros, lo que puede plantear una variedad de problemas de seguridad diferentes dependiendo de lo que se utiliza la clave. Por ejemplo, si la clave privada es la clave de firma para su aplicación, un tercero puede firmar y distribuir aplicaciones que reemplazan sus aplicaciones auténticas o las corrompen. Tal parte también podría firmar y distribuir aplicaciones bajo su identidad.

Como práctica de seguridad general, le recomendamos encarecidamente que no incluya claves privadas ni archivos de almacén de claves en las aplicaciones, incluso si las claves están protegidas con contraseña o ocultadas. La manera más efectiva de proteger sus archivos de clave privada y de almacén de claves es no hacerlos circular.

Elimine sus claves privadas y archivos de almacén de claves de su aplicación lo antes posible. Cada aplicación es diferente, pero si no está seguro de cómo localizar las claves y los archivos de la almacén de claves en su aplicación, puede intentar buscar archivos con la extensión de archivo "keystore" y "PRIVATE KEY". Para obtener más información sobre cómo mantener segura su clave, consulte https://developer.android.com/tools/publishing/app-signing.html .

Usted tiene la responsabilidad como desarrollador de asegurar su llave privada apropiadamente, en todo momento. Tenga en cuenta que, aunque no está claro si estos problemas específicos afectan a su aplicación, las aplicaciones con vulnerabilidades que exponen a los usuarios a riesgos de compromiso pueden considerarse "productos peligrosos" y estar sujetas a eliminación de Google Play.

Para comprobar si las versiones posteriores de tus aplicaciones contienen claves privadas, consulta la sección de alertas de la Consola del programador de Google Play en https://play.google.com/apps/publish/#AlertsPlace .

Aplicaciones afectadas y muestras de elementos incrustados: repack / org / bouncycastle / openssl / test / data / dsa / openssl_dsa_aes128_cbc.pem repack / org / bouncycastle / openssl / test / data / dsa / openssl_dsa_aes128_cfb.pem repack / org / bouncycastle / openssl / Prueba / datos / dsa / openssl_dsa_aes128_ecb.pem reempaque / org / bouncycastle / openssl / prueba / datos / dsa / openssl_dsa_aes128_ofb.pem repack / org / bouncycastle / openssl / test / data / dsa / openssl_dsa_aes192_cbc.pem

Estoy usando una biblioteca (archivo jar) que contiene los archivos .pem anteriores. Estos archivos tienen la palabra clave 'PRIVATE KEY'. No estoy revelando mi llave privada o keystore dondequiera en el paquete de APK. ¿Qué puedo hacer para solucionar este problema? ¿Qué cambio hago en el archivo JAR o en el APK de mi aplicación? Por favor ayuda.

Tengo un mensaje muy similar de Google hoy en relación con esto. Tras la investigación encontré los mismos archivos que usted ha enumerado en uno de mis frascos. He resuelto este problema eliminando toda la carpeta openssl del jar con el siguiente comando de consola.

zip --delete AFFECTEDJAR.jar "repack/org/bouncycastle/openssl/*" 

Yo sugeriría que no hay java clasificar en esa carpeta antes de ejecutar esto. En mi caso no había nada más que datos de prueba de todos modos.

Espero que esto ayude.

Es muy probable que no necesite estos archivos en la aplicación. Sólo tienes que eliminarlos del proceso de exportación cuando liberes la aplicación. Estoy asumiendo que estos están dentro del proyecto directamente para la facilidad de pasar alrededor de la aplicación y mantenerlos cerca del proyecto.

Si este es el caso, basta con mover los almacenes de claves fuera del paquete y hacer referencia a ellos desde un separado directamente cuando sea necesario para que no se empaquetan en.

  • API de Google Play Services 9.2.0 Selective Compile Awareness
  • Android Studio 1.5 - Cómo mostrar javadoc para los servicios de Google Play en AS
  • El marcador del mapa de Google se reemplaza por el rectángulo delimitador en el zoom
  • GamesClient no se conecta. Error: "Llamar a connect () y esperar a que onConnected () sea llamado."
  • Los servicios de Google Play están desactualizados. Requiere 3025100 pero encontrado 2012110
  • Servicios de juegos de Google Play en un juego de escritorio
  • AccountPicker.newChooseAccountIntent, el cuadro de diálogo se cierra cuando la cuenta seleccionada
  • google-play-services_lib no utilizadoStub no compliling
  • Cómo obtener la versión más reciente de la aplicación de Google PlayStore en caso de que se haya cargado el archivo mutiple apk
  • Use .GetMapAsync en lugar de otro método .getMap con Google Play Services (Xamarin)
  • No se pudo cargar el anuncio de Admob Native con el código de error 0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.