
En 2016, se publicó el artículo
"PKCS # 11 Cloud Token: ¿mito o realidad?" . . Seis meses después, y ahora en Internet, apareció una nube (servicio en la nube), en la que cualquiera puede obtener un token de nube PKCS # 11 personal con soporte para la criptografía rusa.
Prólogo
Recuerde que PKCS # 11 (Cryptoki) es un estándar desarrollado por RSA Laboratories para la interacción de programas con tokens criptográficos, tarjetas inteligentes y otros dispositivos similares que utilizan una interfaz de software unificada que se implementa a través de bibliotecas.
Los tokens criptográficos proporcionan almacenamiento de certificados y pares de claves (claves públicas y privadas), así como operaciones criptográficas de acuerdo con el estándar PKCS # 11.

Entonces, en Internet, apareció el servicio en la nube LS11CLOUD, que es una implementación en la nube del estándar
PKCS # 11 v.2.40, complementado con soporte para algoritmos criptográficos rusos de acuerdo con las especificaciones desarrolladas por el Comité Técnico de Normalización (
TC 26 ) "Protección de información criptográfica". El servicio en la nube LS11CLOUD admite los algoritmos GOST R 34.10-2012, GOST R 34.11-2012, GOST R 34.12-2015 y GOST R 34.13-2015, así como los algoritmos y parámetros relacionados definidos por los documentos rectores de TC 26.
La ventaja indudable de un token en la nube es que ahora el usuario no necesita llevar un token / tarjeta inteligente, cuide su seguridad. Al tener un token personal en la nube, un usuario puede tener acceso a él desde la computadora de su casa, computadora portátil y dispositivo móvil.
La interacción remota segura con un contenedor personal protegido de objetos criptográficos (token) a través de un canal de red encriptado se
garantiza mediante el protocolo de autenticación
SESPAKE (Intercambio de claves autenticado, contraseña, estandarizado, evaluado por seguridad) recomendado por TC 26.
En el lado del usuario, la biblioteca dinámica ls11cloud proporciona la funcionalidad básica con la interfaz de programación estándar pkcs # 11. Para recibir un token personal en la nube, el usuario debe registrarse en el servicio en la nube LS11CLOUD, y luego inicializar y configurar el token personal en el servicio en la nube.
Registro de usuario en el servicio en la nube
Para empezar, observamos que el token de la nube LS11CLOUD se encuentra en pkcs11.ru y acepta solicitudes para el puerto 4444.
Como ya se señaló, la utilidad
ls11cloud_config realiza el registro del usuario en el servidor y el mantenimiento de su cuenta:
$ ./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! $
Al registrar un usuario, se indica la ubicación del servicio en la nube (el campo "host"), el puerto (el campo "puerto") a través del cual se lleva a cabo la comunicación con el mundo exterior y el apodo (el campo "id") del usuario:
bash-4.3$ ls11cloud_config register pkcs11.ru 4444 HABRAHABR
Para registrarse desde plataformas Linux, Windows y OS X (macOS), hay una utilidad gráfica con una interfaz intuitiva guils11cloud_conf para esta utilidad:

El usuario puede obtener distribuciones
Entonces, comencemos a probar la implementación de la criptografía rusa en el token de nube PKCS # 11.
Después de la descarga, debe ejecutar la utilidad gráfica
guils11cloud_conf y seguir sus instrucciones:

Si no se ha registrado con un token en la nube desde esta estación de trabajo, se le pedirá que cree un token o que se conecte a uno creado anteriormente (vea la captura de pantalla). Para el registro inicial en la nube, haga clic en el botón "Registrarse en la nube":

"Inicio de sesión de usuario" es el inicio de sesión bajo el cual el usuario se registrará en la nube.
Se requiere la contraseña para crear un canal seguro (protocolo SESPAKE) desde la aplicación del usuario a su token personal en la nube. Se solicitará una contraseña cada vez que un usuario acceda a un token en la nube, a menos que la guarde inmediatamente después de un registro exitoso en la nube:

Tras el registro exitoso del usuario, se creará un nuevo token con SO-PIN 87654321 para él:

Inicialización de token
Después de hacer clic en el botón "Aceptar", aparecerá un formulario en el que será necesario indicar la etiqueta del token (de forma predeterminada, coincide con el inicio de sesión del usuario en la nube) y el código PIN al que el usuario tendrá acceso al token en la nube:

Después de hacer clic en el botón "Finalizar", el token de la nube está listo para funcionar:

En el futuro, la
utilidad p11conf se usa para configurar el token en la nube como para cualquier otro token / tarjeta inteligente PKCS # 11:

Si desea utilizar el token de nube creado en otra computadora, entonces, por supuesto, todo lo que tiene que hacer es ejecutar la utilidad gráfica guils11cloud_config y hacer clic en el botón "Duplicar token":

Después de eso, recuerde el inicio de sesión con el que está registrado en la nube y la contraseña de acceso. Al hacer clic en el botón "Finalizar", obtendrá acceso a su token:

