第八章安全套接层协议.ppt

上传人:本田雅阁 文档编号:2583455 上传时间:2019-04-12 格式:PPT 页数:88 大小:274.51KB
返回 下载 相关 举报
第八章安全套接层协议.ppt_第1页
第1页 / 共88页
第八章安全套接层协议.ppt_第2页
第2页 / 共88页
第八章安全套接层协议.ppt_第3页
第3页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第八章安全套接层协议.ppt》由会员分享,可在线阅读,更多相关《第八章安全套接层协议.ppt(88页珍藏版)》请在三一文库上搜索。

1、电子商务安全,主讲:祝凌曦 单位:交通信息管理工程系 联系电话:51688544 电子邮件:,第八章 安全套接层协议SSL,8.1SSL协议概述 8.2SSL记录层协议 8.3SSL握手协议 8.4SSL协议的安全性分析 8.5SSL代理协议Proxy 8.6SET协议与SSL协议的比较,8.1SSL协议概述,8.1.1SSL协议总述 8.1.2SSL的工作原理,8.1.1SSL协议总述,1.SSL协议的作用 2.SSL协议的目标 3.SSL的主要组成协议,1.SSL协议的作用,SSL是提供Internet上的通信隐私性的安全协议。该协议允许客户端服务器应用之间进行防窃听、防消息篡改及消息伪造

2、的安全的通信。 TCPIP是整个Internet数据传输和通信所使用的最基本的控制协议,在它之上还有HTTP(Hypertext Transfer Protocol),LDAP(Lightweight Directory Access Protocol)、IMAP(Internet Messaging Access Protocol)等应用层传输协议。而SSL是位于TCP/IP和各种应用层协议之间的一种数据安全协议。SSL协议可以有效地避免网上信息的偷听、篡改以及消息的伪造。,1.SSL协议的作用,TCP/IP Layer,Secure Sockets Layer,网络通信层,应用层,HTTP

3、,LDAP,IMAP,1.SSL协议的作用,SSL标准的关键是要解决以下几个问题。 (1)客户对服务器的身份确认: SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性(检验服务器的证书和ID的合法性)。对于用户服务器身份的确认与否是非常重要的,因为客户可能向服务器发送自己的信用卡密码。,1.SSL协议的作用,(2)服务器对客户的身份确认: 允许SSL服务器确认客户的身份,SSL协议允许客户服务器的软件通过公钥技术和可信赖的证书,来确认客户的身份(客户的证书clients certificate)。对于服务器客户身份的确认与否是非常重要的,

4、因为网上银行可能要向客户发送机密的金融信息。 (3)建立起服务器和客户之间安全的数据通道: SSL要求客户和服务器之间的所有的发送数据都被发送端加密,所有的接收数据都被接收端解密,这样才能提供一个高水平的安全保证。同时SSL协议会在传输过程中检查数据是否被中途修改。,2SSL协议的目标,按它们的优先级,SSL协议的目标如下。 (1)在通信双方之间利用加密的SSL消息建立安全的连接。 (2)操作性。通信双方的程序是独立的,即一方可以在不知道对方程序编码的情况下利用SSL成功地交换加密参数。 注意:并不是所有的SSL的实例(甚至在同一应用程序内)都可以成功地连接。例如,如果服务支持一特定的硬件令牌

5、(token),而客户端不能访问此令牌,则连接不会成功。,2SSL协议的目标,(3)可扩展性。SSL寻求提供一种框架结构,在此框架结构中,在不对协议进行大的修改的情况下,新的公钥算法和单钥算法可以在必要时被加入。这样做还可以实现两个子目标: 避免产生新协议的需要,因而进一步避免了产生新的不足的可能性。 避免了实现一完整的安全协议的需要。 相对的有效性加密操作,尤其是公钥加密,对CPU来说是一种很耗时的事,因此SSL协议引入一可选的对话缓存(CACHE)来减少从头开始的连接的数目。同时,它还注意减少网络的活动。,3SSL的主要组成协议,SSL协议主要包含握手协议(handshake protoc

6、ol)和记录协议(record protocol),记录协议确定数据安全传输的模式,握手协议用于客户和服务器建立起安全连接之前交换一系列的安全信息,这些安全信息主要包括以下内容: (1)客户确定服务器的身份。 (2)允许客户和服务器选择双方共同支持的一系列加密算法。 (3)服务器确定客户的身份(可选)。 (4)通过公钥密码技术产生双方共同的密钥。 (5)建立SSL的加密安全通道。,8.1.2SSL的工作原理,SSL的工作原理如下所述。当一个使用者在Web上用Netscape浏览器漫游时,浏览器利用HTTP协议与Web服务器沟通。例如,浏览器发出一个HTTP GET命令给服务器,想下载一个首页的

