我们有一个Windows应用程序(C#.net),我们将为客户端提供安装程序。要求是一旦安装了应用程序,用户就无法编辑系统时间/日期。这是为了确保不会操纵应用程序生成的日期/报告。 我的目标操作系统是Win-XP 最好的方法是什么?
操作系统是否提供了这样做的便利?
客户端计算机是一台独立的计算机,不在任何网络上。
先谢谢
答案 0 :(得分:5)
如前所述,您可以使用组策略,但它们很容易被规避。此外,如果您的应用程序执行此操作,您的客户可能会做出敌意(理所当然)。但是,如果您的应用程序位于封闭的网络中,请与系统管理员联系并将其作为策略推出。
如果您确实需要受信任的时间源,请执行以下操作:编写Web服务或使用应用程序联系的现有NTP服务,并使用该受信任服务返回的时间。然后使用签名技术防止以后篡改报告。
下行:您需要访问互联网。可能性是让客户端在其网络中设置NTP服务器(AFAIK Windows域控制器可以自动执行此操作吗?)并使用它,但客户端可以再次篡改它。
但最重要的是:联系网络服务以进行篡改或使用组策略来轻松篡改。无论如何都不可能进行篡改。
答案 1 :(得分:3)
这听起来更像是服务器故障问题;我想知道“组策略”是否是基于每台机器的方式;
但是 - 对于编程答案 - 为什么不在应用启动时从中央服务器获取时间?计算 local 时间的偏移量,并将其应用于整个应用程序。
如果安全性需要严格,您可能需要从服务器签署响应以防止欺骗(特别是通过“主机”等)。
答案 2 :(得分:3)
您可以通过更改Windows策略来阻止此操作。您可以从Active Directory(组策略)或通过操作本地生成策略来执行此操作。
请参阅链接:http://www.sevenforums.com/tutorials/113557-date-time-allow-prevent-users-groups-changing.html
但我宁愿建议您使用在线服务器查看时间。如果他们的BIOS重置或其他东西,为用户预防这样的事情可能会给他们带来很大的问题。
答案 3 :(得分:2)
我认为这不可能,因为这与组策略有关,而不是您的应用程序更改任何系统设置,这将阻止用户更改系统日期时间。通过这些可能会有用 -
如果是XP专业版,请使用组策略编辑器创建细粒度 permissions.Start>运行gpedit.msc [enter]
如果是XP Home,请查看Doug Knox的安全控制台,看看它是否可以 你的工作:http://www.dougknox.com
答案 4 :(得分:1)
不,你不能阻止像这样的基本操作系统功能(除了组策略......但不能以编程方式,特别是如果用户具有管理员权限)。 如果您可以通过编程方式执行此操作,则可能很容易被利用(例如更改时间和破坏Kerberos身份验证)。
答案 5 :(得分:1)
仅通过Domain policy - 管理员必须防止用户不要浪费时间。
Windows 2008可以选择与互联网同步时间。
另一种方法是您创建一个您的应用可以通过互联网访问并获得未修改时间的网络服务。
答案 6 :(得分:1)
您需要为此实施本地或组策略。我不知道你是否可以从C#中轻松操控它。
答案 7 :(得分:1)
假设这些机器实际上并不在你的行政控制之下,那么显然你不能这样做。但另一种方法是从外部Web服务中获取用于生成时间戳的时间,您可以使用某种加密来访问服务,以确保客户端不会篡改结果。