
Una vez más, mirando la funcionalidad de la utilidad
cryptoarmpkcs , noté que, principalmente trabajando con tokens / tarjetas inteligentes criptográficas PKCS # 11, no tiene una funcionalidad incorporada para su configuración. Estamos hablando de
inicializar tokens , establecer códigos PIN, etc. Y se decidió agregar esta funcionalidad. El primer paso fue expandir la funcionalidad del paquete
TclPKCS11 , cuya biblioteca está escrita en
C.Nuevas características de TclPKCS11
Tres nuevas características aparecieron en el paquete:
::pki::pkcs11::inittoken <handle> <slotId> <SO-pin> <label for token>
::pki::pkcs11::inituserpin <handle> <slotId> <SO-pin> <USER-pin>
::pki::pkcs11::setpin <handle> <slotId> <so | user> <oldpin> <newpin>
La primera función :: pki :: pkcs11 :: inittoken es inicializar el token. Debe tenerse en cuenta que si esta función se aplica a un token de trabajo, todos los objetos en él serán destruidos.
La segunda función :: pki :: pkcs11 :: inituserpin es para inicializar un PIN de usuario (PIN DE USUARIO).
Después de la inicialización inicial del código PIN del usuario, debe cambiarse inmediatamente al código PIN que se utilizará en el futuro, y debe almacenarse, al igual que el SO-PIN, lejos de miradas indiscretas. Por razones de seguridad, los tokens, por regla general, no le permiten iniciar sesión con el código PIN inicial.
Para cambiar los códigos PIN, se utiliza una tercera función, a saber :: pki :: pkcs11 :: setpin. Esta función le permite cambiar tanto un PIN de usuario como un SO-PIN.
También se debe tener en cuenta que los tokens, por regla general, no permiten restaurar el SO-PIN original (predeterminado). Pero si reinicializa el token, nuevamente obtendrá el SO-PIN predeterminado. La implementación del paquete TclPKCS11 se puede ver en
github .
Ahora, teniendo a mano el paquete TclPKCS11 con nuevas funciones, no fue difícil implementar una GUI para estas funciones:

Fichas de entrenamiento
Pero antes de usarlos, prestemos atención al hecho de que se ha agregado otro botón "Crear tokens" a la funcionalidad de la utilidad.
Esto se debe al hecho de que no todos tienen el token de hardware PKCS # 11 con soporte para la criptografía rusa, y si es así, da miedo usarlo con fines educativos. Y solo para que la utilidad pueda usarse fácilmente con fines educativos, en primer lugar, apareció el botón "Crear tokens". Al hacer clic en este botón, verá instrucciones sobre cómo obtener software o tokens en la nube:

Estos tokens implementan las últimas recomendaciones
TK-26 para PKCS # 11 v.2.40.
Discutiremos brevemente cómo obtener un token en la nube. Descargue el paquete de distribución necesario, descomprímalo si es necesario y ejecútelo. Si no tenemos un token en la nube, recibiremos el siguiente mensaje:

Como todavía no tenemos un token en la nube, haga clic en el botón "Registrarse en la nube":

Después de completar los campos, haga clic en el botón "Finalizar":

Dado que estamos hablando principalmente de capacitación, podemos guardar una contraseña para acceder a la nube (pero no al token) en el lugar de trabajo:

Inicialización de token
Ahora que estamos registrados en la nube, salimos de la utilidad guils11cloud_conf y regresamos a la utilidad cryptoarmpkcs para configurar el token de la nube. Cabe señalar aquí que la biblioteca de tokens en la nube se guardará en la carpeta ls11cloud creada en el directorio de inicio del usuario. Es esta biblioteca la que deberá seleccionarse como la biblioteca PKCS # 11 para el token de la nube. Después de elegir una biblioteca, puede ver los mecanismos criptográficos compatibles:

Volvemos a inicializar el token de la nube haciendo clic en el botón "Configuración de token". Seleccionamos la operación "Inicializar el token", completamos los campos (recuerde que el SO-PIN predeterminado es 87654321) y hacemos clic en el botón "Realizar operación":

Todos los tokens están listos para funcionar. Pero no olvide cambiar el PIN del SO y cambiar periódicamente el PIN del usuario. Usando un esquema similar, puede crear un token de software. Los interesados pueden probar:

Ahora podemos almacenar nuestros certificados personales en ellos, firmar documentos, hacer todo lo que se escribió en esta serie de artículos.
Próximas innovaciones en PKI / PKI
El 7 de noviembre de 2019, la Duma del Estado adoptó en primera lectura las enmiendas a la ley "Sobre firmas electrónicas". Esta
enmienda se aplica a todas las organizaciones y empresarios individuales, ya que las reglas para la emisión de firmas electrónicas cambiarán.
Si entendí todo correctamente, las personas jurídicas y los empresarios individuales podrán recibir certificados calificados solo en el Servicio de Impuestos Federales y organizaciones financieras en el Banco Central de la Federación de Rusia. Y solo usando estos certificados se puede configurar
Firma electrónica calificada mejorada (Cades-XLT1).
Los centros de certificación (CA) acreditados por el Ministerio de Telecomunicaciones y Comunicaciones Masivas podrán emitir dichos certificados solo a individuos.
Además, los requisitos para las AC cambiarán significativamente: la equidad debe aumentarse de 7 millones a 500 millones - 1 billón, el monto de la responsabilidad del seguro aumenta de 30 millones a 300-500 millones de rublos, el período de acreditación se reduce de 5 años a 3 años.
El proyecto de ley ya ha provocado fuertes críticas. Las principales quejas son que los cambios conducirán al cierre de la gran mayoría de las AC comerciales, requieren gastos presupuestarios significativos para expandir y mantener las capacidades del Servicio de Impuestos Federales de California, así como la concentración de todo tipo de riesgos en una sola infraestructura, que se convertirá en un objetivo conveniente para los ataques cibernéticos.
Hay una enmienda más: la obligación de firmar los documentos de la compañía no por uno sino por dos firmas calificadas mejoradas al mismo tiempo. El jefe de la organización tendrá que poner en el documento la firma de la entidad legal y una firma digital personal como individuo.
Y aquí la utilidad cryptoarmpkcs será muy, muy útil, porque su funcionalidad le permite colocar
varias firmas debajo del documento, así como ver quién y cuándo firmó el documento:

PD: para aquellos que desean obtener utilidades por primera vez, esto todavía se puede hacer aquí:
Distribuciones para Linux, OS X y Windows