7、HTML档案,而服务器会以传送档案的内容给浏览器来响应。GET这个命令的文字和HTML档案的文字会通过会话层(socket)的连接来传送。Socket使两台远程的计算机能利用Internet来通话。通过SSL,资料在传送出去之前就自动被加密了,它会在接收端被解密。对没有解密钥的人来说,其中的资料是无法阅读的。,8.1.2SSL的工作原理,SSL采用TCP作为传输协议提供数据的可靠传送和接收。SSL工作在Socket层上,因此独立于更高层应用,可为更高层协议,如Telnet、FTP和HTTP提供安全业务。 SSL提供的安全业务和TCP层一样,采用了公开密钥和私人密钥两种加密体制对Web服务器和客

8、户机(选项)的通信提供保密性、数据完整性和认证。 在建立连接过程中采用公开密钥,在会话过程中使用私人密钥。加密的类型和强度则在两端之间建立连接的过程中判断决定。在所有情况下,服务器通过以下方法向客户机证实自身:给出包含公开密钥的、可验证的证明;演示它能对用此公开密钥加密的报文进行解密。,8.1.2SSL的工作原理,为了支持客户机,每个客户机要拥有一对密钥,这要求在Internet上通过Netscape分配。由于Internet中的服务器数远少于客户机数,因此能否处理签字及密钥管理的业务量很重要,且与客户联系比给商家以同样保证更重要,8.1.2SSL的工作原理,SSL协议提供的服务可以归纳为如下

9、: 1用户和服务器的合法性认证 使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都有各自的识别号,由公开密钥编排。为了验证用户,安全套接层协议要求在握手交换数据中做数字认证,以此来确保用户的合法性。,8.1.2SSL的工作原理,2加密数据以隐藏被传送的数据 安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。具体来说,就是客户机与服务器交换数据之前,先交换SSL初始握手信息。在SSL握手信息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别。这样就可以防止非法用户破译。 3维护数据的完整性 安全套接层协议采用Hash函数和机密共享的方法,提供

10、完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中都能完整准确无误地到达目的地。,8.2SSL记录层协议,SSL记录层协议限定了所有发送和接收数据的打包,它提供了通信、身份认证功能,它是一个在面向连接的可靠传输协议,如TCPIP上提供安全保护。 在SSL中,所有数据被封装在记录中。一个记录由两部分组成:记录头和非零长度的数据。记录头可以是2字节或3字节(当有填充数据时使用)。SSL握手层协议的报文要求必须放在一个SSL记录层的记录里,但应用层协议的报文允许占用多个SSL记录来传送。,8.2SSL记录层协议,记录头类型,记录长度,MAC,数据,记

11、录头类型,Escape位,填充长度,记录长度,MAC,数据,填充数据,2字节头记录,3字节头记录,8.2.1SSL记录头格式,SSL的记录头可以是两个或三个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度、记录数据中是否有填充数据。其中填充数据是在使用块加密(block encryption)算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有填充数据,记录头的长度为两个字节,记录数据的最大长度为32767个字节;最高位为0时,含有填充数据,记录头的长度为三个字节,记录数据的最大长度为16383个字节。,8.2.2SSL记录数据格式,SSL记录数据部分有三个分

12、量:MAC-DATA、ACTUAL-DATA、PADDING-DATA。 MAC数据用于数据完整性检查。计算MAC所用的散列函数由握手协议中的CIPHER-CHOICE消息确定。若使用MD2和MD5算法,则MAC数据长度是16个字节。MAC的计算公式:MAC数据:Hash密钥,实际数据,填充数据,序号。,8.2.2SSL记录数据格式,当会话的客户端发送数据时,密钥是客户的写密钥(服务器用读密钥来验证MAC数据);而当会话的客户端接收数据时,密钥是客户的读密钥(服务器用写密钥来产生MAC数据)。序号是一个可以被发送和接收双方递增的计数器。每个通信方向都会建立一对计数器,分别被发送者和接收者拥有。

13、计数器有32位,计数值循环使用,每发送一个记录,计数值递增一次,序号的初始值为0。 ACTUAL-DATA是被传送的应用数据,PADDING-DATA是当采用分组码时所需要的填充数据,在明文传送下只有第二项。,8.3SSL握手协议,SSL协议主要由握手协议和记录层协议所组成,后者用于SSL连接协商安全参数。 8.3.1握手阶段 8.3.2握手报文,8.3.1握手阶段,1接通阶段 2密钥交换阶段 3会话密钥生成阶段 4服务器证实阶段 5客户机认证阶段 6结束阶段,1接通阶段,该阶段对保密和认证算法达成协议,并发现以前会话中已有的任何ID。从客户机向服务器发送CLIENT-HELLO消息,其中包括

