Uso de mecanismos de token criptográfico PKCS # 11 en la plataforma Android

Ha llegado el momento de utilizar los mecanismos criptográficos PKCS # 1 1 en la plataforma Android. Alguien podría decir que no hay tokens de hardware para Android. Pero, si esto es así, entonces esto es solo un fenómeno temporal. Pero hoy puede colocar un token de software o usar un token en la nube . Dado que la utilidad cryptoarmpkcs-A está desarrollada para la plataforma Android usando Androwish en el lenguaje de script Tcl / Tk, el paquete TclPKCS11 versión 1.0.1 se usa para conectar tokens .

Al mismo tiempo, no se requirió el procesamiento del paquete. Todo lo que se hizo fue agregar un script al proyecto para construir una biblioteca de paquetes escrita en C, para Android y la distribución de la biblioteca en sí. Se decidió agregar las bibliotecas de software ls11sw2016 y tokens cloud ls11cloud para varias plataformas al mismo proyecto.

El resto es simple. Agregue los botones para seleccionar el token de trabajo a la segunda ventana y obtenga:

  • token de software ls11sw2016;
  • token de nube ls11cloud;
  • otro token PKCS11 # 11.



Por defecto, se conecta un token de software. Si no se creó anteriormente, se propondrá inicializarlo. Recuerde que la inicialización del token consiste en asignar una etiqueta y establecer un código PIN personalizado:



tenga en cuenta que el token de software está diseñado de acuerdo con las recomendaciones de PKCS # 11 v.2.40 y TK-26. Para obtener información completa sobre el token, incluidos los mecanismos criptográficos compatibles, simplemente haga clic en el botón "Acerca del token y su criptografía" en el menú principal ("Funcional"). Hoy, ni un solo token de hardware con soporte para la criptografía rusa tiene esta funcionalidad:



Surge la pregunta: - cómo instalar un certificado personal para un token. Hay dos opciones La primera opción es importar el certificado y su par de claves a través del contenedor PKCS # 12 (el botón "Trabajar con PKCS12 / PFX"): La



segunda opción implica crear una solicitud (PKCS # 10) para el certificado. Esta opción (la función "Solicitud de certificado" ) proporciona generación de pares de claves directamente en el token:



ahora puede guardar la solicitud de unidades flash e ir al centro de certificación con los documentos para el certificado. Si va a utilizar el certificado para fines de prueba o dentro de una empresa, entonces la utilidad CAFL63 también se puede utilizar para emitir el certificado . El certificado recibido se importa al token en la pestaña "Ver Solicitud / Certificado":



Ahora puede firmar documentos con certificados almacenados en el token utilizando la pestaña "Firmar un documento" .

En el siguiente artículo, le diremos cómo conectarse a un token en la nube. Y la pregunta sigue siendo hasta ahora con la transferencia de funciones de generación de certificados a la plataforma móvil. ¿Hay necesidad de esto?

La versión actualizada de la utilidad cryptoarmpkcs-A para la plataforma Android se puede descargar aquí:


PS Saving Journal


Para compilar el paquete, se utiliza la utilidad de huesos del SDK de AndroWish . Después de ensamblar con éxito el paquete, aparece el botón Instalar y ejecutar, luego de hacer clic en el cual se abre una ventana de registro, que muestra la salida de adb logcat (instalación de registro de Android Debug Bridge). La desventaja de esta pantalla es que es difícil encontrar un mensaje de error en ella, especialmente con el indicador "V" (detallado) activado. Por lo tanto, se agregó el botón "Guardar", que guarda el registro en el archivo /tmp/logBone.txt (estamos hablando de Linux):



con el advenimiento de este botón, el proceso de depuración de la aplicación se simplificó enormemente.

Para agregar un botón, simplemente agregue el siguiente código al archivo de huesos después de la línea 2591:

	    ttk::button $l.frame.clear -text "Clear" -width 6 \
		-command [list adb_logcat_clear $l.text]
# 
	    ttk::button $l.frame.save -text "Save" -width 6 \
		-command [list adb_logcat_save $l.text]

	    ttk::button $l.frame.run -text "Run" -width 6 \
		-command [list adb_logcat_run $l]

El comando guardar adb_logcat_save tiene la forma:

proc adb_logcat_save {text} {
    set tt [$text get 1.0 end]
    set file "/tmp/logBone.txt"
    file delete -force $file
  #   
    set fd [open $file w]
    chan configure $fd -translation binary
    puts -nonewline $fd $tt
    close $fd
}

All Articles