准确、不可伪造的时间源

准确、不可伪造的时间源

我需要一个不可欺骗的、准确的时间源。

除了设置我自己的原子钟(除非这比听起来更容易)我怎样才能做到这一点?

这并不是说我不信任 NTP 池;而是我无法确定我正在与谁交谈。

答案1

先前的一个答案提到了 MD5 身份验证,但没有提到 NTP4 中可用的公钥身份验证。许多国家实验室都提供启用 md5/autokey 的时间服务。

我不明白你的威胁模型是什么;如果有人有能力并且愿意欺骗你的 GPS 信号,那么你面临的问题就比现在的时间更大。话虽如此,你可以结合使用 GPS 或 CDMA 的本地参考时钟,然后将此时间信号与来自某些提供认证时间服务的国家实验室的认证时间相结合。这样,如果你的 GPS 信号被欺骗,你仍然可以依赖来自国家实验室的认证时间。

全球定位系统:

只需 40 美元和一些焊接,您就可以使用 Sure Electronics GPS 评估板设置本地 GPS+PPS 时间源。如果您无法在数据中心接收 GPS 信号,有时您可以在 ebay 上以相当便宜的价格找到 CDMA 参考时钟。

经过验证的 NTP 服务:

NIST、NRC 和 INRIM(美国、加拿大和意大利的国家实验室)提供 MD5 认证时间服务。与 NIST 和 INRIM 不同,CRC md5 服务不是免费的。OBSPM 和 INRIM(法国和意大利的国家实验室)提供 Autokey 认证时间服务,并且免费提供此服务。肯定还有其他提供认证时间的国家实验室,但您需要通过 Google 搜索。

国家实验室认证时间的链接:

美国国家标准与技术研究院(NIST):

http://www.nist.gov/pml/div688/grp40/auth-ntp.cfm

核管理委员会(NRC):

http://www.nrc-cnrc.gc.ca/eng/services/inms/calibration-services/time-frequency.html#Authenticated

OBSP:

http://syrte.obspm.fr/informatique/ntp_infos.php

https://syrte.obspm.fr/informatique/ntp_keys.php

印度卢比:

http://www.inrim.it/ntp/

http://www.inrim.it/ntp/auth_i.shtml

答案2

我的建议是信任 NTP —— 它绝不是安全的,但我不知道任何主要的攻击媒介,并且它与您选择的对等点一样安全(实际上与您的 DNS 解析和路由表一样安全)。

如果您需要考虑其他替代方案,这里有几个(括号中为准确性/安全性):

  1. 您自己的原子钟作为 PPS 源。(超级准确,几乎无法伪造)
    (这些都可以在 eBay 上买到。设置起来并非不可能 - 有很多时间迷拥有它们,并且您的 NTP 守护程序可以使用它们作为时间源。您需要处理闰秒。)

  2. GPS 接收器。(超级准确,很难被欺骗)。
    (GPS 信号可以被覆盖/欺骗,但这是一种需要付出一些努力才能完成的专业攻击。GPS 系统完全失效的可能性不大,完全关闭的可能性也不大。

  3. 网络时间协议 (NTP) (非常准确。经过一些努力就可以欺骗)
    (有人通过你的时间源攻击你的可能性非常小,如果你将 NTP 守护程序配置为针对几个池服务器任何异常值或错误代码都将被丢弃。
    请注意,这假设您至少信任您的 DNS,直到您可以将其踢出为止。)

  4. 稳定的石英振荡器作为 PPS 源。(不太准确。几乎无法伪造)
    (根据振荡器的不同,这可能不会比您的计算机时钟更准确。预计需要定期校正时间,并且您需要处理闰秒。)

  5. 您的计算机的内部时钟。(比沙漏更精确。几乎无法伪造。)
    (对于任何关心时间的现代应用程序来说,这几乎是不可用的。)

答案3

NTP 不是一种安全协议(虽然有身份验证机制,但使用并不广泛,MD5 身份验证也不是很安全)——无论您与哪个互联网时间服务器对话,您都不知道您正在与它们对话。撇开池的可信度不谈(我不喜欢它们,因为它们的层级到处都是,NIST 有很好的资料来源对于互联网 NTP,互联网 NTP 不能满足您的要求。

本地网络上的硬件时钟实际上是确保您的连接不被拦截的唯一方法 - 即使如此,也只有您的局域网安全性能够向您保证这一点。

答案4

互联网上有许多安全的时间源。它们大多数的工作方式如下:

  1. 您生成一个随机挑战。

  2. 您向时间源发送挑战。

  3. 时间源会将时间戳附加到您的质询后,使用其众所周知的私钥对其进行签名,然后将其发送回给您。

  4. 您使用他们的公钥确认签名。

  5. 现在你知道了,假设你可以信任这个来源,时间戳中的时间反映了你生成挑战和收到答复之间的某个时间。

Verisign 通过 HTTPS 运行此类服务。网址为http://timestamp.verisign.com/scripts/timstamp.dll。Globalsign 也运行此类服务,网址为http://timestamp.globalsign.com/scripts/timstamp.dll。协议在以下网址中指定:RFC 3161并还实施OpenSSL

相关内容