OpenVPN vs IKEv2 vs PPTP vs L2TP / IPSec vs SSTP-VPN加密终极指南

虚拟专用网络(VPN)对在计算机和VPN服务器之间传输的所有数据进行加密。在此《完整的VPN加密指南》中,我们详细介绍了什么是加密以及如何在VPN连接中使用它。.

也许最重要的是,我们将解释VPN服务使用的一系列加密术语。我们希望,在阅读完本文档后,您将对这个复杂的主题有更深入的了解,并希望您能够更好地评估VPN提供商的安全声明。.

初赛

如果您不确定什么是VPN以及可以为您做什么,请查看我们的VPN入门指南.

我们的目标是尽可能简单地介绍VPN加密的关键功能。尽管加密技术是一个复杂的课题,但仍遥不可及.

即使“加密”一词引起了您的注意,但您仍想知道优质VPN服务中需要注意的事项,您可以直接进行总结。.

什么是加密?

从头开始," 国王非常严肃地说, "继续直到你走到尽头:然后停下来。”

刘易斯·卡罗尔,爱丽丝梦游仙境

最简单的类比是加密是锁。如果您拥有正确的钥匙,那么锁很容易打开。如果某人没有正确的密钥,但想访问受该锁保护的保险箱的内容(即您的数据),那么他们可以尝试破坏该锁.

用与保护银行金库的锁比保护手提箱的锁更强的方式相同,某些加密比其他加密更强.

基础

当您还是个孩子时,您是否玩过通过用一个字母替换另一个字母来创建“秘密信息”的游戏?替换是根据您选择的公式进行的.

例如,您可能已用字母后面的三个字母替换了原始邮件的每个字母。如果其他人知道这个公式是什么,或者能够解决这个问题,那么他们将能够阅读您的“秘密信息”。

用密码学术语来说,您正在做的是根据一种非常简单的数学算法对消息(数据)进行“加密”。密码学家将此算法称为“密码”。要对其解密,您需要密钥。这是一个可变参数,用于确定密码的最终输出。没有此参数,就不可能解密密码.

如果某人想读取加密的消息但没有密钥,则他们必须尝试“破解”密码。当加密使用简单的字母替换密码时,破解很容易。但是,通过使数学算法(密码)更加复杂,可以使加密更加安全。.

例如,您可以用对应于字母的数字替换邮件的每三个字母.

加密密钥长度

现代计算机密码是非常复杂的算法。即使在超级计算机的帮助下,即使不是出于所有实际目的,也很难破解它们。衡量密码强度的最粗略方法是通过创建密码的算法的复杂性.

算法越复杂,使用蛮力攻击破解密码的难度就越大。这种非常原始的形式攻击也称为穷举密钥搜索。它基本上涉及尝试所有可能的数字组合,直到找到正确的密钥.

计算机使用二进制数字(零和一)执行所有计算。密码的复杂性取决于其密钥大小(以位为单位),即表示其算法所必需的1和0的原始数量,其中每个0或1用一个位表示.

这被称为密钥长度,也代表了对任何给定密码成功执行暴力攻击的实际可行性。.

可能的组合数量(以及由此产生的暴力破解难度)会随着键的大小呈指数增长。使用AES密码(请参阅下文):

关键尺寸涂层

对此进行透视:

  • 2011年,世界上最快的超级计算机是FujitsuK。它的Rmax峰值速度为10.51 petaflops。根据此数字,强行破解128位AES(高级加密标准)密钥将需要花费富士通K 1.02 x 10 ^ 18-大约10亿(一亿亿五千万)个年。这比宇宙年龄大(137.5亿年).
  • 目前(2017年),世界上功能最强大的超级计算机是中国的双威TaihuLight。该野兽的峰值速度为93.02 petaflops。这意味着,世界上功能最强大的计算机仍需要大约885万亿年才能强行使用128位AES密钥。.
  • 暴力破解256位密码所需的操作数为3.31 x 10 ^ 56。这大约等于宇宙中的原子数!

电脑密码

加密密钥长度是指所涉及的原始数字的数量,而密码是用于执行加密的数学(实际公式或算法)。如我们所见,强行强制使用现代计算机密码是非常不切实际的.

