完整性和真实性(Integrity and Authenticity)

2019-10-18 21:30发布

对不起,让问这么多问题,但你们似乎总是那么好,乐于助人......

我需要做一些应用程序,从文件导入数据。 例如,用户选择一个文件和应用程序导入一些数据到数据库中。

但是,我一直在思考,并且这种应用程序会导致完整性和文件的真实性的问题。 如果用户更改文件的应用程序不允许使用该信息。 如果一个文件从源并不为人熟知,应用程序无法使用该文件。

我该怎么做这种事情?

PS:我使用C#.NET

Answer 1:

认证和完整性由数字签名提供。

按照driis的意见,如果你控制文件格式。

或者,如果该文件是XML,使用XML签名 。

使用C#/。NET:

  • 注册XML文档
  • 验证XML文档的数字签名


Answer 2:

如果你能控制的源文件格式,你可以嵌入一个数字签名。 如果您基于文件内容的哈希签名,那么你可以肯定的是,文件来自受信任的来源,那就是还没有被篡改。



Answer 3:

这取决于你有多强需要这种保护。

例如,你可以有哪些地方有一个哈希节点包含原始文件(+盐)的哈希的XML文件(易读性)。 这可以通过程序进行更新,但用户可以有一个更难的时间搞清楚什么是重要手段。 当程序打开文件,它计算哈希值,并检查它是否同为一个书面的文件中。

你甚至可以更进一步,使用数字签名,但这是方式更复杂。



文章来源: Integrity and Authenticity