我不是来自信息安全或任何 IT 相关领域。但我想知道我的数字银行是否有任何安全原因要求我的手机开启“自动日期和时间”?
例如,如果我在国外,我无法向朋友转账,因为对话框显示我的日期和时间不正确。
这是一个糟糕的编程软件还是有目的?
我不是来自信息安全或任何 IT 相关领域。但我想知道我的数字银行是否有任何安全原因要求我的手机开启“自动日期和时间”?
例如,如果我在国外,我无法向朋友转账,因为对话框显示我的日期和时间不正确。
这是一个糟糕的编程软件还是有目的?
原因之一可能是数字签名的使用。如果您手机上的时间与实际当前时间有本质上的差异,这可能会导致您的手机拒绝银行服务器进行的签名,或者您的银行拒绝您的手机进行的签名。
为什么“自动日期和时间”很重要?当然,手机上的内部时间表示(从 1970 年 1 月 1 日到现在的毫秒数)不依赖于时区。但这取决于你用这个做什么。假设您在时区 ACT = GMT-5。假设您的当地时间是 4:00 ACT,即 9:00 GMT。现在假设您禁用了“自动日期和时间”并将当前时区明确设置为 GMT。您的手机立即显示的不是 4:00,而是 9:00。内部时间表示保持不变,只有 GUI 表示发生了变化。
但是现在您看到了,您手机上的 9:00 与您朋友手机上的时间不同。因此,您手动将时间设置为 4:00。现在您的手机和您朋友的手机都显示 4:00。但是您的朋友使用 ACT = GMT-5,而您使用 GMT。因此,您手机上时间的内部表示比实际时间晚 5 小时。
在这种情况下,即使银行允许公差 +- 1 分钟,这也是不够的。任何涉及时间比较的操作都会失败。
出于安全原因,您的银行可能希望您的手机启用自动日期和时间。这将包括防止重放攻击,其中每个请求都包含一个时间戳,该时间戳在服务器端进行验证。
话虽如此,时区应该与它无关。如果您出国无法使用您的银行移动应用程序,我建议您致电您的银行进行投诉。对我来说,听起来最初的移动应用程序要求可能是正确的,但实施最终出现了缺陷。
除了蒂姆的回答之外,我还要补充一点,它还与 SSL 证书的验证方式有关。
如果您登录计算机而不是手机,并更改计算机上的日期和时间,使其与您当前所在位置的时区和时间不匹配,那么您在浏览互联网时会遇到各种错误。这是因为用于验证网站的 SSL 证书不是永久性的,并且在您的互联网浏览器(firefox、chrome 等)中会进行时间比较,以确保网站使用的 SSL 证书当前有效。
如果系统不知道您的准确当前时间,则无法验证您尝试访问的站点所使用的安全证书的当前有效性。访问手机上的银行应用程序也是如此,因为该应用程序连接到使用证书来验证其真实性的服务器。
有许多安全算法可以限制某些东西有效的时间窗口。
不管安全机制如何,其概念是生成可用于验证或证明身份的代码。但如果有时间,任何代码都可能被破坏。所以这个想法是通过只允许代码在很短的时间内有效来限制可能破坏代码的时间量 - 之后该代码不再有效并且需要新的代码。有时是几小时……有时是几分钟甚至几秒钟。这意味着双方的时钟需要合理同步。
除此之外......时区通常无关紧要。计算机通常设置为 UTC(世界时),时区只是一些小时数(有时是半小时)的偏移量,以更改相对于世界时显示的时间。但这些算法通常基于世界时——而不是本地时区。