这些密码算法的弱点(有时是故意的)可能导致加密被破坏。这是因为(错误设计的)密码的输出可能仍会在加密之前从原始信息中揭示某些结构。这会减少一组尝试的可能组合,从而有效地减少了有效密钥长度.

例如,河豚密码很容易受到攻击,这种攻击利用了概率论中生日问题背后的数学原理。密码算法的弱点研究被称为密码分析.

较长的密钥长度弥补了这些缺点,因为它们大大增加了可能的结果数量.

攻击者可以攻击密钥本身,而不是攻击密码本身。这可能会影响特定的站点或某些软件产品。但是密码算法的安全性仍然完好无损,并且其他使用相同算法但密钥生成安全的系统不受中断的影响.

密码密钥长度

密码的强度取决于密码本身的数学原理以及其以位表示的密钥长度。因此,通常将密码与使用的密钥长度一起描述.

因此,通常认为AES-256(密钥长度为256位的AES密码)比AES-128强。请注意,我之所以这样说,通常是因为我们在这里处理非常复杂的数学(请参阅稍后有关AES的说明).

注意Icon2 01 150X150

需要特别注意的是,密钥长度本身并不能很好地表明密码强度。重要的是密钥长度和密码的组合。例如,用于非对称加密的密码使用的密钥大小比用于对称加密的密钥长得多,以提供同等的保护.

密钥大小比较

该表有些过时,因为它没有考虑在RSA上发现的较新的攻击。还值得注意的是,RSA的椭圆曲线和Diffie-Hellman变体比传统变体要强得多。但希望你能明白.

注意Icon2 01 150X150

需要注意的一件事是,密钥长度越大,涉及的计算越多,因此需要的处理能力也就越大。这影响了可以加密和解密数据的速度。因此,VPN提供商等必须决定在选择加密方案时如何在安全性与实用性之间取得最佳平衡.

我们稍后再讨论各种VPN协议使用的主要密码,但是您可能会遇到的最常见的密码是Blowfish和AES。除此之外,RSA用于加密和解密密码密钥,SHA-1或SHA-2作为哈希函数用于验证数据.

非对称加密非对称加密

完善的前向保密

完美前向保密(PFS)也被称为短暂加密密钥,或者对于那些对“完美”一词不满意的人称为正向保密(FS)。

大多数现代的安全在线通信都依赖SSL / TLS。 HTTPS网站和OpenVPN协议使用它。 TLS(传输层安全性)是一种非对称加密协议。使用非对称密码意味着使用公开密钥保护数据,该公开密钥可供所有人使用。但是,只有拥有正确私钥的目标收件人才能解密它.

此私钥必须保密。如果它被对手窃取或破解,则该对手可以轻松拦截并读取其保护的任何通信.

不幸的是,服务器甚至整个公司通常只使用一个私有加密密钥来保护所有通信,这很常见。为什么?因为很简单但是,如果该密钥被盗用,则攻击者可以访问使用该密钥加密的所有通信。.

因此,此专用加密密钥成为“主密钥”,可用于解锁与服务器或公司的所有通信。众所周知,美国国家安全局(NSA)利用此漏洞来收集大量据称安全的数据.

解决方案是完全向前保密。该系统可为每个会话生成一个新的唯一私有加密密钥。即使Diffie-Hellman交换数学很复杂,这也是一个简单的想法。这意味着每个TLS会话都有其自己的密钥集。因此,“临时密钥”一词–使用一次,然后消失.

因此,没有可以利用的“主密钥”。即使一个会话遭到破坏,也只有那个会话受到破坏–并非所有人与该服务器或公司拥有的所有其他会话!

尽管不常见,但甚至可以刷新会话中的PFS密钥(例如,每小时一次)。即使私钥被泄露,这也进一步限制了对手可以拦截的数据量.

几年前,当我撰写有关此主题的文章时,对HTTPS网站和OpenVPN连接使用完全正向保密性的情况极为罕见。幸运的是,这种情况已经有所改变。尽管暂时不通用,但近来临时密钥的使用已大大增加.

VPN加密协议

VPN协议是用于协商两台计算机之间的安全加密连接的指令集(机制)。商业VPN服务通常支持许多此类VPN协议。其中最值得注意的是PPTP,L2TP / IPSec,OpenVPN,SSTP和IKEv2.

