Virtual eToken pkcs11 implementación para desarrollo y testing.

Simula un etoken conectado al equipo para la firma de documentos

Descarga

Descargue la última versión estable.

$ mkdir virtualtoken/ && cd virtualtoken/
$ wget https://github.com/mvilche/virtualtoken-pkcs11/releases/download/v1.3/virtualtoken
$ chmod +x virtualtoken

Instalación

Requisitos previos

  • Compatible unicamente con Linux en Ubuntu, Debian, Fedora y CentOS
  • Paquetes sudo y pidof instalados en el equipo antes de comenzar la instalación.
  • El usuario que ejecutará la instalación debe pertenecer al grupo sudo para la instalación de dependencias.

Iniciar

si es el primer inicio el software realizará la instalación de las dependencias necesarias.

$ ./virtualtoken -start

Finalizada la instalación del virtualtoken se deberá reiniciar la sesión del usuario o reiniciar el equipo para que los cambios surjan efecto antes de la inicialización del virtualtoken.

Inicializar virtualtoken

El proceso de inicialización definira un etoken virtual en el slot 3 con un pin númerico (123456). Adicionalmente creara un juego de llaves y certificados autofirmados que serán importados dentro del etoken.

$ ./virtualtoken -start
$ ./virtualtoken -init

Detener

Detiene el virtualtoken

$ ./virtualtoken -stop

Datos del virtualtoken

  • Pin: 123456
  • Slot: 3
  • Driver: PATH/TO/softoken/lib/opencryptoki/libopencryptoki.so

Comandos utiles pkcs11-tools

Acceder y listar etoken

pkcs11-tool --module PATH/TO/softoken/lib/opencryptoki/libopencryptoki.so -L --slot 3 --login --pin 123456

Ver certificados dentro del virtualtoken

pkcs11-tool --module PATH/TO/softoken/lib/opencryptoki/libopencryptoki.so -L --slot 3 --list-objects --type cert

Generar nuevo certificado e importarlo dentro del virtualetoken

Generar clave privada y certificado

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out cert.pem -subj "/CN=testing"

Convertir certificado a DER

openssl x509 -inform pem -outform der -in cert.pem -out cert.der

Convertir clave privada a DER

openssl rsa -inform pem -outform der -in private.key -out key.der

Importar clave privada DER en virtualtoken

pkcs11-tool --module PATH/TO/softoken/lib/opencryptoki/libopencryptoki.so --slot 3 --login --pin 123456 --write-object key.der --type privkey --id 20 --label 'mi_cert'

Importar certificado DER en virtualtoken

pkcs11-tool --module PATH/TO/softoken/lib/opencryptoki/libopencryptoki.so --slot 3 --login --pin 123456 --write-object cert.der --type cert --id 20 --label 'mi_cert'

Verificar nuevo certificado

pkcs11-tool --module PATH/TO/softoken/lib/opencryptoki/libopencryptoki.so -L --slot 3 --list-objects --type cert