web-dev-qa-db-fra.com

Que contient le fichier "./META-INF/CERT.RSA" pour une application Android?

Je suis nouveau dans le certificat de cryptographie et j'essaie de comprendre les composants du fichier "CERT.RSA" sous le dossier "./META-INF" pour une application Android.

À mon sens, "CERT.RSA" est utilisé pour vérifier la signature du fichier "CERT.SF" dans le même répertoire. Il doit contenir les méta-informations du certificat (sujet, émetteur, numéro de série, etc.), la signature de "CERT.SF" signée par la clé privée du développeur et la clé publique utilisée pour vérifier la signature. 

Comment puis-je dériver les composants ci-dessus du fichier "CERT.RSA"? Surtout, comment puis-je récupérer la clé publique du "CERT.RSA"? 

J'ai essayé d'utiliser les commandes suivantes pour révéler le certificat de signature. Lorsque les gens parlent de signature de certificat, s'agit-il (la sortie suivante) de clés publiques ou de signature signée?

>> openssl pkcs7 -inform DER -print_certs -out cert.pem -in CERT.RSA
>> cat cert.pem

subject=/C=SE/ST=Kista/L=Kista/O=Javsym/OU=Mobile Visuals/CN=Eyvind Almqvist
issuer=/C=SE/ST=Kista/L=Kista/O=Javsym/OU=Mobile Visuals/CN=Eyvind Almqvist
-----BEGIN CERTIFICATE-----
MIICWzCCAcSgAwIBAgIETVPFgjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJT
RTEOMAwGA1UECBMFS2lzdGExDjAMBgNVBAcTBUtpc3RhMQ8wDQYDVQQKEwZKYXZz
eW0xFzAVBgNVBAsTDk1vYmlsZSBWaXN1YWxzMRgwFgYDVQQDEw9FeXZpbmQgQWxt
cXZpc3QwIBcNMTEwMjEwMTEwMTIyWhgPMjA2MTAxMjgxMTAxMjJaMHExCzAJBgNV
BAYTAlNFMQ4wDAYDVQQIEwVLaXN0YTEOMAwGA1UEBxMFS2lzdGExDzANBgNVBAoT
BkphdnN5bTEXMBUGA1UECxMOTW9iaWxlIFZpc3VhbHMxGDAWBgNVBAMTD0V5dmlu
ZCBBbG1xdmlzdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAjwLlwflQ2zoC
1EeCkICSqYTSkdv6Xj0YCqoQsuLJw0pwDbz5qRos61Ub0ZxWCa4TfXu1NJmuD4j+
LwQYvAR6JO985y4zjH1Ee5qZmHDC5yoSRko6P8B4KfmBm8E8CryhUjN7vNLUfG2o
XrmXK+g5KKTx3wzWlb4+AdAS7/NlDVkCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAS
CxdfvR/LHPlULkCsoGw9/Q2ZhsTlPr7fZw32sef9vnz1hqd6iMDsLC2c34yRVJfb
t6dZCVO9/gWMURIZ7NmT36uBFAUB+XkGK+5/ot3YEJicEwmk/Nvj1Tzo3PjBX3ZD
lLBpEPgc3IUOhgMyzDR+ytgFlH0MkDps6FApunUpiQ==
-----END CERTIFICATE-----

En utilisant la commande suivante, je pourrais obtenir les informations méta de ce certificat:

>> keytool -printcert -file CERT.RSA

Owner: CN=Eyvind Almqvist, OU=Mobile Visuals, O=Javsym, L=Kista, ST=Kista, C=SE
Issuer: CN=Eyvind Almqvist, OU=Mobile Visuals, O=Javsym, L=Kista, ST=Kista, C=SE
Serial number: 4d53c582
Valid from: Thu Feb 10 06:01:22 EST 2011 until: Fri Jan 28 06:01:22 EST 2061
Certificate fingerprints:
     MD5:  58:94:63:63:C1:ED:4C:02:CE:90:CE:64:DA:D7:4A:E4
     SHA1: 17:5C:44:E3:A6:1A:F2:4F:A5:78:6E:C7:F0:42:4C:AD:E6:F5:CA:DF
     Signature algorithm name: SHA1withRSA Version: 3

Existe-t-il d'autres outils/commandes que je peux utiliser pour obtenir des informations plus complètes de "CERT.RSA"?

Merci beaucoup pour toutes les entrées!

22
user3361508

une fois que vous avez le fichier cert.pem, vous pouvez obtenir la clé publique en utilisant la commande suivante:

openssl x509 -in cert.pem -noout -text

Cordialement,

Giuseppe

7
g.anzalone

Si vous souhaitez uniquement extraire la partie de la clé publique du fichier CERT.RSA, vous pouvez essayer la méthode suivante:

  1. convertir CERT.RSA en fichier pem standard:

openssl pkcs7 -in CERT.RSA -inform DER -print_certs -out cert.pem

  1. obtenir la clé publique du fichier pem:

openssl x509 -in cert.pem -pubkey -noout

12
Ted
  1. convertir CERT.RSA en fichier pem standard:

openssl pkcs7 -in CERT.RSA -inform DER -print_certs -out cert.pem

  1. obtenir la clé publique du fichier pem:

openssl x509 -in cert.pem -pubkey -noout

  1. enregistrer la clé publique dans le fichier cert_pub.pem et info signé sign_info

openssl x509 -noout -text -in cert.pem

  1. vérifier le hash

openssl rsautl -verify -inkey cert_pub.pem -pubin -in sign_info -hexdump -raw

openssl dgst -sha256 CERT.RSA

mais, oh non, ça ne correspond pas !!!

1
hanzhen

cela devrait résoudre votre problème 

 openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs 
0
zerocool