安全加密签名是否必须位于其引用的文件之外?

时间:2009-07-15 17:25:12

标签: python file cryptography digital-signature

我正在使用Python编写一个宠物项目,它涉及用户A& B通过网络进行交互,尝试确保每个人都拥有来自用户C的同一文件的本地副本。

这个想法是C给每个文件经过数字签名。 A& B交易他们拥有的数字签名,并在他们自己的副本上查看。如果签名失败,则其中一个签名文件的版本不正确/已损坏/已修改。

因此,问题是,C可以分发单个文件,以某种方式包含它自己的签名吗?或者C是否需要单独提供文件和签名?

2 个答案:

答案 0 :(得分:5)

单独来自C的数字签名应该足以让A和B确认他们的文件没有被破坏,而不会相互通信。如果A和B没有收到来自C的签名,他们每个人都可以创建该文件的加密哈希并比较哈希,但这不需要在C上进行任何数字签名。

如果您希望C对文件进行签名,请单独发送签名和文件,或将它们包装在某种容器中,例如zip文件或自行开发的解决方案(例如,文件中的第一行代表签名,其余是有效载荷。

要按字面意思回答您的问题,签名本身不必在文件之外,但正在签名的部分不能包含签名本身。

答案 1 :(得分:4)

如果您可以控制文件格式,是的。在内容正确之前的标题中包含签名,并使签名仅覆盖文件的内容部分,整个文件。类似的东西:

SIGNATURE=72ba51288199b829a4b9ca2ac911e60c
BEGIN_CONTENTS
... real file contents here ...