SSLVPN安全性研究

2024-06-25

SSLVPN安全性研究(共5篇)

SSLVPN安全性研究 篇1

0引言

随着应用广泛的电子商务与智能手机的越来越紧密的深入融合,利用手机进行无线付费已成为可能。手机可以替代各种银行卡成为个人的随身电子钱包,这种新的电子商务模式逐渐被人们所追捧。手机银行业务是一种结合了货币电子化与移动通信的崭新服务,是网络银行的派生产品之一,它的优越性集中体现在便利性上,客户利用手机银行可以在任何时间、任何地点处理多种金融业务,节省了ATM机和银行窗口排队等候的时间,及大地丰富了银行服务的内涵,使银行能以便利、高效而又较为安全的方式为客户提供传统和创新的服务。然而,手机银行给我们带来极大便利的同时,手机银行的安全问题时有发生,各种账号密码失窃事件层出不穷,不仅给用户造成巨大经济损失,也给银行造成声誉的损失,同时也增加了管理成本。本文提出基于手机客户端的SSL VPN安全接入方案,从而解决这一难题。

1基于WAP的手机银行安全隐患

WAP是无线应用协议,是一种实现移动电话与互联网结合的应用协议标准。用于移动支付的手机银行在手机支付过程中需要经过移动网络访问IP网络,进而访问银行网络服务器。移动网络在在其发展中一直受到安全问题的困扰,而IP网络是一个完全开放的不安全网络,因此手机银行就要面临来自移动网络和IP网络的双重安全威胁,这使得手机银行的安全问题更加严重。

对于智能手机来说,手机银行客户端绝大部分都内置浏览器,为了防止手机银行客户端用户账户信息的泄露,采用WIM (WAP身份识别模块)来执行无线传输层和应用层的安全功能, 还包括保存和处理用户的ID和权限等所必须的功能。WIM可以解决移动网络安全方面的两个基本问题:(1)在手机和移动网关之间实现无线传输层安全协议(WTLS),WTLS提供双方的身份验证,该功能由智能卡中的加解密算法来执行这些任务。(2)为了对手机客户端和WAP网关之间进行身份认证,需要数字证书向双方进行身份认证。从而实现手机客户端和WAP网关之间在移动网络内部建立起安全链接,然后WAP网关和银行服务器之间再建立安全的链接,从而实现手机银行的安全访问。然而,尽管这种方案显得完美,但是区存在严重的安全隐患:

(1)基于WAP的银行严重依赖运营商的WAP网关,作为金融服务的企业银行却无法掌控WAP网关,这不仅给银行企业的统一安全管理带来不便,而且通信协议的扩展性受到WAP网关协议的限制。

(2)WAP网关自身的安全隐患。移动网络为了安全起见, 在移动通信网络中使用无线传输层安全协议(WTLS)用来保障通信数据的安全,然而IP网络使用的安全协议是SSL协议,安全协议的不一致使得手机银行传输的数据需要在WAP网关处进行转换,数据转换需要一定的时间,因此在数据进行转换的这段时间内,数据在WAP网关上市以明文形式存在的,入侵者可以利用这一隐患攻击WAP网关,通过入侵WAP网关获得未加密的数据。

(3)手机终端的局限性。手机SIM需要WIM模块,无线个人身份模块WIM是一个防撬设备,存储着用户个人身份、秘密秘钥和公开秘钥证书等信息,并参与握手协议中的身份认证与秘钥交换,以实现所有与用户秘密秘钥有关的密码操作,但这增加了手机终端的开销。

2SSLVPN的安全方案

2.1SSLVPN的架构

SSL VPN是基于安全套接层协议建立远程安全访问通道的VPN技术。它是近年来兴起的VPN技术,其应用随着Web的普及和电子商务、远程办公的兴起而发展迅速。SSL协议主要是由SSL记录协议和握手协议组成,它们共同为应用访问链接提供认证、加密和防篡改功能。SSL握手相对于IPSec协议体系中的IKE协议,主要是用于服务器和客户之间的相互认证,协商加密算法消息认证码算法,用于生成在SSL记录协议中使用的加密和认证秘钥。SSL VPN采用的是SSL协议,与IPSec VPN相比,SSL VPN具有如下优点:(1)SSL VPN的客户端程序,如Microsoft Internet Explorer、Netscape Communicator、Mozilla等已经预装在了终端设备中,因此不需要再次安装;(2)SSL VPN可以在NAT代理装置上以透明模式工作;(3)SSL VPN不会受到安装在客户端与服务器端之间的防火墙等NAT设备的影响;(4)SSL VPN将远程安全接入延伸到IPSec VPN扩展不到的地方,使更多的员工, 在更多的地方,使用更多的设备,安全访问到更多的企业网络资源,同时降低了部署和支持费用;(5)客户端安全检查和授权访问等操作,实现起来更加方便。SSL VPN可以在任何地点,利用任何设备,连接到相应的网络资源上。IPSec VPN通常不能支持复杂的网络,这是因为它们需要克服穿透防火墙、IP地址冲突等困难。所以IPSec VPN实际上只适用于易于管理的或者位置固定的地方。从功能上来说,SSL VPN是企业远程安全接入的最佳选择。

