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

Uso de mecanismos de token criptográfico PKCS#11 en la plataforma Android Ha llegado el momento de utilizar criptografía Mecanismos PKCS#11 y en la plataforma Android. Algunos pueden decir que no existen tokens de hardware para Android. Pero si esto es así, entonces se trata sólo de un fenómeno temporal. Pero hoy puedes poner un token de software o usar token de nube. Desde la utilidad criptoarmpkcs-A está desarrollado para la plataforma Android usando Androwish en el lenguaje de scripting Tcl/Tk, luego el paquete se usa para conectar tokens TclPKCS11 versión 1.0.1.

En este caso, no fue necesario procesar el paquete. Todo lo que se hizo fue agregar un script al proyecto para construir la biblioteca de paquetes escrita en el lenguaje ellos mismos, para Android y la propia distribución de la biblioteca. Se decidió agregar al mismo proyecto bibliotecas de software ls11sw2016 y tokens de nube ls11cloud para varias plataformas.

Todo lo demás es sencillo. Agregamos botones para seleccionar un token que funcione en la segunda ventana y obtenemos:

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

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

De forma predeterminada, se conecta un token de software. Si no se ha creado previamente, se le pedirá que lo inicialice. Recordemos que inicialización de token Consiste en asignar una etiqueta y configurar un código PIN de usuario:

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

Tenga en cuenta que el token de software se desarrolló 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 admitidos, simplemente haga clic en el botón "Acerca del token y su criptografía" en el menú principal ("Funcional"). Hoy en día, ni un solo token de hardware que admita la criptografía rusa tiene esta funcionalidad:

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

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

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

La segunda opción consiste en crear una solicitud (PKCS#10) para un certificado, esta opción (función "Solicitud de certificado") prevé la generación de un par de claves directamente en el token:

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

Ahora puede guardar la solicitud en unidades flash e ir a centro de certificación para un certificado. Si va a utilizar el certificado con fines de prueba o internamente, también puede utilizar la utilidad para emitir un certificado. CAFL63. El certificado resultante se importa al token en la pestaña "Ver solicitud/certificado":

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

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

En el próximo artículo te diremos cómo conectarte a un token en la nube. Y la cuestión de transferir las funciones de generación de certificados a la plataforma móvil sigue abierta. ¿Es esto necesario?

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

PD Guardando el registro

Para construir el paquete, use la utilidad de huesos de SDK de AndroWish. Una vez que el paquete se ha creado correctamente, aparece el botón "Instalar y ejecutar" y, cuando se hace clic, se abre una ventana de registro que muestra el resultado de adb logcat (registrador de Android Debug Bridge). La desventaja de esta pantalla es que es difícil encontrar el mensaje de error, especialmente con el indicador "V" (detallado) habilitado. Por lo tanto, se agregó un botón “Guardar”, que guarda el registro en el archivo /tmp/logBone.txt (estamos hablando de Linux):

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

Con la llegada de este botón, el proceso de depuración de la aplicación se ha simplificado 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 de guardar adb_logcat_save tiene este aspecto:

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
}

Fuente: habr.com

Añadir un comentario