我正在尝试测试我们的软件在面对不同的时钟情况(即机器不同步、夏令时等)时如何工作。测试驱动程序尝试禁用 Windows 时间服务并使用 WMI 修改远程计算机上的时钟。
我遇到的一个奇怪问题是,如果我将计算机时钟提前或滞后大量(比如几个月),我在尝试使用远程注册表时开始收到 UnauthorizedAccessExceptions。
以前有人见过这种行为吗?
更新:这些帐户是不会过期的服务帐户。
发现问题是 Kerberos 安全性会认为您正在尝试进行回复攻击,因为任何进入域控制器的授权请求看起来都来自于太远的未来(对于过去太远的请求也是如此)。据我所知,5 分钟是时钟不同步的默认允许窗口。
Kerberos 有严格的时间要求,这意味着相关主机的时钟必须在配置的限制内同步。票证有一个可用时间段,如果主机时钟与 Kerberos 服务器时钟不同步,则身份验证将失败。每个 MIT 的默认配置要求时钟时间间隔不超过五分钟。在实践中,网络时间协议守护进程通常用于保持主机时钟同步。
http://en.wikipedia.org/wiki/Kerberos_(协议)
所以我必须想出一种方法来解决这个问题,以涵盖时间服务无法运行的不太可能的情况。