ssl协议报文.docx

上传人:b****7 文档编号:10258925 上传时间:2023-02-09 格式:DOCX 页数:9 大小:21.16KB
下载 相关 举报
ssl协议报文.docx_第1页
第1页 / 共9页
ssl协议报文.docx_第2页
第2页 / 共9页
ssl协议报文.docx_第3页
第3页 / 共9页
ssl协议报文.docx_第4页
第4页 / 共9页
ssl协议报文.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

ssl协议报文.docx

《ssl协议报文.docx》由会员分享,可在线阅读,更多相关《ssl协议报文.docx(9页珍藏版)》请在冰豆网上搜索。

ssl协议报文.docx

ssl协议报文

竭诚为您提供优质文档/双击可除

ssl协议报文

  篇一:

ssl原理详解

  ssl工作原理

  第一章概要

  一、什么是ssl?

  ssl采用tcp作为传输协议提供数据的可靠传送和接收。

ssl工作在socket层上,因此独立于更高层应用,可为更高层协议,如telnet、Ftp和http提供安全业务。

ssl提供的安全业务和tcp层一样,采用了公开密钥和私人密钥两种加密体制对web服务器和客户机(选项)的通信提供保密性、数据完整性和认证。

在建立连接过程中采用公开密钥,在会话过程中使用私人密钥。

加密的类型和强度则在两端之间建立连接的过程中判断决定。

在所有情况下,服务器通过以下方法向客户机证实自身:

给出包含公开密钥的、可验证的证明;演示它能对用此公开密钥加密的报文进行解密。

  为了支持客户机,每个客户机都要拥有一对密钥,这要求在internet上通过netscape分配。

由于internet中的服务器数远少于客户机数,因此能否处理签字及密钥管理的业务量是很重要的,并且与客户联系比给商家以同样保证更重要。

  二、ssl提供的服务

  ssl协议提供的服务可以归纳为如下3个方面。

  

(1)用户和服务器的合法性认证

  使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。

客户机和服务器都有各自的识别号,由公开密钥编排。

为了验证用户,安全套接层协议要求在握手交换数据中做数字认证,以此来确保用户的合法性。

  

(2)加密数据以隐藏被传送的数据

  安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。

具体来说,就是客户机与服务器交换数据之前,先交换ssl初始握手信息。

在ssl握手信息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别,这样就可以防止非法用户破译。

  (3)维护数据的完整性

  安全套接层协议采用密码杂凑函数和机密共享的方法,提供完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务,在传输过程中都能完整、准确无误地到达目的地。

  第二章ssl工作流程概述

  ssl的工作分为两个阶段:

握手阶段和数据传输阶段,若通信期间检测到不安全因素,比如握手时候发现另一端无法支持选择的协议或加密算法,或者发现数据被篡改,这时通信一方会发送警告消息,不安全因素影响比较大两端之间的通信就会终止,必须重新协商建立连接。

  ssl协议分成三个子协议:

handshake(握手)changecipherspec(更改密钥规格),alert(告警)。

  ssl的告警协议是用来为通信对方发送一条告警消息,告警分为两个层次:

fatal和warning,如果是fatal级别的如mac计算出错或协商密钥算法失败则马上断开连接,要建立连接的话需要重新握手;warning类型的消息一般只会记录日志,并不会断开连接。

  具体的工作流程图如下所示:

  使用协商好的密钥加密

  

(1)clienthello

  握手阶段从客户端发送“clienthello”消息为起点。

“clienthello”消息中包含了协议的版本号(protocolVersion)、会话的id(sessionid)、表明了客户端加密能力的密钥套件列表(ciphersuite)、客户端支持的压缩算法(compressionmethods)以及一个28位长的随机数(该随机数将用于所有的消

  息摘要和会话密钥的生成)。

  

(2)serverhello

  服务器端收到客户端发来的请求,在内部协商之后,确定了协议版本号、之后所要使用到的加密套件列表和压缩算法、生成一个新的会话id,并产生一个28位长的随机数。

封装在“serverhello”中发送给客户端。

  服务器与客户端之间的协商必须确定出一个公共密钥对,如果无法确定,则握手失败。

  (3)服务器发送数字证书(servercertificates)

  ssl采用x.509数字证书标准,证书中包含验证服务器身份的证书消息和服务器端的公开密钥。

  (4)服务端密钥交换信息(serverkeyexchange)

  这条消息本来是可选的,视不同情况而定,服务器端发送将用在密钥交换过程的信息(依据使用的密钥交换算法的不同,可能发送公钥,也可能发送一个经过签名的整数)

  (5)请求客户端证书消息(clientcertificateRequest)

  如果所用的ssl版本是3.0以上的,服务器端可以要求客户端发送数字证书,以实现对客户端的认证。

