当前位置:文档之家› ssl协议报文

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警告。

相关主题