




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SSL/TLS协议总结1 SSL/ TLS简介SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。2 SSL/TLS在协议栈中的位置SSL/TLS协议指定了一种在应用程序协议(如HTTP 、FTP和SMTP 等)和 TCP/IP 协议之间提供数据安全性分层的机制,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,它在协议栈中的位置如图2-1。图2-1 SSL/TLS在协议栈中的位置3 SSL协议SSL由多个协议组成,采用两层协议体系结构,如图3-1所示。图3-1 SSL协议栈SSL协议包括两个子协议:SSL记录协议和SSL握手协议(包括改变密码规范协议和告警协议)。SSL记录协议规定了数据传输格式,SSL握手协议使得服务器和客户能够相互认证对方的身份,协商加密和MAC(消息认证码,Message Authentification Code)算法以及用来保护SSL记录中发送的数据的加密密钥。这中间,客户和服务器之间需要交换大量信息。信息交换的目的是为了实现SSL的以下功能:1)认证服务器身份;2) 认证客户端身份;3)使用公钥加密技术产生共享秘密信息;4)建立加密的SSL连接。SSL支持众多加密、哈希和签名算法,使得服务器在选择算法时有很大的灵活性,这样就可以根据以往的算法、进出口限制或者最新开发的算法来进行选择。具体选择什么样的算法,双方可以在建立协议会话之初进行协商。SSL的两个重要概念是SSL会话和SSL连接,具体定义如下:连接:连接是能够提供合适服务类型的传输。对SSL,这种连接是对等的、暂时的。每个连接都和一个会话相关。会话:SSL会话是指客户机和服务器之间的关联。会话由握手协议创建,会话定义了一组可以被多个连接共用的密码安全参数。对于每个连接,可以利用会话来避免对新的安全参数进行代价昂贵的协商。在任意通信双方之间(例如在客户机和服务器上的HTTP应用程序),可能有多个安全连接。理论上,双方可以存在多个同时的会话,但在实践上大都是一对一关系。一个SSL会话是有状态(Stateful)的,由SSL握手协议负责协调客户机和服务器之间的状态。逻辑上有两种状态,一是当前操作状态,另外是(在握手协议期间)未决状态。此外,还需维持独立的读和写状态。当客户机或者服务器接收到改变码规范消息时,它就会拷贝未决读状态为当前读状态。当客户机或者服务器发送一条改变密码规范消息时,它就会拷贝未决写状态为当前写状态。当握手协商完成时,客户机和服务器交换改变密码规范消息,然后它们之间的后续通信采用新近达成的密码规范进行处理。会话状态包含下列元素:会话标识符(Session Identifier):由服务器选择的用来识别一个激活的或可恢复的会话状态的一个任意字节序列。对等实体证书(Peer Certificate):X509.v3证书。该元素状态可为空。压缩方法(Compression Method):压缩数据的算法。密码规范(Cipher Spec):制定了分组数据加密算法(例如,null, DES等)以及MAC算法(例如,MD5或SHA)。同样还定义了密码属性,例如哈希长度。主秘密(Master Secret):客户机和服务器共享的48字节共享秘密。是否可恢复(Is Resumable):确定该会话是否可用于发起新连接的标志。连接状态包含下列元素:服务器和客户机随机数(Server and Client Random):服务器和客户机为每个连接选择的字节序列。服务器写MAC秘密(Server Write MAC Secret):服务器所写数据的MAC操作秘密。客户机写MAC秘密(Client Write MAC Secret):客户机所写数据的MAC操作秘密。服务器写密钥(Server Write Key):服务器加密数据和客户机解密数据的分组密码密钥。客户机写密钥(Client Write Key):客户机加密数据和服务器解密数据的分组密码密钥。初始化向量(Initialization Vectors):当使用CBC模式的分组密码时,每个密钥都需要一个初始化向量。该域首次由SSL握手协议初始化。其后每条记录的最后密文块保留作为下一条记录的IV。序列号(Sequence Numbers):对于每次连接,双方都各自维护自己的序列号用于传输和接收的消息。每当某一方发送或者接收一条改变密码规范消息,都将把序列号设成零。序列号的类型为uint64,其值不能超过264-1。 3.1 SSL记录协议SSL协议的底层是记录协议层。SSL记录协议在客户机和服务器之间传输应用数据和SSL控制数据,其间有可能对数据进行分段或者把多个高层协议数据组合成单个数据单元。它最多能够传送16 384个字节的数据块。图3-2描述了SSL记录协议的整个操作过程。第一步是分段。每一个高层消息都要分段,使其长度不超过214字节。第二步可选择是否进行压缩。目前的版本没有指定压缩算法,但压缩必须是无损的,而且不会增加1024字节以上长度的内容。一般我们总希望压缩是缩短了数据而不是扩大了数据,但是对于非常短的数据块,由于格式原因,有可能压缩算法的输出长于输入。下一步是给压缩后的数据计算消息验证码,MAC使用下面公式进行计算:hash(MAC_write_secret+pad_2+hash(MAC_write_secret+pad_1+seq_num+SSLCompressed.type+SSLCompressed.length+SSLCompressed.fragment);图3-2 SSL记录协议其中,+代表连接操作;MAC_write_secret为客户服务器共享的秘密;pad_1为字符0x36重复48次(MD5)或40次(SHA);pad_2为字符0x5c重复48次(MD5)或40次(SHA);seq_num为消息序列号;hash为哈希算法;SSLCompressed.type为处理分段的高层协议类型;SSLCompressed.length为压缩分段的长度;SSLCompressed.fragment为压缩分段(没有压缩时,就是明文分段)。需注意的是MAC运算要先于加密运算进行。接着,使用对称加密算法给添加了MAC的压缩消息进行加密。而且加密不能增加1024字节以上的内容长度。实现SSL记录协议的最后一步是添加报头,它包含以下字段:内容类型(8位):所封装分段的高层协议类型。主版本(8位):使用SSL协议的主要版本号。对SSLv3值为3。次版本(8位):使用SSL协议的次要版本号。对SSLv3值为0。压缩长度(16位):分段的字节长度,不能超过214+2048。图3-3描述了SSL记录头格式。图3-3 SSL记录头格式3.2 SSL握手协议SSL中最复杂的部分就是握手协议。该协议允许客户和服务器相互验证、协商加密和MAC算法以及保密密钥,用来保护SSL记录发送的数据。握手协议由一系列客户机和服务器的交换消息来实现。该过程根据服务器是否配置要求提供服务器证书或者请求客户端证书而不同。 客户(client)端发送ClientHello信息给服务器(Server)端,Server回答ServerHello。这个过程建立的安全参数包括Version(协议版本)、Session ID(会话标识)、Cipher Suite(所支持的加密算法)、(Compression Method)压缩方法。另外,还交换两个随机数:C1ientHello.Random和ServerHello.Random,用于计算机“会话主密钥”。 Cipher Suite(所支持的加密算法)包括以下三部分:1)密钥交换方法(Key Exchange Method) 2)数据传输加密算法(Cipher for Data Transfer) 3)计算消息认证码的消息摘要方法(Message Digest for Creating the MAC)。密钥交换方法定义了如何得到加密客户和服务器之间传输的应用数据的对称密码学密钥。SSL 3.0支持使用数字证书的RSA密钥交换以及无数字证书的Diffie-Hellman密钥交换。在选择密钥交换方法时还得考虑是否使用数字签名来验证交换信息,如果使用,选择哪种签名算法。用私钥进行签名可以确保产生共享密钥的交换消息免遭中间人攻击。SSL使用传统加密算法(对称密码学)来加密会话消息。现在可能的选择有以下三种,包括无加密选项:a没有加密(No Encryption);b流密码(Stream Ciphers):包括RC4(40比特密钥)和RC4(128比特密钥)c CBC分组密码(CBC Block Ciphers):包括RC2(40 bit密钥)、DES40、DES、3DES、IDEA和Fortezza。SSL支持的消息摘要函数包括:a没有消息摘要(Null Choice)b MD5,128比特哈希c安全哈希算法(SHA),160比特哈希。 Hello消息发送完后,Server端会发送它的证书和密钥交换信息。如果Server端被认证,它就会请求Client端的证书,在验证以后,Server就发送HelloDone消息,以示达成了握手协议,即双方握手接通。 Server请求Client证书时,Client要返回证书或返回没有证书的指示,这种情况用于单向认证,即客户端不装有证书。然后,Client发送密钥交换消息。 服务器Server此时要回答“握手完成”消息(Finished),以示完整的握手消息交换已经全部完成。 握手协议完成后,Client端即可与Ser
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 远程教育平台合作运营协议
- 高端家政服务雇佣保姆合同范本协议书
- 文化产业股权置换与知识产权转让协议
- 离婚后共同财产管理协议书
- 金融科技股权认缴出资与金融服务合作协议
- 知识产权运营公司股权投资与转让协议范本
- 股东内部承包经营科技创新项目合作协议
- 股权终止及反洗钱协议
- 公益捐赠图书活动方案
- 公益演练活动方案
- GB/T 20021-2005帆布芯耐热输送带
- 成功八步课件
- 模具保养记录表
- 形象店加盟管理方案
- 1.《郑人买履》课件PPT
- T∕ZS 0128-2020 既有建筑结构安全智慧监测技术规程
- 发电机定子绕组泄漏电流和直流耐压试验作业指导书
- 甘肃省生态功能区划
- DB22∕T 1073-2011 绿色淫羊藿生产技术规程
- 教练技术LP三阶段教练手册
- 国家开放大学《人文英语3》章节测试参考答案
评论
0/150
提交评论