Stack Overflow en español Asked by Adalher2478 on February 20, 2021
Estoy tratando de encontrar vulnerabilidades en un sistema que instala aplicaciones en un dispositivo Android patentado. Ese sistema usa java.security.Signature.
Básicamente, para instalar una aplicación, se requieren dos archivos:
Aquí hay una descripción general del método en cuestión:
Obtiene la clave pública.
Obtiene la suma de comprobación del archivo de paquete cifrado.
Crea una instancia de Firma e inicializa la verificación.
Verifica que los bytes del archivo sig coincidan con la suma de verificación del archivo de paquete cifrado.
private boolean verificarFirma(String ArchivoDePaqueteCifrado, String ArchivoDeFirma) {
try {
PublicKey llavePublica = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(new PemReader(new InputStreamReader(this.mContext.getResources().openRawResource(R.raw.public_key))).readPemObject().getContent()));
byte[] sha512sum = FileHelper.getFileChecksumAsBytes(ArchivoDePaqueteCifrado, McElieceCCA2KeyGenParameterSpec.SHA512);
Signature firma = Signature.getInstance("SHA512withRSA/PSS");
firma.initVerify(llavePublica);
firma.update(sha512sum);
boolean resultado = firma.verify(FileHelper.readAllBytes(ArchivoDeFirma));
return resultado;
} catch (Exception e) {
return false;
}
}
¿Hay alguna manera de explotar este método si se tiene la clave pública?
Gracias
Nemo
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP