Come CERT.rsa è correlato con le firme PackageInfo

3

Sono un principiante in sicurezza e crittografia, ma sto sviluppando applicazioni Android e ora voglio approfondire ulteriormente i meccanismi di sicurezza di Android. Sto cercando di capire come CERT.rsa (come conosco questa chiave pubblica dalla coppia di chiavi) e la firma restituita dal gestore di pacchetti siano interconnessi.

PackageInfo packageInfo = appContext.getPackageManager().getPackageInfo(appContext.getPackageName(), PackageManager.GET_SIGNATURES);
            Signature[] signatures = packageInfo.signatures;
            Log.d(TAG,"Signature" + signatures[0].toString());

In caso di recupero della firma con il gestore pacchetti ottengo array di byte con lunghezza > 700. In caso di chiave di debug autofirmata ottengo qualcosa di simile

bytes[48, -126, 3, 13, 48, -126, 1, -11, -96, 3, 2, 1, 2, 2, 4, 102, -106, 43, -72, 48, 13, 6, 9, ........... 

Ho provato ad estrarre e visualizzare le informazioni sul file CERT.rsa della chiave pubblica dalla cartella META-INF.
Ho usato il seguente comando per ottenerlo.

openssl pkcs7 -in CERT
.RSA -print_certs -inform DER -out foo.cer   

il mio file foo.cert contiene le seguenti informazioni

subject=/C=US/O=Android/CN=Android Debug
issuer=/C=US/O=Android/CN=Android Debug
-----BEGIN CERTIFICATE-----
MIIDDTCCAfWgAwIBAgIEZpYruDANBgkqhkiG9w0BAQsFADA3MQswCQYDVQQGEwJV
UzEQMA4GA1UEChMHQW5.......

O in esadecimale 30 82 01 0A 02 82 01 01 00 8A 24 24 1A F1 0B 5D 85 56 FE 35 17 50 90 5E F9 BF BA 2D 36 83 3C 0A 9A 56 4B 91 71 3A 48 E3 CB CE 25 73 76 C4 7F 1C 8B A7 5C F0 C3 52 6D E0 35 5A CC 10 C3 54 E5 DE 57 80 BF 6E

La mia domanda principale è: dove il PackageManager ottiene queste informazioni sulla firma?

    
posta eeaghuat 30.06.2015 - 12:11
fonte

1 risposta

2

È l'ultimo blocco di Hex dal seguente comando:

openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text
    
risposta data 08.04.2016 - 11:00
fonte

Leggi altre domande sui tag