14、客户机可以处理的加密方案类型、以前会话中断保留下来的会话ID以及向服务器提出询问用的用户随机数。 服务器向客户机发出SERVER-HELLO,如果服务器识别出以前的会话ID,则会话要重新开始;如果是一次新的会话,则服务器向客户机送一个X.509证书,证书包括服务器的公钥,并用证书发行机构(CA)的秘密密钥签署。客户机以CA的公钥解密出服务器的公钥,然后用它解读服务器的证书。此阶段交换的消息为CLIENT-HELLO和SERVER-HELLO。,2密钥交换阶段,在该阶段,客户机和服务器之间交换建立主密钥。SSL V3支持三种密钥交换,即RSA、 Diffie-Hellman和Fortezza-K

15、EA,利用服务器的公开密钥来实现。此阶段交换的消息为CLIENT-MASTER-KEY和CLIENT-DH-KEY。,3会话密钥生成阶段,该阶段客户机送出CLIENTSESSIONKEY,并和服务器建立一个或两个会话密钥。此阶段交换的消息为CLIENT-SESSION-KEY。会话密钥是从客户机选择的数据中推导出来的,该数据用服务器的公开密钥加密。 在每个SSL会话(其中客户机和服务器都被证实身份)中,要求服务器完成一次使用服务器专用密钥的操作和一次使用客户机公开密钥的操作。由于实际上目前所有的系统都使用RSA加密算法,每次操作都需要完成模数算法下的指数运算,通常,选择的公开指数为小数以减少要

16、做的工作。因此,一次SSL会话只要一次硬的加密运算。,4服务器证实阶段,仅当采用RSA密钥交换算法时才执行此步骤,它证实主密钥和相继由服务器得到的会话密钥。一旦收到了主密钥和相继来自客户机的会话密钥,服务器就用其秘密密钥解密出密钥,然后服务器向客户机送出认可信息,以响应客户机在CLIENT-HELLO消息中送给它的随机询问。客户机解密对随机询问的响应,如果都符合。则在客户机和服务器之间都建立了可信赖的会话,此阶段交换的消息为SERVER-VERIFY。,5客户机认证阶段,若要求客户机认证,则服务器要求客户机的证书,客户机以CLIENT-CERTIFICATE进行响应,早期版本的SSL只支持X.

17、509证书,此阶段交换的消息为REQUEST-CERTIFICATE和CLIENTCERTIFICATE。,6结束阶段,此阶段客户机服务器交换各自的结束消息,客户机通过送会话ID作为加密文本表示完成了认证,服务器送出消息SERVER-FINISHED,其中包括以主密钥加密会话ID,这样在客户机与服务器之间就建立了可信赖的会话。此阶段交换的消息为CLIENT-FINISHED和SERVER-FINISHED。,简要说明,Paul黄裳:你好,你是黄裳么? 黄裳 Paul : Paul ,我是黄裳 信息段Paul ,我是黄裳 黄裳的私钥 当你使用这个协议,黄裳知道他发送给乙的消息,他不介意在上面签名

18、。他先发送不加密的信息,“ Paul ,我是黄裳。“,然后发送信息段加密的消息版本。 Paul可以非常方便地校验黄裳就是黄裳,同时,黄裳还没有在他不想要的信息上签名。,简要说明,那么,乙怎样以可信的方式提交他的公钥呢?看看认证协议如下所示: Paul黄裳:你好 黄裳 Paul :嗨,我是黄裳,黄裳的公钥 Paul黄裳:prove it 黄裳 Paul : Paul ,我是黄裳信息段Paul ,我是黄裳 黄裳的私钥,简要说明,在这个协议下,任何人都能够成为“乙“。所有你所要的只是公钥和私钥。你发送给甲说你就是乙,这样你的公钥就代替了乙的密码。然后,你发送用你的私钥加密的消息,证明你的身份。甲却不

