Menu Close

校验和

校验和是一个表示传输消息中比特数量的值,IT 专业人员用它来检测数据传输中的高级错误。在传输之前,每一块数据或文件都可以在运行加密哈希函数后被分配一个校验和值。校验和有时也被称为哈希和或哈希值。

校验和通过向接收方提供有关传输的信息来工作,以确保数据的完整传递。校验和值本身通常是一串长长的字母和数字,作为文件或文件集的某种指纹,用以指示传输中包含的比特数量。

如果用户计算出的校验和值与原始文件的校验和值有丝毫不同,这就可以提醒传输中的所有方,文件可能已被第三方损坏或篡改,如恶意软件的情况。此时,接收方可以调查问题所在,或尝试再次下载文件。

常用的校验和确定协议是传输控制协议 (TCP) 和用户数据报协议 (UDP)。TCP 通常在跟踪传输的数据包方面更可靠,但 UDP 可能有利于避免减慢传输时间。

校验和(英语:Checksum)是冗余校验的一种形式。 它是通过错误检测方法,对经过空间(如通信)或时间(如计算机存储)所传送数据的完整性进行检查的一种简单方法。

计算机领域常见的校验和的方法有循环冗余校验(CRC)、MD5、SHA家族等。

产生检验和的实际过程一般是向核对函数或检验和算法输入给定的数据,一个良好的检验和算法通常会对进行很小的修改的输入数据都会输出一个显著不同的值。

一)探索加密校验和的世界

了解它们的含义、背后的魔力、如何使用它们,以及它们在数据完整性和网络安全中的关键作用.

在历史上,安装新软件的唯一方法是从实体商店购买实体拷贝。软件程序通常通过软盘或 CD 传递,这些介质会被小心地包装在密封的盒子里,以保证其真实性和完整性。几十年后,随着我们生活的数字化,获取新软件变得比以往任何时候都容易。现在,你只需访问一个可信赖的网站,选择你需要的软件,点击下载即可。

但如果你刚下载的软件与网站上描述的版本不符,甚至更糟糕的是,它感染了恶意软件怎么办?随着勒索软件成本的指数增长,有没有快速的方法来验证文件的完整性(从而避免恶意软件感染的灾难性后果)?当然有!这就是所谓的校验和。

但什么是校验和,它是如何工作的呢?在这篇文章中(这是一个关于校验和系列的第一篇),我们将探讨一串神秘的随机字母数字字符是如何成为数字版本的完整性印章,并成为保护您和您的组织免受网络安全威胁的有效盾牌。您将了解到:

  • 校验和是什么,
  • 它的作用,
  • 它的应用场景,以及
  • 它对开发者和用户的好处。

二)什么是校验和?简要定义

校验和是一个指示器(通常以短字符串的形式显示字母和数字),使您能够验证原始数据在存储或传输过程中是否被修改。校验和有时被称为哈希值,这些值是由加密算法生成的唯一值,类似于文件的数字指纹。(一个文件,一个唯一的指纹。)这些值是基于输入生成的,并与文件一起存储和/或传输。

但需要注意的是,虽然所有的文件哈希值都可以作为校验和,但并非所有的校验和都是哈希摘要。这有点像所有的冰淇淋都是甜点,但不是所有的甜点都是冰淇淋。一般来说,校验和用于捕捉数据的意外更改(即错误),而哈希值用于识别其他(可能是恶意的)更改。哈希值通常比校验和更大(有关大小的内容将在后面讨论)。

在本文中,我们将主要从哈希算法和摘要的角度来理解校验和。但撇开语义不谈,主要的要点是,如果文件发生变化,即使只是微小的变化,生成的指纹(校验和)也会完全不同。根据校验和的使用方式,这种不匹配将导致:

  • 显示警告消息,告知您值不匹配,
  • 阻止您安装损坏或篡改的软件,
  • 阻止您将损坏或感染的文件上传到服务器,以及
  • 防止未被检测到的未经授权的文件修改。
