Time Stamp Authority

Free TSA proporciona una autoridad de sellado de tiempo de uso libre y gratuito. Los sellos de tiempo forman parte de la infraestructura de clave pública X.509 y tienen como objetivo garantizar la integridad de una determinada información. Demuestran o evidencian que un determinado archivo se ha mantenido inalterado en el tiempo a partir de una determinada fecha.

El "Sellado de tiempo confiable" es el proceso que garantiza las fechas de creación y/o modificación de ficheros electrónicos (ej. contratos, información de investigación, registros médicos, contenido web, etc). Es usado para demostrar la existencia de alguna información antes de una determinada fecha, imposibilitando que el dueño de dicha información pueda modificarla sin comprometer a su vez el sello de tiempo aplicado, (Leer).

Para sellar varios archivos, lo más simple es crear un fichero de texto con todos los hashes de los archivos deseados para posteriormente ejecutar sobre él un sellado de tiempo. Lógicamente se debe utilizar en la creación de ese fichero de texto un algoritmo de hash seguro, por ejemplo SHA-512.

FreeTSA también se ofrece la posibilidad de crear pantallazos de URLs con sellos de tiempo para evidenciar, como tercero de confianza un determinado contenido en linea. Buscar los ficheros previamente sellados en el historial de FreeTSA es también posible utilizando el hash del archivo sellado (no del fichero ".tsq"). El servicio es posibile utilizarlo dentro de la red de anonimato Tor mediante su dominio ".onion". Si usted desea implementar en su proyecto / negocio sellados de tiempo utilizando FreeTSA, puede ponerse en contacto conmigo si así lo desea. Usar responsablemente.

Desde dispositivos móviles es posible también realizar sellados de tiempo sin necesidad de instalar nada (Vídeo). Para tener un sellado de tiempo de una fotografía nada más tomarla simplemente hay que dirigirse previamente con el navegador a la sección "Sellado de tiempo online", hacer click sobre el botón "Elige un fichero...." y seleccionar "usar cámara". Una vez se tenga la fotografía o vídeo se puede descargar el sello (TimeStampResponse). Lógicamente también se podría seleccionar cualquier otro archivo que tengamos accesible en el sistema de ficheros del dispositivo para sellarlo.

FreeTSA ofrece servicios NTP y DNSCRYPT para la sincronización horaria y resolución cifrada de dominios respectivamente. La resolución DNSCRYPT (Puerto 553) no tiene ningún tipo de restricción (SPAM, Malware, Parental, ...), tampoco se guardan registros y la rotación de las llaves criptográficas se realiza cada 12 horas.

Guía extendida / Manuales de FreeTSA
Dominio de FreeTSA desde la red Tor: th3ccojidpgbgv5d.onion (https /http).
RFC 3161 TSA: Time-Stamp Protocol (TSP).
RFC 958 NTP: Network Time Protocol (NTP).
SSL Labs. Certificate Transparency NTP Pool Project associate membership.

Algoritmos soportados: md4 / md5 / rmd160 / sha / sha1 / sha224 / sha256 / sha384 / sha512.

Freetsa TSA Certificado: tsa.crt
Key modulus (sha256): 899ba3d9f777e2a74bdd34302bc06cb3f7a46ac1f565ee128f79fd5dab99d68b

Freetsa CA Certificado: cacert.pem
Key modulus (sha256): a4b1a0a81aef68be1cc985d0f83bd6539cfe84174587f900e15ffe3f65433056

Realizar sellados de tiempo



Crea un fichero-solicitud de sellado tsq (TimeStampQuery), el cual contiene el hash del fichero que queremos sellar.
$ openssl ts -query -data file.png -no_nonce -sha512 -out file.tsq
Envía la solicitud a freeTSA.org y espera el sello de tiempo en forma de fichero tsr (TimeStampRequest).
$ curl -H "Content-Type: application/timestamp-query" --data-binary '@file.tsq' https://freetsa.org/tsr > file.tsr
Con openssl se puede verificar el sello de tiempo (también se puede hacer online desde la web).
$ openssl ts -verify -in file.tsr -queryfile file.tsq -CAfile cacert.pem -untrusted tsa.crt
###########################################################
# 1. Crear un fichero solicitud de sellado (TimeStampQuery) usandod SHA 512.
###########################################################