我会在下面介绍这些功能,但是有充分的理由,OpenVPN现在是商业VPN服务使用的行业标准VPN协议。它非常安全,几乎可以在所有支持VPN的设备上使用。因此,我将花费额外的数字墨水详细讨论OpenVPN.

PPTP

优点

  • 客户端内置于几乎所有平台
  • 设置非常简单

缺点

  • 很不安全
  • 国家安全局绝对危及
  • 轻松封锁

什么是PPTP?

它仅是一个VPN协议,并依靠各种身份验证方法来提供安全性。在商业VPN提供商中,这几乎总是MS-CHAP v2。 PPTP使用的加密协议(类似于标准密码)是Microsoft点对点加密(MPPE).

点对点隧道协议(PPTP)由Microsoft创建的一个财团开发,用于通过拨号网络创建VPN。因此,PPTP一直是企业VPN网络的标准协议.

PPTP几乎在每个支持VPN的平台和设备上均作为标准配置提供。它很容易设置,而无需安装其他软件。这确保了PPTP仍然是商业VPN和商业VPN服务的流行选择.

它还具有实施所需的计算开销少的优点,因此它很快!

不幸的是,PPTP是不安全的。完全没有尽管现在通常只发现使用128位加密密钥,但是自从1999年它首次与Windows 95 OSR2捆绑在一起以来,已经有很多年了,许多安全漏洞已经暴露出来。.

其中最严重的是未封装的MS-CHAP v2身份验证的可能性。使用此漏洞,PPTP已在两天内被破解。 Microsoft已修复此漏洞,但自己已发布建议使用L2TP / IPsec或SSTP代替.

NSA几乎可以肯定地将PPTP加密的通信解密为标准也就不足为奇了。更令人担忧的是,NSA收集了大量的旧数据,当PPTP被认为是安全的时,这些数据会被加密回去。它几乎可以肯定也可以解密这些旧数据.

PPTP同时需要TCP端口1723和GRE协议。对GRE进行防火墙很容易,这很容易阻止PPTP连接.

L2TP / IPsec

  • 通常认为是安全的(但请参见缺点)
  • 易于设置
  • 适用于所有现代平台
  • 比OpenVPN更快(也许)
  • 可能会受到NSA的破坏(未经验证)
  • 国家安全局可能故意削弱了这一点(未经证实)
  • 可以使用限制性防火墙
  • 经常执行不佳

什么是L2TP和IPsec?

第2层隧道协议(L2TP)内置于几乎所有现代操作系统和具有VPN功能的设备中。因此,设置就像PPTP一样简单快捷.

L2TP本身不对通过它的流量提供任何加密或机密性,因此通常使用IPsec身份验证套件(L2TP / IPsec)来实现。即使提供程序仅引用L2TP或IPsec(如某些引用),也几乎可以肯定地意味着L2TP / IPSec.

L2TP / IPsec可以使用3DES或AES密码。 3DES很容易受到“中间相遇”和Sweet32碰撞攻击的影响,因此实际上,您不太可能遇到这种情况.

因为L2TP / IPSec协议仅使用有限数量的端口,所以可能会出现问题。在NAT防火墙后面使用时,这可能会导致复杂化。这种对固定端口的依赖也使协议相当容易阻塞.

L2TP / IPsec将数据封装两次,这会降低速度。内核中进行加密/解密,并且L2TP / IPsec允许多线程这一事实弥补了这一点。 OpenVPN没有。结果是L2TP / IPsec理论上比OpenVPN快.

使用AES密码的L2TP / IPsec没有重大的已知漏洞,如果正确实施,它仍然可能是安全的。但是,爱德华·斯诺登(Edward Snowden)的启示强烈暗示了美国国家安全局(NSA)正在破坏该标准.

John Gilmore是安全专家,也是电子前沿基金会的创始成员。他解释说,IPSec在其设计阶段可能被故意削弱了.

可以说更大的问题是许多VPN服务实现L2TP / IPsec的能力很差。具体来说,他们使用可从其网站免费下载的预共享密钥(PSK)。.

这些PSK仅用于验证连接,因此,即使遭到破坏,仍将使用AES对数据进行安全加密。但是,攻击者可以使用预共享密钥来模拟VPN服务器。然后,它可能窃听加密的流量,甚至将恶意数据注入到连接中.

注意Icon2 01 150X150

摘要

