加密是VPN技术的核心。在本指南中,我们将介绍VPN加密的工作原理以及它如何保护您.

VPN加密指南

实际是什么加密?

加密是对数据进行编码的过程,以便只有获得授权的人才能访问它,从而防止其他任何人这样做.

此过程涉及字母和数字的替换,除非您使用正确的过程对其进行解码,否则消息看起来像乱码一样,该过程称为“密码”.

鉴于现代计算机的处理能力,人类可能想出的任何密码都太容易破解.

现在,强大的数学算法可用于创建不同的加密方法,以及解密所需的秘密密码.

VPN服务使用加密在设备和VPN服务器之间建立安全连接(VPN隧道),从而使Internet数据不受ISP,黑客和任何其他监听第三方的侵害.

在本指南中,您将学习有关密码和VPN协议的所有信息,并找出哪种密码最适合使用和最安全.

我们将其分解为简单的英语,并用简单的术语解释所有术语,以便您可以更好地了解VPN加密及其所需要的一切.

Contents

加密词汇表

黑色背景上的加密数据的屏幕截图

首先,我们定义一些我们在谈论加密时使用的重要术语:

术语
定义
算法 解决问题需要遵循的一组指令(软件)。密码是用于执行加密或解密的算法.
认证方式 确保和确认用户身份的过程.
“二进制数字”的缩写,它是计算机中最小的数据单位.
一组固定长度的位(例如64位)
块大小 一组位的最大长度.
蛮力攻击 通过尝试所有可能的字符组合来尝试猜测秘密的方法。这是一项粗略而详尽的工作,而不是更复杂或更具战略意义的工作。想象一下,您无法打开储物柜上的挂锁,而不是试图记住密码,而是通过强行强行使用它来简单地尝试从000到999的每个组合,直到打开为止.
密码 一种执行加密和解密的算法.
密码学 编写和解决代码以创建安全消息传递的艺术,其设计目的是使只有预期的参与者才能处理和阅读它.
加密 为了防止未经授权的访问而将数据转换为代码的过程.
防火墙功能 监视和控制从网络传入或传出的数据包的软件。您可能会熟悉台式机或笔记本电脑上的这种计算机,该计算机旨在警惕黑客和病毒.
握手 初始化两台计算机之间的连接的过程-顾名思义,这是建立通信规则的问候.
HTTPS 它代表“安全超文本传输​​协议”,但没人能这样称呼它。这是HTTP的安全版本,该协议是网络的基础,用于确保设备和网站之间的通信保持身份验证,私有和安全.
核心 操作系统的核心。在计算机中,它控制计算机及其硬件的操作.
密码用来将“纯文本”(未加密的信息)转换为密文(已加密的信息)的字符串,反之亦然。密钥的长度可以变化–通常,密钥越长,破解它所需的时间就越长.
数据包是在网络的起点和目的地之间路由的数据单位,由报头,有效载荷(您的数据)和尾部组成,通常具有特定的集合大小,与网络MTU匹配(最大传输单位)大小。当需要通过网络发送数据时,如果数据包大于数据包,则可能需要将其分解为多个数据包,然后分别发送并在目的地将数据重组.
港口 就像船停在物理端口一样,计算端口也代表了通信的“终点”。任何信息都通过端口到达您的设备.
协议 一组用于协商VPN客户端和VPN服务器之间的连接的规则。有些比其他更为复杂或安全-OpenVPN和IKEv2是一些流行的选择.

加密词汇表

现在我们知道了术语的含义,是时候更深入地解释什么是加密和加密了.

加密类型

插图的两个键,一个在另一个上浅蓝色背景

有两种加密类型:对称和非对称.

对称密钥加密

对称密钥加密仅使用一个密钥来处理数据的加密和解密.

双方需要相同的密钥进行通信。这是VPN技术中使用的那种加密.

现代计算机的强大功能意味着密钥必须变得越来越长才能防止暴力攻击(尝试各种组合以找到正确的密钥).

当前的金标准是256位密钥,它不能被强行使用,因为使用当今可用的计算机来进行所有可能的组合需要花费数十亿年的时间。.

非对称加密

使用非对称密码学(或公钥密码学),每个想要安全通信的参与者都可以使用软件生成公钥和相应的私钥.

例如,我们以两个人为例:人A和人B

当个人A要向个人B发送安全消息时,使用个人B的公钥将密码转​​换为纯文本消息为加密消息.

虽然加密的消息可能会通过其他各方(人员C,D,E和F)从A到B传播,但是任何尝试阅读该消息的人都只会看到加密的文本.

人B收到加密的消息后,会使用其私钥将加密的消息解码回纯文本.

