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