VPN学习笔记(基础)
什么是VPN?
VPN全称virtual private network,从逻辑上把整个因特网虚拟成一个router。
VPN的原理
设想现实一种通讯方式。假定发信和收信需要有身份证(成年人才有),儿童没有身份证,不能发信收信。有2个儿童,小张和小李,他们的老爸是老张(A)和老李(B)。现在小张(1.10)和小李(2.20)要写信互通,怎么办?
一种合理的实现方式是:小张写好一封信,封皮写上 “小张–小李”, 然后给他爸爸,老张写一个信封,写上“老张–老李”,把前面的那封信套在里面,发给老李,老李收到信以后,打开,发现这封信是给儿子的,就转给小李了。小李回信也一样,通过他父亲的名义发回给小张。
在本图中A到B中间的那一段就可以被称作隧道(有点牵强),目前比较常见的vpn隧道有IP in IP Tunnel、L2TP Tunnel 及PPTP Tunnel,刚刚所描述所的是IP in IP Tunnel。
常见的VPN架构
VPN 的架构大概可分为两种,以第1张图为例
我们使用VPN 将台北总公司与上海分公司的两个网段串接起来,这称为点到点或是子网到子网的VPN架构
老板以便携计算机通过VPN 来串接台北总公司的网段,则称之为端到点或是端到子网 的VPN 架构。
VPN的安全性问题
依然参照图中的通讯模型。
老张给老李的信件要通过隧道传递,而中间有很多好事之徒,想偷看小张和小李的通讯内容,或者破坏其好事。
解决这个问题,就要引进安全措施,将信中的内容全部变成暗语。不过仅仅有加密是不够的,把数据加密虽然无法破解信件,但是可以伪造一封信,或者胡乱把信件改一通。为了防止这种结果,就要引入数据防篡改机制。万一数据被非法修改,能够很快识别出来。这在现实通讯中间可以采用类似这样的算法,计算信件特征,然后把这些特征用暗号标识在信件后面。收信人会检验这个信件特征,由于信件改变,特征也会变。所以,如果修改人没有暗号,改了以后,数据特征值就不匹配了。收信人可以看出来。 IPSEC通讯的数据认证也是这样的,使用md5算法计算包文特征,报文还原以后,就会检查这个特征码,看看是否匹配。证明数据传输过程是否被篡改。
由于老张和老李不在一个地方,他们互相不能见面,为了保证他们儿子通讯的安全。老张和老李必须要相互确认对方是否可信。这就是身份认证问题。 假定老李老张以前见过面,他们事先就约定了通讯暗号,比如1234567890对应abcdefghij, 那么写个255,对应就是一个bee。 常见的VPN身份认证可以包括预共享密钥,通讯双方实现约定加密解密的密码,直接通讯就可以了。能够通讯就是朋友,不能通讯就是坏人,区分很简单。 其他复杂的身份认证机制包括证书(电子证书比如x509之类的),比较罗里罗嗦,这里就不具体展开了,怕有兄弟看了打瞌睡。如果需要,可以找我要更具体的技术白皮书以及相关的身份认证文档。
如果有身份认证机制,密钥的经常更换就成为了可能。
以上可总结为加密,认证,防篡改。
最后,应该限制从办公网内对外的vpn连接,防止内鬼将公司机密外传。
VPN在模型中的位置?
参考文献