Certificats racine et intermédiaire des autorités de certification autorisées de la Russie

Comme de nombreux autres pays, la Russie utilise des certificats x509 émis par les autorités de certification russes autorisées (UC) pour la gestion officielle des documents électroniques. Et contrairement à de nombreux autres pays, il utilise ses propres chiffres.

Pendant longtemps j'ai voulu automatiser la vérification des signatures des réponses des autorités (je correspond beaucoup) et la vérification des «déchargements» de Roskomnadzor pour l'authenticité (par la nature de l'activité publique). Le plus gros problème était d'obtenir des certificats intermédiaires de la chaîne. Parce qu'il y avait un fichier Excel flou des autorités de certification racine sur le site Web du ministère des Communications et c'est tout. Et les intermédiaires ont dû être recherchés sur les sites des autorités compétentes respectives. La vie est une douleur.
Que sont les "certificats intermédiaires" . Permettez-moi de vous rappeler comment cela fonctionne. Supposons que nous voulons vérifier une lettre signée. La lettre est signée avec une clé. Il existe un certificat qui certifie cette clé. Le certificat a été délivré par quelqu'un et également signé par une clé avec le certificat joint. Et ce certificat est exactement le même. Et ainsi de suite jusqu'au moment où le certificat est délivré à lui-même. Lors de la vérification, nous avons (apporté, livré du colis, on nous a remis une clé USB) un certain ensemble de ces certificats finaux, ce que nous croyons. Nous croyons parce que nous croyons celui qui nous les a donnés. Dans le monde du Web, nous faisons confiance au navigateur et à son ensemble de certificats racine. Dans le monde du Web, lors de la connexion via HTTPS, les certificats intermédiaires sont également transférés du serveur au client. Par conséquent, dans le monde du web, nous avons toujours toute la chaîne.
Soudain (je ne sais pas exactement quand) et imperceptiblement sur le site Internet des services de l’État est apparu un tel lien:
e-trust.gosuslugi.ru/CA

J'ai écrit à la hâte un programme qui transforme un fichier XML avec une liste d'autorités de certification et de certificats de ce site au format PEM familier.

Ensuite, je l'ai automatisé et j'ai obtenu un référentiel de certificats constamment maintenu sous la forme familière au monde * NIX.

Cryptage GOST


Le chiffrement GOST est pris en charge dans LibreSSL; je ne me souviens pas de quelle version. Mais dans Alpine Linux à partir de 3.5 est déjà pris en charge. Avec OpenSSL, les choses deviennent plus compliquées. Le chiffrement GOST est fourni avec OpenSSL de la version 1.0.0 à la version 1.0.2 incluse. Mais par exemple, CentOS n'a pas de cryptage GOST. Les utilisateurs de CentOS doivent souffrir. Pour Debian, Mint, Ubuntu avec OpenSSL version 1.1.0 et supérieure, l'installation du paquet libengine-gost-openssl1.1 est requise, prise en charge par Vartan Khachaturov, passionné de crypto (à propos, vous pouvez l'aider).

Eh bien, en 2018, nous avons Docker, et dans Alpine Linux, comme je l'ai mentionné, tout fonctionne.

Comment l'utiliser


Courts exemples pour vérifier le «déchargement» de Roskomnadzor avec une signature ininterrompue. Le fichier «upload» est dump.xml, la signature non balisée est dump.xml.sig. Même moi, je les ai vérifiés auparavant uniquement sur l'intégrité de la signature, mais pas sur la correspondance avec la source.

Utilisation d'OpenSSL:

git clone https://github.com/schors/gost-russian-ca.git ./ openssl smime -verify -engine gost \ -CAfile gost-russian-ca.git/certs/ca-certificates.pem \ -in dump.xml.sig -inform DER -content dump.xml -out /dev/null 

Utilisation de LibreSSL:

 git clone https://github.com/schors/gost-russian-ca.git ./ openssl smime -verify -CAfile gost-russian-ca.git/certs/ca-certificates.pem \ -in dump.xml.sig -inform DER -content dump.xml -out /dev/null 

Et bien sûr, vous pouvez utiliser l'utilitaire c_rehash dans le dossier certs , puis utiliser l'option -CAdir au lieu de -CAfile.

Et à partir de maintenant, vous ne pouvez pas utiliser le site Web du Service d'État, Contour et des programmes étranges comme CryptoPro pour la simple tâche de vérifier une signature. Et surtout, il est désormais possible d'automatiser.

Source: https://habr.com/ru/post/fr423187/


All Articles