基于WebVPN系统的数字资源获取安全机制研究

2021-08-11 07:59
信息安全研究 2021年8期
关键词:代理服务器脚本网址

刁 喆 孙 鼎 袁 艺

1(国际关系学院网络与教育技术中心 北京 100091) 2(国际关系学院 北京 100091)

2020年1月,新冠肺炎疫情爆发,疫情迅速从湖北扩散到全国.为进行疫情防控,国家将春节假期延长至2月10日.在新冠疫情新形势下,人们的生产生活方式发生了巨大的改变,网络担负着越来越重要的作用.由于工作和教学方面的需求,大多数企业都选择让员工居家办公,中小学和各高校的开学时间也相应延后,学校采取以网络线上授课的方式完成教学任务.新冠疫情对信息交互、资源访问提出了更高的要求[1].尽管信息技术迅速发展,各大企业、高校也逐步建立了数据交换平台,如信息门户系统、自动化办公系统和数字资源库等,但仍有许多数字资源的访问受到限制,只有通过企业或校园的内部网络,才能进行访问.而使用WebVPN系统可以很好地解决这一问题.在实际生活中,WebVPN系统已经在各高校和企业之间的数据共享交换平台中得到了广泛的应用[2].员工和学生可以不受地理位置限制,在外也可以通过WebVPN系统任意访问内部网络的数据资源.但是,在使用外部网络访问共享数据资源的过程中,经常会发生需要多次登录共享平台的情况,造成了许多不便.为了解决这一问题,本文通过对WebVPN系统的技术分析和对JavaScript脚本的运用,提出了一种通过JavaScript脚本简便获取数字资源的方法.

图1 SSL VPN远程访问模型示意图

1 Web VPN/SSL VPN技术原理

1.1 VPN技术原理

VPN(virtual private network),即虚拟专用网络[3],其含义是指通过公共网络基础设施,利用“隧道”技术、认证技术、加密技术和控制访问技术等相应的技术[4],向单位内部网提供远程访问连接,建立虚拟私有网络.虚拟专用网络广泛应用于传统的数据网络和资源共享网络,具有高安全性、低成本性等优点[5],近年来大多数高校都将其应用于移动办公、数字资源访问等领域.

虚拟专用网络技术是指临时设置一个安全的虚拟网络连接通道,或临时建立一个特殊虚拟网络连接,以便在公用网络中建立安全、独立的隧道,将不同域的虚拟网络连接到相同逻辑虚拟网络,实现通信的目的[6].目前,通常建议采用安全信息隧道、加密信息解密管理技术、密钥加密管理和用户身份信息认证等技术方法[7]来进行网络安全加密通信,保证传输内容的完整性和机密性.

VPN按技术实现可分为L2TP VPN,MPLS VPN,PPTP VPN,IPSec VPN,SSL VPN等,其中以基于IPSec和SSL协议的VPN技术在日常生活中应用最多[8].但是基于IPSec技术的VPN[9]需要另外安装客户端软硬件,与IPSec技术相比,SSL协议内嵌在浏览器之中,具有更加简便、易于实现而且安全性更高的特点[10],因此SSL VPN在移动办公、数字资源访问、高校校园网等方面得到了更加广泛的应用.

1.2 SSL协议VPN的组成

SSL(security socket layer),顾名思义为安全套接协议层,是一种部署于2台机器之间的安全通道协议[11].SSL在任何浏览器上均可以进行身份认证,完成握手后会对所要传输的数据进行加密,以实现安全的通信[12].SSL VPN通常包含网关和用户端浏览器2个部分.用户可以在浏览器增加SSL协议,对TCP网关发出访问请求,网关在解密后将该访问请求发送到校内服务器,在这一过程中便会形成加密隧道[13].SSL VPN访问组成模型(以国际关系学院为例)如图1所示.

