密码编码学与网络安全(第五版)课件:13-传输层安全.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《密码编码学与网络安全(第五版)课件:13-传输层安全.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码 编码 网络安全 第五 课件 13 传输 安全
- 资源描述:
-
1、Chapter 16 传输层安全传输层安全2022-1-20华中农业大学信息学院2第一部分第一部分 SSL/TLS协议协议nSSL (Secure Socket Layer)是一种在两个端)是一种在两个端实体(实体(End Entity)之间提供安全通道的协议。)之间提供安全通道的协议。n它具有保护传输数据以及识别通信实体的功能。它具有保护传输数据以及识别通信实体的功能。n安全通道是透明的安全通道是透明的nIETF 制定的制定的TLS(Transport Layer Security)版本是对版本是对Nescape公司的公司的SSL和和Microsoft公司的公司的PCT(Private Co
2、mmunication Technology)两个协议的综合和兼容。两个协议的综合和兼容。n重点讨论重点讨论SSL协议协议2022-1-20华中农业大学信息学院3SSL/TLS协议设计目标协议设计目标nSSL V2 设计目标设计目标q为满足为满足WEB安全通信而设计安全通信而设计q提供客户和服务器之间传输数据的保密性提供客户和服务器之间传输数据的保密性q服务器认证(客户端认证可选)服务器认证(客户端认证可选)nSSL V3设计目标设计目标q修正修正SSL V2中存在的多处安全问题中存在的多处安全问题q设计一种安全磋商多种加密算法的机制设计一种安全磋商多种加密算法的机制2022-1-20华中农业
3、大学信息学院4SSL提供了什么提供了什么nSSL提供了通道级别的安全提供了通道级别的安全: 连接的两端知道连接的两端知道所传输的数据是保密的所传输的数据是保密的,而且没有被篡改而且没有被篡改n几乎总是要对服务器进行认证几乎总是要对服务器进行认证n可选的客户端认证可选的客户端认证n针对异常情况的安全通知针对异常情况的安全通知q错误警示错误警示q关闭连接关闭连接n所有这些依赖于某些对系统的假定所有这些依赖于某些对系统的假定q假定已经正确产生了密钥数据并且假定已经正确产生了密钥数据并且q该密钥已被安全地保管该密钥已被安全地保管2022-1-20华中农业大学信息学院5SSL与与TCP/IPnSSL连接
4、非常类似于连接非常类似于“保密的保密的”的的TCP连接连接n位于位于TCP之上,应用层之下之上,应用层之下n几乎只能在几乎只能在TCP上运行,而不能在上运行,而不能在UDP或或IP上上运行,因而它依赖于可靠的传输协议运行,因而它依赖于可靠的传输协议n微软的微软的STLP和无线应用论坛的和无线应用论坛的WTLS均为意图均为意图在数据报传输层(如在数据报传输层(如UDP)上正确工作的变种。)上正确工作的变种。2022-1-20华中农业大学信息学院6SSL变种谱系树变种谱系树SSL V1(1994)未发布未发布SSL V2(1994)第一版第一版SSL V3(1995)TLS(19971999)PC
5、T(1995)STLP(1996)WTLS(1998)2022-1-20华中农业大学信息学院7用于用于WEB的的SSLn保护使用保护使用HTTP的的WEB通信通信n新的新的URL https:/n在浏览器中的表现在浏览器中的表现 qNETSCAPE:工具条上会显示一把钥匙:工具条上会显示一把钥匙qIE: 右下角显示右下角显示 一把锁一把锁n几乎所有的商业几乎所有的商业WEB服务器和浏览器都实现服务器和浏览器都实现了内置的了内置的SSL协议,通过配置即可使用协议,通过配置即可使用2022-1-20华中农业大学信息学院8在在SSL上构建一切上构建一切n除了除了HTTP 和和NNTP(SNEWS)外
6、,还可以)外,还可以用于用于SMTP、Telnet、FTP等,也可用于保护等,也可用于保护专有协议。专有协议。n协议端口标准化协议端口标准化n协议实现协议实现qOPENSSL (C语言实现)语言实现)qpureTLS (java 实现实现)qApacheSSL (针对(针对Apache服务器的实现)服务器的实现)qMod_ssl 2022-1-20华中农业大学信息学院9两个主要的协议两个主要的协议nSSL记录协议记录协议q建立在可靠的传输协议建立在可靠的传输协议(如如TCP)之上之上q它提供连接安全性,有两个特点它提供连接安全性,有两个特点n保密性,使用了对称加密算法保密性,使用了对称加密算法
7、n完整性,使用完整性,使用HMAC算法算法q用来封装高层的协议用来封装高层的协议nSSL握手协议握手协议q客户和服务器之间相互鉴别客户和服务器之间相互鉴别q协商加密算法和密钥协商加密算法和密钥q它提供连接安全性,有三个特点它提供连接安全性,有三个特点n身份鉴别,至少对一方实现鉴别,也可以是双向鉴别身份鉴别,至少对一方实现鉴别,也可以是双向鉴别n协商得到的共享密钥是安全的,中间人不能够知道协商得到的共享密钥是安全的,中间人不能够知道n协商过程是可靠的协商过程是可靠的2022-1-20华中农业大学信息学院10SSL的两个重要概念的两个重要概念nSSL连接(连接(connection)q一个连接是一
8、个提供一种合适类型服务的传输一个连接是一个提供一种合适类型服务的传输(OSI分层的定义)。分层的定义)。qSSL的连接是点对点的关系。的连接是点对点的关系。q连接是暂时的,每一个连接和一个会话关联。连接是暂时的,每一个连接和一个会话关联。nSSL会话(会话(session)q一个一个SSL会话是在客户与服务器之间的一个关联。会话是在客户与服务器之间的一个关联。会话由会话由Handshake Protocol创建。会话定义了创建。会话定义了一组可供多个连接共享的密码安全参数。一组可供多个连接共享的密码安全参数。q会话用以避免为每一个连接提供新的安全参数所会话用以避免为每一个连接提供新的安全参数所
9、需昂贵的协商代价。需昂贵的协商代价。2022-1-20华中农业大学信息学院11SSL基础针对基础针对RSA服务器认证的服务器认证的SSLnSSL灵活性:灵活性: q单向认证单向认证 和和 双向认证双向认证 认证加密认证加密 和和 认证认证q加密算法:加密算法: RSA DSS DH FORTEZZA n连接分为两个节段:连接分为两个节段:q握手阶段握手阶段 完成对服务器认证并建立加密密钥完成对服务器认证并建立加密密钥q数据传输阶段数据传输阶段 加密数据传输加密数据传输2022-1-20华中农业大学信息学院12握手协议握手协议n握手阶段的目的握手阶段的目的q客户和服务器协商保护数据的算法(及其具
10、体参数)客户和服务器协商保护数据的算法(及其具体参数)q确立在协商好的算法上使用的加密密钥确立在协商好的算法上使用的加密密钥q可选择对客户端进行认证可选择对客户端进行认证 client server-(1) 所支持的加密算法,随机数所支持的加密算法,随机数(2) 选中的加密算法,随机数,服务器证书选中的加密算法,随机数,服务器证书(3) 加密后的加密后的pre_master_secret(4) 计算相关演化密钥计算相关演化密钥 计算相关演化密钥计算相关演化密钥(5) 握手消息的握手消息的MAC值值(6) 握手消息的握手消息的MAC值值注:注: 1. pre_master_secret 可以由可
11、以由KDF(key derivation function)演化出)演化出master_secret ,最后再通过最后再通过master_secret 演化出系列加密密钥。演化出系列加密密钥。 2. 最后两步防止握手本身遭受篡改(如低强度密码算法替换等)最后两步防止握手本身遭受篡改(如低强度密码算法替换等). 3. 客户端和服务器端随机数的传输,防止重放攻击。客户端和服务器端随机数的传输,防止重放攻击。2022-1-20华中农业大学信息学院13握手消息握手消息 client server-握手:握手: ClientHello 握手:握手: ServerHello Certificate Ser
12、verHelloDone ClientKeyExchange (ChangeCipherSpec) Finished (ChangeCipherSpec) Finished2022-1-20华中农业大学信息学院14SSL 记录协议记录协议n实际的数据传输是使用实际的数据传输是使用SSL记录协议实现的记录协议实现的n数据流分割成一系列片段并加以传输,每个片断单独数据流分割成一系列片段并加以传输,每个片断单独保护和传输保护和传输n为实现完整性保护,对片段进行为实现完整性保护,对片段进行MAC保护保护n为实现机密性保护,对片段进行加密保护为实现机密性保护,对片段进行加密保护n传输的是安全记录传输的是
13、安全记录 2022-1-20华中农业大学信息学院15记录头记录头(Head)nContentType; 8位,上层协议类型位,上层协议类型nMajor version; Minnor version 16位,主次版本位,主次版本nCompressed Length:16位位 加密后数据的长度,不加密后数据的长度,不超过超过214+2048字节字节(SSL (SSL 几乎不用压缩几乎不用压缩, ,虽然支持虽然支持) )nEncryptedData fragment; 密文数据密文数据2022-1-20华中农业大学信息学院16记录负荷(记录负荷(Payload)n支持支持4种协议消息种协议消息:
14、application_data、alert、handshake、change_cipher_spec .nAlert协议消息:协议消息: 报警等级(报警等级(warning/fatal)+ 具体报具体报警编码警编码 2字节字节nchange_cipher_spec协议消息:协议消息: 1字节,将挂起状态字节,将挂起状态变成当前状态,指示在此之后的所有消息都将使用刚刚变成当前状态,指示在此之后的所有消息都将使用刚刚商定的密码进行加密。商定的密码进行加密。nhandshake协议消息:类型(协议消息:类型( 1字节字节 )长度()长度( 3字字节节 )消息,类型共)消息,类型共10种种2022-
15、1-20华中农业大学信息学院17记录负荷(记录负荷(Payload)2022-1-20华中农业大学信息学院18完整完整SSL会话握手协会话握手协议议交换交换Hello消息,对于算法、消息,对于算法、交换随机值等协商一致交换随机值等协商一致交换必要的密码参数,以便交换必要的密码参数,以便双方得到统一的双方得到统一的premaster secret交换证书和相应的密码信息,交换证书和相应的密码信息,以便进行身份认证以便进行身份认证产生产生master secret把安全参数提供给把安全参数提供给SSL记录层记录层检验双方是否已经获得同样检验双方是否已经获得同样的安全参数的安全参数2022-1-20
16、华中农业大学信息学院192022-1-20华中农业大学信息学院20第一阶段:建立起安全协商第一阶段:建立起安全协商n客户发送一个客户发送一个client_hello消息,包括以下参数:版消息,包括以下参数:版本、随机数本、随机数(32位时间戳位时间戳+28字节随机序列字节随机序列)、会话、会话ID、客户支持的密码算法列表客户支持的密码算法列表(CipherSuite)、客户支持、客户支持的压缩方法列表的压缩方法列表. .然后,客户等待服务器的然后,客户等待服务器的server_hello消息消息n服务器发送服务器发送server_hello消息,参数:客户建议的低消息,参数:客户建议的低版本以
17、及服务器支持的最高版本、服务器产生的随机版本以及服务器支持的最高版本、服务器产生的随机数、会话数、会话ID、服务器从客户建议的密码算法和压缩方、服务器从客户建议的密码算法和压缩方法中确定一套本次连接使用的确定方法法中确定一套本次连接使用的确定方法. .2022-1-20华中农业大学信息学院21CipherSuiten指定了密钥交换的方法,指定了密钥交换的方法,SSL支持以下一些方法:支持以下一些方法:qRSA,要求服务器提供一个,要求服务器提供一个RSA证书证书qDH(Diffie-Hellman),要求服务器的证书中包含了由,要求服务器的证书中包含了由CA签名的签名的DH公开参数。客户或者在
18、证书中提供公开参数。客户或者在证书中提供DH公开参数,或者在密钥公开参数,或者在密钥交换消息中提供此参数交换消息中提供此参数qEDH(Ephemeral Diffie-Hellman),产生临时的密钥,产生临时的密钥,DH公开公开参数由发送者的私钥进行签名,接收者用对应的公钥进行验证参数由发送者的私钥进行签名,接收者用对应的公钥进行验证q 匿名的匿名的DH,不加鉴别。会受到中间人攻击,不加鉴别。会受到中间人攻击n然后,指定以下信息然后,指定以下信息q加密算法和类型加密算法和类型(流还是分组密码算法流还是分组密码算法)qHMAC、MD5还是还是SHA-1q是否可出口是否可出口qHashSizeq
19、 Key Materialq IV Size2022-1-20华中农业大学信息学院22第二阶段:服务器鉴别和密钥交换第二阶段:服务器鉴别和密钥交换n服务器发送服务器发送certificate消息,消息包含一个消息,消息包含一个X.509证书,证书,或者一条证书链或者一条证书链q除了匿名除了匿名DH之外的密钥交换方法都需要之外的密钥交换方法都需要n服务器发送服务器发送server_key_exchange消息消息q可选的,有些情况下可以不需要。只有当可选的,有些情况下可以不需要。只有当certificate消息消息没有包含必需的数据的时候才发送此消息没有包含必需的数据的时候才发送此消息q消息包含
20、签名,被签名的内容包括两个随机数以及服消息包含签名,被签名的内容包括两个随机数以及服务器参数务器参数n服务器发送服务器发送certificate_request消息(可选)消息(可选)q非匿名非匿名server可以向客户请求一个证书可以向客户请求一个证书q包含证书类型和包含证书类型和CAsn服务器发送服务器发送server_hello_done, 然后等待应答然后等待应答2022-1-20华中农业大学信息学院23第二阶段:服务器鉴别和密钥交换第二阶段:服务器鉴别和密钥交换2022-1-20华中农业大学信息学院24第三阶段:客户鉴别和密钥交换第三阶段:客户鉴别和密钥交换n客户收到server_d
21、one消息后,它根据需要检查服务器提供的证书,并判断server_hello的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器。n如果服务器请求证书的话,则客户首先发送一个certificate消息,若客户没有证书,则发送一个no_certificate警告。 然后客户发送client_key_exchange消息,消息的内容取决于密钥交换的类型(如果是RSA,则含加密的PreMasterSecret)。n最后,客户发送一个certificate_verify消息(可选),其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名20
22、22-1-20华中农业大学信息学院25第三阶段:客户鉴别和密钥交换第三阶段:客户鉴别和密钥交换2022-1-20华中农业大学信息学院26第四阶段:结束第四阶段:结束n第四阶段建立起一个安全的连接n客户发送一个change_cipher_spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中n然后,客户用本次连接协商的算法、密钥参数发送一个finished消息,这条消息可以检查密钥交换和鉴别过程是否已经成功。其中包括一个校验值,对所有以来的消息进行校验。n服务器同样发送change_cipher_spec消息和finished消息。n握手过程完成,客户和服务器可以交换应用层
23、数据。2022-1-20华中农业大学信息学院27第四阶段:结束第四阶段:结束2022-1-20华中农业大学信息学院28密钥交换算法密钥交换算法nSSL记录协议需要:记录协议需要:CipherSuite, master secret, the client & server random valuesn在在hello消息中,交换随机数以及各种算法消息中,交换随机数以及各种算法n两类密钥交换算法:两类密钥交换算法:qRSA,客户产生一个,客户产生一个48字节的字节的pre_master_secret,然,然后通过服务器的公钥传递给服务器后通过服务器的公钥传递给服务器qDiffie-Hellman,
24、双方协商得到的密钥被用作,双方协商得到的密钥被用作pre_master_secretn对于各种密钥交换算法,从对于各种密钥交换算法,从pre_master_secret计算得到计算得到Master_secret,然后从内存中删除,然后从内存中删除nMaster_secret总是总是48字节长,而字节长,而pre_master_secret长长度不定,取决于密钥交换算法度不定,取决于密钥交换算法2022-1-20华中农业大学信息学院29密钥导出密钥导出2022-1-20华中农业大学信息学院30Master_secret的产生的产生nSSL 3.0Master_secret =MD5(pre_ma
25、ster_secretSHA-1(Apre_master_secret| ClientHello.random ServerHello.random) MD5(pre_master_secretSHA-1(BBpre_master_secret| ClientHello.random ServerHello.random) MD5(pre_master_secretSHA-1(CCCpre_master_secret| ClientHello.random ServerHello.random)n TLS 1.0master_secret = PRF(pre_master_secret, “m
展开阅读全文