尽管存在一些理论上的问题,但如果不使用公开发布的预共享密钥,通常会将L2TP / IPsec视为安全的。与许多设备的内置兼容性使其成为非常好的选择.

优点

  • 非常安全
  • 完全集成到Windows中
  • 微软支持
  • 可以绕过大多数防火墙

缺点

  • 微软拥有的专有标准

什么是SSTP?

SSTP是一种使用SSL 3.0的加密类型,与OpenVPN具有类似的优势。这包括使用TCP端口443逃避审查的能力。与Windows的紧密集成可以使该平台上的OpenVPN比OpenVPN更易于使用和稳定.

但是,与OpenVPN不同,SSTP是Microsoft拥有的专有标准。这意味着该代码不接受公众审查。微软与美国国家安全局(NSA)合作的历史以及对Windows操作系统内置的后门的猜测都未能激发人们对该标准的信心。.

Microsoft在Windows Vista SP1中引入了安全套接字隧道协议(SSTP)。尽管它现在可用于Linux甚至Mac OS X,但仍主要是仅Windows平台.

另一个问题是SSL v3.0容易受到所谓的POODLE攻击,因此现在不建议这样做。尚不清楚此问题是否也影响SSTP,但再次很难激发信心.

注意Icon2 01 150X150

摘要

从表面上看,SSTP提供了OpenVPN的许多优点。但是,作为专有的Microsoft标准严重损害了其信誉.

IKEv2

优点

  • 快速
  • 稳定-特别是在断开网络连接后切换网络或重新连接时
  • 安全(如果使用AES)
  • 易于设置(至少在用户端!)
  • Blackberry设备支持协议

缺点

  • 许多平台不支持
  • 在服务器端实施IKEv2非常棘手,这可能会导致问题发展
  • 仅信任开源实施

什么是IKEv2?

Internet密钥交换版本2(IKEv2)由Microsoft和Cisco联合开发。 Windows 7 +,Blackberry和iOS设备本身都支持它。这就是为什么许多iOS VPN服务使用IKEv2而不是OpenVPN的原因.

已经为Linux和其他操作系统开发了独立开发的IKEv2兼容版本。这些迭代中的许多迭代都是开源的。与往常一样,我建议对Microsoft开发的任何产品保持警惕。但是,IKEv2的开源版本应该没有问题.

IKEv2是IPsec协议套件的一部分。它通过在IPsec中传递SA(安全关联)属性来确保流量安全,并以多种方式改进了IKEv1。因此,IKEv2有时称为IKEv2 / IPsec。另一方面,IKEv1通常简称为IPsec.

IKEv2被Microsoft称为VPN Connect,特别擅长在用户暂时失去Internet连接时自动重新建立VPN连接。例如,进出火车隧道时.

由于它支持移动性和多宿主(MOBIKE)协议,因此IKEv2对变化的网络也具有很高的弹性。这使IKEv2对于定期在家庭WiFi和移动连接之间切换或在热点之间定期移动的手机用户来说是一个不错的选择.

IKEv2不像L2TP / IPSec那样普遍,因为它在更少的平台上受支持(尽管这种情况正在迅速改变)。但是,就安全性,性能(速度),稳定性和建立(和重新建立)连接的能力而言,它至少被认为与L2TP / IPsec一样好,甚至没有。.

开放VPN

优点

  • 非常安全(如果使用PFS)
  • 高度可配置
  • 开源的
  • 可以绕过防火墙
  • 需要第三方软件

什么是OpenVPN?

OpenVPN是一种开源技术,它使用OpenSSL库和TLS协议以及其他技术的混合物,以提供强大而可靠的VPN解决方案。现在,它是商业VPN服务使用的行业标准VPN协议-这是有充分理由的.

OpenVPN的主要优势之一是高度可配置。它本身不受任何平台的支持,但可通过第三方软件在大多数平台上使用。定制的OpenVPN客户端和应用通常可以从各个VPN提供商处获得,但是核心开放源代码是由OpenVPN项目开发的.

OpenVPN项目的许多开发人员和贡献者还为监督该项目的OpenVPN Technologies Inc.工作。.

OpenVPN最好在UDP端口上运行,但是可以将其设置为在任何端口上运行(请参阅后面的说明)。这包括TCP端口443,供常规HTTPS通信使用。通过TCP端口443运行OpenVPN使得很难区分VPN连接,除了银行,电子邮件服务和在线零售商使用的那种安全连接。这使得OpenVPN很难阻止.

