IPSec,SSL VPN以及OpenVPN引发些许感慨

晨曦之光 发布于 2012/04/10 14:57
阅读 2K+
收藏 0
首先,VPN是什么含义我觉得基本没有必要解释,每个人都有自己的解释。对于网络工程师或者搞核心网安全的人而言,VPN就是IPSec,对于搞应用的或者对流行编程语言痴迷的人而言,VPN就是HTTPS,还好,我处于这二者之间,我对纯网络有着浓厚的兴趣,而且我也喜欢C语言,有时候还学点其它的语言,虽然几乎都没有学会,我自己不精通bash,却深知linux内核的一些细节,几乎不会使用Windows的API,但却十分理解NDIS,可以熟练配置华为的设备,然而却对Cisco的设备情有独钟。我就是一个大杂烩的集合,些许矛盾,些许困惑,可是我却能为VPN下一个定义,那就是:在带有认证授权的访问控制基础设施上访问特定应用的一个网络。
     这么说来,所有使用https协议访问的应用都属于VPN的范畴,IPSec当然在网络层复用了所有的传输层以及所有的应用层的协议。然而一个怪胎出来了,那就是OpenVPN。它批驳https,它批驳IPSec,可是它却是二者的结合,它有自己的私有协议,但是却使用了TCP/UDP,它说自己是SSL VPN,然而它实际上是一个第三层的VPN,它说自己可以建立IP隧道,然而它却使用了SSL协议进行类似IKE的握手。因此若问它是什么,它是一个怪胎,和我一样。....我不是沉默的羔羊,我吐露我的悲伤,我有话要讲...
     有大牛说过,真正的VPN不是一个启用SSL的带着漂亮界面图表的WEB浏览器,真正的VPN不需要WEB浏览器,不要相信你的安全可以建立在带着漂亮好用的界面的WEB浏览器上。这句话十分震撼。话说SSL VPN不需要客户端,难道WEB浏览器不是客户端么?要不是微软从中捣鼓,谁会以为浏览器是和操作系统一起发布的,充其量这种客户端只是更通用些罢了。因此我相信这句话,https不是真正的VPN。
     那么OpenVPN是SSL VPN么?别以为它使用了SSL协议那么它就是一个SSL VPN了,其实SSL VPN就是浏览器之类的访问https的VPN,OpenVPN根本就不是SSL VPN,它是第三层的VPN,封装的是IP数据报或者以太帧而不是应用数据,你难道见过太多的IP直接封装应用的么,除了ICMP。说实话,OpenVPN根本没有使用SSL协商出来的那个对称密钥对隧道进行加密,那个密钥只是为加密控制通道用的,而控制通道对于隧道而言,实属一个带外通道!真正的加密隧道的对称密钥是在那个控制通道中协商出来的,SSL在OpenVPN中只是实现了控制通道的生成以及用户接入认证这些功能,类似IKE的第一阶段!原生的OpenVPN没有第二阶段,而我本人已经实现了第二阶段协商。这样,OpenVPN更类似IPSec而不是SSL VPN。

     然而OpenVPN对于加入第三层IPSec VPN也不是很服气。IPSec几乎都在协议栈里面实现,而协议栈几乎都是内置于操作系统内核的,这样就有两个问题,第一个就是一旦一个bug或者漏洞被出发,整个系统将崩掉,第二就是兼容性,内核的API对于用户是不可见的,只有协议标准可见,内核API的稳定性和用户态API的稳定性相比,要差得多,内核API是多变的,这就意味着,一旦内核版本升级,整个IPSec大多数就要重新发布,这就带来了更大的成本。一旦有内核的rookit发作,IPSec将不再安全,而对于OpenVPN充其量只是拒绝服务攻击,而很难泄密(当然泄密也是很可能的,内核rookit可以访问所有的内存和交换空间,它可以扫描到你的密钥,可是如果对于IPSec,几乎不需要扫描,它就在特定的结构体当中,市长管理着整座城市,却不知道你家的布局,但是却知道市政府的布局)。

     OpenVPN融合了PKI的大多数的特性,使之可以和PKI设置无缝衔接,对于使用什么协议封装第四层,那是次要的,ESP也好,AH也罢,TCP/UDP也好,这些都不重要,重要的它使用PKI设施完成了认证和授权,三A中的两A,VPN要突出其安全,而不是实现。

     因此在孤独中,OpenVPN血喷了SSL VPN和IPSec,然而它自己的草根特性却使自己的日子也不那么好过。如果一个人深爱一个协议,那么他就会不管干什么都往那个协议上靠,这就是偏执狂,然而可能只有偏执狂才能生存。标准的东西当然是好的,但是标准的http并不是万能的,WEB也可能将人们引入一个商业黑洞。应用层的协议好的太多了,SIP协议和http很类似,做了扩展,OpenVPN有自己的协议,它为何不使用http呢,如果http是万能协议的话!?
     如果我掌控着一个软件帝国,并且我深深的喜爱差分信号的话,我会让所有的人放弃分层模型,只使用电子脉冲发送信息。百年以后,我会被当成一个像袁世凯那样的人被人唾弃。

原文链接:http://blog.csdn.net/dog250/article/details/6938504
加载中
返回顶部
顶部