$ openssl ts -query -data file.png -no_nonce -sha512 -out file.tsq

# Utilizando -cert, FreeTSA incluye tsa.crt en el fichero tsr devuelto. (Opcional)
# Si se ha utilizado "-cert" al crear el archivo tsq, la verificación del mismo no necesita de "-untrusted".

$ openssl ts -query -data file.png -no_nonce -sha512 -cert -out file.tsq

# Como sellar muchos ficheros fácilmente?

# Para realizar un sellado de multiples archivos se puede crear un listado con sus hashes SHA-512 y sellarlo.
# Empaquetar los ficheros en un archivo zip, rar, img, tar, etc y sellarlo sería otra opción igual de válida.

# Ejemplo: crear un listado con los hashes de todos los archivos del directorio /var/log/
$ find /var/log/ -type f -exec sha512sum {} + > compilation.txt

###########################################################
# 2. cURL: Realizar sellados de tiempo (HTTP / HTTPS / Tor).
###########################################################

$ curl -H "Content-Type: application/timestamp-query" --data-binary '@file.tsq' https://freetsa.org/tsr > file.tsr

# Utilizando la red Tor para sellar un fichero tsq.
$ curl -k --socks5-hostname 127.0.0.1:9050 -H "Content-Type: application/timestamp-query" --data-binary '@file.tsq' https://th3ccojidpgbgv5d.onion/tsr > file.tsr

# tsget es útil para sellar multiples solicitudes (tsq): https://www.openssl.org/docs/manmaster/apps/tsget.html

$ tsget -h https://freetsa.org/tsr file1.tsq file2.tsq file3.tsq

###########################################################
# 3. Verificar sellos de tiempo.
###########################################################

$ wget https://freetsa.org/files/tsa.crt
$ wget https://freetsa.org/files/cacert.pem

# Información el sellado de tiempo (fichero tsr).
$ openssl ts -reply -in fichero.tsr -text

# Dos formas de verificar la autenticidad del sellado.
$ openssl ts -verify -data fichero -in fichero.tsr -CAfile cacert.pem -untrusted tsa.crt 
$ openssl ts -verify -in fichero.tsr -queryfile fichero.tsq -CAfile cacert.pem -untrusted tsa.crt
Verification: OK
Descargar script: client.pl

Cómo utilizar el script "client.pl" para sellar mediante el estandar TSA TCP-based.
$ perl client.pl freetsa.org 318 file

client: tsq file: file.tsq 
client: tsr file: file.tsr 
client: [Connected to freetsa.org:318]
client: client: transfer of the file.tsq to the server completed 
client: 40	file.tsq


Sellado de tiempo online.



El fichero NO será subido al servidor. Descarga la solicitud o el sellado.
Selecione un fichero "tsq" y "tsr". Verificar.

URL Screenshots


URL screenshot: Firma + Sellado de tiempo de URLs. (Vídeo)

Algunas finalidades de una captura web (URL screenshot) sellada:
  • Contenido ilegal / No repudio de un determinado contenido digital.
  • Demostrar una edición o borrado de noticias controvertidas.
  • Apologías, calumnias, amenazas, insultos vertidos en Internet (redes sociales), estafas, phising, etc.
  • Temas de propiedad intelectual de artículos, fotografías, plagios, etc.
  • Publicación indebida de datos personales o confidenciales.
  • Simplemente demostrar la existencia de un determinado contenido en un determinado momento en el tiempo.
$ $ curl --data "screenshot=https://www.fsf.org/&delay=n" https://freetsa.org/screenshot.php > screenshot.pdf

# Curl + HTTP 2.0: $curl --http2
$ curl --data "screenshot=https://www.fsf.org/" https://freetsa.org/screenshot.php > screenshot.pdf
$ curl --data "screenshot=https://www.fsf.org/&delay=y" https://freetsa.org/screenshot.php > screenshot.pdf # (Voy a tener suerte)

# REST API en Tor: Simplemente se deben agregar las opciones "-k --socks5-hostname localhost:9050".

# Dominios ".onion" dentro de Internet.
$ curl -k --data "screenshot=https://th3ccojidpgbgv5d.onion/&delay=y&tor=y" https://freetsa.org/screenshot.php > screenshot2.pdf

