




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章SSL和TLS,7.1SSL协议体系结构概述7.2SSL日志记录协议7.3密码更改规范协议7.4报警协议7.5握手协议7.6安全HTTP通信,7.1SSL协议体系结构概述,SSL可用作具有安全功能的标准TCP/IP套接字API,因此理论上,SSL无需任何修改即可用于所有TCP/IP应用程序实际上,SSL仅广泛用于HTTP连接,网络环境通信公司希望将其用于其他应用程序类型,如网络传输协议(NNTP)和Telnet。相应的免费程序也可以在internet上找到(/)。图7-1SSL基于可靠的面向连接的网络层协议(即TCP/IP)和应用层协议(例如HTTP)之间的TCP/IP,如图7-1所示。提供客户端和服务器之间的安全通信。这意味着双方相互验证,使用消息的数字签名提供完整性,通过加密提供消息机密性。SSL由使用双层协议体系结构的多个协议组成,如图7-2所示。图7-2SS协议堆栈,SSL协议包括两个子协议:SSL日志记录协议和SSL握手协议,包括密码更改规范协议和警报协议。SSL日志记录协议提供了数据传输格式,服务器和客户可以使用此格式验证彼此的身份,协商加密和MAC算法,以及用于保护从SSL记录发送的数据的加密密钥。其中,客户和服务器之间需要交换大量信息。信息交换的目的是实现以下SSL功能:服务器认证;认证客户端id;使用公钥加密技术生成共享机密信息。建立加密的SSL连接。安全套接字协议支持许多加密、散列和签名算法,因此服务器在选择算法时具有很大的灵活性,可以根据以前的算法、进出口限制或最近开发的算法进行选择。具体选择什么算法,双方可以在协议会初期进行协商。SSL的两个重要概念是SSL会话和SSL连接,定义如下:连接:连接是可以提供适当服务类型的传输。对于SSL,此连接是对等的,是临时的。每个连接都与一个会话相关联。会话:SSL会话表示客户端和服务器之间的相关性。会话由握手协议创建。会话定义了一组可在多个连接之间共享的密码安全参数。对于每个连接,可以利用会话避免对新安全参数进行昂贵的协商。客户端和服务器的所有通信方(包括HTTP应用程序)之间可以有多个安全连接。理论上可以存在两个或多个并发会话,但实际上大部分是一对一关系。SSL会话是SSL握手协议协调客户端和服务器之间状态的状态。逻辑上有两种状态。一个当前运行,另一个处于挂起状态(握手协议之一)。此外,必须保持单独的读写状态。客户端或服务器收到更改代码规范消息后,待定读取状态将变为当前读取状态。客户端或服务器发送密码规格更改消息时,待定写入状态将复制到当前写入状态。握手协商完成后,客户端和服务器交换将更改密码规范消息,然后将它们之间的后续通信视为新同意的密码规范。会话状态包含以下元素:会话标识符:服务器选择的用于标识活动或可恢复会话状态的任意字节序列。对等认证:x509.v3证书。此元素状态可以为空。压缩方法:压缩数据的算法。密码规格(CipherSpec):开发了数据包数据加密算法(例如null、DES等)和MAC算法(例如MD5或SHA)。还定义了密码属性,如散列长度。主秘密:客户端和服务器共享的48字节共享秘密。是否可恢复:确定该会话是否可用于启动新连接的标志。连接状态由以下元素组成:服务器和客户端随机数(ServerandClientRandom):服务器和客户端为每个连接选择的字节顺序。服务器编写MAC秘密:服务器编写的数据的MAC操作秘密。客户端写入MAC秘密:客户端写入的数据的MAC操作秘密。服务器写入密钥:分组加密密钥,服务器对数据进行加密,客户端对数据进行解密。客户端写入密钥:客户端加密和解密数据的组加密密钥。初始化向量:在CBC模式下使用组密码时,每个键需要初始化向量。此域最初由SSL握手协议初始化。此后,每条记录的最后一个校准块仍为下一条记录的IV。SequenceNumbers(序列号):对于每个连接,保持各自的序列号用于发送和接收的消息。每当一方发送或接收密码规格更改消息时,序列号均设置为0。序列号的类型为uint64,其值不能超过264-1。7.2SSL日志记录协议。默认的SSL协议是日志记录协议层。SSL事件记录协议在客户机和服务器之间传输应用程序数据和SSL控制数据。数据可以分段,也可以将多个高级协议数据合并为单个数据单元。可以传输多达16384字节的数据块。图7-3显示了SSL日志记录协议的整体操作过程。第一步是分段。每个高级消息必须分段,以使其不超过214字节。在第二步中,选择是否压缩。当前版本未指定压缩算法,但压缩必须是非破坏性的,并且不会增加超过1024字节的长度。压缩通常希望减少数据而不是数据扩展,但是由于格式原因,对于非常短的块,压缩算法的输出可能比输入长。下一步是计算压缩数据的消息验证代码,MAC要求hash(MAC _ write _ secret pad _ 2 hash(MAC _ write _ secret pad _ 1 seq _ num SSL compress图7-3SSL日志记录协议。其中,表示连接操作。MAC_write_secret是客户服务器共享的秘密。Pad_1对文字0 x36重复48次(MD5)或40次(sha)。Pad_2对字符0 x5c重复48次(MD5)或40次(sha)。Seq_num是消息序列号。散列算法。SSLCompressed.type是处理分段的高级协议类型。SSLCompressed.length是压缩段的长度。SSLCompressed.fragment是压缩段(未压缩时为纯文本段)。请注意,MAC运算必须在加密运算之前执行。使用对称加密算法加密添加了MAC的压缩消息。而且加密不能增加超过1024字节的内容长度。实施SSL日志记录协议的最后一步是添加标头。标头包含以下字段:内容类型(8位):打包的段高级协议类型。主要版本(8位):使用SSL协议的主要版本号。对于SSLv3,值为3。次要版本(8位):使用SSL协议的次要版本号。对于SSLv3,值为0。压缩长度(16位):分段的字节长度,不能超过214 2048。图7-4描述了SSL标头格式。图7-更改使用4SSL标头格式、7.3 SSL日志记录协议的三个特定协议之一(由SSL标头格式的“内容类型”字段确定)或最简单的协议“密码规格协议”(图7-5(见a)。协议由单字节消息组成。密码规格变更通讯协定用于从一种加密演算法转换为另一种加密演算法。通常,加密规范仅在SSL握手协议结束时更改,但实际上可以随时更改。图7-7.4报警协议,该协议是可通过5sl日志记录协议的有效负载、SSL日志记录协议发送的特定类型的消息。警示包含两部分:警示层次和警示说明。编码为8位。警报消息也经过压缩和加密。警告有两个级别,如表7-1所示。第二个字节包含特定的警告代码,如表7-2所示。表7-1预警级别、表7-2预警类型、7.5握手协议、SSL的最复杂部分是握手协议。此协议允许客户和服务器相互验证和协商加密和MAC算法以及安全密钥,以保护从SSL记录发送的数据。握手协议作为一系列客户端和服务器的交换消息实现。此过程取决于服务器配置要求提供服务器证书或请求客户端证书。同样,管理密码信息可能需要其他握手步骤。下面描述了典型的SSL握手过程,如图7-6所示。图7-6简单的握手顺序,客户端和服务器端握手协议协商和共享数据传输过程中使用的密码组(cipher suite)。设置客户和服务器之间的会话密钥,共享可选的客户认证服务器。可选的服务器认证客户,第一步:与客户交换服务器Hello消息。客户端首先开始交换。Hello消息的功能是设置以下安全参数:协议版本:客户端可以实现的最高版本号。会话id:可变长度的会话id。密码套件:客户机支持的加密算法列表,按优先级降序排序。压缩方法:客户端支持的压缩模式列表。两者都必须生成随机数并在Hello消息中交换。密码组协商允许您选择客户端和服务器都支持的密码组。SSL3.0协议规范定义了31个密码组。密码组由以下组件组成:密钥交换方法(keyexhangemethod) 数据传输加密算法(CipherforDataTransfer),计算消息身份验证代码的消息摘要方法(MessageDigestforCreatingtheMAC)密钥交换方法是加密的客户和服务器SSL3.0支持使用数字证书交换RSA密钥和不带数字证书的Diffie-Hellman密钥。选择密钥交换方法时,还必须考虑是否使用数字签名验证交换信息,如果使用,则选择什么签名算法。用私钥签名可以使生成共享密钥的交换消息免于中间人攻击。SSL使用现有加密算法(对称加密)加密会话消息。无加密选项:无加密流密码(StreamCiphers)RC4(40位密钥)RC4(128位密钥)CBC包密码(cbcbcblockciphers) RC2无消息摘要MD5、128位散列安全散列算法(SHA),160位散列第二阶段是通过以下四条消息实现的实际密钥交换过程:(1)ServerCertificate消息:Hello消息后发送,用于服务器验证。(2)ServerKeyExchange消息:如果服务器没有证书或只有注册证书,服务器将发送服务器密钥交换消息。(3)ClientCertificate消息:服务器发送请求后,客户将发送所有请求的证书。如果没有证书,客户将发出未经认证的警告。(4)ClientKeyExchange消息:此消息的具体内容取决于您在Hello消息中选择的密钥交换类型。在此阶段,发送具有签名功能的证书(例如RSA或DSS证书)的客户可以明确发送证书确认消息进行验证。此消息由两个消息验证码组成。一个使用MD5算法计算,另一个使用SHA算法计算,如下所示:certificate verify . signature . MD5 _ hash:MD5(master _ secret pad _ 2 MD5)certificate . signature . sha _ hash:sha(master _ secret pad _ 2sha(hand shake _ messages master _ secret pad _ 2sha)、pad_1和pad_2与先前的MAC定义相同。handshake_message表示在client_hello消息之后发送和接收的所有handshakeprotocol消息,此证书验证消息除外。然后使用用户私钥加密,以确认客户端私钥的所有权。,最后一步客户端发送change_cipher_spec消息并更改自己的状态。随后的消息将使用新的密码组规则进行操作。然后客户端使用新密码组规范立即发送finished消息。同一服务器发送其change_cipher_spec消息,然后将暂挂状态密码组复制到当前密码组,并发送finished消息。此时,客户端和服务器处于同步状态,可以通过完成整个握手过程开始应用层的数据交换。SSL握手协议、SSL更改密码规范协议、SSL警告协议和应用层协议的数据封装在SSL日志记录协议中。封装的协议作为数据发送到低级协议进行处理。7.6安全HTTP通信,SSL最常见的用途是在浏览器和WWW服务器之间实现安全web HTTP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东广告策划自考试题及答案
- 篮协培训考试题及答案
- 木刻水印雕刻版员数字化技能考核试卷及答案
- 课件无法打开的原因
- 课件旋转平移路径
- 真空制盐工协同作业考核试卷及答案
- 压电石英片烧银焊线工5S管理考核试卷及答案
- 基础强化自考专业(行政管理)试题【历年真题】附答案
- 钢渣处理工质量追溯知识考核试卷及答案
- 2025年康复医学科患者康复方案制定考核试题答案及解析
- 《江苏省工程勘察设计收费导则》2024
- T-CALC 007-2025 重症监护病房成人患者人文关怀规范
- 2025年全国禁毒知识竞赛题库(共100题附答案)
- 储能站施工组织设计施工技术方案(技术标)
- ktv消防安全培训制度
- GB/T 44923-2024成年人三维头部模型
- 公司固定资产管理办法与实施细则
- 傣医学中的月疗褥疗法治疗
- 小学生-竞选纪律委员
- 心内科心衰一病一品护理成果汇报
- 孕产妇心理危机干预应急预案
评论
0/150
提交评论