19、能发觉你并不是乙。 为了解决这个问题,标准组织已经发明了证书。一个证书有以下的内容: * 证书的发行者姓名 * 发行证书的组织 * 标题的公钥 * 邮戳 证书使用发行者的私钥加密。每一个人都知道证书发行者的公钥(这样,每个证书的发行者拥有一个证书)。证书是一个把公钥与姓名绑定的协议。通过使用证书技术,每一个人都可以检查乙的证书,判断是否被假冒。假设乙控制好他的私钥,并且他确实是得到证书的乙,就万事大吉了。,简要说明,这些是修订后的协议: Paul黄裳:你好 黄裳 Paul :嗨,我是黄裳,黄裳的校验 Paul黄裳:prove it 乙 Paul : Paul ,我是黄裳信息段Paul , 我是

20、黄裳 黄裳的私钥 现在当甲收到黄裳的第一个消息,他能检查证书,签名(如上所述,使用信息段和公钥解密),然后检查标题(黄裳的姓名),确定是黄裳。他就能相信公钥就是黄裳的公钥和要求黄裳证明自己的身份。黄裳通过上面的过程,制作一个信息段,用一个签名版本答复甲。 Paul可以校验黄裳的信息段通过使用从证书上得到的公钥并检查结果。,简要说明,如果一个黑客,叫白开心 Paul白开心:你好 白开心不能建立一个令Paul相信的从黄裳的消息 交换密码(secret) 一旦Paul已经验证黄裳后,他可以发送给黄裳一个只有黄裳可以解密、阅读的消息: Paul黄裳:secret黄裳的公钥,简要说明,唯一找到密码的方法

21、只有使用黄裳的私钥解码上述的信息。交换密码是另一个有效使用密码加密的方法。即使在Paul和黄裳之间的通讯被侦听,只有黄裳才能得到密码。 使用密码作为另一个secret-key增强了网络的安全性,但是这次这是一个对称的加密算法(例如DES、RC4、IDE甲)。因为Paul在发送给黄裳之前产生了密码,所以Paul知道密码。黄裳知道密码因为黄裳有私钥,能够解密Paul的信息。但他们都知道密码,他们都能够初始化一个对称密码算法,而且开始发送加密后的信息。这儿是修定后的协议:,简要说明,Paul黄裳:你好 黄裳 Paul :嗨,我是乙,乙的校验 Paul黄裳:prove it 黄裳 Paul : Pau

22、l ,我是黄裳信息段Paul ,我是黄裳 黄裳的私钥 Paul黄裳:ok黄裳,here is a secret secret黄裳的公钥 黄裳 Paul :some messagesecret-key,简要说明,黑客窃听 那么如果有一个恶意的黑客白开心在Paul和黄裳中间,虽然不能发现Paul和黄裳已经交换的密码,但能干扰他们的交谈。他可以放过大部分信息,选择破坏一定的信息(这是非常简单的,因为他知道Paul和黄裳通话采用的协议)。,简要说明,Paul白开心:你好 白开心黄裳:你好 黄裳白开心:嗨,我是黄裳,黄裳的校验 白开心 Paul :嗨,我是黄裳,黄裳的校验 Paul白开心:prove i

23、t 白开心黄裳:prove it 黄裳白开心: Paul ,我是黄裳信息段Paul ,我是黄裳 黄裳的私钥 白开心 Paul : Paul ,我是黄裳信息段Paul ,我是黄裳 黄裳的私钥 Paul白开心:ok 黄裳,here is a secret secret黄裳的公钥 白开心黄裳:ok 黄裳,here is a secret secret黄裳的公钥 黄裳白开心:some messagesecret-key 白开心 Paul :Garblesome messagesecret-key ,简要说明,白开心忽略一些数据不修改,直到Paul和黄裳交换密码。然后白开心干扰黄裳给Paul的信息。在这

24、一点上, Paul相信黄裳,所以他可能相信已经被干扰的消息并且尽力解密。 需要注意的是,白开心不知道密码,他所能做的就是毁坏使用秘钥加密后的数据。基于协议,白开心可能不能产生一个有效的消息。但下一次呢?,简要说明,为了阻止这种破坏,Paul和黄裳在他们的协议中产生一个校验码消息(message authentication code)。一个校验码消息(MAC)是一部分由密码和一些传输消息产生的数据。信息段算法描述的上述特性正是它们抵御白开心的功能: MAC= Digestsome message,secret 因为白开心不知道密码,他不能得出正确的值。即使白开心随机干扰消息,只要数据量大,他成

25、功的机会微乎其微。例如,使用MD5(一个RSA发明的好的加密算法), Paul和黄裳能够发送128位MAC值和他们的消息。白开心猜测正确的MAC的几率将近1/18,446,744,073,709,551,616约等于零。,简要说明,Paul黄裳:你好 黄裳 Paul :嗨,我是乙,乙的校验 Paul黄裳:prove it 黄裳 Paul :嗨,我是黄裳,黄裳的校验 Paul ,我是黄裳 信息段Paul ,我是黄裳 黄裳的私钥 Paul黄裳: ok 黄裳,here is a secret secret黄裳的公钥 some message,MACsecret-key,简要说明,现在白开心已经无技可