2.2基于SSLVPN的解决方案

基于VPN的方案中,当手机有业务需求要访问银行资源时, 向银行VPN网关发出链接请求,VPN网关在收到请求后,与手机建立SSL SA,手机将自己的证书信息发送给VPN网关;VPN网关在收到手机证书后,通过证书服务器对用户证书信息进行验证,如果验证通过,VPN网关变为该移动终端分配一个内网IP, 此时VPN链接建立成功,安全管理服务器在收到等人用户信息以后,会通过用户手机号查询出用户所分配的安全策略,然后将该安全策略应用到内网防火墙上;当客户向银行某业务发起请求时,内网防火墙将检查其合法性。

3结束语

移动手机支付作为移动电子商务的发展趋势,银行和运营商需要手机支付的普及应用,前提是切实解决手机支付的网络安全模式,才能让手机支付业务有良好的发展前景。虽然WAP网络采用了各种安全措施来保证手机支付的安全,但是由于WAP自身的安全问题,使得手机支付存在安全隐患, SSL VPN作为一种安全技术,其理论上的安全性研究已经相当成熟。本文提出的基于手机和银行网关之间采用SSL VPN建立加密隧道的安全接入模式,为手机银行的接入提供了安全保障。

SSLVPN安全性研究 篇2

根据笔者多年的现场经验和众多科研院校的研究,基于计算机知识的现代设计理念和方法的应用,以及测控系统软硬件冗余技术和防干扰措施的实施,使得冶金设备性能大大提高,安全性和可靠性得以保证,从而减少了冶金产业的事故发生率,提高了其有效生产。

关键词:冶金设备;安全性;冶金产业

冶金工业生产不同产品的企业种类繁多,工艺、设备复杂多祥,设备体积大(如各种冶炼设备,各种运输设备体积都十分庞大);产品质量高,冶炼生产温度高(如炼铁、炼钢的焰点和沸点高达1000~℃甚至以上,电解铝正常生产温度高达950℃);粉尘烟害大,有毒有害物质多,劳动条件艰苦,安全卫生问题突出,伤亡事故和职业病多。

这些都是劳动保护不可忽视的。

在冶金工业生产中,从矿山开采、选矿、烧结、冶炼、轧钢、轧制有色金属到焦化、耐火材料、炭素、铁合金、机械加工和运输等一系列过程中危害工人安全、健康的因素非常多,需要采取各种措施加以解决。

冶金设备平稳高效的运行是确保冶金行业的生产效益和安全的重要因素。

根据笔者多年的现场经验和众多科研院校的研究,基于计算机知识的现代设计理念和方法的应用.以及测控系统软硬件冗余技术和防干扰措施的实施.使得冶金设备性能大大提高.安全性和可靠性得以保证,从而减少了冶金产业的事故发生率,提高了其有效生产。

1 冶金安全生产安全技术的原则

随着现代化经济的发展与安全工作的社会、国际化,安全系统的概念已不再停留在原先某个行业某个车间的危险控制上,系统的组成包括了各子系统,分系统。

其规模、范围互不相同,危险的性质,特点亦不相同,因此,必须采用分级控制。

各子系统可以自己调整和实现控制。

一级控制是指对事故的根本原因-管理缺陷的控制,二级指的是对生产过程实施的危险闭环控制系统,二级控制是对装备本质安全化的控制,因此是至关重要的。

三级则是工作场所预防控制,如机械防护,局部排风。

在三级控制中,一级是关键,只有有了有效的一级控制才会有好的二级和三级控制。

由于冶金安全事故预防必须采取分级控制方法,因此只有综合性的措施方能有效。

2 设备安全控制技术分析

近年来,随着计算机系统的飞速发展,现代设计理论和方法的发展进入更为广阔的空间和越来越多的设计领域。

对于冶金设备的设计来说,设计人员应使用CAD计算机辅助设计系统,应用相应的现代设计理论和方法,在最初的设计阶段考虑最大限度地提高冶金行业生产设备的安全和效益。

以下阐述计算机辅助设计和有限元方法如何在实际中用于冶金设备。

2.1 CAD辅助技术。

对于相对成熟的冶金设备,在设计中应用CAD技术可实现模块化设计以及CAD/CAPP/CAM一体化设计。

诸多的CAD软件为我们提供了广阔的设计平台,我们可以使用AutoCAD进行平面和三维设计,利用UG强大的造型功能来设计复杂的机械结构曲面,使设备各零件在受力、磨损、平衡等方面更合理,以增加其寿命,减少不安全因素,我们也能够利用ProE或SOLIDWORKS灵活的装配功能,对设备进行整体装配并观察各部分的运动、协调以及干涉情况,以进行动态设计,减少设计周期。

利用CAD软件不仅可以对设备进行模块化设计、标准化设计,在提高设计效率的同时也提高了产品的安全性能。

2.2 数值计算技术。

它是将复杂的研究对象简化为有限数量单元组成的集合体,分别对每个单元体进行求解后,再将各单元拼合起来,以代替原来的整体进行分析的方法。

使用有限元方法既可分析工程中复杂非线性问题、非稳态问题的,又可用于工程中复杂结构的力学分析。