检验和
检验和

如果您曾经从互联网上下载过软件,那么您可能已经见过校验和,而您可能还没有意识到。它通常是一些奇怪的、看起来毫无意义的代码(通常伴随有“MD5”或“SHA”等术语),并放置在下载按钮附近。

在某些情况下,它还会附有一条简短的信息,邀请您通过将您计算的校验和哈希结果与页面上显示的进行比较来验证下载的文件。

在我们深入了解校验和的所有技术细节之前,让我们先看看一些用于生成校验和的加密算法的示例。

三)是什么原因导致校验和值不一致?

虽然不匹配的校验和值可以表明传输过程中出现了问题,但有几个因素可能导致这种情况发生,例如:

  • 网络连接或互联网连接的中断;
  • 存储或空间问题,包括硬盘问题;
  • 损坏的磁盘或文件;以及
  • 第三方干扰数据传输。

四)常见的校验和算法类型

有几种校验和算法可以用来创建校验和值,选择使用哪一种取决于目的。

以下是一些常见的哈希函数:

  • 安全哈希算法(SHA)0:这是第一种此类哈希函数,但在 1993 年创建后不久就被撤回了。
  • SHA-1:截至 2010 年,这种哈希函数已不再被认为是安全的。
  • SHA-2 家族(SHA-224、SHA-256、SHA-384、SHA-512)安全哈希算法-2:这一系列哈希函数依赖于文件和数字的大小来创建校验和值。生成的校验和易受长度扩展攻击的影响,这种攻击涉及黑客通过了解哈希摘要来重构文件的内部状态。经过 NIST 批准并推荐,它是一个广泛使用的算法系列,包括:
    • SHA-224 和 SHA-256,生成 256 位(即 32 字节)的校验和,显示为 64 个十六进制数字。
    • SHA-384、SHA-512、SHA-512/224 和 SHA-512/256,所有这些算法生成 512 位(即 64 字节)的校验和,显示为 128 个十六进制数字的字符串。
  • SHA-3 家族 (安全哈希算法-3)虽然也包括不同的算法,但基于一种全新的加密方法,与之前的算法有很大不同:
    • SHA3-224 — 生成 224 位(即 28 字节)的校验和,由 56 个十六进制字符组成。
    • SHA3-256 — 生成 256 位(即 32 字节)的校验和,显示为 64 个十六进制字符的输出。
    • SHA3-384 — 生成 384 位(即 48 字节)的校验和,由 96 个十六进制字符组成。
    • SHA3-512 — 生成 512 位(即 64 字节)的校验和,显示为 128 个十六进制数字的输出。
  • 消息摘要 5(MD5 Message Digest 5):MD5 哈希函数生成校验和值,但每个文件不一定有一个唯一的数字。因此,它容易受到漏洞影响,如果黑客用具有相同校验和值的文件进行替换,就可能出现问题。设计于 1991 年,它接受输入并生成一个 128 位(即 16 字节)的校验和,显示为 32 个十六进制数字。由于易受碰撞攻击,它的安全性不如 SHA(安全哈希算法)系列。
MD5 哈希算法
MD5 哈希算法
  • CRC(循环冗余检查校验和算法)。与“传统”校验和非常相似,它们通常用于数字网络和存储设备中的错误检测和意外数据更改识别(例如,在以太网和 Wi-Fi 数据包中)。基于循环码,CRC 使用多项式除法来确定其值。最常见的 CRC 包括:
    • CRC-16,生成 16 位(即 2 字节)的校验和,显示为 4 个字符的十六进制字符串,
    • CRC-32,生成 32 位(即 4 字节)的校验和,由 8 个十六进制数字组成,
    • CRC-64,生成 64 位(即 8 字节)的校验和,显示为 16 个十六进制数字的字符串。

五)校验和是如何工作的?

为了生成校验和,输入数据被拆分成多个具有相同位数的小块,然后通过复杂的算法过程,经过多轮操作。

