
En 2016, l'article
«PKCS # 11 Cloud Token - Myth or Reality?» A été publié. . Six mois plus tard, et maintenant sur Internet, un cloud (service cloud) est apparu, dans lequel tout le monde peut obtenir un jeton cloud PKCS # 11 personnel prenant en charge la cryptographie russe.
Préface
Rappelons que PKCS # 11 (Cryptoki) est une norme développée par RSA Laboratories pour l'interaction de programmes avec des jetons cryptographiques, des cartes à puce et d'autres appareils similaires à l'aide d'une interface logicielle unifiée implémentée via des bibliothÚques.
Les jetons cryptographiques fournissent le stockage des certificats et des paires de clés (clés publiques et privées), ainsi que des opérations cryptographiques conformément à la norme PKCS # 11.

Ainsi, sur Internet, le service cloud LS11CLOUD est apparu, qui est une implémentation cloud de la norme
PKCS # 11 v.2.40, complétée par la prise en charge d'algorithmes cryptographiques russes conformément aux spécifications développées par le Comité Technique de Normalisation (
TC 26 ) «Protection des informations cryptographiques». Le service cloud LS11CLOUD prend en charge les algorithmes GOST R 34.10-2012, GOST R 34.11-2012, GOST R 34.12-2015 et GOST R 34.13-2015, ainsi que les algorithmes et paramÚtres associés définis par les documents directeurs du TC 26.
L'avantage incontestable d'un token cloud est que désormais l'utilisateur n'a plus besoin de porter de token / carte à puce, de prendre soin de sa sécurité. Disposant d'un jeton personnel dans le cloud, un utilisateur peut y accéder depuis son ordinateur personnel, son ordinateur portable et son appareil mobile.
L'interaction à distance sécurisée avec un conteneur personnel protégé d'objets cryptographiques (jeton) via un canal réseau crypté est
assurée en utilisant le protocole d'authentification
SESPAKE (Security
Evaluated Standardized Password-Authenticated Key Exchange) recommandé par TC 26.
CÎté utilisateur, la fonctionnalité de base est fournie par la bibliothÚque dynamique ls11cloud avec l'interface de programmation standard pkcs # 11. Pour recevoir un jeton cloud personnel, l'utilisateur doit s'inscrire sur le service cloud LS11CLOUD, puis initialiser et configurer le jeton personnel sur le service cloud.
Enregistrement des utilisateurs sur le service cloud
Pour commencer, nous notons que le jeton de cloud LS11CLOUD est situé sur pkcs11.ru et accepte les demandes pour le port 4444.
Comme déjà indiqué, l'enregistrement de l'utilisateur sur le serveur et la maintenance de son compte sont effectués par l'utilitaire
ls11cloud_config :
$ ./ls11cloud_config LS11CLOUD User Utility Usage: ls11cloud_config <command> [-p <password>] [-n <new password>] NB: Use -n <new password> with change_pswd command only! Commands: register <host> <port> <id> - register new user on the server duplicate <host> <port> <id> - duplicate user account on other computer change_pswd - change SESPAKE authentication password status - display current configuration data log - display server log file recreate - re-create token to initial empty state unregister - remove all user files from the server NB: Don't use non-latin letters to avoid encoding problems! $
Lors de l'inscription de l'utilisateur, l'emplacement du service cloud (le champ «hÎte»), le port (le champ «port») par lequel la communication avec le monde extérieur est effectuée et le surnom (le champ «id») de l'utilisateur sont indiqués:
bash-4.3$ ls11cloud_config register pkcs11.ru 4444 HABRAHABR
Pour l'enregistrement Ă partir des plateformes Linux, Windows et OS X (macOS), il existe un utilitaire graphique avec une interface intuitive guils11cloud_conf pour cet utilitaire:

L'utilisateur peut obtenir des distributions
Commençons donc à tester l'implémentation de la cryptographie russe dans le jeton cloud PKCS # 11.
AprÚs le téléchargement, vous devez exécuter l'
utilitaire graphique
guils11cloud_conf et suivre ses instructions:

