我有一台Linux (4.9.171)机器运行在ARM Cortex-A处理器上。该系统具有internet连接,并通过SSL与我的服务器进行通信。在第一次启动时,我可以将date and time配置到它。但是,如果我的系统重新启动,它将没有正确的时间,SSL连接可能在Certification Path Validation Algo中失败。我需要一种方法来保持我的系统时间的最新(几秒的精度将是好的)。
我的系统没有RTC,我不想使用NTP,因为它是不安全的,而且任何人都可以是MITM,并给我被破坏的证书来攻击我的系统。
我也研究过NTPSec and NTS,但它们现在还不成熟。
这个问题陈述有什么标准的方法吗?
发布于 2019-11-05 23:48:17
我想出两种合理的方法来解决这个问题:
ntpd,从手册页(https://man.openbsd.org/ntpd.conf):可以将约束ntpd(8)配置为通过TLS从受信任的HTTPS服务器查询“日期”。这一次的信息不是用来精确的,而是作为一个认证的约束,从而减少未经认证的NTP中间人攻击的影响。接收到的具有时间信息的NTP数据包将被丢弃,并且这些NTP服务器将被标记为无效。来自URL的约束指定提供约束的HTTPS服务器的url、IP地址或主机名。如果不止一次使用约束,ntpd(8)将计算来自所有指定服务器的中间约束。
手册页中的描述似乎正是您所要求的。
有一个Linux版本的OpenBSD ntpd,其形式是Brent:http://www.openntpd.org/portable.html维护的可移植OpenNTPD。
https://security.stackexchange.com/questions/220739
复制相似问题