OpenVPN的另一个优点是,用于提供加密的OpenSSL库支持多种密码。但是,实际上,商业VPN服务通常仅使用Blowfish和AES。我在下面讨论这些.

根据从爱德华·斯诺登(Edward Snowden)获得的信息来看,似乎只要使用了完全转发保密(Perfect Forward Secrecy),那么NSA就不会破坏或削弱OpenVPN。.

OpenVPN的近期众包审核现已完成,另一项由Private Internet Access资助的审核也已完成。没有发现影响用户隐私的严重漏洞。发现了一些漏洞,这些漏洞使OpenVPN服务器可能会遭受拒绝服务(DoS)攻击,但这些漏洞已在OpenVPN 2.4.2中修复。.

OpenVPN通常被认为是最安全的VPN协议,并且在整个VPN行业得到广泛支持。因此,我将在下面详细讨论OpenVPN加密.

OpenVPN加密

OpenVPN加密包括两个部分–数据通道加密和控制通道加密。数据通道加密用于保护您的数据。控制通道加密可确保计算机与VPN服务器之间的连接安全.

任何防御都只能达到其最弱点,因此不幸的是,某些VPN提供商在一个通道上使用比另一个通道更强的加密(通常在控制通道上更强).

例如,看到广告被宣传为使用具有RSA-4096握手加密和SHA-512哈希认证的AES-256密码的VPN服务并不少见。这听起来非常令人印象深刻,直到您意识到它只涉及控制通道加密,而不是数据通道,而数据通道仅使用带有SHA1哈希身份验证的Blowfish-128进行了加密。这样做仅出于营销原因.

如果在数据和控制通道上使用了不同的加密,则OpenVPN连接的真正强度将由使用的较弱的加密套件来衡量.

为了获得最大的安全性,数据和控制通道加密都应尽可能强。但是,使用的加密越强,连接速度就越慢,这就是为什么某些提供程序在数据通道加密上之以鼻的原因。.

控制通道加密也称为TLS加密,因为TLS是用于安全地协商计算机与VPN服务器之间的连接的技术。这是您的浏览器用来安全地协商与HTTPS加密网站的连接所使用的相同技术。.

  • 控制通道加密由密码,握手加密和哈希认证组成.
  • 数据通道加密由密码和哈希认证组成.

VPN提供商通常对控制和数据通道使用相同级别的加密。在我们的评论和“交通灯”表中,如果每个渠道使用不同的值,我们只会分别列出它们.

如果我们声明提供者使用AES-256密码,则意味着控制和数据通道均使用AES-256密码。*

(*至少应该是这种情况。某些旧版评论不符合我们当前的指南,但应及时淘汰).

密码

OpenVPN可以使用许多对称密钥密码来保护控制通道和数据通道上的数据。实际上,商业VPN提供商仅使用Blowfish,AES和(很少)山茶花.

河豚

Blowfish-128是OpenVPN使用的默认密码。理论上,密钥大小的范围可以从32位到448位,但是Blowfish-128是您可能在野外遇到的唯一版本.

河豚通常被认为足够安全,可用于休闲用途,但已知缺点。它是由著名密码学家布鲁斯·施耐尔(Bruce Schneier)创建的,他在2007年说:“不过,我很惊讶它仍在使用。”

我们认为,使用Blowfish-128作为OpenVPN数据通道的第二道防线是可以接受的。但是,在控制通道上使用时,不应认为它是安全的.

AES

AES已成为VPN行业范围内的“金标准”对称密钥密码。 AES经过NIST认证,几乎被普遍认为非常安全。 AES-256被美国政府用于保护“安全”数据.

它具有128位的块大小而不是Blowfish的64位块大小的事实,这也意味着它可以比Blowfish更好地处理更大的文件(超过4 GB)。除此之外,AES指令集还受益于大多数平台上的内置硬件加速.

AES通常具有128位和256位密钥大小(也存在192位AES)。据任何人所知,AES-128仍然是安全的。鉴于我们现在知道的NSA对加密标准的攻击程度,但是,大多数专家都认为AES-256提供了更高的安全裕度.

只是为了确保没有人会觉得这个问题太容易了,但是,对此问题还有一些争论。 AES-128具有比AES-256更强的密钥时间表,这使一些非常著名的专家认为AES-128实际上比AES-256更强.

