什么是HMAC(计算机传输介质两大类)

什么是HMAC(计算机传输介质两大类)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-01-03
文章简介

数据完整性对于保护通信至关重要,通常通过称为HMAC的机制实现。了解它是什么以及今天如何使用它! 数据完整性检查对于安全通信至关重要。它们使通信方能够验证他们收到的消息的完整性和真实性。在FTPS、

2025阿里云双十一服务器活动

数据完整性对于保护通信至关重要,通常通过称为HMAC的机制实现。了解它是什么以及今天如何使用它!

数据完整性检查对于安全通信至关重要。它们使通信方能够验证他们收到的消息的完整性和真实性。在FTPS、SFTP和HTTPS等安全文件传输协议中,数据完整性/消息身份验证通常通过称为HMAC的机制实现。在这篇文章中,我们解释了HMAC是什么、它的基本内部工作原理以及它如何保护数据传输。

数据完整性检查在安全文件传输中的重要性

业务决策和流程高度依赖于准确可靠的数据。如果数据被篡改并且这些变化未被注意到,它可能会影响决策和流程。因此,如果您的数据必须通过网络传输,尤其是像Internet这样危险的网络,您必须采取预防措施来保持其完整性,或者至少知道它是否已被黑客入侵或更改。这正是FTPS、SFTP和HTTPS等安全文件传输协议配备防止数据完整性威胁机制的原因。目前最常用的机制是HMAC。

什么是HMAC?

HMAC代表Keyed-HashingforMessageAuthentication。它是通过对数据(待验证)和共享密钥运行加密哈希函数(如MD5、SHA1和SHA256)获得的消息验证码。HMAC在RFC2104中指定。

HMAC与数字签名几乎相似。它们都强制执行完整性和真实性。他们都使用加密密钥。它们都使用哈希函数。主要区别在于数字签名使用非对称密钥,而HMAC使用对称密钥(无公钥)。

HMAC的工作原理

要了解HMAC的工作原理,让我们首先检查如何使用散列函数(单独)对文件传输进行数据完整性检查。假设客户端应用程序从远程服务器下载文件。假设客户端和服务器已经就通用哈希函数达成一致,例如SHA2。

什么是HMAC,计算机传输介质两大类

如果攻击者设法拦截下载的文件,更改文件的内容,然后将更改后的文件转发给接收者,那么该恶意行为就不会被忽视。这是一旦客户端通过约定的散列算法运行被篡改的文件,生成的散列将与下载的散列不匹配。这将使接收者知道文件在传输过程中被篡改。

所以哈希函数应该保护你的文件,对吧?没那么快。虽然散列函数可以建立数据完整性,但它不能建立真实性。客户端如何知道它收到的消息来自合法来源?

这就是为什么FTPS、SFTP和HTTPS等安全文件传输协议使用HMAC而不仅仅是散列函数的原因。当两方通过这些安全文件传输协议交换消息时,这些消息将伴随HMAC而不是普通的散列。HMAC使用散列函数和共享密钥。

共享密钥为交换方提供了一种确定消息真实性的方法。也就是说,它为双方提供了一种验证他们收到的消息和MAC(更具体地说,HMAC)是否真的来自他们应该进行交易的一方的方法。

密钥启用此功能,因为它是在密钥交换期间生成的,这是一个需要双方参与的初步过程。只有参与密钥交换的那两个方会知道共享密钥是什么。反过来,如果他们使用共享密钥计算消息的相应MAC,他们将是唯一能够得出相同结果的人。

为什么HMAC适合文件传输?

除了启用数据完整性和消息认证的能力之外,HMAC是出色的文件传输数据完整性检查机制的另一个原因是它的效率。正如文章了解散列中所讨论的,散列函数可以获取任意长度的消息并将其转换为固定长度的摘要。这意味着,即使您有相对较长的消息,它们相应的消息摘要也可以保持较短,从而使您能够最大限度地利用带宽。

选择HMAC函数

由于HMAC的属性(尤其是其加密强度)高度依赖于其底层哈希函数,因此通常基于该哈希函数来识别特定的HMAC。所以我们有HMAC算法,其名称为HMAC-MD5、HMAC-SHA1或HMAC-SHA256。

您可能听说过MD5的碰撞相关漏洞。值得注意的是,尽管HMAC-MD5具有底层的MD5哈希函数,但并未受到这些漏洞的影响。无论如何,SHA-1在密码学上仍然比MD5强,而SHA-2(以及它的不同形式,如SHA-224、SHA-256、SHA-512)在密码学上也比SHA1强,所以您需要考虑到这一点.

那么您应该使用哪个HMAC?您通常会根据其底层哈希函数选择HMAC。因此,例如,如果性能对您来说比安全性更重要,您会想要使用HMAC-MD5。另一方面,如果安全性更为关键,那么您可能想要使用HMAC-SHA256来代替。

标签:
KubernetesvsMesos的详细比较(kubernetessa)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!