




已阅读5页,还剩74页未读, 继续免费阅读
(通信与信息系统专业论文)基于tpm的ssl+vpn协议改进.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海交通大学硕士学位论文 摘要 i 基于 tpm 的 ssl vpn协议改进 摘 要 虚拟专用网 vpn 是一种充分利用隧道、认证、加密等技术手 段,使用户可以利用现有的 internet 公共网络,安全地远程访问内 部网络资源的网络系统。 在实现 vpn 的各类协议中,ssl/tls 协议具有简洁、实用的 优点,由此构建的 ssl vpn灵活、快速、简单。但是 ssl vpn协 议的简单性导致了其特有的安全性问题:由于 ssl 协议实际建立 在 ip 层之上,vpn 的安全性依赖于下层服务的安全性。此外,所 有的 vpn 协议都采用传统的对称或非对称加密方式保护数据,当 操作系统受到攻击或破坏(例如私钥泄漏、丢失等)的情况下, vpn的安全性将会受到严重破坏等等。 可信计算(trusted computing) 是根据当前实际网络攻击特性 提出的一种新的安全思想。传统 tcp/ip 协议的重要局限性之一, 是缺少对网络接入终端的验证机制。可信计算的思想在于建立以 tpm(trusted platform module)为核心的网络接入终端的安全构 架。通过 tpm,我们能够从终端的体系结构这一层次解决信息系 统的安全问题。 本文在详细分析 ssl vpn 协议体系结构和安全性特点的基础 上,考虑网络安全的实际特性,利用 tpm 技术,提出在不改变现 有的协议构架的情况下,通过扩展 tls 握手协议改进 ssl vpn的 安全缺陷。本文详细描述了该基于可信计算的 tls 扩展协议内 容,协议设计和实现的思路,并对比标准的 tls 协议测试了本文 提出的解决方案的性能,最后给出了基于本方案的三类电子商务 ssl vpn的部署实例。 本文提出和设计的系统,能够符合硬件安全技术新的发展方 向,在保证和传统 ssl vpn系统兼容的前提下,提高了 vpn系统 上海交通大学硕士学位论文 摘要 ii 安全性并且保证了系统性能,具有很好的现实意义。 关键字: tpm,可信计算,ssl,vpn,握手协议,改进 上海交通大学硕士学位论文 abstract iii research of enhancement of ssl vpn protocol based on tpm abstract vpn systems, which are mainly based on techniques such as tunnel, authorization and encryption, enable us to communicate in the open internet environment without worrying about the threats from endorsement, unauthorized access or several other attacking methods. according to its implementation and protocol level, the current vpn systems can be divided into three classes: l2tp, which is working on data- link level, ipsec vpn, network level, and ssl vpn, which is session level. ipsec vpn is the most widely deployed one, which replaces the tradition tcp/ip kernel protocols stack with its own. ssl vpn is much more simple and flexible when compared with ipsec vpn, and now has got fast growth in both large enterprises and small business units. but every coin has two sides, basing on high level protocol gives ssl vpn the flexibility to adjust to various application environments, while make it vulnerable to attacks from lower levels. so it s quite reasonable that we try to find a solution to those problems. trusted computing is a new solution to the current information security. it s enables end- to- end machine level authorization mechanism. trusted platform module (tpm) is the key component of the above concept. we can use this little facility to solve some of the most difficult security problems from machine level. tpm has also become more and more widely used in the last few years. this paper designs the enhancement of ssl vpn system based on tpm. by studying the protocol and communication details of ssl vpn, we present the tpm based solution in order to be compatible with the now widely deployed ssl vpn system, we extend the tls handshake protocol with tpm facilities, and give a detailed description about how it works. 上海交通大学硕士学位论文 abstract iv inorder to analyze the solution presented in this paper, we implement and test extended tls handshake protocol, as well as the standard tls handshake protocol which is used to campare with. by comparing the testing result we can better understand this solution. and finally we give some examples of its use in the electronic commerce. the extended handshake protocol designed in this paper makes a good enhancement to the current ssl vpn system. key words: tpm, trusted computing, ssl, vpn, handshake protocol, enhancement 上海交通大学硕士学文论文 英文缩略语表 v 英文缩略语表 英文缩略语 英文全称 中文对照 aik attstation identity key 证言身份密钥 ek endorsement key 背书密钥 ca certificate authority 证书认证中心 mac message authentication code 消息鉴别码 pcr platform configure register 平台配置寄存器 rtm root of trust for measurement 可信度量根 rtr root of trust for report 可信报告根 rts root of trust for storage 可信存储根 sha secure hash algorithm 安全散列算法 ssl secure socket layer 安全套接层 tcg trust computing group 可信计算组织 tcpa trust computing platform alliance 可信计算平台联盟 tbb trusted building block 可信构建模块 tls transport layer security 传输层安全 tpm trusted platform module 可信平台模块 ts trusted subsystem 可信子系统 tss tcg software stack tcg软件协议栈 上海交通大学 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已 在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:龚振 日期:2009 年 2 月 25 日 上海交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在 年解密后适用本授权书。 本学位论文属于 不保密。 (请在以上方框内打“”) 学位论文作者签名:龚振 指导教师签名:陆松年 日期:2009 年 2 月 25 日 日期:2009 年 2 月 25 日 上海交通大学硕士学位论文 第一章 绪论 1 第一章 绪论 1 . 1 v p n 概述 随着信息技术和计算机网络的发展,越来越多的商务和政务活动通过互联网来 进行。无论是业务伙伴希望访问公司内部信息,还是企业的分支机构之间要求异地 通信,都需要在开放的 internet 网络上保证通信的安全性和机密性。解决这个问题 最早都采用架设专用线路的方法,但这种方法既缺少灵活性,又浪费资源,对于很 多中小型企业而言,费用也是难以负担的。 为了满足用户的需求并保证网络上的信息安全,人们不得不在网络的易用性与 安全性之间寻找一个平衡点,在足够安全的情况下,实现最大的易用性。 虚拟专用网 virtual private network(vpn)系统是解决该问题的最好方法。 vpn是一种充分利用隧道、认证、加密等技术手段,使用户可以利用现有 internet 公共网络,安全地远程访问内部网络资源的网络系统。通过 vpn服务器既能够实 现与整个企业网络的连接,又可以保证保密数据的安全性。路由器虽然也能够实现 网络之间的互联,但是并不能对流向敏感网络的数据进行限制。企业网络管理人员 通过使用 vpn服务器,指定只有符合特定身份要求的用户才能连接 vpn服务器获 得访问敏感信息的权利。此外,通过加密所有的 vpn数据,我们可以确保数据的 安全性。没有访问权利的用户无法看到其他部门的内部网络。vpn使通信双方通 过公共的 internet 能够以安全的方式通信,如同通信双方处于同一个子网上。和传 统的 vpn相比,现代 vpn系统功能已经不局限于通信本身,很多上层的管理功能 已被整合到 vpn系统中。 vpn的严格定义如下:vpn是一种通信环境,在这种环境中访问是被控制 的,仅仅是在一定的特定团体范围内对等连接才允许,同时 vpn是由公共通信媒 介中的一些分离的媒介构建而成,而这些公共的媒介提供普通的通用网络服务。 vpn有很多的分类标准,按照实现平台,可以分为软件 vpn、专用硬件vpn 和辅助硬件 vpn;按照连接模式,可以分为网络- 网络、主机- 网络两大类;而根据 vpn核心协议在 osi 7层协议栈中的位置,主要可以分为 3类:链路层 vpn,网 络层 vpn和应用层 vpn等。 按核心协议分类是 vpn分类方式中最重要的一种,因为核心协议从根本定义 了 vpn的工作方式、性能和特点。其中,链路层 vpn协议基于 osi网络模型的第 上海交通大学硕士学位论文 第一章 绪论 2 二层,最典型的实现是基于 l2tp协议的 vpn。目前,链路层 vpn主要由电信运 营商提供。 网络层 vpn基于 osi网络模型第三层,这一层最为广泛应用的 vpn实现为 ipsec vpn。ipsec vpn从根本上修改了内核 tcp/ip 协议栈,能够提供经过严格安 全证明的安全性,被广泛部署于政府,军队,银行等大型企业和部门。 应用层 vpn从严格意义上来说对应 osi七层协议的表示层和会话层,但对于 实际的 tcp/ip 网络构架,该 vpn处于应用层和传输层之间,例如 ssl/tls vpn。 1 . 2 s s l / t l s v p n 现状和发展趋势 ssl vpn开始是作为 ipsec vpn的补充而发展起来的。ipsec vpn作为最早被 广泛使用的 vpn解决方案,具有完整的理论结构和协议基础,在传统的 vpn市场 上具有强势地位。但 ipsec vpn最大的缺点在于太过复杂,使用、配置 vpn都需 要大量的人员培训,且由于 ipsec 需要更改 tcp/ip内核站栈中的 ip层,软件兼容 性和性能等方面都受到很大的影响。 在 c/s软件系统体系结构时代,ipsec vpn的缺点并没有表现的那么明显,随 着 web应用的广泛发展和 b/s软件体系结构时代的开始,ipsec对于简单灵活的 b/s应用越来越显得不合适。在这样的背景下,netscape公司提出 https和 ssl 协议用来保护 web通信协议 http的安全。主要的浏览器厂商都在其产品中加入 了对 ssl协议的支持。随后,ietf基于 ssl3.0协议发布了 tls 1.0,并修改协 议,将应用从 web扩展到整个应用层。 随着基于 web的应用越来越多,以及 b/s远程接入需求的增长,ssl vpn已 成为一个热门的市场。市场研究家们预计在今后几年中,ssl vpn设备的全球销 售将会出现持续增长。infonetics研究公司预测,ssl vpn市场将会从 2004年的 5600万美元增长到 2007年的 8.4亿美元。由于 ssl vpn在 vpn技术方面的独到 优势以及对市场前景的看好,国外很多大的网络安全厂商研发并推出了很多 ssl vpn产品,如 check point公司,cisco公司,juniper公司等。 但由于 ipsec vpn特有的基于底层协议的优越性,ssl vpn不大可能完全代 替 ipsec vpn,因为它们都有各自的优点,而且各自的缺点又不是能通过自身技术 可以克服的,因而从长远来看 ssl vpn和 ipsec vpn都会获得很好的发展。 与 ipsec vpn比较起来,ssl vpn在国内还只算是刚刚起步。ssl vpn在国 内市场不大,是因为中国的 vpn市场还处在初级阶段,很多用户的需求仅是网络 对网络的安全互联,这属于 ipsec vpn的适用范畴;而对 ssl vpn所支持的远程 上海交通大学硕士学位论文 第一章 绪论 3 安全访问 vpn需求不多,即使有需求,也是把它当作对 ipsec vpn技术的补充来 看待。但是,随着移动用户的大规模发展以及电子商务的规模化应用,基于 ssl 的 vpn市场将获得更大的发展。 1 . 3研究现状和研究意义 网络已经在我国的各个地域得到了迅速的普及,越来越多的企事业单位,政府 部门,金融、保险、证券等行业纷纷采用信息技术来提高业务处理能力。但是,网 络在给我们带来便利的同时,也给我们带来了信息安全的隐患,国内外的黑客对网 络的攻击事件时有发生,信息失密给我们带来了不可估量的损失。 ssl vpn系统的广泛使用,一方面有利于通信和信息交流的发展,另一方面 则对现有的 ssl产品安全性提出了更高的要求。和 ipsec vpn有专门的测试、认 证标准不同,ssl vpn产品并没有一个统一公正的测试标准。 现有的主流 ssl vpn产品主要是 tls1.0协议的硬件实现,通过硬件网关和加 密协处理器对转发数据包进行处理。虽然在具体实现上这些产品和软件 vpn不 同,但在在协议处理上是本质相同的。因此,研究现有 ssl vpn的安全性,并改 进其存在的缺陷,具有实际的工程意义。 目前国内外主要研究集中在 ssl vpn应用和 ssl vpn协议两个方向。前者包 括对于 ssl vpn在无线通信领域的 wtls协议9和路由器10上应用的研究,以及 为各种应用环境提供合适的解决方案等。 而在 ssl vpn协议本身方面,当前主要研究可以分为 ssl vpn的安全性研究 和系统性能研究两个方面。 关于 ssl vpn的安全性,已有不少文章对其进行了分析,如基于 ban、 rubin12的形式化分析,以及中间人攻击13 14 15对系统的威胁等。对于问题的改 进方案主要包括基于 ipsec或 socks16对 ssl vpn进行改进,或使用一次一密密 钥等。 在 ssl vpn的性能方面,目前主要有讨论 tls握手协议性能17 118,或采用 底层的硬件芯片加速19等提高 ssl vpn系统性能。 现在有的解决方案和分析都只是针对协议本身的安全性或者协议性能,没有提 出能够解决上述两个问题的方案,也很少给出实际的协议过程,更缺少对解决方案 的理论分析。目前已有的对 ssl vpn的改进往往既不够完善,也缺少实际工程意 义。 上海交通大学硕士学位论文 第一章 绪论 4 1 . 4 本文研究内容和章节安排 基于上述研究背景和工作意义,本文首先研究并分析了 ssl vpn现有的特点 和缺陷,接着分析了可信计算技术提出的背景、概念和功能,最后提出基于可信计 算的 ssl vpn改进解决方案。本课题研究受到国家 863计划信息安全重大项目 “信息安全工程实践综合实验平台研究与集成”和“仿真支撑平台”项目资助。 本文的结构安排如下: 第一章绪论,介绍 vpn和 ssl/tls vpn的发展概况,课题研究的背景和意 义。 第二章引入本文研究的主题,详细分析和研究了 ssl/tls协议内容,包括协 议栈、主要消息结构、ssl vpn建立的详细过程等,最后对比其他 vpn协议分析 了 ssl vpn的缺陷。 第三章首先定义了可信的概念,然后从全局上描述 tcg协议的主要框架,包 括最常见的 pc平台硬件构架、tss软件协议栈结构、tpm芯片硬件结构。在详细 分析信任链的传递这一可信计算的基本原理之后,描述了 tcg协议所定义的 tpm 访问接口:tpm数据结构、命令、各种密钥和证书等。本章最后讨论了 tpm命令 安全性。 第四章提出了基于 tpm的 ssl vpn协议的改进方案。考虑到现有广泛部署的 ssl vpn系统基于 tls1.0协议,本文提出改进方案更多考虑如何无缝扩展到现有 广泛部署的 ssl vpn系统。本章提出了基于 tpm的扩展握手协议,并给出了详细 的 ssl vpn建立过程的消息流、协议实现模块的设计和部分算法。通过详细分析 该协议,我们可以看出该解决方案能够很好的实现了我们的设计目标。 在第四章协议实现的基础上,第五章对本文提出系统的接口和实现模块进行了 执行时间上的测试。通过对比标准 tls握手协议的性能,我们可以进一步分析扩 展解决方案的优缺点。 第六章给出了基于 tpm的扩展 ssl vpn解决方案在电子商务领域部署三种典 型 vpn的实例。 第七章总结了全文主要的主要内容、创新点和本文的主要贡献,并分析了现有 方案需要进一步考虑和改进的地方。 上海交通大学硕士学位论文 第二章 tls协议分析 5 第二章 tls 协议分析 2 . 1 概述 ssl/tls vpn协议的基础来自于 netscape 公司的 ssl协议。安全套接层 (ssl secure socket layer)协议是 netscape 公司于 1994年提出的一个网络安全通 信协议,用于在两台机器之间提供安全的 http通道。它具有保护传输数据以及识 别通信机器的功能。 ssl3.0发布于 1995年,之后,ietf于 1999年将其扩展并提出了 tls (transport layer security)1.0协议(rfc2246)。7年后,ietf发布 tls1.1协 议。tls1.1协议对于 1.0的改进很少,而且考虑目前实际部署的产品都主要支持 tls1.0,本文也主要讨论 tls1.0协议。 ssl协议刚开始是作为应用层 http 协议的一个安全扩展,对应于实际 tcp/ip 协议栈属于应用层。随着 ieft将其扩展为适用于所有应用层的 vpn协 议,tls协议便对应 osi七层协议的表示层和会话层,因为该层次 vpn主要工作 为上层数据的压缩、加密等处理,以及会话的建立和管理等。实际的 tcp/ip 协议 中并没有表示层和会话层,虽然 tls协议全称为 transport layer security,但为了 保证 tls vpn部署的灵活性,tls vpn应该不涉及系统 tcp/ip 协议栈。 因此,ssl/tls vpn从功能和定义上属于表示层和会话层,但实现上属于应 用层。图 2- 1表示了 ssl vpn相对于 tcp/ip协议所在层次。 application tcpip ssltcp application ip 标准tcp/ip协议栈 包含ssl vpn的tcp/ip协议栈 图 2- 1 ssl在 tcp/ip 协议栈中的位置 figure 2- 1 position of ssl in the tcp/ip protocol stack 上海交通大学硕士学位论文 第二章 tls协议分析 6 如上文所述,ssl/tls协议在 tcp/ip 协议栈中的层次决定其实现上的矛盾 性。虽然 ssl vpn协议基础只有 ssl/tls协议,但当前对于 ssl vpn的定义却 有两种: (1)ssl vpn是完全基于 web的 vpn,不需要修改内核协议栈,也不要安 装例如 openvpn这样修改数据包处理流程的软件。整个系统的功能完全通过 web 浏览器实现。 (2)ssl vpn是一个和应用层无关的 vpn,但具体实现需要修改内核协议 栈,或者至少需要修改 tcp/ip 数据包处理流程。 这两种定义是本质不同的,前者定义基于获得广泛发展的 b/s构架,目前最常 见于电子商务等应用领域;而后者则对应于目前所有的应用。 就部署难度而言,前者定义的 vpn最简单,本质上就是基于 https或者其相 似协议建立的 web应用框架,而后者定义的 vpn则需要安装其他支持软件,可能 会有部署和系统兼容性问题。 考虑第二种定义的 ssl vpn和传统的 vpn功能定义最为接近,以及实际网络 中各种应用不可能全部采用 b/s构架,本文中所描述的 ssl vpn都是第二种定义 描述的 vpn系统。 2 . 2 t l s 协议栈 tls协议主要包括 4个相关协议:tls纪录层协议(record protocol);握手 协议(handshake protocol);告警协议(alert protocol)和修改加密器参数协议 (change cipher spec protocol)。其中最重要的是 tls握手协议,因为该协议定 义了通信双方身份鉴别和协商处理的过程,而其他三个协议都基于握手协议。 从协议的逻辑功能上来说,图 2- 2描述了 ssl协议栈。 tls record protocol tls handshake protocol application tcp 图 2- 2 ssl协议栈逻辑层次图 figure 2- 2 logical layout of ssl protocol stack 从协议数据结构和实际处理流程来说,ssl协议栈如图 2- 3所示。 上海交通大学硕士学位论文 第二章 tls协议分析 7 tls record protocol handshake protocolapplication tcp alert protocolchangecipherspec protocol 图 2- 3 ssl协议栈数据结构层次图 figure 2- 3 physical layout of ssl protocol stack 由此可见,应用层协议本质上和 tls协议是独立的,因而能够支持包括 web 在内的各种应用,这里也说明我们采用上述的第二种 ssl vpn的定义是合理的。 2 . 2 . 1纪录层协议 tls纪录层协议(tls record protocol)就是按照一组特定的参数,对上层的 数据包就行一系列预定义的处理过程。 图 2- 4给出了 tls纪录层发送数据的处理过程。 fragment compress mac encrypt 图 2- 4 ssl纪录层消息发送处理过程 figure 2- 4 processing of tls record protocol 发送端的分片保证记录层的操作的数据包的最大长度不会受上层应用协议影 响。对于低带宽使用环境(如无线网络),压缩处理能够更好的使用带宽。通过计 算 mac,我们可以保证消息的完整性,而对称加密可以保证通信的保密性。 上海交通大学硕士学位论文 第二章 tls协议分析 8 接收端则是相应的逆过程:接收端首先解密收到的 tls记录层数据包,计算 mac并验证传输数据的完整性,若验证无误则解压缩数据,并将相关的数据包重 组,最后发送给上层处理。 对于 tls记录协议而言,在 rfc2246中定义了 4种上层协议: (1)握手协议; (2)告警协议; (3)修改加密器参数协议; (4)应用层数据协议。 不同的上层数据包称为不同的记录类型,tls协议并没有仅仅限定这四种上层 协议,事实上,如果再增加新的上层协议,也往往是管理、控制类的协议,因为 “应用层数据协议”就概括了当 vpn建立之后,实际使用vpn的上层应用程序的 纪录数据的类型。 在发送和接收的过程中,通信双方使用同样的一组参数来进行处理纪录层数 据,这样一组参数和状态就被定义为该连接的连接状态(connection state)。连接 状态详细规定了记录层应该如何处理上层数据包,其内容包括: (1)压缩算法; (2)mac算法和共享的密钥; (3)加密算法和共享的密钥(若为 cbc模式的块加密,还有共享的 iv)。 在 tls纪录层,发送和接收的过程是独立的,即通信某一端的发送处理和接 收处理是独立的,但通信建立以后,通信双方的发送和接收连接状态采用相同的算 法计算。 从逻辑上来说,每时每刻某个连接总是有 4个连接状态:当前(current)的读 /写状态,和挂起(pending)的读/写状态。每一连接状态种都有自己的 cipher suite和算法参数,而对比 ipsec的协议,消息是由专门的连接参数(sa数据库) 来处理的。 当前读/写状态用于处理所有的通信(纪录层数据),而 tls的握手协议被用 来协商的挂起的读/写状态。tls握手协议可以使挂起状态中的任意一个(读或者写) 变成当前状态,之前的“当前状态”就被舍弃。 对于两个之前从没有通信过的实体,“当前状态”默认为没有压缩、mac或 加密,这样通信双方可以使用明文开始 tls的握手过程。 上海交通大学硕士学位论文 第二章 tls协议分析 9 2 . 2 . 2告警协议 tls告警协议(alter protocol)主要用来通告对方连接的关闭,或通信过程中 出现错误。每一个告警信息都包括告警内容和告警级别两个部分。告警消息主要分 为两大类:关闭 vpn连接告警(closure alerts)和错误告警(error alerts)。前 者用于通知对方 vpn连接即将关闭,避免截断攻击,而后者则说明消息发送方发 现错误。 对于警告(warning)级别的错误,由协议实现者决定如何处理;如果是严重 (fatal)级别,则会导致当前连接立即中断,并清除会话标识、密钥等所有状态参 数,并将该连接所属的会话设置为不可复用的。在这种情况下,与该会话相对应的 其他连接可以继续通信,但不能再复用该会话建立新的连接。 tls告警协议可能出现在 tls握手的过程,或应用程序通信的过程中,而告 警协议数据包本身作为纪录层的上层协议(图 2- 3),消息按照上节所定义的过程 进行处理。 2 . 2 . 3修改加密器参数协议 对于 tls纪录层协议而言,发送和接收所有纪录数据包都需要经过一系列的 处理过程。发送或接收数据包的处理工作的集合称之为一个 cipher suite,该参数 指明采用什么样的压缩、mac和加密算法。 修改加密器参数协议(change cipher spec protocol)本身只是 tls纪录层协 议的一个上层协议,这个消息可以被客户端或者服务器端发出,用来通知对方接下 来发送的纪录将要采用新协商的 cipher spec 和新生成的密钥来处理。 接收者收到消息后,立即将 tls纪录层的挂起读状态换为当前的读状态;发 送方发送完 change cipher spec消息后立即将 tls纪录层的挂起写状态变为当前写 状态,同时将原来的当前写状态舍弃,并将新的挂起状态初始化为一个空的状态。 2 . 2 . 4握手协议概述 tls握手有三个目的,第一,客户端与服务器端需要就一组用于保护数据的算 法达成一致。第二,它们需要确立一组加密密钥用于协商的算法。第三,握手还可 以选择性对客户端进行身份鉴别。在上层应用程序传输任何数据之前,都要先使用 握手协议建立 vpn以保证通信安全。 上海交通大学硕士学位论文 第二章 tls协议分析 10 通过握手协议,通信的双方能够协商出使用的一系列算法,用来完成对对方的 身份鉴别,并根据交换的预主密钥(premaster secret)计算出双方共享的、用于 tls纪录层处理的密钥参数。 tls握手协议定义了通信双方是首次建立连接,或通信双方之前已建立连接的 两种不同的情景,并定义了在这两种情况下消息流的具体过程。 握手协议的最终结果是通信双方协商一致,并经过验证,获得相同的 cipher suite和相同的加密参数,最后通过发送 tls修改加密器参数协议消息,通信双方 使用协商确定的新的 tls纪录层处理参数发送和接收新的数据包,由此完成 vpn 建立过程。 2 . 2 . 5 会话与连接 在 tls 中,会话(session)与连接(connection)是两个不同的概念。一个连 接只能属于一个会话,而一个会话可以包含多个连接。对于同一对通信双方而言, 可以没有,或有一个,或多个会话同时存在,而每一个会话中可能没有,或者有一 个,或者多个活动连接同时存在。 值得注意的是,对于 tls协议描述的连接状态而言,刚刚建立 tcp/udp 连接 的首次通信的双方都有一个当前的读/写状态(明文传输),这个状态是连接状 态,但此时通信双方没有发送任何握手消息,因而没有建立连接,也没有会话,只 有一组当前读/写状态和挂起的读/写状态。 tls纪录层协中,不同的连接的连接状态必然是不同的。事实上,当通信双方 首次建立连接时,当前的连接状态是明文传输,通过一个完整的握手协议协商出双 方共享的 cipher spec之后,通过 change cipher spec消息同时切换连接的收发状 态,以进入 vpn通信状态。 连接状态主要包含主密钥(master secret)、客户端和服务器端分别生成的随 机数、客户端和服务器端发送 mac密钥,对称加密发送密钥。如果加密采用cbc 模式的块加密的话,还包括客户端和服务器端的发送 iv等。 会话状态所包含的安全参数主要有会话标识符(session id)、协商的压缩算 法、mac和加密算法(cipher suite)、会话是否可复用的标志、预主密钥等。 如果会话是可复用的,那么当通信双方已经建立过会话(一个或多个会话,其 中包含过若干连接),想要建立新的连接时,可以复用之前握手已经协商过的一个 可复用的会话,通过一次简化的握手协议在当前的连接(可以是明文或者一个连 接)上新建一个连接。 上海交通大学硕士学位论文 第二章 tls协议分析 11 不同的连接状态必然是不同的,这样可以保证即使通信双方有多个会话,多个 连接同时存在,任意两个连接之间(无论是否在同一个会话)的加密保护是不同的 (即使 cipher spec 相同,初始密钥也不同)。 2 . 3握手过程 tls握手协议定义了两类握手过程:完整的握手过程和简化的握手过程。前者 用于通信双方之前没有建立过任何连接,而后者用于通信双方想用一个之前已经协 商过的可复用会话来建立连接。 2 . 3 . 1 完整的握手过程 完整的握手过程是之前没有通信过的双方建立 vpn的完整过程,该过程也对 应着绝大多数应用情况。图 2- 5给出了完整的握手过程消息流。 clientserver client hello server hello certificate * client key exchange server key exchange * certificate * certificate request * server hello done certificate verify * change cipher spec finished change cipher spec finished application data application data *为可选或需要发送的消息 图 2- 5 完整握手过程消息流图 figure 2- 5 message flow of a full handshake 上海交通大学硕士学位论文 第二章 tls协议分析 12 假设发起通信方为客户,而接收连接端为服务器。 当客户相应服务器端的 hello request消息,或者希望建立一个新的连接,或 者在当前连接上重新协商安全参数时,客户端会发送 client hello消息,消息中包 括: (1)客户端系统版本; (2)32字节的随机数,其中包含 4字节的系统时间; (3)会话 id,若为 0,则新建一个会话,否则复用之前的会话; (4)客户端支持的 cipher suites列表; (5)压缩算法列表,一般为空的列表。 其中的 cipher suite指明了通信双方采用什么样的算法来交换预主密钥,vpn 建立后,采用什么样的算法对记录层的数据进行处理。通信双方从预主密钥中计算 出记录层 mac和加密算法所需要的密钥。 客户端发送完 client hello消息后就进入等待状态。所有的 client hello消息一 般都是以明文的方式发送,或者是在某一个已经建立的连接上保密发送(用来协商 新的安全参数)。在发送 change cipher spec消息前,所有的客户端tls记录层处 理都与此消息相同。 服务器端接收到 client hello消息后,首先检查其中的会话id,判断客户端是 否要复用之前的会话,如果服务器愿意并且能够复用之前的会话,那么服务器端将 回复 server hello消息,内容包括: (1)服务器端系统版本; (2)32字节随机数,其中包括 4字节的系统时间; (3)会话 id,和 client hello中的相同; (4)服务器选择的 cipher suite,采用复用会话中的选项; (5)压缩算法,采用复用会话中的选项。 此时通信双方等于进入到 2.3.2节所述的简化的握手过程。 如果服务器不同意 client hello中提出的复用会话,那么服务器端将返回一个 不同的会话 id给客户端,同时从 client hello消息中的 cipher suites列表中选择一 个服务器端觉得最合适的。这个特定的 cipher spec决定后面的身份验证和密钥交 换过程。压缩算法的选择类似 cipher suite。 和客户端相同,对于服务器端而言,目前 tls记录层处理一般都是以明文发 送,或者是在一个已经建立的连接上发送,直到服务器端发送 change cipher spec 消息后才改变纪录层消息处理方法。 上海交通大学硕士学位论文 第二章 tls协议分析 13 无论是哪种 cipher spec,ssl协议中的密钥交换只有两种情况:采用 dh交换 密钥,或者采用 rsa非对称加/解密密钥,完成密钥交换的过程。 只要双方协商的密钥交换方法(key exchange method,cipher suite中参数) 不是匿名的话,服务器端一定要发送自己的证书。服务器端发送的 certificate消息 内容只有一个 x509v3的证书链,其中第一张证书是服务器证书,第二张证书为签 发服务器端证书的 ca证书,之后的每一张证书都是前一张证书签发者的证书,最 后一张证书为根 ca的证书。 客户端收到该证书链后,自后向前验证服务器端证书的合法性。 若没有特别定义,tls握手协议使用的 x509证书的签名算法必须和证书中公 钥的算法相同。在协议中定义的证书签名算法只有 dss和 rsa。dss只能用于签 名,而 rsa则可以用来签名和/或加密。对于 rsa算法,这里还需要考虑美国密 钥出口限制。 x509签名算法和证书中公钥的算法也有可能不相同,例如若密钥交换算法为 rsa_fixed_dh或 dss_fixed_dh,则该证书的签名算法为 rsa或 dss,而证书公钥为 diffie- hellman算法参数。 表 2- 1给出了可选的 cipher suite 中密钥交换方法和与之相匹配的服务器证书 类型。 表 2- 1 密钥交算算法和要求的服务器端证书类型匹配表 密钥交换算法 证书类型 rsa 证书公钥为 rsa,且必须可用于加密 rsa_export 若证书 rsa公钥长度大于 512位,该公 钥必须可被用来签名,若证书公钥长度 或小于等于 512位,该公钥必须可被用 来加密或签名 dhe_dss 证书公钥为 dss公钥 dhe_dss_export 证书公钥为 dss公钥 dhe_rsa 证书公钥为 rsa公钥,该公钥必须可用 来签名 dhe_rsa_export 证书公钥为 rsa公钥,该公钥必须可用 来签名 dh_dss 证书公钥为 diffie- hellman公钥,签发 该证书必须使用 dss密钥 dh_rsa 证书公钥为 diffie- hellman公钥,签发 该证书必须使用 rsa密钥 上海交通大学硕士学位论文 第二章 tls协议分析 14 server key exchange 消息发送与否完全取决于服务器端和客户端协商的 cipher suite值,以及目前两者之间共享的信息是否已经足够完成密钥交换。例如,当 cipher suite选择匿名(如 dh_anon)交换密钥时,服务器端不会发送证书,这时 必然需要发送 server key exchange 消息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能穿戴行业创新技术应用前景研究报告
- 巴彦淖尔市2025内蒙古巴彦淖尔市直属乌兰牧骑(市歌舞剧院)招聘演职人员10人笔试历年参考题库附带答案详解
- 软件买卖合同书范本6篇
- 商场三包培训课件
- 商品车日常安全培训课件
- 国家事业单位招聘2025中国农科院质标所招聘笔试笔试历年参考题库附带答案详解
- 引水管道项目技术协议书8篇
- 北京市2025北京市体育设施管理中心应届毕业生招聘2人笔试历年参考题库附带答案详解
- 2025陕西秦巴碧水环境检测有限公司招聘(10人)笔试参考题库附带答案详解
- 2025辽宁沈阳盛京资产管理集团有限公司所属子公司沈阳国际陆港集团有限责任公司招聘14人笔试参考题库附带答案详解
- 2025年度反洗钱阶段考试培训试考试题库(含答案)
- 收割芦苇施工方案
- 普通黄金现货购买合同8篇
- 三力测试考试题库及答案视频讲解
- 2025年河南省人民法院聘用书记员考试试题及答案
- 2025年中学教师资格考试《综合素质》核心考点与解析
- 口腔冠延长术
- 部编版七年级语文上册《闻王昌龄左迁龙标遥有此寄》课件
- 诊所经营管理课件
- 江苏亿洲再生资源科技有限公司资源综合利用技改提升项目 环评报告书
- 质量改进培训-课件
评论
0/150
提交评论