26、施了。他干扰了得到的所有消息,但MAC计算机能够发现他。Paul和黄裳能够发现伪造的MAC值并且停止交谈。白开心不再能与黄裳通讯。,8.3.2握手报文,握手层的报文由两部分组成。 (1)一个字节的报文类型代码。 (2)数据,根据报文类型不同,其结构不同。 所有握手层的报文以及以后的数据报文,都是通过记录层传输的。表给出了不需要新密钥、需要新密钥和需要客户认证三种典型情况下的握手协议实例。 其中需要新密钥、不需要客户认证的握手过程解释如下:,8.3.2握手报文,CLIENT-HELLO报文:向服务器发送测试数据和客户所能支持的多个加密算法列表。 SERVER-HELLO报文:返回一个连接标识、一

27、个服务器证明、一个修改后的客户和服务器都能支持的加密算法列表。,8.3.2握手报文,CLIENTMASTERKEY报文; 以明文返回选定的加密算法和主密钥,主密钥前40位不加密,其余位加密(该规定是因为美国对加密软件的出口限制)。 实际的密钥并不是MASTER-KEY,而是由MASTER-KEY生成的两个密钥CLINET-WRITE-KEY(SERVER-READ-KEY)、CLINET-READ-KEY(SERVER-WRITE-KEY)解密。同样,服务器用SERVER-WRITE-KEY加密发送报文,客户机利用CLINET-READ-KEY解密。,8.3.2握手报文,CLINET-FINI

28、SH报文:是CLINET-WRITE-KEY加密发送之前服务器送来的CONNECTION-ID SERVER-VERIFY报文:是SERVER-WRITE-KEY加密发送之前客户机送来的测试数据,使客户验证服务器。 SERVER-FINISH报文:包含一个用SERVER-WRITE-KEY加密的会话标识号,以后当同一个客户机和服务器再次握手时,不必再协商加密算法和主密钥。,8.4SSL协议的安全性分析,8.4.1SSL协议采用的加密算法和认证算法 8.4.2SSL安全优势 8.4.3SSL协议存在的问题,8.4.1SSL协议采用的加密算法和认证算法,1加密算法和会话密钥 SSL协议V2和V3支

29、持的加密算法包括RC4、RC2、IDEA和DES,而加密算法所用的密钥由消息散列函数MD5产生。RC4、RC2是由RSA定义的,其中RC2适用于块加密,RC4适用于流加密: 2认证算法 认证算法采用X.509电子证书标准,是通过RSA算法进行数字签名来实现的。,8.4.1SSL协议采用的加密算法和认证算法,(1)服务器的认证 在上述的两对密钥中,服务器方的写密钥和客户方的读密钥、客户方的写密钥和服务方的读密钥分别是一对私有、公有密钥。对服务器进行认证时,只有用正确的服务器方写密钥加密,CLIENT-HELLO消息形成的数字签名才能被客户正确地解密,从而验证服务器的身份。 若通信双方不需要新的密

30、钥,则它们各自所拥有的密钥已经符合上述条件。若通信双方需要新的密钥,首先服务器方在SERVER-HELLO消息中的服务器证书中提供了服务器的公有密钥。服务器用其私有密钥才能正确地解密由客户方使用服务器的公有密钥加密的MASTER-KEY,从而获得服务器方的读密钥和写密钥。,8.4.1SSL协议采用的加密算法和认证算法,(2)客户的认证 同上,只有用正确的客户方写密钥加密的内容才能被服务器方用其读密钥正确地解开。当客户收到服务器方发出的REQUEST-CERTIFICATE消息时,客户首先使用MD5消息散列函数获得服务器方信息的摘要,服务器方的信息包括:KEYMATERIAL-0、KEY-MAT

31、ERIAL-l、KEY-MATERIAL-2、CERTIFICATE-CHALLENAGE-DATA(来自于REQUEST-CERTIFICATE消息)、服务器所赋予的证书(来自于SERVER-HELLO)消息。 其中KEY-MATERIAL-1、KEY-MATERIAL-2是可选的,与具体的加密算法有关。然后客户使用自己的写密钥加密摘要形成数字签名,从而被服务器认证。,8.4.2SSL安全优势,1.监听和中间人式攻击 2.流量数据分析式攻击 3.截取再拼接式攻击 4.报文重发式攻击,8.4.2SSL安全优势,1监听和中间人式攻击 SSL使用一个经过通信双方协商确定的加密算法和密钥,对不同的安

