¿Cómo puedo verificar un Google oficial apk
Con todo el enraizamiento y mods personalizados por ahí para Android, me pone nervioso que algunos de los apks que afirman que son de google son en realidad maliciosos.
Así que al tratar de verificar que he extraído una ANDROID.RSA clave pública y he estado tratando de verificar en línea .. pero cada búsqueda de google resulta métodos de hacer cifrado de clave pública en android y no la forma de verificar reales google apks
- RSA y AES Descifrar y cifrar el problema
- Implementación de Android KeyStore para <4.3
- El cifrado con modo ECB no debe usarse
- Encriptación de cadena RSA en Android
- Práctica recomendada para descifrar archivos grandes con menos memoria
Así que mi pregunta básica es:
¿Cómo puedo verificar que un apk de Google es en realidad un apk de Google?
La clave pública RSA que encontré:
Owner: CN=Google NFC, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US Issuer: CN=Google NFC, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US Serial number: a8cd17c93da5d990 Valid from: Wed Mar 23 21:06:53 EDT 2011 until: Sun Aug 08 21:06:53 EDT 2038 Certificate fingerprints: MD5: C9:E9:71:21:25:5D:E0:15:6F:3F:5B:24:B1:A8:47:6A SHA1: 82:75:9E:2D:B4:3F:9C:CB:AF:CE:31:3B:C6:74:F3:57:48:FA:BD:7A Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1C CE CE 0E EA 4D C1 12 1F C7 51 5F 0D 0A 0C 72 .....M....Q_...r 0010: E0 8C C9 6D ...m ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1C CE CE 0E EA 4D C1 12 1F C7 51 5F 0D 0A 0C 72 .....M....Q_...r 0010: E0 8C C9 6D ...m ] [CN=Google NFC, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US] SerialNumber: [ a8cd17c9 3da5d990] ]
- Cadena de signos con PEM PrivateKey
- Determinar el certificado de firma de un APK
- ¿Cómo utilizo una clave pública RSA generada en C # en Android?
- Generación de claves RSA en Android en formato PKCS # 1 en Android
- Obteniendo 1 byte extra en el módulo RSA Key ya veces para exponentes también
- Encriptación RSA en Android
- Android RSA Generación de pares de claves - ¿Debo usar Java estándar / Bouncy Castle / Spongy Castle / JSch / Other?
- ¿Cómo crear una llave RSA keystore Android con una validez infinita?
Puse esta solución junto mientras que intentaba validar una transferencia directa del APK de Google Wallet para mi Nexus de Verizon Galaxy.
Para verificar una firma de aplicaciones necesita un origen de confianza que tenga alguna versión del apk. Android obliga a las actualizaciones de aplicaciones con el mismo nombre de paquete que firman el mismo certificado, por lo que Google Wallet no puede cambiar su certificado sin crear un nuevo nombre de paquete y exigir que cada usuario vuelva a instalar la aplicación.
-
Descargar una imagen de fábrica que contiene Google Wallet desde una fuente de confianza
-
Descargar extractor de imágenes del sistema
-
Extraer la imagen de fábrica
tar xzvf takju-jro03c-factory-bf087655.tgz mv takju-jro03c/image-takju-jro03c.zip .
-
Extraer la imagen incrustada (archivo zip)
unzip image-takju-jro03c.zip
-
Extraer el extractor de imágenes del sistema (el archivo que descargamos en la parte 2)
tar xzvf ext4_utils.tar.gz chmod +x simg2img
-
Extraer una imagen montable ext4 de la imagen del sistema
./simg2img system.img system.image.ext4
-
mkdir sys
-
Monte la imagen ext4 extraída con la nueva carpeta sys / como el punto de montaje
sudo mount -t ext4 -o loop system.image.ext4 sys/
-
Ver el certificado Wallet.apk
unzip -p sys/app/Wallet.apk META-INF/CERT.RSA | keytool -printcert
-
Compare las huellas dactilares y el número de serie (las copié en cadenas de python y las comparé de esa manera). Encontrar un ataque SHA-1 previo a la imagen requiere aproximadamente 2 ^ 160 conjeturas, por lo que si las huellas dactilares coinciden con las posibilidades de que el APK descargado sea malo son delgados.
También puedes cargar la imagen de fábrica extraída de Wallet.apk en tu teléfono, adb install sys/app/Wallet.apk
, luego descargar el nuevo apk en tu teléfono y lanzarlo desde un administrador de archivos para realizar una actualización. Android realizará la validación del certificado para usted.
- Cambiar la visibilidad de MenuItem cuando se hace clic
- ¿El proveedor de Sun PKCS # 11 es compatible con Android?