例如,新闻工作者越来越多地使用此系统,例如,新闻工作者将其公共密钥发布在社交媒体资料上,以作为消息源向他们发送只能用新闻工作者的私钥解密的消息。.

最著名的此类系统是“很好的隐私”(PGP)。有很多使用OpenPGP(标准的开源版本)的软件工具.

在TLS握手期间使用公钥加密,以便在客户端和服务器之间安全地共享对称密钥.

SSL协议 & TLS

TLS / SSL是我们大多数人在使用HTTPS的安全网站上浏览网络时所经历的加密.

通过浏览器地址栏中的挂锁符号,您将知道网站何时使用HTTPS.

此处使用的安全协议是TLS(传输层安全性),它基于其前身的安全套接字层(SSL版本3.0).

TLS结合使用公钥和对称加密来保护您的数据.

在TLS握手期间,您的浏览器使用非对称加密与安全页面的服务器进行通信并安全地生成对称密钥.

然后用于加密浏览器和服务器之间传输的数据.

生成用于使用的对称密钥比使用非对称密钥进行所有数据传输要有效得多。.

这是因为与使用对称密钥相比,非对称加密需要大量的计算能力来加密和解密所有必需的数据。.

因此可以说对称密钥加密是更快的加密方法.

上面的方法很好并且可以生成安全加密,但是服务器生成的每个安全会话都可以使用服务器的私钥解密.

如果该私钥曾经遭到破坏,则可以使用被盗的私钥解密该服务器上过去或现在的任何安全会话。.

为了避免这种情况,现在通常使用完美转发保密性来建立HTTPS和OpenVPN连接,并使用一种称为Diffie-Hellman密钥交换的算法来生成对称密钥。.

这听起来可能令人困惑,但是您真正需要了解的是,这是处理问题的更安全方法,因为对称密钥永远不会通过连接交换,而是由服务器和Web浏览器独立生成.

浏览器生成一个临时私钥和一个相应的公钥.

TLS会话的对称密钥基于对设备(例如服务器)的私钥和另一设备(例如浏览器)的公钥进行操作的算法的输出.

由于该算法具有出色的数学特性和一些技术魔术,此过程生成的密钥将在服务器和浏览器上均匹配.

这意味着,如果第三方(例如您的ISP或政府)正在存储您之前会话中的加密数据,并且私钥遭到破坏或被盗,则他们将无法解密该数据.

ExpressVPN是一项使用完全转发保密的VPN服务,每次连接时以及使用VPN连接时每60分钟协商一次新的私钥。.

ExpressVPN演示了应用程序如何使用公钥

此ExpressVPN插图显示了VPN应用如何通过非对称加密使用服务器的公钥来生成对称密钥对.

既然我们已经解释了可用的不同加密方法,那么我们来讨论一下可用的不同VPN协议.

VPN协议

什么是VPN协议?

VPN协议表示VPN客户端用来在设备和VPN服务器之间建立安全连接以传输数据的过程和指令集(或规则).

VPN协议是由传输协议和加密标准结合而成的.

当前可用的VPN协议?

这是您需要了解的主要VPN隧道协议:

OpenVPN –非常安全,快速

OpenVPN徽标

OpenVPN是行业黄金标准的VPN协议,我们建议您尽可能使用它.

它是最安全,最安全的VPN协议之一,而且重要的是开源的,这意味着它是完全透明的,并且会继续进行公开测试和改进.

OpenVPN的可配置性很强,虽然任何平台都不支持它,但是大多数VPN提供商都提供了支持它的免费应用.

这些自定义VPN应用可在大多数主要平台上使用,例如Microsoft Windows,Apple MacOS,Android,Linux和iOS.

一些提供商还提供OpenVPN配置文件,这意味着您可以从https://openvpn.net/下载适用于您平台的原始OpenVPN客户端,并使用它来连接到您选择的VPN服务.

OpenVPN可在UDP和TCP上使用,这是通信协议的类型.

TCP(传输控制协议)是互联网上最常用的连接协议。正在发送的数据以块的形式传输,通常由几个数据包组成.

TCP旨在按照从OpenVPN服务器发送的顺序将传输的数据传递到OpenVPN客户端(例如,从OpenVPN发送的数据包1、2、3、4和5由OpenVPN客户端以相同的顺序接收– 1 ,2,3,4,5).

为此,TCP可以延迟通过网络将其收到的数据包传递到OpenVPN客户端,直到它收到所有预期的数据包并将所有乱序数据包重新排列回原位。.

TCP也将重新请求(然后等待接收)也可能在服务器和客户端之间的传输中丢失的数据包.

