- A+
加密是VPN技术的核心。它可以保护您的隐私免受侵入式监控,并防止黑客在公共网络上拦截您的个人数据。如果您想了解有关加密如何工作以及如何保护您的更多信息,请阅读本指南。
加密是对数据进行编码的过程,这样只有授权方才能访问它并阻止其他人这样做。使用加密技术进行秘密通信的历史悠久,早于计算机加密。
从本质上讲,加密仍然与最早的密码相同,特定的代码涉及字母和数字的替换,除非你有正确的密码允许你解码它们的内容,否则消息看起来像乱码。
鉴于现代计算机的处理能力,人类密码很容易破解。我们现在使用强大的算法来创建不同的加密方法(密码),同时生成解密数据所需的密钥。
当我们谈论加密时,我们使用密码和密钥长度的组合。例如,AES-256是具有256位密钥长度的AES密码。其他密码包括Blowfish,在VPN软件中很少见,Camellia。
加密类型
有两种类型的加密:
对称密钥加密
这是加密和解密密钥相同的地方。双方必须具有相同的密钥才能进行通信。这种加密用于VPN技术。
现代计算机的强大功能意味着密钥必须变得越来越长以防止暴力攻击(尝试每种组合以找到正确的密钥)。目前的黄金标准是256位密钥,不能强制执行,因为需要花费数十亿年才能完成可能的组合。
公钥加密
软件用于生成公钥和私钥集。公钥用于加密发送给私钥持有者的数据,这允许他们解码消息。该系统越来越多地被记者使用,例如,他们在他们的社交媒体上发布他们的公共密钥以便向他们发送他们只能用他们的私钥解密的消息。
最着名的此类系统是Pretty Good Privacy(PGP)。有许多不同的软件工具使用OpenPGP,OpenPGP是该标准的开源版本。
SSL和TLS
大多数具有一定经验的加密是在实现HTTPS的安全站点上浏览Web时(当挂锁显示在浏览器的地址栏中时)。
此处使用的安全协议是TLS(传输层安全性),它包含旧的安全套接字层(SSL),它使用公钥和对称加密的组合来保护您的数据。
您的浏览器使用公钥加密与安全页面的服务器进行通信,并安全地共享对称密钥,这些密钥又用于加密正在传输的数据。这更加有效,因为公钥加密需要太多的计算能力来加密会话中的所有必要数据。
当服务器仅使用单个私钥来生成安全会话时,唯一的问题就出现了。如果该密钥遭到破坏,黑客可以解密该服务器上的任何安全会话。
幸运的是,越来越多的情况是生成唯一私钥,然后在每次会话后丢弃。这被称为完美前向保密(PFS)。
VPN加密
OpenVPN
OpenVPN是行业黄金标准VPN协议,我们建议您尽可能使用它。它是最安全的,最重要的是开源,这意味着它是完全透明的,并继续进行公开测试和改进。
它是可配置的,虽然任何平台都不支持它,但每个VPN提供商都提供免费的应用程序,可以在大多数主要平台上支持它。
重要的是,OpenVPN在UDP端口和TCP 443端口上工作,该端口由HTTPS流量使用。由于很难将其与使用该端口的银行和电子商务流量区分开来,因此很难阻止。
它还使用OpenSSL库,它支持一系列密码。
OpenVPN加密有两个要素:数据通道加密和控制通道加密。数据通道加密可以保护已传输的信息本身。控制通道加密可以保护您的设备与VPN服务器本身之间的连接。
重要的是要注意一些VPN服务不会在两个通道上使用接近相同级别的加密。在数据通道上使用较弱的加密是快速连接的廉价捷径,因为安全性是以牺牲速度为代价的。
不幸的是,VPN只有最薄弱的元素才能安全,因此您应该在两个通道的加密中寻找尽可能强大的VPN。
PPTP
点对点隧道协议(PPTP)是一种过时的VPN协议,由微软资助的团队开发,用于在1999年通过拨号创建VPN并与Windows捆绑在一起。它确实有一些积极因素:它几乎与所有内容兼容,不需要额外的软件,而且速度非常快。
主要问题是它被证明是不安全的并且容易破裂。它也很容易阻塞,因为它依赖于易于防火墙的GRE协议。
除非出于非敏感原因更改IP地址,否则请避免使用此协议。
L2TP / IPSec功能
第2层隧道协议(LT2P)是Microsoft专有协议,通常使用IPsec身份验证实现,因为它本身不提供任何加密。它通常与AES密码一起使用。
该协议使用有限数量的固定端口,这使得它相对容易阻止。
就速度而言,虽然它的双重封装应该使其比OpenVPN慢,但它实际上在理论上更快,因为加密和解密发生在内核中并且它支持多线程,而OpenVPN则不支持。
当与AES一起使用时,它没有已知的漏洞,但有人建议它已被NSA攻陷并在创建过程中被故意削弱。
主要问题在于VPN服务使用可以从其网站下载的预共享密钥。虽然这些密钥仅用于验证与VPN服务器的连接(数据本身保持加密),但它确实为潜在的黑客打开了大门。
尽管存在这些问题,但LT2P / IPsec是一个可靠的选择,因为只要不使用预共享密钥,它就会被许多平台本地支持。
SSTP
安全套接字隧道协议(SSTP)是Microsoft拥有的专有协议,它基于SSL 3.0,这意味着像OpenVPN一样,它可以使用TCP端口443。
与OpenVPN不同,SSTP不透明,这意味着不可能反驳后门或其他漏洞的建议。这种风险远远超过与Windows紧密集成带来的任何好处。
另一个红旗是SSL 3.0容易受到称为POODLE的中间人攻击。虽然SSTP受到了影响,但我们认为它不值得冒风险,尽管与OpenVPN有共同的好处。
IKEv2协议
Internet密钥交换版本2(IKEv2)是另一个封闭的标准,这次是由微软和思科开发的。它由iOS,Windows 7及更高版本和Blackberry本机支持。
有针对Linux开发的开源版本,它们不具有专有版本的信任问题。
从好的方面来说,它可以很好地应对不断变化的网络,并且非常善于在用户放弃互联网连接时重新连接,这对移动用户特别有用。
令人遗憾的是它是封闭源,因为IKEv2是一种非常快速和安全的协议,对移动用户特别有用。
密码
AES
高级加密标准(AES)是由美国国家标准与技术研究院(NIST)于2001年建立的对称密钥密码。它已成为VPN行业的黄金标准。
它的128位块大小意味着它可以处理比其他密码更大的文件大小,例如Blowfish。
虽然AES-128仍然被认为是安全的,但AES-256通常是首选,因为它提供了更好的保护。
河豚
这是OpenVPN中使用的默认密码(可以配置为使用其他密码),通常是Blowfish-128,但理论上它的范围从32位到448位。
虽然通常是安全的,但它确实有一些弱点,这意味着它实际上只能用作备份到AES-256。
茶花
山茶花与AES非常相似,主要的区别在于它没有得到美国组织NIST的认证。
虽然使用与美国政府无关的密码存在争议,但VPN软件很少提供。它也没有像AES那样经过彻底的测试。
握手加密
与在HTTPS网站上启动安全会话一样,安全地连接到VPN服务器需要通过TLS握手使用公钥加密(通常是RSA加密系统)。
在过去的二十年中,RSA一直是互联网安全的基础,但不幸的是,现在似乎RSA-1204已被NSA破解。
虽然大多数VPN服务已经远离RSA-1024,但少数人继续使用它,因此应该避免使用它。寻找RSA-2048,它仍然被认为是安全的。
理想情况下,额外的加密将用于创建Perfect Forward Secrecy。通常,这将通过包括Diffie-Hellman(DH)或椭圆曲线Diffie-Hellman(ECDH)密钥交换来实现。
虽然可以单独使用ECDH来创建安全握手,但应该避免单独使用DH,因为它很容易被破解。与RSA一起使用时,这不是问题。
SHA哈希身份验证
安全散列算法(SHA)用于验证数据和SSL / TLS连接,例如OpenVPN连接。
它通过能够检测到对有效TLS证书的任何篡改来防止中间人攻击。没有它,黑客可能会将您的连接转移到自己的服务器而不是VPN提供商的服务器上。
虽然SHA-1对于保护网站不再安全,但在OpenVPN使用时仍然被认为是安全的。有更安全的版本可用,例如SHA-2和SHA-3。