# Dominios ".onion" dentro de la red Tor.
$ curl -k --socks5-hostname localhost:9050 --data "screenshot=https://th3ccojidpgbgv5d.onion/&delay=y&tor=y" https://th3ccojidpgbgv5d.onion/screenshot.php > screenshot2.pdf
Opción 1: Botón para hacer web-screenshot sellados (sin icono).
1. Arrastra este enlace "URL screenshot" a la barra o lista de marcadores con el ratón.
2. Cuando quiera una captura de una web que esté visitando, simplemente pulse sobre el marcador.

Opción 2: Botón para hacer web-screenshot sellados (con icono).
Integrando un botón para hacer capturas de pantalla selladas de webs desde el navegador. (Descargar bookmark).

- Firefox: Import Bookmark / Toolbar Button.
- Opera:Import Bookmark / Toolbar Button.
- Chrome: Import Bookmark / Toolbar Button.


Realizar una URL-Screenshot

Contenido de la web en formato PDF / PNG (adjunto) + firma con sellado de tiempo utilizando SHA-512. (Aproximadamente 25 segundos).
Browser agent: 'Mozilla/5.0 (X11; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0'

Otros servicios



Servicio OCSP: http://www.freetsa.org:2560
$ openssl ocsp -sha512 -CAfile cacert.pem -issuer cacert.pem -cert tsa.crt -url http://freetsa.org:2560 -resp_text

CRL (Revocation List): https://www.freetsa.org/crl/root_ca.crl
$ wget http://www.freetsa.org/crl/root_ca.crl
$ openssl crl -in root_ca.crl -noout -text

Buscar sello de tiemo mediante hash del fichero.

Hash:

Linea de comandos.
$ curl -s https://freetsa.org/logs.gz | gunzip -c | grep -i 2f9462a4dbcb4af4f05a0d5

NTP y servicio DNSCRYPT
# NTP Server: freetsa.org (IPv4 / IPv6)
$ ntpdate freetsa.org

# DNSCRYPT parámetros de configuración.
ProviderName     2.dnscrypt-cert.freetsa.org
ProviderKey      D8FF:BB42:E031:BE7A:7973:0B45:568D:496A:4E8A:CB59:AA83:66FD:6AB9:1E27:2A7D:16E4
ResolverAddress  205.185.116.116:553

# Ejemplo de conexión al servicio DNSCRYPT de FreeTSA con el cliente "dnscrypt-proxy".
$ dnscrypt-proxy --local-address=127.0.0.1:53 \
                 --resolver-name=freetsa.org \
                 --resolver-address=205.185.116.116:553 \
                 --provider-name=2.dnscrypt-cert.freetsa.org \
                 --provider-key=D8FF:BB42:E031:BE7A:7973:0B45:568D:496A:4E8A:CB59:AA83:66FD:6AB9:1E27:2A7D:16E4

# El servidor de FreeTSA ya se encuentra en la lista predeterminada del cliente de dnscrypt-proxy.
# Para forzar el uso de FreeTSA en dnscrypt-proxy se debe editar /etc/dnscrypt-proxy.conf y agregar "ResolverName freetsa.org" (por defecto "random").

# URL que permite conectar a un DNS usando una sola cadena.
sdns://AQcAAAAAAAAAACDY_7tC4DG-enlzC0VWjUlqTorLWaqDZv1quR4nKn0W5BsyLmRuc2NyeXB0LWNlcnQuZnJlZXRzYS5vcmc

Direcciones IPv6 de FreeTSA
Estas direcciones pueden ser usadas también para consultas DNSCRYPT (¡solo bajo TCP!).

2605:6400:20:6c8:d91a:d514:17f7:92be
2605:6400:20:6c8:51b1:66a5:8c48:77e4
2605:6400:20:6c8:727a:e557:8b6b:7335
2605:6400:20:6c8:636e:c6bb:1331:1c36

Security based HTTP response headers
- HPKP ayuda a prevenir ataques MITM y certificados fake.
- HSTS fuerza el uso de HTTPS en el navegador y mitiga algunos ataques de hombre en el medio.
- CSP ayuda a prevenir ataques XSS mediante inyecciones de código.