32、全级别应用都可找到不同的加密算法,从而用于数据加密。它的密钥管理处理比较好,在每次连接时通过产生一个Hash函数生成一个临时使用的会话密钥,除了不同连接使用不同密钥外,在一次连接的两个传输方向上也使用各自的密钥。尽管SSL协议为监听者提供了很多明文,但由于采用RSA交换密钥具有较好的密钥保护性能,以及频繁更换密钥的特点,因此对监听和中间人式攻击而言,具有较高的防范性。,8.4.2SSL安全优势,2流量数据分析式攻击 流量数据分析式攻击的核心是通过检查数据包的未加密字段或未加保护的数据包属性,试图进行攻击。在一般情况下该攻击是无害的,SSL无法阻止这种攻击。 3截取再拼接式攻击 对需要较强的连接

33、加密,需要考虑这种安全性。SSL V3.0基本上可阻止这种攻击。 4报文重发式攻击 报文重发式攻击比较容易阻止,SSL通过在MAC数据中包含“系列号”来防止该攻击。,8.4.3SSL协议存在的问题,1.密钥管理问题 2.加密强度问题 3.数字签名问题 4.SSL的加密漏洞,1.密钥管理问题,设计一个安全秘密的密钥交换协议是很复杂的,因此SSL的握手协议也存在一些密钥管理问题。SSL的问题表现在。 (1)客户机和服务器在互相发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能。 (2)SSL 3.0为了兼容以前的版本可能降低安全性。 (3)所有的会话密钥中都将生成MASTER-KE

34、Y,握手协议的安全完全依赖于对MASTER-KEY的保护,因此在通信中要尽可能少地使用MASTER-KEY。,2.加密强度问题,Netscape依照美国内政部的规定,在它的国际版的浏览器及服务器上使用40位的密钥。以SSL所使用的RC4演绎法所命名的RC4法规对多于40位长的加密密钥产品的出口加以限制。这项规定使Netscape的128位加密密钥在美国之外的地方变成不合法。最近一个著名的例子是一个法国的研究生和两个美国柏克莱大学的研究生破译了一个SSL的密钥,才使人们开始怀疑以SSL为基础的系统安全性。,2.加密强度问题,Microsoft公司想利用一种称为私人通信技术 (Private Co

35、mmunication Technology,PCT)的SSLsuperset协议来改进SSL的缺点。PCT会衍生出第二个专门为身份验证用的密钥。这个身份验证并不属于RC4规定的管辖范围。PCT加入比目前随机数产生器更安全的产生器,因为它也是SSL安全链中的一个弱环节。这个随机数产生器提供了产生加密密钥的种子数目(Seed Number)。,3数字签名问题,SSL协议设有数字签名功能,即没有抗否认服务。若要增加数字签名功能,需要在协议中打补丁。这样做,使用基于加密密钥的同时又用于数字签名,这在安全上存在漏洞。后来的PKI体系完善了这种措施,即双密钥机制,将加密和数字签名密钥两者分开,成为双证书

36、机制。这是PKI完整的安全服务体系。,4.SSL的加密漏洞,虽然一个网站可能使用了SSL安全技术,但这并不是说在该网站中正在输入和以后输入的数据也是安全的。所有人都应该意识到SSL提供的仅仅是电子商务整体安全中的一小部份解决方案。SSL在网站上的使用可能会造成管理员对其站点安全性的某些错觉。使用了SSL的网站所可能受到的攻击和其它服务器并无任何区别,同样应该留意各方面的安全性。简言之,加密和数字证书,SSL的主要组成,从来都无法保护服务器它们仅仅可以保护该服务器所收发的数据。SSL常见安全问题下面三种: 1、攻击证书 2、窃取证书 3、安全盲点,1、攻击证书,类似Verisign之类的公共CA

37、机构并不总是可靠的,系统管理员经常犯的错误是过于信任Verisign等的公共CA机构。例如,如果Verisign发放一个证书说我是“某某某”,系统管理员很可能就会相信“我是某某某”。但是,对于用户的证书,公共CA机构可能不象对网站数字证书那样重视和关心其准确性。例如,Verisign发放了一个“keyman“组织的证书,而我是其中一员“JACK”。当一个网站要求认证用户身份时,我们提交了“JACK”的证书。你可能会对其返回的结果大吃一惊的。更为严重的是,由于微软公司的IIS服务器提供了“客户端证书映射”(Client Certificate Mapping)功能,用于将客户端提交证书中的名字映

