Cloudflare宣布部署全新验证时间服务Roughtime,以确保部分需要计时的服务正确执行无误,而Roughtime的这个服务则是基于由Google起始的同名开源专案Roughtime。
当使用者存取安全网站的时候,网站会提供使用者一个TLS凭证以表明其身分,每个凭证都存在有效期限,一旦过了期限,该凭证也随之失效,限制凭证的使用生命周期能减少TLS服务器密钥泄漏的风险。而系统要确定凭证是否有效,必须要确定当前的时间,事实上也不只是TLS,时间的准确性对于许多协议的安全性也都至关重要,为此Cloudflare提供了一个免费、高可用并且低延迟的验证时间服务Roughtime,可透过roughtime.cloudflare.com端口2002存取。
Cloudflare提到,不少用户装置的时间都是不准的。Cloudflare引用了第三方的研究,发现Chrome用户发生的TLS凭证错误大部分是由于客户端时间偏差造成的,6.7%的用户其客户端时间甚至慢了24小时。时间偏差的情况在Windows占33.5%、macOS 8.71%、Android 8.46%而Chrome OS则是1.72%。当凭证错误发生时,使用者会收到警告,但是多数使用者都会选择忽略这些警告,但这是非常有风险的行为,因为错误警告的目的,就是要提醒用户远离恶意网站,而这个现象让使用者轻忽凭证失效的严重性。
另外,时间偏差也让凭证本身的安全性受到威胁,最理想的状况是颁发有效期限较短的凭证,但是客户端时间偏差的长尾现象限制了凭证生命周期的有效性,缩短凭证的生命周期,用户只会收到更多警告,而对于提升安全性没有太大的帮助。
因特网上的端点通常使用网络时间协议(Network Time Protocol,NTP)来同步时钟,NTP目的是用来实现精准同步并解决网络等待时间问题,但是通常在部署上缺乏安全性,使得高负载的服务器会因为服务超载而明显降低精准度,如此让客户端暴露在易遭受中间人攻击的风险,黑客可以透过强迫改变使用者的时间,让使用者接受过期或是尚未生效的凭证,而这将产生严重的安全性问题。
而这就是Cloudflare要部署基于Google的开源Roughtime项目,数字签名时间校准服务Roughtime的原因,使用者可以透过Roughtime协议对一个或是多个经过身分验证的服务器进行同步,虽然Roughtime无法提供NTP般的精准时间,但其目的仅是要提供加密应用程序足够的准确性,一般来说10秒内的误差已经足够,并且由于服务器经过身分验证,黑客也无法进行中间人攻击。
Cloudflare表示,Roughtime协议足够灵活,可以支持各种使用情境,在验证TLS凭证时,网页浏览器可以使用Roughtime服务器主动同步时间,同时Roughtime协议也能被用来避免向用户显示过多的警告,当凭证发生错误时,浏览器能告知用户,凭证失效是因为时间不正确,而不是仅告诉使用者凭证无效。注重安全的使用者可以向多台Roughtime服务器发出时间校准请求,一般情况一台受信任的服务器已经足够。
Cloudflare期望有更多的独立组织加入建构Roughtime生态系统,Cloudflare表示,当Roughtime服务器越多,生态系统就越健壮,Roughtime协议才会真正有用。
文章转自:http://www.sacheart.org.tw/post.asp