您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 安全协议ppt-第4章-传输层安全SSL和TLS
第4章传输层安全SSL和TLS杨礼珍作业课本p.147思考题2、6、7、84.1引言SSL(安全套接层,SecureSocketLayer)和TSL(传输层安全,TransportLayerSecurity)为传输层提供安全性。在传输层部署安全性的优点IP层安全是点对点的,传输层是端对端的(网络通信中的点到点和端到端概念示意请看P.20图1.11)传输层提高了可靠性,使得高层服务不必关注可靠性问题。应用层协议直接构建于传输层之上,在传输层上构架安全协议,可以把高层应用从安全性中解放出来。SSL/TCL发展历史1994年Netscape开发了SSL(SecureSocketLayer)协议,专门用于保护Web通讯版本和历史(各版本谱系图见P.108图4.1)1.0,不成熟2.0,基本上解决了Web通讯的安全问题Microsoft公司发布了PCT(PrivateCommunicationTechnology),并在IE中支持3.0,1996年发布,增加了一些算法,修改了一些缺陷TLS1.0(TransportLayerSecurity,也被称为SSL3.1),1997年IETF发布了Draft,同时,Microsoft宣布放弃PCT,与Netscape一起支持TLS1.01999年,发布RFC2246(TheTLSProtocolv1.0)SSL/TCL设计目标协议的设计目标为两个通讯个体之间提供机密性、完整性,服务器认证以及可选的客户端认证(比较:IPSec的认证是双向的)。互操作性、可扩展性、相对效率4.2SSLv3协议流程SSL使用过程使用SSL保护的高层报文需要封装在SSL报文中投递所有SSL报文最终封装在传输层报文中投递协议分为两层底层:记录协议,是数据承载层,数据传输单位是记录,高层协议封装在SSL记录中进行投递。上层:握手协议、更改密钥规范协议、警告协议4.2SSLv3协议流程SSLv3协议关系图,中文版见p.109图4.24.2SSLv3协议流程握手协议功能必选的服务器认证可选的客户端认证算法协商,包括压缩算法、加密算法和消息验证码算法密钥生成,即生成客户端与服务器共享的会话密钥。使用4个密钥用于加密和认证,4个密钥由共享密钥生成。共享密钥的生成方式:基于RSA的密钥传输基于D-H的密钥协商4.2SSLv3协议流程警告协议功能报错机制安全断连机制,即可认证的方式关闭连接,防止截断攻击。记录协议的功能是SSLv3的数据承载协议,规定了SSLv3的报文格式,以及对报文的处理过程。握手报文和应用数据都要封装成“记录”的形式投递。4.2.1基本协议流程典型的SSLv3通信过程(见p.110图4.3)1.三次握手建立TCP连接2.SSL协议过程1.算法、密钥协商2.由共享密钥和随机数计算4个密钥3.用协商好的安全参数交互应用数据4.以可认证的方式断开连接3.断开TCP连接客户端服务器SYNSYN+ACK三次握手协议建立TCP连接FINFINACKACKSSL协议过程断开TCP连接ACKClientHello算法、随机数(用于密钥推导和重放攻击)ServerHello算法,随机数,会话IDCertificate证书ServerHelloDone对各种算法达成一致ClientKeyExchange用服务器公钥加密的预主密钥计算密钥计算密钥使用双方发送的随机数和预主密钥计算4个密钥[ChangeCipherSpec]Finished*[ChangeCipherSpec]Finished*包含了之前所有握手消息的验证码ApplicationData*ApplicationData*交互应用数据通告对方用协商好的参数进行处理Closenotify*Closenotify*以可认证的方式通告服务器断开连接图:SSL协议过程客户端服务器端*:表示用协商好的密钥做了安全处理4.2.2更改密码规范协议ChangeCipherSpec消息属于更改密码规范协议,功能互相通告将启用新的密码规范协调客户端和服务器的状态,使得双方实现同步。连接:通信双方的一次通信过程,由一组参数描述。会话:利用握手协议获取的一系列安全参数,包括算法、预主密钥等。一个会话可有多个连接共享,每个会话都有唯一的标识。(对应于LT2P的隧道和会话)会话的状态:当前操作状态:表示正在使用的密码参数,分为读状态(接受)和写状态(发送)挂起状态:表示将要使用的密码参数,分为读状态和写状态每个状态用一组密码参数表示,SSL握手协议作用之一为协调通信双方的状态同步。4.2.3Finished消息Finished消息的功能包含了之前所有握手消息的MAC,这样可防止通过修改握手消息实现的降级攻击。降级攻击:攻击者修改发送的消息,降低使用算法的安全级别。如:攻击者截获发送的ClientHello消息,以较弱的算法代替后再发送出去,从而降低了协议的安全性。Finished消息可发现消息被修改。服务器端身份认证原理:服务器拥有证书公钥对应的私钥才能正确解密预主密钥才能计算正确的密钥才能生成正确的Finish*消息。4.2.4警告协议警告协议的功能报告差错,分为警告(warning)级和致命(fatal)级应用数据传输完后,通知对方断开连接,断连消息为Close_notify,使用了消息验证码认证发送端的身份。4.2.5其它应用SSL支持多种使用方式例:会话恢复:使用已有的会话保护某个连接,不必再重新协商新的会话状态参数。会话状态参数:会话ID、通信对等端证书、压缩算法、加密算法、哈希算法、预主密钥、可恢复标记连接状态参数:客户端和服务器端的随机数、服务器MAC密钥和加密密钥、客户端MAC和加密密钥、初始化向量IV以及序号ClientHello会话ID、随机数ServerHello计算密钥计算密钥使用双方发送的随机数和预主密钥计算4个密钥客户端服务器包含了之前所有握手消息的验证码ApplicationData*ApplicationData*交互应用数据通告对方用协商好的参与进行处理Closenotify*Closenotify*以可认证的方式通告服务器断开连接会话ID、随机数[ChangeCipherSpec]Finished*[ChangeCipherSpec]Finished*P114图4.4SSL会话恢复流程4.2.5.2客户端认证客户端认证:服务器认证客户端,和一般流程不同的是增加了以下流程,在图中用红色框表示:服务器发送CertificateRequest消息,以通告客户端需验证其身份。客户端响应:客户端发送Certificate消息,将自己的证书发送给服务器。客户端发送CertificateVerify消息,其中包含了客户端利用与证书对应的私钥对之前的握手消息所作的签名。客户端认证和服务端认证的不同服务器验证客户端发送的CertificateVerify消息来验证其身份。使用证书+签名。客服端拥有正确的私钥才能生成合法的签名。客户端通过验证服务器发送的Finished消息验证其身份。使用证书+公钥加密+消息认证码。服务器只有拥有正确的私钥才能正确解密客户端发送的预主密钥,才可生成正确的会话密钥,才能用正确的会话密钥生成Finished消息。ClientHello算法、随机数(用于防止密钥推导和重放攻击)ServerHello算法,随机数,会话IDCertificate证书对各种算法达成一致ServerHelloDoneCertificateRequestClientKeyExange计算密钥计算密钥使用双方发送的随机数和预主密钥计算4个密钥Certifiate[ChangeCipherSpec]Finished*[ChangeCipherSpec]Finished*包含了之前所有握手消息的验证码ApplicationData*ApplicationData*交互应用数据通告对方用协商好的参与进行处理CertificateVerifyClosenotify*Closenotify*以可认证的方式通告服务器断开连接客户端服务器端P116图4.5使用客户端认证的SSL4.2.5.3其它应用方式SSL的预主密钥生成方式密钥传输,RSA同时作为签名和加密算法。如普通握手流程、客服端认证。客户端选择预主密钥,使用服务器的公钥加密后发送给服务器。密钥协商方式生成共享密钥。D-H(见p.117图4.6):双方提供密钥素材来生成共享密钥。图中红方框部分是有别于典型流程的地方。FORTEZZAClientHello算法、随机数(用于防止密钥推导和重放攻击)ServerHello算法,随机数,会话IDCertificate证书ServerHelloDone对各种算法达成一致ServerKeyExchange用服务器公钥加密的密钥素材计算密钥计算密钥使用双方发送的随机数和密钥素材计算预主密钥[ChangeCipherSpec]Finished*[ChangeCipherSpec]Finished*ApplicationData*ApplicationData*交互应用数据通告对方用协商好的参与进行处理Closenotify*Closenotify*以可认证的方式通告服务器断开连接ClientKeyExchange密钥素材客户端服务器端p.117图4.6用D-H交换生成预共享密钥的SSL流程4.3密钥导出预主密钥不直接用于保护数据,而是生成4个用于数据保护的会话密钥:服务器写加密密钥(Esc)、服务器写MAC密钥(Msc):分别用于服务器发出数据的加密和消息验证码计算。客户端写加密密钥(Ecs)、客户端写MAC密钥(Mcs):分别用于客户端发出数据的加密和消息验证码计算。4.3密钥导出密钥导出图示见P.118图4.7,各参数的计算公式见p.118-p.119,计算过程步骤如下:1.由预主密钥、客户端随机数和服务器端随机数共同生成主密钥。2.由主密钥、客户端随机数和服务器端随机数共同生成密钥分组。3.把密钥分组分成6块,按照所需的密钥长度依次截取得到Mcs、Msc、Ecs、Esc、IVcs(客户端初始向量)、和IVsc(服务器初始向量)。4.4SSLv3记录记录层是SSL的数据承载层,记录是它的数据传输单位。握手、警告、更改密码规范和高层协议数据都要封装到SSL记录中投递。SSL标准以规范语言描述记录格式及处理过程。杂项:/*…*/表示注释数字:unit8,unit16,unit24,unit32,unit64向量:元素序列,定长向量:TT’[n],变长向量:TT’floor..ceiling枚举:enum{e1(v1),e2(v2),..,en(vn)[[,(n)]]}Te;结构:struct{T1f1;T2f2;…;Tnfn;}[[T]];变体:根据实际选择符不同可以选择不同的数据常量:赋值即给一个变量赋予常量值。4.4SSLv3记录变体格式:struct{T1f1;T2f2;…Tnfn;Select(E){casee1:Te1;casee2:Te2;…caseen:Ten;}[[fv]]}[[Tv]];4.2SSLv3记录记录层对数据处理过程:1.分片:将高层协议数据分段,在每个分片添加一个记录头。2.压缩:提供数据传输效率,把SSLPlaintext转化为SSLCompressed结构。3.计算MAC4.加密接收方对数据处理的过程(发送方的逆过程):1.解密2.验证MAC3.解压4.分片重组4.2SSLv3记录SSL发送方数据处理过程,中文图见p.122图4.84.2SSLv3记录记录头结构定义:分片:SSLPlaintext(定义见p.1224.4.2.1节)压缩:SSLCompressed(定义见p.1234.4.2.2节)加密:SSLCiphertext(定义见p.1234.4.2.3节)SS
本文标题:安全协议ppt-第4章-传输层安全SSL和TLS
链接地址:https://www.777doc.com/doc-4741349 .html