当前位置: 首页 > 编程语言 > C#

如何向外界证明数据文件没有被篡改?分享

时间:2023-04-10 20:46:15 C#

如何向外界证明数据文件没有被篡改?我们有一个基于C#的Web服务,可以从具有法律约束力的文件的政治组织接收文件。目前,我们向提交人提供包含收到文件校验和的收据,以便我们稍后可以向提交人证明存储在我们系统中的文件与其原始提交相匹配。收据将通过电子邮件发送给申报者。但是,我们无法向第3方审计员证明存储在我们系统中的文件和校验和从未更改过(即恶意DBA可以更改校验和值以匹配某些虚假替换文档的内容)。我目前正在考虑在某处托管一个只写的“日志文件”(可能是第3方审计员认为相当值得信赖的提供商,例如AWS),我们可以在其中记录每个文件ID和校验和。理想情况下,这个远程日志文件会像老式的会计日志一样——你只能用笔写字,所以你永远不能删除以前的条目!另一种选择可能是将这些电子邮件收据发送给第三方电子邮件存档提供商?(我们的消息历史记录如此之少,可能不值得与存档提供者交谈)有人有什么建议吗?对双方来说最安全的解决方案是让您的客户使用有效的加密证书签署他们的提交,这样他们就可以毫无疑问地验证提交没有被篡改。还有一些方法可以在C#中进行程序化签名和验证,这可能会让您有所了解:http://blogs.msdn.com/b/alejacma/archive/2008/06/25/how-to-使用网络和证书签名并验证签名c.aspx?PageIndex=1好消息是这个问题(就像您可能喜欢的那样)可以用公钥密码术来解决。坏消息是设计协议是专家的工作。上次我有一个叫BruceSchneier的人帮忙,但那里还有很多其他专家。基本上你所做的就是这个。首先,您准备文档的加密摘要。这是一种校验和,但保证是唯一且牢不可破的。没有人可以创建具有相同摘要的另一份文件。然后你和归档者用你自己的公钥加密这个摘要并交换加密密钥(当然要保存原始摘要)。如果存在质询,则生成文件管理器的加密摘要,并要求他使用他的私钥对其进行解密。如果它正确解密并与文件中的摘要匹配,那么它是正确的并且不能被否定。他也可以为你做同样的事情。证书只是一种特殊的公钥,存在各种工具。您可以使用证书,或仅使用密钥和一组工具(如PGP)。这是一个非常简单的版本。周围有更复杂的系统,但我认为让一个系统工作会花费你一些钱。以上就是C#学习教程:如何向外界证明数据文件没有被篡改?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: