Expérience dans l'utilisation de la technologie Rutoken pour enregistrer et autoriser les utilisateurs dans le système (partie 2)

Bon après-midi Continuons avec ce sujetLa partie précédente peut être trouvée sur le lien).

Aujourd'hui, nous passons à la partie pratique. Commençons par configurer notre autorité de certification basée sur la bibliothèque cryptographique open source à part entière openSSL. Cet algorithme a été testé sous Windows 7.

Avec openSSL installé, nous pouvons effectuer diverses opérations cryptographiques (telles que la création de clés et de certificats) via la ligne de commande.

L'algorithme des actions est le suivant:

  1. Téléchargez la distribution d'installation openssl-1.1.1g.
    openSSL a différentes versions. La documentation de Rutoken indique que la version openSSL 1.1.0 ou plus récente est requise. J'ai utilisé la version openssl-1.1.1g. Vous pouvez télécharger openSSL depuis le site officiel, mais pour une installation plus facile, vous devez trouver le fichier d'installation de Windows sur le net. J'ai fait ça pour toi : slproweb.com/products/Win32OpenSSL.html
    Faites défiler la page et téléchargez le programme d'installation de Win64 OpenSSL v1.1.1g EXE 63 Mo.
  2. Installez openssl-1.1.1g sur l'ordinateur.
    L'installation doit être effectuée selon le chemin standard, qui est automatiquement indiqué dans le dossier C: Program Files. Le programme sera installé dans le dossier OpenSSL-Win64.
  3. Afin de configurer openSSL comme vous en avez besoin, il existe le fichier openssl.cfg. Ce fichier se trouve dans le chemin C:\Program Files\OpenSSL-Win64bin si vous avez installé openSSL comme décrit dans le paragraphe précédent. Accédez au dossier où openssl.cfg est stocké et ouvrez ce fichier en utilisant, par exemple, Notepad++.
  4. Vous avez probablement deviné que l'autorité de certification sera configurée d'une manière ou d'une autre en modifiant le contenu du fichier openssl.cfg, et vous avez tout à fait raison. Cela nécessite une personnalisation de la commande [ ca ]. Dans le fichier openssl.cfg, le début du texte où nous allons apporter des modifications se trouve comme suit : [ ca ].
  5. Je vais maintenant donner un exemple de paramètre 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_cert
    

    Nous devons maintenant créer le répertoire et les sous-répertoires demoCA comme indiqué dans l'exemple ci-dessus. Et placez-le dans ce répertoire le long du chemin spécifié dans le répertoire (j'ai /Users/username/bin/openSSLca/demoCA).

    Il est très important d'épeler correctement dir - c'est le chemin d'accès au répertoire où se trouvera notre centre de certification. Ce répertoire doit être situé dans /Users (c'est-à-dire dans le compte d'un utilisateur). Si vous placez ce répertoire, par exemple, dans C: Program Files, le système ne verra pas le fichier avec les paramètres openssl.cfg (du moins c'était comme ça pour moi).

    $dir - le chemin spécifié dans dir est remplacé ici.

    Un autre point important est de créer un fichier index.txt vide, sans ce fichier les commandes « openSSL ca… » ne fonctionneront pas.

    Vous devez également disposer d'un fichier série, d'une clé privée racine (ca.key), d'un certificat racine (ca.crt). Le processus d'obtention de ces fichiers sera décrit ci-dessous.

  6. Nous connectons les algorithmes de cryptage fournis par Rutoken.
    Cette connexion s'effectue dans le fichier openssl.cfg.

    • Tout d'abord, vous devez télécharger les algorithmes Rutoken nécessaires. Ce sont les fichiers rtengine.dll, rtpkcs11ecp.dll.
      Pour ce faire, téléchargez le SDK Rutoken : www.rutoken.ru/developers/sdk.

      Le SDK Rutoken est tout ce qu'il y a pour les développeurs qui souhaitent essayer Rutoken. Il existe des exemples distincts pour travailler avec Rutoken dans différents langages de programmation, et certaines bibliothèques sont présentées. Nos bibliothèques rtengine.dll et rtpkcs11ecp.dll se trouvent respectivement dans le SDK Rutoken, à l'emplacement :

      sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
      sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll

      Un point très important. Les bibliothèques rtengine.dll, rtpkcs11ecp.dll ne fonctionnent pas sans le pilote installé pour Rutoken. Rutoken doit également être connecté à l'ordinateur. (pour installer tout ce dont vous avez besoin pour Rutoken, voir la partie précédente de l'article habr.com/en/post/506450)

    • Les bibliothèques rtengine.dll et rtpkcs11ecp.dll peuvent être conservées n'importe où dans le compte utilisateur.
    • Nous écrivons les chemins d'accès à ces bibliothèques dans openssl.cfg. Pour cela, ouvrez le fichier openssl.cfg, mettez la ligne au début de ce fichier :
      openssl_conf = openssl_def

      A la fin du fichier vous devez 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=Aktiv%20Co.;model=Rutoken%20ECP
      default_algorithms = CIPHERS, DIGEST, PKEY, RAND
      

      Dynamic_path - vous devez spécifier votre chemin d'accès à la bibliothèque rtengine.dll.
      MODULE_PATH - vous devez écrire votre chemin vers la bibliothèque rtpkcs11ecp.dll.

  7. Ajout de variables d'environnement.

    Assurez-vous d'ajouter une variable d'environnement qui spécifie le chemin d'accès au fichier de configuration openssl.cfg. Dans mon cas, la variable OPENSSL_CONF a été créée avec le chemin C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Dans la variable path, vous devez spécifier le chemin d'accès au dossier où se trouve openssl.exe, dans mon cas c'est : C: Program FilesOpenSSL-Win64bin.

  8. Vous pouvez maintenant revenir à l'étape 5 et créer les fichiers manquants pour le répertoire demoCA.
    1. Le premier fichier important sans lequel rien ne fonctionnera est le série. Il s'agit d'un fichier sans extension, dont la valeur doit être 01. Vous pouvez créer ce fichier vous-même et y écrire 01. Vous pouvez également le télécharger depuis le SDK Rutoken via le chemin sdk/openssl/rtengine/samples/tool/demoCA. /.
      Le répertoire demoCA contient le fichier série, ce qui correspond exactement à ce dont nous avons besoin.
    2. Créez une clé privée racine.
      Pour ce faire, nous utiliserons la commande de la bibliothèque openSSL, qu'il faudra exécuter directement sur la ligne de commande :

      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. Nous créons un certificat racine.
      Pour ce faire, utilisez la commande de bibliothèque openSSL suivante :

      openssl req -utf8 -x509 -key ca.key -out ca.crt

      Veuillez noter que la clé privée racine, générée à l'étape précédente, est requise pour générer le certificat racine. La ligne de commande doit donc être lancée dans le même répertoire.

    Tout dispose désormais de tous les fichiers manquants pour la configuration complète du répertoire demoCA. Placez les fichiers créés dans les répertoires indiqués au point 5.

Nous supposerons qu'après avoir terminé les 8 points, notre centre de certification est entièrement configuré.

Dans la partie suivante, je décrirai comment nous travaillerons avec l'autorité de certification afin d'accomplir ce qui a été décrit dans la partie précédente de l'article.

Source: habr.com

Ajouter un commentaire