Está en la página 1de 12

OpenTSA

Yessica De Ascencao

OPENTSA

Elaborado por: Yessica De Ascencao


yessimar15@gmail.com
OpenTSA
Yessica De Ascencao

OPENTSA

1.- Marco teórico

El objetivo del proyecto OpenTSA es desarrollar una aplicación cliente y servidor


compatible, estable, segura, open source y libre para una autoridad de estampado de tiempo
de acuerdo a los estándares y directivas expuestas en el RFC 3161 Internet X.509 Public
Key Infrastructure Time-Stamp Protocol (TSP).[4]

Este proyecto ofrece un conjunto de parches a OpenSSL para incorporar soporte al


estampado de tiempo en la popular suite open source de criptografía pública. Para ello
incorpora:

● El cliente de Estampado de Tiempo: una simple línea de comando que se puede


utilizar para crear y enviar solicitudes de estampado de tiempo a través de HTTP o
HTTPS a un TSS, y para recibir y verificar las respuestas. Esta utilidad se consigue
con el parche para openSSL v0.9.8 o directamente en openSSL v1.0.0.

Comando para creación y envío de solicitud:


openssl ts -query [-rand file:file...] [-config configfile] [-data file_to_hash] [-digest
digest_bytes] [-md2|-md4|-md5|-sha|-sha1|-mdc2|-ripemd160|...] [-policy object_id] [-
no_nonce] [-cert] [-in request.tsq] [-out request.tsq] [-text]

Comando para verificar la respuesta recibida:


