介绍一个法国的时间戳服务器

特别说明:

       下面介绍的法国时间戳服务器已经停止服务了,我曾发Email给相关网站的管理员,对方回复说他也不知道什么时候能恢复服务,有可能就是遥遥无期了。所以下面的内容仅有参考价值,没法实践了。


————————————————————————————————————

        在学习RFC 3161 《Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)》时,发现该文档中没有提供具体的示例,如果能有具体的例子对照标准学习,效果会好得多。在网上找到了一个法国的时间戳服务器,网址是:

http://timestamping.edelweb.fr/ 

        该时间戳服务器是一个实验性的服务器,提供免费的数字时间戳加盖服务。要申请时间戳,可以使用以下方法:

1)  如果是在 Windows 平台上,先编译 OpenSSL,生成 openssl.exe 文件,编译生成的 openssl.exe 文件通常位于 out32 目录下。如果是在 Linux 平台上,绝大多数Linux发行版中已经包含名为 openssl 的可执行文件,可以在终端中执行命令 openssl version 来查看 OpenSSL 的版本,如果系统中已有 OpenSSL 应能显示出版本号。如果没有则需要下载 OpenSSL 源码再进行编译。

 

2)  对一个指定的文件生成时间戳请求文件,假定这个文件名是 my_text.txt ,生成的时戳请求文件要被命名为 request.tsq,则执行以下命令:

openssl ts -query -data "my_text.txt" -cert -sha1 -no_nonce -out request.tsq

    对命令中参数的解释如下:

ts  -query 指定生成时间戳请求

-data "my_text.txt"  表示生成请求的数据来自于文件 my_text.txt

-cert 表示时间戳服务器生成的响应中要包含时间戳服务器的数字证书

-sha1 表示生成时间戳请求时,使用的杂凑算法是 SHA1,这个参数可以换成 -sha256 等其他杂凑算法的名称

-no_nonce 表示生成的时间戳请求中不需要包含 nonce 这一项

-out request.tsq 指定生成的时间戳请求文件名是 request.tsq

   在 Windows 下执行命令时会有警告信息,但是不影响时间戳请求文件的生成。生成的文件内容是 ASN.1 编码格式的时间戳请求。

 

3) 这一步只能在 Linux 平台上执行了,执行以下命令:

curl --data-binary @request.tsq --header "Content-Type: application/timestamp-request" -o ts_response.tsrhttp://timestamping.edelweb.fr/service/tsp

    执行完之后,会从时间戳服务器获取到时间戳响应,是一个名为 ts_response.tsr 的文件。

-o ts_response.tsr 参数指定了时间戳响应文件的名称,可以随意命名。获取到的文件是 ASN.1 编码格式的时间戳响应。

 

    对照时间戳请求和时间戳响应再来学习 RFC 3161,对其中的定义就能理解得更清楚了。

Chronos,在古希腊语意为时间,是小米公司开发的实现高可用、高性能、提供全局唯一而且严格单调递增timestamp的服务。Chronos 采用主备架构,主服务器挂了以后备服务器迅速感知并接替服务,从而实现系统的高可用。服务端使用Thrift框 架,经测试每秒可处理约60万次RPC请求,客户端单线程每秒可请求6万次(本地服务器),保证高性能与低延时。全局只有唯一的 ChronosServer提供服务,分配的timestamp保证严格单调递增,并且将已分配的值持久化到ZooKeeper上,即使发生 failover也能保证服务的正确性。Chronos依赖ZooKeeper实现与HBase类 似的Leader Election机制,ChronosServer启动时将自己的信息写到ZooKeeper的Master临时节点上,如果主服务器已经存在,那么就记 录到BackupServers节点上。一旦Master临时节点消失(主服务器发生failover),所有备服务器收到ZooKeeper通知后参与 新一轮的选主,保证最终只有一个新的主服务器接替服务。ChronosServer运行时会启动一个Thrift服务器,提供getTimestamp()和getTimestamps(int)接口, 并且保证每次返回的timestamp都是严格单调递增的。返回的timestamp与现实时间有基本对应关系,为当前Unix time乘以2的18次方(足够使用1115年),由于我们优化了性能,所以如果存在failover就不能保证这种对应关系的可靠性。ChronosClient启动时,通过访问ZooKeeper获得当前的主ChronosServer地址,连接该服务器后就可以发送 Thrift RPC请求了。一旦主服务器发生failover,客户端请求失败,它会自动到ZooKeeper获得新的主ChronosServer地址重新建立连 接。 标签:小米
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值