消息中会包含服务端支持的证书类型和所有server端信任的证书发行机构的dn(distinguishedname)列表。

  (6)serverhellodone

  客户端收到这个消息,客户端会先对服务器端发送过来的消息做如下处理:

  ①serverhello

  客户端会先收到服务器端的“serverhello”消息,客户端会将serverhello中的多个消息(会话id、服务器端的一个随机数、协商出ssl协议版本号以及密钥套件)放到会话缓存中。

  ②服务器证书消息

  证书消息中包含一个证书列表和一个公开密钥,客户端取出证书列表,最上面是server的证书,最下面是ca根证书,通过一层层验证,证明服务端是可信任的。

  ③收到服务端密钥交换信息

  客户端将保存在里面的信息存到会话缓存中。

  ④收到客户端证书请求消息

  将消息中的证书类型列表和可信任证书发行机构列表保存起来,在后面发送

  客户端证书的时候,就根据这个列表来筛选。

  ⑤收到serverhellodone消息

  收到消息之后,客户端就开始给server端发送回馈消息。

  (7)客户发送证书消息(clientcertificates)

  如果服务端要求客户端发送证书消息,客户端就按照clientcertificateRequest里的列表,发送符合要求的证书。

  如果客户端没有证书可以发送,客户端将发送“没有数字证书”的警告,此警告仅仅是警告而已,但如果客户端数字证书认证是强制性的话,服务器应用程序将会使会话失败。

  (8)发送客户端密钥交换消息(clientkeyexchange)

  若是Rsa方式密钥交换,则产生一个48位随机数作为pre-master并用服务器公钥加密后发出去

  若是dh方式的密钥交换,则根据sever的g,p,ys,产生xa和yc,xa和ys能计算出pre-master,把产生的yc放入消息中发给server,这样server用它的xb和yc也能计算出pre-master了。

计算出预主密码后就顺便把主密码(mastersecret)给算出来了。

算出主密码就把对称密钥产生出来了。

  (9)发送certificateVerify消息

  这个消息是可选的,只有在客户端发送了自己证书到服务器端,这个消息才需要发送。

发这个消息的目的是让服务器验证发消息的客户端和客户端证书的真实所有者。

这个消息中要包含一个签名,签名里头内容就是从clienthello开始到目前为止所有握手消息(不包括本消息)的摘要,主密码,若是Rsa方式则要把这些内容分别用md5和sha1计算一遍,两种摘要算法算得的摘要拼接起来用客户端证书中公钥对应的私钥加密就获得了签名。

到时候服务器端会用收到的证书中的公钥来验证签名。

  (10)发送改变密码规格消息(changecipherspec)

  从服务器端收到这个消息开始,之间的对话开始使用协商好的会话密钥加密数据。

  (11)发送clientFinishedmessage

  表示服务器端的ssl握手协议协商成功。

消息中包含两个摘要,分别用md5和sha算法计算当前收到所有握手消息和主密码的摘要,不包括本消息和changecipherspec(因为不属于握手消息)。

  (12)server端处理与回应clientFinished消息

  server端如果确认了client的身份(client发送了证书的前提下),从收到的客户端密钥交换消息中取出预主密钥(pre-master)计算出主密钥,生成对称密钥。

收到client的changecertificatespec消息后将会话的读密钥设置为刚生产的对称密钥。

  处理完成后,服务端发送改变密码规格消息(changecertificatespec)并把会话的写密钥设置为生成的对称密钥。

发送serverFinished消息,client端收到server端的changecipherspec消息将会话的读密钥设置为生成的对

  篇二:

ssl原理与应用

  ssl协议原理与应用

  1,概念:

  安全套接字(securesocketlayer,ssl)协议是web浏览器与web服务器之间安全交换信息的协议,提供两个基本的安全服务:

鉴别与保密。

  2,背景:

  基于万维网的电子商务和网上银行等新兴应用,极大地方便了人们的日常生活,受到人们的青睐。

由于这些应用都需要在网络上进行在线交易,它们对网络通信的安全性提出了更高的要求。

传统的万维网协议http不具备安全机制——采用明文的形式传输数据、不能验证通信双方的身份、无法防止传输的数据被篡改等,导致http无法满足电子商务和网上银行等应用的安全性要求。

netscape公司提出的安全协议ssl,利用数据加密、身份验证和消息完整性验证机制,为网络上数据的传输提供安全性保证。

