基于WEB服务数据传输通道的安全性分析

时间:2022-10-18 01:32:02

基于WEB服务数据传输通道的安全性分析

摘要:网页服务是万维网上至为重要的应用之一。在WEB服务器传输通道上,HTTP协议和HTTPS协议都存在着某种程度的安全隐患,可通过梯次解决的办法,用https提升http的安全,再加上JS加密,使用ACTIVEX加密等,进一步提升数据传输的安全。

关键词:WEB服务;HTTP/HTTPS;数据传输;通道;安全性

中图分类号:TP393.08 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02

网页服务是万维网上至为重要的应用之一。在网页设计中,http协议作为网页服务数据的传递通道,也成为网上最为重要的最常见的应用协议。由于网络的广泛普及和应用,有关的安全问题也越来越突出,在网络上,WEB站点经常成为黑客攻击的主要对象,这是由于网页开放性特征和易用型特征所导致的难以避免的结果。一些攻击者千方百计地进行表单篡改、命令插入等,王冶安全漏洞很多。研究报告指出,网页应用已经成为网络技术最大的安全焦点之一。因此,WEB应用的安全问题,已经成为网络技术安全的核心问题所在。当今社会,网络技术飞速发展,同时,随着网络技术的普及,网络电子商务、网络银行等方兴未艾,这些应用大幅度地拓展了网页应用的领域,因此,WEB服务的安全问题,也就更为突出。与此相关,作为传输通道的http协议,它的安全性要求,也就更为严格。我们设想,通过系统分析网页服务的安全问题,在介绍了HTTP协议的模型的基础上,针对HTTP协议存在的缺陷提出了改进HTTP协议的基本措施,为如何提高基于WEB服务数据传输通道的安全性提供可靠的理论依据。

1 WEB服务器存在的安全问题

1.1 服务器遭受入侵。网络黑客或其他攻击者往往直接通过网页漏洞或者一些人为的疏忽,进行攻击,比如远程溢出,SQL INJECTION,以及基于社会工程学等的手段,不择手段地入侵到WEB服务器内部。入侵的结果是WEB服务器不再安全,并孪生出许多问题,这种入侵性的攻击危害性最大,突出在于入侵者取得了大量用户的保密信息。

1.2 加密不具安全性。在网络上,很多WEB应用程序爱将敏感的保密性的信息,存储到网络数据库或者文件系统中,然后借助一般的加密技术来予以保护,诸不知这样的保密,安全性并不高。网络上常见的存储操作大体有如:关键数据不加密,证书、密码等存储不安全,秘密信息放在内存中。此外,还有算法选择不好,加密过程有疏漏等。甚至一些信用卡密码等,也放在内存中。

1.3 截取传输信息。网络攻击者常常在客户终端的支路、服务器的旁路等,通过一些特殊手段,如DNS SPOOF或者ARP SPOOF等,配合SNIFF过程,在中途截取或者篡秘密改客户端和服务器端之间的通信。这种攻击危险性也很大,如果让他们截取倒管理员登陆情况,就会私自登陆,进入服务器,直接入侵服务器,其后果相当严重。

1.4 针对客户端的攻击。一些黑客直接攻击客户端,采取的做法是,借助XSS漏洞来引起。在服务器把用户输入的数据没有做出严格的html标签过滤,就把它们直接保存到数据库,然后直接回显,这最容易熬出长久的XSS攻击。其结果也很严重,有可能直接导致客户端被重定向到恶意的网站去,或者被钓鱼,或者被植入木马等。

1.5 不接受服务。在网页应用中,一般比较难于分辨哪些是攻击行为,哪些是普通的访问,这主要是IP地址是共用的,这IP地址无法成为请求来源的判断的依据,也就是说,服务器无法判断出一个http的请求是从哪里来的,是善意的还是恶意的,也就无法过滤恶意访问行为。这样,服务器也就容易受到拒绝服务的攻击。这种服务器拒绝服务型的攻击,让WEB应用无法分辨哪是攻击行为,哪是多个用户的访问。攻击者通过大量的发送文字,或者直接发送严重消耗服务端的CPU资源的请求,如服务请求等,使得服务器力不胜支,最后服务端停止响应,这就让黑客达到了攻击的目的。

2 基于HTTP协议的工作模型及其缺陷

2.1 http协议的模型。一般地,WEB的服务是基于客户机/服务器模式的。WEB文档存放在服务器上,用户通过客户终端,借助浏览器对站点网页进行浏览。服务器和客户机的连接是依靠80端口连接的,当服务器和客户端连接之后,客户器和服务器就借助http协议来进行诉求和应答。HTTP协议的工作模式见图1:

图1 WEB应用工作模型显示了WEB应用服务的工作过程

2.2 HTTP协议存在的缺陷。应用极为广泛的http协议,还存在着不少的安全漏洞。主要是缺乏安全性检测,无法对数据传送和信息完整性进行检测。在网络技术应用中,数据的明文传送和信息完整性,特别成为网络技术应用所关注,例如电子商务、网络交易、在线支付等,就极需要明文传送数据,信息要完整等等。攻击者泽试图在数据传输过程中,分析和发行敏感的数据,例如管理员的登陆、支付密码的使用等,从而偷取密码,获得网站管理权限等。即使无法得到后台登陆信息数据,黑客也能从网页数据传输过程中,得到一般用户的隐私信息,包括手机号码、信用卡资料、工作证件号码、身份证号等,这就容易导致严重的安全事故。一些攻击行为,只要使用网络的任意的抓包工具,即使是新手,也都可能窃取大型网站的秘密信息。