Si vous ne vous ĂȘtes pas enregistrĂ© avec un jeton cloud Ă partir de ce poste de travail, vous serez invitĂ© Ă crĂ©er un jeton ou Ă vous connecter Ă un prĂ©cĂ©demment créé (voir capture d'Ă©cran). Pour un enregistrement initial dans le cloud, cliquez sur le bouton "S'inscrire dans le cloud":

«Connexion utilisateur» est la connexion sous laquelle l'utilisateur sera enregistré dans le cloud.
Le mot de passe est requis pour créer un canal sécurisé (protocole SESPAKE) de l'application de l'utilisateur à son jeton personnel dans le cloud. Un mot de passe sera demandé chaque fois qu'un utilisateur accÚde à un jeton dans le cloud, sauf s'il l'enregistre immédiatement aprÚs une inscription réussie dans le cloud:

Une fois l'enregistrement de l'utilisateur réussi, un nouveau jeton avec SO-PIN 87654321 sera créé pour lui:

Initialisation du jeton
AprÚs avoir cliqué sur le bouton "OK", un formulaire apparaßtra dans lequel il sera nécessaire d'indiquer l'étiquette du jeton (par défaut, il correspond à la connexion de l'utilisateur dans le cloud) et le code PIN auquel l'utilisateur aura accÚs au token cloud:

AprĂšs avoir cliquĂ© sur le bouton "Terminer", le jeton cloud est prĂȘt Ă fonctionner:

Ă l'avenir, l'
utilitaire p11conf est utilisé pour configurer le jeton cloud comme pour tout autre jeton / carte à puce PKCS # 11:

Si vous souhaitez utiliser le jeton cloud créé sur un autre ordinateur, alors, bien sûr, tout ce que vous avez à faire est d'exécuter l'utilitaire graphique guils11cloud_config et de cliquer sur le bouton "Dupliquer le jeton":

AprĂšs cela, souvenez-vous de la connexion sous laquelle vous ĂȘtes enregistrĂ© dans le cloud et du mot de passe d'accĂšs. En cliquant sur le bouton «Terminer», vous aurez accĂšs Ă votre token:

Installation du premier certificat personnel dans un jeton cloud
Maintenant que nous nous sommes enregistrés dans le cloud et y avons créé notre propre jeton de cloud personnel, nous pouvons commencer à l'utiliser. Pour les tests, prenons le navigateur
Redfox-52 et le client de messagerie
Redfoxmail-52 , qui sont basés sur Mozilla Firefox et Mozilla Thunderbird, avec la prise en charge de la cryptographie russe sur les jetons / cartes à puce PKCS # 11.
Nous effectuerons des tests sur la plateforme WIN32.
Vous devez d'abord télécharger et installer Redfox-52. Pour installer le navigateur Redfox, vous devez télécharger l'archive et décompressez-la.
Déplacez le dossier Mozilla Firefox décompressé vers un emplacement pratique. Créez ensuite un raccourci pour le fichier exécutable firefox.exe (situé à l'intérieur du dossier Mozilla Firefox) et placez-le à n'importe quel endroit approprié.
AprÚs avoir lancé le navigateur, vous devez connecter le jeton cloud créé en ajoutant la bibliothÚque ls11cloud.dll aux appareils:

Veuillez noter que la distribution du navigateur pour MS Windows est conçue pour la plate-forme Win32. Par consĂ©quent, la bibliothĂšque ls11cloud.dll doit Ă©galement ĂȘtre prise pour la plate-forme Win32.
AprÚs avoir inclus un jeton cloud parmi les appareils cryptographiques avec lesquels le navigateur fonctionne, nous pouvons commencer à le tester. Lors de la premiÚre étape, vous devez obtenir au moins un certificat personnel. Pour ce faire, nous utilisons les services de l'une des autorités de certification de test:

Lorsque vous cliquez sur le bouton Continuer, l'autorité de certification vous proposera de vérifier les données d'application, puis de sélectionner un périphérique cryptographique (jeton / carte à puce) pour générer une paire de clés et stocker un certificat personnel:

Naturellement, un jeton cloud est sélectionné et aprÚs avoir cliqué sur le bouton "Continuer", vous serez invité non seulement à recevoir un certificat personnel généré par votre application, mais également à installer / enregistrer le certificat racine de l'AC:

Vous pouvez vérifier l'installation du certificat en affichant le magasin de certificats du navigateur:

Test de HTTPS et PKCS # 12
Ainsi, les mécanismes de jeton cloud fonctionnent. Vérifions maintenant le fonctionnement du jeton cloud en mode https autorisé sur les cryptages russes:

Pour tester le fonctionnement du jeton cloud sur les
pages de test CryptoPro, nous utiliserons le certificat de test précédemment obtenu au centre de test CryptoPro et téléchargé dans le conteneur PKCS # 12. Vous devez d'abord télécharger le
certificat au format PKCS # 12 et l'installer sur un jeton cloud (le mot de passe pour le conteneur PKCS # 12 est 01234567):

En tant que périphérique de stockage, vous devez sélectionner un jeton cloud:

Ensuite, vous devrez entrer un code PIN pour accéder au jeton, mot de passe pour PKCS # 12. Par conséquent, le certificat sera sur le jeton:

Dans le mĂȘme temps, n'oubliez pas de dĂ©finir le niveau de confiance dans le certificat racine de l'AC CryptoPro:

Vous pouvez maintenant accéder en toute sécurité aux pages de test de CryptoPro, par exemple
ici :

Utilisation d'un jeton cloud pour organiser la correspondance électronique sécurisée
Voyons maintenant comment fonctionne le jeton cloud dans le client de messagerie
Redfoxmail / Thunderbird .
Pour installer le client de messagerie Mozilla Thunderbird sur la plate-forme WIN32, vous devez télécharger l'archive thunderbird-52.0-gost et décompressez-la. Déplacez le dossier Mozilla Thunderbird décompressé vers un emplacement pratique.
Créez ensuite un raccourci pour le fichier exécutable thunderbird.exe (situé dans le dossier Mozilla Thunderbird) et placez-les à n'importe quel endroit approprié. AprÚs avoir démarré le client de messagerie, nous connectons le jeton cloud, comme nous l'avons fait pour le navigateur Redfox:

AprĂšs avoir connectĂ© un jeton cloud, les certificats qui y sont stockĂ©s seront disponibles. Mais cela peut ne pas ĂȘtre suffisant - il est nĂ©cessaire d'installer les certificats racine de l'autoritĂ© de certification, sur lesquels des certificats personnels sont Ă©mis. C'est pourquoi nous avons enregistrĂ© le certificat racine lors de la sortie:

Maintenant, dans les paramÚtres du compte, vous devez installer un certificat qui sera utilisé pour signer et crypter les lettres:

Vous pouvez maintenant signer vos messages en toute sécurité:

Ce message peut ĂȘtre acceptĂ© par tout client de messagerie prenant en charge la cryptographie russe, par exemple,
KMail :

Conclusion
Donc, nous pouvons dire que le mythe devient une rĂ©alitĂ©. La portĂ©e principale du jeton de cloud LS11CLOUD peut ĂȘtre la gestion interne des documents, le courrier sĂ©curisĂ© et les opĂ©rations bancaires.
Le service cloud LS11CLOUD avec ses jetons cloud peut ĂȘtre trĂšs utile pour les dĂ©veloppeurs d'applications utilisant des tokens / smartcards PKCS # 11.

PS J'ai mis mon certificat personnel dans un jeton cloud, je l'ai connecté au plugin des services publics et
j'ai payé la dette fiscale via le
portail GOSUSLOG . OC - ââLinux.