文档库 最新最全的文档下载
当前位置:文档库 › SSL协议以及相应的安全问题

SSL协议以及相应的安全问题

SSL协议以及在电子商务交易中的安全问题,分析了当前SSL面临的安全威胁,包括密码长度制约,缺少对商家的认证,跨站脚本攻击,中间人攻击和密钥管理间题,并指出了当前安全协议研究的一些热点方向.

2 SSL的安全体系

SSL的主要目标是在两个通信应用程序之间提供私密性和可靠性,它是一个分层协议,从结构1几可分为两层,底层为Record Protocol(记录层协议),高层由4个并列的协议组成;Handshake Protocol(握手协议),AlertProtocol(报警协议),Change Cipher pec Protocol(修改密码参数协议), Application Data Protocol(应用数据协议).SSL.01协议规范定义了31种加密算法的组合,

每一种算法组合包括密钥交换方式,信息加密算法,创建MA(:的报文摘要算法,以保障数据传输的安全,同时用一个密钥的MAC进行消息完整性检查,确保信息在传输过程中没有被纂改.

2.1记录层协议

记录层协议用于交换应用层数据,其工作环境是连接状态.记录协议提供的连接安全性有两点:一是使用了对称加密算法对明文加密,可选的算法有流式加密算法:40位密钥的RC4和128位密钥的RC4,分组加密算法:40位密钥的RC2,40位密钥的DES,56位密钥的DES, 3重DES, IDEA,密钥交换算法:RSA,FoTtezza,Dlffle一Hellman等,以保证连接是保密的;二是在消息传输和认证中使用了加密的MAC,在计算MAC时使用以下报文摘要算法:160位的SHA一1和128位的MD5,以保证连接是可靠的.

2.2握手协议

握手协议在SSL记录层之上,当一个SSL客户机和服务器第一次开始通信时,它们协商一个协议版本:选择密码算法,选择相互认证,并使用公钥密码技术来生成共享密钥.握手协议提供的连接安全性有三点:一是对连接双方采用X.509电子证书标准进行认证,通过使用非

对称密码算法RSA,DSS进行数字签名来实现,二是协商结果是保密的,以保证协商的秘密不被窃听者获得,三是使用数字签名技术保障协商的可靠性,以防止攻击者篡改协商通信消息.在电子商务交易过程中,由于有银行参与,按照SSL协议,客户的购买信息首先发往商家,商家再将信息转发银行,银行验证客户信息的合法性后,通知商家扣款成功,商家再通知客户购买成功,并将商品寄送客户.SSL协议提供的安全信道的安全性体系体现在以下三个方面:

(1)私密性.在握手协议定义了会话密钥后,所有的消息都被加密.

(2)确认性.尽管会话的客户端认证是可选的,但是服务器端始终是被认证的.

(3)可靠性.传送的消息使用MAC进行消息完整性检查.但随着计算机网络攻击技术的发展,电子商务活动的安全体系也面临严峻的挑战.

3 SSL的几个安全问题

3.1加密算法的强度限制

通过互联网传输敏感数据的一个问题是传输过程会经过许多中间环节,这一路由过程是所有互联网传输的基础,而在路由线路上的任何一台计算机都可能完全获得传输的信息,这样就使得别人有可能截获并破译您的秘密信息.美国政府规定,加密技术属于军用品受军火国际贸易法规(JTAR)的制约,其产品出口必须取得出口许可证.因此密钥长度超过512bit的RAS算法不能用于SSL的密钥交换算法,密钥长度超过40位的对称加密算法如RC4, DES等不能用于SSL的数据加密,故美国出口的SSL协议产品的加密算法的安全性不足,不能用于安全性要求高的网络服务.

3.2缺少对商家认证

SSL协议运行的基础是商家对客户信息保密的承诺,SSL有利于商家,而不利于客户.因为它只提供交易中客户与服务器间的双方认证,不能提供客户对商家的认证.客户的信息传到商家,商家阅读后再传送到银行.商家认证客户是必要的,因为商家担心客户购买后不付款或使用过期作废的信用卡.但整个过程中缺少了客户对商家的认证,随着电子商务参与厂商的迅速增加,SSL协议的缺点完全暴露出来了.在基于SSL的交易支付系统中,消费者不得不信任商家能安全保护他们的信用卡信息,并且无法保证商家是该支付卡的特约商户;当然商家在在线交易中也有一定的风险,他们无法确认购买者就是该信用卡的合法拥有者.

3.3脚本攻击

脚本(SCRIP])攻击大都发生在网站动态产生网页的时候,但攻击的目标并不是您的网站,而是浏览网站的客户.如果服务器对客户的输人不进行有效验证,黑客就会输人一些恶意的HTML 代码,当这些HTML代码输人是用于SCRIPT程序时,就可能被利用来进行破坏,如插人一些图片或声音或者弹出十几个小窗口等,干扰用户的正常浏览.动态输人主要有:URL参数,表格元素,COOKIES以及数据请求.恶意的标签和SCRIP ,不单纯是恶作剧,还可以窃取资料甚至摧毁客户的系统.即使使用了防火墙,也不能完全杜绝跨站SCRIPT攻击,因为如果生成恶意SCRIPT代码的设备也使用了SSL,则服务器的SSL不能分辨这些恶意代码.