在上述过程中,VPN服务器和浏览器建立了HTTPS连接,并且保证了SSL协议的安全[14]. VPN服务器主要的作用是Web反向代理,可以屏蔽外部应用服务器内部的细节,代替用户访问内部应用服务器,并将相应的请求结果返还给用户[15].VPN服务器根据用户的身份及需求制定策略,在代理内部应用前进行访问控制,起到与应用级防火墙相似的作用,可以有效地保护内部网络.

1.3 反向代理技术

代理网络服务终端是基于网络信号转换器的相关服务,它可以允许一个直接网络服务终端与其他直接网络服务终端通过非直接网络连接,这个网络服务终端可以通过该网络提供服务.传统代理服务器通常用于直接处理与外部互联网络请求相关的内部本地互联网络请求,用户端首先确定代理服务器,并将原来需要发送给一个外网代理服务器的互联请求直接转发至代理服务器,由代理服务器将其请求转发至一个外网代理服务器.由于内部互联网络不能同时接收外部互联网络的对外连接访问请求,因此不一定支持外部网络.

反向代理服务器在外部和内部2个网络代理服务器之间安装,其日常工作处理方式不同于正向代理服务器:正向代理服务器只用于代理内部网络对外部网络的连接请求,不支持外部网络对内部网络的访问请求[16];而反向代理服务器的功能便是帮助处于外部网络的用户或主机访问内部网络.反向代理服务器在反向防火墙外,对反向内网代理用户来说,就像一个反向外网代理服务器.反向代理服务器接收外部网络代理用户端向其提出的网络连接处理要求,然后向内部网络系统中的服务器终端发出请求,并将这个处理结果从内部网络代理服务器发送连接到原来的用户端[17],如图2所示.

图2 反向代理服务器部署

其主要工作流程如下:

1) 当一个处于外部网络的用户端试图直接访问内部网络的Web服务器时,用户首先通过域名发出访问Web服务器的请求,再由DNS服务器解析该域名,DNS服务器会自动得到反向代理服务器的IP地址,这样内网连接将自动转向反向代理服务器,用户的请求就被重定向到反向代理服务器.

2) 反向代理服务器接收外部网络用户的连接请求.

3) 反向代理服务器在本地缓存中查找用户所请求的内容,若没有则反向代理服务器将用户请求信息通过防火墙特殊发送通道直接发送给内网代理服务器,内部网络系统中的服务器将再次通过这个控制通道将查询得到的结果发送给内网反向代理服务器.

4) 外网反向代理服务器将获得的处理结果转发给外部网络中发出该请求的用户端.

如果内网代理服务器自动回复错误信息,代理服务器将首先截取这个错误消息,并自动按照标头所示排列邮件地址,然后将这个消息直接发给内网用户端.这样就完全可以有效防止外网用户端无法获得来自内网文件服务器的重定向文件地址.这相当于在一个内部外网代理服务器和一个可能直接受到恶意软件袭击的外网环境下,为反向代理服务器设置了一个安全屏障[18],使得向内网代理服务器发动的恶意攻击行为将直接指向到反向代理服务器,这样攻击者通常只能获得恶意袭击行为事件的相关数据,而不能直接访问整个内网代理服务器,从而可以保证整个内部网络代理服务器的安全.

1.4 基于反向代理的WebVPN

WebVPN基于反向代理技术,提供基于Web的内部网络的访问控制.与传统的VPN技术不同,WebVPN不需要用户再额外安装客户端软件和相关的浏览器插件,用户仅需进入WebVPN页面,输入用户名和密码,通过身份验证就可以登录VPN,从而访问内网的资源,真正实现了即开即用的目标.与传统的VPN配置相比,WebVPN在具备更强安全性的同时,也实现了VPN系统的零配置,极大地降低了使用门槛[19],使得访问内部网络资源变得更加简单便捷,提高了用户的体验.同时,WebVPN还大大提高了兼容性.WebVPN兼容各种终端,包括计算机、安卓设备和苹果终端,等等.并且,WebVPN兼容各类主流的浏览器,包括IE,Firefox,Mozilla等核心浏览器,用户只要支持标准的HTTP协议,就可以通过WebVPN系统访问内网的数字资源[20],从而有效避免了传统VPN兼容性差以及经常被运营商封锁的问题.此外,如今网络空间安全形势日益严峻,为了有效保证数据安全,WebVPN的用户端和SSL端的所有数据都会进行高强度安全加密[21],因此可以有效确保用户的数据安全.