ssl可以为http提供安全连接,从而很大程度上改善了万维网的安全性问题。

  3,ssl具有如下优点:

  提供较高的安全性保证。

ssl利用数据加密、身份验证和消息完整性验证机制,保证网络上数据传输的安全性。

  支持各种应用层协议。

虽然ssl设计的初衷是为了解决万维网安全性问题,但是由于ssl位于应用层和传输层之间,它可以为任何基于tcp等可靠连接的应用层协议提供安全性保证。

  部署简单。

目前ssl已经成为网络中用来鉴别网站和网页浏览者身份,在浏览器使用者及web服务器之间进行加密通信的全球化标准。

ssl协议已被集成到大部分的浏览器中,如ie、netscape、Firefox等。

这就意味着几乎任意一台装有浏览器的计算机都支持ssl连接,不需要安装额外的客户端软件。

  4,协议安全机制:

  ssl协议实现的安全机制包括:

  数据传输的机密性:

利用对称密钥算法对传输的数据进行加密。

  身份验证机制:

基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。

  消息完整性验证:

消息传输过程中使用mac算法来检验消息的完整性。

  5,ssl的位置:

  ssl介于应用层和tcp层之间。

应用层数据不再直接传递给传输层,而是传递给ssl层,ssl层对从应用层收到的数据进行加密,并增加自己的ssl头。

  如图所示,ssl位于应用层和传输层之间,它可以为任何基于tcp等可靠连接的应用层协议提供安全性保证。

ssl协议本身分为两层:

  上层为ssl握手协议(sslhandshakeprotocol)、ssl密码变化协议(sslchangecipherspecprotocol)和ssl警告协议(sslalertprotocol)

  底层为ssl记录协议(sslrecordprotocol)。

  其中:

  ssl握手协议:

是ssl协议非常重要的组成部分,用来协商通信过程中使用的加密套件(加密算法、密钥交换算法和mac算法等)、在服务器和客户端之间安全地交换密钥、实现服务器和客户端的身份验证。

  ssl密码变化协议:

客户端和服务器端通过密码变化协议通知对端,随后的报文都将使用新协商的加密套件和密钥进行保护和传输。

  ssl警告协议:

用来向通信对端报告告警信息,消息中包含告警的严重级别和描述。

  ssl记录协议:

主要负责对上层的数据(ssl握手协议、ssl密码变化协议、ssl警告协议和应用层协议报文)进行分块、计算并添加mac值、加密,并把处理后的记录块传输给对端。

  6,ssl握手过程(原理):

  ssl通过握手过程在客户端和服务器之间协商会话参数,并建立会话。

会话包含的主要参数有会话id、对方的证书、加密套件(密钥交换算法、数据加密算法和mac算法等)以及主密钥(mastersecret)。

通过ssl会话传输的数据,都将采用该会话的主密钥和加密套件进行加密、计算mac等处理。

  不同情况下,ssl握手过程存在差异。

下面将分别描述以下三种情况下的握手过程:

  只验证服务器的ssl握手过程

  验证服务器和客户端的ssl握手过程

  恢复原有会话的ssl握手过程

  

(一),只验证服务器的ssl握手过程

  如图所示,只需要验证ssl服务器身份,不需要验证ssl客户端身份时,ssl的握手过程为:

  

(1)ssl客户端通过clienthello消息将它支持的ssl版本、加密算法、密钥交换算法、mac算法等信息发送给ssl服务器。

  

(2)ssl服务器确定本次通信采用的ssl版本和加密套件,并通过serverhello消息通知给ssl客户端。

如果ssl服务器允许ssl客户端在以后的通信中重用本次会话,则ssl服务器会为本次会话分配会话id,并通过serverhello消息发送给ssl客户端。

  (3)ssl服务器将携带自己公钥信息的数字证书通过certificate消息发送给ssl客户端。

  (4)ssl服务器发送serverhellodone消息,通知ssl客户端版本和加密套件协商结束,开始进行密钥交换。

  (5)ssl客户端验证ssl服务器的证书合法后,利用证书中的公钥加密ssl客户端随机生成的premastersecret,并通过clientkeyexchange消息发送给ssl服务器。

  (6)ssl客户端发送changecipherspec消息,通知ssl服务器后续报文将采用协商好的密钥和加密套件进行加密和mac计算。

  (7)ssl客户端计算已交互的握手消息(除changeciphersp(ssl协议报文)ec消息外所有已交互的消息)的hash值,利用协商好的密钥和加密套件处理hash值(计算并添加mac值、加密等),并通过Finished消息发送给ssl服务器。

