民间,
我们面临着一个有趣的技术挑战。如何编写一个跟踪软件使用情况的安全审计文件,以便许可证费用可以根据使用情况进行,从而使那些使用较少的人能够负担得起。
具体来说,TickZoom为对冲基金出售alpha代交易平台,目前每月需要2000美元才能获得许可,包括支持(将很快增加到两倍以上)。这对机构来说很好,但对个人来说太贵了。个人经常要求更低的价格换取使用该软件赚取的利润的百分比,直到他们能够支付固定费用为止。
我们喜欢这个提议。但我们需要一种可靠的方法来审核平台上实际产生的利润,以及通过删除或覆盖审计文件来阻止用户“游戏”它的方法,从而报告收益低于实际收入。
这个应用程序是用C#编写的,系统的这一部分是混淆的,至少使得解密代码变得困难。
另一个要求是针对每次发生的交易写入文件,以便在用户认为总费用存在差异的情况下允许更深入的审核。这样,个人贸易利润可以与经纪人的陈述进行比较。
当然,假设文件将被加密。
但是有关如何使其“防篡改”的任何想法?特别是针对简单的删除尝试?
我的第一个猜测是让软件始终需要一个预先存在的审核文件,否则它将拒绝运行。
然后,当我们交付软件时,它会打包一个“空”审计文件,但实际上它有某种防篡改验证。
用户可能试图“篡改”文件的下一个显而易见的技术是让某人简单地备份原始的“空”文件,然后再用它来覆盖审计文件,从而欺骗系统认为它是一个新的开始。
也许这可以通过包含某种“最后更新时间戳”和到期时间来解决。
此外,欢迎完全不同的解决方案。在这种情况下,我们可能会被迫添加“电话回家”功能,以便交易记录到我们的中央服务器。但这似乎是不利的,并可能在关键任务应用程序中增加另一个失败点。一般来说,他们非常不喜欢“手机之家”功能,原因很明显。
此致 Waynek
答案 0 :(得分:5)
您的问题陈述是:
此问题无法解决。你不妨说“我想找两个人,一个名叫鲍勃,一个名叫比尔,这样鲍勃比比尔和比比比鲍勃高一英尺高”。你不会找到两个拥有该房产的人。
你绝对肯定不能相信任何来自你不拥有的机器的东西,这些机器可能是敌对客户所拥有的。我的建议是不要浪费你宝贵的时间来解决一个不可能的问题;花时间制作你所拥有并信任的服务器,对抗敌对客户。
答案 1 :(得分:2)
不,我不相信除了将所有收入实时报告回您的服务器之外,您还可以做些什么,但即使这样也有问题。
- 编辑:
我认为你只有选择:
显然,如果你已经开发了一个完整的基于本地的系统,这可能是非常不切实际的
并且在这种方法中结合,某种分析显示商店是否正在赚取X,并且突然X-sigificantAmount,你可以确定它们甚至不再有利可图,因此可能欺骗系统(或者外出业务:)但是这相当于对隐私的侵犯,并且可能根本不合适。
实际上,我认为您需要权衡风险与可能的利润,或者找出如何向这些人销售的另一个角度(即只有让界面/应用程序本身在总资金中管理X,如果它已经结束,提示专业版,或其他)。
答案 2 :(得分:1)
这是一个想法 - 每当用户退出与软件的会话时,基于审计日志生成散列。加密哈希,然后将其写入另一个文件,可能隐藏在二进制文件中或注册表中。
当用户接下来打开应用程序时,请阅读日志文件,重新生成哈希并查看它是否与记录的值匹配。如果没有,请使用“审核文件被篡改”错误消息关闭应用程序。
不是完全傻瓜证明,但会非常扎实。