2 基于WebVPN的数字资源获取技术——JavaScript脚本的运用

2.1 JavaScript脚本原理

JavaScript是一种动态网络脚本语言.前人在Web的诸多应用中已经进行了大量的实践,其中JavaScript得到了广泛的支持,成为最受欢迎的编程语言之一.JavaScript经常被用户用于帮助添加各种动态网页,为网络用户带来更流畅的网页浏览体验效果.通常JavaScript中的脚本程序是通过直接嵌入HTML文件中运行,自动实现其自身的基本功能.其具有下列主要特点:

1) 它是一种解释性脚本语言,代码无需预编译;

2) 它是一种面向对象的脚本语言,既可以用来建立脚本对象,也同样可以用现有的脚本对象类型建立;

3) 它具有强大的功能,并不严格要求使用数据字典,简单、设计紧凑;

4) 它具有跨平台的性能,运行于浏览器之中,不依赖于操作系统,只需要浏览器支持,因此Java-Script脚本在不同平台可以使用,只要有支持它的浏览器即可;

5) 它是一种事件驱动的脚本语言,不需要Web服务器对用户的输入进行响应,当用户访问网页时,可以使用鼠标直接在网站中进行点击、上下移动、窗口移动等操作,这些事件便可以对Java-Script规定的事件作出相应的反应.

完整的JavaScript文件实现模式包括文件核心(ECMAScript)、文件系统对象管理模式DOM(document object model)、浏览器文件对象管理模式BOM(browser object model).其中:ECMAScript对JavaScript规定的语法、类型和对象等进行了描述,它独立于具体的某个特定浏览器;DOM对JavaScript处理网页的方法和接口进行了相关的描述,将网页页面看作由多个节点层级构成的文档;BOM对与浏览器进行交互的方法和接口进行了描述,使得可以对浏览器进行访问和相关操作.

JavaScript文件通常可以具有以下用途:

1) 作为嵌入一个HTML元素页面文件中的用户动态显示文本;

2) 同时响应多个浏览器的文本事件;

3) 同时读写一个HTML元素;

4) 在用户提交文本到网站服务器之前进行验证文本数据;

5) 同时检测其他用户访问浏览器的文本信息等.

2.2 利用JavaScript脚本简化资源获取步骤

在本文中我们主要使用JavaScript中的Location对象进行相关操作.Location对象存储在Windows对象的Location属性中,表示那个窗口中当前显示的文档的Web地址.它的href属性返回完整的url;pathname属性返回当前的url路径部分;search返回从问号开始的url查询部分.它可以使用replace方法用新的文档替换当前文档.

首先我们需要在支持JavaScript脚本的浏览器中创建书签,再利用JavaScript脚本改变location对象属性href,此后便可在登录过一次机构信息门户系统并且浏览器不被关闭的情况下,实现不论从何处访问共享数据资源,只需要单击一下所创建的书签便可以使用机构的身份访问该机构所拥有的内部资源.该方法避免了需要反复打开机构信息门户系统进行登录的繁琐操作,使得日常生活中对于数字资源的远程获取变得更加便捷.

该方法的核心在于在保持机构信息门户系统登录的情况下,记录从信息门户系统进入数据资源库后网址的变化情况,对比从外部网络进入的网址,分析两者之间的差别,然后通过正则表达式实现以上2个网址的转换,再添加location对象的pathname属性和search属性,形成新的网址,最后在书签中添加替换网址的JavaScript脚本.由此,便可以实现在保持机构信息门户系统登录的情况下,以任意时间从外部网络进入数据资源库,都可以一键跳转到从机构信息门户系统进入的界面,获得浏览、下载数字资源等权限,避免了重复打开机构信息门户系统进行登录的操作,达到了简化通过WebVPN获取数字资源的目的.

2.3 实例运用