目前已有许多成熟的大型有限元分析软件如ANSYS、MSC.Marc、ADINA、ABQUS等。

冶金设备工况条件的复杂性正好适用于有限元法来分析。

例如,轧钢机的轧辊和轴承的结构和受载在设计中一直采用工程计算法,即将其作为承受弯曲变形的梁来处理。

这种方法只能确定危险截面处的应力,而不能确定组成轧机关键部件每块钢板的应力分布。

但是使用有限元分析方法则可以很好的解决此类问题,并在冶金设备在最初设计环节减少不稳定因素,从而提高设备的可靠性。

3 测控系统技术分析

冶金设备自动化装备水平的提高,势必要求提高其计算机控制系统的可靠性和可用性。

这除了提高软硬件自身的`可靠性外,还可以通过控制系统的软硬件冗余和先进的测试技术来提高整个系统的安全性。

3.1 热备冗余技术。

是一种通过使用计算机集群技术来实现的双机热备系统。

集群计算机技术是指将一组独立的计算机通过特定的硬件和软件连接起来,它可以在短时间内检测到故障的发生及时并启用备用设备以保证设备的平稳运行。

对于使用PLC的基础自动化来说,它的工作原理与计算机操作系统工作原理不同,PLC内嵌的应用程序是按照顺序执行,循环扫描的方式工作来运行的。

扫描周期对于既定的应用有着严格的执行时间。

为保证设备正常运行,可将核心部件做备份,并使冗余的CPU与正常工作CPU保证相同的时钟和执行速度,使之同时工作,通过准确的时钟同步以及程序断点同步,时刻保持程序运行的一致性。

当发生故障时,通过无忧切换,备用CPU的启用在一个扫描周期(一般为几十微毫秒)内完成切换工作。

3.2 抗干扰技术。

在工业环境中,对于实际应用的微机测控系统,有很多强烈的干扰来自系统内设备的运行,例如,大型感性负载的通断,大型设备的关停启动时产生的干扰可以作用到测控系统的微机电路上。

这些干扰虽然危害严重,但往往是可以预知及避免的,通常的作法是在硬件上采取一定的措施抑止干扰或者屏蔽传输途径以达到防干扰的目的。

在设计和开发冶金设备的测控系统时,一般很难考虑到在实际应用过程中可能发生的各种干扰和设备自身的随机性故障,尤其是现场恶劣的环境很有可能使计算机系统在运行过程中发生异常。

此类问题需要借助干特殊软件措施使计算机摆脱困境,当出现故障时及时使用修复或启用备用系统。

软件“看门狗技术”、指令冗余技术、数据冗余技术以及软件陷阱技术均可解决此类问题。

4 结束语

笔者结合自己多年对冶金设备的认识,从设计方法、零件分析、测控系统、软件设计等方面,阐述如何合理有效地提高冶金设备安全性能。

参考文献

[1] 彭开香,冶金设备高可用性控制系统的构建[J],冶金设备,8月第4期,总第152期.

SSLVPN安全性研究 篇3

然而, 怎样才能在办公人员远程便捷访问企业内部各种应用系统的同时保障信息安全呢?在现在已经有多种不同的解决方案可供用户选择。在信息安全界有一句口头禅:安全与方便就像鱼与熊掌不可兼得。目前, 哪种解决方案是最能保证安全而又最大程度的节约用户投资呢?

联想网御在多年前就敏锐的预见到国内企业的信息化建设过程及趋势, 即由固定的集团化业务系统向分散移动办公发展。因此持续投入研究各种远程安全接入技术。联想网御认为, 近年来早已成熟并大规模应用的IPSec VPN方案虽不失为一种可靠的解决办法, 但SSL VPN方案更加适合目前企业所面临的各种问题。

很多企业之所以对是否采用移动办公心存疑虑。主要还是怀疑远程办公环境是否能在保证安全的前提下满足使用的便利性, 并希望与现有业务无缝兼容。联想网御在推出SSL VPN解决方案时, 对用户担心的问题做了深入研究并提出了完整的解决思路。

安全接入

SSL VPN的安全性首先体现在端到端的加密安全传输, 即可以建立一条从客户的桌面直接到后台应用服务器的完整安全隧道。但在目前大多数SSL VPN产品中, 都是采用国际标准的加密算法。其安全性到底能有多高?一直是个令人担心的问题, 同时也不符合国密局相关规定。联想网御的SSL VPN解决方案是国内首款采用国家密码管理局认证算法 (SM1) 的SSL VPN方案。可以很好满足政府和大型国有企业的高等级需求。而SSL VPN利用标准浏览器的应用方式决定了用户可以使用他人电脑进行业务操作。这时终端的自身安全性就成为一个很大的隐患。联想网御的SSL VPN解决方案通过终端多级安全 (CLS) 技术, 实现了隧道隔离 (登录SSL VPN后, 不能访问Internet) ;特征绑定 (账号与PC特性绑定, MAC、CPU ID、硬盘ID、操作系统ID) ;伪造识别 (哈希计算方法对一些文件做伪造识别) ;痕迹清除 (安全登录退出时自动清除本地临时保存文件) 等安全特性。充分保证在任何时候, 任何地点登录都安全可靠。

方便使用

SSL VPN对于用户最大的便利性就在于可以直接基于标准浏览器使用。用户端不需要安装任何软件, 使用前也不需要对员工进行任何培训。这样, 用户无论是使用自己的终端, 还是因需要临时使用他人的电脑或网吧终端, 都可以方便的使用, 且不用考虑安全问题。除此以外, 还可支持基于标准浏览器的智能手机、PDA等多种平台。使“随时随地安全接入”成为真正可能。联想网御在SSL VPN方案中还考虑到用户多业务登录的问题, 集成了单点登录 (SSO) 和动态权限管理 (DAM) 技术。不但可以解决多业务系统重复登录的问题, 还可以基于角色进行授权管理。实现同一个用户, 在不同的因素下, 属于不同的角色, 拥有的访问的资源权限不同;如:一个用户, 在上班时间、用自己的终端采用证书方式登录、在企业网中、使用的终端环境优良, 能访问的资源是全部的;同一个用户, 在网吧里, 晚上、用口令登录、使用的终端杀毒软件未装, 只能访问内部邮件系统。

无缝集成

一个成熟的远程接入的解决方案还必须与现有业务系统的无缝集成。大部分企业原有的业务系统都是针对局域网环境开发的。如果要直接扩展为广域网应用, 可能面临着业务系统的改动。但对于企业来说, 任何对现有业务系统的较大改动无论是从时间成本上, 还是运营成本上考虑都是很难接受的。如果能快速方便的实现与现有业务集成, 就可以将这部分成本降至最低。联想网御SSL VPN解决方案支持与用户的支持性基础设施无缝集成 (KMI/PKI/SI) 。可继承现有的授权制度, 继承现有的用户管理, 并整合现有的基础设施。这样就大大降低了用户进行这部分系统修改的成本。

SSLVPN安全性研究 篇4

随着企业的分支机构分布日益广泛以及对信息安全的日益重视, 企业迫切需要一种技术把原有的各个孤立的局域网联成一个整体, 构筑一个安全可靠高效的信息传输和管理平台。虚拟专用网VPN (Virtual Private Network) 以其独具特色的优势, 成为越来越多的企业的首选。

1 VPN简介

1.1 SSL VPN技术

目前实现VPN的技术包括配置管理技术、隧道技术、协议封装技术和密码技术等。这些技术可以应用在TCP/IP协议的数据链路层、IP层、TCP层和应用层。

SSL VPN是近年来兴起的一种新型安全VPN。它是一种基于隧道技术, 利用SSL/TLS协议结合强加密算法、身份认证技术开发而成的安全VPN。它通过数据包封装技术来实现虚拟专用网的私有性, 通过PKI技术和加密技术来鉴别通信双方的身份和确保传输数据的安全。SSL VPN工作在系统用户空间, 具有组网灵活性强, 管理维护成本低, 用户操作简便等特点。SSL VPN可以构建外联网、内联网和远程访问等多种VPN系统, 支持IPv4/v6, Netware IPX, Appletalk等多种网络协议, 可成功穿越NAT设备。

1.2 Open VPN简介

Open VPN提供了一个实现SSL VPN全部功能的VPN解决方案。使用Open VPN可以在任意的IP子网之间建立隧道连接, 也可以通过单独的UDP或TCP端口在任意的虚拟网卡之间建立隧道连接。并且可以配置一个具有可扩展性的、带有负载平衡功能的VPN服务器, 用它可以处理来自不同地方的、成千上万的VPN客户端的动态连接请求。

Open VPN自身提供了多种加密算法, 利用加密算法和认证功能来保护V P N中的数据在无联网上传输。使用Open VPN, 可以实现以下功能: (1) 使用特定udp或tcp端口实现两台主机的之间的vpn连接; (2) 实现C/S结构, 实现多台client通过server服务器互连互通; (3) 通过TLS/SSL加密保证数据传输的安全; (4) 通过数据的压缩, 提高数据传输的速度。

Open VPN是一个具备完全特征的SSL VPN解决方案, 能够进行大范围的配置操作, 包括远程访问、站点与站点间VPN、Wi Fi安全及企业级远程访问解决方案, 支持负载均衡, 错误恢复及细粒度的访问控制。它通过使用工业标准SSL/TLS协议实现了OSI 2层及3层安全网络扩展, 支持灵活的基于证书、智能卡的客户端认证方法, 允许通过在VPN虚拟接口上应用防火墙规则实现用户及组访问控制策略。

2 Open VPN的安装与搭建

本实验环境搭建, 使用VMware软件安装Fedora 4, 安装Open VPN的Linux版本;两台PC安装Windows XP, 并安装Open VPN的Windows版本。

2.1 安装Open VPN

2.1.1 Linux下的安装

首先, Kernel必须支持TUN/TAP设备。在2.6.x内核中, 对应的Kernel选项是“Universal TUN/TAP device driver support”。Open VPN需要LZO的支持, LZO是致力于解压速度的数据压缩算法。确认后, 可以下载Open VPN编译并安装。

使用Open VPN包自带的脚本生成需要使用的CA证书、Diffie-Hellman文件、server端的cert和key文件, 以及若干个client端cert和key文件等证书文件。

2.1.2 Windows下的安装

Windows版的Open VPN只能在Windows2000或者更高的版本上才能安装。另外要注意的是必须要拥有管理员权限的用户才能安装Open VPN, 可以以服务形式运行在系统后台, 当软件装完, 非管理员用户也可以建立VPN隧道。

建立隧道前把client.ovpn, ca.crt, 以及客户端的cert文件和key文件拷贝到openvpnconfig目录下。

2.2 搭建Open VPN隧道

2.2.1 服务器端

在Linux下需要配置server.conf文件, 在Windows下需要配置server.ovpn。下面是一个典型的服务器端的配置, 文件内容如下:

port 1194#申明使用的端口, 默认1194

proto udp#申明使用的协议, tcp或者udp

dev tun#申明使用的设备可选tap和tun

ca ca.crt#Open VPN使用的ROOT CA, 使用build-ca生成的, 用于验证客户是证书是否合法。

cert server.crt#Server使用的证书文件

key server.key#Server使用的证书对应的key

dh dh1024.pem#生成的Diffie-Hellman文件

server 10.8.0.0 255.255.255.0#设置为server模式, 给接入的client分配的地址段。

cipher DES-EDE3-CBC#选择隧道数据加密算法, 默认算法为Blowfish

comp-lzo#使用lzo压缩的通讯

2.2.2 客户端

在配置客户端的配置文件, Linux或Unix下使用扩展名为.conf, Windows下使用的是.ovpn。典型的客户端配置文件中, 需要声明为客户端, 指明使用协议和服务器端地址, 必须指明使用的CA证书, 客户端Cert证书和Key文件, 其他设置要与服务器端相符合。

2.2.3 启动VPN隧道

Linux下启动openvpn使用命令“openvpn--daemon--config server.conf”即可;

在Windows下, 装完Open VPN后, 系统会使用已经关联的.ovpn后缀的文件。可以右键单击Open VPN的配置文件, 即.ovpn后缀的文件, 然后选择Start Open VPN on this configuration file。

这样, 服务器端和客户端就建立了一条VPN的隧道, 根据配置文件, 服务器端建立一个虚拟tun0, 分配地址为10.8.0.1, 客户端建立虚拟网卡, 被分配地址为10.8.0.10, 当服务器和客户端配置正确, 并且配置相符合时, 就可以在两者之间通过加密的隧道进行通讯。如图1、2、3所示。

使用tcpdump和ethereal-0.99工具捕获数据包实验表明, 在系统网卡的实际地址上, 捕获到的是经过加密的udp/tcp报文, 而在虚拟的tun/tap设备上捕获到的是经过解密后的正常数据流。说明在本实验环境下SSL VPN连接状态与测试方法是正确可信的。

2.3 连通性测试

使用多种网络拓扑结构, 测试以Open VPN技术搭建的SSL VPN实验环境的连通性能, 主要采用以下测试方法:

(1) 一般性测试:进行普通性能测试, 由一台或多台客户端连接服务器, 测试隧道连通性。

(2) Spoken-Hub测试:首先在A、B分别和C建立两条Open VPN通道, 使得A和C连通, B和C连通;其次在C上, 通过设立策略, 使得两条隧道互通, 最后使得A和B连通。

这种方式以一台VPN服务器 (HUB) 为桥, 连接若干个VPN隧道 (Spoken) , 测试隧道连通性能。

(3) Mesh测试:首先在Point A、Point B和Point C之间分别建立Open VPN通道;例如:PA (服务器) ←→PB (客户端) , PB (服务器) ←→PC (客户端) , PA (服务器) ←→PC (客户端) ;调试, 使得PA分别与PB、PC连通, PB分别与PA、PC连通, PC分别与PA、PB连通, 然后测试PA、PB、PC各个子网之间的连通性。

(4) Windows Client连接测试:使用Windows客户端连接Openvpn服务器, 测试客户端连接服务器的连通性。

(5) N a t穿透测试:在网络中放置N A T设备, 测试Open VPN的NAT穿透能力。

经反复实验, 以上测试均达到测试目的, 实际连通结果与预期结果一致。功能测试结果表明:Open VPN可部署内联网、外联网、远程访问等VPN系统, 具有网络扩展功能, 支持各种常见的网络拓扑类型。总之, 从功能的角度看, Open VPN确实是一种“全功能”的VPN软件。

3 扩展功能的实现

Open VPN虽然已经是一个全功能的SSL VPN软件, 但是在某些地方上还是不尽如人意, 下面是作者就几个方面的改进思路以及具体功能的实现。

3.1 运行状态监控功能

Open VPN服务器参数设置、载荷状况等信息都是要随时了解的。这些信息一般记录在服务器的日志文件中。但日志文件可读性差, 状态监视功能使管理员能随时随地的了解系统运行状态。VPN服务器使用openvpn.log和openvpn-status.log来记录日志。

openvpn.log记录服务器运行过程中发生的各种事件。实现思路是:从日志文件中搜寻有价值的信息, 将搜寻结果存放在一个数组中, 进行处理, 以网页的形式显示出来。对它的分析, 可获得VPN服务器的参数设置信息。openvpn-status.log记录当前用户连接的相关信息。查看该文件, 管理员可获知哪些用户正在使用VPN隧道, 并能根据用户的数据流量信息, 对VPN服务器的载荷平衡做出大致判断。

3.2 流量统计分析功能

流量统计与分析能帮助管理员了解VPN系统性能和服务质量。Open VPN没有提供流量统计功能, 但其设定的环境变量bytes_sent和bytes_received中包含了流量信息。这两个变量存储某一VPN会话中服务器发送和接收的字节数。如果将这两个变量输出到文件或数据库中, 就可采集到流量统计与分析使用的原始流量数据。

3.3 实现方法

Open VPN项目的源代码中, multi.c和sig.c这两个程序文件完成了对状态文件的生成功能。原始的日志文件纷乱无章, 无法为用户和管理员提供有效的信息, 但是Open VPN提供了许多环境变量, 可以根据需要, 对代码进行修订, 将所需要的数据信息写入日志文件和状态文件, 以我们预期的格式输出, 再经过程序对两个文件的读取与分析, 就可以把隧道运行状态和运行流量做出显示, 实现状态监控和流量统计功能。部分代码如下:

/*写入运行状态*/

if (!mi->halt) {

status_printf (so, "%s, %s, "counter_format", "counter_format", %s, %s", tls_common_name (mi->context.c2.tls_multi, false) , //写入隧道名称

mroute_addr_print (&mi->real, &gc) , //写入接入端实际IP地址

mi->context.c2.link_read_bytes, //写入接收字节数

mi->context.c2.link_write_bytes, //写入发送字节数

time_string (mi->created, 0, false, &gc) , //写入隧道创建时间

mi->connection_established_flag?"Connected":"Dis Connected") ;//写入当前隧道状态}

/*读取客户端运行状态*/

if (STRNCMP (buf, C_STAT_Updated) ==0) {STRNCPY (ov_s->update_time, index (buf, ', ') +1, FIX_DATE_LEN) ;//时间}

else if (STRNCMP (buf, C_STAT_TUN_read) ==0) {client_read_ul_value (buf, & (ov_s->tun_read) ) ;//收到流量}

else if (STRNCMP (buf, C_STAT_TUN_write) ==0) {client_read_ul_value (buf, & (ov_s->tun_write) ) ;//发送流量}

else if (STRNCMP (buf, C_STAT_LINK_read) ==0) {client_read_ul_value (buf, & (ov_s->link_read) ) ;//读取流量}

else if (STRNCMP (buf, C_STAT_LINK_write) ==0) {client_read_ul_value (buf, & (ov_s->link_write) ) ;//发送流量}

else if (STRNCMP (buf, C_STAT_AUTH_read) ==0) {client_read_ul_value (buf, & (ov_s->auth_read) ) ;//Auth读取流量}

else if (STRNCMP (buf, C_STAT_END) ==0) {return 0;}

else{return-1;}

3.4 Windows下客户端的实现

Open VPN在Windows下通常只能在控制台窗口中以命令行的形式运行, 很不方便。而Open VPN GUI lets you run Open VPN without this console window.Open VPN GUI可以在不需要控制台的情况下运行Open VPN, 在配置目录下有配置文件 (*.ovpn) 存在时, 用户就可以点击系统任务栏中的图标来控制启动或是停止VPN隧道, 可以查看日志等。Instead you get an icon in the notification area (the area on the right side of the taskbar) from which you can control Open VPN to start/stop your VPN tunnels, view the log, change your password and other useful things.

但是Open VPN GUI需要手动编辑配置文件, 这样为用户增加使用困难, 同时将太多细节暴露给了用户, 如果用户没有网络和VPN基础, 那么对于用户来说, 搭建一个VPN隧道将是一个很艰巨的任务。

Open VPN客户端接入软件应该有一个友好的配置与启动界面, 使得用户不必介入编辑配置文件这个繁琐的过程, 降低用户使用难度。因此, 作者根据Open VPN在Windows下的工作原理, 基于.net framwork 2.0平台, 使用C#开发工具编制一款小巧的客户端接入软件, 经过在3.3小节的连通性测试, 可以成功地连接SSL VPN服务器, 连通效果良好, 满足基本功能使用。运行时如图4所示。

证书文件必须导入, 在“配置证书”页面导入证书文件, 服务器的IP地址必须指定, 选择和服务器端一致的加密算法, 其他可均为默认设置, 在程序中形成大致如下的命令:openvpn--client--remote192.168.0.8:1194--dev tun--ca ca.crt--cert client.crt--key client.key–cipher DES-EDE3-CBC--complzo, 在C#中Process类调用外部命令, 启动VPN。

分析日志文件和程序运行状态, 当出现“Initialization Sequence Completed”语句并且无error和warning信息时, 可以判断隧道建立成功。其余情况, 启用新的线程, 根据日志文件中的不同信息在运行状态栏中显示错误提示信息, 错误信息包括以下几种:“连接失败, 请查看是否与服务器配置一致。”、“连接失败, 请查看导入证书是否正确。”、“连接失败, 请联系管理员”等。部分代码如下:

private Process p=new Process () ;

p.Start Info.File Name="cmd.exe";//设定程序名

p.Start Info.Use Shell Execute=false;//关闭Shell的使用

p.Start Info.Redirect Standard Input=true;//重定向标准输入

p.Start Info.Redirect Standard Output=true;//重定向标准输出

p.Start Info.Redirect Standard Error=true;//重定向错误输出

p.Start Info.Create No Window=true;//设置不显示窗口

……

string cmd="openvpn--client--remote"+Server IP+":"+Server Port+"–dev tun--ca"+CAPath+"--cert"+Cert Path+"--key"+Cert Key+"--cipher"+Cipher+lzo+">aaa";

p.Standard Input.Write Line (cmd) ;

4 结束语

4.1 Open VPN的可用性研究

由于在未来网络应用的Web化趋势将得到延续, 所以SSL VPN的发展势头将得到延续, 会逐渐成为市场热点。Open VPN作为一种典型的SSL VPN, 势必会再次发展得到应用。

它的工作原理和主要特点可归结为以下几个方面: (1) Open VPN使用SSL/TLS协议, 通过SSL握手建立控制通道, 磋商隧道密钥资料; (2) Open VPN在OSI网络分层模型的链路层或网络层创建隧道; (3) 隧道数据的采集和发送由TUN/TAP虚拟网卡驱动完成; (4) 隧道数据的封装借鉴了ESP协议的封装过程, 加密和验证采用Open SSL加密库; (5) Open VPN在UDP层上模拟了一个可靠层, 使用控制通道和隧道数据能够统一采用UDP协议传输。

4.2 今后的研究方向

研究过程中发现的一些问题尚未深入探究。今后将以下几方面的完善工作作为下一阶段的研究重点:提高程序健壮性;开展专题研究, 如LZO压缩算法对Open VPN性能的影响、影响加密算法数据处理速度的因素等。

参考文献

[1]MARKUS FEILNER.OpenVPN:Building and Integrating Vir-tual Private Networks[M].Packt Publishing.2006.

[2]OpenVPN-An Open Source SSL VPN Solution[EB/OL].http://openvpn.net.

[3]周靖译.JOHN SHARP.Visual C#2005从入门到精通[M].北京:清华大学出版社.2006.

[4]W.TIMOTHY STRAYER.Privacy Issues in Virtual Private Networks[J].Computer Communications.2004.

[5]SourceForge.net:OpenVPN[EB/OL].http://sourceforge.net/projects/openvpn/.

[6]马军锋.SSL VPN技术原理及其应用[J].电信网技术.2005.

[7]徐家臻, 陈莘萌.基于IPSec与基于SSL的VPN的比较与分析[J].计算机工程与设计.2004.

[8]钦炜.IPSec VPN与SSL VPN的特点与应用比较[J].福建电脑.2005.

[9]Virtual Private Network Consortium (VPNC) :VPN Protocols[S].http://www.vpnc.org/vpn-standards.html.

SSLVPN安全性研究 篇5

关键词:SIP网络电话,仿真,测试

1 开源软件介绍

1.1 Osip与eXosip

Osip是一个开源的标准C的RFC 3261的SIP协议栈, Osip协议栈采用ANSIC编写, 结构简单而小巧, 所以速度特别快。它主要提供一些解析SIP/SDP消息的API和事务处理的状态机, 负责生成和解析SIP信令。Osip可以用来开发LserAgent, IP soft-phone和SIP Proxy等等。Osip总体结构主要包括三大模块:状态机模块、解析器模块和工具模块, 如图1所示。

Osip把各种SIP消息统一封装到一个OSIP_MESSAGE_T结构体中。Osip的核心是基于事务层的, 一个事务层从逻辑上可以分为客户和服务器两部分, 客户端发送请求, 服务器端发送响应。

一方面Osip的各个模块相对清晰、独立, 且词法解析器提供了较完善的API。但另一方面由于Osip结构简单, 外围相关模块需要用户自己开发, 如SIP消息的接收和发送, RTP/RTCP语音数据处理等;协议栈的调试和维护功能比较简单。我们可以配合使用Osip的扩展协议栈eXosipo eXosip部分封装了Osip协议栈, 提供了网络数据传输模块, 另外还增加了call, dialog, registration, subscription等过程, 使之实用性更强。

eXosip的基本思想是在封装Osip词法解析模块的基础上, 增加一个SOCKET传输模块, 通过称之为JEVENT的消息管道实现Osip事务状态机和SOCKET传输层之间的通信, 从而实现SIP信令在网络上发送、接收。eXosip结构模块如图2所示:

eXosip充分重用Osip协议栈的解析器、消息封装API、状态机三个模块, 保证SIP消息格式和状态转移的正确性。提供了面向呼叫和应答呼叫的API, 并实现了SOCKET传输模块和SDP协商模块, 结构简单清晰。

1.2 OpenVPN

OpenVPN是基于数据包封装技术, 利用SSL协议结合强加密算法和身份认证技术构建而成的可靠安全的VPN。其工作原理可描述为:服务器和客户端通过SSL握手过程进行身份认证和密钥交换, 完成隧道初始化, 数据在隧道中传输时, 借鉴ESP协议的封装原理对数据进行封装。

OpenVPN利用数据分层机制分成两种数据通道:

(1) 数据隧道。数据隧道是传输用户应用数据的安全通道。控制通道用于建立、维护、拆除数据隧道, 传输SSL会话消息和各种指令性信息。根据两者对传输数据可靠性的要求不同, 对数据进行分层处理。

(2) 控制通道。控制通道数据由UDP层上模拟的可靠层来保证其可靠性, 隧道数据不要提供可靠性保障, 直接由UDP层处理。两种通道中的数据通过“多路器”进行识别和分流。控制通道完成很多重要的事情, 如隧道密钥的确立、各种控制指令的收发与处理、HMAC防火墙、在UDP上模拟的可靠层、密钥磋商与变更等。

2 测试及分析

2.1 测试环境

本系统SIP电话的代理服务器、注册服务器、定位服务器、重定位服务器及SSL VPN服务器在物理上是一台服务器, 分别为服务器A和服务器B, SIP软终端分别是终端A和终端B。终端A和终端B所在的局域网分别通过服务器A和服务器B与Internet连接。

服务器A, B的配置分别为:

服务器A (Chariot Console) :

服务器B:

本系统通过Chariot测试软件进行测试。Chariot是由NetIQ公司推出的一款网络测试软件。它的出色之处在于, 它可提供端到端、多操作系统、多协议测试、多应用模拟测试, 应用范围包括有线网、无线网、广域网及各种网络设备。可以进行网络故障定位、用户投诉分析、系统评估、网络优化等, 能从用户角度测试网络或网络参数 (吞吐量、反应时间、延时、抖动、丢包率等) 。支持6种VoIP Code (G.711a, G.711b, G.723.1-ACELP, G.723.1-MPMLQ, G.726, G.729) , 支持MOS评分, 便于对VoIP网络进行实时分析。它通过模拟真实的网络流量来测试网络上的点对点、复杂架构以及分布式结构系统的性能。由于它具备验证网络性能、设备性能、应用程序性能、系统执行状况记录等多项功能, 并且其验证的公正性得到了众多网络实验室以及各大网络产品生产商的认可, NetIQ Chariot已经成为应用层网络性能的评估标准。

2.2 测试比较

在语音质量方面, 常采用MOS分值衡量。MOS值是分数越高越好, 一个正常的模拟或者数字话机的MOS值是4.2—4.4, 一个典型的蜂窝话机的MOS值范围是3.0^-3.7, 而一个通话质量差的蜂窝手机其得分值低于2 o MOS评定有1^-5级的五个评分标准, 可以接受的语音在3.5级以上。

为了测试网络电话系统采用SSL VPN加密后的呼叫性能变化, 对使用VPN前后的呼叫建立时间 (记录从INVITE发起, 到收到200 OK消息的这段时间) 进行对比。呼叫时间如图3所示。

从图中可以看出, 对呼叫建立而言, 采用SSL VPN加密后, 由于服务器需要对数据包进行加解密, 使得呼叫建立时间稍长, 但不到1秒, 对呼叫性能影响不大。但是却大大增强了系统的安全性能, 完全抵消建立呼叫时间增加的负面影响。并且系统能顺利穿越服务器A和服务器B的防火墙//NAT设施。说明采用SSL VPN是可行的。

接下来对SSL协议改进前后对系统服务质量 (QoS) 的影响进行测试比较。在语音编码G.726方式下, 对于可选择的加密方式ECC/RSA, SHA-1/MD5, 3DES/RC4的所有组合选取3组代表性的进行测试: (1) ECC_MD5_RC4, RSA_MD5; (2) ECC_MD5_RC4、ECC_SHA-1_RC4; (3) ECC_MD5_RC4、ECC-MD5_3DES。RC4:分别对VoIP QoS从端到端延迟、丢包率、抖动、MOS值四个方面进行了比较。如表1所示。

测试选取了3组代表性的密钥组合, 结果显示:

(1) ECC与RSA相比, 延迟减少了31.561ms, 丢包率下降了1.31%, 抖动减少了1.329ms, MOS值也增加了0.57;

(2) MD5与SHA-1相比, 延迟减少了9.744ms, 丢包率下降了0.67%, 抖动减少了0.126ms, MOS值稍稍增加了0.09;

(3) RC4与3DES相比, 延迟减少了14.48ms, 丢包率下降了0.92%, 抖动减少了0.046ms, 且MOS值增加了0.28。

相对而言, ECC要比RSA性能突出得多, 对系统服务质量改善程度最大。本系统测试连续通话20分钟, 语音流畅、清晰, 可以满足日常通话的需求。

参考文献

[1]李琳, 王新刚, 柴乔林.SIP协议在开发的VoIP模型中的实现[J].计算机工程, 2008, 28 (8) :222-226.

[2]曹玖新, 张德运.VoIP实现技术研究[J].计算机工程, 2006, 26 (10) :497-500.

[3]张智江, 张云勇, 刘韵洁.SIP协议及其应用[M].北京:电子工业出版社, 2008.

上一篇:产后康复剂下一篇:流域生态环境