freeTSA.org 提供免费的时间戳签发。在代码或电子签名中添加可信时间戳可以提供数据完整性电子签章以及事务发生的可信时间。
$ openssl ts -query -data file.png -no_nonce -sha512 -cert -out file.tsq
将 TimeStampRequest 发送到 freeTSA.org 并接收一个 tsr(TimeStampResponse,时间戳响应)文件。
$ curl -H "Content-Type: application/timestamp-query" --data-binary '@file.tsq' https://freetsa.org/tsr > file.tsr
使用公开证书,您可以验证 TimeStampRequest。
$ openssl ts -verify -in file.tsr -queryfile file.tsq -CAfile cacert.pem -untrusted tsa.crt
###########################################################
# 1. 创建 tsq 文件(SHA 512)
###########################################################
openssl ts -query -data file.png -no_nonce -sha512 -out file.tsq
# 选项 -cert:FreeTSA 需要在响应中包含其签名证书(根证书+中间证书)。(可选)
# 如果tsq是用“-cert”选项创建的,那么它的验证不需要 "-untrusted" 。
#$ openssl ts -query -data file.png -no_nonce -sha512 -cert -out file.tsq
# 如何制作多个文件的时间戳?
# 要给多个文件加时间戳,请创建一个包含所有文件 SHA-512 散列的文本文件,并对其加时间戳。
# 或者,您可以将所有要加时间戳的文件打包到 zip/rar/img/tar 等文件中并加时间戳。
#生成一个包含 /var/log/ 下所有文件散列的文本文件
$ find /var/log/ -type f -exec sha512sum {} + > compilation.txt
###########################################################
# 2. cURL 时间戳请求输入(HTTP / HTTPS)
###########################################################
# H在 cURL 中使用 HTTP 2.0:请获取最新版 cURL 并运行此命令:curl --http2 。
curl -H "Content-Type: application/timestamp-query" --data-binary '@file.tsq' https://freetsa.org/tsr > file.tsr
# 使用 Tor 网络。
#$ curl -k --socks5-hostname 127.0.0.1:9050 -H "Content-Type: application/timestamp-query" --data-binary '@file.tsq' https://4bvu5sj5xok272x6cjx4uurvsbsdigaxfmzqy3n3eita272vfopforqd.onion/tsr > file.tsr
# tsget 对于标记多个时间戳查询请求非常有用:https://www.openssl.org/docs/manmaster/apps/tsget.html
#$ tsget -h https://freetsa.org/tsr file1.tsq file2.tsq file3.tsq
###########################################################
# 3. 验证 tsq 文件
###########################################################
wget https://freetsa.org/files/tsa.crt
wget https://freetsa.org/files/cacert.pem
# 时间戳信息。
openssl ts -reply -in file.tsr -text
# 验证(两种不同的方式)。
# openssl ts -verify -data file -in file.tsr -CAfile cacert.pem -untrusted tsa.crt
openssl ts -verify -in file.tsr -queryfile file.tsq -CAfile cacert.pem -untrusted tsa.crt
# Verification: OK
$ 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 # 默认情况下,TSQ 文件要求在响应中提供证书链(根证书和中间证书)。 # 如果不想这样做,必须将脚本的第16行更改为第15行。
$ curl --data "screenshot=https://www.fsf.org/&delay=n" https://freetsa.org/screenshot.php > screenshot.pdf $ curl --data "screenshot=https://www.fsf.org/&delay=y" https://freetsa.org/screenshot.php > screenshot.pdf # (I'm Feeling Lucky) ### 在 cURL 中使用 HTTP 2.0:请获取最新版 cURL 并运行此命令:curl --http2 。 ### Tor 网络的 REST API:增加 "-k --socks5-hostname localhost:9050" 。 # Tor网络中的普通域名。 $ curl -k --socks5-hostname localhost:9050 --data "screenshot=https://www.fsf.org/&delay=y" https://4bvu5sj5xok272x6cjx4uurvsbsdigaxfmzqy3n3eita272vfopforqd.onion/screenshot.php > screenshot.pdf # 网上的 ".onion" 域名。 $ curl -k --data "screenshot=https://4bvu5sj5xok272x6cjx4uurvsbsdigaxfmzqy3n3eita272vfopforqd.onion/&delay=y&tor=y" https://freetsa.org/screenshot.php > screenshot.pdf # Tor 网络中的 ".onion" 域名。 $ curl -k --socks5-hostname localhost:9050 --data "screenshot=https://4bvu5sj5xok272x6cjx4uurvsbsdigaxfmzqy3n3eita272vfopforqd.onion/&delay=y&tor=y" https://4bvu5sj5xok272x6cjx4uurvsbsdigaxfmzqy3n3eita272vfopforqd.onion/screenshot.php > screenshot.pdf
# Certificate files. openssl ocsp -sha512 -CAfile cacert.pem -issuer cacert.pem -cert tsa.crt -url http://freetsa.org:2560 -resp_text openssl ocsp -sha512 -CAfile cacert.pem -issuer cacert.pem -cert cacert.pem -url http://freetsa.org:2560 -resp_tex # Serial number. openssl ocsp -sha512 -CAfile cacert.pem -issuer cacert.pem -serial "0xC1E986160DA8E982" -url http://freetsa.org:2560 -resp_text openssl ocsp -sha512 -CAfile cacert.pem -issuer cacert.pem -serial "0xC1E986160DA8E980" -url http://freetsa.org:2560 -resp_text
$ wget http://www.freetsa.org/crl/root_ca.crl $ openssl crl -in root_ca.crl -noout -text
## 常规 DNS(端口 53)任何 freeTSA IP(IPv4 或 IPv6)都可为您提供常规 DNS 解析服务。 ## NTP 服务器:freetsa.org(IPv4 / IPv6) $ ntpdate freetsa.org ## Freetsa 在端口 853(IPv4/IPv6)上提供 DoT。Systemd 解析示例:/etc/systemd/resolved.conf DNS=2607:f130:0:f8::8198:f3f4#www.freetsa.org 2607:f130:0:f8::817e:69c7#www.freetsa.org 2607:f130:0:f8::ca3e:d470#www.freetsa.org 2607:f130:0:f8::8418:ec2d#www.freetsa.org 2607:f130:0:f8::2e57:96b#www.freetsa.org # 不要使用所有的接口,选择一个或两个,例如唯一的 IPv4 和其他一些你选择的 IPv6。 ## 两个 DNSCRYPT FreeTSA 服务器(无日志、无 DNSSEC、无匿名 DNS 和不兼容匿名化(https://github.com/DNSCrypt/dnscrypt-proxy/issues/1251)) 公共服务器地址:[2607:f130:0:f8::8418:ec2d]:553 提供者公钥:d8ffbb42e031be7a79730b45568d496a4e8acb59aa8366fd6ab91e272a7d16e4 提供者名称:2.dnscrypt-cert.freetsa.org DNS 标识:sdns://AQcAAAAAAAAAH1syNjA3OmYxMzA6MDpmODo6MzA4NTplOTYxXTo1NTMg2P-7QuAxvnp5cwtFVo1Jak6Ky1mqg2b9arkeJyp9FuQbMi5kbnNjcnlwdC1jZXJ0LmZyZWV0c2Eub3Jn 公共服务器地址:142.171.183.141:553 提供者公钥:d8ffbb42e031be7a79730b45568d496a4e8acb59aa8366fd6ab91e272a7d16e4 提供者名称:2.dnscrypt-cert.freetsa.org DNS 标识:sdns://AQcAAAAAAAAAETE3My44Mi4xOC4yMzg6NTUzINj_u0LgMb56eXMLRVaNSWpOistZqoNm_Wq5HicqfRbkGzIuZG5zY3J5cHQtY2VydC5mcmVldHNhLm9yZw ## DNSCrypt 客户端:https://github.com/DNSCrypt/dnscrypt-proxy
FreeTSA 桌面应用
创建一个链接到到 chromium/chrome 或 Firefox 应用,只需运行一个命令。
### Firefox # 需要激活 firefox 中的 SSB:"about:config" > "browser.ssb.enabled true" # 在 Windows 上:Firefox >页面操作(地址栏中连续三个点)>“在应用模式下使用此站点”在桌面上创建一个链接。 # 在 Linux 上,您可以使用以下命令创建一个简单的桌面链接/脚本: 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
FreeTSA IPv6 地址
这些 IPv6 地址均可用于 OCSP、DNSCRYPT 解析(TCP/UDP)、DoT(DNS over TLS)、普通 DNS 和 NTP 服务。
2607:f130:0:f8::8198:f3f4 2607:f130:0:f8::817e:69c7 2607:f130:0:f8::ca3e:d470 2607:f130:0:f8::8418:ec2d 2607:f130:0:f8::2e57:96b
基于安全的 HTTP 响应头
- HPKP 通过减少假证书帮助防止中间人攻击(MitM)。
- HSTS 强制您的浏览器使用 HTTPS,这也减少了一些中间人攻击。
- CSP 是一种通过恶意广告注入来对抗xss和恶意软件的方法。