2014-10-07 8 views
6

recentemente ottenuto una mail da Google:avviso di sicurezza: App contiene le chiavi private incorporati o file di archivio chiavi

Questa è una notifica che la vostra applicazione (s) com.myapp, contiene uno o più chiavi private o chiavi file inclusi nel suo apk pubblicato come elencati alla fine di questa email. È possibile accedere a questi elementi incorporati da da parte di terzi, che possono sollevare una serie di problemi di sicurezza diversi a seconda della chiave utilizzata. Ad esempio, se la chiave privata è la chiave di firma per l'applicazione, una terza parte potrebbe firmare e distribuire app che sostituiscono le app autentiche o corrompe. Tale parte potrebbe anche firmare e distribuire app sotto la tua identità.

Come prassi generale di sicurezza, si consiglia vivamente di embedding chiavi private e file keystore di applicazioni, anche se le chiavi sono protetti da password o offuscato. Il modo più efficace per proteggere la chiave privata e i file keystore non è farli circolare.

Rimuovere le chiavi private ei file del keystore dall'app allo non appena possibile. Ogni app è diversa, ma se non sei sicuro di come individuare le chiavi e i file di keystore nella tua app, puoi provare a cercare i file con estensione "keystore" e grepping per "PRIVATE KEY". Per ulteriori informazioni sulla protezione della chiave, , vedere https://developer.android.com/tools/publishing/app-signing.html.

Hai una responsabilità come sviluppatore per proteggere correttamente la tua chiave privata , in qualsiasi momento. Si noti che, anche se non è chiaro se questi problemi specifici di riguardino l'applicazione, le applicazioni con vulnerabilità che espongono gli utenti al rischio di compromissione potrebbero essere considerate "prodotti pericolosi" e soggette alla rimozione da Google Play .

Per verificare se le versioni successive delle tue applicazioni contengono le chiavi private, si prega di consultare la sezione Avvisi di Google Play Console per gli sviluppatori a https://play.google.com/apps/publish/#AlertsPlace.

applicazioni interessate e campioni di oggetti incorporati: repack/org/BouncyCastle/openssl/test/dati/DSA/openssl_dsa_aes128_cbc.pem repack/org/BouncyCastle/openssl/test/dati/DSA/openssl_dsa_aes128_cfb.pem ripiegamento /org/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_ecb.pem repack/org/bouncycastle/openssl/test/dati/DSA/openssl_dsa_aes128_ofb.pem ripiegamento/org/bouncycastle/openssl/test/dati/DSA/openssl_dsa_aes192_cbc .pem

Sto usando una libreria (file jar) che contiene i file .pem sopra. Questi file hanno la parola chiave 'PRIVATE KEY'. Non sto rivelando la mia chiave privata o il keystore in nessuna parte del pacchetto APK. Cosa posso fare per risolvere questo problema? Quale modifica apporterò al file JAR o all'APK dell'app? Per favore aiuto.

risposta

4

ho ricevuto un messaggio molto simile da parte di Google di oggi per quanto riguarda questo. Dopo un'indagine ho trovato gli stessi file che hai elencato in uno dei miei barattoli. Ho risolto questo problema eliminando l'intera cartella openssl dal jar con il seguente comando della console.

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

Suggerirei di verificare che non ci siano classi Java in quella cartella prima di eseguire questo. Nel mio caso non c'erano nient'altro che dati di test.

Spero che questo aiuti.

+0

ho fatto lo stesso. Aveva file .class in esso. Quindi ha lasciato quei file e ha cancellato il resto. Speriamo che Google lo accetti. – varun

+0

hanno accettato la modifica? Sto affrontando lo stesso problema –

+0

@ ghostrider3 Sì, dopo aver rilasciato un aggiornamento senza quei file l'avviso si è ignorato da solo – drspaceboo

0

È molto probabile che non siano necessari questi file nell'applicazione. Basta rimuoverli dal processo di esportazione quando si rilascia l'applicazione. Presumo che questi siano all'interno del progetto direttamente per facilitare il passaggio dell'applicazione e mantenerli vicino al progetto.

Se questo è il caso, basta spostare gli archivi di chiavi di fuori del pacchetto e riferimento da una parte direttamente quando necessario in modo che non sono confezionati in.