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 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 OCSP y CRL, servicios NTP, servicio normal de DNS (puerto 53), DNSCRYPT y DNS over TLS (DoT) para la sincronización horaria y resolución cifrada de dominios respectivamente. La resolución DoT (Puerto 853) y DNSCRYPT (Puerto 553) no tiene ningún tipo de restricción (SPAM, Malware, Parental, ...). Tampoco se guardan registros de ningun tipo y todos los servicios están disponibles en IPv6.

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: 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 (TimeStampRequest), el cual contiene el hash del fichero que queremos sellar.
$ openssl ts -query -data file.png -no_nonce -sha512 -cert -out file.tsq
Envía la solicitud a freeTSA.org y espera el sello de tiempo en forma de fichero tsr TimeStampResponse).
$ 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 (TimeStampRequest) usando SHA 512.
###########################################################

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

# Utilizando -cert, FreeTSA incluye el certificado raiz cacert.pem 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

# Por defecto el fichero TSQ exige una respuesta TSR con la cadena completa de certificados (raíz e intermedios).
# Si no se desea incluir la cadena de certificados en las respuestas (ficheros tsr), se debe cambiar la linea 16 por la 15 en el script.


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 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.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

NTP, DNS, DoT y servicio DNSCRYPT
## Normal DNS (Port 53): Any freeTSA IP (IPv4 or IPv6) will give you normal DNS resolution service.

## NTP Server: freetsa.org (IPv4 / IPv6)

$ ntpdate freetsa.org

## Freetsa offers DoT on port 853 (IPv4 / IPv6). Systemd-resolved example: /etc/systemd/resolved.conf 

DNS=2607:f130:0:f8::3085:e961#www.freetsa.org 2607:f130:0:f8::c5a7:17a4#www.freetsa.org 2607:f130:0:f8::73a7:a9f6#freetsa.org 2607:f130:0:f8::4a5c:6f8c#freetsa.org 2607:f130:0:f8::7e72:6308#freetsa.org 2607:f130:0:f8::a514:d89a#freetsa.org 2607:f130:0:f8::2bab:3a16#freetsa.org 2607:f130:0:f8::c619:9640#freetsa.org 2607:f130:0:f8::4fb7:9035#freetsa.org 2607:f130:0:f8::4c85:a645#www.freetsa.org fe80::216:3cff:fe7d:d4d9#freetsa.org
# Don't use all the interfaces, choose one or two, for example the only IPv4 and some other IPv6 of your choice.

## Two DNSCRYPT FreeTSA servers (No logs, No DNSSEC, No anonymized DNS and No compatible with anonymization (https://github.com/DNSCrypt/dnscrypt-proxy/issues/1251))

Public server address: [2607:f130:0:f8::3085:e961]:553
Provider public key: d8ffbb42e031be7a79730b45568d496a4e8acb59aa8366fd6ab91e272a7d16e4
Provider name: 2.dnscrypt-cert.freetsa.org
DNS Stamp: sdns://AQcAAAAAAAAAH1syNjA3OmYxMzA6MDpmODo6MzA4NTplOTYxXTo1NTMg2P-7QuAxvnp5cwtFVo1Jak6Ky1mqg2b9arkeJyp9FuQbMi5kbnNjcnlwdC1jZXJ0LmZyZWV0c2Eub3Jn

Public server address: 173.82.18.238:553
Provider public key: d8ffbb42e031be7a79730b45568d496a4e8acb59aa8366fd6ab91e272a7d16e4
Provider name: 2.dnscrypt-cert.freetsa.org                                                                                                                                                                                                                                      
DNS Stamp: sdns://AQcAAAAAAAAAETE3My44Mi4xOC4yMzg6NTUzINj_u0LgMb56eXMLRVaNSWpOistZqoNm_Wq5HicqfRbkGzIuZG5zY3J5cHQtY2VydC5mcmVldHNhLm9yZw

## DNSCrypt client: https://github.com/DNSCrypt/dnscrypt-proxy

Aplicación de escritorio FreeTSA
Lo más fácil es crear mediante el navegador un enlace del tipo aplicación. Es simplemente ejecutar un comando.

### Firefox
# Se debe activar primeramente SSB: En la barra de direcciones "about:config" > "browser.ssb.enabled true"
# En Windows: Firefox > Page Actions (Tres puntos a la derecha de la barra de direcciones) > "Use this site in App Mode" crea directamente un enlace en el escritorio (No en GNU/Linux).
# En sistema GNU/Linux se puede crear un enlace de escritorio / script con el siguiente comando:
firefox --ssb https://freetsa.org/index_en_app.php


### Chromium / Chrome.
chromium --app=https://freetsa.org/index_en_app.php
chrome --app=https://freetsa.org/index_en_app.php

Direcciones IPv6 de FreeTSA
Estas direcciones IPv6 pueden ser usadas también para consultas DNSCRYPT (UDP/TCP), DoT (DNS over TLS), DNS normal y servidor NTP.

2607:f130:0:f8::3085:e961
2607:f130:0:f8::c5a7:17a4
2607:f130:0:f8::73a7:a9f6
2607:f130:0:f8::4a5c:6f8c
2607:f130:0:f8::7e72:6308
2607:f130:0:f8::a514:d89a
2607:f130:0:f8::2bab:3a16
2607:f130:0:f8::c619:9640
2607:f130:0:f8::4fb7:9035
2607:f130:0:f8::4c85:a645

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.