38、射到NT系统的用户帐号,在这种情况下我们就能够获得该主机的系统管理员特权!,1、攻击证书,如果黑客不能利用上面的非法的证书突破服务器,他们可以尝试暴力攻击(brute-force attack)。虽然暴力攻击证书比暴力攻击口令更为困难,但仍然是一种攻击方法。要暴力攻击客户端认证,黑客编辑一个可能的用户名字列表,然后为每一个名字向CA机构申请证书。每一个证书都用于尝试获取访问权限。用户名的选择越好,其中一个证书被认可的可能性就越高。暴力攻击证书的方便之处在于它仅需要猜测一个有效的用户名,而不是猜测用户名和口令。,2、窃取证书,除上面的方法外,黑客还可能窃取有效的证书及相应的私有密钥。最简单的方法

39、是利用特洛伊木马。这种攻击几乎可使客户端证书形同虚设。它攻击的是证书的一个根本性弱点:私有密钥整个安全系统的核心经常保存在不安全的地方。对付这些攻击的唯一有效方法或许是将证书保存到智能卡或令牌之类的设备中。,3、安全盲点,系统管理员没办法使用现有的安全漏洞扫描(vulnerability scanners)或网络入侵侦测系统(intrusion detection systems,IDS),来审查或监控网络上的SSL交易。 网络入侵侦测系统是通过监测网络传输来找寻没有经过认证的活动。任何符合已知的攻击模式或者并未经过政策上授权的网络活动都被标起来以供系统管理者检视。而要让IDS能够发生作用,I

40、DS必须能够检视所有的网络流量信息,但是SSL的加密技术却使得通过http 传输的信息无法让IDS辨认。 再者,虽然我们可以用最新的安全扫描软件审查一般的网页服务器来寻找已知的安全盲点,这种扫描软件并不会检查经过SSL保护的服务器。受到SSL保护的网页服务器的确拥有与一般服务器同样的安全盲点,可是也许是因为建立SSL连结所需要的时间以及困难度,安全漏洞扫描软件并不会审查受到SSL 保护的网页服务器。没有网络监测系统再加上没有安全漏洞审查,使得最重要的服务器反而成为受到最少防护的服务器。,8.5SSL代理协议Proxy,为了增强SSL的安全性,目前在国内电子商务或网上银行的B2B应用模式普遍采用

41、了SSL代理协议Proxy。这类代理协议产品繁多功能各异。在此,我们重点介绍加拿大Entrust公司的DirectProxy软件,它功能齐全、技术先进。 对于TCPIP协议的研制者们来说,由于当初的安全保密技术还没有发展到现在的程度,受当时的技术条件所限,他们没能在IP层与TCP层之间设置网络安全加密机制。同时,又受当初对技术发展的前瞻性认识的限制,没有预料到会由于TCPIP的出现,造就了Internet而Internet的发明专家们绝对没有料到今天会在Internet上做电子商务。,8.5SSL代理协议Proxy,因此,就导致了在传统的浏览器与服务器之间的信息传递,没能提供高强度的加密机制,

42、其安全性满足不了企业级和电子商务对数据处理的安全性要求。现归纳起来有以下几个方面。 (1)一般的浏览器和服务器的Web证书与SSL证书及其所支持的SSL协议,由于美国政府的出口限制,对一些国家只提供40位对称加密强度。用现在的技术手段对只有40位密钥的DES算法,其破译时间只需几秒,交易风险太大,不能满足网上银行、网上购物的B2B应用模式的需求。,8.5SSL代理协议Proxy,(2)Web证书和SSL证书及其SSL协议,没有提供数字签名的功能,因此,不具备抗否认性。 (3)不能在线进行CRL自动查询。这种透明的黑名单自动查询,对B toB电子商务应用是不可缺的。能保证网上交易的可靠性及安全性

43、。 (4)不具备完善的证书管理功能,如证书有效期及密钥的管理等功能。,8.6SET协议与SSL协议的比较,支付系统是电子商务的关键,但支持支付系统的关健技术的未来走向尚未确定。安全套接层协议(SSL)和安全电子交易协议(SET)是两种重要的通信协议,每一种都提供了通过Internet进行支付的手段。但是,两者之中谁将领导未来潮流呢? SSL提供了两台机器间的安全连接。支付系统经常通过在SSL连接上传输信用卡卡号的方式来构建,在线银行和其他金融系统也常常构建在SSL之上。虽然基于SSL的信用卡支付方式促进了电子商务的发展,但如果想要电子商务得以更成功地广泛开展的话,必须采用更先进的支付系统。SS

