您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第七章-安全套接层协议
第七章安全套接层协议SSL7.1SSL协议概述7.2SSL原理7.3SSL协议的加密和认证算法7.4SSL协议分析7.5SSL协议的应用7.1SSL协议概述7.1.1SSL协议总述7.1.2SSL的工作原理7.1.1SSL协议总述1.SSL协议的作用2.SSL协议的目标3.SSL的主要组成协议1.SSL协议的作用SSL协议是一种在可持有证书的浏览器软件上和服务器之间构造的安全通道中传输数据的协议。TCP/IP是整个Internet数据传输和通信所使用的最基本的控制协议,在它之上还有HTTP等应用层传输协议。而SSL是位于TCP/IP和各种应用层协议之间的一种数据安全协议。SSL协议可以有效地避免网上信息的偷听、篡改以及消息的伪造。7.1.1SSL协议SSL协议在整个网络协议中的位置1.SSL协议的作用SSL标准的关键是要解决以下几个问题。(1)客户对服务器的身份确认:SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性(检验服务器的证书和ID的合法性)。对于用户服务器身份的确认与否是非常重要的,因为客户可能向服务器发送自己的信用卡密码。1.SSL协议的作用(2)服务器对客户的身份确认:允许SSL服务器确认客户的身份,SSL协议允许客户服务器的软件通过公钥技术和可信赖的证书,来确认客户的身份(客户的证书client’scertificate)。对于服务器客户身份的确认与否是非常重要的,因为网上银行可能要向客户发送机密的金融信息。(3)建立起服务器和客户之间安全的数据通道:SSL要求客户和服务器之间的所有的发送数据都被发送端加密,所有的接收数据都被接收端解密,这样才能提供一个高水平的安全保证。同时SSL协议会在传输过程中检查数据是否被中途修改。2.SSL协议的目标按它们的优先级,SSL协议的目标如下。(1)在通信双方之间利用加密的SSL消息建立安全的连接。(2)操作性。通信双方的程序是独立的,即一方可以在不知道对方程序编码的情况下利用SSL成功地交换加密参数。2.SSL协议的目标(3)可扩展性。SSL寻求提供一种框架结构,在此框架结构中,在不对协议进行大的修改的情况下,新的公钥算法和单钥算法可以在必要时被加入。这样做还可以实现两个子目标:避免产生新协议的需要,因而进一步避免了产生新的不足的可能性。避免了实现一完整的安全协议的需要。相对的有效性加密操作,尤其是公钥加密,对CPU来说是一种很耗时的事,因此SSL协议引入一可选的对话缓存(CACHE)来减少从头开始的连接的数目。同时,它还注意减少网络的活动。3.SSL的主要组成协议SSL协议主要包含:握手协议(handshakeprotocol)和记录协议(recordprotocol)。记录协议:定义了信息传输的格式。握手协议:用来交换双方的SSL版本号,数字证书、密钥、会话ID等信息。4.SSL协议的系统框架消费者客户端CA认证中心商家服务器银行服务器7.1.2SSL的工作原理当一个使用者在Web上用Netscape浏览器漫游时,浏览器利用HTTP协议与Web服务器沟通。例如,浏览器发出一个HTTPGET命令给服务器,想下载一个首页的HTML档案,而服务器会以传送档案的内容给浏览器来响应。GET这个命令的文字和HTML档案的文字会通过会话层(socket)的连接来传送。Socket使两台远程的计算机能利用Internet来通话。通过SSL,资料在传送出去之前就自动被加密了,它会在接收端被解密。对没有解密钥的人来说,其中的资料是无法阅读的。7.1.2SSL协议的工作原理客户端服务器①客户端SSL版本号等信息②服务器SSL版本号等信息③验证服务器身份③验证客户端身份④用服务器公钥加密的预密码⑤由预密钥生成会话密钥⑤用私钥解密得到预密钥并生成会话密钥⑥握手协议完成⑦传输数据⑧丢弃会话密钥,安全通道断开⑧丢弃会话密钥,安全通道断开第一阶段:申请建立会话第二阶段:协商密钥第三阶段:SSL握手协议完成第四阶段:数据传输第五阶段:SSL协议结束7.2SSL记录层协议SSL记录层协议限定了所有发送和接收数据的打包,它提供了通信、加密功能,它是一个面向连接的可靠传输协议,为TCP/IP提供安全保护。在SSL中,所有数据被封装在记录中。一个记录由两部分组成:记录头和非零长度的数据。记录头可以是2字节或3字节(当有填充数据时使用)。7.2SSL记录层协议记录头类型记录长度MAC数据记录头类型Escape位填充长度记录长度MAC数据填充数据2字节记录头3字节记录头7.2.1SSL记录头格式SSL的记录头可以是两个或三个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度、记录数据中是否有填充数据。最高位为1时,不含有填充数据,记录头的长度为两个字节,记录数据的最大长度为32767个字节;最高位为0时,含有填充数据,记录头的长度为三个字节,记录数据的最大长度为16383个字节。7.2.2SSL记录数据格式SSL记录数据部分有三个分量:MAC-DATA、ACTUAL-DATA、PADDING-DATA。MAC数据用于数据完整性检查。MAC的计算公式:MAC数据:Hash[密钥,实际数据,填充数据,序号]。取决于传递消息的对象和加密类型计数器,长度32bit,初始值为07.3SSL握手协议SSL协议主要由握手协议和记录层协议所组成,握手协议位于应用层之下的协议,用于服务器和客户机在开始传输数据之前,通信双方进行身份认证、协商加密算法和交换加密钥等。7.3.1握手阶段1.接通阶段2.密钥交换阶段3.会话密钥生成阶段4.服务器证实阶段5.客户机认证阶段6.结束阶段1.接通阶段从客户机向服务器发送CLIENT-HELLO消息,其中包括SSL版本号,客户端可处理的数据加密算法设置,会话ID,用来询问用的随机产生的数据。服务器向客户机发出SERVER-HELLO,如果服务器识别出以前的会话ID,则会话要重新开始;如果是一次新的会话,则服务器向客户机发送服务器端SSL版本号,数据处理所需要的加密算法设置,用来询问的随机产生的数据和一个X.509证书,证书包括服务器的公钥,并用证书发行机构(CA)的秘密密钥签署。客户机以CA的公钥解密出服务器的公钥,然后用它解读服务器的证书。此阶段交换的消息为CLIENT-HELLO和SERVER-HELLO。2.密钥交换阶段在该阶段,客户机和服务器之间交换建立主密钥。SSLV3支持三种密钥交换,即RSA、Diffie-Hellman和Fortezza-KEA,利用服务器的公开密钥来实现。3.会话密钥生成阶段该阶段客户机送出CLIENT—SESSION—KEY,并和服务器建立一个或两个会话密钥。此阶段交换的消息为CLIENT-SESSION-KEY。会话密钥是从客户机选择的数据中推导出来的,该数据用服务器的公开密钥加密。4.服务器证实阶段仅当采用RSA密钥交换算法时才执行此步骤。一旦收到了主密钥和相继来自客户机的会话密钥,服务器就用其秘密密钥解密出密钥,然后服务器向客户机送出认可信息。5.客户机认证阶段若要求客户机认证,则服务器要求客户机的证书,客户机以CLIENT-CERTIFICATE进行响应,早期版本的SSL只支持X.509证书,此阶段交换的消息为REQUEST-CERTIFICATE和CLIENT—CERTIFICATE。6.结束阶段此阶段客户机服务器交换各自的结束消息,客户机通过送会话ID作为加密文本表示完成了认证,服务器送出消息SERVER-FINISHED,其中包括以主密钥加密会话ID,这样在客户机与服务器之间就建立了可信赖的会话。此阶段交换的消息为CLIENT-FINISHED和SERVER-FINISHED。简要说明Paul——〉黄裳:你好黄裳——〉Paul:嗨,我是黄裳,黄裳的公钥Paul——〉黄裳:proveit黄裳——〉Paul:Paul,我是黄裳{信息段[Paul,我是黄裳]}黄裳的私钥简要说明如果一个黑客,叫白开心Paul——〉白开心:你好白开心——〉不能建立一个令Paul相信的从黄裳的消息交换密码(secret)一旦Paul已经验证黄裳后,他可以发送给黄裳一个只有黄裳可以解密、阅读的消息:Paul——〉黄裳:{secret}黄裳的公钥简要说明Paul——〉黄裳:你好黄裳——〉Paul:嗨,我是乙,乙的校验Paul——〉黄裳:proveit黄裳——〉Paul:Paul,我是黄裳{信息段[Paul,我是黄裳]}黄裳的私钥Paul——〉黄裳:ok黄裳,hereisasecret{secret}黄裳的公钥黄裳——〉Paul:{somemessage}secret-key简要说明黑客窃听那么如果有一个恶意的黑客白开心在Paul和黄裳中间,虽然不能发现Paul和黄裳已经交换的密码,但能干扰他们的交谈。他可以放过大部分信息,选择破坏一定的信息(这是非常简单的,因为他知道Paul和黄裳通话采用的协议)。简要说明Paul——〉白开心:你好白开心——〉黄裳:你好黄裳——〉白开心:嗨,我是黄裳,黄裳的校验白开心——〉Paul:嗨,我是黄裳,黄裳的校验Paul——〉白开心:proveit白开心——〉黄裳:proveit黄裳——〉白开心:Paul,我是黄裳{信息段[Paul,我是黄裳]}黄裳的私钥白开心——〉Paul:Paul,我是黄裳{信息段[Paul,我是黄裳]}黄裳的私钥Paul——〉白开心:ok黄裳,hereisasecret{secret}黄裳的公钥白开心——〉黄裳:ok黄裳,hereisasecret{secret}黄裳的公钥黄裳——〉白开心:{somemessage}secret-key白开心——〉Paul:Garble[{somemessage}secret-key]简要说明白开心忽略一些数据不修改,直到Paul和黄裳交换密码。然后白开心干扰黄裳给Paul的信息。在这一点上,Paul相信黄裳,所以他可能相信已经被干扰的消息并且尽力解密。需要注意的是,白开心不知道密码,他所能做的就是毁坏使用秘钥加密后的数据。基于协议,白开心可能不能产生一个有效的消息。但下一次呢?简要说明Paul——〉黄裳:你好黄裳——〉Paul:嗨,我是乙,乙的校验Paul——〉黄裳:proveit黄裳——〉Paul:嗨,我是黄裳,黄裳的校验Paul,我是黄裳{信息段[Paul,我是黄裳]}黄裳的私钥Paul——〉黄裳:ok黄裳,hereisasecret{secret}黄裳的公钥{somemessage,MAC}secret-key简要说明现在白开心已经无技可施了。他干扰了得到的所有消息,但MAC计算机能够发现他。Paul和黄裳能够发现伪造的MAC值并且停止交谈。白开心不再能与黄裳通讯。7.4.2SSL安全优势SSL使用一个经过通信双方协商确定的加密算法和密钥,对不同的安全级别应用都可找到不同的加密算法,从而用于数据加密。它的密钥管理处理比较好,在每次连接时通过产生一个Hash函数生成一个临时使用的会话密钥,因此对监听和中间人式攻击而言,具有较高的防范性。7.5.1SET与SSL的特点SET是一个多方的消息报文协议,它定义了银行、商家、持卡人之间必须符合的报文规范。SSL只是简单地在两方之间建立了一条安全连接。SSL是面向连接的,SET允许各方之间的报文交换不是实时的。SET报文能够在银行内部网络或者其他网络上传输,而SSL之上的支付系统只能与Web浏览器捆绑在一起。7.8.1SET与SSL的特点(1)认证机制方面:SET的安全需求较高,因此所有参与SET交易的成员(持卡人、商家、付款转接站等)都必须先申请数字证书来识别身份,而在SSL中只有商店端的服务器需要认证,客户端认证则是有选择性的。(2)对消费者而言,SET保证了商家的合法性,并且用户的信用卡号不会被窃取。SET替消费者保守
本文标题:第七章-安全套接层协议
链接地址:https://www.777doc.com/doc-1267439 .html