但是,普遍共识是AES-256更强.

茶花

山茶花是一种现代的安全密码,至少与AES一样安全和快捷。它提供128、192和256位的密钥大小。得益于NIST认证及其美国政府的使用,几乎总是使用AES代替山茶花.

但是,正如我在下面讨论的那样,有一些理由不信任NIST认证的密码。茶花是非NIST密码的事实是选择它而不是使用AES的主要原因。此选项很少使用,但是.

还值得注意的是,山茶花的弱点没有经过AES的充分测试.

握手加密

为了安全地协商设备和VPN服务器之间的连接,OpenVPN使用TLS握手。这允许OpenVPN客户端和VPN服务器建立与之通信的秘密密钥.

为了保护这种握手,TLS通常使用RSA公钥密码系统。这是用于识别TLS / SSL证书的加密和数字签名算法。但是,它也可以使用Diffie-Hellman或ECDH密钥交换.

RSA

RSA是一种非对称加密系统-公钥用于加密数据,而其他私钥用于解密数据。在过去的20多年中,它一直是互联网安全的基础.

现在公认的是,密钥长度为1024位(RSA-1024)或更短的RSA是不安全的,并且几乎可以肯定已被NSA破解。因此,互联网公司之间采取了一致行动,要求从RSA-1024迁移.

不幸的是,我们仍然发现某些VPN服务继续使用RSA-1024来保护握手。这个不好.

RSA-2048及更高版本仍然被认为是安全的。 RSA本身不提供完善的前向保密性(PFS)。但是,这可以通过在其密码套件中包括Diffie-Hellman(DH)或椭圆曲线Diffie-Hellman(ECDH)密钥交换来实现。.

在这种情况下,DH或ECDH密钥的强度无关紧要,因为它仅用于提供完全正向保密性。使用RSA保护连接.

因为它可能引起混乱,所以我还要指出,RSA密码系统与信誉不佳的美国科技公司RSA Security LLC没有任何关系。该公司在被美国国家安全局(NSA)贿赂1000万美元后,故意削弱了其旗舰BSAFE加密产品。.

Diffie-Hellman和ECDH

OpenVPN有时使用的另一种(竞争)握手加密是Diffie-Hellman(DH)加密密钥交换。它的密钥长度通常为2048位或4096位。请注意,由于对logjam攻击的敏感性,应避免使用DH-2048以下的值.

与RSA相比,Diffie-Hellman握手的主要优势在于,它本身就提供了完善的前向保密性。但是,正如已经指出的,仅将DH密钥交换添加到RSA握手中即可达到类似的目的。.

Diffie-Hellman因重复使用有限的素数而引起了巨大争议。这使得它很容易被强大的对手(例如NSA)破解。因此,Diffie-Hellman本身无法进行安全的握手加密。很好,但是,当它用作RSA密码套件的一部分时.

椭圆曲线Diffie-Hellman(ECDH)是一种较新的加密形式,不易受到这种攻击。这是因为它使用特定类型的代数曲线的属性而不是大质数来加密连接.

ECDH可以用作RSA握手的一部分,以提供完善的前向保密性,也可以自行(使用ECDSA签名)对握手进行安全地加密。这也提供了PFS.

ECDH密钥长度从384位开始。这被认为是安全的,但是当单独使用它来保护TLS握手时,时间越长越好(无论如何在安全性方面).

SHA哈希验证

这也称为数据身份验证或哈希消息身份验证代码(HMAC).

安全哈希算法(SHA)是一种加密哈希函数,除其他功能外,还用于对数据和SSL / TLS连接进行身份验证。这包括OpenVPN连接.

它创建一个有效的TLS证书的唯一指纹,该指纹可以被任何OpenVPN客户端验证。即使是最小的变化也可以检测到。如果证书被篡改,将立即检测到该证书并且拒绝连接.

这对于防止中间人(MitM)攻击非常重要,在这种情况下,对手会尝试将您的OpenVPN连接转移到其自己的服务器之一,而不是VPN提供者。例如,可以通过入侵路由器来做到这一点.

如果对手可以破解提供商提供的TLS证书的哈希值,则可以反转哈希值以创建伪造的证书。然后,您的Open VPN软件将验证连接为真实连接.

SHA安全吗?

