这可能有点模糊,但我希望在 SO 上的所有人中,会有一些人以前遇到过这类问题。
背景
我们的应用程序是一个控制火车订单的 C#/.NET 服务。我们使用 LINQ-to-SQL 将铁路网络的状态和火车订单存储在 SQL Server 2005 数据库中。
我们有一个安全要求,即 COTS 软件本身不能被“信任”。
要求
因此,风险被捕获为:“SQL 服务器或操作系统修改静态或动态数据”。
我们的任务:“存储在数据库中的数据应经过验证,以便在读取时可以通过数据访问代码确认自上次提交以来它没有更改。”
问题
我很想找到一种“自动”的方式来满足这个要求。
如果做不到这一点,则无需在数据库的每个表中创建列来存储计算的哈希值(然后我们必须在读取时对其进行验证)来满足条件。