openssl ts -verify [-data file_to_hash] [-digest digest_bytes] [-queryfile request.tsq] [-in
response.tsr] [-token_in] [-CApath trusted_cert_path] [-CAfile trusted_certs.pem] [-
untrusted cert_file.pem

● El módulo de Estampado de Tiempo para Apache: este paquete consiste en una


extensión para el servidor Apache HTTP. Utilizando la funcionalidad ofrecida por el
parche de estampado de tiempo de OpenSSL, este módulo funciona como un servidor
compatible con el RFC 3161 a través de protocolos de transporte HTTP y HTTPS,
expidiendo tokens de estampado de tiempo que pueden ser almacenados en una
base de datos MySQL, Postgres o FireBird.

Comando para la generación y envío de la respuesta:


openssl ts -reply [-config configfile] [-section tsa_section] [-queryfile request.tsq] [-
passin password_src] [-signer tsa_cert.pem] [-inkey private.pem] [-chain
certs_file.pem] [-policy object_id] [-in response.tsr] [-token_in] [-out response.tsr] [-
token_out] [-text] [-engine id]

Ahora bien, ¿cómo se usa?; cuando se tiene un archivo o una data, se aplica openssl
ts -query para obtener el timestamping request y luego se manda a firmar el request en la
autoridad de estampado de tiempo. El proveedor de estampado de tiempo recibe el request y
aplica openssl ts -reply para generar el token de estampado de tiempo, y envía la repuesta al
solicitante. El emisor distribuye la estampilla recibida junto con la data, y la persona
OpenTSA
Yessica De Ascencao

interesada puede verificar la integridad y existencia de la data teniendo la data, la estampilla


y el certificado del proveedor de estampado de tiempo, mediante la aplicación de openssl ts -
verify.

2.- Instalación y configuración

De acuerdo a la descripción anterior, se tienen dos ambientes por instalar; el cliente y


el servidor. El cliente de OpenTSA consiste simplemente en la instalación del OpenSSL que
ofrece soporte para estampado de tiempo; openssl-1.0.0. Para ello es necesario instalar el
paquete build-essential; el cual contiene las librerías necesarias para compilar, y luego
descargar las fuentes desde la página oficial del proyecto, posteriormente ejecutar las
siguientes instrucciones:
● tar -xvf openssl-version-tar.gz
● cd openssl-version
● ./config
● make
● make install

Nota: se recomienda instalar la ultima versión estable de openssl publicada en fecha


recientes.

Ahora bien, del lado del servidor se tiene un proceso más complejo. Para la instalación
de esta aplicación se requieren tener previamente instalados otros paquetes, en este mismo
orden, así como también las librerías de build-essential:
● Un sistema de gestión de base de datos; MySQL, Postgres o FireBird, usaremos
MySQL, la cual descargamos e instalamos desde los repositorios de Debian.
● OpenSSL en su última versión con soporte a TS.
tar -xvf openssl-version-tar.gz
cd openssl-version
./config
make
make install
● Apache, versión httpd-2.0.59.
tar -xvf httpd-2.0.59.tar.gz
cd httpd-2.0.59
./configure
make
make install

El primer paso consiste en instalar el módulo TSA en el servidor, para ello es


necesario descargar las fuentes de “mod_tsa”, versión 2006, desde la fuente de OpenTSA e
instalar el complemento apache2-prefork-dev de apache que ofrece soporte para apxs y
apachectl; librerías que permiten cargar módulos y ejecutar el servicio de apache,
respectivamente. Una vez se disponga del paquete es necesario realizar un cambio al
Makefile de las fuentes del “mod_tsa”; dado que el apache es compilado, se requiere dar la
ruta de las librerías antes instaladas.. En las líneas 21 y 22 del Makefile se deben cambiar a:
OpenTSA
Yessica De Ascencao

APXS=apxs por APXS=/usr/local/apache2/bin/apxs


APACHECTL=apachectl por APACHECTL=/usr/local/apache2/bin/apachectl

El próximo paso es agregar el módulo mod_tsa.so (se puede conseguir en


http://www.mediafire.com/?3zrc765un2az6mp); debe ser agregado previamente, al
repositorio de módulos de apache /usr/local/apache2/modules. Seguidamente se agregan los
módulos y el archivo de configuración de “mod_tsa” al archivo de configuración de apache; el
cual se encuentra en /usr/local/apache2/conf/httpd.conf:

ServerName localhost
Para indicar el servidor donde se está implementando el servicio.

LoadModule tsa_module /usr/local/apache2/modules/mod_tsa.so


Para que al iniciar apache se levante el modulo que ofrecerá el soporte para
estampado de tiempo. A veces se requiere añadir esta línea dos veces para
lograr cargar el módulo.
Include /path/mod_tsa/tsa.conf
Añadir el archivo de configuración del mod_tsa, para cargar las directivas
correspondientes.

Luego se debe proceder a compilar las fuentes pero indicándole dónde se encuentran
los binarios de OpenSSL y qué tipo de gestión de base de datos utilizaremos:

make OPENSSL=<openssl_root> # TS_MYSQL=1 TS_FBSQL=1 TS_PGSQL=1,


donde openss_root es /usr/local/ssl y en nuestro caso usamos el gestor MySQl:

make OPENSSL=/usr/local/ssl TS:MYSQL=1

Ahora se procede a finalizar la instalación del modulo de OpenTSA para apache,


ejecutando como root o administrador, la instrucción:

make install

Una vez finalizada la instalación del módulo, se debe terminar de configurar la base de
datos, los certificados digitales y el archivo de configuración del “mod_tsa”. Para completar
la estructura que conforma el servidor de Estampado de Tiempo, es preciso contar con una
base de datos para almacenar los tokens de estampado de tiempo que se generen y envíen,
por lo cual se crea una base de datos con el gestor MySQL. La estructura de dicha base de
datos está conformada por una tabla llamada “token” y los siguientes campos:
OpenTSA
Yessica De Ascencao

Campo Valor
token_id Serial unívoco del token.
token_date Fecha y hora de emisión del token.
Codificación DER para el PKCS7 del
token_pkcs7 token del estampado, en formato
binario.

El script para la creación de la tabla lo podemos encontrar en el paquete “mod_tsa”, y


es el siguiente:

create table token (


token_id varchar(40) not null primary key,
token_date datetime not null,
token_pkcs7 blob not null
);

y se ejecuta con la siguiente instrucción:

mysql -h <mysql_host> <database> -p < mysql_create.sql

Luego se debe crear la clave privada, así como también el certificado para la TSS-
Time Stamping Server o Servidor de Estampado de Tiempo, en formato “.pem”. Ahora bien,
antes de poder generar un certificado es necesario contar con una estructura PKI.

Para crear la cadena de confianza con OpenSSL, se debe:

1. Crear la clave privada y el certificado autofirmado de la AC:


openssl req -x509 -newkey rsa:2048 -keyout cakey.pem -days 3650 -sha256 -out
cacert.pem

Con este comando creamos un CA para certificados X509 con algoritmo de cifrado rsa
de 2048 bytes. Con el -keyout le indicamos que la clave privada de nuestra CA se
almacene en el fichero cakey.pem, con algoritmo de firma sha256 y la clave publica
-out en el cacert.pem. Seguidamente pedirá un password para nuestra CA y se lo
damos. También pedirá una serie de datos por ejemplo país, nombre de empresa que
nos identifica como CA, entre otros. Y el parámetro -days con el que indicamos el
tiempo de validez del certificado.[3]

2. Seguidamente se deben agregar algunos parámetros en el archivo de configuración


del openSSL para poder generar certificados para estampado de tiempo.

El archivo de configuración se encuentra en: /usr/local/ssl/openssl.cnf, y para poder


establecer los tipos de extensiones que se emitirán para los certificados, debemos
ubicarnos en la sección “[usr_cert]” del archivo de configuración y añadir:
OpenTSA
Yessica De Ascencao

[ usr_cert ] 

# These extensions are added when 'ca' signs a request. 
 
#   This   goes   against   PKIX   guidelines   but   some   CAs   do   it   and   some 
software 
#  requires this to avoid interpreting an end user certificate  as  a 
CA. 

basicConstraints=CA:FALSE 

# Here are some examples of the usage of nsCertType. If it is omitted 
# the certificate can be used for anything *except* object signing. 

# This is OK for an SSL server. 
# nsCertType = server 

# For an object signing certificate this would be used. 
# nsCertType = objsign 

# For normal client use this is typical 
# nsCertType = client, email 

# and for everything including object signing: 
# nsCertType = client, email, objsign 

# This is typical in keyUsage for a client certificate. 
  keyUsage = nonRepudiation, digitalSignature

# This will be displayed in Netscape's comment listbox. 
# nsComment = "OpenSSL Generated Certificate" 

# PKIX recommendations harmless if included in all certificates. 
subjectKeyIdentifier=hash 
authorityKeyIdentifier=keyid,issuer 

# This stuff is for subjectAltName and issuerAltname. 
# Import the email address. 
# subjectAltName=email:tss@suscerte.gob.ve 
# An alternative to produce certificates that aren't 
# deprecated according to PKIX. 
# subjectAltName=email:move 

# Copy subject details 
# issuerAltName=issuer:copy 

#nsCaRevocationUrl = http://www.domain.dom/ca­crl.pem 
#nsBaseUrl 
OpenTSA
Yessica De Ascencao

#nsRevocationUrl 
#nsRenewalUrl 
#nsCaPolicyUrl 
#nsSslServerName 

# This is required for TSA certificates. 
  extendedKeyUsage = critical,timeStamping 

3. Luego creamos el certificado para el TSS; OpenTSA. Para crear la clave privada:
openssl genrsa -des3 -out tsskey.pem -passout pass:123456 2048

Con esto se genera la clave privada, que tendrá un algoritmo de cifrado triple des (-
des3) de 2048 bits y se almacenara en el fichero (-out) serv-priv.pem y con el
comando -passout pass: indicamos la frase para la clave privada.[3]

4. Generar el CSR:
openssl req -new -key tsskey.pem -passin pass:123456 -sha256 -out tssCSR.pem

Con req -new indicamos que es una petición. A la petición se le indica que clave
privada debe usar para generar la petición de certificado, con -key serv-priv.pem,
luego el password (-passing pass):mipassword, le indicamos el algoritmo a usar para
el resumen criptográfico -sha256 y como salida (-out) el nombre y extensión que
tendrá el fichero; petic-certificado-serv.perm.

5. Por último generamos el certificado digital:


openssl x509 -req -days 365 -in tssCSR.pem -CA cacert.pem -CAkey cakey.pem
-Cacreateserial -extfile openssl.cnf -extensions usr_cert -sha256 -out tssCRT.pem

Indicamos que será un certificado del tipo x509 cuya CA (-CA) esta definida en el
fichero cacert.pem, que usa como clave privada (-CAkey) el fichero cakey.pem y que
el certificado a generar tendrá las especificaciones definidas en el apartado anterior (-
req -in) las cuales están en el fichero de petición tssCSR.pem. El certificado tendrá
una validez de un año (-days 365).[3]

La primera vez que utilice la entidad emisora a firmar un certificado se puede utilizar la
opción CAcreateserial. Esta opción creará un archivo (ca.srl) que contiene un número
de serie. Para la próxima vez que se genere un certificado, la opción a utilizar será
CAserial (y no más-CAcreateserial), seguido con el nombre del archivo que contiene
su número de serie. Este archivo se incrementa cada vez que firme un nuevo
certificado. Este número de serie se podrá leer utilizando un navegador (una vez que
el certificado se importa a un formato PKCS12). Y podemos tener una idea del número
de certificados creados por una CA.[1]

Posteriormente le indicamos que el certificado es para estampado de tiempo, como


esto lo tenemos en nuestro fichero de configuración se lo indicamos poniendo -extfile y
nuestro fichero openssl.cnf, seguido del modulo a cargar -extensions usr_cert y
OpenTSA
Yessica De Ascencao

finalmente le decimos donde generar el certificado (-out) en el fichero tssCRT.pem.


Una vez lanzado el comando nos pedirá el password de la CA que lo emite y el fichero
se generará.[3] Obtendremos algo similar a esto:

Certificate: 
    Data: 
        Version: 3 (0x2) 
        Serial Number: 9 (0x9) 
        Signature Algorithm: sha256WithRSAEncryption 
                Issuer:   CN=Autoridad   de   Certificacion   Raiz,   C=VE,   L=Caracas, 
ST=Distrito   Capital,   O=Sistema   de   Certificacion   Electronica, 
OU=AC_Raiz/emailAddress=acraiz@dominio.com 
        Validity 
            Not Before: Mar 16 16:11:28 2011 GMT 
            Not After : Mar 15 23:59:59 2016 GMT 
                Subject:   CN=Autoridad   de   Estampado   de   Tiempo   ,   C=VE,   L=Caracas, 
ST=Distrito   Capital,   O=Sistema   de   Certificacion   Electronica, 
OU=AC_Raiz/emailAddress=acestampado@dominio.com 
        Subject Public Key Info: 
            Public Key Algorithm: rsaEncryption 
            RSA Public Key: (2048 bit) 
                Modulus (2048 bit): 
                    00:bd:65:e2:60:6c:e9:25:40:70:49:79:92:d6:a1: 
                    ba:e1:25:57:52:c1:b0:38:fc:9c:a7:34:0a:d3:c2: 
                    2c:b1:31:c4:0b:4d:ca:21:25:27:b2:5b:77:75:96: 
                    d4:8b:a3:31:c3:25:4e:9a:62:3e:2b:ac:2c:33:d2: 
                    c4:6c:9c:81:25:71:b1:13:79:e6:f4:43:19:08:b2: 
                    17:2f:ef:34:09:8b:70:02:15:89:be:3a:1b:76:d0: 
                    f9:d0:b4:f8:37:5d:e5:2c:4a:e2:7f:fb:0d:1d:c2: 
                    f2:8c:fe:04:b4:bf:fe:e5:35:1b:7f:35:85:e3:f9: 
                    71:12:e5:b6:18:83:57:49:9c:ee:dd:2a:35:5b:7a: 
                    cf:47:0d:a7:15:3b:80:91:04:2d:4f:99:b4:44:5e: 
                    c4:49:6d:42:ac:1c:7c:47:0a:2d:65:84:bc:71:57: 
                    39:27:23:dc:5b:2f:78:7a:3e:de:ab:9f:96:59:7e: 
                    03:a4:3e:c0:8d:cc:90:6d:5e:fa:27:2e:2c:b3:d1: 
                    87:dd:fb:b4:44:60:17:d2:32:58:e6:46:2c:3c:a3: 
                    ff:c3:80:c8:92:7f:94:4a:93:36:45:d4:a4:70:c7: 
                    ed:6c:9c:64:ae:97:ce:db:29:79:1f:ae:0b:f0:ef: 
                    eb:5b:36:b8:76:e5:d9:16:4f:c9:ba:72:b3:78:12: 
                    f2:c9 
                Exponent: 65537 (0x10001) 
        X509v3 extensions: 
            X509v3 Basic Constraints: critical 
                CA:TRUE, pathlen:1 
            X509v3 Subject Key Identifier: 
                FF:6C:CB:BF:DD:E7:14:2A:EC:D5:D1:BC:90:08:2D:E0:23:25:0E:66 
            X509v3 Authority Key Identifier: 
                keyid:06:67:50:45:48:10:15:DC:4C:44:DF:80:E5:A5:85:79:DB:39:75:F
D    DirName:/CN=Autoridad   de   Certificacion 
Raiz/C=VE/L=Caracas/ST=Distrito Capital/O=Sistema de Certificacion Electronica/
OU=AC_RAiz/emailAddress=acraiz@dominio.com 
                serial:03 

            X509v3 Key Usage: critical 
OpenTSA
Yessica De Ascencao

                Certificate Sign, CRL Sign 
    Signature Algorithm: sha256WithRSAEncryption 
        02:a7:3a:c7:a9:de:00:3d:2b:6b:35:8a:5a:50:af:bf:8f:4b: 
        fd:ec:b6:93:b9:27:93:70:1b:a1:79:ea:8f:61:6b:86:42:01: 
        e7:9c:cb:c2:57:22:aa:3f:5c:10:4d:35:2c:23:8d:6d:ab:75: 
        f2:45:88:d4:2f:30:a6:54:9b:a0:cd:84:da:e4:b0:c4:90:e2: 
        73:9a:42:d8:b1:ce:0b:6b:64:fe:9a:ea:37:91:8b:f3:0d:bf: 
        22:06:7f:47:9d:48:e7:c8:4c:3a:6f:7a:60:2d:5f:76:23:9d: 
        e4:b7:43:6b:72:13:30:b3:23:61:36:43:24:7e:d6:a7:60:11: 
        2a:94:a9:67:d7:0f:45:b3:66:36:11:af:c8:7b:8c:82:fe:f1: 
        9e:cc:35:88:88:e7:dd:46:65:62:a0:6f:47:0b:a8:a7:fd:ae: 
        54:97:5f:58:e9:f8:b0:f7:48:4c:e3:b1:ba:43:4a:09:85:3a: 
        1a:dc:64:01:26:9e:90:3d:ba:7d:10:b9:87:27:14:af:1b:20: 
        22:48:c2:db:5f:b9:92:4b:b0:a0:85:18:b3:d9:30:d6:06:51: 
        88:12:ad:ed:dc:e3:67:00:a6:fd:c1:54:8e:e8:59:63:9e:ef: 
        18:07:21:57:5e:68:88:54:f2:b9:f3:41:0e:d9:93:88:c6:f6: 
        f0:9c:8d:58:d5:7b:1c:a1:74:c7:f2:46:ee:d4:7b:3e:0b:69: 
        7c:67:16:50:d2:bc:f5:29:2a:d8:1f:71:fa:25:b0:59:df:0a: 
        9d:c6:29:05:7e:6e:99:f0:0f:66:e2:95:34:3f:e6:9d:8b:c7: 
        98:82:d5:f9:cf:5a:05:ed:47:70:67:9a:97:f8:8a:a7:3b:2b: 
        c6:d8:2f:d2:c8:24:13:19:3f:68:d0:08:52:72:bb:29:cb:ae: 
        62:b0:18:7c:10:ef:af:46:96:8c:79:ff:e1:73:38:91:e0:d6: 
        c4:03:15:be:31:68:1f:35:5d:7e:8a:84:76:44:1e:b9:91:af: 
        ba:b9:1d:47:db:89:60:4d:69:84:57:b5:30:a6:4d:84:d3:e9: 
        ab:7f:3e:74:2c:2f:c6:61:19:db:5f:11:0c:a6:6a:36:8e:ab: 
        97:93:5a:65:b0:da:42:ef:df:fc:71:09:b8:65:b3:4d:06:3c: 
        62:ff:a6:45:b5:5a:9f:51:4b:5b:18:d1:d1:74:16:07:e3:f1: 
        5e:f6:8f:38:26:91:ca:80:27:23:68:07:77:1b:2f:74:7f:fc: 
        18:61:d0:8a:79:7f:ca:7f:5b:d2:57:3a:4b:45:57:62:e1:a8: 
        53:6b:72:55:97:a4:09:dc:53:33:2c:25:ec:60:7a:37:c0:a9: 
        c4:11:66:93:60:9c:c5:77 

Ahora que tenemos los certificados digitales, se procede a configurar el openSSL y el


openTSA, buscamos en archivo /usr/local/ssl/openssl.cnf y se modifican las rutas y nombres
de los certificados digitales:

● En la sección [ CA_default ] , modificar:


dir = /path/, para nosotros es /root/certificados
certificate = $dir/certificadoTSA, para el plan piloto ACESTAMPADO-SHA1.pem

● En la sección [ tsa_config1 ], modificar:


dir = /path/, para nosotros es /root/certificados
signer_cert = $dir/certificadoTSS, el nuestro corresponde a dra_tss.pem
certs = $dir/certificadoAC, para el plan piloto ACESTAMPADO-SHA1.pem
signer_key = $dir/clavePrivada, la nuestra es dra_tss_key.pem

Posteriormente se abre el archivo /mod_tsa/tsa.conf y modificamos:

● Descomentar las siguientes líneas:


TSASerialFile conf/tsaserial
TSACryptoDevice builtin
OpenTSA
Yessica De Ascencao

TSAMySQLHost localhost
TSAMySQLPort 3306
TSAMySQLPassPhrase On

● Modificar las siguientes rutas y datos:


TSACertificate [ruta del certificado]
TSAKey [ruta de la clave privada]
TSAKeyPassPhrase Off
TSAMySQLUser [usuario]
TSAMySQLDatabase [nombre de la base de datos]
TSAMySQLUnixSocket /var/run/mysqld/mysqld.sock

El último paquete a instalar, consiste en la librería CURL de perl, la cual es una


herramienta de línea de comandos para la transferencia de datos con la sintaxis de dirección
URL; soporta los protocolos DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet y
TFTP.[7]

Se descarga y compila el paquete curl-7.21.4; en su última versión disponible para el


momento:
● tar -xvf curl-7.21.4.tar.gz
● cd curl-7.21.4
● ./configure
● make
● make install

Reiniciamos el servidor apache:


/usr/local/apache2/bin/apachectl -k restart

Revisamos los logs por posibles errores:


tail -f /usr/local/apache2/logs/error_log

Para finalizar la configuración del servidor, debemos agregar el demonio de apache a


los sistemas de inicio del servidor. Para ello creamos un script en /etc/init.d/ con la línea de
comando para iniciar el servidor:

#!/bin/sh
/usr/local/apache2/bin/apachectl -k restart
;;
esac

Le damos permisos 777 ó 700, y lo agregamos a los servicios con el siguiente comando:

sudo update-rc.d nombre_del_script defaults

Para concluir, los comandos a ejecutar en consola para peticiones, respuesta y


OpenTSA
Yessica De Ascencao

verificación de token de estampado de tiempo son:

● QUERY
./openssl ts -query -data /root/prueba -sha1 -cert -out request.tsq

● REPLY
./openssl ts -reply -config /usr/local/ssl/openssl.cnf -queryfile request.tsq -out
response.tsr

● VERIFY
./openssl ts -verify -data file -in response.tsr -CApath /ruta_certificados -CAfile
cert.pem
donde cert.pem debe contener concatenados todos los certificados correspondientes a
la cadena de confianza, desde la AC Raíz hasta la Autoridad de Estampado de
Tiempo.

● Petición a través de CURL a un agente externo


./openssl ts -query -data file -cert | tee request.tsq | curl -s -S -H 'Content-Type:
application/timestamp-query' --data-binary @- http://IP:Port/ -o response.tsr

3.- Paquetes y certificados modelo

Se pueden conseguir los paquetes utilizados en este manual, en la dirección:


http://www.mediafire.com/?0oer3qyqnwtfjj6, así como también los certificados modelo para la
AC Raíz y el Servidor de Estampado de Tiempo.
OpenTSA
Yessica De Ascencao

4.- Referencias

[1] Botte, Pascal. “Create and sign your server certificate”, 2004. En:
http://users.skynet.be/pascalbotte/art/server-cert.htm. Consultado el 22/02/2011.

[2] Bureado, José. “Estampillado de tiempo según RFC 3161 con software libre”, 2010. En:
http://www.bureado.com/archives/626. Consultado el 20/01/2011.

[3] García, Javier. “Certificado Digitales con OpenSSL I”, 2006. En:
http://bulma.net/body.phtml?nIdNoticia=2280. Consultado el 15/02/2011.

[4] Glózik, Zoltán. “OpenTSA”, 2006. En: http://www.opentsa.org/. Consultado el 18/01/2011.

[5] “OpenSSL command line tool”. En:


http://www.openssl.org/docs/apps/openssl.html#COMMAND_SUMMARY. Consultado el
18/01/2011.

[6] “Linux: Salida a pantalla y a fichero, Comando Tee” En :


http://anticanis.es/2008/06/24/linux-salida-a-pantalla-y-a-fichero-comando-tee/. Consultado el
25/02/2011.

[7] “Curl”. En: http://curl.haxx.se/ Consultado el 25/02/2011.