Stamm- und Zwischenzertifikate autorisierter Zertifizierungsstellen Russlands

Wie viele andere Länder verwendet Russland x509-Zertifikate, die von autorisierten russischen Zertifizierungsstellen (UC) ausgestellt wurden, für die offizielle Verwaltung elektronischer Dokumente. Und im Gegensatz zu vielen anderen Ländern verwendet es seine eigenen Chiffren.

Lange Zeit wollte ich die Überprüfung der Unterschriften der Antworten der Behörden (ich korrespondiere viel) und die Überprüfung der „Entladungen“ von Roskomnadzor auf Echtheit (aufgrund der Art der öffentlichen Aktivität) automatisieren. Das größte Problem bestand darin, Zwischenzertifikate von der Kette zu erhalten. Weil auf der Website des Kommunikationsministeriums eine verschwommene Excel-Datei mit Stammzertifizierungsstellen vorhanden war, und das ist alles. Und die Zwischenprodukte mussten auf den Websites der jeweiligen Zertifizierungsstellen durchsucht werden. Das Leben ist ein Schmerz.
Was sind "Zwischenzertifikate"? Ich möchte Sie daran erinnern, wie es funktioniert. Angenommen, wir möchten einen unterschriebenen Brief überprüfen. Der Brief ist mit einem Schlüssel signiert. Es gibt ein Zertifikat, das diesen Schlüssel zertifiziert. Das Zertifikat wurde von jemandem ausgestellt und auch mit einem Schlüssel mit dem beigefügten Zertifikat signiert. Und dieses Zertifikat ist genau das gleiche. Und so weiter bis zu dem Moment, an dem das Zertifikat für sich selbst ausgestellt wird. Bei der Überprüfung haben wir (mitgebracht, aus dem Paket geliefert, wir erhielten ein Flash-Laufwerk) einen bestimmten Satz dieser endgültigen Zertifikate, von denen wir glauben. Wir glauben, weil wir dem glauben, der sie uns gegeben hat. In der Welt des Webs vertrauen wir dem Browser und seinen Stammzertifikaten. In der Welt des Webs werden bei der Verbindung über HTTPS auch Zwischenzertifikate vom Server zum Client übertragen. Daher haben wir in der Welt des Webs immer die gesamte Kette.
Plötzlich (ich weiß nicht genau wann) und unmerklich auf der Website des Staatsdienstes erschien ein solcher Link:
e-trust.gosuslugi.ru/CA

Ich habe hastig ein Programm geschrieben , das eine XML-Datei mit einer Liste von Zertifizierungsstellen und Zertifikaten von dieser Site in das bekannte PEM-Format umwandelt.

Dann habe ich es automatisiert und ein ständig gepflegtes Zertifikat-Repository in der der * NIX-Welt vertrauten Form erhalten.

GOST-Verschlüsselung


Die GOST-Verschlüsselung wird in LibreSSL unterstützt. Ich weiß nicht mehr, welche Version. Aber in Alpine Linux wird ab 3.5 bereits unterstützt. Mit OpenSSL werden die Dinge komplizierter. Die GOST-Verschlüsselung wird mit OpenSSL von Version 1.0.0 bis einschließlich Version 1.0.2 geliefert. CentOS verfügt jedoch beispielsweise nicht über eine GOST-Verschlüsselung. CentOS-Benutzer müssen leiden. Für Debian, Mint, Ubuntu mit OpenSSL Version 1.1.0 und höher ist die Installation des Pakets libengine-gost-openssl1.1 erforderlich, das vom Krypto-Enthusiasten Vartan Khachaturov unterstützt wird (Sie können ihm übrigens helfen).

Nun, 2018 haben wir Docker und in Alpine Linux funktioniert, wie ich bereits erwähnte, alles.

Wie man es benutzt


Kurze Beispiele für die Überprüfung des „Entladens“ von Roskomnadzor mit einer ungebrochenen Signatur. Die "Upload" -Datei ist dump.xml, die Signatur ohne Tags ist dump.xml.sig. Sogar ich habe sie vorher nur auf die Integrität der Unterschrift überprüft, nicht aber auf die Korrespondenz mit der Quelle.

Verwenden von 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 

Verwenden von 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 

Natürlich können Sie auch das Dienstprogramm c_rehash im Ordner certs verwenden und dann die Option -CAdir anstelle von -CAfile verwenden.

Und von nun an können Sie die Website des State Service, Contour und seltsame Programme wie CryptoPro nicht mehr für die einfache Aufgabe der Überprüfung einer Signatur verwenden. Und vor allem ist es jetzt möglich zu automatisieren.

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


All Articles