【问题标题】:What's the point in providing an MD5 or SHA1 hash along with a downloadable executable?提供 MD5 或 SHA1 哈希以及可下载的可执行文件有什么意义?
【发布时间】:2010-12-29 01:39:14
【问题描述】:

我以为他们在那里是为了安全;检查文件是否未被篡改。但可以肯定的是,如果有人能够修改文件,那么他们也可以使用哈希修改页面!

这实际上提供了什么安全性?

【问题讨论】:

    标签: md5 hash security sha1


    【解决方案1】:

    他们通常只是为了确保您下载完整且正确。

    它确实有助于解决一个与安全相关的问题:恶意修改是由于目标机器上运行的特洛伊木马插入自身而发生的。这本身不是一种“有针对性的”攻击——木马只是“感染”它所能感染的任何 exe——它不够聪明,无法修复哈希。

    【讨论】:

      【解决方案2】:

      在从镜像位置下载文件时提高安全性。

      例如apache.org 提供了许多镜像下载位置以减少其服务器上的负载。但是,他们无法控制这些位置上文件的有效性。因此提供了 MD5 校验和:校验和文件总是从 apache.org 下载,而不是从镜像下载。

      【讨论】:

        【解决方案3】:

        这不仅仅是为了安全。提供了哈希值,以便您检查下载的文件是否损坏。

        【讨论】:

          【解决方案4】:

          是的,这是为了确保文件完整性。
          假设您从其他来源获取可执行文件,例如从不同的站点,CD/DVD,您可以确定您使用的是正确的可执行文件。

          【讨论】:

            【解决方案5】:

            MD5 用于检查您下载的文件是否已正确下载,它通常以大文件作为 Linux 发行版的 ISO 来完成。

            【讨论】:

            • tcp 不处理这个吗?
            • 确实如此,(或多或少),但是在 TCP 完美传输它们的“吃”数据的更高层有很多错误的协议层。这些年来,我已经成为其中一些人的受害者。 :(
            • 另外,tcp 不处理虚假断开连接。
            【解决方案6】:

            实际上,仅 MD5 或 SHA1 不足以验证文件的完整性。您需要使用 MAC 或 HMAC。否则,长度扩展攻击是可能的。

            【讨论】:

            • 不。这没有意义。
            • 那是不真实的 - 你不能使用 [H]MAC,因为这意味着与所有验证方(即任何下载有效负载的人!)共享秘密,这将破坏 [H] 的目的]MAC。
            • 你能详细说明一下吗?
            【解决方案7】:

            正确的做法是在列出所有文件及其哈希值的 Web 服务器上提供哈希值。与服务器的连接必须通过 SSL/TLS 以确保服务器是正确的服务器而不是冒名顶替者。

            简而言之 - 将哈希值从文件中带出。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-09-06
              • 2015-01-02
              • 2011-08-16
              • 2010-12-08
              • 1970-01-01
              • 1970-01-01
              • 2012-02-09
              相关资源
              最近更新 更多