用于保护HTTPS网站时,SHA-1已损坏。这已经知道了一段时间。 SHA-1网站仍然可以找到,但正在逐步淘汰。现在,当您尝试连接到使用SHA-1保护的网站时,大多数浏览器将发出警告。.

现在建议改用SHA-2和SHA-3哈希函数,它们很安全。 SHA-2包括SHA-256,SHA-384和SHA-512。然而…

OpenVPN仅将SHA用于HMAC。我认为在这里不必过多介绍细节,但是SHA哈希身份验证是HMAC算法的一部分。攻击仅嵌入SHA-1哈希函数本身比攻击SHA-1嵌入的HMAC困难得多.

换句话说,OpenVPN使用的HMAC SHA-1被认为是安全的,并且对此有数学证明。当然,HMAC SHA-2和HMAC SHA-3更安全!实际上,最近的OpenVPN审核认识到HMAC SHA-1是安全的,但建议改用HMAC SHA-2或HMAC SHA-3.

笔记

国家标准技术研究所

AES,RSA,SHA-1和SHA-2均由美国国家标准技术研究院(NIST)开发和/或认证。这个机构通过自己的认可与国家安全局紧密合作开发密码.

鉴于我们现在知道的NSA为削弱或建立后门以形成国际加密标准所做的系统性努力,我们完全有理由质疑NIST算法的完整性.

NIST当然强烈反驳了这些指控:

“ NIST不会故意削弱加密标准。”

它还邀请公众参与许多即将提出的提议的加密标准,此举旨在增强公众的信心。.

但是,《纽约时报》指责国家安全局(NSA)引入了无法检测的后门程序或颠覆了公共开发流程以削弱算法,从而规避了NIST批准的加密标准。.

当RSA Security(EMC的一个部门)私下告诉客户停止使用据说包含NSA设计的缺陷的加密算法时,这种不信任感得到了进一步加强。该算法也得到了NIST的认可.

此外,Dual_EC_DRBG(双椭圆曲线确定性随机位生成器)是由NIST设计的加密标准。多年来一直不安全.

2006年,荷兰埃因霍温科技大学指出,对其进行攻击很容易在“普通PC”上启动。微软工程师还标记了该算法中的可疑后门。.

尽管存在这些担忧,但NIST一直领先于整个行业。微软,思科,赛门铁克和RSA都在其产品的加密库中包含了该算法。这在很大程度上是因为遵守NIST标准是获得美国政府合同的先决条件.

NIST认证的加密标准在全球范围内普遍存在,遍及所有依赖隐私的工业和商业领域。这使整个情况变得令人不寒而栗.

也许恰恰是因为非常依赖这些标准,所以密码学专家一直不愿意面对这个问题。.

AES-CBC和AES-GCM

直到最近,您在VPN世界中可能会遇到的唯一AES密码是AES-CBC(密码块链接)。这指的是分组密码模式,这是一个复杂的主题,实际上不值得在这里讨论。尽管从理论上讲CBC可能存在一些漏洞,但普遍的共识是CBC是安全的。实际上,在OpenVPN手册中建议使用CBC.

OpenVPN现在还支持AES-GCM(加利奥斯/计数器模式).

  • GCM提供身份验证,无需使用HMAC SHA哈希功能.
  • 它也比CBC快一点,因为它使用硬件加速(通过线程化到多个处理器内核).

AES-CBC仍然是最常用的通用模式,但是我们现在开始遇到AES-GCM "在野外." 鉴于GCM的优势,这种趋势只会持续下去。从加密角度来看,无论是AES-CBC和AES-GCM都是非常安全的.

OpenVPN UDP与OpenVPN TCP

OpenVPN可以在TCP(传输控制协议)或UDP(用户数据报协议)上运行.

  • TCP =可靠。每当计算机使用TCP发送网络数据包时,它都会在发送下一个数据包之前等待该数据包已到达的确认。如果未收到确认,它将重新发送数据包。这称为纠错。所有数据都有“保证交付”,但速度可能很慢.
  • UDP =快速。使用UDP,不会执行此类错误纠正。数据包只是发送和接收而没有确认或重试。这使UDP比TCP快得多,但可靠性较差.

如果可以选择的话,除非您遇到连接问题,否则我建议使用更快的UDP协议。这是大多数VPN提供商采用的默认策略.

