(计算机应用技术专业论文)ssltls在嵌入式系统中的研究与实现.pdf_第1页
(计算机应用技术专业论文)ssltls在嵌入式系统中的研究与实现.pdf_第2页
(计算机应用技术专业论文)ssltls在嵌入式系统中的研究与实现.pdf_第3页
(计算机应用技术专业论文)ssltls在嵌入式系统中的研究与实现.pdf_第4页
(计算机应用技术专业论文)ssltls在嵌入式系统中的研究与实现.pdf_第5页
已阅读5页,还剩121页未读 继续免费阅读

(计算机应用技术专业论文)ssltls在嵌入式系统中的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 本论文从事在嵌入式系统中研究和实现安全通信协议s s l t l s 的工 作。由于嵌入式系统的日益广泛应用,它与网络通信的结合也成为了一种 趋势。网络安全成为制约着嵌入式系统向更为广阔的应用领域扩展的一个 重要因素,在这种形式下,嵌入式网络安全产品的出现,刻不容缓。s s l t l s 是在i n t e m e t 上应用最为广泛的安全协议,将其与嵌入式系统结合起来, 使它的应用扩展到嵌入式终端、移动通信领域( 以w a p 2 0 为载体) ,成为 我们工作的重点。 在论文中间,我们首先对s s l t l s 的安全性做了逻辑分析和证明,然 后针对嵌入式计算环境给出了嵌入式s s u t l s 的设计和实现,完成了经过 严格测试的嵌入式s s l t l s 的软件产品,并在文章的最后提出了一个适合 嵌入式环境的网络协议开发模型,在嵌入式网络协议开发方面具有一定的 工程技术参考价值。 关键词:嵌入式系统,s s l t l s 网络协议开发 a b s t r a c t t h i sd i s s e r t a f i o nw o r k sb a s eo nt h er e s e a r c ha n di m p l e m e n t a t i o ns e c u r i t y c o m m u n i c a t i o n p r o t o c o l 一一s s l t l s i nt h ee m b e d d e d s y s t e m w i t h t h e e v o l u t i o no ft h ea p p l i c a t i o ni nt h ee m b e d d e ds y s t e m ,t h ee m b e d d e ds y s t e m i n t e r g r a d ew i t ht h en e t w o r kc o m b i n a t i o na l w a y sb e c o m e sat i d e h e n c et h e s e c u r i t yo f t h en e t w o r kc o m m u n t i o na sab o t t l e - n e c kt ot h ed e v e l o p m e n to ft h e e m b e d d e da p p l i c a t i o n ,i ti si m p o r t a n tt ob r i n ga b o u tt h ee m d e d d e dn e r t w o r k s e c u r i t yp r o d u c t s s s l t l si so n eo f t h em o s tp o p u l a t es e c u r ep r o t o c o li nt h e i n t e m e t ,o u rw o r k se m p h a s e si sc o m b i n ei tw i t ht h ee m b e d d e ds y s t e m sa n d e x t e n di t s a p p l i c a t i o n t ot h ee m b e d d e dt e r m i n a l sa n dt h ef i e l do fw i r e l e s s c o m m u n i c a t i o n ( t h r o u g h t h ew a p 2 o 、 i nt h i st h e s i s ,a tf i r s t ,w em a d ea l o g i c a la n a l y s i sa n dad e m o s t r a t i o nw i t h t h es e c u r e c a p a b i t i t y o ft h es s l t l s t h e nw e g i v e ad e s i g na n da i m p l e m e n t a t i o n o ft h es s l t l sb a s eo nt h ee m b e d d e d c o m p u t i n g e n v i r o n m e n t t h r o u 曲t h er i g o r o u st e s t m e n t ,w e a c h i e v eas u c c e s s f u l e m b e d d e ds s l t l sp r o d u c t a tl a s t ,w ep r o v i d eac o m m o nn e t w o r kp r o t o c o l d e v e l o p m e n tm o d e lf i t se m b e d d e de n v i r o n m e n t ,i th a ss o m er e f e r r e n c ev a l u e t ot h en e t w o r t p r o t o c o ld e v e l o p m e n t i nt he m b e d d e d s y s t e m k e y w o r d s :e m b e d d e ds y s t e m ,s s l t l s ,n e t w o r k p r o t o c o ld e v e l o p m e n t 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:j 垂丝 日期:。4 年? a 月偌日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:j 奎篮导师签名:痉 日期:二舯垆年憎月如日 硕士论文;s s l 在嵌入式系统中的研究与实现 引言 f n t e r n e t 的美够2 处在于你和每个人都能互据连接 f n t e j n e t 的司怡2 链在于每个人都能和你互掘连接。 - 计算机世弊1 9 9 9 自从7 0 年代中期i n t e r a c t 从实验室诞生以来,在这3 0 多年当中,象 所有新生事物一样,以惊人的速度发展着,并以它的技术魅力,改变着人 类的生产和生活方式。到今天,围绕i n t e r a c t 的应用也在令人期待的朝气 蓬勃的发展着,已经不在仅仅是以原始的互连和通讯为目的的简单工具, 象网络游戏、电子商务、电子政务等等高端的应用,已经陆陆续续悄然的 进入人们的日常生活,因此今天的i n t e m e t ,俨然已经发展成为一个薪兴 的产业。 在今天,基于使用了数十年的t c p f l p 技术的i n t e m e t ,承载了如此之 多的希望和责任,可能是他的发明者当初所没有想到的。正象所有的传统 产业一样,当i n t e m e t 的应用发展到达一个比较成熟的阶段之时,人们自 然而然的对它提出了一个要求,那就是这个技术能给人们提供的服务质量 能不能进一步提升? 在计算机网络的术语里,服务质量( q o s ) 被解释为以 传输率、吞吐率、信道利用率、出错率等等一系列艰涩的专业指标所表征 的概念。但是,毫无疑问的,安全这个自从人类社会产生了矛与盾以来就 一直为人们所律津乐道的古老话题,也是服务质量的一项重要内容,也正 是这篇文章背后的论文工作所从事的内容。 本文从网络安全的概念出发,探讨了在嵌入式系统里研究与实现通过 s s l ( s e c u r es o c k e tl a y e r ,安全套接字层) 保障嵌入式系统的通信安全的方 法,并从软件工程的角度讨论了嵌入式网络协议开发过程的一些关键技 术。 硕士论文:s s l 在嵌入式系统中的研究与实现 第1 章概述 1 1 网络安全解决方案及其应用 据m i c r o s o f t 的一份不完全统计,每年仅仅因为其w i n d o w s 系列产品 的网络安全问题而给各国政府、企业、个人造成的损失就超过3 0 0 亿美元。 虽然围绕网络安全已经有大量的人做了大量的工作和研究,在我们的网络 中仍然存在着许多的系统漏洞。而另一份统计报告令人意外的发现,其中 绝大多数是因为相关人员的疏忽和缺乏安全意识所至。这些不是很良好的 计算机使用习惯包括:认为安全是系统管理员的事、随意下载机密信息到 本地、共享信息时让他人以过高的权限使用自己的机器、随意让他人使用 自己的机器、随意执行不清楚用途的应用程序和随意的口令管理等等。由 此,我们可以看到,普通用户缺乏安全意识,是我们面临的最大的安全问 题。另一方面,一个不容忽视的问题也摆在了我们的面前:剩下的那一小 部分损失是由于所使用的通讯技术与通讯系统的漏洞造成的。这- 4 , 部分 的损失因为3 0 0 亿这个足够让任何人心惊肉跳的基数而走到了前台的聚光 灯下。m i r c o s o f t 在调查了由他们带来的损失之后,给一次成功的网络攻 击定义了一个等式,如下: 成功的攻击= 目的+ 手段+ 系统漏洞 从这个等式里面,我们可以看到,系统漏洞是构成一次成功的网络攻 击的一个技术因素。无论是i n t e r o e t 还是i n t r a n e t ,在没有披上安全的装甲 之前,确实是脆弱的和令人忧心的,比如网络的使用者每天都要使用到的 电子邮件,它涉及到的建立在t c p i p 网络传输协议之上的接收邮件使用 的p o p 3 应用协议和发送邮件使用的s m t p 简单邮件传输协议,都是使用 明文在网络上面传输敏感的用户名和口令的,类似的,f t p 文件传输协议 也存在这个问题。如果你是一个“有心人”,那么,如果你一不小心打开 了一个类似s n i f f e r 、e t h e r p e e k 之类的软件网络分析工县,又恰巧一不小 一t b 使用了t c p i p 端口过滤对2 3 、2 1 端口进行了监听,那么,相信你定 会有意想不到的收获。 那么,i n t e m e t 就真的那么脆弱? 我们就真的对保护我们付出了无数的 心血的宝贵的数据无能为力了吗? 答案是令人振奋的,目前我们已经有了 各种各样的技术和解决方案来应对各种不同情况,不同场合下的安全问 题。粗粗列举一下,象i p s e c ,s s l ,d m z s ,v p n ,p k i ,p a c k e tf i l t e r i n g , 硕士论文:s s l 在嵌入式系统中的研究与实现 i s a s e r v e r ,c h a n g e c o n t r o l ,v i r e ss c a n n i n g ,h o t f i x e s ,等等等等。正应对 了中国的那句老话:魔高一尺,道高一丈。但是,安全产品和技术一多, 用户就象进了摆满了琳琅满目的精致商品的商店一样,同时又滋生了新的 烦恼:究竟哪种技术,哪种解决方案,适合现行的系统? 我喜欢一个比喻,这个比喻是m e t a 集团全球安全战略部的副总裁 c h r i s t i a nb y m e s 在最近的一次安全会议上说的:“人不可能煮沸大海,但 能煮沸一碗水。”换句话说,不可能使用所有的技术、确保网络中全部系 统的安全,但可以使用特定的技术尽可能的保证一小部分系统的安全 就是那些在s s l 之上的系统。只要保证为数不多的系统的安全,就能在内 部外部网络中建立起一道安全的边界。特别对于一个已发展成为跨洋规模 的内部网络或应用模式而言,配置s s l 是一个规模范围已定的安全项目: 而且,这也许会带来传奇般的安全成功。 1 2s s l 概述 1 9 9 4 年,n e t s c a p e 公司为了保护w e b 通信协议h t t p ,开发了s s l ,该 协议的第一个成熟的版本是s s l2 0 版,并被集成到n e t s c a p e 公司的 i n t e r n e t 产品中,包括n a v i g a t o r 浏览器和w e b 服务器产品等。s s l2 0 的出现,基本上解决了w e b 通信协议的安全问题,很快引起了大家的关注。 1 9 9 6 年,n e t s c a p e 公司发布了s s l3 0 ( d r a f t f r e i e r - s s l - v e r s i o n 3 0 2 :t h e s s l p r o t o c o lv e r s i o n3 o ) ,该版本的最初实现增加了对除了r s a 算法之外 的其他算法的支持和一些安全特性,并且修改了前一个版本中一小的问 题,相比s s l2 0 更加成熟和稳定,因此,很快就成为了事实上的工业标 准。1 9 9 7 年,i e t f 基于s s l 协议发布了t l s ( t r a n s p o r tl a y e rs e c u r e , 传输层安全) 的i n t e r n e td r a f t ( 后来的r f c 2 2 4 6 ) ,n e t s c a p e 公司宣布支 持该开放标准。1 9 9 9 年,i e t f 正式发布了r f c 2 2 4 6 。 s s l 是建立在可靠连接( 如t c p ) 之上的一个能够防止偷听、篡改和消 息伪造等安全问题的协议。s s l 是分层协议,它对上层传下来的数据进行 分片一 压缩一 计算m a c 一 加密,然后发送数据:对收到的数据则经过解密 一 验证一 解压一 重组之后再分发给上层的应用程序,完成一次加密通信过 程。 1 3 网络安全在嵌入式应用中的重要性和必要性 当嵌入式计算技术和应用随着计算机技术的发展在近几年来获得了长 硕士论文:s s l 在嵌入式系统中的研究与实现 足的进步的同时,其各式各样的产品也都纷纷增加了网络通信的功能,并 且已经成为了趋势。随着各种各样的通信手段从无线技术如 g p r s c d m a 、蓝牙、i e 髓8 0 2 1 l b 、i r d a 到传统的1 0 1 0 0 1 0 0 0 m 以太网、 串并口通信被集成到这些一个个小盒子中去,今天的嵌入式系统已经成了 i n t e m e t 终端的一个重要的组成部分。技术发展的同时,不可避免的带来 了应用的延伸一电子商务、电子政务等等原本依附于计算能力相对较强的 通用计算平台的相对高端的应用也逐渐的迁移到嵌入式计算平台之上来。 这些应用都有一个重要的特点:那就是安全问题是制约该类应用的首 要因素。没有安全的信息交换模型、安全通信信道的支持,它们就不会普 及开来。没有应用的推动,就没有市场前途,技术和产品的发展也会失去 动力。因此,我们可以看到,网络安全技术在嵌入式系统中的应用是如此 的重要和必要,用事在必行来形容也毫不为过。 1 4在嵌入式系统中实现s s i - s s l 是本质上是一个通信协议,由于为了保证安全性,它的协议描述 比较的复杂,有比较完备的握手过程,这就决定了它不是一个轻量级的网 络协议;另外,协议还涉及到大量的计算密集型算法:非对称加密算法、 对称加密算法和数据摘要算法,虽然嵌入式平台的计算性能已经今非昔 比,但是在运行这类算法时仍旧非常的吃力( 我们在主频3 3 m h z 的e r s o n 3 3 2 0 9 平台上对没有经过优化的r s a 算法做过测试,其1 0 2 4 b i t 密钥的公 钥解密超过了1 0 秒,远大于商业银行服务器一般约定的7 秒的握手超时 时间) 。这些都制约了s s l 在嵌入式系统中的实现。 那为什么还要尝试在嵌入式系统中实现s s l 昵? 答案有两方面:是 为了嵌入式系统中的通信安全;二是为嵌入式终端系统提供对电子商务 电子政务为代表的c s 、b s 模式应用的支持。从技术层面来讲,在嵌入 式系统中引入s s l 将为系统提供对m i d p 2 0 和w a p 2 0 的完全支持。j a v a 和m i d p 的概念在这里就不再敷述,值得一提的是,针对m i d p 2 0 完全实 现的t c k 测试明确要求m i d p 2 0 必须支持s s l 。因此,在嵌入式系统中 实现s s l 可以一举两得:即可为嵌入式系统提供安全保障,又能为将 m d p 2 o 和w a p 2 0 引入系统中提供有力的支持。 1 5嵌入式s s l 国内外发展概述 目前市场上有总体有6 种方法实现加强加密的s s l ,归纳于表l 一1 硕士论文:s s l 在嵌入式系统中的研究与实现 其中最为流行的是o p e n s s l 和m o d s s l 。o p e n s s l 是一个功能强大的 免费软件包,可以执行所有重要的加密功能。m o d s s l 最初起源于 a p a c h e - s s l ,但绝大多数的代码都已经被重写。m o d s s l 功能齐全,它利 名称提供者性质 o p e n _ s s ln w o p e n s s l o r g免费 m o d s s l r a l f e n g e l s c h a l l免费 a p a c h es s l b e nl a u r i e 免费 s t r o n g h o l d c 2 n c t商业产品 r a v e ns s l 模块c o v a l e n t商业产品 安全w e b 服务器 r e d h a t 商业产品 表1 1 用a p a c h e 模块化安装来为a p a c h e 和o p e n s s l 提供接口,易于安装与配 置,因此,是最受欢迎的实现强加密s s l 的方法。 虽然市场上有为数不少的s s l 产品,有免费的,也有商业性质的,他 们都有共同的特点:虽然都实现了s s l 的全集,但是过分依赖于计算平台 的强大计算能力:虽然功能齐全,但是是以牺牲了可裁剪性为代价的。在 嵌入式领域,以产品形式存在的s s l ,却是空白。由于j 2 m e 的广泛部署, j 2 m e 也对其j a v a 的实现增加了通过s s l 提供安全传输支持的特性,但是 这一特性被单独封装在j 2 m e 的各种产品之中,无法单独被用户使用;同 样的问题也在于在嵌入式网络产品特别是s s l v p n 网关之中。 因此,无论是市场的需要还是技术的发展,都需要一个能在嵌入式计 算环境下运行良好的、具有很好的可移植性和可剪裁性的s s l 软件产品。 1 6 课题来源和选爱依据 本课题来源于科银京成技术有限公司与合作公司联合设置的横向项目 在嵌入式系统中研究和实现s s l 3 0 t l s l o ,希望通过本课题的研 究,为嵌入式系统提供一种通用的、可靠的安全通信保障。同时为公司的 嵌入式j a v a 产品m i d p 2 0 提供安全特性支持,使之能通过t c k 标准测试, 具备具有国际认证资格的产品资质。本文作者在该课题项目中,负责了项 硕士论文:s s l 在嵌入式系统中的研究与实现 目实现方案的设计、软件体系结构的设计、协议模块的概要设计和详细设 计,并完成了协议部分源代码的编写、部分证书模块源代码的编写以及代 码模块的综合测试,同时还承担了软件产品模块的移植和测试设计的工 作。 1 7课题内容和实现目标 本课题的主要内容是:基于目前业界公认的s s l 3 0 t l s l 0 协议标准, 研究分析该标准提供的一系列安全规范,以及在此基础上如何实现一个安 全构架来保证电子交易特别是移动电子交易双方的身份识别、安全交易。 本课题的研究范围虽然着眼于协议的本身,但是也涉及到了电子商务 安全整个构架,但由于构架的实际建立涉及移动网络运营商、服务提供商、 银行、企业等,无法简单的单方面实现,因而,课题现阶段的实现目标为: 在嵌入式环境下实现能满足嵌入式安全应用的s s l 3 0 t l s1 0 协议,并将 该协议设计成一个具有高度可移植性、算法和证书管理模块高度分离的安 全通信支持模块,同时,将其产品化。在协议研究实现过程中实现的算法 和证书管理模块也应有自己清晰的接口,使之能为后续的安全应用研究工 作( 如d r m 数字版权管理) 所使用。 通过研究,希望能明晰一条安全通信协议在嵌入式系统中发展的主干, 在无线网络环境和移动终端处理能力不断发展的适当时机,能迅速做出反 映,推出更符合实际需要的安全解决方案。 1 8工作的重点和难点 工作的重点是将s s l 设计成协议、算法、证书三部分相互独立的软件 模块,以实现算法、证书的软件复用,这在现代软件工程实践中是极有意 义的事情。工作的难点是:s s l t l s 协议流程面向嵌入式系统的简化和 联合,其中简化指从协议规范的众多根据不同的非对称算法实现的不同流 程中,提取出使用最为广泛、最有应用价值的非对称算法流程进行简化; 联合指将s s l 和t l s 合并在一个协议模块中实现,以求最大限度的减少 代码量,使之适合嵌入式应用。软件模块设计中对单多任务的支持。 因为嵌入式s s l 主要面向嵌入式应用,而各个不同的嵌入式平台可能会有 不同的任务调度机制,为了获得协议的可移植性,在体系结构设计时必须 对单多任务方式都有所考虑。协议状态机的设计:主要涉及到状态随 时序的迁移和化简。不同的算法( 对称和非对称) 对协议的流程都会产 硕士论文:s s l 在嵌入式系统中的研究与实现 生不同的影响,如何最大程度的减小这种影响的程度,使协议软件产品获 得最大的通用性需要进一步考虑和研究。算法模块针对嵌入式特定平 台、环境的优化,这在整个工作中是非常重要的部分,算法的性能极大的 影响了嵌入式s s l 产品的性能。 1 9 本文的内容安排 第一章对网络通信安全特别是嵌入式网络安全概念和现状进行了简 单的介绍,同时说明了课题来源、工作重点和难点及全文内 容安排。 第二章详细描述了嵌入式s s i j t l s 的设计与实现。 第三章从嵌入式软件过程的角度描述了该项目中对软件产品所做的 测试与移植工作。 第四章对嵌入式网络协议开发的一些经验和思考,提出了一种具有 普遍性的嵌入式网络协议体系结构参考模型。 第五章全文内容总结。讨论本课题的成功与不足之处,指出下一步 的发展方向和目标。 硕士论文:s s l 在嵌入式系统中的研究与实现 第2 章s s l t l s 在嵌入式系统中的设计与实现- - d e l t a s s l 2 1s s l 厂r l s 详述 s s l t l s 作为一个兼容i s o 七层网络结构模型的安全通讯协议,位于 传输层和应用层之间,对用户来说是一个可选层,它在网络体系结构中的 位置如图2 1 所示。协议的设计目标是运行于所有的可靠传输连接之上、 并为应用提供防止窃听、篡改和消息伪造的通信手段,同时保证通信消息 的完整性和可用性。 应用层 表示层 会话层 s s l 厂r l s 传输层 网络层 数据链路层 物理层 应用层 s s l ,r l s 传输层 网络层 主机至网络 s s 坍l s 在o s l 网络结构模型中的位置s s l t l s 在t c p i p 中的位暨 图2 1 既然s s u t l s 协议规范规定了s s l t l s 是建立在所有可靠的传输层 连接之上的,这就意味着两点:1 、协议不关一l l , 数据包保序、传输流量控 制等传输细节,而是着重于解决安全问题本身。2 、任何包含了可靠连接 的传输层的网络体系结构,均可实现s s l t l s 。在我们的研究和实现中, 出于对应用效率的考虑,我们选用了应用最为广泛的t c p i p 网络模型做 为实现背景,即以t c p 作为s s l t l s 的承载层。 s s l t l s 是分层协议,从结构上分为两层,如图2 2 所示。底层为记 录层协议( r e c o r dp r o t o c 0 1 ) ,高层由4 个并列的协议构成:握手协议 f h a n d s h a k ep r o t o c 0 1 ) 、密码规范变更协议( c h a n g ec i p h e rs p e cp r o t o c 0 1 ) 、报 警协议( a l e r tp r o t o c 0 1 ) 、应用数据协议( a p p l i c a t i o nd a t ap r o t o c 0 1 ) 。 硕士论文:s s l 在嵌入式系统中的研究与实现 握手协议密码规范变更协议报警协议应用数据协议 记录层协议 协议高层 记录层 圈2 2 记录层协议将高层协议看作本层的协议数据单元( p d u ) ,为其提供分 片、摘要( m a c ) 、加密、封装服务;此外,将从下层收到的数据报进行拆 封、解密、摘要验证、组包之后,提交给高层协议。由此可以看出,记录 层协议实际上是高层协议的载体,通信的保密性和完整性是由这一层来保 证的。 一个s s l 记录由两部分构成:记录头和非零长度的数据。记录头可以 是3 字节或是4 字节( 当有填充数据时使用) ,该头主要用于指示记录数 据的类型和长度。3 字节头的最大记录长度是3 2 7 6 7 字节,4 字节头的最 大记录长度是1 6 3 8 3 字节。其中握手协议密钥规范变更协议报警协议的 报文要求必须放在一个s s l 记录层的记录里,但应用数据协议的报文允许 占用多个s s l 记录层记录来传送。 记录的数据部分由三个部分组成:一个m a c ( m e s s a g ea u t h e n t i c a t i o n c o d e ,消息验证码) ,实际的数据和填充的数据,当使用了“块加密”方 式,加密数据长度又不是块长度的整数倍时,就需要用到填充数据。在握 手过程完成之后,记录的数据部分是完全加密的。记录层的结构如图2 - 3 所示。 图2 3 9 硕士论文:s s l 在嵌入式系统中的研究与实现 密码规范变更协议只包含一条消息:c h a n g ec i p h e rs p e c 。该消息用于 服务器和客户端双方通知对方新协商的密码规范立即开始生效,标志着随 后的通信双方交换的是经过加密的密文。 握手协议是s s l t l s 中最为重要的一个协议,它负责在建立安全连接 之前在s s l t l s 客户代理和s s 坍l s 服务器之间鉴别双方身份、协商加 密算法和密钥参数,为建立一条安全的通信连接做好准备。 握手消息的结构如图2 - 4 所示: i 握手消息类型( 1 b ) 1 握手消息长度( 3 b )l 握手报文数据 图2 _ 4 握手协议由以下9 类消息组成( 表示可选消息) : c l i e n t h e l l o :这是由客户端发起连接请求时由客户端发送的第一条握 手消息。该消息包含如下的内容:客户端的版本号、4 字节u n i x 形式表示 的系统时间、2 8 字节的随机数、3 2 字节的会话d 、一系列2 字节表示的 加密套件( c i p h e r s u i t e ) 、可选的数据压缩方法。会话d 是一个会话的唯一 标识。当要建立一个新的会话时,该消息的会话d 为0 ,意思是待服务 器分配;若要重用一个会话,则会话d 值为要重用的会话的i d ,供服务 器在它的会话c a c h e 里面查找。加密套件和数据压缩方法都根据客户端想 要使用的安全策略,顺序按优先级从高到低排列。其中加密套件是密钥交 换算法、对称加密算法和数据摘要算法的集合。密钥交换算法为非对称算 法,常见的有r s a 、d h 等,由于其加解密运算复杂,需要耗费大量的计 算资源,因此,在s s i j t l s 中,它们只被用于握手过程中来进行对称算法 的密钥交换。常见的对称加密算法有r c 4 、d e s 、3 d e s 、r c 2 、r c 5 、i d e a 等等( 这些算法有的受版权保护) 。数据摘要算法是一些单向哈希函数的 程序实现,用于产生数据的摘要信息,保证数据的完整性。常见的数据摘 要算法有:m d 2 、m d 5 、s h a 1 等。 s e r v e r h e l l o :该消息是服务器收到客户端发来的c l i e n t h e l l o 之后给出 的应答,包含如下内容:服务器的版本号、系统时间和随机数、会话d 、 服务器选定的密码套件和压缩方法。其中对于新的会话,服务器为其分配 一个3 2 字节的会话d ,作为会话的句柄;对于客户端发来的重用会话请 求,服务器搜索自己的会话c a c h e ,如果该会话d 存在在会话c a c h e 之 中,则重用此d ,若因为超时或出错等原因,会话c a c h e 中无此i d ,则 重新分配一个会话i d 返回给客户端。密码套件和压缩方法则根据客户端 o 硕士论文:s s l 在嵌入式系统中的研究与实现 发来的密码套件列表、压缩方法列表和自己支持的密码套件和压缩方法选 定。 c e r t i f i c a t e :证书消息,用于封装发送者的证书,为消息的发送端实 体提供身份验证的依据。由于拥有证书的实体可能拥有一个证书链,所以 该消息中可能含有多份证书,按照颁发机构的级别由低到高的顺序组成一 维向量表。证书消息又分为服务器证书消息( s e r v e r c e r t i f i c a t e ) 和客户端证 书消息( c l i e n t c e r t i f i c a t e ) 。服务器证书消息包含了遵循x 5 0 9 v 3 规范的电 子证书( 链) ,而客户端证书则包含了一份遵循p k c s l 2 规范的个人电子证 书。该消息是可选消息,可以根据实际情况选择不发送证书、仅发送服务 器证书或同时要求发送服务器证书和客户端证书。这些不同的发送请求实 际上表示了正在建立的安全连接对连接双方的身份的验证所使用的不同 的策略。当以匿名服务器握手方式时,不发送s e r v e r c e r t i f i c a t e 和 c l i e n t c e r t i f i c a t e ;当服务器不要求客户端身份验证的时候,不发送 c l i e n t c e r t i f i c a t e 。注意:当使用匿名服务器时,客户端可以不发送 c l i e n t c e r t i f i c a t e ,这样可以在不降低安全系数的情况下,提高握手效率。 s e r v e r k e y e x c h a n g e + :服务器密钥交换消息,包含了服务器端用于密 钥交换的算法的参数。当服务器没有发送s e r v e r c e r t i f i c a t e 或由于用户的 加密套件设定,s e r v e r c e r t i f i c a t e 中选用了没有密钥交换功能的非对称算法 做数字签名时,需要发送这条消息通知客户端密钥交换算法的参数。 c e r t i f i e a t e r e q u e s t * :请求客户端证书。该消息包含了请求客户端发送 证书的类型( 用证书使用的签名算法作为标识) y u 表和客户端证书的颁发机 构名称( 用x 5 0 9 证书规范中定义的d i s t i n g u i s h e d n a m e 标识) 列表。 s e r v e r h e l l o d o n e :服务器端h e l l o 过程结束消息,标志着服务器的 h e l l o 信息发送完毕,开始等待并接收客户端的响应。 c l i e n t k e y e x c h a n g e * :客户端密钥交换消息,包含了客户端用于密钥 交换算法的参数。作为可选消息,它依赖于所选用的密钥交换算法。 c e r t i f i e a t e v e r i f y t :客户端证书验证消息。该消息在发送完有数字签 名能力的c l i e n t c e r t i f i c a t e 之后发送,用于验证证书的拥有者就是本次通信 的对方。消息由使用证书私钥加密的已经发生过的握手消息的m d 5 摘要 值和s h a 1 摘要值组成,定义和算法如下: 数字签名的定义: s t r e e t 硕士论文:s s l 在嵌入式系统中的研究与实现 o p a q u em d 5 _ h a s h 1 6 ;章私钥加密过的m d 5 僮+ o p a q u es h a _ h a s h 2 0 ;车私钥加密过的s h a 值+ ) s i g n a t u r e ;p 数字签名定义+ 客户端证书验证消息定义: s t r u c t s i g n a t u r es i g n a t u r e ; p 签名信息+ ) c e r t i f i c a t e v e f i f y ;卑客户端证书验证消息定义+ 使用的验证消息消息生成算法为: c e r t i f i c a t e v e r i f y s i g n a t u r e ,m d 5h a s h pm d 5 摘要的计算4 m d 5 ( m a s t e rs e c r e t + p a d _ 2 + m d 5 ( h a n d s h a k e _ m e s s a g e s 十m a s t e r s e c r e t + p a d 一1 ) ) ; c e r t i f i c a t e s i g n a t u r e s h a _ h a s h产s h a l 摘要的计算+ s h a ( m a s t e r s e c r e t + p a d _ 2 + s h a ( h a n d s h a k e _ m e s s a g e s + m a s t e r s e c r e t + p a d - 1 ) ) ; 其中,h a n d s h a k e _ m e s s a g e 指不包含本条消息的已经发生过的所有握手 消息。p a d _ l 、p a d _ 2 为填充数据。p a dl 对于m d 5 ,为连续4 8 个字节的 0 x 3 6 ,对于s h a ,为连续4 0 个字节的0 x 3 6 ;p a ( l 2 对于m d 5 为连续4 8 个字节的0 x 5 c ,对于s h a ,为连续4 0 个字节的0 x 5 c 。m a s t e rs e c r e t 是计 算得到的用于生成对称算法密钥的参数,m a s t e rs e c r e t 的计算将在后面的 章节描述。 f i n i s h e d :握手阶段结束消息。此消息有两个作用,一是表示握手过 程已经结束,可以进行应用数据的传送;二是验证握手过程的正确性。它 总是在加密规范变更消息( c h a n g ec i p h e rs p e e ) 发送之后被立即发送,因此 它是通信过程中第一条加密的消息。该消息分两类:服务器发送的s e r v e r f i n i s h e d 和客户端发送的c l i e n t f i n i s h e d 。 f i n i s h e d 消息由发送者标志、握手信息的哈希值组成,结构描述如下: 发送者标志定义: e n u m c l i e n t ( o x 4 3 4 c 4 e 5 4 ) ,产客户端的发送者标志t s e r v e r ( 0 x 5 3 5 2 5 6 5 2 )产服务器的发送者标志+ 1 s e n d e r ;产发送者标志定义+ 硕士论文:s s l 在嵌入式系统中的研究与实现 f i n i s h e d 消息的定义: s t m c t o p a q u em d 5 _ h a s h 16 ; ,掌握手消息的l v l d 5 值 o p a q u es h a _ h a s h 2 0 ; 木握手消息的s h a 值 1f i n i s h e d ;严f i n i s h e d 消息的定义4 其中,m d 5h a s h 和s h ah a s h 都由不同的计算方法计算得来,描述如下: m d 5h a s h 的计算方法: m d s ( m a s t e r _ s e c r e t + p a d 2 十 m d 5 f h a n d s h a k e _ m e s s a g e s + s e n d e r + m a s t e r s e c r e t + p a d l ) ) ; s h a h a s h 的计算方法: s h a ( m a s t e r _ s e c r e t + p a d 2 + s h a ( h a n d s h a k e _ m e s s a g e s + s e n d e r + m a s t e r _ s e c r e t + p a d l ) ) ; 握手协议使用到的消息及其参数总结到表2 - 1 之中。 消息参数 c l i e n t h e l l o版本,随机数,会话i d ,密码参数, 压缩方法 s e r v e rh e l l o c e r t i f i c a t e x 5 0 9v 3 证书链 s e r v e r _ k e y _ e x c h a n g e 参数,签名 c e r t l f l c a t er e q u e s t 类型,c a s s e r v e r _ h e n o _ d o n e n u l l c e r t i f i c a t e _ v e r i f y 签名 c l l e n t _ k e y _ e x c h a n g e 参数,签名 f i n i s h e d h a s b 值 表2 - 1 s s l t l s 报警协议为通讯双方提供了两个级别的报警信息:一是警告 错误,二是致命错误。报警消息根据会话的状态,可以是经过加密的也可 以直接由明文传送。报警消息的结构如图2 5 所示。 硕士论文:s s l 在嵌入式系统中的研究与实现 l l鳖壹堡型! ! 里塑盟 董宣鲨星耋型( ! 星竖生 图2 - 5 其中s s l 的警告消息类型共有1 2 种,t l s 的警告消息有2 3 种。报警 协议消息的优先级要高于其它高层协议,即当报警消息和其它消息同时到 达时,要求先处理报警消息。 一次s s l t l s 安全通信由一系列的握手过程开始,在握手过程中,要 完成通信双方身份验证、确定加密、压缩算法和密钥协商的工作。握手成 功后,便可用协商好的对称加密算法和密钥进行安全的通信。完成数据交 换后,使用关闭安全连接的报警消皂, ( c l o s e n e f f f y ) 关闭该条连接。 握手过程分为完全握手和简化握手两类。一个新建的会话必须经过完 全的握手过程。会话( s e s s i o n ) 指客户和服务器之间的一个关联关系,它确 定了一组密码算法及其相应参数。连接( c o n n e c t i o n ) 是s s l t l s 通信的基 本单位,它唯一确定了一对端到端的通信实体( 可以是主机,也可以是进 程) 。一个会话可以被多个连接共享,从而可以避免为每个连接协商新的 安全参数而带来的昂贵开销。 完全握手过程分为四个阶段:l 、建立起安全能力属性;2 、服务器认 证和密钥交换;3 、客户端认证和密钥交换;4 、结束。下面详细介绍完全 握手过程的流程。 第一阶段:建立起安全能力属性 这一阶段的握手过程时序如图2 - 6 所示。 c i i e n ls e r v e r 。趣 攀吐啦 t 一, 图2 6 发送个e l l e n t h e l o 消息,包括以下参数:版本、随机数( 3 2 位时 间戳+ 2 8 字节随机序列) 、会话i d 、客户支持的密码算法列( c i p h e r s u i t e ) 、 客户支持的压缩方法列表。然后,客户等待服务器的s e r v e rh e l i o 消息 服务器发送s e r v e r h e l l o 消息,参数:客户建议的低版本以及服务器支 持的最高版本、服务器产生的随机数、会话i d 、服务器从客户建议的密码 算法中挑出一套、服务器从客户建议的压缩方法中挑出一个供会话使用。 4 硕士论文:s s l 在嵌入式系统中的研究与实现 第二阶段:服务器认证和密钥交换,如图2 7 所示。 cl i e n !s e n w r 图2 7 图中阴影部分表示该过程为可选项。服务器发送自己的证书,消息包 含一个x 5 0 9 证书,或者一条证书链。除了匿名d h 之外的密钥交换方法 都需要发送该条消息。服务器发送s e r v e r k e y e x c h a n g e 消息,为可选项, 有些情况下可以不需要。只有当服务器的证书没有包含必需的密钥交换算 法数据的时候才发送此消息。消息包含签名,被签名的内容包括两个随机 数以及服务器参数。如果需要验证客户端身份,服务器发送c e r t i f i c a t e r e q u e s t 消息。非匿名s e r v e r 亦可以向客户请求一个证书。消息中包含证 书类型和c a s ( 证书d i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论