Analyse du certificat d'algorithme secret national SM2

1. Composition du certificat numérique

1) Structure des données du certificat

Le certificat numérique utilise le codage ASN.1, le fichier de certificat est stocké au format binaire ou Base64, le format de données utilise la forme TLV (Tag Length Value), T représente l'identificateur de type, L est l'identificateur de valeur de longueur et V signifie l'encodage de valeur. Chaque élément du certificat numérique a un type T. correspondant Un certificat numérique est une grande séquence TLV, puis V est composé de plusieurs TLV.

Les données du certificat SM2 sont les mêmes que le certificat de l'algorithme RSA, y compris la version du certificat, le numéro de série, l'émetteur, les informations sur le sujet de l'utilisateur, la clé publique de l'utilisateur, la période de validité, l'extension du certificat, etc., mais l'algorithme de la clé publique du certificat SM2 est l'Oid utilisant l'algorithme ECC ID (1.2.840.10045.2.1), le paramètre de clé publique utilise l'ID Oid de l'algorithme secret national SM2 (1.2.156.10197.1.301).

2) Algorithme de signature

L'algorithme de signature correspondant au certificat SM2 est l'algorithme de signature SM2 basé sur SM3, et l'algorithme d'identification Oid est 1.2.156.10197.1.501. De plus, l'algorithme secret national SM2 définit également les signatures basées sur SHA_1, SHA_256 et les signatures RSA utilisant l'algorithme SM3, mais la signature L'algorithme d'identification Oid est différent.

3) Données de signature

Les données de signature de SM2 sont composées de deux grands nombres BigInteger, puis le codage Der est utilisé pour stocker les données de signature. Les données de signature du certificat sont signées par la clé privée du certificat racine, qui est vérifiée à l'aide de la clé publique du certificat racine, et le certificat racine de niveau supérieur est vérifié à l'aide de sa propre clé publique de certificat.

Deuxièmement, l'identifiant d'objet du certificat numérique

Chaque élément du certificat numérique a un identifiant d'objet Oid. La principale différence du certificat numérique SM2 est que l'algorithme de clé publique, les paramètres de clé publique et l'identificateur d'algorithme de signature sont différents. Les autres sont des éléments standard dans X509. Les identificateurs d'objet courants des certificats numériques sont les suivants:

Identificateur d'objet Le nom OID
rsaEncryption Identification de l'algorithme RSA 1.2.840.113549.1.1.1
sha1withRSAEncryption Signature RS1 de SHA1 1.2.840.113549.1.1.5
ECC Identification de l'algorithme ECC 1.2.840.10045.2.1
SM2 Identification de l'algorithme SM2 1.2.156.10197.1.301
SM3WithSM2 Signature SM3 SM2 1.2.156.10197.1.501
sha1withSM2 Signature SM1 de SHA1 1.2.156.10197.1.502
sha256withSM2 Signature SM256 de SHA256 1.2.156.10197.1.503
sm3withRSAEncryption Signature RSA de SM3 1.2.156.10197.1.504
Nom commun Nom principal 2.5.4.3
adresse e-mail Boîte aux lettres 1.2.840.113549.1.9.1
cRLDistributionPoints Point de distribution CRL 2.5.29.31
extKeyUsage Utilisation étendue des clés 2.5.29.37
subjectAltName Autre nom d'utilisateur 2.5.29.17
CP Stratégie de certificat 2.5.29.32
clientAuth Authentification client 1.3.6.1.5.5.7.3.2

Troisièmement, l'analyse des certificats numériques

L'analyse des certificats numériques est principalement basée sur la syntaxe ASN.1 et l'identifiant d'objet pour obtenir la valeur, puis la période de validité du certificat, le certificat racine de l'autorité émettrice, l'état de révocation de la CRL et le but de l'utilisation et d'autres vérifications. Le certificat RSA est un algorithme standard qui peut être analysé par la plupart des plates-formes, mais l'analyse du certificat de l'algorithme secret national SM2 n'est pas si courante. L'ouverture du certificat SM2 dans certaines versions supérieures de Windows affiche "Une erreur s'est produite au niveau de la couche système lors de la vérification de la relation d'approbation". Cela est dû au fait que Windows ne prend pas encore en charge la vérification du certificat de l'algorithme SM2 et ne peut pas reconnaître l'ID de l'algorithme de signature SM2. Pour vérifier les données de signature du certificat SM2, la signature de vérification SM2 peut être implémentée sur la base de la bibliothèque de chiffrement open source BouncyCastle. Pour plus de détails, veuillez vous reporter à la production de mon certificat SM2 d'algorithme secret national .

A publié 54 articles originaux · Comme 89 · Plus de 680 000 visiteurs

Je suppose que tu aimes

Origine blog.csdn.net/ayang1986/article/details/102919761
conseillé
Classement