3.4中间人攻击

SSL使用序列号来保护通讯方免受报文重放攻击,这个序列号被加密后作为数据包的负载,在整个SSL握手中,都有一个唯一的随机数来标记这个SSL握手,这样重放便无机可乘.序列号也可以防止攻击者记录数据包并以不同的次序发送.X.509证书也是SSL的一个组成部分,在SSL握手过程中,服务器向客户发送自己的数字证书.一个X.509证书包括发行者的识别名,主体的识别名,主体的公钥,版本号,序列号,密钥的有效时间窗,选择的算法等.在通常的证书中,没有标志DNS名的域,通常CN域被影射为DNS名,发行者的识别名DNS由,SP,L,O,OU等域组成.发行者ISSUER使用自己的私钥或通过一个公开的CA签发数字证书.当用户的浏览器向SSL服务器连接时,这个证书会在SSL握手期间进行交换,证书中保存的公钥被用于会话的加密,客户拥有这个CA的公钥用于检查证书的合法性.当受到中间人攻击时,攻击者会拦截原始证书,然后伪造一个证书直接与客户通讯.

理论上X.509应该能阻止这种攻击,但事实卜对大多数站点发行的证书,客户并没有用他们的公钥来检查证书的合法性,这种情况使SSL可能遭受中间人攻击.中间人攻击的拦截与攻击主要过程如下:

①调用accept()接受客户程序的连接请求,利用NS Socket::dstaddr( )函数获得连接的目标地址,在防火墙上把连接重新定向,以截获hops的数据包.

②用bind - lo-cal)把套接字绑定在本地端口,使用ssl_ comrect( )函数向服务器发出连接请求,让服务器把攻击者看成是合法用户,和攻击者进行正常的SSL握手,然后执行ssl_ accept()得到服务器的证书.

③使用SSI的动态

证书装配e7数(dynamic certificate assembly函数)dodca()伪造证书,do_ dca)给出一个几乎是空白的证书,再调用OpenSSL的.ingX509()函数修改发行者的subject域的数据(C, L, ST, OU),把证书变成自签发证书,将重新装配的证书显示给用户,使用户无法知道自签发证书是伪造的,但SSL的客户程序可以识别这个证书不是来自用户连接的服务器的CA,客户程序找不到这个CA的公钥,只好提示用户是否接受这个证书,因为用户难以分辨看到的信息是由于所连接的公司使用未知的CA而出现的提示信息还是遭受到了攻击,用户通常都会接受.④用户接受

伪造的证书后,攻击者就可以用SSL _ read()读出连接的明文数据,再用SSL_ write()转发给真正的服务器,或者修改传递的数据,达到攻击的目的.

3.5密钥管理问题

客户机和服务器在连接初期互相发送自己能支持的加密算法时,以明文返回选定的加密算法和主密钥,主密钥前40位不加密,其余位加密,此时可能会被攻击者修改为强度最弱的加密算法,导致以后传输的加密数据包被攻击者破解.另外,所有的会话密钥中都将生成主密钥master 一key,实际的密钥并不是主密钥,而是由它生成的两个密钥client一write一key (server -read 一key)和client - read一key( server一wnte一key),并且当客户机和服务器再次握手时,不再协商加密算法和主密钥,因此握手协议的安全完全依赖于对主密钥的保护,如果主密钥管理不妥被泄露,则通讯传输中的加密数据包极可能被破译.

4结束语

目前电子商务在线购物的支付系统大都是通过在SSL连接上传输信用卡卡号的方式建立的,在线银行和许多证券股票交易系统也是建立在SSL之上.SSI除了具有上述安全隐患外,另一个缺点是显示图形页面时速度缓慢,这是由于SSL加密所有的信息造成的电子商务的发展需要安全性更高的交易支付系统.

目前,安全协议的研究集中在如下几个方面:

一是基于消息流的协议SET(Secure Electronic Transaction,安全电子交易),用来保证网络上银行卡支付交易的安全性,它由信用卡组织MasterCard和Visa以及其他一些订业界的主流厂商设计,已在国际上实验性地使用并经受了考验,目前已获fFTF标准认可,但由于SSL已广泛应用,而SET实现起来非常复杂,商家和银行都需要添置新设备改造系统以实现互操作,从全球来看这种系统改造费用巨大,因此目前大多数网上交易的各方都还没使用SET;

二是致力于发展别的协议来支持SSL和SET所不能支持的支付方式,如微支付,对等支付等;三是改进现有的SSL协议,如集中集体智慧的

OpenSSL正在网上开发,它是全球范围内协作开发的一种强健的,具有商业软件品质的,全功能的开放性源代码的安全系统组件,由全球的志愿社团参与管理,并通过Intemet交流,开发和撰写相关的技术文档.

相关文档