Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 文件哈希如何保证文件的安全';没有改变吗?_File_Security_Hash - Fatal编程技术网

File 文件哈希如何保证文件的安全';没有改变吗?

File 文件哈希如何保证文件的安全';没有改变吗?,file,security,hash,File,Security,Hash,从最受信任的站点下载文件时,它们会提供文件的哈希值,然后您可以使用这些哈希值来验证您下载的文件是否与它们发布的文件相同(或者如果我在这方面有错误,请更正!) 我的问题是:如果你是一个能够修改网站上文件的黑客,你不能同时修改该网站上发布哈希值的页面以反映你新的“修改”值吗?如果是,它提供了什么额外的安全性?若否,原因为何?或我只是忽略了一些显而易见的东西,关于它们是如何工作的? 关键是你攻击的攻击向量: 有人破坏了主服务器 如果有人可以进入主服务器,他们可以重写哈希以使其看起来有效(所以不可以)

从最受信任的站点下载文件时,它们会提供文件的哈希值,然后您可以使用这些哈希值来验证您下载的文件是否与它们发布的文件相同(或者如果我在这方面有错误,请更正!)


我的问题是:如果你是一个能够修改网站上文件的黑客,你不能同时修改该网站上发布哈希值的页面以反映你新的“修改”值吗?如果是,它提供了什么额外的安全性?若否,原因为何?或我只是忽略了一些显而易见的东西,关于它们是如何工作的?

关键是你攻击的攻击向量:

  • 有人破坏了主服务器

    如果有人可以进入主服务器,他们可以重写哈希以使其看起来有效(所以不可以)

    所以散列不能防止主服务器被破坏

  • 有人破坏了镜像服务器

    假设散列在主服务器上,那么它们可以添加一层防御,以防有人破坏镜像,因为您可以检测到它们的修改

  • 有人和我有联系

    如果有人可以中断连接,他们可以修改文件和散列

    所以它根本不能保护你

  • TCP连接中的位错误

    这是散列文件的主要好处。在过去,当错误检查不如今天那么好时,你会下载一个100mb的文件,其中会有随机的位错误。使用
    md5sum
    可以快速检测这些错误并重新下载文件

  • 这就是杂烩的好处。完整性检查您下载的内容是否与服务器上的内容相同


    如果需要安全性,则需要来自可信私钥(GPG)的签名。在绝大多数情况下,哈希对安全没有任何作用。

    我已经多次向朋友、家人和客户提出同样的观点。我想总比什么都没有好,但不多。事实上,情况可能更糟,因为这可能会导致错误的安全感。这就是数字签名的全部原因。不幸的是,许多重要的供应商和开源项目仍然提供未经数字签名的下载(叹气)。创建散列的开销基本上为零。显然,获取签名证书和签名图像的开销太大(另一个叹息…),只要散列在通过https交付的页面上发布,您至少可以合理地确定它是由给定证书的主题发布的。如果攻击者可以修改站点本身上的文件,则哈希是无用的。我同意@Dan的观点,签名的可执行文件更可取。当文件也托管在下载镜像上时,哈希具有最大的附加值。通过在主站点上提供哈希值,但在不同站点上提供文件,可以确保来自其他站点的文件没有被更改。我同意,当它们都在同一个网站上托管时,没有太多附加值。谢谢大家(@Dan@user18044@Rutix)的回答!都很好。我感谢你抽出时间与我分享。