安全的虚拟私人网络使用加密穿隧协议,通过阻止截听与嗅探来提供机密性,还允许发送者身份验证,以阻止身份伪造,同时通过防止信息被修改提供消息完整性。某些虚拟私人网络不使用加密保护数据。虽然虚拟私人网络通常都会提供安全性,但未加密的虚拟私人网络严格来说不属于“安全”或“可信”的类别。例如,一条通过GRE协议在两台主机间建立的隧道属于虚拟私人网络,但既不安全也不可信。 除以上的GRE协议例子外,原生的明文穿隧协议包括L2TP(不带IPsec时)和PPTP(不使用微软点对点加密(MPPE)时)。(摘自维基百科)
不加密的VPN也是可以翻墙的,所以不要因你的VPN能翻墙就认为自己的VPN加密了。我们现在从两个方面考察自己的VPN是否加密了,一是VPN认证过程,一是VPN数据传输过程。
==========
认证过程的加密
上图中我们一般使用PPTP /L2TP / SSTP VPN时都是这么勾选的“允许使用这些协议”(也就是勾选使用CHAP或MS-CHAP v2),这样的认证过程是加密的,安全的(有些VPN需勾选“使用可扩展的身份验证协议”下的EAP-MS-CHAP v2、EAP PEAP或智能卡、证书,在IKEv2 VPN里可选“使用计算机证书”,这都是更安全的加密认证方式)。不过有些VPN使用时需勾选“未加密的密码(PAP)”才能连接,从名字上也能看出未加密的密码自然是不安全的了。
Cisco IPsec VPN和OpenVPN的认证默认都是加密的(使用证书认证会更安全)。
==========
数据传输过程的加密
PPTP VPN
连接VPN后查看“状态”的“详细信息”标签页应该看到下图里的“加密 MPPE 128”字样,默认设置时都是加密的。不过一些VPN服务商需要在数据加密里勾选“可选加密(没有加密也可以连接)”后才能连接VPN,否则会出现741或628错误,这样的VPN是不加密的是不安全的。
OpenVPN
OpenVPN默认使用BF-CBC加密数据,写字板打开.ovpn格式的OpenVPN配置文件,不存在cipher或有一行cipher BF-CBC一般就说明使用了BF-CBC加密;如果有一行cipher AES-256-CBC或cipher AES-128-CBC也表明了使用了相应加密算法,这些都是安全的(貌似AES-256-CBC安全性更高,不过影响传输速度尤其是在配置低的服务器和客户端上)。当然OpenVPN也可以实现不加密连接,不过我用过的翻墙VPN里没见过(如果你的OpenVPN配置文件没有cipher字样,你可以增加一行cipher BF-CBC以保万一)。
L2TP IPSec VPN
单纯的L2TP VPN是不加密了,它需要通过IPSec来加密(也就是L2TP over IPSec),在Windows XP系统里默认需要IPSec加密,而Windows 7系统里这个IPSec加密是自动选择的,当你输入错误的L2TP密钥时,会不加密连接(只要服务器支持),这样就比较危险了。有些VPN服务商让用户修改注册表,禁用IPSec加密,这样就成了单纯的L2TP VPN,虽然也能翻墙,不过是不加密的不安全的。所以连接VPN后查看“状态”的“详细信息”标签页应该看到下图里的“加密 IPsec: ”字样,如果没有就是不加密的,不安全的,如果有就是加密的(常见的有AES 128 和ESP 3DES两种加密算法,Windows 7系统在数据加密里勾选“最大强度的加密”后可能可以使用更安全的AES 256加密)。
Cisco IPsec VPN
连接VPN后查看Statistics会看到Encryption中的加密类型如下图里的128-bit AES。
IKEv2 VPN
连接VPN后查看“状态”的“详细信息”标签页应该看到下图里的“加密 IPsec: ”字样(一般是AES 256加密,也有AES 128 和ESP 3DES,这个要看服务器配置了)。
SSTP VPN
sstp vpn默认使用AES 256加密,不过连接VPN后查看“状态”的“详细信息”标签页可能看不到“加密 IPsec: ”字样。
==========
以上只是在Windows系统上的简单分析,其他系统上没有关注过。VPN认证过程不加密,很容易被攻击;VPN数据传输过程不加密,很容易被监控。
No comments:
Post a Comment