TP OpenSSL
TP OpenSSL
TP OpenSSL
OpenSSL est une boîte à outils cryptographique qui implémente les protocoles réseau Secure
Sockets Layer (SSL v2/v3, Couche de sockets sécurisés) et Transport Layer Security (TLS v1,
sécurité pour la couche de transport) ainsi que les standards cryptographiques liés dont ils
ont besoin.
Le programme openssl est un outil en ligne de commande qui permet d’utiliser les
différentes fonctions cryptographiques de la bibliothèque crypto d’OpenSSL à partir du shell.
Il peut être utilisé pour
Pour effectuer certaines opérations de cryptographie (création d'une clef privée, génération
d'un CSR, conversion d'un certificat...) sur un poste windows nous pouvons utiliser l'outil
OpenSSL.
L'installation standard d'OpenSSL sur un poste Windows est effectuée sur "C:\OpenSSL-
Win32" et l'exécutable est situé dans le sous répertoire "bin". Ainsi pour exécuter le
programme dans "l'invite de commandes" Windows il vous faudra donner le chemin complet :
>C:\OpenSSL-Win32\bin\openssl ...
set OPENSSL_CONF=c:\OpenSSL-Win32\bin\openssl.cnf
• PEM, Privacy Enhanced Mail (courrier personnel amélioré): c'est un format ASCII,
codé en Base64, le fichier est délimité par <BEGIN CERTIFICAT >…. <END
CERTIFICAT>
• PKSC#12: est le standard utilisé pour les certificats utilisateur (ce fichier contient en
plus du certificat utilisateur, sa clé privée protégée par mot de passe)
COMMANDES STANDARDS
enc Chiffrement.
2
gendh Production de paramètres Diffie-Hellman. Rendu obsolète
par
dhparam.
gendsa Production de paramètres DSA.
3
https://www.openssl.org/docs/man1.1.1/man1/
Cette autorité personnelle devra être diffusée auprès des futurs utilisateurs des certificats pour
éviter les messages d'alerte concernant une autorité de certification inconnue lors de
l'utilisation des certificats générés.
openssl req -new -x509 -days 365 -key CA_pvk.pem -out CA_crt.pem
req -new -newkey rsa:2048 -nodes -out www.monsite.fr.csr -keyout www.monsite.fr.key -subj
"/C=FR/ST=Calvados/L=CAEN/O=Mon organisation/CN=www.mon-site.fr"
• CA_pvk.pem est le fichier contenant la clef privée, il sera nécessaire à la signature des
4
certificats des clients.
•
CA_crt.pem est le fichier contenant le certificat, il doit être fournit aux clients avec
leurs certificats.
Ces deux fichiers doivent être renseignés dans les variables certificate et private_key du
fichier de configuration openssl.cnf.
Il s'agit d'une simple conversion d'un format ascii Base64 en son équivalent binaire
5
Enter pass phrase for client_pvk.pem:
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
-----
OpenSSL>
Contenu de CSR
Si vous souhaitez contrôler les données que vous avez entrées dans votre CSR, cela ce fait
avec la commande suivante:
Certificate Request:
Data:
Version: 1 (0x0)
com, CN = www.Berbiche.com
Modulus:
00:b5:19:bb:aa:f1:d5:d9:3f:ec:d7:f7:92:85:8f:
78:b7:12:5a:64:14:1a:3e:a1:b6:e5:f7:6f:e4:7b:
7
15:2f:b3:f5:12:1d:1f:e1:f0:b5:32:88:0b:81:15:
8d:d6:e4:4c:6b:95:98:46:d6:7d:a2:ea:52:8a:ce:
3c:10:51:e8:ac:44:69:89:a7:19:ee:ee:53:9f:77:
d3:f0:58:e1:3f:6a:10:9a:26:c1:0b:fd:08:47:0c:
6b:c6:df:3e:88:f6:73:be:8f:da:53:7b:c2:2d:d9:
c7:ea:b6:3d:01:7c:9d:5f:39:9e:a9:0c:bd:6a:7a:
7b:c5:04:25:c8:95:b8:dd:41
Attributes:
a0:00
a3:f0:65:a8:99:b7:ad:65:bd:57:bd:85:66:18:13:10:4d:6b:
45:44:f2:aa:ea:dd:f0:4f:bc:87:a2:5f:48:22:00:25:d7:9b:
59:15:ef:8c:85:2d:99:87:94:7c:56:9b:a0:ed:23:94:ba:78:
b5:46:cf:7f:66:7b:e8:49:c1:a6:7d:11:01:19:05:09:45:7e:
85:63:8c:52:5e:9d:22:72:9a:a3:ab:0f:1a:d6:52:4c:59:f0:
ff:7a:13:52:47:ad:52:0c:74:18:1f:32:02:0f:eb:64:d7:67:
27:80:d8:fd:26:b4:d3:d3:20:e4:20:10:5d:ff:76:27:4c:d0:
99:7f
Maintenant, nous agissons en temps qu'autorité de certification pour valider les informations
contenues dans la CSR
x509 -req -days 730 -in ia.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ia.crt
x509 -req -days 730 -in client_csr.pem -CA CA_crt.pem -CAkey CA_pvk.pem -
8
set_serial 01 -out client_crt.pem
Validity
Not Before: Aug 26 14:56:09 2007 GMT
Not After : Aug 25 14:56:09 2008 GMT
Subject:
countryName = FR
stateOrProvinceName = Some-State
organizationName = Internet Widgits Pty Ltd
commonName = TEST
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
26:A6:C6:16:CF:2A:5B:D5:9D:FF:2C:48:60:B6:E0:E3:A6:3B:28:88
X509v3 Authority Key Identifier:
keyid:68:0D:3F:8A:D3:D7:11:35:EA:AC:C3:28:6C:78:92:04:36:EA:A3:2F
9
3. Convertion de la clef privée au format pour IIS
openssl rsa –inform pem –outform net –in client_pvk.pem -out client_pvk.net
La transformation au format binaire de la clef privée est nécessaire pour l'insérer dans le
gestionnaire de clefs de IIS.
Il reste à supprimer l'entête du certificat client (client_crt.pem ) et à importer la clef privée et
le certificat dans le gestionnaire de clef de IIS.
openssl pkcs12 -export -in client_crt.pem -inkey client_pvk.pem -out mycert.pfx -name
"Mon certificat SSL personnel"
Il est à noter pour les utilisateurs sous Windows que le Platform SDK Redistributable:
CAPICOM contient un script (CStore.vbs) permettant d'automatiser les actions sur les
certificats stockés dans le gestionnaire de clefs de Windows.
5. Commandes utiles
10
Changer la passphrase de la clef privée
Data:
Version: 3 (0x2)
Serial Number:
4b:a5:ae:59:de:dd:1c:c7:80:7c:89:22:91:f0:e2:43
Signature Algorithm: md5WithRSAEncryption
Issuer: C=ZA, O=Thawte Consulting (Pty) Ltd., CN=Thawte SGC CA
Validity
Not Before: May 15 23:18:11 2006 GMT
Not After : May 15 23:18:11 2007 GMT
Subject: C=US, ST=California, L=Mountain View, O=Google Inc,
CN=www.google.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:e6:c5:c6:8d:cd:0b:a3:03:04:dc:ae:cc:c9:46:
be:bd:cc:9d:bc:73:34:48:fe:d3:75:64:d0:c9:c9:
76:27:72:0f:a9:96:1a:3b:81:f3:14:f6:ae:90:56:
e7:19:d2:73:68:a7:85:a4:ae:ca:24:14:30:00:ba:
e8:36:5d:81:73:3a:71:05:8f:b1:af:11:87:da:5c:
f1:3e:bf:53:51:84:6f:44:0e:b7:e8:26:d7:2f:b2:
6f:f2:f2:5d:df:a7:cf:8c:a5:e9:1e:6f:30:48:94:
21:0b:01:ad:ba:0e:71:01:0d:10:ef:bf:ee:2c:d3:
8d:fe:54:a8:fe:d3:97:8f:cb
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server
Gated Crypto
X509v3 CRL Distribution Points:
URI:http://crl.thawte.com/ThawteSGCCA.crl
11
Authority Information Access:
OCSP - URI:http://ocsp.thawte.com
CA Issuers - URI:http://www.thawte.com/repository/Thawte_SGC_CA.crt
Identité du propriétaire
serial=4BA5AE59DEDD1CC7807C892291F0E243
La période de validité
12
La valeur de hachage ?
L'empreinte MD5 ?
6. Divers
Si pour se connecter à une serveur HTTP, une connexion telnet sur le port 80 suffit, se
connecter en ligne de commande à un serveur HTTPS reste possible grâce à OpenSSL. Ci-
dessous, un exemple de GET aveugle sur https://www.google.fr :
13
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDITCCAoqgAwIBAgIQS6WuWd7dHMeAfIkikfDiQzANBgkqhkiG9w0BAQQFADBM
MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0e
Skg
THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTUyMzE4MTFa
Fw0w
NzA1MTUyMzE4MTFaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm
9ybmlh
MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgS
W5jMRcw
FQYDVQQDEw53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYk
C
gYEA5sXGjc0LowME3K7MyUa+vcydvHM0SP7TdWTQycl2J3IPqZYaO4HzFPaukFbn
GdJzaKeFpK7KJBQwALroNl2BczpxBY+xrxGH2lzxPr9TUYRvRA636CbXL7Jv8vJd
36fPjKXpHm8wSJQhCwGtug5xAQ0Q77/uLNON/lSo/tOXj8sCAwEAAaOB5zCB5DAo
BgNVHSUEITAfBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEATA2BgNV
HR8E
LzAtMCugKaAnhiVodHRwOi8vY3JsLnRoYXd0ZS5jb20vVGhhd3RlU0dDQ0EuY3Js
MHIGCCsGAQUFBwEBBGYwZDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3
Rl
LmNvbTA+BggrBgEFBQcwAoYyaHR0cDovL3d3dy50aGF3dGUuY29tL3JlcG9zaXRv
cnkvVGhhd3RlX1NHQ19DQS5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQ
F
AAOBgQBXS7ykQ+fgAZKgljX5GAiIHXtwGY/5NrIFOgXKFFlNJA7liq9Oh1r3HCqW
j8thQJ7StDhAISTBTx/LE0qPlQLfkT3WQOsRb5sQoW/OkV4w9m0TXhWkLsIYngDD
2DJnR/y4HprZmo7M/3wStwO/UiDPIfTzd90SFfCU+pDV41logQ==
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
issuer=/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
---
No client certificate CA names sent
---
SSL handshake has read 1777 bytes and written 322 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID:
14
D596685E782544409A2AAA0209CB1DC93C9136FA7BD704E9F6E2CF9034F5ED3A
Session-ID-ctx:
Master-Key:
DD3B0CDF8BCC32ECFB9AF7B97AB46CCF2D731E929B0048444D62EA45486774E74F
23FF950F3BBBE0992AFED425413FBA
Key-Arg : None
Start Time: 1169126487
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)
---
GET / HTTP/1.0
7. Signature de fichiers
15
Enter pass phrase for client_pvk.pem:
SHA1(C:\archive.zip)=
3a5bf992899216c320835e98b700a1e669c1716e9145c4e2fec91eb3ee473d3d3d1dc264
e139f6bffc76d4d00e2cac6c6687e7d53613c94f0ca866334f9d6d43bfeb23a0d1bd51af8f500d1
29146d2a83d58c
b4051f112805beb7519489abd79f75d4878f834005631f5c59b5fbbcd0ecb391c5a9f1dbdcef1f9
d2f287cd3e41
A noter que le format hex n'est pas supporté par la méthode verify, la signature devra être au
format binaire.
La clef publique étant extraite du certificat, il ne sera pas nécessaire de la fournir avec le
fichier de signature
vous obtenez un unable to load key file si vous utilisez un certificat au lieu d'une clef publique
Nous en concluons que le fichier a été signé par le propriétaire du certificat et qu'il n'a pas été
modifié depuis.
Nous devons maintenant vérifier le contenu du certificat.
16
client/OU=Service/CN=www.test.com/[email protected]
Le chiffrement par clef symétrique est aujourd'hui le seul moyen performant pour la
protection des données. [ la suite ]
Le but est ici de rendre illisible le contenu d'un fichier par un algorythme à sens unique dont
la spécificité est de permettre à tout le monde le chiffrement de ces données tout en ne
permettant le déchiffrement qu'au seul destinatataire.
S'agissant d'un chiffrement par bloc, la quantité de données chiffrables par la clef est limitée à
la taille de la clef moins la taille nécessaire à la déclaration du padding.
La taille de la clef RSA est de 1024 bits, petite vérification :
1024 bits, est-ce une taille acceptable pour le chiffrement de mes données ?
Oui car 2^1024 est un chiffre absolument gigantesque, un exemple pour en caresser l'idée.
Par an, en France, entre 10 et 30 personnes meurent foudroyées ce qui correspond à une
probabilité inverse de 2^21
La probabilité qu'une de ces mêmes personnes gagne à l'euromillion LE MEME JOUR n'est
que de 2^46
Nous sommes encore bien loin du compte car 46 est largement plus petit que 1024.
Remarquons au passage que les dernières estimations de l'âge de l'univers sont de 2^59
secondes (13.7x10^9 années)...
Maintenant que nous sommes rassurés sur la taille et donc la complexité de notre clef de
chiffrement, voyons comment l'utiliser.
Rappellons que des clefs de 1024 bits ne peuvent chiffrer qu'un bloc de données au maximum
égal à 128 (1024/8 octets) caractères moins le padding.
17
Chiffrer 128 octets de données avec un certificat 1024 bits
Le chiffrement d'un bloc de données d'exactement 128 octets avec une clef 1024 bits ne pose
pas de problème leurs tailles sont les mêmes.
openssl rsautl -certin -inkey client_crt.pem -in test.txt -encrypt -out test.enc -raw
Loading 'screen' into random state - done
Pour un bloc de données de taille inférieure à la taille de la clef, la commande à utiliser sera
openssl rsautl -certin -inkey client_crt.pem -in test.txt -encrypt -out test.enc
Sans paramètre, le padding sera PKCS#1 v1.5, les tailles de données cryptables en fonction
des padding sont les suivantes :
http://www.openssl.org/docs/crypto/RSA_public_encrypt.html
- exactement 128 octets si pas de padding (-raw)
- moins de 117 octets pour un padding PKCS #1 v1.5 ou SSL (-pkcs, -ssl)
- moins de 87 octets pour un padding PKCS#1 OAEP (-oaep)
La déchiffrement se fait uniquement avec la clef privée du certificat, le type de padding doit
être indiqué et biensûr ne peut être deviné !
Dans la pratique, les données à transférer sont cryptées avec une clef symétrique pour passer
outre la limitation des 128 octets et c'est cette clef symétrique protégée par le chiffrement
asymétrique qui est envoyée avec les données sécurisées au destinataire. Cette méthode
accélére grandement le processus de chiffrage car ce travail sur les clefs asymétriques est
environ 500 fois plus couteux que le même travail sur des clefs symétriques.
18
Voici un test de performance :
Le chiffrement avec une clef asymétrique est 49207/87 = 565 fois plus couteux en temps
processeur qu'un chiffrement symétrique AES-CBC.
Commençons par chiffrer le fichier avec une clef symétrique et protégeons cette clef avec le
ou les certificats des destinataires.
Après avoir généré les certificats de chaque destinataire, générons une clef symétrique
Le fichier pass.txt contient maintenant une chaine de caractères au format Base64 qui sera la
clef de chiffrement symétrique.
openssl rsautl -certin -inkey client1_crt.pem -in pass.txt -encrypt -out pass.client1.enc
Loading 'screen' into random state - done
Précisons qu'il n'est pas nécessaire de connaitre la clef privée pour protéger les données à
envoyer.
La clef de déchiffrement est maintenant irrémédiablement cryptée avec la clef publique du
certificat du destinataire (client1_crt.pem).
Procédure de déchiffrement
Format S/MIME
OpenSSL/SMIME
L'email est un moyen de communication courant mais qui a le défaut dans sa version
classique de ne pas identifier les différents acteurs de cet échange.
La sécurisation du message comporte deux chapitres, assurer que le contenu a bien été
expédié par la personne attendue avec un contenu non modifié et un deuxième point qui
concerne la confidentialité des messages échangés.
20
Exemple de génération d'un message S/MIME
Le contenu de message.txt
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
le message
La commande OpenSSL
openssl smime -sign -in message.txt -inkey user.pvk.pem -out smimeout.txt -from
"<[email protected]>" -to "<[email protected]>" -signer user_crt.pem -subject
"My secure email"↵
To: <[email protected]>
From: <[email protected]>
Subject: My secure email
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
micalg=sha1; boundary="----ADA02FC5AFFC8ED8EF7E5E458A51E637"
------ADA02FC5AFFC8ED8EF7E5E458A51E637
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
le message
------ADA02FC5AFFC8ED8EF7E5E458A51E637
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
MIIEXAYJKoZIhvcNAQcCoIIETTCCBEkCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb
3
DQEHAaCCAkcwggJDMIIBrKADAgECAgEIMA0GCSqGSIb3DQEBBQUAMH0xFzAVB
gNV
BAMTDkVtYWlsIGF1dG9yaXR5MSUwIwYDVQQKExxBcm5hdWQgR3JhbmR2aWxsZS
BD
b25zdWx0aW5nMR4wHAYDVQQLExVGb3IgaW50ZXJuYWwgdXNlIG9ubHkxCzAJBgN
21
V
BAYTAkZSMQ4wDAYDVQQHEwVMSUxMRTAeFw0wOTA3MTEwNzI1NTBaFw0xM
DA3MTEw
NzI1NTBaMEMxGjAYBgNVBAMTEUFybmF1ZCBHcmFuZHZpbGxlMSUwIwYJKoZIhv
cN
AQkBFhZjb250YWN0QGdyYW5kdmlsbGUubmV0MIGfMA0GCSqGSIb3DQEBAQUAA4
GN
ADCBiQKBgQC98RJdPUyTUu4Rj5O0u9/iy/rchp8a8OyIjNNjZjWEghmUIB+JHJQG
zUoEP6MhuW/C7r9CLhuJpZguvb42MHOWhuqyasaHMG2NzhLl1w94Tk7SjFTXugn7
bSvlTTdM+xb76uo9M8G7O3UELIr+12Ua+z8ey44Gze3yPDH6JhNc0wIDAQABow0w
CzAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBBQUAA4GBAFfmFI7a2VWpJRzNqJDBqj
AH
81DZ1ezdTfyP3kKuwVrrg7QZfrxAbor2U4HwlQu61/RPVVZArzCmumrSOfXJxDzp
ABvtFFUkYhGbOb5VSCu2deho43ARWrxhtedI9uYXlOCbn2CkWbU7axE6ggadXYWS
6jXN2g1eocQXEfWCAMlPMYIB3TCCAdkCAQEwgYIwfTEXMBUGA1UEAxMORW1ha
Wwg
YXV0b3JpdHkxJTAjBgNVBAoTHEFybmF1ZCBHcmFuZHZpbGxlIENvbnN1bHRpbmcx
HjAcBgNVBAsTFUZvciBpbnRlcm5hbCB1c2Ugb25seTELMAkGA1UEBhMCRlIxDjAM
BgNVBAcTBUxJTExFAgEIMAkGBSsOAwIaBQCggbEwGAYJKoZIhvcNAQkDMQsGCS
qG
SIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDkwNzExMTAzNjQ1WjAjBgkqhkiG9w0B
CQQxFgQUyEMwqN2DDt/48qdTnpfmtXOHICkwUgYJKoZIhvcNAQkPMUUwQzAKBgg
q
hkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgc
w
DQYIKoZIhvcNAwICASgwDQYJKoZIhvcNAQEBBQAEgYA/8fsPurdfDdDmhSokuB0J
LLiZRQP07SgVJGz+EQqHema4VplhvmEtwaSwlQZ2w85gRyEkX3KSUg5QuE2XySc7
vW4F/EjPlTVzZpogeqCZJVXS017+JiZurlK/8BaSV+w2JudpyX3HVvWk1NJbTuTi
/azLmum3ZP5BGsQC7fYuTA==
------ADA02FC5AFFC8ED8EF7E5E458A51E637--
22
Crypter, décrypter, signer, vérifier un message email
Un certificat X509 v3 est un fichier binaire dont la structure est définie par la RFC2459...
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
.../...
Un certificat n'est donc ni plus ni moins qu'une simple structure binaire dont la valeur est
garantie par l'apposition d'une signature (Hash produit par une autorité de confiance). Au
passage, remarquons qu'il n'y aucune différence technique entre un certificat, une CA, une
CRL, etc ... tous ces fichiers sont des structures binaires associées à une signature.
24
La version peut prendre trois valeurs : 0,1,2 chacune correspond respectivement à la version
v1,v2 et v3 des certicats x509.
Le certificat de https://www.google.com contient ces informations :
Data:
Version: 3 (0x2)
Serial Number:
68:76:64:38:3d:49:6e:2e:f5:e3:19:98:42:e0:7c:ee
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=ZA, O=Thawte Consulting (Pty) Ltd., CN=Thawte SGC CA
Validity
Not Before: May 3 15:34:58 2007 GMT
Not After : May 14 23:18:11 2008 GMT
.../...
.../...
Nous apprenons que dans le fichier google.der à l'offset 10 se trouve trois octets (hl+l), le
troisième octet est un entier dont la valeur est deux.
Avec un éditeur hexa fixons ce 12ème octet du fichier à 1 et voici le résultat
25
C:\openssl-0.9.8g\out32dll>openssl x509 -text -noout -inform
DER -in google.der
Certificate:
Data:
Version: 2 (0x1)
Serial Number:
68:76:64:38:3d:49:6e:2e:f5:e3:19:98:42:e0:7c:ee
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=ZA, O=Thawte Consulting (Pty) Ltd., CN=Thawte SGC CA
.../...
Le certificat est bien modifié, le code de hashage pourrait être recalculé mais ne pouvant être
signé l'ouverture du certificat donne ceci :
Liens et outils
26
c:\libtasn1-0.3.9\tests>..\src\asn1Decoding -c pkix.asn
google.der PKIX1.Certificate
Parse: done.
Decoding: SUCCESS
name:tbsCertificate type:SEQUENCE
name:version type:INTEGER value:0x02
name:NULL type:DEFAULT value:v1
name:serialNumber type:INTEGER
value:0x687664383d496e2ef5e3199842e07cee
name:signature type:SEQUENCE
name:algorithm type:OBJ_ID value:1.2.840.113549.1.1.5
name:parameters type:ANY value:0500
name:issuer type:CHOICE
name:rdnSequence type:SEQ_OF
name:NULL type:SET_OF
name:NULL type:SEQUENCE
name:type type:OBJ_ID
name:value type:ANY
name:?1 type:SET_OF
name:NULL type:SEQUENCE
name:type type:OBJ_ID
name:value type:ANY
name:?1 type:SEQUENCE
name:type type:OBJ_ID value:2.5.4.6
name:value type:ANY value:13025a41
name:?2 type:SET_OF
name:NULL type:SEQUENCE
name:type type:OBJ_ID
name:value type:ANY
name:?1 type:SEQUENCE
name:type type:OBJ_ID value:2.5.4.10
name:value type:ANY
value:131c54686177746520436f6e73756c74696e67202850747929204c74642e
name:?3 type:SET_OF
name:NULL type:SEQUENCE
name:type type:OBJ_ID
name:value type:ANY
name:?1 type:SEQUENCE
name:type type:OBJ_ID value:2.5.4.3
.../...
27