SSLTLS协议-信息安全概论课件与复习提纲.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《SSLTLS协议-信息安全概论课件与复习提纲.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSLTLS 协议 信息 安全 概论 课件 复习 提纲
- 资源描述:
-
1、11SSL/TLS协议协议1994年年Netscape开发了开发了SSL(Secure Socket Layer)协议,专门用于保护协议,专门用于保护Web通讯通讯版本和历史版本和历史n1.0,不成熟,不成熟n2.0,基本上解决了,基本上解决了Web通讯的安全问题通讯的安全问题Microsoft公司发布了公司发布了PCT(Private Communication Technology),并在,并在IE中支持中支持n3.0,1996年发布,增加了一些算法,修改了一些缺陷年发布,增加了一些算法,修改了一些缺陷nTLS 1.0(Transport Layer Security, 也被称为也被称为S
2、SL 3.1),1997年年IETF发布了发布了Draft,同时,同时,Microsoft宣宣布放弃布放弃PCT,与,与Netscape一起支持一起支持TLS 1.0n1999年,发布年,发布RFC 2246(The TLS Protocol v1.0)22SSL/TLS协议协议协议的设计目标协议的设计目标n为两个通讯个体之间提供保密性和完整性为两个通讯个体之间提供保密性和完整性(身份认证身份认证)n互操作性、可扩展性、相对效率互操作性、可扩展性、相对效率协议的使用协议的使用33采用的基本技术采用的基本技术主要是为应用层数据提供传输中的安全。它所主要是为应用层数据提供传输中的安全。它所采用的基
3、本技术为:采用的基本技术为: (1)身份认证采用公开密钥体制;身份认证采用公开密钥体制; (2)数据保密采用对称密钥体制;数据保密采用对称密钥体制; (3)消息的完整性保护采用带密钥的消息认消息的完整性保护采用带密钥的消息认证码(证码(MAC)。)。SSL/TLS概况概况4566SSL/TLS协议栈协议栈TLS更改密码说明协议(更改密码说明协议(Change Cipher Spec)n保证可扩展性。保证可扩展性。TLS警告协议(警告协议(Alert Protocol)n产生必要的警告信息。产生必要的警告信息。77TLS体系结构如图所示,它位于传输层之上、体系结构如图所示,它位于传输层之上、应用
4、层之下。它独立与应用层,使应用层可以应用层之下。它独立与应用层,使应用层可以直接建立在直接建立在TLS上。上。 TLS体系结构体系结构IP协议协议TCP协议协议纪录协议纪录协议握手协议握手协议更改密码说明协议更改密码说明协议警告协议警告协议HTTP协议协议 Telnet协议协议 88TLS会话会话TLS Session定义:定义:n指客户和服务器之间的一个关联关系。通过指客户和服务器之间的一个关联关系。通过TLS握手协议创建握手协议创建session,它确定了一组密,它确定了一组密码算法的参数。码算法的参数。Session可以被多个连接共享,可以被多个连接共享,从而可以避免为每个连接协商新的安
5、全参数而从而可以避免为每个连接协商新的安全参数而带来带来 昂贵的开销。昂贵的开销。nTLS Session都有一个当前状态都有一个当前状态TLS connectionn与底层协议的点对点连接相关联与底层协议的点对点连接相关联n每个每个connection都与一个都与一个session相关联相关联n连接是短暂的连接是短暂的99TLS会话状态会话状态会话实际上是一组参数,包括会话实际上是一组参数,包括nSession identifier,字节序列,由服务器产生,用来,字节序列,由服务器产生,用来标识一个会话状态标识一个会话状态nPeer certificate(可以为可以为NULL),对方的,对
6、方的X.509 v3证证书书nCompression method,压缩数据的算法,压缩数据的算法nCipher spec,指定数据加密算法和用于,指定数据加密算法和用于HMAC的散列的散列算法,以及算法的有关参数算法,以及算法的有关参数nMaster secret, 客户和服务器之间共享的客户和服务器之间共享的48字节的数字节的数据据nIs resumable,标记是否这个会话可以被用来初始化,标记是否这个会话可以被用来初始化一个新的连接一个新的连接1010TLS连接的状态连接的状态连接状态也包含一组参数连接状态也包含一组参数nServer and client random,客户和服务器为
7、每个连,客户和服务器为每个连接选择的字节序列接选择的字节序列nServer write MAC secret,服务器在发送数据的时,服务器在发送数据的时候,用于候,用于MAC运算的运算的keynClient write MAC secret ,客户在发送数据的时候,客户在发送数据的时候,用于用于MAC运算的运算的keynServer write key,服务器加密数据的密钥,以及客,服务器加密数据的密钥,以及客户解密数据的密钥户解密数据的密钥nClient write key,客户加密数据的密钥,以及服务器,客户加密数据的密钥,以及服务器解密数据的密钥解密数据的密钥nInitializatio
8、n vectors,在密码块链接,在密码块链接(CBC)模式中模式中用到的用到的IV,最初由握手协议初始化,以后,每一个记,最初由握手协议初始化,以后,每一个记录的最后一个密文块被用作下一个记录的录的最后一个密文块被用作下一个记录的IVnSequence numbers,每一个连接都需要维护一个序,每一个连接都需要维护一个序 列号,当密码参数变化时,重置为列号,当密码参数变化时,重置为01111TLS记录协议记录协议操作过程示意图操作过程示意图1212TLS记录协议中的操作记录协议中的操作第一步,第一步,fragmentationn上层消息的数据被分片成上层消息的数据被分片成214字节大小的块
9、,或者更小字节大小的块,或者更小第二步,第二步,compression(可选可选)n必须是无损压缩,如果数据增加的话,则增加部分的必须是无损压缩,如果数据增加的话,则增加部分的长度不超过长度不超过1024字节字节第三步,计算消息认证码第三步,计算消息认证码(MAC)n计算公式:计算公式:HMAC_hash(MAC_write_secret, HMAC_hash(MAC_write_secret, seq_num seq_num | TLSCompressed.type | TLSCompressed.type | TLSCompressed.version | TLSCompressed.ve
10、rsion | TLSCompressed.length | TLSCompressed.length | TLSCompressed.fragment)| TLSCompressed.fragment)1313TLS记录协议中的操作记录协议中的操作(续续)第四步,第四步,encryptionn采用密码块链接采用密码块链接(CBC) 加密,算法由加密,算法由cipher spec参数指定参数指定n数据长度不超过数据长度不超过214+2048字节,包括字节,包括加密之后的数据内容加密之后的数据内容HMACpadding, 共共padding_lengthnIV,初始协商指定,以后,前后记录连接起
11、来,初始协商指定,以后,前后记录连接起来n说明:如果是流密码算法,则不需要说明:如果是流密码算法,则不需要padding1414TLS记录协议的处理结果记录协议的处理结果结果如下:结果如下: struct struct ContentType type; 8 ContentType type; 8位,上层协议类型位,上层协议类型 ProtocolVersion version; 16ProtocolVersion version; 16位,主次版本位,主次版本 uint16 length; uint16 length; 加密后数据的长度,加密后数据的长度, 不超过不超过2 21414+2048
12、+2048字节字节 EncryptedData fragment; EncryptedData fragment; 密文数据密文数据 TLSCiphertext; TLSCiphertext;1515TLS密码变化协议密码变化协议它位于它位于TLS记录协议之上记录协议之上n所以,它用到了所以,它用到了TLS记录协议的处理过程记录协议的处理过程nContentType = 20n协议只包含一条消息,一个字节协议只包含一条消息,一个字节 1n用途:切换状态用途:切换状态把密码参数设置为当前状态把密码参数设置为当前状态在握手协议中,当安全参数在握手协议中,当安全参数协商一致后,发送此消息协商一致后,
13、发送此消息n这条消息使得接收方改变当这条消息使得接收方改变当前状态读参数,使得发送方前状态读参数,使得发送方改变当前状态写参数改变当前状态写参数1616TLS警告协议警告协议位于位于TLS记录协议之上记录协议之上n所以,也用到了所以,也用到了TLS记录协议的处理过程记录协议的处理过程nContentType = 21n协议数据包含两个字节协议数据包含两个字节第一个字节为第一个字节为level:分别为分别为warning(1)和和fatal(2)两种情况两种情况第二个字节为情况说明第二个字节为情况说明nFatal类型的类型的alert消息导致消息导致连接立即终止,此时,对应连接立即终止,此时,对
14、应该会话的其他连接可以继续,该会话的其他连接可以继续,但是会话标识符无效,以免但是会话标识符无效,以免利用此失败的连接来建立新利用此失败的连接来建立新的连接的连接1717Alert Protocol第二字节说明第二字节说明close_notify(0),close_notify(0),unexpected_message(10),unexpected_message(10),bad_record_mac(20),bad_record_mac(20),* *decryption_failed(21),decryption_failed(21),* *record_overflow(22), re
15、cord_overflow(22), * *decompression_failure(30),decompression_failure(30),* *handshake_failure(40),handshake_failure(40),* *bad_certificate(42),bad_certificate(42),unsupported_certificate(43),unsupported_certificate(43),certificate_revoked(44),certificate_revoked(44),certificate_expired(45),certific
16、ate_expired(45),certificate_unknown(46),certificate_unknown(46),illegal_parameter(47),illegal_parameter(47),* *unknown_ca(48), unknown_ca(48), * *access_denied(49),access_denied(49),decode_error(50),decode_error(50),* *decrypt_error(51),decrypt_error(51),export_restriction(60), export_restriction(60
17、), * *protocol_version(70), protocol_version(70), * *insufficient_security(71), insufficient_security(71), * *internal_error(80), internal_error(80), * *user_canceled(90), #user_canceled(90), #no_renegotiation(100), #no_renegotiation(100), #说明:说明:1 1 * * 表示该消息往往是表示该消息往往是fatalfatal级别级别2 # 2 # 表示该消息往往
18、是表示该消息往往是warningwarning级别级别3 3 对于其他的错误情况,发送方可以对于其他的错误情况,发送方可以根据情况决定是根据情况决定是warningwarning还是还是fatal,fatal,对于对于warningwarning消息,接收方可以自行消息,接收方可以自行决定如何处理,如果是决定如何处理,如果是fatalfatal消息,消息,则一定要当作则一定要当作fatalfatal消息来对待消息来对待1818TLS握手协议握手协议位于位于TLS记录协议之上记录协议之上n也用到了也用到了TLS记录协议的处理过程记录协议的处理过程nContentType = 22n协议格式协议格
19、式n用途:用途:当当TLS客户和服务器开始通讯的时候,它们要通过协商,在以客户和服务器开始通讯的时候,它们要通过协商,在以下信息方面获得一致下信息方面获得一致:协议版本、密码算法、是否认证对方、协议版本、密码算法、是否认证对方、用什么技术来产生共享秘密数据,等等用什么技术来产生共享秘密数据,等等1919TLS握手协议的流程握手协议的流程交换交换Hello消息,对于算法、消息,对于算法、交换随机值等协商一致交换随机值等协商一致交换必要的密码参数,以便交换必要的密码参数,以便双方得到统一的双方得到统一的premaster secret(一个用在对称加密(一个用在对称加密密钥生成中的密钥生成中的46
20、 字节的随字节的随机数字机数字 )交换证书和相应的密交换证书和相应的密 码信息,码信息,以便进行身份认证以便进行身份认证产生产生master secret把安全参数提供给把安全参数提供给TLS记录记录层层检验双方是否已经获得同样检验双方是否已经获得同样的安全参数的安全参数2020TLS握手协议使用的消息握手协议使用的消息消息消息参数参数hello_requestNullclient_hello版本,随机数,会话版本,随机数,会话id,密码参,密码参数,压缩方法数,压缩方法server_hellocertificateX.509 v3证书链证书链server_key_exchange参数,签名参
21、数,签名certificate_request类型,类型,CAsserver_doneNullcertificate_verify签名签名client_key_exchange参数,签名参数,签名finishedHash值值2121第一阶段:建立起安全能力属性第一阶段:建立起安全能力属性客户发送一个客户发送一个client_hello消息,包括以下参数:消息,包括以下参数:版本、随机数版本、随机数(32位时间戳位时间戳+28字节随机序列字节随机序列)、会话、会话ID、客户支持的密码算法列表客户支持的密码算法列表(CipherSuite)、客户支持的压、客户支持的压缩方法列表缩方法列表然后,客户
22、等待服务器的然后,客户等待服务器的server_hello消息消息服务器发送服务器发送server_hello消息,参数:消息,参数:客户建议的低版本以及服务器支持的最高版本、服务器产客户建议的低版本以及服务器支持的最高版本、服务器产生的随机数、会话生的随机数、会话ID、服务器从客户建议的密码算法中、服务器从客户建议的密码算法中挑出一套、服务器从客户建议的压缩方法中挑出一个挑出一套、服务器从客户建议的压缩方法中挑出一个2222关于会话关于会话ID(Session ID)客户方客户方n客户指定的会话客户指定的会话ID如果不等于如果不等于0,则表示它希望基于这,则表示它希望基于这个会话来更新已有连
23、接的安全参数,或者创建一个新个会话来更新已有连接的安全参数,或者创建一个新的连接的连接n如果会话如果会话ID等于等于0,则表示客户希望在一个新的会话上,则表示客户希望在一个新的会话上建立一个新的连接建立一个新的连接服务器服务器n或者同意客户指定的会话或者同意客户指定的会话ID,需要检查,需要检查cache中的会中的会话状态话状态n或者返回一个新的会话或者返回一个新的会话ID2323CipherSuite第一个元素指定了密钥交换的方法,第一个元素指定了密钥交换的方法,TLS支持以下一些方法:支持以下一些方法:nRSA,要求服务器提供一个,要求服务器提供一个RSA证书证书nDH(Diffie-He
24、llman),要求服务器的证书中包含了由,要求服务器的证书中包含了由CA签名的签名的DH公开公开参数。客户或者在证书中提供参数。客户或者在证书中提供DH公开参数,或者在密钥公开参数,或者在密钥 交换消息中提供交换消息中提供此参数此参数nEDH(Ephemeral Diffie-Hellman),产生临时的密钥,产生临时的密钥,DH公开参数由公开参数由发送者的私钥进行签名,接收者用对应的公钥进行验证发送者的私钥进行签名,接收者用对应的公钥进行验证n匿名的匿名的DH,不加认证。会受到中间人攻击,不加认证。会受到中间人攻击然后,指定以下信息然后,指定以下信息n加密算法,和类型加密算法,和类型(流还是
25、分组密码算法流还是分组密码算法)nHMAC算法,算法,MD5还是还是SHA-1nHashSizenKey MaterialnIV Size2424第二阶段:服务器认证和密钥交换第二阶段:服务器认证和密钥交换服务器发送自己的证书,消息包含一个服务器发送自己的证书,消息包含一个X.509证书,或者证书,或者一条证书链一条证书链n除了匿名除了匿名DH之外的密钥交换方法都需要之外的密钥交换方法都需要服务器发送服务器发送server_key_exchange消息消息n可选的,有些情况下可以不需要。只有当服务器的证书没有包含可选的,有些情况下可以不需要。只有当服务器的证书没有包含必需的数据的时候才发送此消
展开阅读全文