Bonjour! Continuons Ă examiner ce sujet ().
Aujourd'hui, nous allons passer à la partie pratique. Commençons par configurer notre propre autorité de certification basée sur une bibliothÚque cryptographique complÚte et open source, openSSL. Cet algorithme a été testé avec Windows 7.
AprÚs avoir installé openSSL, nous pouvons effectuer diverses opérations cryptographiques (comme la création de clés et de certificats) via la ligne de commande.
L'algorithme des actions est le suivant :
- Téléchargez le distributeur d'installation openssl-1.1.1g.
Il existe différentes versions d'openSSL. La documentation de Rutoken indique qu'il est nécessaire d'avoir la version 1.1.0 d'openSSL ou plus récente. J'ai utilisé la version openssl-1.1.1g. Vous pouvez télécharger openSSL à partir du site officiel, mais pour une installation plus simple, vous devez trouver le fichier d'installation pour Windows en ligne. Je l'ai fait pour vous :
Faites défiler la page vers le bas et téléchargez l'installateur Win64 OpenSSL v1.1.1g EXE 63MB. - Installez openssl-1.1.1g sur votre ordinateur.
L'installation doit ĂȘtre effectuĂ©e selon le chemin par dĂ©faut, qui est automatiquement spĂ©cifiĂ© dans le dossier C:Program Files. Le programme sera installĂ© dans le dossier OpenSSL-Win64. - Pour configurer openSSL comme vous le souhaitez, il existe un fichier openssl.cfg. Ce fichier se trouve Ă l'emplacement C:Program FilesOpenSSL-Win64bin si vous avez installĂ© openSSL comme indiquĂ© dans le point prĂ©cĂ©dent. AccĂ©dez au dossier oĂč se trouve openssl.cfg et ouvrez ce fichier avec Notepad+, par exemple.
- Vous avez sĂ»rement compris que la configuration de l'autoritĂ© de certification se fera par modification du contenu du fichier openssl.cfg, et vous avez tout Ă fait raison. Pour cela, il faut configurer la commande [ ca ]. Dans le fichier openssl.cfg, le dĂ©but du texte oĂč nous allons apporter des modifications se trouve comme suit : [ ca ].
- Maintenant, je vais donner un exemple de configuration avec sa description :
[ ca ] default_ca = CA_default [ CA_default ] dir = /Users/username/bin/openSSLca/demoCA certs = $dir/certs crl_dir = $dir/crl database = $dir/index.txt new_certs_dir = $dir/newcerts certificate = $dir/ca.crt serial = $dir/private/serial crlnumber = $dir/crlnumber crl = $dir/crl.pem private_key = $dir/private/ca.key x509_extensions = usr_certIl est maintenant nécessaire de créer le répertoire demoCA et ses sous-répertoires, comme indiqué dans l'exemple ci-dessus. Et de placer dans ce répertoire selon le chemin spécifié dans dir (chez moi c'est /Users/username/bin/openSSLca/demoCA).
Il est trĂšs important de spĂ©cifier correctement le dir â c'est le chemin vers le rĂ©pertoire oĂč se trouvera notre autoritĂ© de certification. Ce rĂ©pertoire doit obligatoirement se trouver dans /Users (c'est-Ă -dire dans le compte d'un utilisateur quelconque). Si ce rĂ©pertoire est par exemple placĂ© dans C:Program Files, le systĂšme ne verra pas le fichier de configuration openssl.cfg (en tout cas, c'est ce qui m'est arrivĂ©).
$dir - c'est ici que le chemin indiqué dans dir est intégré.
Un autre point important est de créer un fichier vide index.txt, sans ce fichier, les commandes «openSSL ca ...» ne fonctionneront pas.
Il est également nécessaire d'avoir un fichier serial, la clé privée racine (ca.key) et le certificat racine (ca.crt). Le processus d'obtention de ces fichiers sera décrit plus loin.
- Nous connectons les algorithmes de cryptage fournis par Rutoken.
Cette connexion se fait dans le fichier openssl.cfg.- Tout d'abord, il est nécessaire de télécharger les algorithmes nécessaires de Rutoken. Ce sont les fichiers rtengine.dll, rtpkcs11ecp.dll.
Pour cela, téléchargeons le SDK de Rutoken : .Le SDK de Rutoken est tout ce qui existe pour les développeurs qui souhaitent essayer Rutoken. Il contient à la fois des exemples séparés pour travailler avec Rutoken dans différents langages de programmation, ainsi que certaines bibliothÚques. Nos bibliothÚques rtengine.dll et rtpkcs11ecp.dll se trouvent dans le SDK de Rutoken respectivement aux emplacements suivants :
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllUn point trĂšs important. Les bibliothĂšques rtengine.dll, rtpkcs11ecp.dll ne fonctionnent pas sans le driver installĂ© pour Rutoken. De plus, Rutoken doit obligatoirement ĂȘtre connectĂ© Ă l'ordinateur. (Pour l'installation de tout le nĂ©cessaire pour Rutoken, voir la partie prĂ©cĂ©dente de l'article )
- Les bibliothĂšques rtengine.dll et rtpkcs11ecp.dll peuvent ĂȘtre placĂ©es n'importe oĂč dans le compte utilisateur.
- Nous spécifions les chemins vers ces bibliothÚques dans openssl.cfg. Pour cela, ouvrez le fichier openssl.cfg et placez la ligne suivante au début de ce fichier :
openssl_conf = openssl_defà la fin du fichier, il est nécessaire d'ajouter :
[ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll RAND_TOKEN = pkcs11:manufacturer=AktivCo.;model=RutokenECP default_algorithms = CIPHERS, DIGEST, PKEY, RANDdynamic_path â il est nĂ©cessaire de spĂ©cifier votre chemin vers la bibliothĂšque rtengine.dll.
MODULE_PATH â il est nĂ©cessaire de spĂ©cifier votre chemin vers la bibliothĂšque rtpkcs11ecp.dll.
- Tout d'abord, il est nécessaire de télécharger les algorithmes nécessaires de Rutoken. Ce sont les fichiers rtengine.dll, rtpkcs11ecp.dll.
- Ajoutons des variables d'environnement.
Il est impératif d'ajouter une variable d'environnement qui indique le chemin vers le fichier de configuration openssl.cfg. Dans mon cas, une variable OPENSSL_CONF a été créée avec le chemin C:Program FilesOpenSSL-Win64binopenssl.cfg.
La variable path doit pointer vers le dossier oĂč se trouve openssl.exe, dans mon cas il s'agit de : C:Program FilesOpenSSL-Win64bin.
- Nous pouvons maintenant revenir au point 5 et créer les fichiers manquants pour le répertoire demoCA.
- Le premier fichier important sans lequel rien ne fonctionnera est serial. C'est un fichier sans extension, dont la valeur doit ĂȘtre 01. Vous pouvez crĂ©er ce fichier vous-mĂȘme et y inscrire 01. Il est Ă©galement possible de le tĂ©lĂ©charger depuis le SDK RUToken Ă l'emplacement sdk/openssl/rtengine/samples/tool/demoCA/.
Dans le répertoire demoCA se trouve le fichier serial, dont nous avons besoin. - Créons la clé privée de l'autorité de certification.
Pour cela, nous utiliserons la commande de la bibliothĂšque openSSL, qui doit ĂȘtre lancĂ©e directement dans l'invite de commandes :openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key - CrĂ©ons le certificat racine.
Pour cela, nous utiliserons la commande suivante de la bibliothĂšque openSSL :openssl req -utf8 -x509 -key ca.key -out ca.crtVeuillez noter que pour crĂ©er un certificat racine, il faut la clĂ© privĂ©e racine, qui a Ă©tĂ© créée Ă l'Ă©tape prĂ©cĂ©dente. L'invite de commandes doit donc ĂȘtre lancĂ©e dans le mĂȘme rĂ©pertoire.
Maintenant, tous les fichiers manquants pour la configuration complÚte du répertoire demoCA sont disponibles. Placez les fichiers créés dans les répertoires indiqués au point 5.
- Le premier fichier important sans lequel rien ne fonctionnera est serial. C'est un fichier sans extension, dont la valeur doit ĂȘtre 01. Vous pouvez crĂ©er ce fichier vous-mĂȘme et y inscrire 01. Il est Ă©galement possible de le tĂ©lĂ©charger depuis le SDK RUToken Ă l'emplacement sdk/openssl/rtengine/samples/tool/demoCA/.
Nous considérerons que, suite à l'exécution des 8 points, notre autorité de certification est entiÚrement configurée.
Dans la prochaine partie, je vous expliquerai comment nous allons travailler avec l'autorité de certification pour réaliser ce qui a été décrit dans .
Source : habr.com
