jueves, 1 de mayo de 2014

Instalando un Servidor de TimeStamping o TSA con Signserver usando HSM Thales ncipher o PKCS12


Bueno instalar un servidor de tiempo es una de las cosas mas sencillas gracias a SignServer, al inicio tuve problemas para entender su lógica pero una vez pasado este nivel fue todo sencillo, incluso unir el servicio a un equipo HSM (Hardware Security Module - Ncipher).
Primero les explico la lógica de funcionamiento de SignServer. Bueno Signserver es en realidad una plataforma al estilo contenedor de servicios, algo así como un framework en el cual puedes construir una aplicación que haga uso de sus recursos para poder brindar algún servicio relacionado con firma digital hecha por un servidor enlazado a un certificado digital (ojo el certificado no pertenece a una persona sino al sistema o al equipo servidor o en este caso al certificado del server de timestamping), bueno uno de estos servicios es la firma de tiempo o timestamping que para abreviar y entender mejor también es una firma digital, al igual que si nosotros usáramos un acrobat reader, solo que con mayores funcionalidades y mayor velocidad.
Para colocar un ejemplo a lo mencionado anteriormente, SignServer no solo puede ser un servidor de tiempo sino un firmador de documentos en formato pdf de forma masiva o firmador de otros formatos incluso de openoffice (es parte de las bondades de signserver). A este servicio en Perú se le conoce como intermediación electrónica, donde el equipo servidor es el propietario del certificado digital que se usara para firmar digitalmente.
Bueno entrando un poco mas a detalle a cada servicio montado sobre SignServer se le conoce como "Worker" y el nombre colocado a cada Worker puede ser customizado.

Bueno ahora vamos manos a la obra. Colocare un listado de pasos ordenados para instalar SignServer (3.4.2) y configurar.
ANTECEDENTE.- asumimos que ya tenemos instalado un servidor linux (el que desee, al final todos son buenos), Java Virtual Machine (yo uso la versión 6.45 de oracle no recomiendo mayor a la version 7.25, aquí un post mio si tuvieran problemas en este paso), un servidor de aplicaciones Jboss 5.1 (no probé con versiones superiores pero no se recomienda) y el aplicativo apache-ant. Ah lo olvidaba deben parchar manualmente a Jboss51 ya que hay un pequeño problema de configuración para brindar servicios web (esta recomendado en la misma pagina de SignServer "6. Configure application server").

1.- Primer paso recomiendo seguir el manual de instalación que se encuentra en la misma pagina de SignServer y usar este material mas para casos de querer usar un HSM o hasta un PKCS12 como repositorio del certificado digital o para mayor detalle. Pero de todas maneras abarcare todos los pasos de instalación.

2.- #copio la libreria de mysql a jboss, luego copio tambien las bc*
#preparo el archivo tsa.properties
#hago path para ANT y creo la variable ANT_HOME y luego uso ant y ant deploy
./signserver.sh setproperties conf_tany/tsa.properties
./signserver.sh getconfig 1
./signserver.sh reload 1
./signserver.sh getconfig 1
./signserver.sh uploadsignercertificate 1 glob /home/tany/Descargas/tsa.pem
./signserver.sh uploadsignercertificatechain 1 glob /home/tany/Descargas/junto.pem
./signserver.sh reload 1

Solo para terminar para invocar al Servicio de TimeStamping (SignServer) este se realiza a traves de una url, al estilo web o bueno un webservice. 

NOTA 1.- La configuración mostrada arriba se realizo en un servidor Linux RedHat 6.2. (Recomiendo instalar SignServer en Linux porque te hace la vida mas sencilla)
NOTA 2.- En caso que en lugar un HSM quieran utiliza un hardware mas modesto como un smartcard o un token, solo necesitan tener el driver o biblioteca pkcs11. En proximos posts prometo hablar mas sobre este hardware.
NOTA 3.- Si ya instalaron el software libre EjbCA unido a algun equipo HSM o Pkcs11 veran que en SignServer es muy similar, y como no serlo si es la misma empresa que provee EjbCA y SignServer.

No hay comentarios.:

Publicar un comentario