ssl服务器利用同样的方法计算已交互的握手消息的hash值,并与Finished消息的解密结果比较,如果二者相同,且mac值验证成功,则证明密钥和加密套件协商成功。

  (8)同样地,ssl服务器发送changecipherspec消息,通知ssl客户端后续报文将采用协商好的密钥和加密套件进行加密和mac计算。

  (9)ssl服务器计算已交互的握手消息的hash值,利用协商好的密钥和加密套件处理hash值(计算并添加mac值、加密等),并通过Finished消息

  发送给

  ssl客户端。

ssl客户端利用同样的方法计算已交互的握手消息的hash值,并与Finished消息的解密结果比较,如果二者相同,且mac值验证成功,则证明密钥和加密套件协商成功。

  ssl客户端接收到ssl服务器发送的Finished消息后,如果解密成功,则可以判断ssl服务器是数字证书的拥有者,即ssl服务器身份验证成功,因为只有拥有私钥的ssl服务器才能从clientkeyexchange消息中解密得到premastersecret,从而间接地实现了ssl客户端对ssl服务器的身份验证。

  说明:

  changecipherspec消息属于ssl密码变化协议,其他握手过程交互的消息均属于ssl握手协议,统称为ssl握手消息。

  计算hash值,指的是利用hash算法(md5或sha)将任意长度的数据转换为固定长度的数据。

  

(二),验证服务器和客户端的ssl握手过程

  ssl客户端的身份验证是可选的,由ssl服务器决定是否验证ssl客户端的身份。

如图6中蓝色部分标识的内容所示,如果ssl服务器验证ssl客户端身份,则ssl服务器和ssl客户端除了交互“3.2.1只验证服务器的ssl握手过程”中的消息协商密钥和加密套件外,还需要进行以下操作:

  

(1)ssl服务器发送certificateRequest消息,请求ssl客户端将其证书发送给ssl服务器。

  

(2)ssl客户端通过certificate消息将携带自己公钥的证书发送给ssl服务器。

ssl服务器验证该证书的合法性。

  (3)ssl客户端计算已交互的握手消息、主密钥的hash值,利用自己的私钥对其进行加密,并通过certificateVerify消息发送给ssl服务器。

  (4)ssl服务器计算已交互的握手消息、主密钥的hash值,利用ssl客户端证书中的公钥解密certificateVerify消息,并将解密结果与计算出的hash值比较。

如果二者相同,则ssl客户端身份验证成功。

  (三),恢复原有会话的ssl握手过程

  协商会话参数、建立会话的过程中,需要使用非对称密钥算法来加密密钥、验证通信对端的身份,计算量较大,占用了大量的系统资源。

为了简化ssl握手过程,ssl允许重用已经协商过的会话,具体过程为:

  

(1)ssl客户端发送clienthello消息,消息中的会话id设置为计划重用的会话的id。

  

(2)ssl服务器如果允许重用该会话,则通过在serverhello消息中设置相同的会话id来应答。

这样,ssl客户端和ssl服务器就可以利用原有会话的密钥和加密套件,不必重新协商。

  (3)ssl客户端发送changecipherspec消息,通知ssl服务器后续报文将采用原有会话的密钥和加密套件进行加密和mac计算。

  (4)ssl客户端计算已交互的握手消息的hash值,利用原有会话的密钥和加密套件处理hash值,并通过Finished消息发送给ssl服务器,以便ssl服务器判断密钥和加密套件是否正确。

  (5)同样地,ssl服务器发送changecipherspec消息,通知ssl客户端后续报文将采用原有会话的密钥和加密套件进行加密和mac计算。

  (6)ssl服务器计算已交互的握手消息的hash值,利用原有会话的密钥和加密套件处理hash值,并通过Finished消息发送给ssl客户端,以便ssl客户端判断密钥和加密套件是否正确。

  7,典型组网应用(使用):

  

(一),https

  https是基于ssl安全连接的http协议。

https通过ssl提供的数据加密、身份验证和消息完整性验证等安全机制,为web访问提供了安全性保证,广泛应用于网上银行、电子商务等领域。

  篇三:

由于ssl协议不对应用层报文进行签名,因此它不能保证消息的(60)

  一、整体解读

  试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。

试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。

  1.回归教材,注重基础

  试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。

  2.适当设置题目难度与区分度

  选择题第12题和填空题第16题以及解答题的第21题,都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。

  3.布局合理,考查全面,着重数学方法和数学思想的考察

  在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。

包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。

这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。

  

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1