在TCP端口443上使用OpenVPN击败审查

OpenVPN的一大优点是它可以在任何端口上运行,包括TCP端口443。这是HTTPS使用的端口,HTTPS是一种加密协议,可保护所有安全网站的安全。.

没有HTTPS,就不可能有任何形式的在线商务,例如购物或银行业务。因此,很少会阻塞该端口.

另外,TCP端口443上的VPN通信可以以与HTTPS相同的方式在TLS加密内进行路由。这使得使用先进的深度数据包检测技术很难发现。因此,TCP端口443是逃避VPN块的首选端口.

许多VPN提供商都可以使用其自定义软件来更改OpenVPN使用的端口号.

即使您不支持,许多VPN提供商实际上还是在服务器级别使用TCP端口443支持OpenVPN。您可以通过简单地编辑OpenVPN配置(.ovpn)文件来切换到该文件。因此,值得向您的VPN提供商询问.

值得注意的是,网络工程师不喜欢这种策略,因为TCP over TCP效率很低。但是,在击败审查制度时,它通常是可行的.

SSTP默认使用TCP端口443.

总结

VPN协议

  • PPTP 是非常不安全的,应该避免。尽管易于安装和跨平台兼容性很吸引人,但L2TP / IPsec具有相同的优势,并且更加安全.
  • L2TP / IPsec 是非关键用途的良好VPN解决方案。在不支持OpenVPN的旧式设备上尤其如此。但是,它已被国家安全局严重破坏.
  • SSTP 具有OpenVPN的大多数优点,但主要只是Windows协议。这确实意味着它可以更好地集成到操作系统中,但是由于此限制,VPN提供商对其的支持很差。除此之外,它的专有性以及Microsoft创造的事实意味着我不信任它.
  • IKEv2 是一个非常好的(安全且快速)的协议。尤其是移动用户,甚至可以更喜欢OpenVPN,因为它可以改善Internet连接中断时的重新连接能力。对于Blackberry用户,这几乎是唯一可用的选项。尽可能使用开源版本.
  • 开放VPN 在大多数情况下,建议使用VPN协议。它是快速,可靠,安全和开源的。它本身没有真正的缺点,但是要真正确保安全,重要的是要很好地实施它。这意味着使用“完美前向保密性”进行高度加密.

OpenVPN加密

对于加密,细节在于细节。经常看到VPN提供商说他们使用“超强256位” AES OpenVPN加密,但这实际上并不能告诉我们很多。 AES-256确实是一个强密码,但是如果使用的加密套件的其他方面很弱,那么您的数据将是不安全的.

  • 密码 –这样可以保护您的实际数据。 AES-256现在是行业标准,建议使用.
  • 握手 –这样可以保护您与VPN服务器的连接。 RSA-2048 +或ECDH-384 +是安全的。重要的是RSA-1024和Diffie-Hellman握手是 .
  • 哈希认证 –创建一个唯一的指纹,该指纹用于验证数据和TLS证书(即,检查要连接的服务器是否确实是您认为要连接的服务器)。 HMAC SHA-1绝对可以,但是HMAC SHA-2(SHA-256,SHA-384和SHA-512)和HMAC SHA-3更加安全!请注意,如果使用AES-GCM密码,则不需要哈希认证.
  • 完善的前向保密 (PFS)–这样可确保为每个会话创建新的加密密钥。除非实施了PFS,否则不应将OpenVPN视为安全的。可以通过在RSA握手中包括Diffie-Hellman或ECDH密钥交换,或者在DH或ECDH握手中完成此操作.
  • 加密的安全性仅在于其最弱点。这意味着数据和控制通道上的加密设置都应该很强.
  • 对于密码和密钥使用更高的位长度几乎总是更安全,但这是以速度为代价的.

OpenVPN将根据需要在客户端和服务器之间协商密码。除非定义了非常具体的参数,否则OpenVPN可能默认为弱设置。至少,OpenVPN将默认为Blowfish-128密码,无PFS的RSA-1024握手以及HMAC SHA-1哈希认证.

结论

希望您现在对如何建立安全的VPN连接有了更好的了解。但是,在正确配置VPN时,加密只是故事的一半。另一半确保没有流量进入或离开VPN连接之外的计算机.

要了解更多信息,请查阅我们的IP泄漏完整指南.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me