• PKCS # 11 Desarrollo sin hardware: SoftHSM como tarjeta inteligente o sustitución de hardware HSM

    A pedido de las personas que desean probar software de firma digital, y no disponen de un dispositivo hardware token, en este post te mostraré cómo tener tu SoftHSM instalado y configurado para usarlo como PKCS # 11 token.


    ¿Alguna vez has querido experimentar con PKCS # 11? El problema es que por lo general necesita un pedazo de hardware, que se puede tratar con PKCS # 11.
    Antecedentes: PKCS # 11 (actual especificación) es un estándar para la criptografía asimétrica y define una interfaz para utilizar fichas criptográficas. Esto se puede usar, por ejemplo, para dirigir tarjetas inteligentes o tokens USB. Las tarjetas internas PCI de acelerador criptográfico con PKCS # 11 también están integradas en el entorno de la empresa.
    Instalación

    Descargue la última versión 2.0.0 de SoftHSM desde https://www.opendnssec.org/2015/07/softhsm-2-0-0/. (No olvide comprobar la firma o sumas de comprobación). Entonces el archivo tiene que ser desempaquetado y el conjunto compilado.

    1
    2
    3
    4
    5
    
    $ tar xzf softhsm-2.0.0.tgz
    $ cd softhsm-2.0.0/
    $ ./configure 
    $ make
    $ sudo make install

    Con el ./configure uno todavía puede hacer algunos ajustes, que para mí, sin embargo, en la configuración estándar están perfectamente en orden. Así se utiliza OpenSSL y las claves se almacenan en forma de archivo. Para completar la compilación, necesita algunos paquetes:

    1
    
    $ sudo apt-get install build-essential openssl libssl-dev

    Después de la instalación deberías poder llamar a softhsm2-util test-



    1
    2
    
    $ softhsm2-util -v
    2.0.0
    configuración

    Inmediatamente después de la instalación, la inicialización sin root no se puede realizar ya que no se puede acceder a la ruta predeterminada para almacenar el token. Por lo tanto, tienes que cambiar la configuración con sudo gedit /etc/softhsm2.conf a una ruta diferente:



    1
    2
    3
    4
    5
    
    # SoftHSM v2 configuration file
    directories.tokendir = /home/wladislaw/devtools/softhsm/tokens/
    objectstore.backend = file
    # ERROR, WARNING, INFO, DEBUG
    log.level = DEBUG
    Alternativamente, puede crear su propio archivo de configuración y publicar la ruta a él con la exportación SOFTHSM2_CONF = / home / user / config.file. En este archivo, puede especificar una ruta específica del usuario para almacenar los tokens.

    Ahora puede configurar su token virtual. Tienes que asignar un usuario y un PIN. Cuando se utiliza el PIN de usuario para acceder al material clave, se utiliza el pin del agente de seguridad (SO) cuando desea restablecer el dispositivo o realizar otras tareas administrativas. Al final, el mensaje El token se ha inicializado. aparece.



    1
    2
    3
    4
    5
    6
    7
    8
    
    $ softhsm2-util --init-token --slot 0 --label "wlami Token 1"
    *** SO PIN (4-255 characters) ***
    Please enter SO PIN: 
    Please reenter SO PIN: 
    *** User PIN (4-255 characters) ***
    Please enter user PIN: 
    Please reenter user PIN: 
    The token has been initialized.
    Con softhsm2-util --show-slots se puede comprobar el resultado. Los valores Token presente e Inicializado deben ser ambos establecidos en yes.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    $ softhsm2-util --show-slots
    Available slots:
    Slot 0
        Slot info:
            Description:      SoftHSM slot 0                                                  
            Manufacturer ID:  SoftHSM project                 
            Hardware version: 2.0
            Firmware version: 2.0
            Token present:    yes
        Token info:
            Manufacturer ID:  SoftHSM project                 
            Model:            SoftHSM v2      
            Hardware version: 2.0
            Firmware version: 2.0
            Serial number:    xxx
            Initialized:      yes
            User PIN init.:   yes
            Label:            wlami Token 1           
    Ahora se puede usar el token. Para ello, normalmente necesita hacer referencia a la biblioteca específica de tokens en su aplicación que desea acceder al token. Para SoftHSM, esto es /usr/local/lib/softhsm/libsofthsm2.so. ¡Utilizo XCA para la gestión de claves y certificados, que también es compatible con PKCS # 11 y funciona maravillosamente con SoftHSM!
  • 0 Comentarios:

    Publicar un comentario

    ACCEDE A CODIGO FUENTE GRATIS

    Compartiendo código a través de una plataforma gratuita, compartiendo proyectos y codigo siempre con el lema de Educar es Compartir.

    Oficina Central

    DIRECCIÓN

    Comercial el Rey, Local B58

    CORREO

    angel@nubeclan.com
    soporte@nubeclan.com

    TELEFONO

    +591 326 4587

    MOVILES

    +591 600 07721

    EDUCAR ES COMPARTIR

    Blog

    GitHub

    REDES SOCIALES

    Facebook

    Twiter

    LinkedIn