将计数器值存储在本地且安全
Posted
技术标签:
【中文标题】将计数器值存储在本地且安全【英文标题】:Store counter values local and secure 【发布时间】:2014-06-15 06:33:09 【问题描述】:我想以某种方式将我的应用程序 (C#) 的值(计数器)存储在客户端机器上,使他/她无法操作或重置它。我考虑将它并行存储在数据库 (MSSQL)、注册表和文件中。如果一个值丢失(删除),我有两个 bakcup 选项来恢复计数器。好的,如果用户同时删除所有三个值,则计数器将重置为零。这是我可以接受的选择。 但我想知道是否有任何其他概念或最佳实践可以在本地安全地存储值......可能是我只使用了错误的搜索词。有什么提示吗? 非常感谢! 康拉德
【问题讨论】:
如果您不希望用户能够操作特定的数据,您需要将该数据保存在您控制的机器上(显然,不提供一种方法用户要求您的机器执行不良操作) 在客户端“安全”存储计数器的唯一方法是使用集成到机器中的 efuse。即使那样,烙铁也可以解决这个问题。可悲的事实是,这是“可信计算”问题。 操纵应该不是不可能的,但每天执行两次或多次操作会很困难和烦人。 【参考方案1】:没有机会。
我在我的 VMware 映像中启动您的应用程序,当我关闭它时,所有更改都会恢复。虚拟机重新启动后,我有一台从未见过您的应用程序(或计数器)的新机器。
即使您在多个地方存储您的信息。如果所有这些计数器的值都不同,那么哪一个获胜?
要获得不可操作的计数器,您必须将它们存储在您的服务器上,并为您的客户端应用程序提供一个 API 以读取或增加该值。
【讨论】:
好的。这就是重点。但至少数据库运行在一个环境中,不能轻易恢复,因为其中有生产和连续的数据,如果整台机器恢复到以前的状态,这些数据将会丢失。以上是关于将计数器值存储在本地且安全的主要内容,如果未能解决你的问题,请参考以下文章
在 Nvidia 下读取 OpenCL 可执行文件的共享/本地内存存储/加载库冲突硬件计数器
6-5 基于shared_preferences本地存储操作