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.

  • Implementación de servicios de Google Play en android
  • No se pudo encontrar la clase com.google.android.gms.analytics.GoogleAnalytics
  • Servicios de Google Play en el emulador, implementación del botón de inicio de sesión de Google Plus, etc.
  • Cómo probar Google App Invites
  • No se puede resolver el símbolo 'LocationClient' en Android Studio
  • Android: PublisherInterstitialAd y DoubleClick for Publishers de Google Play Services
  • Token de acceso recuperado: null. Com.google.android.gms.auth.GoogleAuthException: Desconocido
  • Las insignias de funciones de Google Play Games no están visibles en Google Play
  • Obtener referrer después de instalar la aplicación de Android Market
  • ¿Cómo puedo verificar la disponibilidad de API de Google Play Services? (Específicamente la API GCM)
  • Android Wear Error ConnectionResult {statusCode = SERVICE_VERSION_UPDATE_REQUIRED, resolution = null}
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.