生成的校验和总是具有相同的长度输出,无论原始文件的大小如何。例如,如果您将整本书《指环王》(1,178 页)通过加密算法处理,然后仅将作者的名字“托尔金”通过相同的算法处理,您将得到两个不同的校验和,但每个校验和的长度都是固定的。

我们已经提到,即使对输入文件进行最小的更改,也会生成完全不同的校验和。这使得校验和在以下方面非常有用:

  • 识别文件及其他数据的更改,和
  • 比较两个或多个文件以验证它们是否具有相同的内容。

但这种验证是如何工作的呢?让我们看几个实际的例子。

5.1. 在下载过程中检查数据完整性

假设您是一名开发者,创建了一个程序并希望保护其代码的完整性。在将其上传到您的网站之前,您会使用加密算法生成一个唯一的校验和(我们将在本系列的下一篇文章中详细讨论如何生成校验和)。接下来:

  1. 您将程序与校验和一起上传到您的网站。
  2. 用户将程序下载到他们的设备上。
  3. 用户验证下载的代码的校验和是否与原始的校验和匹配。这一比较可以手动完成,但通常在用户设备的后台进行,涉及计算下载文件的校验和值,并与下载网站提供的值进行比较。如果原始校验和与计算得到的校验和不匹配,说明文件在某种程度上已被更改(可能是无意中损坏或被恶意行为者修改)。

5.2. 在传输过程中检查数据完整性(例如,检查通过电子邮件传输的文件)

我们来看另一个例子。您的老板给 Microsoft Office Word 附件数字签名。在此过程中,计算文件的唯一哈希值,并将其包含在附加到文档上的数字签名中。

您的老板将带有数字签名的附件通过电子邮件发送给您。当您收到电子邮件时,系统将自动将数字签名(包括哈希值)与发送者生成的哈希值进行比较。如果它们匹配,这意味着文档是真实的,自创建以来没有被篡改或更改。

5.3.在文件存储中检查数据完整性(例如,比较保存的文件)

假设您在 USB 闪存驱动器上保存了三个 Word 文档。这三个文档每个都长达数百页,手动比较它们的内容是不切实际的。您知道其中两个是保存为不同名称的重复文件,但您不记得具体是哪两个,而且您想删除其中一个以节省 USB 闪存驱动器上的空间。

为了解决这个问题,您可以使用校验和执行以下操作:

  1. 计算每个文件的校验和。
  2. 比较这三个校验和,查看哪些匹配。
  3. 找到两个匹配的文件后,删除其中一个冗余文件。

这听起来非常方便,对吧?创建和比较校验和的过程,如上述示例所示,有时被称为完整性检查。使用校验和来确保数据完整性和完整性检查过程是 NDSA(国家数字保存联盟)的数字保存良好实践的一部分,但在今天的数字世界中,校验和的使用还有许多其他方式。

六)如何在WINDOW操作系统下检查 MD5 校验和

为了验证文件是否未被篡改,应检查该文件的 MD5 哈希。此外,在安装驱动程序或补丁时,确保下载的文件完整也很重要。

MD5 哈希是一种加密校验和,可以在 PC 或笔记本电脑上进行检查。它还可以在不同的操作系统上进行验证,例如 Microsoft Windows、Linux 和 Apple macOS。

在 Windows 上验证 MD5 校验和

在 Windows 上验证 MD5 校验和

  1. 打开 Windows PowerShell 或命令行:点击“开始”菜单上的 Windows 按钮。
  2. 在命令提示符下,输入 cmd 进行搜索,然后按 Enter。或者,按 Windows 键和 R,输入 cmd,然后按 Enter。
  3. 通过输入 cd 后跟文件所在文件夹的路径,进入包含需要验证 MD5 校验和的文件的文件夹。或者,可以从 Windows 资源管理器拖放所需的文件夹,以插入路径。
  4. 输入 certutil -hashfile <file> MD5。将 <file> 替换为文件名。
  5. 按 Enter。