这种处理和等待时间会增加VPN连接的延迟,从而使连接速度比UDP慢.

UDP(用户数据报协议)仅传输数据包而无需确认到达,并且UDP包的大小小于TCP.

通过使用OpenVPN UDP,较小的数据包大小,缺少检查和重新组织可加快连接速度.

所以,哪个更好:TCP或UDP?

这取决于你想要的结果.

如果您使用VPN进行游戏,流式传输或使用VoIP服务,那么UDP是最好的选择,因为它比TCP更快.

不利的一面是您可能会遇到一些丢包的情况,例如,这可能意味着在VOIP通话中,您会听到与您交谈的人的声音,语音会减少一秒钟左右.

但是,如果遇到连接问题,应切换到TCP。 TCP端口443对于绕过审查也很有用,因为该端口是HTTPS的默认端口,因此不太可能被防火墙阻止.

对于加密,OpenVPN使用OpenSSL库,该库支持多种密码.

OpenVPN加密由以下几部分组成:数据通道,控制通道,服务器身份验证和HMAC身份验证:

  • 服务器认证 功能与TLS或HTTPS相同。 OpenVPN可以使用证书来验证您正在与之通信的服务器是加密可信的.
  • 控制通道 在初始阶段使用,用于执行TLS握手以在加密参数上达成共识,以安全地传输数据,并向服务器验证客户端身份.
  • 数据通道 是在设备和OpenVPN服务器之间传输信息的层。该层使用对称加密方案进行加密以提高性能,其密钥是通过控制通道获得的.
  • HMAC验证 用于确保中间人攻击者在传输过程中没有更改发送的数据包,该中间人能够实时读取或更改数据.

请注意,某些VPN服务在两个通道上都不会使用接近相同级别的加密.

在数据通道上使用较弱的加密可能是快速连接的廉价捷径,因为更好的安全性是以速度为代价的.

不幸的是,VPN的安全性只有其最弱的部分,因此您应该寻找在两个通道的加密中都尽可能强的VPN.

我们将在以下有关密码和握手的部分中详细介绍这一点。.

既然您知道什么是最安全的VPN协议,那么您就应该知道其他协议是什么-以及不惜一切代价避免使用哪种协议.

PPTP –弱安全性,避免

点对点隧道协议(PPTP)是当今仍在使用的最古老的VPN协议之一。它由Microsoft资助的团队开发,于1999年出版.

尽管已经过时,但PPTP确实具有一些优点:它与几乎所有内容兼容,它不需要附加软件,因为它已包含在现代操作系统中,而且速度非常快.

主要问题是事实证明它不安全且容易破解(攻击通常需要1分钟到24小时之间).

黑客窃取信用卡和身份的插图,计算机屏幕上带有未锁定的挂锁

PPTP也很容易阻止,因为它依赖于GRE协议,该协议易于防火墙保护.

除非出于非敏感原因更改IP地址绝对必要,否则应避免使用此协议。我们认为PPTP不安全.

L2TP / IPsec –安全,但速度可能很慢

第2层隧道协议(LT2P)具有Microsoft点对点隧道协议(PPTP)和Cisco的第2层转发协议(L2F)的最佳功能,用于在网络上的客户端设备和服务器之间创建隧道.

L2TP可以处理身份验证,但不提供任何加密功能.

因此,L2TP通常用Internet协议安全性(IPsec)来实现,以创建提供数据的身份验证,完整性和加密的安全数据包。.

这通常称为L2TP / IPsec,通常使用AES密码对数据进行加密,您可以在此处了解更多信息.

当使用L2TP / IPsec连接到VPN服务器时,IPsec用于在客户端和服务器之间创建安全控制通道.

L2TP封装了来自设备应用程序(例如,您的Web浏览器)的数据包。 IPSec然后加密此L2TP数据并将其发送到服务器,然后由服务器执行反向过程,对数据进行解密和解封装.

在速度方面,L2TP / IPsec的双重封装(本质上是隧道内的隧道)应使其比OpenVPN慢.

但是,从理论上讲它实际上更快,因为加密和解密发生在内核中,从而可以以最小的开销有效地处理数据包。.

与AES密码一起使用时,L2TP / IPsec通常被认为是安全的.

但是有人建议该协议已被NSA破坏,并且IPsec在其创建过程中被故意削弱。.

尽管还没有官方确认.

L2TP / IPsec及其在VPN服务中的使用的主要问题在于那些使用预共享密钥(也称为共享机密)的服务,这些服务可以从VPN服务网站下载,因此任何人都可以使用.

