安全套接层协议.ppt
《安全套接层协议.ppt》由会员分享,可在线阅读,更多相关《安全套接层协议.ppt(88页珍藏版)》请在三一办公上搜索。
1、电子商务安全,主讲:祝凌曦单位:交通信息管理工程系联系电话:51688544电子邮件:,第八章安全套接层协议SSL,8.1SSL协议概述 8.2SSL记录层协议 8.3SSL握手协议 8.4SSL协议的安全性分析 8.5SSL代理协议Proxy8.6SET协议与SSL协议的比较,8.1SSL协议概述,协议总述 的工作原理,协议总述,1.SSL协议的作用2.SSL协议的目标3.SSL的主要组成协议,1.SSL协议的作用,SSL是提供Internet上的通信隐私性的安全协议。该协议允许客户端服务器应用之间进行防窃听、防消息篡改及消息伪造的安全的通信。TCPIP是整个Internet数据传输和通信所
2、使用的最基本的控制协议,在它之上还有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,LDAP,IMAP,1.SSL协议的作用,SSL标准的关键是要
3、解决以下几个问题。(1)客户对服务器的身份确认:SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性(检验服务器的证书和ID的合法性)。对于用户服务器身份的确认与否是非常重要的,因为客户可能向服务器发送自己的信用卡密码。,1.SSL协议的作用,(2)服务器对客户的身份确认:允许SSL服务器确认客户的身份,SSL协议允许客户服务器的软件通过公钥技术和可信赖的证书,来确认客户的身份(客户的证书clients certificate)。对于服务器客户身份的确认与否是非常重要的,因为网上银行可能要向客户发送机密的金融信息。(3)建立起服务器和客户之
4、间安全的数据通道:SSL要求客户和服务器之间的所有的发送数据都被发送端加密,所有的接收数据都被接收端解密,这样才能提供一个高水平的安全保证。同时SSL协议会在传输过程中检查数据是否被中途修改。,2SSL协议的目标,按它们的优先级,SSL协议的目标如下。(1)在通信双方之间利用加密的SSL消息建立安全的连接。(2)操作性。通信双方的程序是独立的,即一方可以在不知道对方程序编码的情况下利用SSL成功地交换加密参数。注意:并不是所有的SSL的实例(甚至在同一应用程序内)都可以成功地连接。例如,如果服务支持一特定的硬件令牌(token),而客户端不能访问此令牌,则连接不会成功。,2SSL协议的目标,(
5、3)可扩展性。SSL寻求提供一种框架结构,在此框架结构中,在不对协议进行大的修改的情况下,新的公钥算法和单钥算法可以在必要时被加入。这样做还可以实现两个子目标:避免产生新协议的需要,因而进一步避免了产生新的不足的可能性。避免了实现一完整的安全协议的需要。相对的有效性加密操作,尤其是公钥加密,对CPU来说是一种很耗时的事,因此SSL协议引入一可选的对话缓存(CACHE)来减少从头开始的连接的数目。同时,它还注意减少网络的活动。,3SSL的主要组成协议,SSL协议主要包含握手协议(handshake protocol)和记录协议(record protocol),记录协议确定数据安全传输的模式,握
6、手协议用于客户和服务器建立起安全连接之前交换一系列的安全信息,这些安全信息主要包括以下内容:(1)客户确定服务器的身份。(2)允许客户和服务器选择双方共同支持的一系列加密算法。(3)服务器确定客户的身份(可选)。(4)通过公钥密码技术产生双方共同的密钥。(5)建立SSL的加密安全通道。,SSL的工作原理,SSL的工作原理如下所述。当一个使用者在Web上用Netscape浏览器漫游时,浏览器利用HTTP协议与Web服务器沟通。例如,浏览器发出一个HTTP GET命令给服务器,想下载一个首页的HTML档案,而服务器会以传送档案的内容给浏览器来响应。GET这个命令的文字和HTML档案的文字会通过会话
7、层(socket)的连接来传送。Socket使两台远程的计算机能利用Internet来通话。通过SSL,资料在传送出去之前就自动被加密了,它会在接收端被解密。对没有解密钥的人来说,其中的资料是无法阅读的。,SSL的工作原理,SSL采用TCP作为传输协议提供数据的可靠传送和接收。SSL工作在Socket层上,因此独立于更高层应用,可为更高层协议,如Telnet、FTP和HTTP提供安全业务。SSL提供的安全业务和TCP层一样,采用了公开密钥和私人密钥两种加密体制对Web服务器和客户机(选项)的通信提供保密性、数据完整性和认证。在建立连接过程中采用公开密钥,在会话过程中使用私人密钥。加密的类型和强
8、度则在两端之间建立连接的过程中判断决定。在所有情况下,服务器通过以下方法向客户机证实自身:给出包含公开密钥的、可验证的证明;演示它能对用此公开密钥加密的报文进行解密。,SSL的工作原理,为了支持客户机,每个客户机要拥有一对密钥,这要求在Internet上通过Netscape分配。由于Internet中的服务器数远少于客户机数,因此能否处理签字及密钥管理的业务量很重要,且与客户联系比给商家以同样保证更重要,SSL的工作原理,SSL协议提供的服务可以归纳为如下:1用户和服务器的合法性认证使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都有各自的识别号,由公开密钥编排。为
9、了验证用户,安全套接层协议要求在握手交换数据中做数字认证,以此来确保用户的合法性。,SSL的工作原理,2加密数据以隐藏被传送的数据安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。具体来说,就是客户机与服务器交换数据之前,先交换SSL初始握手信息。在SSL握手信息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别。这样就可以防止非法用户破译。3维护数据的完整性安全套接层协议采用Hash函数和机密共享的方法,提供完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中都能完整准确无误地到达目的地。,8.2SSL记录层协议,SS
10、L记录层协议限定了所有发送和接收数据的打包,它提供了通信、身份认证功能,它是一个在面向连接的可靠传输协议,如TCPIP上提供安全保护。在SSL中,所有数据被封装在记录中。一个记录由两部分组成:记录头和非零长度的数据。记录头可以是2字节或3字节(当有填充数据时使用)。SSL握手层协议的报文要求必须放在一个SSL记录层的记录里,但应用层协议的报文允许占用多个SSL记录来传送。,8.2SSL记录层协议,记录头类型,记录长度,MAC,数据,记录头类型,Escape位,填充长度,记录长度,MAC,数据,填充数据,2字节头记录,3字节头记录,记录头格式,SSL的记录头可以是两个或三个字节长的编码。SSL记
11、录头包含的信息有记录头的长度、记录数据的长度、记录数据中是否有填充数据。其中填充数据是在使用块加密(block encryption)算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有填充数据,记录头的长度为两个字节,记录数据的最大长度为32767个字节;最高位为0时,含有填充数据,记录头的长度为三个字节,记录数据的最大长度为16383个字节。,SSL记录数据格式,SSL记录数据部分有三个分量:MAC-DATA、ACTUAL-DATA、PADDING-DATA。MAC数据用于数据完整性检查。计算MAC所用的散列函数由握手协议中的CIPHER-CHOICE消息确定。若使用MD2
12、和MD5算法,则MAC数据长度是16个字节。MAC的计算公式:MAC数据:Hash密钥,实际数据,填充数据,序号。,SSL记录数据格式,当会话的客户端发送数据时,密钥是客户的写密钥(服务器用读密钥来验证MAC数据);而当会话的客户端接收数据时,密钥是客户的读密钥(服务器用写密钥来产生MAC数据)。序号是一个可以被发送和接收双方递增的计数器。每个通信方向都会建立一对计数器,分别被发送者和接收者拥有。计数器有32位,计数值循环使用,每发送一个记录,计数值递增一次,序号的初始值为0。ACTUAL-DATA是被传送的应用数据,PADDING-DATA是当采用分组码时所需要的填充数据,在明文传送下只有第
13、二项。,8.3SSL握手协议,SSL协议主要由握手协议和记录层协议所组成,后者用于SSL连接协商安全参数。握手阶段 握手报文,握手阶段,1接通阶段 2密钥交换阶段 3会话密钥生成阶段4服务器证实阶段 5客户机认证阶段 6结束阶段,1接通阶段,该阶段对保密和认证算法达成协议,并发现以前会话中已有的任何ID。从客户机向服务器发送CLIENT-HELLO消息,其中包括客户机可以处理的加密方案类型、以前会话中断保留下来的会话ID以及向服务器提出询问用的用户随机数。服务器向客户机发出SERVER-HELLO,如果服务器识别出以前的会话ID,则会话要重新开始;如果是一次新的会话,则服务器向客户机送一个X.
14、509证书,证书包括服务器的公钥,并用证书发行机构(CA)的秘密密钥签署。客户机以CA的公钥解密出服务器的公钥,然后用它解读服务器的证书。此阶段交换的消息为CLIENT-HELLO和SERVER-HELLO。,2密钥交换阶段,在该阶段,客户机和服务器之间交换建立主密钥。SSL V3支持三种密钥交换,即RSA、Diffie-Hellman和Fortezza-KEA,利用服务器的公开密钥来实现。此阶段交换的消息为CLIENT-MASTER-KEY和CLIENT-DH-KEY。,3会话密钥生成阶段,该阶段客户机送出CLIENTSESSIONKEY,并和服务器建立一个或两个会话密钥。此阶段交换的消息为
15、CLIENT-SESSION-KEY。会话密钥是从客户机选择的数据中推导出来的,该数据用服务器的公开密钥加密。在每个SSL会话(其中客户机和服务器都被证实身份)中,要求服务器完成一次使用服务器专用密钥的操作和一次使用客户机公开密钥的操作。由于实际上目前所有的系统都使用RSA加密算法,每次操作都需要完成模数算法下的指数运算,通常,选择的公开指数为小数以减少要做的工作。因此,一次SSL会话只要一次硬的加密运算。,4服务器证实阶段,仅当采用RSA密钥交换算法时才执行此步骤,它证实主密钥和相继由服务器得到的会话密钥。一旦收到了主密钥和相继来自客户机的会话密钥,服务器就用其秘密密钥解密出密钥,然后服务器
16、向客户机送出认可信息,以响应客户机在CLIENT-HELLO消息中送给它的随机询问。客户机解密对随机询问的响应,如果都符合。则在客户机和服务器之间都建立了可信赖的会话,此阶段交换的消息为SERVER-VERIFY。,5客户机认证阶段,若要求客户机认证,则服务器要求客户机的证书,客户机以CLIENT-CERTIFICATE进行响应,早期版本的SSL只支持X.509证书,此阶段交换的消息为REQUEST-CERTIFICATE和CLIENTCERTIFICATE。,6结束阶段,此阶段客户机服务器交换各自的结束消息,客户机通过送会话ID作为加密文本表示完成了认证,服务器送出消息SERVER-FINI
17、SHED,其中包括以主密钥加密会话ID,这样在客户机与服务器之间就建立了可信赖的会话。此阶段交换的消息为CLIENT-FINISHED和SERVER-FINISHED。,简要说明,Paul黄裳:你好,你是黄裳么?黄裳 Paul:Paul,我是黄裳 信息段Paul,我是黄裳 黄裳的私钥 当你使用这个协议,黄裳知道他发送给乙的消息,他不介意在上面签名。他先发送不加密的信息,Paul,我是黄裳。,然后发送信息段加密的消息版本。Paul可以非常方便地校验黄裳就是黄裳,同时,黄裳还没有在他不想要的信息上签名。,简要说明,那么,乙怎样以可信的方式提交他的公钥呢?看看认证协议如下所示:Paul黄裳:你好 黄
18、裳 Paul:嗨,我是黄裳,黄裳的公钥 Paul黄裳:prove it 黄裳 Paul:Paul,我是黄裳信息段Paul,我是黄裳 黄裳的私钥,简要说明,在这个协议下,任何人都能够成为乙。所有你所要的只是公钥和私钥。你发送给甲说你就是乙,这样你的公钥就代替了乙的密码。然后,你发送用你的私钥加密的消息,证明你的身份。甲却不能发觉你并不是乙。为了解决这个问题,标准组织已经发明了证书。一个证书有以下的内容:*证书的发行者姓名*发行证书的组织*标题的公钥*邮戳 证书使用发行者的私钥加密。每一个人都知道证书发行者的公钥(这样,每个证书的发行者拥有一个证书)。证书是一个把公钥与姓名绑定的协议。通过使用证书
19、技术,每一个人都可以检查乙的证书,判断是否被假冒。假设乙控制好他的私钥,并且他确实是得到证书的乙,就万事大吉了。,简要说明,这些是修订后的协议:Paul黄裳:你好 黄裳 Paul:嗨,我是黄裳,黄裳的校验 Paul黄裳:prove it 乙 Paul:Paul,我是黄裳信息段Paul,我是黄裳 黄裳的私钥 现在当甲收到黄裳的第一个消息,他能检查证书,签名(如上所述,使用信息段和公钥解密),然后检查标题(黄裳的姓名),确定是黄裳。他就能相信公钥就是黄裳的公钥和要求黄裳证明自己的身份。黄裳通过上面的过程,制作一个信息段,用一个签名版本答复甲。Paul可以校验黄裳的信息段通过使用从证书上得到的公钥并
20、检查结果。,简要说明,如果一个黑客,叫白开心 Paul白开心:你好 白开心不能建立一个令Paul相信的从黄裳的消息交换密码(secret)一旦Paul已经验证黄裳后,他可以发送给黄裳一个只有黄裳可以解密、阅读的消息:Paul黄裳:secret黄裳的公钥,简要说明,唯一找到密码的方法只有使用黄裳的私钥解码上述的信息。交换密码是另一个有效使用密码加密的方法。即使在Paul和黄裳之间的通讯被侦听,只有黄裳才能得到密码。使用密码作为另一个secret-key增强了网络的安全性,但是这次这是一个对称的加密算法(例如DES、RC4、IDE甲)。因为Paul在发送给黄裳之前产生了密码,所以Paul知道密码。
21、黄裳知道密码因为黄裳有私钥,能够解密Paul的信息。但他们都知道密码,他们都能够初始化一个对称密码算法,而且开始发送加密后的信息。这儿是修定后的协议:,简要说明,Paul黄裳:你好 黄裳 Paul:嗨,我是乙,乙的校验 Paul黄裳:prove it 黄裳 Paul:Paul,我是黄裳信息段Paul,我是黄裳 黄裳的私钥 Paul黄裳:ok黄裳,here is a secret secret黄裳的公钥 黄裳 Paul:some messagesecret-key,简要说明,黑客窃听 那么如果有一个恶意的黑客白开心在Paul和黄裳中间,虽然不能发现Paul和黄裳已经交换的密码,但能干扰他们的交谈
22、。他可以放过大部分信息,选择破坏一定的信息(这是非常简单的,因为他知道Paul和黄裳通话采用的协议)。,简要说明,Paul白开心:你好白开心黄裳:你好 黄裳白开心:嗨,我是黄裳,黄裳的校验 白开心 Paul:嗨,我是黄裳,黄裳的校验 Paul白开心:prove it 白开心黄裳:prove it 黄裳白开心:Paul,我是黄裳信息段Paul,我是黄裳 黄裳的私钥 白开心 Paul:Paul,我是黄裳信息段Paul,我是黄裳 黄裳的私钥 Paul白开心:ok 黄裳,here is a secret secret黄裳的公钥 白开心黄裳:ok 黄裳,here is a secret secret黄裳
23、的公钥 黄裳白开心:some messagesecret-key 白开心 Paul:Garblesome messagesecret-key,简要说明,白开心忽略一些数据不修改,直到Paul和黄裳交换密码。然后白开心干扰黄裳给Paul的信息。在这一点上,Paul相信黄裳,所以他可能相信已经被干扰的消息并且尽力解密。需要注意的是,白开心不知道密码,他所能做的就是毁坏使用秘钥加密后的数据。基于协议,白开心可能不能产生一个有效的消息。但下一次呢?,简要说明,为了阻止这种破坏,Paul和黄裳在他们的协议中产生一个校验码消息(message authentication code)。一个校验码消息(MA
24、C)是一部分由密码和一些传输消息产生的数据。信息段算法描述的上述特性正是它们抵御白开心的功能:MAC=Digestsome message,secret 因为白开心不知道密码,他不能得出正确的值。即使白开心随机干扰消息,只要数据量大,他成功的机会微乎其微。例如,使用MD5(一个RSA发明的好的加密算法),Paul和黄裳能够发送128位MAC值和他们的消息。白开心猜测正确的MAC的几率将近1/18,446,744,073,709,551,616约等于零。,简要说明,Paul黄裳:你好 黄裳 Paul:嗨,我是乙,乙的校验 Paul黄裳:prove it 黄裳 Paul:嗨,我是黄裳,黄裳的校验
25、Paul,我是黄裳信息段Paul,我是黄裳 黄裳的私钥 Paul黄裳:ok 黄裳,here is a secret secret黄裳的公钥some message,MACsecret-key,简要说明,现在白开心已经无技可施了。他干扰了得到的所有消息,但MAC计算机能够发现他。Paul和黄裳能够发现伪造的MAC值并且停止交谈。白开心不再能与黄裳通讯。,握手报文,握手层的报文由两部分组成。(1)一个字节的报文类型代码。(2)数据,根据报文类型不同,其结构不同。所有握手层的报文以及以后的数据报文,都是通过记录层传输的。表给出了不需要新密钥、需要新密钥和需要客户认证三种典型情况下的握手协议实例。其中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安全 套接 协议
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6385747.html