校验和的结果可以与预期结果进行比较和验证。

七)校验和的重要用途

校验和可以用于许多不同的应用场景,例如:

  • 密码存储:只保存密码的校验和值,而不是明文密码,安全性更高。这样,如果发生数据泄露,黑客只能获得一整套无意义的十六进制字符串(即,不是明文密码本身),使事情变得更加困难。
  • 保证软件/代码完整性:如上述示例所述,校验和有助于通过完整性检查过程防止未经授权的访问和数据篡改。
  • 恶意软件保护:再次参考之前提到的示例,通过比较校验和确保下载的文档/代码/文件没有被损坏或感染恶意软件。
  • 版权图像保护:校验和可以防止第三方未经授权使用版权图像,即使第三方尝试通过简单地修改原始图像来做到这一点。记住:稍微修改的输入(在这种情况下是图片)将返回完全不同的校验和值。
  • 电子邮件恶意软件保护:当发件人的加密校验和与收件人的校验和不匹配时,意味着电子邮件已被篡改(例如,恶意软件被注入到电子邮件附件中)。这是识别可疑电子邮件和/或附件的一种简单而安全的方法。
  • 垃圾邮件保护:许多电子邮件提供商使用基于校验和的垃圾邮件过滤器,查看来自同一发件人的相同或相似消息,对其应用校验和。然后,系统会在数据库中查找相同的校验和,包括所有被标记为垃圾邮件的消息的哈希值。如果找到匹配项,电子邮件将自动发送到用户的垃圾邮件文件夹。
  • ISO 完整性:在从下载的 ISO 安装 Ubuntu 或任何其他操作系统之前,可以在刻录 CD 或 DVD 时启用图像校验和选项。这将使您能够将下载的 ISO 的校验和与刚创建的 CD 或 DVD 的校验和进行验证,帮助您避免安装已损坏或感染的 ISO。

这些只是校验和值在检查数据完整性方面的几个示例。

八)为什么完整性很重要

使用校验和对开发者、组织和用户都有很大的好处,因为它们可以提升:

  • 信任 — 证明您的软件是正宗且未受污染的。在您的软件下载按钮附近添加校验和,将提升您的可信度。客户将能够验证您的代码的真实性和完整性,从而增强他们对您作为开发者的信任。
  • 安全 — 保护您的客户和组织免受恶意软件和数据泄露的威胁。通过完整性检查过程立即识别数据篡改,并利用校验和降低数据泄露风险,将显著提升您的安全性和数据保护水平。
  • 声誉 — 展示您关心客户的在线安全。通过广泛使用校验和保证安全的客户体验,将进一步建立您作为可靠且技术精湛的开发者的声誉。正如您可以想象的,这将极大地提升客户的信心。
  • 收入和软件分发 — 用签名证书签署您的代码或软件。如今,许多软件分发平台要求在分发之前用由认可的证书颁发机构(CA)颁发的签名证书签署代码。这使用户能够验证作者的身份和软件的完整性,再次归功于校验和。因此,作为开发者,您将能够接触到尽可能多的客户。
  • 可信度和客户满意度 — 保护您的客户免受垃圾邮件的侵扰。作为电子邮件提供商,您将能够使用基于校验和的垃圾邮件过滤器立即和自动检测垃圾邮件。考虑到去年 Spamcop 报告了高达 38,658,552 封电子邮件被标记为垃圾邮件——相当于每秒 1.2 封——不难想象这种过滤器对您的可信度和客户满意度的积极影响。

正如您所见,校验和的力量是惊人的。不论您是用户还是开发者,一旦开始使用它们,您将能享受到它们无可置疑的好处。

九)总结

在今天的数字环境中,校验和适用于广泛的使用场景,并在所有组织的数据保护和网络安全策略中扮演着重要角色。本文为您提供了关于校验和的初步基础了解。您现在知道了校验和是什么,它是如何工作的,它的用途,以及它在今天的数字世界中为什么重要。

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!