资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,协议安全技术(安全协议实例),第,7,章 协议安全技术(安全协议实例),Conclusions,How to use the SSL in your security architecture,How Does SSL work,?,The Architecture of SSL,What is SSL?,2025/12/12 周五,第,7,章 协议安全技术(安全协议实例),Conclusions,How to use the SSL in your security architecture,How Does SSL work,?,The Architecture of SSL,What is SSL?,2025/12/12 周五,What is SSL,SSL:,S,ecure,S,ockets,L,ayer protocol,SSL is a secure protocol,between application layer and TCP layer,which provides confidential communication in un-secure network,2025/12/12 周五,ARP RARP,TCP,UDP,IP ICMP IGMP,SMTP,HTTP,TELNET,DNS,SNMP,应用层,传输层,网络层,网络接口层,回顾:,TCP/IP,协议栈,2025/12/12 周五,回顾:,TCP/IP,的安全性问题及其解决方法,ARP RARP,TCP,UDP,IP ICMP IGMP,SMTP,HTTP,TELNET,DNS,SNMP,应用层,传输层层,网络层,网络接口层,IP/IPSec,网络层安全,2025/12/12 周五,ARP RARP,TCP,UDP,IP ICMP IGMP,SMTP,HTTP,TELNET,DNS,SNMP,应用层,传输层层,网络层,网络接口层,SSl/TLS,SSL/TLS,传输层安全,回顾:,TCP/IP,的安全性问题及其解决方法,2025/12/12 周五,The Goals of SSL,Encryption,(加密),SSL,被设计用来使用,TCP,提供一个可靠的端到端安全服务,为两个通信实体之间提供,保密性,完整性,验证,(身份鉴别,),密钥交换,Scalability,(可扩展性),新的密钥算法可以容易的加入,Efficiency,(高效性),减少对,CPU,的使用,透明性,对应用层透明,2025/12/12 周五,The Goals of SSL(Cont.),透明性,DH,RSA,DES,RC4,IDEA,SHA,.,应用程序,.,Telnet,HTTP,FTP,TCP,SPX,.,Internet,Ethernet,可靠传输协议,SSL,协议实现,应用协议,明文数据流,密文数据流,2025/12/12 周五,History of SSL,Netscape,公司于,1994,开发,SSL v2 released in 1995,SSL v3 also released in 1995 due to bugs in v2,1996,年,IETF,成立工作组,Transport Layer Security(,TLS,)committee,1999,年推出,TLS v1,TLS v1 was based upon SSLv3,2003,年推出,TLS,扩展,2006,年推出,TLS v1.1,2025/12/12 周五,Cryptographic Feature of SSL,连接是保密的,,对称加密算法,用于数据加密,实体,的身份通过,公钥加密算法,得到验证,连接是可靠的,加密的,消息摘要,用于保证消息的完整性,2025/12/12 周五,Data Encryption:,RC2-40,RC4-128,DES,DES 40,3DES,IDEA,Fortezza,Message Digest:,MD5,SHA.,Key Exchange.,RSA,Fixed,Diffie-Hellman,Ephemeral,Diffie-Hellman,Anonymous,Diffie-Hellman,Fortezza,Data Compression:,PKZip,WinZip,gzip,.,Cryptographic Feature of SSL,2025/12/12 周五,第,7,章 协议安全技术(安全协议实例),Conclusions,How to use the SSL in your security architecture,How Does SSL work,?,The Architecture of SSL,What is SSL?,2025/12/12 周五,SSL,中的通信实体,通信实体,(,entity,)是指,SSL,的参与者,在,SSL v3,中定义了两个通信实体,客户,客户是协议的发起者,服务器,服务器是协议的响应者,SSL Server,(,SSL,服务器),SSL Client,(,SSL,客户,),2025/12/12 周五,SSL,的协议分层,IP,TCP,SSL Record Protocol,SSL Handshake Protocol,SSL Change Cipher Spec Protocol,SSL Alert Protocol,HTTP Protocol,握手协议:用来实现密钥交换和认证,记录层协议:用来安全传输数据,加密规约修改协议:启用新的密码参数,报警协议:报警和错误,2025/12/12 周五,一个问题,Question,:为什么在,SSL,中存在两层:记录层和握手层?,2025/12/12 周五,Key Terms of SSL,在,SSL,中,有几个关键概念;,SSL Session,(,SSL,会话),SSL Connection,(,SSL,连接),SSL Session State,(,SSL,会话状态),SSL Connection State,(,SSL,连接状态),2025/12/12 周五,SSL,会话,SSL session,(会话),an association between client&server,(是客户和服务器之间的一个关联),created by the Handshake Protocol,(通过握手协议来创建),define a set of cryptographic parameters,(定义了一套加密参数),may be shared by multiple,SSL connections,(可以被多个,SSL,连接共享),2025/12/12 周五,SSL,连接,SSL connection,(连接),a transient,peer-to-peer,communications link,(是一种通信实体具有对等关系的通信连接),associated with,one,SSL session,(与一个,SSL Session,关联),连接是瞬时的,用后即消失,2025/12/12 周五,连接,&,会话,会话是用来协商安全参数的(如加密算法等),连接是用来安全传输应用程序数据的(如加密传送消息),理论上,双方可以存在多个同时会话,但在实践中并未用到这个特性,在任意一对通信双方之间,也许会有多个安全连接,每个连接都只和一个会话相关,一个会话可能包含多个安全连接,会话定义了一组可以被多个连接共用的密码安全参数,对于每个连接,可以利用会话来避免对新的安全参数进行代价昂贵的协商,会话与连接的关系,2025/12/12 周五,连接,&,会话,会话与连接的关系,Connection,Session,2025/12/12 周五,SSL,Session&Session State,SSL session And Session States,(会话与会话状态),Session States(,会话状态):,标识一个具体的,SSL,会话的信息,客户和服务器必须存储已经建立的会话的及其响应会话状态的信息,会话状态信息供握手协议层使用,特别是恢复一个会话时,2025/12/12 周五,SSL,Session&Session State (Cont.),SSL Connection and Connection States,(连接与连接状态),Connection States(,连接状态),contains all the information in one specific connection,Only when the connection exists,the connection states will be remembered,2025/12/12 周五,SSL,Session&Session State (Cont.),Information of Session States,(内容),Session Identifier(,会话标识符),The X.509 certificates of Peer Certificate Server(Client),(客户或服务器的,X.509,证书,如果不需要验证,则该信息为空),Compression Methods,(压缩算法),Cipher Spec,(握手协议已经协商的一套加密参数),对称加密算法,MAC,算法,加密属性(包括,Hash,长度等),2025/12/12 周五,SSL,Session&Session State (Cont.),Connection States includes,(内容包括):,Server and client randoms:,本次连接的随机数(包括客户和服务器的),Server write MAC secrete(,服务器,MAC,计算密钥),:服务器对要发送的数据进行,hash,运算的,秘密值,,它也是客户接收时进行,Hash,运行的秘密值,Client write MAC secrete,(客户端,MAC,计算密钥),:客户对要发送的数据进行,Hash,运算的秘密值,它也是服务器接收数据时进行,hash,运算的秘密值,2025/12/12 周五,SSL,Session&Session State (Cont.),Server write key,(服务器发送数据的加密密钥),:服务器用来加密数据、客户用来解密数据的对称加密密钥,Client write key,(客户端发送数据的加密密钥),:客户用来加密、服务器用来解密的对称加密密钥,Initialization Vectors(IV),:采用密码反馈模式是的初始化向量,Sequence Vectors,:客户,/,服务器为其在一个连接中发送和接收消息分配的序列号,2025/12/12 周五,SSL,Session&Session State (Cont.),Write Key,(实际就是会话密钥),Client,Server,Client,Server,Key1,(,M1,),Key2,(,M2,),One Connection,2025/12/12 周五,SSL,Session&Session State (Cont.),MAC Secrete,(实际就是,MAC,运算的秘密值),Client,Server,Client,Server,HAC,(,S1,,,M1,),HAC,(,S2,,,M2,),One Connection,2025/12/12 周五,建立在可靠的传输协议(如,TCP,)基础上,提供连接安全性,保密性:使用,对称加密算法,完整性:使用,HMAC,算法,SSL Record protocol Layer,2025/12/12 周五,根据当前会话状态,给出压缩算法,,Cipher Spec,给出对称加密算法、,MAC,算法、密钥长度、,Hash,长度、,IV,长度,以及连接状态中给出的,Client,和,Server,的随机数、加密密钥、,MAC,秘密值、,IV,,消息序列号等,,对将要传送的数据实施以下操作,:,压缩,/,解压,加密,/,解密,MAC,计算,/MAC,校验,SSL Record protocol Layer(Cont.),2025/12/12 周五,用来封装高层的协议,Change Cipher Spec protocol,Alert protocol,Handshake protocol,Application protocol(HTTP,FTP,TELNET,et al),SSL Record protocol Layer(Cont.),2025/12/12 周五,Change Cipher Spec(Cont.),Question,:在,Change Cipher Spec,中,提到如果发送该消息后,将使用新的加密、压缩和,MAC,算法,请问:它和以前的这些信息是一个什么关系,(,换句话说,握手层协商的加密参数等何时对记录层生效),?,Answer:SSL,使用另外两个状态来管理这种关系,预备状态,当前操作状态,2025/12/12 周五,Pending State,(预备状态),用来保存握手协议协商的密码信息(如压缩、加密、计算,MAC,的算法以及密钥等),Current State,(当前状态),用来保存记录层正在使用的密码信息(如压缩、加密、计算,MAC,的算法以及密钥等),Change Cipher Spec(Cont.),2025/12/12 周五,SSL Client,SSL Server,SSL Record Protocol,当前状态,当前状态,SSL Handshake Protocol,SSL Change Cipher Spec Protocol,预备状态,预备状态,SSL Record Protocol,当前状态,当前状态,Change Cipher Spec(Cont.),2025/12/12 周五,Alert Protocol,:,SSL,警报协议,用于将,SSL,握手或者数据加密等过程有关的告警传输给对方,向对方发出警告或者中止当前连接,根据错误程度,,Alert,消息分为两类:,警告消息,(,warning Msg,)和,致命消息,(,Fatal Msg,),致命消息将导致连接被立即中止,并将与这个连接相关的会话(会话标识符)作废,以免这个会话被继续用来建立新的连接,Alert protocol,2025/12/12 周五,Alert protocol(Cont.),根据功能,,Alert,消息被分为两类:,Close_Notify,和,Error Alerts,Close_Notify:,通知对方关闭该连接,Alert Error,:通知对方关闭该连接,区别:,前者关闭的连接可以被恢复,后者不能,Alert,消息被加密传输,2025/12/12 周五,警告消息,(,Warning Msg,),结束通知,无证书,证书出错,不支持的证书,证书撤销,证书过期,未知证书,Alert protocol(Cont.),2025/12/12 周五,Alert protocol(Cont.),致命消息,(,Fatal Msg,),意外消息,MAC,记录出错,解压失败,握手失败,非法参数,2025/12/12 周五,警报协议格式,Level,Alert,字段取值,含义,Level,1,警告,2,SSL,即将关闭,Alert,xx,均为严重警告消息,yy,Alert protocol(Cont.),2025/12/12 周五,应用层协议,加密传输,不透明的内容(大于,1,字节),Application protocol,2025/12/12 周五,第,7,章 协议安全技术(安全协议实例),Conclusions,How to use the SSL in your security architecture,How Does SSL work,?,The Architecture of SSL,What is SSL?,2025/12/12 周五,发方,Step 1,分片:从上层接收任意大小的数据块(,Records,),Step 2,压缩:用当前会话状态中给出的压缩算法明文结构,SSLPlaintext,压缩为压缩记录,SSLCompressed,Step 3 MAC,计算:用当前会话状态中指定的,MAC,算法对,SSLCompressed,计算消息摘要,Step 4,机密:用加密算法加密压缩数据和消息摘要,形成密文结构,SSLCiphertext,Step 5,封装发送:将数据封装为可靠传输层协议的数据包,并发送到可靠传输层协议,Working Process of Record layer,2025/12/12 周五,Working Process of Record layer(Cont.),2025/12/12 周五,第一步:分片,Working Process of Record layer(Cont.),2025/12/12 周五,无损压缩,不会增加,1024,字节,以上长度的内容,(,短消息),没有默认压缩算法,第二步:压缩,Working Process of Record layer(Cont.),2025/12/12 周五,消息摘要计算,第三步:,MAC,计算,Working Process of Record layer(Cont.),2025/12/12 周五,消息摘要计算,第四步:加密,Working Process of Record layer(Cont.),2025/12/12 周五,SSL,协议头,消息摘要计算,第五步:封装发送,Working Process of Record layer(Cont.),2025/12/12 周五,Working Process of Record layer(Cont.),2025/12/12 周五,Working Process of Record layer(Cont.),2025/12/12 周五,练习,请给出记录层收方的工作流程,2025/12/12 周五,Working Process of Record layer(Cont.),2025/12/12 周五,问题,Question,:,Record protocol layer,中使用的密码及相关信息如何得到?,Answer,:由,handshake protocol,协商并进一步计算得到,。,2025/12/12 周五,握手协议,握手协议时,SSL,中最复杂的部分,此协议允许客户端和服务器相互认证、协商加密和,MAC,算法,保护数据使用的密钥通过,SSL,记录传递,握手协议在传递应用程序数据之前使用,Handshake protocol,2025/12/12 周五,握手协议层的功能,客户和服务器之间相互鉴别,协商密钥交换算法,协商加密算法和密钥,协商压缩算法,生成密钥,完成密钥交换,Handshake protocol,功能回顾,2025/12/12 周五,使用三个协议,SSL Handshake protocol,核心协议,SSL Change Cipher Spec,改变参数时使用,SSL Alert protocol,出现错误时使用,Handshake protocol,使用的协议,2025/12/12 周五,握手协议建立一个会话或者恢复一个会话,握手协议中每次握手都会生成新的密钥,,MAC,秘密值和初始化向量等。,Client,和,Server,之间要建立一个连接,必须进行握手过程,每次握手都会存在一个会话和一个连接,连接一定是新的,但会话可能是已经存在的。,Handshake protocol,的作用,2025/12/12 周五,握手协议本质上是一个,密钥交换协议,,但它也包含认证功能,因此可以视为认证和密钥交换协议,握手协议主要由四个过程组成,建立安全能力,服务器认证和密钥交换,客户端认证和密钥交换,完成,Question,:为什么需要服务器密钥交换和客户端密钥交换两个过程?,Answer,:因为,SSL,在同一个连接的两个方向采用不同的密钥,Handshake protocol,的本质,2025/12/12 周五,Client,Server,ClientHello-,ServerHello,-,Handshake protocol,的第一步,第一步完成:,(,1,)客户告诉服务器自己的要求或能力,(,2,)服务器按照自己的要求或能力选择并回应客户,2025/12/12 周五,Client,Server,Certificate*,ServerKeyExchange*,CertificateRequest*,Handshake protocol,的第二步,第二步完成(服务器):,(,1,)向客户证明自己的身份,(,2,)完成密钥交换,(,3,)向客户提出自己的认证要求(可选),(,4,)告诉客户自己本阶段结束,第二步完成(客户):,(,1,)向服务器证明自己的身份(可选),(,2,)完成密钥交换,(,3,)向服务器发送自己的,认证校验信息,(可选),(,4,)告诉服务器自己本阶段结束,2025/12/12 周五,Client,Server,ChangeCipherSpec,Finished -ChangeCipherSpec,ServerHello,-,Handshake protocol,总结,Certificate*,ServerKeyExchange*,CertificateRequest*,ChangeCipherSpec,Finished -ChangeCipherSpec,服务器),The Client Hello message,(a)SSL Version(highest)that is understood by the client.,(,SSL,版本号,),(b)A Random number to compute the secret key,(,随机数,,防重放攻击,记为,ClientHello.random,),(c)Session Identifier,(,会话标识,),0,:新建一个会话和连接,非,0,:在已有会话上建立连接,(d)Data Encryption to identify the encryption methods available to the Client,(,密码组,),包括两个部分,密钥交换算法(,Key Exchange,),密码规范(,cihper Spec,),(e)Data Compression method for message exchange,(,压缩方法,),2025/12/12 周五,Server Hello,(a)SSL Version(highest)that is understood by the client.,(,SSL,版本号,),(b)A Random number to compute the secret key,(,随机数,,防重放攻击,记为,ServerHello.random,),(c)Session Identifier,(,会话标识,),(d)Data Encryption to identify the encryption methods,(,密码组,),(e)Data Compression method for message compression,(,压缩方法,),SSL Client,SSL Server,Port 443,第一阶段:建立安全能力(服务器,-,客户),The Server Hello message,2025/12/12 周五,问题,两个遗留问题:,(,1,)消息如何产生,(,2,)哪些密码参数?,2025/12/12 周五,问题,客户端根据自己的实际情况构建,client Hello message,Question:How does the server compute the server hello message and send to client?,Answer:,a.SSL Version?,The highest the client available,b.A Random number to compute the secret key?,Server generate it and it is independent of clients number,c.Session Identifier,(会话标识),?,If the clients identifier is not 0 then the same as clients,else,generate a new identifier,d.Data Encryption to identify the encryption methods?,The one chose from clients encryption methods list.,e.Data Compression method for message compression?,The one chose from clients compression methods list,.,问题,1,:消息如何产生,2025/12/12 周五,密钥交换算法,:,1 RSA,密钥交换协议 客户端用服务器的,RSA,公钥加密的密钥(此时,客户端必须拥有服务器的公钥证书),2 DH,密钥交换协议,3 Fortezza,密钥交换协议,问题,2,:密码参数,压缩算法,密码规范,(CipherSpec),(,1,)固定,DH,:包含认证中心签发的,Diffie-Hellman,公钥参数的服务器证书(公钥证书包含客户端,Diffie-Hellman,公钥参数,该参数由客户端在证书数中提供,或者在密钥交换消息中提供),(,3,)匿名,DH,:使用基本的,Diffie-Hellman,(,2,)瞬时,Diffie-Hellman:,此技术用来创建一次性密钥。在这种情况下,,Diffie-Hellman,公钥在交换时使用服务器的,RSA,或者,DSS,私钥签名,客户端使用服务器的相应公钥验证签名,密码算法,MAC,算法密码类型:流密码或者分组密码是否可出口(只在美国以外使用),MAC,长度密钥材料,IV,大小,2025/12/12 周五,问题(续),Question,:,Why does SSL use three kind of DH algorithms?,Answer:Provides different security abilities,瞬时,DH,安全最高,匿名,DH,安全性最差,容易受到中间人攻击,2025/12/12 周五,Client Hello,SSL Client,SSL Server,Server Hello,握手协议工作过程第一步,2025/12/12 周五,握手协议工作过程第二步,如果需要对客户端进行认证,服务器开始发送自己的证书消息等。该过程一般包含四条消息:,证书消息(,Certificate,),服务器密钥交换消息(,Server_Key_Exchange),客户端证书请求消息(,Certificate_Request),服务器结束消息(,Server_Hello_Done,),2025/12/12 周五,第二阶段:服务器认证和密钥交换(服务器,-,客户),Certificate,The server Identifier information,A Digital Certificate of the sever information encrypted with the,CAs,Private Key,(也可能是一组证书),.,This contains the servers Public Key,(,包含服务器公钥,),说明:,服务器证书消息是服务器向客户端传送自己的证书,使得客户端知道服务器的公钥以及其他信息。,SSL Client,SSL Server,Port 443,The Server Certificate message,2025/12/12 周五,Server_key_Exchange,The Certificate type to indicate the type of public key,The Certificate Authority is a list of distinguished names of Certificate Authorities acceptable to the Server,说明:,(,1,)服务器密钥交换消息用来向客户端发送服务器自己的密钥信息,(,2,),The Server Key exchange message,不是必须的,如果使用了固定,Diffie-Hellman,或者,RSA,密钥交换,则不需要。,反之,如果使用匿名,Diffie-Hellman,、瞬时,Diffie-Hellman,、,Fortzza,或者服务器在使用,RSA,时仅用了,RSA,签名密钥。,RSA,:在第一阶段包含了服务器的公钥,固定,DH,:由于在固定,DH,中,服务器在第一阶段发送的证书消息中包含了服务器自己的公钥,SSL Client,SSL Server,Port 443,第二阶段:服务器认证和密钥交换(服务器,-,客户),Server Key exchange message,2025/12/12 周五,Certificate_Request,The Certificate type to indicate the type of public key(,证书类型,),(,1,),RSA,(,2,),DSS,(,3,),Diffie-Hellman,.,The Certificate Authority is a list of distinguished names of Certificate Authorities acceptable to the Server(,认证中心,CA,列表),服务器可以接受的认证中心列表,说明:,如果服务器不使用匿名,Diffie-Hellman,,则客户端证书请求消息是必须的。它的目的是要求客户端向自己发送证书等消息,以便进行认证。,SSL Client,SSL Server,Port 443,第二阶段:服务器认证和密钥交换(服务器,-,客户),The Client Certificate Request message,2025/12/12 周五,Server _Hello_Done,表明服务器的,hello,和相关信息结束,在此消息之后,服务器将等待客户端的应答,SSL Client,SSL Server,Port 443,第二阶段:服务器认证和密钥交换(服务器,-,客户),Server Done,message,2025/12/12 周五,SSL Client,SSL Server,Server Certificate,Client Certificate Request,Server Done Message,Server_key_Exchange,第二阶段:服务器认证和密钥交换(服务器,-,客户),总结,2025/12/12 周五,第三阶段:客户机验证和密钥交换,在接收到服务器完成消息之后,如果请求了证书,客户端需要验证服务器是否提供了合法的证书,检查,server_hello,参数是否可以接受,如果所有条件满足,则客户端向服务器发回一个或者多个消息:,1,)客户端证书消息(,Certificate),:如果服务器请求了证书,必须有该消息,2,)客户端密钥交换消息,(Client_Key_Exchange),:必须发送,3,)客户端证书校验消息(,Ceritificate_Verify),:可以发送,(,便于服务器验证自己的证书),2025/12/12 周五,Certificate,The Client Identifier information,A Digital Certificate of the client information,说明:,如果服务器请求了证书,但是客户端没有合适的证书,则发送”无证书警报“消息,SSL Client,SSL Server,Port 443,第三阶段:客户机验证和密钥交换(客户,-,服务器),Client Certificate,message,2025/12/12 周五,Client Key Exchange,The encrypted session key which will serve as a pre-master secret key encrypted with the servers public key.,说明:,如果是,RSA,,该消息包含客户端生成的,48,字节的,次密钥,(,pre-master secret key,),并使用服务器证书中的公钥或者服务器密钥交换消息中的,临时,RSA,密钥加密,,它用于生成,主密钥,(,master secret key,),如果是,Diffie-Hellman,,该消息包含客户端的,Diffie-Hellman,公钥参数,如果是,Fortezza,,则包含客户端的,Fortezza,参数,SSL Client,SSL Server,Port 443,第三阶段:客户机验证和密钥交换(客户,-,服务器),Client Key Exchange message,2025/12/12 周五,Certificate_Verify,说明:,Hash,签名很复杂,它对签名的所有消息即密钥信息等进行,Hash,运算,并用自己的私钥加密,从而即是有人盗用了客户端证书,也无法发送该证书验证消息,The Certificate Verify Message is composed of the,Hash value,of the clients certificate.,SSL Client,SSL Server,Port 443,第三阶段:客户机验证和密钥交换(客户,-,服务器),Certificate Verify Message,2025/12/12 周五,SSL Client,SSL Server,Certificate,Client Key Exchange,Certificate_Verify,第三阶段:客户机验证和密钥交换(客户,-,服务器),总结,2025/12/12 周五,第四阶段:完成,此阶段完成安全连接的设置,主要包含以下消息:,客户:,1,)客户端发送的修改密码规范消息(,Change_Cipher_Spec),2,)客户端发送的完成消息(,Finished),服务器,3,)服务器发送的修改密码规范消息(,Change_Cipher_Spec),4,)服务器发送的完成消息(,Finished),2025/12/12 周五,Change_Cipher_Spec,说明:,该消息不是握手协议的一部分,是使用修改密码规范协议来完成的,.,它通知服务器启用新的密钥和算法。,在此之后,客户端使用新的算法、密钥和密码发送新的完成消息,SSL Client,SSL Server,Port 443,The,Clients Change cipher spec,第四阶段:完成(客户,-,服务器),2025/12/12 周五,The Client Finish message is composed of,The client authenticates the server with a message encrypted wi
展开阅读全文