我的应用程序需要定期访问一个可信的时间源,所以不能依赖系统时间,因为这个可以很容易地被用户修改或者发生故障等。我的第一个想法是静态链接到libntp(来自ntp.org)并使用它的功能,这是一个好主意吗?如何在应用程序中获得值得信赖的时间,ntp也许?
Libntp看起来有点复杂的框架,是否有一些更简单的客户端实现(最好是ANSI C,因为应用程序需要用于不同的平台......但如果可以用gcc/MS VS编译,也可以是Cpp)?
是否有其他替代ntp?
谢谢!
编辑:添加一些更多的信息...重要的是,可信时间服务器的值不能被修改(可以说,攻击者修改受信任的时间服务器的响应和应用程序接受假时间)。我开始查看ntp并看到它处理这个问题。现在的问题是我应该使用ntp.org的ntp源作为起点,还是有一些简单的客户端实现?理想情况下,我应该使用来自ntp.org源的哪些模块/源文件的指针用于仅客户端实现,以及哪个头文件显示我需要使用的API,例如调用getTrustedTime()...等。
如果你不能信任操作系统...所有的赌注都关闭。 OS可以配置为保护系统时间。另外,网络连接可能并不总是存在。您是否尝试实施许可证保护?如果是这样,请在您的文章中澄清 – sehe
它必须有多准确? 1或2秒关闭可以吗?或者它具有毫秒精度? –
我的应用程序不信任操作系统时间,但需要(定期)网络连接(实际上与许可证保护相关)。至于准确性,最多几分钟就可以。 –