44、L被广泛应用的原因在于它被大部分Web浏览器和Web服务器所内置,比较容易投入应用。 事实上,SET和SSL除了都采用RSA公钥算法以外二者在其他技术方面没有任何相似之处,而RSA在二者中也被用来实现不同的安全目标。,8.6SET协议与SSL协议的比较,SET是一种基于信息流的协议,它主要由MasterCard和Visa以及其他一些业界主流厂商设计发布,用来保证公共网络上银行卡支付交易的安全性。SET已经在国际上被大量实验性地使用并经受住了考验,但大多数在Internet上采购的消费者并没有真正使用SET。 SET是一个非常复杂的协议,因为它详尽而准确地反映了卡交易各方之间存在的各种关系。SE

45、T还定义了加密信息的格式和完成一笔卡支付交易过程中各方传输信息的规则。事实上,SET远远不止是一个技术方面的协议,它还说明了每一方所持有的数字证书的合法含义和希望得到数字证书以及响应信息的各方应有的动作,以及与一笔交易紧密相关的责任分担。,8.6SET协议与SSL协议的比较,6.8.1SET与SSL的特点 6.8.2SSL和SET性能及费用的比较,6.8.1SET与SSL的特点,我们知道SET是一个多方的消息报文协议,它定义了银行、商家、持卡人之间必须符合的报文规范。与此同时,SSL只是简单地在两方之间建立了一条安全连接。SSL是面向连接的,SET允许各方之间的报文交换不是实时的。SET报文能

46、够在银行内部网络或者其他网络上传输,而SSL之上的支付系统只能与Web浏览器捆绑在一起。,6.8.1SET与SSL的特点,(1)认证机制方面:SET的安全需求较高,因此所有参与SET交易的成员(持卡人、商家、付款转接站等)都必须先申请数字证书来识别身份,而在SSL中只有商店端的服务器需要认证,客户端认证则是有选择性的。 (2)对消费者而言,SET保证了商家的合法性,并且用户的信用卡号不会被窃取。SET替消费者保守了更多的秘密,使其在线购物更加轻松。在SSL协议中则缺少对商家的认证。,6.8.1SET与SSL的特点,(3)安全性:一般公认SET的安全性较SSL高,主要原因是在整个交易过程中,包括

47、持卡人到商店、商店到付款转接站再到银行网络,都受到严密的保护;而SSL的安全范围只限于持卡人到商店端的信息交流。 (4)SET对于参与交易的各方定义了互操作接口一个系统可以由不同厂商的产品构筑。 (5)采用比率:由于SET的设置成本较SSL高许多,SET的操作对用户来说不太方便,且进入国内市场的时间尚短,因此目前是SSL的普及率高,约占80。但是由于网上交易的安全性需求不断增强,SET的市场占有率会有较大幅度的提高。,6.8.1SET与SSL的特点,SET协议的缺陷在于要求在银行网络、商家服务器、顾客的PC上安装相应的软件。这给顾客、商家和银行增加了许多附加费用,成了SET被广泛接受的障碍。另

48、外,SET还要求必须向各方发放证书,这也成为障碍之一:所有这些使得使用SET要比使用SSL昂贵得多。 SET的一个优点在于:它可以用在系统的一部分或者全部。例如,一些商家正在考虑在与银行连接中使用SET,而与顾客连接时仍然使用SSL。这种方案既回避了在顾客机器上安装电子钱包软件,同时又获得了SET提供的很多优点。绝大多数SET软件提供商在其产品中都提供灵活构筑系统的手段。,6.8.1SET与SSL的特点,在SET中,交易凭证中有客户的签名,银行就会有客户曾经购物的证据。提供这种能力的特性在密码学中称之为认证。它所提供的可靠性的前提是客户必须保证私人签字密钥的安全。如果客户的密钥被某个恶意的软件(可能是一个病毒或一段applet)偷走的话,麻烦可就大了。 因为现在普通的操作系统是不可靠和不安全的,所以往往被攻击,尤其是当这台机器连接到Internet的时候。因此,只有当私人签字密钥不放在不可信的PC机上时,认证才真正具有可靠性。智能卡提供了一种简便的方法,可以用它来存储和解释私人签名密钥和证书,并且非常容易携带。如果银行有远见的话,它们以后发行的信用卡将内嵌芯片。,6.8.1SET与SSL的特点,SET为支持智能卡做了很多特别规定。但我们看到,智能卡在欧洲得到了较多的应用,而在北美及亚洲等其他地区则

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1