什么是完全向前保密(PFS)?

完美前向保密(PFS :  Perfect Forward Secrecy),也称为前向保密,是一种允许客户端和服务器之间进行短期私钥交换的加密方式。是指一种加密系统,它可以频繁、自动地更改用于加密和解密信息的密钥。这个持续的过程确保即使最新的密钥被黑客入侵,也会暴露最少量的敏感数据。

PFS通过使用唯一的会话键来实现这一点,每次建立连接时都自动生成会话键。消除了长期存储密钥的需要,并防止敏感数据被使用已被破坏的现有密钥访问。

PFS被所有主要的互联网浏览器支持,通常被视为一种安全特性。大多数现代操作系统都支持PFS,并且已经支持了很长一段时间。例如,上一个不支持PFS的Windows版本是Windows XP。

随着更多的技术巨头迫使客户采用PFS,预计PFS的增长将继续下去。谷歌已经在Gmail和其他产品中使用了多年,2017年,苹果在iOS系统中对App Store的要求是完美的前向保密。当TLS 1.3被引入时,互联网工程任务组(IETF)要求完全前向保密,只允许提供前向保密的密码套件。它是密码学未来的重要组成部分,而且有充分的理由。

 

PFS是如何工作的

由于PFS使用唯一的会话密钥,攻击者只能在恢复特定交换的私钥时才能查看特定交换的数据。SSL/TLS会话的分割大大降低了通过该向量发生严重数据泄露的风险。

因此,恶意行为者将不太可能以使用PFS的服务器为目标,因为他们的行为将导致访问的数据显著减少,而且在使用窃取的密钥解密数据之前,无法保证检索到的数据是预期的目标。

 

要实现完美的前向保密,必须使用一种兼容的加密类型。目前,有两种密钥交换算法可以工作:

  • Ephemeral Diffie-Hellman (DHE)
  • Ephemeral Elliptic Curve Diffie-Hellman (ECDHE)

PFS最重要的原则之一是密钥交换必须是短暂的,这意味着会话密钥只能一次性使用。这些也称为临时密钥。它们基于在每次交换期间创建的随机值,因此它们对该交换是唯一的,在交换结束时将不再有效。随后删除所有加密信息,并为下一个会话创建新的参数。

 

除了限制一旦密钥被泄露数据的暴露外,Diffie-Hellman密钥交换的设计还确保会话密钥不能通过暴力破解获得。由于会话密钥是通过独立的、非共享的加密方法创建的,所以服务器的私钥几乎是无用的。这对密钥中相应的公钥实际上从未用于加密任何数据。

 

PFS的主要目的

PFS防止了跨多个SSL/TLS会话的风险扩散。

以前,针对客户端和服务器之间常用连接的恶意行为者可以记录加密的流量,只要他们愿意,他们就可以等待,直到他们能够得到私钥。然后,一旦获得了这些信息,他们就可以回去解密所有被记录的信息。PFS在很大程度上限制了这一点。

 

在PFS之前,这种脆弱性是常见的,可能具有破坏性。一个明显的例子就是“心脏出血”OpenSSL漏洞,该漏洞于2012年被发现,并于2014年公开宣布。

 

Was this helpful?

1 / 1