(计算机科学与技术专业论文)ssl的设计和实现.pdf_第1页
(计算机科学与技术专业论文)ssl的设计和实现.pdf_第2页
(计算机科学与技术专业论文)ssl的设计和实现.pdf_第3页
(计算机科学与技术专业论文)ssl的设计和实现.pdf_第4页
(计算机科学与技术专业论文)ssl的设计和实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机科学与技术专业论文)ssl的设计和实现.pdf.pdf 免费下载

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

文档简介

北京邮电大学硕士研究生论文 摘要 s s i 的设计和实现 摘要 安全套接层协议s s l 是世界上部署最为广泛的安全协议,每一 种商业浏览器和服务器都在其内部使用s s l 来支持安全的w e b 交 易。它指定了一种在应用程序和t c p i p 协议之间提供数据安全性的 分层机制,为t c p i p 连接提供数据加密、服务器认证、消息完整性 以及可选的客户端认证。 本文的目标是在终端路由器上开发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 c e p 模块的设 计和实现,并对这两个模块进行了详细地测试和分析。最后,给出 了s s l 协议的一些应用。 关键词s s l t l s 路由器s c e p 数字证书信息安全 t h ed e s i g na n di m p l e m e n t a t i o n o fs s l a b s t r a c t s s lh a sb e e nw i d e l yd e p l o y e di nt h ew o r l da sas e c u r i t yp r o t o c o l , a l lk i n d so fb r o w s e ra n ds e r v e ro f f e rs e c u r ew e bb u s i n e s sw i t hs s l i ti s al a y e r e dm e c h a n i s m ;s p e c i f yat e c h n i q u et op r o v i d es e c u r ed a t a , i n f o r m a t i o ne n c r y p t i o n ,s e r v e ra u t h e n t i c a t i o n ,m e s s a g ei n t e g r a l i t ya n d c h o i c ec l i e n ta u t h e n t i c a t i o nb e t w e e na p p l i c a t i o na n dt c p i p t h et a r g e ti sd e v e l o p i n gs s lm o d u l eo nr o u t e r , m a k i n gi tr u na sa s s ls e r v e r t h e nas e c u r ec h a n n e lw i l lb ef o u n d e dt oe n s u r et h es e c u r i t y o fi n f o r m a t i o nt r a n s f e r r e db e t w e e nc l i e n ta n ds e r v e r i nt h ep r o c e s so f i m p l e m e n t a t i o n ,a f t e ra n a l y z i n gt h es s lp r o t o c o la n dt h es t r u c t u r eo f p r o t o c o l sa p p l i e d o nt h e r o u t e r , i d i v i d es s lm o d u l et of o u r s u b m o d u l e sa c c o r d i n gt ot h ef r a m e w o r ko fs s lp r o t o c 0 1 t h i sa r t i c l e d i s c u s s e sh o wt od e s i g na n di m p l e m e n te a c hs u b m o d u l e ,w h a td a t a s t r u c t u r ee a c hu s e s ,a n dh o wt oe s t a b l i s hc o n n e c t i o nb e t w e e no t h e r r e l a t i v em o d u l e sa n ds s lm o d u l e t h ep r o c e s so fs s lh a n d s h a k ea l s oi s d e s c r i b e d a tt h es a m et i m e ,t h i sp a p e rg i v e st h es o l u t i o nt od e a lw i t ht h e f a u l to f s s l b e s i d e s t h ep a p e rr e f e r st ot h ed e s i g no fs c e pm o d u l ew h i c h p r o v i d e sc e r t i f i c a t i o ns e r v i c e st os s l ,d e s c r i b e st h et e s ta n da n a l y s i so f b o t hs s la n ds c e ea tl a s t i tp r e s e n t ss o m ea p p l i c a t i o n so fs s l k e yw o r d ss s i 门sr o u t e rs c e pc e r t i f i c a t i o n i n f o r m a t i o ns e c u r i t y 北京邮电大学硕士研究生论文 声明 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特- 3 j l j j n 以标注和致谢中所罗列的内容以外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:扬叠之 日期:塑堡:墨:墨! 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅 和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印 或其它复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密 论文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:物扬日期:迎星:丕:丕l 导师签名: 二黧一 日期:2 丝堕盛l ;0 l 一 北京邮电大学硕士研究生论文 s s l 的设计和实现 1 1 课题来源和意义 第一章概述 1 1 1 s s l 的发展历史 安全套接层协议s s l ( s e c u r es o c k e tl a y e r ) 主要是使用公开密钥体制和 x 5 0 9 数字证书技术来保护传输的信息,提供机密性和完整性服务。它不能保 证信息的不可抵赖性,因此主要适用于点对点之间的信息传输。目前,利用公 开密钥技术的s s l 协议,并己成为i n t e m e t 上保密通讯的工业标准。现行w e b 浏览器普遍将h t y p 和s s l 相结合,从而实现安全通信。 图卜l 描述了各种s s l 变种的谱系图,最早的版本位于该树的顶端,而最近的 版本位于树的底部。 未发布 s s l 。19 9 4 , 第r 版 p c t ( 1 9 9 5 ) p r i v a t e c o m m u n ic a tio n $ t e c h n o l o g y s s l v 3 ( 19 9 5 ) s t l p ( 1 9 9 6 ) s e c u r et r a n s p o r t l a y e rp r o to c o l w t l s ( 1 9 9 8 ) w i r e le sst r a n s p o r t l a y e rs e c u r it y t l s v l 0 ( 1 9 9 7 1 9 9 9 ) t r a n s p o r t l a y e r s e c u r it y _j, t l s v l 1 ( 2 0 0 6 ) 图1 - 1s s l 变种的谱系图 第1 页 北京邮电大学硕士研究生论文s s l 的设计和实现 s s l 协议最初是由n e t s c a p ec o m m u n i c a t i o n 公司于1 9 9 4 年设计的,主要目标 是保护w e b 通信协议- - h t t p ( h y p e r t e x tt r a n s f e rp r o t o c 0 1 ) 协议,为其提供保 密和可靠通信。s s l 协议的第一个成熟版本是s s l 2 oc , j 版,于1 9 9 4 年1 1 月首次公 开发表,并于1 9 9 5 年3 月被集成至u n e t s c a p e 公司的i n t e r n e t 产品中,包括 n a v i g a t o r1 1 浏览器和w e b 服务器产品等。s s l 2 0 协议的出现,基本上解决了w e b 通信协议的安全问题,很快便引起了大家的关注。但是s s l 2 o :f f 一个严重的安全 缺陷,不能抵抗加密算法套件反转攻击( c i p h e rs u i t er o l l b a c ka t t a c k ) 。攻击 者可以修改h e l i o 消息中所支持的c i p h e rs u i t e s 列表域( 该信息是明文数据) ,从 而迫使本来能够支持更高安全强度算法的通信双方选择使用安全强度较弱的密 码算法,例如供美国出口使用的密钥长度只有4 0 1 :1 , 特的密码算法。另外,s s l 2 0 只能使用r s a 交换密钥。 由于正在开发s s l 的厂商投入很少,随着其他厂商着手实现s s l ,为了修正该 协议中的问题开发了一些不太兼容的独立变种,其中最重要的就是1 9 9 5 年1 0 月微 软发表的保密通信技术p c t 。p c t 在一定程度上保留了s s l 2 o 的整体风格,它使用 同样的规格描述语言,以及一些相同的消息,但同时p c t 完成了三项重大的修改。 首先,p c t 包含了一种非加密操作模式,只提供数据认证;其次,限制了密钥扩 展变换,由于美国的出口限制,s s l 2 0 包含了一种出口模式,即加密安全限制在 4 0 位,s s l 2 0 使用同一个密钥来完成加密和认证工作,所以认证安全也被限制在 4 0 位,而p c t 允许弱强度加密与高强度认证并存;第三,通过减少所需的往返次 数改进了性能。 1 9 9 6 年n e t s c a p e 公司发布了s s l 3 0 瞳1 ,该版本发明了一种全新的规格描述语 言,以及一种全新的记录类型和数据编码,它还处理了一些p c t 处理的问题,包 括增加了只进行认证的模式,以及完全重写了密钥扩展变换。此外,s s l 3 0 还增 加了一些p c t 中所没有的特性,其中包括:多种新的加密算法、支持防止对数据 流进行截断攻击的关闭握手。对于s s l 2 0 来说,如果攻击者伪造t c p 连接关闭, 则要想知道所传输的数据比实际的少是不可能的,而s s l 3 0 的关闭握手则可以检 测出这种攻击。同时,s s l 3 0 弥补了加密算法套件反转攻击这个安全漏洞,使用 的方法是提供了f i n i s h e d 消息,利用m a s t e rs e c r e t 来对握手过程中所有的消息 进行认证。这样,攻击者的任何篡改握手消息的行为都可以在握手过程的最后被 发现。与p c t 一样,s s l 3 0 与s s l 2 0 是向后兼容的。s s l 3 0 相1 :l s s l 2 0 更加成熟 和稳定,因此很快成为事实上的工作标准。 1 9 9 6 年5 月,因特网工程任务组( i e t f ) 特许传输层安全( t l s ) 工作组对一 种类似s s l 的协议进行标准化,这件事被广泛理解为一种调和微软与网景公司方 案的尝试。微软制作了一份称为安全传输层协议( s t l p ) 的提案,它是对s s l 3 0 第2 页 北京邮电大学硕士研究生论文s s l 的设计和实现 的修改,增加了一些微软认为关键的特性。s t l p 集成了一种强度高得多的基于共 享密码的客户端认证,并整合了某些性能上的适当改进,同时还改进了密码的可 扩展性,以及允许t c p “客户端 成为s t l p “服务器”。 但i e t f 工作组做非正式会面时,几乎没有人支持微软所提议的这种改动。 1 9 9 7 年i e t f ( i n t e r n e te n g i n e e r i n gt a s kf o r c e ) 基于s s l 协议发布了传输层安 全协议t l s ( t r a n s p o r tl a y e rs e c u r i t y ) 的i n t e r n e td r a f t ,n e t s c a p e 公司宣布 支持该标准。1 9 9 9 年,i e t f 正式发布了r f c2 2 4 6 。t l s 是i e t f 的t l s 工作组在s s l 3 0 基础之上提出的,最初版本是t l s l 0 口1 ,最新版本是t l s l 1 h 1 。它修正了t l s l 0 中的一些错误,提出了应对攻击的措施。t l s l 0 可看作s s l 3 1 ,它和s s l 3 0 的 差别不大,且考虑了和s s l 3 0 的兼容性。t l s s s l 可提供身份认证、机密性和完 整性服务。 无线传输层安全协议( w t l s ) 是一种基于工业标准的传输安全协议,是s s l 协议在无线环境下的变种,被专门设计用来与w a p 配套使用。w t l s 提供了诸如数 据完整性、私有性、鉴权和拒绝服务保护等安全功能,它既可以作为w a p 协议栈 中的安全传输层协议,也可以独立于w a p ,应用于无线终端之间的安全通信。w t l s 和t l s 最显著的不同是:t l s 需要一个可靠的传输层,也就是t c p ,而w a p 协议栈没 有提供可靠的传输层,在分组网络上优先选择了u d p ,它只在协议栈的上层通过 w t p 和w s p 实现了可靠性。w t l s 帧中定义了序列号,而这在t l s 中是不存在的,该 序列号确保w t l s 可以工作在不可靠的传输层上。w t l s 不支持数据的分组和重装, 将这个工作交给了下层协议处理。与此不同的是,t l s 可以对上层协议的数据包 进行分组。 1 1 2 s s l 的特点 s s l 协议可以在客户端和服务器之间建立一个安全的网络通道。它是一个基 于p k i 的网络数据安全协议,具有保护传输数据以及识别通信机器的功能。它对 传输的数据不加变更,客户端与服务器之间的数据是经过加密的,一端写入的数 据完全是另一端读取的内容,这种透明性使得几乎所有基于t c p 的协议稍加改动 就可以在s s l 上运行。为了防止通信过程中的监听、篡改以及消息伪造,s s l 提供 了服务器认证和可选的客户端认证,通过在两个实体之间建立一个共享的秘密通 道来提供保密性。 协议栈中s s l 位于t c p i p 层和应用层之间,并且与使用的应用层协议无关。 因此,应用层协议( h t p ,f t i ,和t e l n e t 等) 可以透明地置于s s l 之上。s s l 协议提 供的服务具有以下三个特性: 保密性:在初始化连接后,数据以双方商定的密钥和加密算法进行加密, 以保证其机密性,防止非法用户破译。 第3 页 :i 匕京邮电大学硕士研究生论文s s l 的设计和实现 认证性:s s l 协议采用非对称密码体制对对端实体进行鉴别,使得客户端 和服务器端确信数据将被发送到正确的客户机和服务器上。 完整性:s s l 协议通过采用散列函数来处理消息,提供数据完整性服务。 s s l 支持具有各种密钥长度的各种各样的算法,选择一种攻击来攻破它所花 费的代价远高于数据价值。同时,s s l 可以抵挡住监听和中间人攻击、流量数据 分析攻击、截取再拼接攻击、短包攻击和报文重放攻击等。但是s s l 也存在不少 问题有待解决,如密钥管理问题、加密强度问题、数字签名问题、依赖于第三方 认证的问题等,而且认证和加解密的速度较慢,对用户不透明,尤其是s s l 不提 供网络运行可靠性的功能,不能增强网络的健壮性,对拒绝服务攻击也无能为力。 1 2 路由器 1 2 1 路由器的原理 在当今信息化社会中,人们对数据通信的要求日益增加。路由器作为i p 网 的核心设备,其技术已成为当前信息产业的关键技术。 路由器是工作在o s i 参考模型第三层网络层的数据包转发设备,通过 转发数据包来实现网络互连。虽然路由器可以支持多种协议( 如t c p i p 、 i p x s p x 、a p p l e t a l k 等协议) ,但是我国的大多数路由器运行t c p i p 协议。路 由器通常连接两个或多个由p 子网或点到点协议标识的逻辑端口,至少拥有1 个物理地址。它根据收到的数据包中的网络层地址以及路由器内部维护的路由 表决定输出端口以及下一跳地址,并且重写链路层数据包头实现数据包的转发。 路由器通过动态维护路由表来反映当前的网络拓扑,并通过与网络上其他路由 器交换路由和链路信息来维护路由表。 简单的讲,路由器主要有以下几种功能: 网络互连。路由器支持各种局域网和广域网接口,主要用于局域网和广 域网的互连,实现不同网络互相通信。 数据处理。提供包括分组过滤、分组转发、优先级、复用、加密、压缩 和防火墙等功能。 网络管理。路由器提供包括配置管理、性能管理、容错管理和流量控制 等功能。 路由器中保存着各种传输路径的相关数据路由表,供路由选择时使用。 路由表中保存着子网的标志信息、网上路由器的个数和下一跳路由器的名字等 内容。路由表可以由系统管理员固定设置好,也可以由系统动态修改;可以由 第4 页 北京邮电大学硕士研究生论文s s l 的设计和实现 路由器自动调整,也可以由主机控制。由系统管理员事先设置好固定的路由表 称为静态路由表,一般是在系统安装时就根据网络的配置情况预先设定的,不 会随网络结构的改变而改变。动态路由表是路由器根据网络系统的运行情况而 自动调整的路由表,路由器根据路由选择协议提供的功能,自动学习和记忆网 络运行情况,在需要时自动计算数据传输的最佳路径。 路由器的优点是:适用于大规模的网络;复杂的网络拓扑结构,负载共享 和最优路径;能更好地处理多媒体;安全性高;隔离不需要的通信量;节省局 域网的频宽;减少主机负担。其缺点是不支持非路由协议;安装复杂;价格高。 1 2 2 路由器的分类 按性能档次分类 路由器按性能档次可分为高、中和低档路由器,不过各厂家划分并不完全 一致。通常将背板交换能力大于4 0 g b p s 的路由器称为高档路由器,背板交换能 力在2 5 g b p s - - 一4 0 g b p s 之间的路由器称为中档路由器,低于2 5 g b p s 的就是低档 路由器了。当然这只是一种宏观上的划分标准,实际上路由器档次的划分不仅 是以背板带宽为依据的,而是有一个综合指标的。以市场占有率最大的c i s c o 公司为例,1 2 0 0 0 系列为高端路由器,7 5 0 0 以下系列路由器为中低端路由器。 按功能分类 从功能上划分,可将路由器分为核心层( 骨干级) 路由器,分发层( 企业 级) 路由器和访问层( 接入级) 路由器。 骨干级路由器:骨干级路由器是实现企业级网络互连的关键设备,它数据 吞吐量较大,有着非常重要的作用。对骨干级路由器的基本性能要求是高速度 和高可靠性。为了获得高可靠性,网络系统普遍采用诸如热备份、双电源、双 数据通路等传统冗余技术,从而使得骨干路由器的可靠性一般不成问题。骨干 级路由器的瓶颈出现于在转发表中查找某个路由器时,因此常将一些访问频率 较高的目的端口放到c a c h e 中,从而达到提高路由查找效率的目的。 企业级路由器:企业或校园级路由器连接许多终端系统,连接对象较多, 但系统相对简单,数据流量较小。因此,对这类路由器的要求是以尽量便宜的 方法实现尽可能多的端点互连,同时还要求能够支持不同的服务质量。路由器 连接的网络系统应该能够将机器分成多个碰撞域,从而可以方便的控制一个网 络的大小。此外,路由器还应该可以支持定的服务等级,至少允许将网络分 成多个优先级别。当然,路由器的每个端口造价要贵些,在使用之前要求用户 进行大量的配置工作。因此,企业级路由器的成败就在于是否可提供大量端口 且每个端口的造价很低,是否容易配置,是否支持q o s ,是否支持广播和组播 等多项功能。 第5 页 北京邮电大学硕士研究生论文 s s l 的设计和实现 接入级路由器:接入级路由器主要应用于连接家庭或i s p 内的小型企业客 户群体。接入路由器在不久的将来不得不支持许多异构和高速端口,并能在各 个端口运行多种协议。 按所处网络位置分类 如果按路由器所处的网络位置划分,则通常把路由器划分为“边界路由器 和“中间节点路由器”两类。 “边界路由器 是处于网络边缘,用于不同网络路由器的连接;而“中间 节点路由器”则处于网络的中间,通常用于连接不同网络,起到一个数据转发 的桥梁作用。由于各自所处的网络位置有所不同,其主要性能也就有相应的侧 重,如中间节点路由器要面对各种各样的网络,那么如何识别这些网络中的各 节点呢? 靠的就是这些中间节点路由器的m a c 地址记忆功能。基于上述原因, 选择中间节点路由器时就需要在m a c 地址记忆功能方面更加注重,也就是要求 选择缓存更大,m a c 地址记忆能力较强的路由器。但是由于边界路由器可能要 同时接受来自许多不同网络路由器发来的数据,这就要求这种路由器的背板带 宽要足够宽,当然这也要依边界路由器所处的网络环境而定。虽然这两种路由 器在性能上各有侧重,但所发挥的作用却是一样的,都是起到网络路由、数据 转发功能。 按应用分类 从功能上划分,路由器可分为通用路由器与专用路由器。一般所说的路由 器皆为通用路由器。专用路由器通常为实现某种特定功能而对路由器接口、硬 件等作专门优化。例如接入服务器用作接入拨号用户,增强p s t n 接口以及信令 能力;v p n 路由器用于为远程v p n 访问用户提供路由,它需要在隧道处理能力 以及硬件加密等方面具备特定的能力;宽带接入路由器则强调接口带宽及种类。 按性能分类 从性能上分,路由器可分为线速路由器以及非线速路由器。所谓线速路由 器就是完全可以按传输介质带宽进行通畅传输,基本上没有间断和延时。通常 线速路由器是高端路由器,具有非常高的端口带宽和数据转发能力,能以媒体 速率转发数据包;中低端路由器是非线速路由器。但是一些新的宽带接入路由 器也有线速转发能力。 1 3 本人所作的工作 在开始这个项目之前,本人承担了万林克路由器上n a t 模块的开发,累计 第6 页 北京邮电大学硕士研究生论文 s s l 的设计和实现 编码6 0 0 0 行左右,实现了静态和动态的地址转换和端口转换功能,完成了模块 的功能和性能测试,为客户提供相关的技术支持。在此过程中,加深了对t c p 口 协议栈的理解和认识,积累了一定的实践经验,丰富了自己在网络协议和嵌入 式系统方面的知识,提高了编程能力。在这个项目中,本人查阅了大量信息安 全、网络协议和公钥基础设施( p ) 等方面的资料,对万林克路由器上的s s l 模块进行了设计和开发。在原有设计思想和实现框架的基础上,重新设计了程 序的处理流程,修改并添加了部分数据结构,增加了多种加密套件的实现和应 用,在新的软硬件环境下成功地实现了路由器作为s s l 服务器对s s l 三个版本 的支持,开发代码量约为1 0 0 0 0 行。同时,本人设计了驱动模块t e s t 对s s l 模块进行单元测试,并且和h t r p 模块一起完成了集成测试,为h t t p 模块提 供了安全隧道,确保w e b 服务的安全性。此外,本人还参与了为s s l 模块提供 证书服务的s c e p 模块的开发,遵循技术标准设计了s c e p 模块申请证书功能 的程序流程和数据结构,和其他成员一起完成了这个模块的功能测试,完成的 代码量约为2 0 0 0 行。 1 4 论文的章节安排 本文第一章讲述s s l 协议的起源、发展以及路由器的基本原理,总结本人 在项目中承担的任务及完成效果;第二章介绍与丌发项目有关的技术,包括一 些加密算法、x 5 0 9 系列证书等;第三章是本文的核心,内容是万林克路由器 上s s l 模块的设计和丌发,围绕模块的设计原则,给出具体的数据结构,同时 辅以对实现过程中的重点和难点的描述;第四章给出了具体的测试结果证明开 发过程的有效性;本文的最后,阐述了s s l 的应用现状。 第7 页 北京邮电大学硕士研究生论文s s l 的设计和实现 2 1 密码学 第二章相关技术概述 密码学是一种设计各种安全算法的理论,研究使用此类算法的目的是为了 保证系统和协议的安全。其基本思想是:加密算法接收一定长度的用户数据并 在密钥的控制下将其转换为密文。密文看上去就像随机数据,没有密码就无法 收集与明文有关的各种有用信息。 在密码学中,待加密的消息称为明文,经过一个以密钥为参数的函数变换, 输出的结果称为密文,这个过程称为加密。当密文通过网络传送到接收方之后, 使用一个与加密过程相同的密钥( 对称加密) 或者不同的密钥( 非对称加密) 为参数的函数进行变换,这个过程称为解密,输出的结果为原始的明文。 评价一个加密算法的好坏主要取决于两个方面:算法的强健性和密钥的长 度。 2 2 密码体制 2 2 1 对称密码体制 对称密码体制又称为私钥密码体制,使用相同的加密密钥和解密密钥,或 者虽然不相同,但是由其中的任意一个可以很容易地推导出另一个。对称密码 体制的优点是具有很高的保密强度,可以经受较高级破译力量的分析和攻击, 但它的密钥必须通过安全可靠的途径传递,密钥管理成为影响系统安全的关键 性因素,使它难以满足系统的开放性要求。 对称密码体制从加密模式上可分为序列密码和分组密码两大类。 序列密码 序列密码的主要原理是:通过有限状态机产生性能优良的伪随机序列,使 用该序列加密信息流,得到密文序列,所以,序列密码算法的安全强度完全取 决于它所产生的伪随机序列的好坏。 r c 4 惟一受到广泛关注和应用的序列密码就是r c 4 。r c 4 是一种密钥长度可变 的算法,其密钥长度可以在8 2 0 4 8 位之间,不管密钥有多长,密钥都被扩展 第8 页 北京邮电大学硕士研究生论文s s l 的设计和实现 为一张固定尺寸的内部状态表,所以无论使用什么长度的密钥,该算法都运行 得一样快。s s l 和t l s 总是使用密钥长度为1 2 8 位的r c 4 。 分组密码 分组密码的工作方式是将明文分成固定长度的组,用同一密钥和算法对每 一块加密,输出也是固定长度的密文。 d e s d e s ( 数据加密标准) 至今仍是应用最为广泛的对称式加密算法。d e s 是 一种具有5 6 位密钥的6 4 位分组密码,数据以8 字节大小的分组进行加密,且 密钥空间为5 6 位。d e s 密钥实际上是6 4 位长,不过每个字节的低位用作检测 传输和密钥打包与拆包错误的奇偶校验位。 目前还没有发现好的针对d e s 的分析攻击。不过现在d e s 相当的脆弱, 基本原因是由于密钥太短,计算机的速度却越来越快而造成的。 3 d e s 由于d e s 承受了如此猛烈的攻击,当密钥长度显得太短的时候,一种可 能的方式就是简单地对数据进行多遍加密,不幸的是,仅仅应用两遍d e s 的结 果并不比d e s 安全多少,因此不得不对数据进行3 d e s ,3 d e s 的有效长度是 1 1 2 位。 3 d e s 最流行的版本使用称作加密一解密一加密( e d e ) 的模式,即使用 密钥1 进行加密,使用密钥2 进行解密,接着使用密钥3 再次进行加密。这样 做有一个好处:如果将三个密钥设为同一个的话,就等同于单次d e s ,也就意 味着可以使3 d e s 的硬件与d e s 硬件进行互操作,这一种通常被引用为3 d e s e d e 。 r c 2 r c 2 是r c 加密算法系列的另外一个算法,与r c 4 不同的是,r c 2 是分组 密码。r c 2 采用一种经过变形的变长密码,它还具有一种可变的有效密钥长度。 与d e s 类似,它具有6 4 位分组。在s s l 中,r c 2 总是使用1 2 8 位密钥和1 2 8 位有效密钥长度。 a e s a e s ( 高级加密标准) 具有至少1 2 8 位的分组大小,以及1 2 8 、1 9 2 和2 5 6 位等三种密钥长度,这使得其强度足以满足可以预见的未来的要求。s s l 中没 有使用a e s 算法,而t l s 只支持1 2 8 位和2 5 6 位两种长度的密钥。 l d e a i d e a ( 国际加密标准) 是瑞士的著名学者提出的,在1 9 9 0 年正式公布并 在以后得到增强。这种算法是在d e s 算法的基础上发展出来的,类似于三重 第9 页 北京邮电大学硕士研究生论文s s l 的设计和实现 d e s 。它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的 子密钥,与d e s 的不同之处在于,它采用软件实现和采用硬件实现同样快速。 i d e a 的密钥为1 2 8 位,这么长的密钥在今后若干年内应该是安全的。 2 2 2 非对称密码体制 如果把一个加密系统的加密和解密的能力分开,加密和解密分别用两个不 同的密钥实现,并且不可能由加密密钥推导出解密密钥( 或者不可能由解密密 钥推导出加密密钥) ,则该系统所采用的就是非对称密码体制,也叫做公钥密码 体制。在该体制中,密钥成对出现,一个为加密密钥即公共密钥,谁都可以使 用;另外一个是解密密钥也就是私密密钥,只有解密人自己知道,用公共密钥 加密的信息只能用相应的私密密钥解密。公开密钥算法不需要联机密钥服务器, 密钥分配协议简单,所以极大地简化了密钥管理。除加密功能外,公钥系统还 可以提供数字签名。 r s a r s a 是第一个能同时用于加密和数字签名的算法,易于理解和操作。r s a 公钥实际上由两个数字组成,即模数( 通常以字母n 表示) 和公共指数( 通常 以字母e 表示) 。模数是两个非常大的素数( 习惯以字母p 和q 表示) 的乘积。 r s a 的安全性就是基于对n 进行因数分解以得到p 和q 的难度。 r s a 私钥为另一数字,通常被称作d ,且只有在知道p 、q 和e 的情况下 才能计算得出。r s a 的公共指数e 必须和( p 一1 ) 书( q - 1 ) 互素,为了方便起见, 通常挑选几个小素数中的一个作为e ( 通常为3 ,1 7 ,或者6 5 5 3 7 ) 。选定了e , 就可以使用式2 - 1 计算得到d : d = e 吐m o d ( ( p - 1 ) ( q 一1 ) )式( 2 - 1 ) 假设a 要使用r s a 向b 发送明文m ,首先将m 分成等长数据块m l ,m 2 , m 。,a 发送的加密后的密文c 是: c i = m i e ( m o dn ) 式( 2 - 2 ) b 接到密文c 后,使用r s a 解密得到m : m i = c i d ( m o dn )式( 2 3 ) 由于进行的都是大数计算,使得r s a 最快的情况也比d e s 慢上1 0 0 倍, 无论是软件还是硬件实现。速度一直是r s a 的缺陷,因此一般来说只用于少量 数据加密。 非对称密码体制提供了无法从对称密码体制中获得的能力,但由于效率低 下而无法单独使用,因此,通常将这两种技术结合起来实现最佳性能。对于非 交互式( 消息传递) 应用来说,产生自主式的消息,使用非对称密码技术加密 来保护用来加密消息的对称密钥,并与数字签名函数配合,使用消息摘要来提 第1 0 页 北京邮电大学硕士研究生论文 s s l 的设计和实现 供消息完整性。对于交互式应用来说,通过握手来确定密钥,然后再使用对称 算法。在握手期间使用非对称密码技术对双方进行认证,并实现密钥交换,然 后再使用对称密码技术使用那些密钥来保护单条数据记录,s s l 就属于这种应 用。 2 3 消息摘要 消息摘要( m d ,m e s s a g ed i g e s t ) 是一种函数,它以单向散列函数作为基 础,接受一个任意长度的明文消息作为输入,并且根据此明文计算出一个固定 长度的位串。消息摘要由以下四个重要特征: 给定消息p ,很容易计算m d ( p ) ; 给定m d ( p ) ,在实践中要想找到p 是不可能的; 在给定p 的情况下,无法找到满足m d ( p ) = m d ( p ) 的p ; 在输入的消息中即使只有1 位的变化,也会导致完全不同的输出。 直白地说,消息摘要最重要的属性是不可逆性,给定摘要值,想要计算出 它对应的消息几乎是不可能的。 消息摘要的首要用途是用于计算数字签名和信息验证码m a c 。m a c 用来 保证消息未被篡改,它类似于摘要算法,但是在计算的时候还要采用一个密钥, 因此m a c 同时依赖于所使用的密钥以及要计算其m a c 的信息。目前常用的构 造m a c 的方法是h m a c 。最常用的消息摘要算法是消息摘要5 ( m d 5 ) 和安全散 列算法i ( s h a 1 ) ,它们分别具有1 2 8 位和1 6 0 位的输出。 2 4 数字签名 为了能够在信息系统中验证各种敏感信息和参与方的真实有效性,需要构 建一个经过授权的数字签名系统,其中一方向另一方发送的签名消息必须满足 下列条件: 接收方可以验证发送方宣称的身份; 发送方无法否认该消息的内容; 接收方不可能自己编造这样的消息。 满足以上三个条件的数字签名系统可以实现身份确认、不可抵赖性。利用 公开密钥密码体系和消息摘要技术可以实现数字签名技术,如图2 - 1 所示,客 第1 1 页 北京邮电大学硕士研究生论文s s l 的设计和实现 户c l i e n t 首先计算明文p 的消息摘要m d ( p ) ,然后针对消息摘要用自己的私钥 p k 加密进行签名,并且将签名之后的摘要和明文一起发送给服务器s e r v e r 。如 果中途有攻击者将p 更换为p ,则当s e r v e r 计算m d ( p ) 时就会发现。 图2 - 1 使用消息摘要的数字签名 r s a 前文已经提到r s a 不仅可以作为加密算法使用,而且可以用作数字签名。 除了将公钥和私钥的地位交换一下之外,使用r s a 来完成数字签名与使用它来 完成密钥传送几乎是完全一样的。要进行签名,就要计算出消息的摘要值并使 用其私钥进行“加密 ,接收方对摘要值进行“解密”,并将其与根据消息独立 计算得出的摘要值进行比较来验证,如果匹配,则签名就是有效的。r s a 可以 与任何摘要算法一起使用。 d s s d s s ( 数字签名标准) 签名由两个称作r 和s 的大数组成。d s s 与r s a 最 大的不同是对签名进行验证的总体方式。对于r s a ,接收方从签名中恢复消息 摘要并将其与计算得出的消息摘要进行比较,而d s s 则需要基于消息摘要和签 名进行计算并返回是或非的答案。使用d s s 没有办法恢复发送方计算出的消息 摘要。此外,d s s 只能与s h a 1 一起使用。 2 5 数字证书 利用公开密钥密码体制和消息摘要可以计算数字签名,但是无法解决公钥 的安全发布问题。为了解决这个问题,成立了一个名为证书权威机构( c a , c e r t i f i c a t i o na u t h o r i t y ) 的组织来管理公钥的发布问题。c a 的主要职责就是证 明每个公钥的确属于某个真实的个人、公司或者组织。例如,甲希望乙和其他 人能够安全地与他通信,他可以找到一个c a ,出示他的公钥和能够证实其真 实身份的材料。然后,c a 给他颁发一个包含其公钥的证书,并且使用c a 自己 的私钥对证书的摘要散列值进行签名。这样,甲就获得了经过c a 签名的数字 证书。如果签署证书的上级证书就是自身,这种证书就称为自签证书。在没有 c a 的环境下,可以使用自签证书。 第1 2 页 北京邮电大学硕士研究生论文 s s l 的设计和实现 2 5 1 x 5 0 9 证书 为了保证证书格式的一致性,国际电信联盟( i t u - t ) 设计了一套专门针对 证书格式的标准x 5 0 9 1 引,其核心是提供了一种描述证书的格式。表2 - 1 列出了 证书中最主要的域。 x 5 0 9 数字证书不仅包括用户名和密码,而且还包含与用户有关的其他信 息。通过使用证书,c a 可以为证书接收者提供一种方法,使他们不仅信任证 书主体的公钥,而且还信任有关证书主体的其他信息。 x 5 0 9 证书有有效期限,证书在期满后就会失效。期间c a 可能会出于某些 原因吊销证书。要吊销证书,c a 保存并分发一个吊销证书的列表,即证书吊 销列表c r l ,网络用户可以访问c r l 以确定证书的有效性。 目前,x 5 0 9 标准已在编排公共密钥格式方面被广泛接受,用于许多网络 安全应用程序,其中包括i p s e c 、s s l 、s e t ( 安全电子交易) 、s m i m e ( 安全 多媒体i n t e m e t 邮件扩展) 。 表2 - 1 数字证书中的主要域 域名 含义 版本v e r s i o nx 5 0 9 的具体版本号 序列号s e r i a ln u m b e r序列号加上c a 的名字唯一标识当前证书 签名算法s i g n a t u r ea l g o r i t h m用千为证书签名的算法 颁发者i s s u e rc a 的x 5 0 0 名字 有效期v a l i d i t yp e r i o d 有效期的起止时闻 主题名s u b j e c tn 矾e该证书所证明的密钥所有者实体 公钥p u b l i ck e y主题的公钥及使用该公钥的算法的i d 颁发者标识符i s s u e ri d一个可选的i d ,唯一标识了证书的颁发者 主题标识符s u b j e c td 一个可选的i d ,唯一标识了证书的主题 扩展域e x t e n s i o n s 目前已经定义了许多扩展域 签名s i g n a t u r e证明的签名( 使用c a 的私钥做的签名) 2 5 2 抽象语法标记1 a s n 1 ( 抽象语法记法1 ) 是一种描述语言,基本思想就是为描述数据结构 而创建一种允许通过机器来产生数据编码解码器的系统。a s n 1 有四种编码方 式,证书中用到了其中的一种即辨识编码规则d e r ,d e r 描述了存储和传输数 据的唯一方式。a s n 1 与c 语言中的结构类似,只不过将类型定义的位置颠倒 了一下:名字在前,数据类型在后。 第1 3 页 北京邮电大学硕士研究生论文s s l 的设计和实现 2 5 3 对象标识符 o i d ( 对象标识符) 是分配给任何种类对象的全屙准一的字节字符串,如 算法、密钥用途等。o i d 空间是邦联性的- i s o 将o i d 空间的各区段分配给 不同的实体,这些实体还可以进一步针对其他实体对空间进行划分。举例来说, o i d :1 2 8 4 0 1 1 3 5 4 9 是分配给的r s a d s i ,其中1 2 8 4 0 1 1 3 5 4 9 3 用作标识加 密算法,而d e s e d e c b c 的o i d 是1 2 8 4 0 1 1 3 5 4 9 3 7 。 第1 4 页 北京邮电大学硕士研究生论文 s s l 的设计和实现 第三章s s l 系统的设计和实现 3 1 s s l 模块的设计原则 3 1 1 保密性 作为保护通信双方传输数据的一种方式,保密性无疑是s s l 模块必须提供 的一种服务,也是设计的重点之一。在信息安全中,主要使用加密算法来提供 保密性,s s l 使用的加密算法涵盖了目前流行的大部分加密算法,包括分组加 密和序列加密。另外,为了加强算法的安全性,s s l 中所有的加密算法都使用 c b c 加密模式。c b c 加密模式图解如图3 - 1 : 图3 - 1c b c 加密模式 普通的加密方法中,攻击者可能从相同的明文分组推导出相同的密文分组, 从而猜测到明文,而c b c 加密模式解决了这个问题。 s s l 模块支持的加密套件有: s s lr s ae x p o r tw i t hr c 44 0m d 5 s s lr s aw i t hr c 41 2 8m d 5 s s lr s aw i t hr c 41 2 8s h a s s lr s ae x p o r tw 删r c 2c b c4 0m d 5 s s lr s

温馨提示

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

评论

0/150

提交评论