Instalar el primer certificado personal en un token en la nube
Ahora que nos hemos registrado en la nube y hemos creado nuestro propio token de nube personal en él, podemos comenzar a usarlo. Para las pruebas, tomemos el navegador
Redfox-52 y el cliente de correo electrónico
Redfoxmail-52 , que están basados en Mozilla Firefox y Mozilla Thunderbird, con soporte para criptografía rusa en tokens / tarjetas inteligentes PKCS # 11.
Realizaremos pruebas en la plataforma WIN32.
Primero necesita descargar e instalar Redfox-52. Para instalar el navegador Redfox, debe descargar el archivo comprimido y descomprimirlo.
Mueva la carpeta descomprimida de Mozilla Firefox a una ubicación conveniente. Luego cree un acceso directo para el archivo ejecutable firefox.exe (ubicado dentro de la carpeta Mozilla Firefox) y colóquelo en cualquier lugar conveniente.
Después de iniciar el navegador, debe conectar el token de nube creado agregando la biblioteca ls11cloud.dll a los dispositivos:

Tenga en cuenta que la distribución del navegador para MS Windows está diseñada para la plataforma Win32. Por lo tanto, la biblioteca ls11cloud.dll también debe tomarse para la plataforma Win32.
Después de haber incluido un token en la nube entre los dispositivos criptográficos con los que funciona el navegador, podemos comenzar a probarlo. En la primera etapa, debe obtener al menos un certificado personal. Para hacer esto, utilizamos los servicios de una de las CA de prueba:

Cuando hace clic en el botón Continuar, la CA ofrecerá verificar los datos de la aplicación y luego seleccionar un dispositivo criptográfico (token / tarjeta inteligente) para generar un par de claves y almacenar un certificado personal:

Naturalmente, se selecciona un token en la nube y después de hacer clic en el botón "Continuar", se le pedirá no solo que reciba un certificado personal generado por su aplicación, sino también que instale / guarde el certificado raíz de CA:

Puede verificar la instalación del certificado al ver el almacén de certificados del navegador:

Prueba de HTTPS y PKCS # 12
Entonces, los mecanismos de token en la nube funcionan. Ahora verifiquemos el funcionamiento del token en la nube en el modo https autorizado en los cifrados rusos:

Para probar el funcionamiento del token en la nube en las
páginas de prueba de CryptoPro, utilizaremos el certificado de prueba obtenido previamente en el centro de prueba de CryptoPro y cargado en el contenedor PKCS # 12. Primero debe descargar el
certificado en formato PKCS # 12 e instalarlo en un token en la nube (la contraseña para el contenedor PKCS # 12 es 01234567):

Como dispositivo de almacenamiento, debe seleccionar un token en la nube:

Luego deberá ingresar un PIN para acceder al token, contraseña para PKCS # 12. Como resultado, el certificado estará en el token:

Al mismo tiempo, no olvide establecer el nivel de confianza en el certificado raíz de la CA CryptoPro:

Ahora puede ir con seguridad a las páginas de prueba de CryptoPro, por ejemplo
, aquí :

Usar un token en la nube para organizar la correspondencia de correo electrónico segura
Ahora veamos cómo funciona el token en la nube en el cliente de correo
Redfoxmail / Thunderbird .
Para instalar el cliente de correo Mozilla Thunderbird en la plataforma WIN32, debe descargar el archivo thunderbird-52.0-gost y descomprimirlo. Mueva la carpeta descomprimida de Mozilla Thunderbird a una ubicación conveniente.
Luego cree un acceso directo para el archivo ejecutable thunderbird.exe (ubicado dentro de la carpeta Mozilla Thunderbird) y colóquelos en cualquier lugar conveniente. Después de iniciar el cliente de correo, conectamos el token de la nube, de forma similar a como lo hicimos para el navegador Redfox:

Después de conectar un token en la nube, los certificados almacenados en él estarán disponibles. Pero esto puede no ser suficiente: es necesario instalar los certificados raíz de CA, en los que se emiten los certificados personales. Es por eso que guardamos el certificado raíz durante el lanzamiento:

Ahora, en la configuración de la cuenta, debe instalar un certificado que se utilizará para firmar y cifrar letras:

Ahora puede firmar sus mensajes de manera segura:

Este mensaje puede ser aceptado por cualquier cliente de correo electrónico que admita la criptografía rusa, por ejemplo,
KMail :

Conclusión
Entonces, podemos decir que el mito se está convirtiendo en realidad. El alcance principal del token en la nube LS11CLOUD puede ser la gestión interna de documentos, el correo seguro y la banca.
El servicio en la nube LS11CLOUD con sus tokens en la nube puede ser muy útil para los desarrolladores de aplicaciones que usan tokens / tarjetas inteligentes PKCS # 11.

PD: puse mi certificado personal en un token en la nube, lo conecté al complemento de servicios públicos y pagué la deuda tributaria a través del
portal GOSUSLOG . OC - Linux.