伙计们,
我们有一个有趣的技术挑战。如何编写一个安全的审计文件来跟踪软件的使用情况,以便可以根据使用情况收取许可费用,从而使那些使用较少的人更能负担得起。
具体来说,TickZoom 为对冲基金销售 alpha 代交易平台,目前许可费用为每月 2,000 美元,包括支持(很快将增加一倍以上)。这对机构来说很好,但对个人来说太贵了。个人经常要求较低的价格以换取使用该软件所获得利润的 %,直到他们能够支付固定费用为止。
我们喜欢这个提议。但是我们需要一种可靠的方法来审计平台上实际产生的利润,并防止用户通过删除或覆盖审计文件来“玩弄”它,从而报告低于实际的收益。
此应用程序是用 C# 编写的,并且系统的这一部分被混淆了,至少使破译代码变得困难。
另一个要求是为发生的每笔交易写入文件,以便在用户觉得总费用存在一些差异的情况下进行更深入的审计。这样,个人交易利润可以与经纪人报表进行比较。
当然,假设文件将被加密。
但是关于如何使其“防篡改”的任何想法?特别是针对简单的删除尝试?
我的第一个猜测是让软件总是需要一个预先存在的审计文件,否则它将拒绝运行。
然后,当我们交付软件时,它会与一个“空”审计文件打包在一起,但实际上,它具有某种防篡改验证。
用户可能尝试“篡改”文件的下一个明显技术是让某人简单地备份那个原始的“空”文件,然后稍后用它来覆盖审计文件,从而欺骗系统以为这是一个新的开始。
也许这可以通过包含某种“最后更新时间戳”和到期时间来解决。
此外,欢迎完全不同的解决方案想法。在这种情况下,我们可能会被迫添加“电话回家”功能,以便将交易记录到我们的中央服务器。但这似乎是不利的,并且可能会在关键任务应用程序中增加另一个故障点。一般来说,他们非常不喜欢“电话回家”功能,原因很明显。
真诚的,韦尼克