特别是,http协议往往对内容是否被篡改,不做出确认,它只是在报文前部给出传输数据的长度而已,中央它在传输客户端的信息、请求和服务器响应的时候,就可以让攻击者轻易地得到重要数据。例如管理员的登陆过程、客户使用密码、网页交易支付等等。攻击者可以窃取管理权限,修改客户端的数据,甚至在传输数据中插入恶意代码,或植入木马等等,客户将遭受严重损失。而这些问题,http协议却感觉不出来,这最是让人难受的了。

这些缺陷,都是http协议在设计的时候,安全性被忽略所导致,也是因为设计上的问题,就使得这些漏洞无法从根本上解决。后来,NETSCAPE提出了HTTPS协议,使得数据传输获得进一步的安全保障。

3 借助HTTPS协议改进HTTP

http协议所存在的安全漏洞,必须解决,否则客户所受的攻击,防不胜防。Https之所以具有安全保障性,主要是https在TCP层和HTTP层之间,增加了一个SSL,这就在一定程度上加强了安全性。服务器在传输数据的时候,SSL进行加密和解密的工作,这就保证了数据的安全。https的做法是:

3.1 对身份认证从客户端和服务段双向进行。就是说,客户端和服务段都进行身份认证,在数据传输之前,通过X509证书认证双方身份。具体步骤是:

从客户端发起SSL结合的信息,请求服务端给以连接——服务端给客户端发送证书——客户端检查服务段证书并确认,如果不是由自己信任的证书机构签发的,就提醒客户,由客户决定选择是否继续通信,如果检查没有问题,或用户选择继续,则服务端的身份被客户端认可——客户端应要求向服务器发送证书,并检查是否通过。如果不通过,则关闭连接,通过泽获得客户端的公钥。

在身份认证过程中,服务端和客户端都对对方进行验证,这就保证了安全。

3.2 对数据传输过程予以加密。使用加密算法,在开始传输数据的时候,客户端和服务段协商,使用哪类算法。当客户端发送协商,请求服务端时,给服务端一自己支持的非对称的密钥交换算法(RSA),还有数据签名摘要算法(SHA或MDS等),加密传输数据的对称加密算法(DES),还包括加密密钥的长度。服务端在接收到这些信息之后,则选择自己认可的安全性最高的算法,然后反送给客户端自己所选中的算法,这样就完成了初期的协商。

接下来,客户端再生成随机的字符,通过协商好的加密算法,使用服务端的公钥,对这串字符进行加密,再发送给服务器。服务器接收到加密的字符串之后,再用自己的私钥来解密这些字符串。这一双边进行加密和解密的过程,就保证了数据的安全。尔后,在传输数据时,就使用这一加密的字符串作为密钥进行对称加密。

3.3 检验数据完整性。Https操作过程中,借助SSL,使用一种信息验证码,例如MD5,或者SHA-1算法等,以之来对所传输的数据进行签名,一般地,把验证码放在数据包的后部,并且把验证码和数据一起加密,这样在数据被篡改时,会由于HASH值的改变而被发现,进而有效处理。

3.4 防止重放攻击数据包。为了防止数据包被重放攻击,SSL使用序列号来保护通信方,这个序列号也要加密,并作为数据包的负载。在使用SSL来叩应对方时,那个唯一的随机字符作出标记,这就防止了黑客对客户登陆过程的窥探,以及在得到加密数据之后,不解密而直接重传登陆数据包来进行攻击。

经过这些作为,https已经大大提高了网络数据的安全性,其创造性在于,使用了非对称的加密算法,经过协商传递,保持了非对称加密的安全性和对称加密的快速度。

4 进一步加强https的安全性

基于http协议之上的https协议,使用了非对称加密的方式,传输对称加密使用的密钥,但是,如果SSL发起攻击并取得密钥,那么,整个数据传输的加密,也就没有什么意义。因此,必须在SSL之前,通过对称加密,提高所要传输的数据的安全性。同时,不传输这次先行加密的密钥,而只是保存到两端。这样,即使SSL的对称加密密钥被窃取,攻击者也无法截获明文信息。但这又有一个新的问题,即客户端如何部署,才能方便地在客户端实施这一传输前的数据加密工作。方法是,在客户端使用JS持续。JS代码存在于服务端,如果在客户端执行这一代码,就可以保证数据在SSL传输之前,进行自定义的加密。当然,JS代码容易被攻击者直接察看,故只能哦那个在安全需求不高的场合。而对于电子商务、网上交易、网银付款等,还得另找办法。实践证明,较好的选择是使用ACTIVEX或APPLET。可通过客户端控件,在数据输入之后,马上进行加密,然后借助https协议来传输数据信息/这样,即使中间人劫持了数据,解开了SSL加密层。看到的也只是无关紧要的数据,而重要的机密的数据则另置于ACTIVEX的加密保护下,这样就达到了保护机密数据的目的。

参考文献

[1]杨波,朱秋萍.WEB安全技术综述[J].计算机应用研究,2002.10:1-4.

[2]高鹏.构建安全的WEB站点[M].清华大学出版社,1999.

[作者简介]

唐清安,装备学院信息管理中心,高级工程师。主要从事计算机网络管理与应用、教育技术应用与管理等领域的研究。陈广旭,装备学院信息管理中心,讲师。主要从事计算机网络管理与应用、教育技术应用与管理等领域的研究。韩平,装备学院信息管理中心,高级工程师。主要从事计算机网络管理与应用、教育技术应用与管理等领域的研究。

上一篇:小议传统软件开发与极限编程 下一篇:基于ActionScript3.0的多媒体Flash课件的设计...