什么是 HMAC SHA-384? VPN 身份验证说明

我们解释了“HMAC SHA-384”的含义以及它对安全 VPN 的贡献。 除非用户理解这些技术术语的含义,否则他们无法做出明智的决定。

编辑:本文已更新以更准确地反映 SHA-384 针对长度扩展攻击提供的安全性。

虚拟专用网络喜欢使用很多首字母缩略词和技术术语来描述其安全性。 我们也有罪。 在我们的安全功能页面上,我们提到我们使用 HMAC SHA-384 进行消息身份验证。 该声明为您提供了对评估我们的 VPN 服务的安全性至关重要的信息,但除非您知道它的含义,否则它毫无用处。

简而言之,HMAC SHA-384 是 ProtonVPN 用于确保您的消息在您的设备和我们的 VPN 服务器之间安全传输。 它验证我们发送给您设备的流量确实来自我们的服务器,并且在此过程中没有被篡改。 通过说我们使用 HMAC SHA-384,我们是在说您可以确信,一旦您连接到我们的一台服务器,您的连接就不会受到干扰或欺骗。

但是 HMAC SHA-384 是怎样做到的呢? 如果你扩展首字母缩略词,你有’H一棚 留言 一种认证 Csecure H 一种算法 384 位。” 虽然这可能更精确,但它可能对普通 VPN 用户没有任何帮助。 我们将从“消息验证码”开始,一次一个地分解它。

消息验证码验证发件人

首先,快速了解 Internet 流量的工作原理。 每个人都了解 Internet 连接的基本前提。 您的设备(无论是计算机、手机还是智能电视)连接到您的互联网服务提供商,然后帮助您连接到所需的网站。 如果您碰巧连接到恶意站点,或者有人拦截了您的连接(称为中间人攻击),他们可能会监控您的数据或将恶意软件注入您的设备。 建立您的连接与您的预期网站并保护此连接不被篡改对于使用 Internet 至关重要。

消息验证码或 MAC 就是这样做的。 它允许数据接收者知道您收到的数据是真实的(它是由声称发送它的一方发送的)并且没有被篡改(这被称为保持数据的“完整性”)。

考虑到 MAC 的令人印象深刻的工作只不过是一个信息块,通常只有几十个字节长。 MAC 由密钥和 MAC 签名算法生成。 密钥只是决定算法输出的参数。 MAC 之所以有效,是因为在不知道密钥的情况下几乎不可能重新创建消息的 MAC。 即使黑客能够从用户之前发送的消息中捕获 MAC,这也无助于他们破解该用户下一条消息的 MAC。

不要被“信息”这个词所迷惑。 这不是指电子邮件或文本,尽管 MAC 和 HMAC 也可用于验证它们。 相反,当您看到一条消息时,请考虑在您的设备和您连接的网站(或 VPN 服务)之间发送的数据。

因此,MAC 是验证您与网站(或 VPN 提供商)建立的连接是否安全的一种方式。

SHA-384

在我们解释散列消息身份验证代码的工作原理之前,您必须了解什么是散列。 散列是将任意大小的消息转换为固定长度的伪随机字符串的过程。 该字符串称为散列。 虽然它们听起来很相似,但散列与加密的不同之处在于它只在一个方向上起作用。 您永远不能“去散列”散列以返回原始消息。 因为它无法撤消,所以散列是一种共享敏感数据的安全方式。

哈希也很有用,因为它们允许您在不暴露该信息的情况下确认信息。 帮助说明这一点的一个简单用例是密码存储。 公司需要您的密码副本来验证您的帐户,但使用纯文本密码存在安全风险。 通过保存密码的散列副本,公司消除了这种安全风险。 当您登录时,公司将对您输入的密码进行哈希处理,并将其与文件中的哈希值进行比较。 如果它们匹配,则密码相同。 (然而,这不是最安全的身份验证方法。ProtonMail 使用更安全的安全远程密码协议,这有助于防止中间人攻击。)

SHA-384(或安全散列算法)是一种加密散列函数 SHA-2 哈希系列. 散列函数是一种接受消息并创建散列的算法。 384是指算法产生的哈希长度,为384位(或48字节)。 有一些散列函数会产生更长和更短的散列。 我们使用 SHA-384 是因为它提供了最佳级别的安全性和效率。 要查看使用 SHA-384 散列的消息的外观,请单击 这里. 它是目前可用的最强大的哈希函数之一,并针对一些已知的哈希漏洞提供了更强的保护,包括 长度扩展攻击碰撞攻击,与其他 SHA-2 哈希值相比。

HMAC 怎样建立安全连接

散列消息验证码 (HMAC) 是一种将加密散列函数转换为 MAC 的方法。 使用哈希为 MAC 添加了额外的安全层。 在 ProtonVPN的情况下,加密散列函数是 SHA-384。

以下是 HMAC 的工作原理,以最简单的形式。 首先,服务器和客户端都同意使用相同的加密哈希函数(SHA-384)并建立共享密钥。 然后,发送者将该共享密钥与正在发送的数据结合起来,并创建一个两者组合的散列。 然后再次对相同的共享密钥和第一个散列进行散列以获得第二个散列(这有助于防止某些类型的攻击)。 然后将数据和最终哈希传递给服务器。

当客户端收到哈希和消息时,它通过相同的 HMAC 算法运行消息和自己版本的共享密钥的相同组合。 如果哈希匹配,则证明服务器具有相同的密钥,从而“验证”数据。 这也表明消息没有被第三方以任何方式更改。 一旦客户端验证两个哈希值匹配,它就知道数据是可信的。

如果哈希不匹配,这意味着服务器没有相同的共享密钥或数据在传输过程中受到干扰,客户端将丢弃数据并知道不信任它。

需要注意的是,HMAC 不会加密数据,它只是验证数据的来源和完整性。 ProtonVPN 使用 AES-256 加密您的数据,使其保密,然后与 HMAC 一起发送。

虽然还有其他消息身份验证替代方案,甚至还有其他 MAC,如 UMAC 和 OMAC,但 HMAC 是验证消息发送者的最安全方法之一。 而且,它几乎无处不在。 它用于 TLS 和 IPSec 协议。

这是对什么是 SHA-384 以及散列消息身份验证代码怎样工作的非常基本的解释,但我们希望它可以帮助您更好地理解和评估使 VPN 安全可靠的原因。

最好的祝福,
这 ProtonVPN 团队

您可以在社交媒体上关注我们以了解最新消息 ProtonVPN 发布:

Twitter | Facebook | 红迪网

要获得免费的 ProtonMail 加密电子邮件帐户,请访问: protonmail.com