当师生离开校园无法连接校园内部网络时,数据资源的获取就会出现许多障碍.例如,在校外查阅文献时,若没有VPN的帮助便无法从学校已购买权限的中国知网、万方等数据库中下载论文原文.此外,在从外部访问共享数据资源的过程中,还经常会发生需要多次打开学校信息门户系统进行登录的情况,步骤十分繁琐,造成了许多不便.在本文中,我们以国际关系学院WebVPN为例,利用浏览器中的JavaScript脚本来获取中国知网、万方数据库等数据库中的数字资源,简化了一般情况下利用外部网络获取校园内网数字资源的繁琐步骤,具体方法如下:

1) 首先,制作JavaScript脚本书签.打开支持JavaScript脚本的浏览器,在浏览器的书签栏中添加一个新的书签,并利用以下的JavaScript语句对原始目标网址进行修改.javascript:location.href=location.origin.replace(/\./g,‘-’)+“.webvpn.uir.cn”+location.pathname+location.search.

2) 使用事先已经注册好的用户名和密码,登录国际关系学院的WebVPN.

3) 打开中国知网、万方数据库等网站(国际关系学院WebVPN所支持的数据资源网站),在其中查询自己所需要的信息.

4) 在所需资源的页面,点击步骤1)中所创建的书签,便可将目标网址修改成为如上的格式,然后跳转至网址修改后对应的页面.

5) 在跳转后的页面中,点击下载按钮,进行下载操作,即可获取所需的数字资源.

2.4 技术总结

在上文中,我们以国际关系学院WebVPN系统为例,获取了相关的数字资源.对于其他的WebVPN系统,我们也按照上述方法进行了测试.最终,我们得到这种方法对于广西壮族自治区图书馆(电子资源平台)和浙江图书馆都是可行的,JavaScript代码如下所示:

1) 对于广西壮族自治区图书馆(电子资源平台)系统.javascript:location.href=“http://fgf y208e51c2dd88406685526280e50de659sxnuxcnf66 pvw6fvf.fffg.wap.gxlib.org/”+location.pathname+location.search.

2) 对于浙江图书馆系统.javascript:location.href=“http://61.175.198.136:8083/rwt/288/http/GEZC6MJZFZZUPLSSGM3A/kns55/”+location.pathname+location.search.

经过对以上代码的研究,我们很容易看出该方法是通过分析分别从外部网络和从WebVPN系统进入数据资源库的2个网址的变化规律得到的.利用上述方法,我们使用JavaScript脚本重新修改网址,进一步跳转到该网址,从而便可获取相关的数字资源.所使用的JavaScript代码可以分成3个部分:1)数据资源库网址的前缀(即通过WebVPN系统进入数据资源库网址的前缀);2)location.pathname.当前网址的路径名;3)location.search.当前网址的查询部分.

最后,我们可以获得一个通式.javascript:location.href=“数据资源库网址的前缀”+location.pathname+location.search.大家在需要使用相关WebVPN系统获取数字资源时,按照自己所使用的WebVPN更改第1部分代码即可使用.使用这个方法只需要事先创建1个书签,然后再利用WebVPN系统便可以获得所需要的数字资源.

3 结 语

当今的社会是一个高度信息化的社会,我们周围充斥着大量的信息,信息的获取已经成为我们学习、工作和生活的基础.更快更准确地获取数字资源将会对人们的生产生活产生巨大的帮助,但是这也成为众多师生和信息化从业者所面临的难题.本文提出的以WebVPN为基础的数字资源获得技术,以简单方便的操作便可以极大地帮助网络数字资源的获得,提高了WebVPN系统中的数字资源利用,简化了人们学习和工作时获得优质数字资源的步骤.

猜你喜欢
代理服务器脚本网址
酒驾
本刊网址变更通知
安奇奇与小cool 龙(第二回)
火眼金睛快速显示链接的网址
地铁信号系统中代理服务器的设计与实现
IP地址隐藏器
快乐假期
小编的新年愿望
本刊关于网址的郑重申明
本刊关于网址的郑重申明