OpenSSL VPN Serveurs de messagerie |
OpenSSL/Openssl-asn1OpenSSL.Openssl-asn1 HistoryHide minor edits - Show changes to markup Changed line 1 from:
(:keywords openssl, asn1, asn.1, asn1parse, compilation, certificat :) to:
(:keywords openssl, asn1, asn.1, asn1parse, compilation, certificat, format :) Changed lines 1-3 from:
(:keywords openssl, asn1, asn.1, asn1parse, compilation:) (:description Introduction à la compréhension du format des certificats:) to:
(:keywords openssl, asn1, asn.1, asn1parse, compilation, certificat :) (:description Introduction à la compréhension du format binaire des certificats:) Changed line 11 from:
Contrairement au fichier XML pour lequel les données sont transportées en même temps que leurs descriptions, un fichier binaire nécessite pour son exploitation la fourniture d'un lexique permettant la compréhension de son contenu. Le rôle du lexique est joué par un fichier au format Abstract Syntax Notation One (ASN.1). On retrouve ce langage de définition dans le protocole de management des équipements réseau SNMP.\\ to:
Contrairement au fichier XML pour lequel les données sont transportées en même temps que leurs descriptions, un fichier binaire nécessite pour son exploitation la fourniture d'un lexique permettant la compréhension de son contenu. Le rôle du lexique est joué par un fichier au format Abstract Syntax Notation One (ASN.1). On retrouve ce même langage de définition dans le protocole de management des équipements réseaux SNMP.\\ Changed line 14 from:
Voici le début de cette description to:
Voici le début de cette description pour les certificats Changed line 52 from:
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 dont l'émetteur fait parti des autorités 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. \\ to:
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. \\ Changed lines 12-13 from:
to:
Changed lines 15-17 from:
to:
Added line 42:
\\ Changed line 1 from:
(:keywords openssl, asn1, asn1parse, compilation:) to:
(:keywords openssl, asn1, asn.1, asn1parse, compilation:) Changed lines 9-12 from:
Un certificat X509 v3 est un fichier binaire dont la structure est définie par la RFC2459 et le cadre d'utilisation par l'International Telecommunication Union (ITU). to:
Un certificat X509v3 est un fichier binaire dont la structure est définie par la RFC2459 et le cadre d'utilisation par l'International Telecommunication Union (ITU). Changed lines 116-118 from:
la syntaxe ASN1 : http://www.oss.com/asn1/booksintro.html to:
La syntaxe ASN1 : http://www.oss.com/asn1/booksintro.html Changed lines 9-10 from:
Un certificat X509 v3 est un fichier binaire dont la structure est définie par la RFC2459 et le cadre d'utilisation par l'International Telecomunication Union (ITU). to:
Un certificat X509 v3 est un fichier binaire dont la structure est définie par la RFC2459 et le cadre d'utilisation par l'International Telecommunication Union (ITU). Changed lines 9-10 from:
Un certificat X509 v3 est un fichier binaire dont la structure est définie par la RFC2459. to:
Un certificat X509 v3 est un fichier binaire dont la structure est définie par la RFC2459 et le cadre d'utilisation par l'International Telecomunication Union (ITU). Changed line 55 from:
C:\openssl-0.9.8g\out32dll>openssl x509 -text -noout -inform DER -in google.der to:
C:\openssl-0.9.8g\out32dll>openssl x509 -text -noout -inform DER -in google.der\\ Changed lines 95-96 from:
nous apprenons que dans le fichier google.der à l'offset 10 se trouve trois octets (hl+l) dont le troisième octet est un entier dont la valeur est deux. to:
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. Changed line 98 from:
C:\openssl-0.9.8g\out32dll>openssl x509 -text -noout -inform DER -in google.der to:
C:\openssl-0.9.8g\out32dll>openssl x509 -text -noout -inform DER -in google.der\\ Changed lines 41-45 from:
On en comprend qu'un Certificat est composé de trois éléments : - Une structure (tbsCertificate) - Un algorithme de hashage (AlgorithmIdentifier) - Une signature (signatureValue) to:
On en comprend qu'un Certificat est composé de trois éléments : Changed line 96 from:
Avec un éditeur hexa modifions le 12ème octet du fichier à 1 et voici le résultat to:
Avec un éditeur hexa fixons le 12ème octet du fichier à 1 et voici le résultat Changed line 7 from:
La structure binaire d'uin certificatto:
La structure binaire d'un certificatChanged line 7 from:
Le Certificat est une structure binaireto:
La structure binaire d'uin certificatChanged lines 10-11 from:
Contrairement au fichier XML pour lequel les données sont transportées en même temps que leur description, un fichier binaire nécessite pour son exploitation la fourniture d'un lexique permettant la compréhension de son contenu. Le rôle du lexique est jouée par un fichier au format ASN1. to:
Contrairement au fichier XML pour lequel les données sont transportées en même temps que leurs descriptions, un fichier binaire nécessite pour son exploitation la fourniture d'un lexique permettant la compréhension de son contenu. Le rôle du lexique est jouée par un fichier au format ASN1. Changed lines 49-51 from:
Modification des valeurs d'un certificatModification manuelle de la version du certificat, Trois valeurs sont autorisées : 0,1,2 chacune correspond respectivement à la version v1,v2 et v3 des certicats au format x509. Le certificat de https://www.google.com contient ces informations : to:
Modification de la version du certificatLa version peut prendre trois valeurs : 0,1,2 chacune correspond respectivement à la version v1,v2 et v3 des certicats x509. Changed lines 94-95 from:
à l'offset 10 du fichier se trouve trois octets (hl+l) dont le troisième octet est un entier dont la valeur est deux. Avec un éditeur hexa modifions la valeur du douzième octet à 1 et voici le résultat to:
nous apprenons que dans le fichier google.der à l'offset 10 se trouve trois octets (hl+l) dont le troisième octet est un entier dont la valeur est deux. Changed lines 110-112 from:
to:
Added line 117:
Changed line 119 from:
c:\libtasn1-0.3.9\tests>..\src\asn1Decoding -c pkix.asn google.der PKIX1.Certificate to:
c:\libtasn1-0.3.9\tests>..\src\asn1Decoding -c pkix.asn google.der PKIX1.Certificate\\ Changed line 37 from:
to:
CertificateSerialNumber ::= INTEGER Changed lines 93-101 from:
binaire distinguished encoding rules (DER) to:
à l'offset 10 du fichier se trouve trois octets (hl+l) dont le troisième octet est un entier dont la valeur est deux. Avec un éditeur hexa modifions la valeur du douzième octet à 1 et voici le résultat 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 : http://www.grandville.net/img/google.der.gif Liens et outilsla syntaxe ASN1 : http://www.oss.com/asn1/booksintro.html c:\libtasn1-0.3.9\tests>..\src\asn1Decoding -c pkix.asn google.der PKIX1.Certificate Parse: done. Decoding: SUCCESS DECODING RESULT: name:NULL type:SEQUENCE 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 .../... Changed line 1 from:
(:keywords openssl, asn1, compilation:) to:
(:keywords openssl, asn1, asn1parse, compilation:) Added lines 24-38:
issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo, issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version shall be v2 or v3 subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version shall be v2 or v3 extensions [3] EXPLICIT Extensions OPTIONAL -- If present, version shall be v3 } Version ::= INTEGER { v1(0), v2(1), v3(2) } .../... Changed lines 41-42 from:
n to:
On en comprend qu'un Certificat est composé de trois éléments : - Une structure (tbsCertificate) - Un algorithme de hashage (AlgorithmIdentifier) - Une signature (signatureValue) 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 dont l'émetteur fait parti des autorités 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. Modification des valeurs d'un certificatModification manuelle de la version du certificat, Trois valeurs sont autorisées : 0,1,2 chacune correspond respectivement à la version v1,v2 et v3 des certicats au format x509. Le certificat de https://www.google.com contient ces informations : C:\openssl-0.9.8g\out32dll>openssl x509 -text -noout -inform DER -in google.der Certificate: 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 .../... Le certificat est en v3 ( valeur 2 ) OpenSSL permet l'analyse binaire du certificat via l'option asn1parse C:\openssl-0.9.8g\out32dll>openssl asn1parse -i -inform DER -in google.der 0:d=0 hl=4 l= 801 cons: SEQUENCE 4:d=1 hl=4 l= 650 cons: SEQUENCE 8:d=2 hl=2 l= 3 cons: cont [ 0 ] 10:d=3 hl=2 l= 1 prim: INTEGER :02 13:d=2 hl=2 l= 16 prim: INTEGER :687664383D496E2EF5E3199842E07CEE 31:d=2 hl=2 l= 13 cons: SEQUENCE 33:d=3 hl=2 l= 9 prim: OBJECT :sha1WithRSAEncryption 44:d=3 hl=2 l= 0 prim: NULL 46:d=2 hl=2 l= 76 cons: SEQUENCE 48:d=3 hl=2 l= 11 cons: SET 50:d=4 hl=2 l= 9 cons: SEQUENCE 52:d=5 hl=2 l= 3 prim: OBJECT :countryName 57:d=5 hl=2 l= 2 prim: PRINTABLESTRING :ZA 61:d=3 hl=2 l= 37 cons: SET 63:d=4 hl=2 l= 35 cons: SEQUENCE 65:d=5 hl=2 l= 3 prim: OBJECT :organizationName 70:d=5 hl=2 l= 28 prim: PRINTABLESTRING :Thawte Consulting (Pty) Ltd. .../... Added lines 1-32:
(:keywords openssl, asn1, compilation:) (:description Introduction à la compréhension du format des certificats:)
Le Certificat est une structure binaire
Certificate ::= SEQUENCE { tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING } TBSCertificate ::= SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, n binaire distinguished encoding rules (DER) |