虽然这些密钥仅用于验证与VPN服务器的连接,并且数据本身仍通过单独的密钥进行加密,但确实为潜在的MITM(中间人)攻击打开了大门.

攻击者在此处模拟VPN服务器,以解密流量并窃听连接.

L2TP / IPsec也使用有限数量的固定端口,这使得阻塞相对容易.

尽管存在这些问题,但是LT2P / IPsec是一个不错的选择,因为只要不使用预共享密钥,它就会被许多平台本地支持.

SSTP –具有潜在风险的封闭源

安全套接字隧道协议(SSTP)是Microsoft专有的基于SSL 3.0的专有协议,这意味着与OpenVPN一样,它可以使用TCP端口443.

由于SSTP不是开源的,因此不可能反驳协议中关于后门或其他漏洞的建议.

与Windows紧密集成所带来的好处远远超过了这种风险.

另一个危险信号是SSL 3.0容易受到称为POODLE的中间人攻击.

尚不确定SSTP是否受到影响,但我们认为这不值得冒险.

IKEv2 / IPSec –非常快速,安全和稳定

Internet密钥交换版本2(IKEv2)是更新的VPN协议,是Microsoft和Cisco之间合作开发的另一种封闭源标准.

iOS,BlackBerry和Windows版本7及更高版本本地支持IKEv2.

但是,有一些针对Linux开发的IKEv2开源版本,其信任问题与专有版本不同.

与L2TP / IPsec类似,IKEv2是VPN解决方案的一部分,与IPsec一起使用,但提供了更多功能.

IKEv2 / IPSec可以通过称为MOBIKE协议的网络来处理网络更改-对于易于断开连接的移动用户很有用,并且由于被编程为更好地利用带宽而速度更快.

与L2TP / IPSec相比,IKEv2 / IPSec还支持更广泛的加密密码.

但是,当您尝试连接到高度审查的国家/地区时,IKEv2通常不会削减它。这是因为IKEv2使用指定的端口,这对于大型防火墙而言非常容易阻止.

WireGuard –有希望的新协议

WireGuard徽标

Wireguard是一种新的隧道协议,旨在比当前最流行的协议OpenVPN更快,性能更高.

WireGuard旨在解决与OpenVPN和IPsec经常相关的问题:即复杂的设置,断开连接(无需其他配置)以及随之而来的较长的重新连接时间.

尽管OpenVPN + OpenSSL和IPsec具有较大的代码库(OpenVPN约为100,000行代码,SSL为500,000行)和IPsec(400,000行代码),这使得很难发现错误,但Wireguard目前的权重不足5,000行尺寸.

但是Wireguard仍在开发中.

虽然Wireguard基准测试表明它非常快,但是实现中存在一些问题,可能使其不适合商业VPN提供商使用.

其中之一是,它需要为每个用户分配一个非公共IP地址,这增加了记录任何严重的VPN用户使用时都会感到不适的元素。.

为什么?

因为此非公开IP地址可用于标识您.

尽管正在努力解决这个问题.

WireGuard尚处于起步阶段,它尚未完全证明自己-但是,越来越多的VPN提供商将其添加到其客户端中仅用于测试目的,包括IVPN和AzireVPN.

在IVPN网站上进行宣传,谈论其WireGuard实施

VPN协议提供了安全加密的框架,现在让我们找出密码扮演的角色以及各种可用的密码.

密码

密码本质上是一种用于加密和解密数据的算法。 VPN协议使用多种密码,以下是最常用的密码:

AES

高级加密标准(AES)是美国国家标准技术研究院(NIST)于2001年建立的对称密钥密码.

它是在线加密协议的黄金标准,VPN行业广泛使用。 AES被认为是使用最安全的密码之一.

AES的块大小为128位,这意味着AES可以处理比其他密码更大的文件大小,例如Blowfish,其块大小为64位.

AES可以用于不同的密钥长度。尽管仍然认为AES-128是安全的,但首选AES-256,因为它可以提供更好的保护。 AES-192也可用.

银行保险箱在蓝色背景上的插图

当您在VPN服务的网站上阅读“军事级”或“银行级”加密时,通常指的是AES-256,美国政府将其用于“最高机密”数据.

河豚

Blowfish是另一种对称密钥密码,由美国密码学家Bruce Schneier于1993年设计.

Blowfish曾经是OpenVPN中使用的默认密码,但在很大程度上已被AES-256取代.

使用Blowfish时,通常会看到它使用128位密钥长度,尽管它的范围可以从32位到448位.

河豚鱼有一些弱点,包括其对“生日袭击”的脆弱性,这意味着它实际上仅应用作AES-256的后备.

