(计算机应用技术专业论文)ssl协议在嵌入式浏览器中的研究与应用.pdf_第1页
(计算机应用技术专业论文)ssl协议在嵌入式浏览器中的研究与应用.pdf_第2页
(计算机应用技术专业论文)ssl协议在嵌入式浏览器中的研究与应用.pdf_第3页
(计算机应用技术专业论文)ssl协议在嵌入式浏览器中的研究与应用.pdf_第4页
(计算机应用技术专业论文)ssl协议在嵌入式浏览器中的研究与应用.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 随着h n e m e t 与嵌入式设备的高速发展,嵌入式浏览器得到了广泛应用。但 是大多数嵌入式浏览器只提供了最基本的浏览功能,不提供对敏感数据的加密功 能,所以无法满足用户收发e m a i l 、购物和交易的要求。目前,最流行的w e b 安全协议是s s l ( s e c 嘶t ys o c k e tl a y e r ,安全套阶层) 协议。将s s l 协议与嵌入 式浏览器相结合即可满足安全数据传输的要求。 本文主要论述了如何在嵌入式浏览器中实现s s l 协议,从而向用户提供安全 传输服务。作为“某商用嵌入式浏览器移植和优化”课题中的重要一部分,本文 首先介绍了数据加密技术和s s l 协议,并对s s l 协议中s s l 握手协议、记录协 议等进行了深入的研究和探讨。在此基础上,本人专门为该嵌入式浏览器设计了 s s l 模块,该模块可以很好地与该嵌入式浏览器结合,实现了数据的安全传输。 在分析影响s s l 模块性能的因素的基础上,本文提出了在s s l 模块中使用既能 保证速度又符合安全要求的加密套件和会话重用等技术,从而大大地提高s s l 握手的速度。除了实现基本的安全传输要求,本文向该嵌入式浏览器的上层u i 模块提供了一系列的证书操作接口,并设计了一个图形化的证书操作界面,极大 地方便了用户加载、删除证书,并且可以查看x 5 0 9 格式证书的信息。 本文实现了理论知识和实际工程项目的结合,对在嵌入式浏览器中配置更加 安全、高效的传输系统具有一定的参考价值。 关键词:嵌入式浏览器s s l 协议数据加密会话重用 a b s t r a c t w i t hi m e m e ta n dt 1 1 e r a p i dd e v e l o p m e n to fe n l b e d d e dd e v i c e s ,e m b e d d e d b r o w s e rh a sb e e nw i d e l yu s e d h o w e v e rm o s te l i 】_ b e d d e db r o w s e ro i l l yp r o v i d e st 1 1 e m o s tb a s i cb r o w s i n gf h l l c t i o i l ,n o ts u p p o r tt l l ee 1 1 c r y p t i o no fs e n s i t i v ed a t a ni sn o t p o s s i b l et os a t i s 黟u s e r st os e n d 柚dr e c e i v ee - m a i l ,s h o p p i i 玛a 1 1 d 仃a d i n g n o wt 1 1 e m o s tp o p u l a rw e bs e c u r i t ) ,p r o t o c o l i ss s l ,w m c hc a nb ed e p l o y e di 1 1m e 锄b e d d e d b r o w s e r i i lt h i sp 印w ed i s c u s s e dh o wt od e p l o ys s l p r o t o c 0 1i i le m b e d d e db r o w s e r a s as u b j e c to f ”ac o n 蚰e r c i a le 1 b e d d e db r o w s e rt r a n s p l a n tt oo n - b o a r de q u i p m e n t ”,t h i s a n i c l eb e g i l l sw i mm ei 1 1 t r o d u c t i o no fm ed a t ae n c 聊t i o nt e c l u l 0 1 0 9 ya n ds s l p r o t o c o l ,柚dm e nt 1 1 es s lp r o t o c 0 1 i sc o n d u c t e di n - d 印血a n a l y s i sa n d r e s e a r c h o i l t h eb a s i so ft 1 1 i s ,w es p e c i a l i z e d 血t 1 1 ed e s i g no fm es s lm o d u l ef o rt h e 锄b e d d e d b r o w s e ra n da c m e v e das e c u r e 打a n s m i s s i o no fd a t a i nt h i sp a p e r ,w e 印p l i e ds o m e t e c h n o l o g i e sf o r “sb r o w s e r ,s u c ha sf a s ta i l ds a f ee n c 聊t i o np a c k a g ea n dt l l er e u s e o fc o n v e r s a t i o nw 1 1 i c hc a l li i l c r e a s et h es p e e do fs s lh a n d s h a k e w ea l s od e s i g n e da s e r i e so fi i l t e r f a c ef o ru p p e ru ir i l o d u l ei i lm ec e r t i f i c a t em a n a g e m e mm o d u l e w i t h t 1 1 e s ei i l t e 而c e ,w ed e s i 盟e dag r a p l l i c a li n t e m c et oe 1 1 a b l eu s e r st ol o a d ,d e l e t e ,a n d v i e wx 5 0 9f o m l a to ft h ec e r t i f i c a t e t h i sp a p e rh a st 1 1 e o r e t i c a lk n o w l e d g ea n dp r a c t i c a lp r i 。j e c t sc o n l b i n e da n d p r o v i d ear e f e r e n c ev a l u ei 1 1t h ea l l o c a t i o no fs a f ea n de 箭c i e n tt r a i l s m i s s i o ns y s t e m f b re m b e d d e db r o w s e r k e yw o r d s :e n l b e d d e db r o w s e r ,s s l ,d a t ae n c d ,p t i o n ,r e u s eo fc o n v e r s a t i o n 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得叁盗盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:苏铙 签字日期:加仍年 日 学位论文版权使用授权书 本学位论文作者完全了解苤鲞盘堂 有关保留、使用学位论文的规定。 特授权苤鲞盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 莠锄 导师签名: 确碳 签字日期:稆年f 月j 日签字日期:跏b 扩年月厂日 第一章绪论 1 1 研究背景 第一章绪论 在嵌入式系统应用随着计算机技术的发展在近几年获得了长足进步的同时, 各式各样的嵌入式产品也纷纷增加了网络通信功能,并且成为一种趋势。随着各 种各样的通信手段从无线技术如g p r s 、c d m a 、蓝牙、i e e e 8 0 2 1 1 b 到传统的 1 0 1 0 0 1 0 0 0 m 以太网、串并行口通信被集成到这些一个个小盒子中去,今天的 嵌入式系统已经成为i n t e r n e t 终端的一个重要的组成部分。在通信技术发展的 同时,嵌入式系统不可避免地会遇上网络安全问题。尤其是近年来随着电子商务、 在线交易的流行,人们需要通过i n t e r n e t 传达一些诸如信用卡号等敏感数据, 如何保证这些敏感数据的安全传输已经成为一个重要问题,这一问题也是当今网 络通信技术研究的一个重点。 国际化标准组织已于1 9 8 9 年对0 s i 互联网络环境的安全性进行了深入的研 究,在此基础上提出了o s i 安全体系,定义了安全服务、安全机制、安全管理以 及安全方面的其它问题。此外,该组织通过对现实中网络方面所面临的各种安全 问题的分析总结,还定义了1 1 种威胁,为了避免网络遭受这些威胁,在该标准 中明确规定了五大安全服务的功能:身份认证服务、访问控制服务、数据保密服 务、数据完整性服务和不可否认服务。概括地讲,这五大服务的主要功能如下u j : ( 1 ) 保密性。为了防止被动攻击而对所传输的数据进行加密,一般是指采 用密码学技术,将需要保密的信息转化为另外一种隐蔽的形式,使未授权者无法 提取有用的信息。 ( 2 ) 完整性。数据完整性用于确认数据在存储和传输的过程中未被修改。 ( 3 ) 身份认证。认证就是确认实体的身份或数据的来源,即实体与它自己 声明的身份是否一致,包括实体身份认证和数据来源认证。 ( 4 ) 访问控制。访问控制是指控制或限制通信链路对某些网络资源的访问, 防止非法用户侵入或合法用户不慎操作所造成的破坏。 ( 5 ) 不可否认性。可用来防止两个对话实体对曾经执行过的操作提出异议, 从而确认某个实体确实发送或接收过消息。 在实际的应用中,只有具备这五大安全服务才能构成一个完整的安全系统, 它们互相依托,缺一不可,其中,身份认证服务、数据保密服务、数据完整性服 务是保证数据安全传输和对通信实体进行认证的基础。就目前的网络应用情况来 第一章绪论 看,如何保证网络上敏感数据的安全传输,防止数据在传输过程中被窃取、篡改、 伪造,以及对通信双方实体进行认证是迫切需要解决的问题。 1 2 国内外研究现状 目前国内外对数据传输这一领域的研究主要集中在网络层和传输层【2 】。 在网络层,1 9 9 5 年i e t f ( i n t e r n e te n g i n e e rt a s kf o r c e ) 为了力口强i n t e r n e t 的安全性,提出了用于保护i p 通信的i p 安全( i ps e c u r i t y ,简称i p s e c ) 协议。 i p s e c 提供了一种标准的、面向无连接的数据完整性、内容机密性、抗重发性攻 击以及有限的流量机密性等安全服务,它除了可用于i p 目前的版本( i p v 4 ) 之外, 也可以用于下一代的i p 协议i p v 6 ,并且i p v 6 将i p s e c 作为其强制的一部分。 它能够无缝地和应用系统集成在一起,为任何形式的i n t e r n e t 通信提供安全保 障,但是该协议管理复杂,一般应用在v p n 中。 在传输层,n e t s e a p e 公司于1 9 9 5 年制定了建立在可靠的传输服务( 如t c p i p 所提供) 基础上的安全套接层协议s s l 。s s l ( s e c u r i t ys o c k e tl a y e r ,安全套 阶层) 协议位于应用层和t c p 层之间,可为通信双方提供一条秘密通道,保障数 据的安全传输。目前该协议的最新版本为s s l 3 0 ,该版本一经推出就受到了业 界的关注,并得到了广泛的应用,已经成为事实上的工业标准。 1 9 9 6 年4 月,i e t f 授权一个传输层安全( t r a n s p o r tl a y e rs e c u r i t y t l s ) 工作组着手制定了一个传输层安全协议( t l s ) ,以便作为标准提案正式提交。 t l s l 0 在许多地方酷似s s l v 3 ,可以看作s s l v 3 的下一个版本,但是目前应用最 广泛的还是s s l 协议,短时间内不会被t s l 所替代。 目前,几乎所有的桌面浏览器都支持s s l 协议,实现了浏览器的安全数据传 输,但是在嵌入式浏览器中配置s s l 协议的还不多,因为嵌入式浏览器的工作环 境配置相对于桌面系统来说很低,所以嵌入式浏览器一般功能单一,只提供基本 的网页浏览功能。随着硬件水平的提高和嵌入式浏览器的广泛应用,使嵌入式浏 览器支持s s l 协议,满足用户的安全数据传输要求成为迫切的需要。 1 3 本文的主要工作 基于对s s l 协议特点的分析和对开发嵌入式浏览器s s l 模块的必要性的考 虑,本文对信息安全的研究立足于我国的具体情况,同时引进国外的先进技术, 走自主与引进相结合的道路,力求将s s l 模块嵌入到嵌入式浏览器中。s s l 模 块基于s s l 协议的实现框架,同时又具有良好的可扩展性和灵活性,能够为嵌 2 第一章绪论 入式浏览器提供安全服务。 本论文的主要工作有以下两个部分: 第一部分:对数据加密技术和网络安全传输协议s s l 的原理进行深入的分析 和探讨。这部分主要是理论分析工作,为下一步的实践工作打下坚实的理论基础。 第二部分:在第一部分的研究基础上进行s s l 协议在车载嵌入式浏览器中的 设计和实现。这部分主要是在前面理论分析的指导下进行的实践工作。这两部分 工作是相辅相成的,缺一不可的。 1 4 本文的组织结构 本文以实际工程项目为背景,讨论如何在嵌入式浏览器中设计安全传输系统 以及实现过程。全文共分为五章,主要内容如下: 第一章,绪论。绪论中简要介绍了嵌入式浏览器的发展以及国内外在安全传 输领域的研究现状,说明了在嵌入式浏览器中配置安全传输系统的迫切需要,这 一部分为本文后面的内容提供了必要的研究背景。 第二章,相关技术。这一部分首先简要介绍了数据加密技术,然后详细探讨 了s s l 安全传输协议中的s s l 记录层协议、s s l 握手协议、s s l 改变加密约定 协议等各个组成模块,并给出了s s l 各子层中的数据流程图。其中,对s s l 的 核心协议s s l 握手协议的处理过程进行了深入的分析。 第三章,s s l 模块在嵌入式浏览器中总体设计方案。在这一章中,首先给出 了s s l 模块在该嵌入式浏览器中的位置,并在分析影响s s l 模块性能的因素的基 础上把s s l 模块分解为初始化模块、连接模块等子模块。 第四章,s s l 模块的实现以及关键技术。本章着重从工程的角度介绍了如何 在嵌入式浏览器中实现s s l 协议,并对一些关键技术进行了研究与总结。 第五章,对本课题的总结和展望。这一章对本文所作地工作进行了总结,并 对今后工作提出展望。 第二章相关技术 2 1 数据加密技术 第二章相关技术 信息安全技术的核心是密码,信息加密是保障信息安全的最基本、最核心的 技术措施和理论基础。s s l 协议的核心是一系列的加密、解密、认证等过程。要 研究s s l 协议,我们必须对有关现代数据加密的一些技术有最基本的了解。 数据加密的基本思想是:通过对信息进行置换和转换将所传输的内容变成一 些不规则的数据,来伪装需要保护的信息,使非授权者不能了解被保护信息的内 容。那些需要隐藏的信息称为明文,进行置换和转换的算法称为加密算法,明文 被置换后的结果称为密文,由明文产生密文的过程叫做加密。解密是和加密相反 的过程,它将密文数据转换为明文。加密和解密算法的操作通常是在一组密钥控 制下进行的,分别称为加密密钥和解密密钥。一个加密系统采用的基本工作方法 称为密码体制,密码体制的基本要素是密码算法和密钥 3 】。 一个数据加密解密系统如图2 1 所示: 图2 1 密码系统示意图 根据加密密钥和解密密钥是否相同或本质上等同,即是否可以从一个容易的 推出另一个,可将现有的密码体制分为两种:一种是私钥( 或对称) 密码体制, 另一种是公钥( 或非对称) 密码体制。 2 1 1 私钥密码体制 根据对明文的加密方式的不同,又可将私钥密码体制分为两类:一类是分组 密码( b 1 0 c kc i p h e r s ) ,在这类体制中,先将明文分组( 每组含有多个字符) ,然 后逐组地进行加密;另一类是流密码( s 仃e 锄c i p h e r s ) ,在这类体制中,明文按字 4 第二章相关技术 符逐位地被加密。 公钥密码体制大都是分组密码,一般不再按明文的加密方式对其进行分类。 我们通常所说的分组密码特指私钥分组密码。 1 分组密码算法 分组密码是用一个固定的变换对一个比较大的明文数据进行操作,它是许多 密码系统中最突出也是最重要的成分。以分组密码为基础,可以构造伪随机数生 成器、流密码、m a c 和安全h a s h 函数。 分组密码对数据分组进行操作。当将大量数据交给这种算法来加密或解密 时,它将明文分解为多个分组,然后独立地对每个分组进行操作。通常,每个分 组有8 到1 6 字节。有时需要加密的信息的长度不是明文长度的整数倍,此时就 需要对明文信息进行填充( p a d d m g ) 后才能加密,解密完成后应去掉填充位。 2 流密码算法 流密码是用一个时变的变换对单个明文字符进行操作,它一次将1 比特明文 变化为1 比特密文。 分组密码在一个密钥的控制之下对固定的位数的分组进行加密,其密钥的位 数和这个固定的位数大致相等,而流密码使用尽可能长的密钥,由于长的密钥的 存储、分配都很困难,因此,采用一个较短的密钥来控制某种算法来产生出长的 密钥。产生流密码的最简单方法通常称之为二元加法流密码。 常用的私钥密码算法有d e s 、r c 2 和r c 5 4 i 。 2 1 2 公钥密码体制 公钥密码体制是在试图解决常规加密面临的密钥分配问题的过程中发展起 来的。它使用两把钥匙:一把公开钥匙和一把私有钥匙,前者用于加密,后者用 于解密。公钥密码体制可以使通信双方无须事先交换密钥就可建立起保密通信。 公钥算法要比私钥算法慢得多。在实际通信中,一般利用公钥密码体制来保护和 分配( 交换) 密钥,而利用私钥密码体制加密消息。公钥密码体制主要用于认证( 比 如数字签名,身份认证等) 和密钥管理等。公钥密码体制的出现为解决私钥密码 体制的密钥分配开辟了一条广阔的道路。 公开密钥加密的主要步骤如下: 1 网络中的每个端系统都产生一对用于它将接收的报文进行加密和解密的 密钥。 2 每个系统都通过把自己的加密密钥放进一个登记本或者文件来公布它, 这就是公开密钥,另一个密钥则是私有的。 3 如果a 想给b 发送一个报文,他就用b 的公开密钥加密这个报文。b 收 第二章相关技术 到这个报文后就用他的私有密钥解密报文。其他所有收到这个报文的人都无法解 密它,因为只有b 才有b 的私有密钥。 使用这种方法,所有参与方都可以获得各个公开密钥,而各参与方的私有密 钥由各参与方自己在本地产生,因此不需要被分配得到。只要一个系统控制住它 的私有密钥,它收到的通信内容就是安全的。在任何时候,一个系统都可以更改 它的私有密钥并公开相应的公开密钥来替代它原来的公开密钥。 我们一般将常规加密中使用的密钥称为秘密密钥( s e c r e tk e y ) ,公开密钥加密 中使用的两个密钥则称为公开密钥( p u b l i ck e y ) 和私有密钥( p v a t ek e y ) 。在任何 时候私有密钥都是保密的。 常用的公钥密码算法有d h 、r s a 和d s a 【5 】o 2 1 3 消息摘要 消息摘要是实现数据完整性的主要手段。主要目的是认证消息、检验数据是 否被篡改。它由数学函数产生h a s h 码,将任意长度的消息m 映射为较短的、 且长度固定的一个值h ( m ) ,作为认证符,函数值h ( m ) 称为h a s h 码或消息摘 要。 一个好的消息摘要算法应该具备这样两个特点。其一是:这个算法是不可预 见和不可还原的。也就是说,对于一个给定的输出值,不能够根据输入数据的一 些特点推断出它对应的输入值,也不能通过实验还原出它对应的输入值。其二是: 输入数据中的一个微小的变化,都将导致输出数据的显著变化。例如,在输入数 据中的一个数据位的改变,将导致输出数据中一半数据位的变化,这实际上也是 上述第一个特点的必然结果,因为我们不希望让攻击者可以通过输出数据判断出 它对应的输入值。 消息摘要最主要的用途除了信息完整性检查外还有数字签名。消息摘要算法 通常比加密和数字签名算法快,消息摘要比原来的文档本身小,因此一般通过对 信息摘要进行处理来实现数字签名的功能。 目前常用的消息摘要算法有m d 5 和s h a ( s e c u r eh a s ha 1 9 0 r i t h m ,安全h a s h 算法) 【6 1 。 2 1 4 数字签名 一个消息摘要函数仅仅是建立可靠连接的数字签名的一部分,另一部分是公 钥加密系统。在数字签名中,密钥算法被反向地运行。就是说,用你的私钥加密 消息,这些被加密的消息可以被任何一个拥有你的公钥的人解密。如果一个消息 第二章相关技术 可以由特定的公钥解密,你可以肯定这个消息是由那个与它相匹配的私钥加密 的,这是因为每一个公钥有且仅有一个与之相匹配的私钥。这就是数字签名的工 作原理。然而,第三者也可能用你的公钥来解密窃取消息的内容,解决的办法是 你用接收者的公钥对用你私钥加密的结果再次加密。这样就只有接收者可以取得 并验证消息的内容。这就是数字签名的本质。 当用你的私钥加密一个消息时,你同时也已对它进行了签名。然而,当前的 每一个公钥加密算法都需要占用大量的处理时间,如果仅仅使用公钥加密算法对 一个1 兆字节的消息制作数字签名的话,就将需要数小时甚至数天的时间,所以 单纯的公钥签名实际上是不可能的。 但是,如果我们用一个快速的消息摘要算法算出一个h a s h 值,然后再用自 己的私钥对这个很小( 1 2 8 51 2 位) 的h a s h 值进行加密,同样也可以达到数字签 名的目的。当接收者收到消息及签名后,他对消息进行摘要,从而得到一个h a s h 值,并把它与你用的公钥解密后的摘要进行比较,如果这两个h a s h 值相匹配, 他就可以确信得到的是签名的消息。 当前最通用的数字签名是m d 5 消息摘要算法和r s a 公钥解密机制相结合。 另一类数字签名是使用s h a 和e i g a m a l 公钥机制,这两个算法在一起构成 n i s t - d s a 数字签名算法【7 i 。 2 1 5 数字证书 利用前面讨论的技术,己经可以实现两个通信主体之间诸如消息机密性、完 整性、抗抵赖性和鉴别等安全需求了。 然而,只有加密技术是不够的,因为在i n t e m e t 上多个通信主体之间发生的 种种关系是及其复杂的。我们面临的问题是:如何在单对单的加密技术的基础上 扩展为一个安全系统( 协议) ,以保证多个主体之间的身份认证和安全通信。 解决问题的基本策略是利用可信任的第三方。当前信息安全领域的两种典型 安全体系k e r b e r o s 协议中的k d c 和p 体制中的c a ( c e r t i f i c a t ea u t h o r i 锣) 本质 上都是采用这种策略。 公开密钥证书( p u b l i ck e yc e n i f i c a t e s ) 简称为数字证书,是由证书管理中心 c a 签署的一种凭证,其中包含有证书所有者的公开密钥、身份信息以及其它属 性,证书管理中心将这些信息用自己的私有密钥进行签名,使其不可伪造。任何 人只要拥有证书管理中心的公开密钥就可以对证书进行验证,从而相信用户的公 开密钥。 证书中通常不仅包括证书所有者的名字和它的公开密钥,还可以包含其它很 多信息,这样的证书称为扩展证书。使用扩展证书,用户不仅能得到其他人的公 第二章相关技术 开密钥,还可以得到其他的有关信息,如电子邮件地址等。一旦用户拥有了一个 证书,就可以通过证书的交换,证实自己的身份。 在基于公钥加密体系的网络安全模型中,第三方信任是一个很基本的要求。 如s s l 这样的公钥加密体系,处理过程中要求访问用户的公钥。在一个大规模 的网络中,期望每一个用户都事先与其他所有的用户建立一个信任关系,显然是 不切实际的,而且也是不可行的。另外,由于用户的公钥必须广泛公开,就必须 有一个信任的第三方来保证公钥与用户的关联性,以防被伪装冒认。因为用户信 任第三方代理的证明,所以用户可以间接地信任有第三方保证的公钥。 如何实现第三方和两个通信者的信任关系是问题的关键。k e r b e r o s 的特点是 通信双方在i c 中皆确定而且是在线式的认证,而以x 5 0 9 为基础的p 体制 则是以证书和数字签名作为最基本的认证依据及密钥发布手段【8 】。 2 1 6 公钥基础设施p 公钥基础设施p 主要针对开放型的大型互连网络的应用环境而设计的,这 种网络环境中需要有一个协调的公开密钥管理机制,以保证公开密钥的可靠性。 公钥基础设施p k i 提供了一个框架,在这个框架内建立起了可以创建鉴定和认证 过程需要的身份认证和相关信任关系,建立了可以管理的公开密钥加密系统。公 钥基础设施p k i 的主要目的就是建立可信任的数字身份,将特定密钥对和特定的 人或实体联系起来p j 。 公开密钥的管理一般基于公证机制,需要一个通信双方都信任的第三方来证 明通信双方公开密钥的可靠性,这需要第三方对通信双方的公开密钥进行数字签 名,形成一个证明这个公开密钥可靠性的证书。在一个大型网络中,这样的公证 中心可能有多个,另外这些公证中心若存在信赖关系,则用户可通过一个签名链 去设法验证其他公证中心签发的证书,概括地说,公钥基础设施p k i 就是对这些 公开密钥证书的管理体制,它在本质上是一种公证服务,通过离线的数字证书来 证明某个公开密钥的真实性和有效性【l 0 1 。 公开密钥体制与数字证书是密不可分的,数字证书的形式有很多种,不同证 书所携带的属性也不同,其中最为常用的是x 5 0 9 格式的证书。 x 5 0 9 证书是由一个可信的权威机构发布的,关于某一公开密钥属于某一实 体这一事实的数字化声明。发布者在证书上的签名,保证了证书在传递、存储过 程中不会被篡改,亦即证书的分发过程无需特殊保护。简单地说,x 5 0 9 证书是 一种由发布者数字签名的用于绑定某公开密钥和其持有者身份的数据结构。 p k i 主要由证书管理中心c a 、政策管理中心p m a 、注册管理中心r a 和端 实体等几部分组成。其中注册管理中心r a 负责处理用户请求,在验证了请求的 第二章相关技术 有效性后提交给证书管理中心。证书管理中心负责具体证书的颁发、撤消和管理, 维护着证书的生存周期。当证书的存在时间超过有效期规定的时间时,证书就会 失效,证书撤消列表c r l 是另一种证书有效期控制机制,证书管理中心定期发 布c r l ,上面列出了所有曾由它发布但当前已被撤消的证书号,证书的使用者 依据c i 也即可验证某证书是否已被撤消。同证书一样,c r l 也由发布者数字签 痧 1 l 】 一l j o 作为一种网络基础设施,p 以证书为手段保证公开密钥的可靠分发,但如 何使用公开密钥进行安全通信,如交换会话密钥等,并不是p 所能提供的服务, 需要有另外的协议机制进行基于公开密钥的安全交互,s s l 协议中即包含这样一 种以p k i 为基础进行安全的会话密钥交换的机制【1 2 】【1 3 】。 2 2s s l 概述 在二十世纪九十年代,以i n t e r n e t 为基础的信息业务获得了巨大的发展, 网上交易等电子商务行为产生,信息基础设施本身的脆弱性与网络业务的高安全 性要求之间的矛盾日益突出,这就要求有一个专门的安全协议来规范数据传输方 式,既确保信息业务的安全,同时又要保证操作的便捷。s s l 就是在这种背景下 由n e t s c a p e 公司开发的一个网络安全协议,已成为事实上的安全网上交易标准 协议,被各种应用网络业务和团体、企业广泛接受。s s l 协议主要是使用公开密 钥体制和x 5 0 9 数字证书技术保护信息传输的机密性和完整性,它不能保证信息 的不可抵赖性,主要适用于点对点之间的信息传输【l 4 。 s s l 共有三个版本。s s l l 0 由n e t s c a p e 公司开发后,只在内部使用,由于 包含一些严重的错误,现在已不再发行。s s l 2 0 开发后就被加入到n e t s c a p e n a v i g a t o r l 0 中,但是其中包含了一些如中间人攻击的弱点。1 9 9 6 年3 月, n e t s c a p e 公司发行了s s l 3 0 ,该规范克服了s s l 2 0 中的缺陷,同时还加入了一 些新的特征。目前s s l 3 0 已经成为了事实上的标准,得到了广泛的部署。 s s l 的主要目标是为两个通信主体提供保密、可靠的通道。它是在i n t e r n e t 基础上提供的一种保证机密性的安全协议,它建立在可靠的传输层之上,与应用 层的具体协议无关,加密算法、通信密钥的协商以及服务器的认证都是由s s l 自 动完成的。在s s l 的连接建立之后,应用层不需要进行任何干预,通信中的所有 数据都会被s s l 自动加密。它为应用层协议提供了一个类似于t c p 的接口,对应 用层程序的开发者来说,它完全是透明的,可以利用s s l 套接来代替传统的t c p 套接。使用s s l 后,h t t p 协议称为h t t p s 【1 5 j 。 s s l 协议提供了一个具有如下三个基本属性的安全连接: 9 第二章相关技术 ( 1 ) 连接是保密的。在握手协议定义密钥后,用对称密码( 如d e s 、r c 4 等) 来加密数据。 ( 2 ) 主体的身份可以通过公钥加密来验证( 如r s a 、d s s 等) 。 ( 3 ) 连接是可靠的。使用了安全的散列算法( 如s h a 、姗5 ) ,用带密钥的消息 认证码来验证消息的完整性。 s s l v 3 o 的主要目标,按照优先级依次为 1 6 】: ( 1 ) 加密安全:s s l 要为通信双方建立一个安全的连接。 ( 2 ) 互操作性:参数是独立的,使得开发基于s s l 3 0 的应用程序时,无需知 道对方的代码就能交换密码参数。 ( 3 ) 可扩展性:s s l 要提供一个框架,在必要时使新的公钥密码和对称密码 能够添加进来。 ( 4 ) 相对高效性:加密操作要占用c p u 资源,特别是公钥密码。鉴于此,s s l 协议建立了一个会话缓存区,用以减少必须从头开始建立的连接数量, 这也会减少网络上的交互活动。 2 2 1s s l 协议的分层结构 s s l 协议是一个分层的协议,共有两层组成。s s l 协议的层次结构如图2 2 所示。处于s s l 协议的底层的是s s l 记录层协议( s s lr e c o r dp r o t o c 0 1 ) ,它位 于可靠的传输层协议( 如t c p ) 之上,用于封装高层协议的数据。其中s s l 握手 协议( s s lh a n d s h a k ep r o t o c 0 1 ) 允许服务方和客户方互相认证,并在应用层协 议传送数据之前协商出一个加密算法和会话密钥,s s l 握手协议是s s l 协议的核 j 1 7 】【l8 1 。 h 耵pf t p s s l 握手协议s s l 改变加密约定协议s s l 报警协议 s s l 记录层协议 t c p 层 i p 层 底层协议 图2 2s s l 协议的层次结构模型 1 0 第二章相关技术 2 2 2s s l 握手协议 s s l 连接分为两个阶段,即握手和数据传输阶段。握手阶段对服务器进行认 证并确立用于数据传输的加密密钥。必须在传输任何应用数据之前完成握手。一 旦握手完成,数据就被分成一系列经过保护的记录进行传输。 s s l 握手有三个目的。第一,客户端与服务器需要就一组用于保护数据的算 法达成一致。第二,它们需要确立一组由那些算法所使用的加密密钥。第三,握 手还可以选择对客户端进行认证。 整个过程工作如图2 3 所示: 旦堑茎堑堕塑童竺鎏:堕垫鍪- ( 2 ) 选中的加密算法,随机数,证书 ( 4 ) 计算密钥( 4 ) 计算密钥 继型世迪g 鱼 - 塑墅型麴坠堕一 图2 3 :s s l 握手概述 ( 1 ) 客户端将它所支持的算法列表连同一个密钥产生过程用作输入的随机数 发送给服务器。 ( 2 ) 服务器根据从列表的内容中选择一种加密算法,并将其连同一份包含服 务器公用密钥的证书发回给客户端。该证书还包含了用于认证目的的服 务器标识,服务器同时还提供了一个作为密钥产生过程部分输入的随机 数。 ( 3 ) 客户端对服务器的证书进行验证,并抽取服务器的公用密钥。然后,再 产生一个称作p r e - m a s t e r s e c r e t 的随机密码串,并使用服务器的公用 密钥对其进行加密。最后,客户端将加密后的信息发送给服务器。 ( 4 ) 客户端与服务器端根据p r e m a s t e r - s e c r e t 以及客户端与服务器的随机 数值独立计算出加密和m a c 密钥。 第二章相关技术 ( 5 ) 客户端将所有握手消息的m a c 值发送给服务器。 ( 6 ) 服务器将所有握手消息的m a c 值发送给客户端 2 0 1 。 2 2 3 改变加密约定协议 改变加密约定协议的存在是为了使密码策略能得到及时的通知。该协议只有 一个消息( 是一个字节的数值) ,传输过程中使用当前的加密约定来加密和压缩, 而不是改变后的加密约定。 客户方和服务器都会发出改变加密约定消息,通知接收方后面发送的记录将 使用刚刚协商的加密约定来保护。客户方在发送握手密钥交换和证书检验消息 ( 如果需要) 后发送改变加密约定消息;服务器方则在成功处理从客户方接收到 的密钥交换消息后发送。一个意外的改变加密约定消息将导致一个u n e x p e c t e d m e s s a g e 警报。 2 2 4 警报协议 警报协议设计用来允许一方向另一方报告例外条件。警报消息非常简单,其 中包含严重的程度和相应的描述。一旦收到f a t a l 级别的警报消息,实现就必须 终止连接而且不能再重复用该会话,或者忽略该警告消息。然而实现也可以选择 视警告为致命的。与其它的消息一样,警报消息也经过加密和压缩,使用当前连 接状态的约定。 关闭警报 为了防止截断攻击,客户方和服务器方必须都知道连接已经结束了。任何一 方都可以发起关闭连接,发送c 1 0 s en o t i f y 警报消息,在关闭警报之后收到的 数据都会被忽略。 错误警报 s s l 握手协议中的错误处理很简单:当检测到错误时,检测的这一方就发送 一个消息给另一方,传输或接收到一个致命的警报消息,双方都马上关闭连接, 要求服务器方和客户方都清除会话标识、密钥以及与失败连接有关的秘密。错误 警报包括:意外消息警报、记录m a c 错误警报、解压失败警报、握手失败警报、 缺少证书警报、已破坏证书警报、不支持格式证书警报、证书已作废警报、证书 失效警报、不明证书发行者警报以及非法参数警报1 2 u ; 2 2 5 记录协议 握手的目的就是建立起使发送和接收受保护数据成为可能所需要的共享状 第二章相关技术 态。在s s l 中,实际的数据传输是使用s s l 记录协议来实现的。 s s l 记录协议是通过将数据流分割成一系列的片段并加以传输来工作的,并 对其中每个片段单独进行保护和传输,等到达接收方后,再对每条记录单独进行 解密和验证。这种方案使得数据一经准备好就可以从连接的一端传送到另一端, 并在接收到后即刻加以处理。 在传输片段之前,必须防止其遭受攻击。可以通过计算数据的m a c 值来提供 完整性保护。m a c 与片段一起进行传输,并由接收方加以验证。将m a c 附加到片 段的尾部,并对数据与姒c 整合在一起的内容进行加密,以形成经过加密的负载。 最后给负载装上头信息。头信息与经过加密的负载的连接称作记录,记录就是实 际传输的内容。 记录头信息的工作就是为接收实现提供对记录进行解释所必需的信息。在实 际的应用中,它是指三种信息:内容类型、长度和s s l 版本。长度字段可以让接 收方知道它要从线路上读取多少字节才能对消息进行处理,版本号只是一项确保 每一方使用所磋商的版本的冗余性检查。 应用层数据 记录协议单元 压缩单元 加密数据 分 t c p 数据包豳霉露爨翟盈 图2 4s s l 的数据流图 2 2 6 连接过程分析 图2 5 展示的是一张s s l 消息的分时序列图。 第二章相关技术 客l 迥! 型! 坚 ? 量三:! 1 2 1 1 望! ! ! 竺 一 互亟! 一 1 豆垂;兰! 一 一 图2 5s s l 消息的分时序列 发送的第一条消息为c l i e n t h e l l o ,其中包含了客户端所推荐的加密参数, 其中包括它准备使用的加密算法。此外,还包括一个在密钥产生过程中使用的随 机值。服务器以三条消息进行响应:首先发送选择加密与压缩算法的s e v e r h e l l o , 这条消息包含一个从服务器过来的随机值。 s s l 包含压缩的原因就是加密数据对于任何实用目的来说都是随机的,因此 也就是无法压缩的,所以在大多数m o d e m 中,链路层压缩对于s s l 数据来说不起 任何作用。如果想在传输前对数据进行压缩的话,就必须放在加密之前完成。不 幸的是,出于对知识产权的考虑,不管是s s l v 3 还是t l s 都没有定义任何压缩算 法。因此,s s l 几乎从不使用压缩。但有例外,0 p e n s s l 确实支持压缩,所以如 果双方都是基于o p e n s s l 并且进行恰当的配置,那么就能够使用压缩。 接下来,服务器发送c e r t i f i c a t e 消息,其中包括服务器的公用密钥这 里是r s a 密钥。最后,服务器发送表示握手阶段不再有任何消息的 s e o e r h e l1 0 d o n e 。 客户端发送一条c l i e n t k e y e x c h a n g e 消息,其中包含了一个随机产生的用服 务器的r s a 密钥加密的密钥。这条消息后面跟有一条指示客户端在此之后发送的 所有消息都将使用刚刚商定的密码进行加密的c h a n g e c i p h e r s p e c 消息。 f i n i s h i e d 消息包含了对整个连接过程的校验,这样服务器就能判断要使用 1 4 第二章相关技术 的加密算法是否是安全商定的。 一旦服务器接收到了客户端的f i n i s h e d 消息,它就会发送自己的 c h a n g e _ c i p h e l s p e c 和f i n i s h e d 消息,于是连接就准备好进行应用数据的传输 了。 接下去的两条消息分别是由客户端和服务器发送的应用数据。在这个例子 中,这些是在客户和服务器程序中键入数据的结果。但在实际的传输事务中,是 应用协议数据发送的时间。 最后,客户端关闭连接,不过它会先发送一条c l o s e - n o t i f y 警报来表示连 接即将关闭。随后是一条t c pf i n ( 这里没有显示出来) ,服务器使用它自己的 t c pf i n 加以响应,f i n 表示主机的t c p 实现已经关闭了它那一端的连接,并且 不会再发送任何数据。 注意,服务器并没有发送c l o s e n o t i f y 。s s l 规范在是否需要c l o s e n o t i f y 这一点上有些不清不楚,但是在理想的状况下,服务器与客户端均需要发送 c l o s e - n o t i f y 消息【2 2 1 。 2 3o p e n s s l 概述 0 p e n s s l 是一个实现s s l 协议的基础函数库,它是由加拿大人e r i ca y o u n g 和t i mj h u d s o n 开发的,现在由o p e n s s l 项目组接管了开发工作。当前o p e n s s l 的最新版本是0 9 8 9 ,完全实现了对s s l v l 、s s l v 2 、s s l v 3 和t l s 的支持。项 目组的目标是开发一个健壮的、商业级的、完整开放源代码的工具包,用强大的 加密算法来保证s o c k e t 层和传输层的安全性。 o p e n s s l 不但实现了s s l 的一些接口,它所涵盖的内容从底层对称、非对称 加密算法到建立在其上的接口( 包括x 5 0 9 证书、p k c s 标准、a s n 1 等) 的实现是 一应俱全,甚至还给了一个有关c a 的例子。o p e n s s l 是由两部分组成的:s s l e a y 和o p e n s s l 。两者的关系是,s s l e a y 是一套接口库,0 p e n s s l 是建立在这个库接 口之上的一个应用。s s l e a y 本身是跨平台的,主要是用标准c 写成,支持大部 分操作系统和环境,对于做不同平台下有关信息安全的应用,s s l e a y 是个很好 的选择。 由于o p e n s s l 库实现了大多数加密算法,我们的开发也就基于此库。 第三章s s l 模块总体方案设计 第三章s s l 模块总体方案设计 3 1s s l 在嵌入式浏览器中的位置 随着嵌入式浏览器的广泛应用,嵌入式浏览器的使用者不仅要求浏览器能够 显示网页,而且还要求能够在网上进行一些商业

温馨提示

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

评论

0/150

提交评论