茶花

Camellia也是一种对称密钥密码,在安全性和速度方面与AES非常相似.

主要区别在于山茶没有经过NIST(创建AES的美国组织)的认证.

尽管有一种说法是使用与美国政府无关的密码,但该密码在VPN软件中很少使用,也没有像AES一样经过全面测试.

VPN握手

两只手颤抖的插图

就像在HTTPS网站上发起安全会话一样,安全地连接到VPN服务器也需要通过TLS握手使用公钥加密(通常使用RSA密码系统)。.

在过去的二十年中,RSA一直是互联网安全的基础,但不幸的是,现在看来,较弱的版本RSA-1024已被NSA破解。.

尽管大多数VPN服务已脱离RSA-1024,但仍有少数人继续使用它,因此应避免使用。寻找仍被认为是安全的RSA-2048.

理想情况下,将使用其他加密来创建“完美前向保密性”。通常,这将通过包含Diffie-Hellman(DH)或椭圆曲线Diffie-Hellman(ECDH)密钥交换来实现.

虽然可以单独使用ECDH来创建安全的握手,但应避免单独使用DH,因为它容易被破解。与RSA一起使用时这不是问题.

SHA哈希验证

安全哈希算法(SHA)用于确保传输的数据和SSL / TLS连接(例如OpenVPN连接)的完整性,以确保信息在源和目标之间的传输中没有发生更改.

安全散列算法通过使用所谓的散列函数来转换源数据来工作,由此原始源消息将通过算法运行,结果是固定长度的字符串,该字符串看起来与原始字符串完全不同,即“散列值”.

这是一种单向功能–您无法运行去哈希过程来从哈希值确定原始消息.

散列很有用,因为仅更改输入源数据的一个字符将完全改变从散列函数输出的散列值.

VPN客户端将通过在VPN握手过程中约定的哈希函数来运行从服务器接收的数据以及密钥。.

如果客户端生成的哈希值与消息中的哈希值不同,则由于消息已被篡改,数据将被丢弃.

SHA哈希身份验证通过能够检测到对有效TLS证书的任何篡改,可以防止中间人攻击.

没有它,黑客可能会冒充合法服务器并诱使您连接到不安全的服务器,从而可以监控您的活动.

建议使用SHA-2(或更高版本)以提高安全性,因为SHA-1已证明可以削弱安全性的弱点.

  如何在路由器上安装VPN

什么是VPN?说明图

我们在本加密指南中介绍了很多基础知识,但是您可能仍需要解决一些与VPN和协议有关的更一般的问题.

以下是我们听到的最常见的问题:

什么是最安全的VPN协议?

带有AES-256密码的OpenVPN通常被认为是最好和最安全的VPN协议。 OpenVPN是开源的,并且已经过公开测试的弱点.

OpenVPN在隐私和性能之间实现了很好的平衡,并且与许多流行的平台兼容。许多商业VPN服务默认使用OpenVPN.

IKEv2是移动设备的一个不错的选择,因为它可以更有效地处理网络更改,轻松,自动地自动恢复断开的连接.

如何更改VPN协议?

某些VPN服务(例如ExpressVPN)可让您在VPN应用的设置菜单中更改VPN协议.

在这种情况下,只需打开设置菜单,然后选择要使用的VPN协议.

ExpressVPN协议设置菜单的屏幕截图

如果自定义应用中没有选择VPN协议,则可以使用手动配置安装其他协议.

NordVPN是可在OpenVPN上运行但允许手动安装IKEv2的VPN服务的一个示例.

如果您的VPN服务支持替代协议配置,请务必仔细按照其网站上的说明进行操作.

是否所有VPN都加密数据?

VPN本质上是对数据进行加密的,但是有一些服务声称是VPN,却不提供加密。 Hola Free VPN就是其中之一,您应该不惜一切代价避免使用此类产品.

VPN浏览器扩展是另一个需要警惕的产品。浏览器扩展是代理服务,而不是VPN服务,尽管有些提供加密,但有些则不提供.

提供加密功能的浏览器扩展程序只会保护您正在运行的网络浏览器中的浏览器流量,因此您需要使用完整的VPN来加密所有其他应用程序.

所有VPN是否都可以安全使用?

是的-如果您做出正确的选择.

并非所有VPN都可以安全使用。即使是那些使用最佳VPN协议和密码的人,也可能通过记录您的在线活动而使您的个人数据受到威胁.

您应该寻找一种具有私密性日志记录策略的VPN,以及一种支持最安全的VPN协议和密码的VPN。.

为了让您更轻松,为什么不看看我们推荐的最高VPN –它们是最安全的.